@ecomplus/widget-martan 1.2.0 → 1.2.2

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.
Files changed (47) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/dist/public/widget-martan.1.min.js +1 -1
  3. package/dist/public/widget-martan.1.min.js.map +1 -1
  4. package/dist/public/widget-martan.2.min.js +1 -1
  5. package/dist/public/widget-martan.2.min.js.map +1 -1
  6. package/dist/public/widget-martan.3.min.js +1 -1
  7. package/dist/public/widget-martan.3.min.js.map +1 -1
  8. package/dist/public/widget-martan.4.min.js +1 -1
  9. package/dist/public/widget-martan.4.min.js.map +1 -1
  10. package/dist/public/widget-martan.5.min.js +1 -1
  11. package/dist/public/widget-martan.5.min.js.map +1 -1
  12. package/dist/public/widget-martan.6.min.js +1 -1
  13. package/dist/public/widget-martan.6.min.js.map +1 -1
  14. package/dist/public/widget-martan.7.min.js +1 -1
  15. package/dist/public/widget-martan.7.min.js.map +1 -1
  16. package/dist/public/widget-martan.8.min.js +1 -1
  17. package/dist/public/widget-martan.8.min.js.map +1 -1
  18. package/dist/public/widget-martan.var.min.js +2 -2
  19. package/dist/public/widget-martan.var.min.js.map +1 -1
  20. package/dist/widget-martan.1.min.js +1 -1
  21. package/dist/widget-martan.1.min.js.map +1 -1
  22. package/dist/widget-martan.2.min.js +1 -1
  23. package/dist/widget-martan.2.min.js.map +1 -1
  24. package/dist/widget-martan.3.min.js +1 -1
  25. package/dist/widget-martan.3.min.js.map +1 -1
  26. package/dist/widget-martan.4.min.js +1 -1
  27. package/dist/widget-martan.4.min.js.map +1 -1
  28. package/dist/widget-martan.5.min.js +1 -1
  29. package/dist/widget-martan.5.min.js.map +1 -1
  30. package/dist/widget-martan.6.min.js +1 -1
  31. package/dist/widget-martan.6.min.js.map +1 -1
  32. package/dist/widget-martan.7.min.js +1 -1
  33. package/dist/widget-martan.7.min.js.map +1 -1
  34. package/dist/widget-martan.8.min.js +1 -1
  35. package/dist/widget-martan.8.min.js.map +1 -1
  36. package/dist/widget-martan.min.js +3 -3
  37. package/dist/widget-martan.min.js.map +1 -1
  38. package/package.json +2 -2
  39. package/src/widgets/reviews/components/VerifiedPurchase.vue +1 -1
  40. package/dist/public/widget-martan.0.min.js +0 -62
  41. package/dist/public/widget-martan.0.min.js.map +0 -1
  42. package/dist/public/widget-martan.9.min.js +0 -2
  43. package/dist/public/widget-martan.9.min.js.map +0 -1
  44. package/dist/widget-martan.0.min.js +0 -62
  45. package/dist/widget-martan.0.min.js.map +0 -1
  46. package/dist/widget-martan.9.min.js +0 -2
  47. package/dist/widget-martan.9.min.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack://widgetMartan/./src/widgets/reviews/headers/Compact.vue?5c61","webpack://widgetMartan/./src/widgets/reviews/components/RatingSummary.vue?5cba","webpack://widgetMartan/src/widgets/reviews/components/RatingSummary.vue","webpack://widgetMartan/./src/widgets/reviews/components/RatingSummary.vue","webpack://widgetMartan/./src/widgets/reviews/components/RatingSummary.vue?cb8c","webpack://widgetMartan/./src/widgets/reviews/headers/Compact.vue?ed7a","webpack://widgetMartan/src/widgets/reviews/headers/Compact.vue","webpack://widgetMartan/./src/widgets/reviews/headers/Compact.vue","webpack://widgetMartan/./src/widgets/reviews/components/Rating.vue?a507","webpack://widgetMartan/./src/widgets/reviews/components/Rating.vue?cca9","webpack://widgetMartan/./src/widgets/reviews/components/Rating.vue?34e3","webpack://widgetMartan/src/widgets/reviews/components/Rating.vue","webpack://widgetMartan/./src/widgets/reviews/components/Rating.vue","webpack://widgetMartan/./src/widgets/reviews/components/RatingBreakdown.vue?98ff","webpack://widgetMartan/./src/widgets/reviews/components/Rating.vue?6f6d","webpack://widgetMartan/./src/widgets/reviews/components/Rating.vue?4189","webpack://widgetMartan/./src/widgets/reviews/components/RatingBreakdown.vue?eff2","webpack://widgetMartan/./src/widgets/reviews/components/RatingBreakdown.vue?4ab9","webpack://widgetMartan/./src/widgets/reviews/components/SortDropdown.vue?8af5","webpack://widgetMartan/./src/widgets/reviews/components/RatingBreakdown.vue?d63f","webpack://widgetMartan/./src/widgets/reviews/components/RatingBreakdown.vue?03ac","webpack://widgetMartan/src/widgets/reviews/components/RatingBreakdown.vue","webpack://widgetMartan/./src/widgets/reviews/components/RatingBreakdown.vue","webpack://widgetMartan/./src/widgets/reviews/components/SortDropdown.vue?8885","webpack://widgetMartan/./src/widgets/reviews/components/SortDropdown.vue?1fd2","webpack://widgetMartan/./src/widgets/reviews/components/SortDropdown.vue?a094","webpack://widgetMartan/./src/widgets/reviews/components/SortDropdown.vue?4238","webpack://widgetMartan/src/widgets/reviews/components/SortDropdown.vue","webpack://widgetMartan/./src/widgets/reviews/components/SortDropdown.vue","webpack://widgetMartan/./src/widgets/reviews/components/RatingSummary.vue?43ce","webpack://widgetMartan/./src/widgets/reviews/headers/Compact.vue?bf6e","webpack://widgetMartan/./src/widgets/reviews/components/RatingSummary.vue?61d7","webpack://widgetMartan/./src/widgets/reviews/components/RatingSummary.vue?df29","webpack://widgetMartan/./src/widgets/reviews/headers/Compact.vue?4dda","webpack://widgetMartan/./src/widgets/reviews/headers/Compact.vue?a5d2"],"names":["name","components","RatingBreakdown","props","configProp","visible","type","Boolean","default","rating","Object","five","four","three","two","one","average","Number","totalRating","recommended","data","currentActive","computed","totalRecommended","Math","round","mounted","addClickOutsideListener","beforeDestroy","removeClickOutsideListener","watch","newValue","$nextTick","methods","selectRating","$emit","document","addEventListener","handleClickOutside","removeEventListener","event","target","nodeName","classList","contains","$refs","ratingSummary","_vm","this","_h","$createElement","_c","_self","ref","staticClass","style","backgroundColor","config","widget_review","star_color","_v","_s","toFixed","_e","attrs","on","_m","RatingSummary","SortDropdown","Rating","showDropdown","showFilter","currentSort","formatReviewsCount","replace","toLocaleString","toggleDropdown","toggleFilter","onRatingSelected","onSortSelected","sortValue","class","$event","content","__esModule","module","i","locals","exports","add","color","String","stars","Array","fill","updateStars","max","min","map","_","index","getStarClass","star","getStarFill","component","_l","key","___CSS_LOADER_API_IMPORT___","push","ratingBreakdown","houverColor","lightenColor","getBarWidth","count","parseInt","width","sortOptions","value","label","selectSort","dropdown","option"],"mappings":"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","file":"widget-martan.3.min.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"mrtn-header--compact\"},[_c('div',{staticClass:\"mrtn-header__rating\"},[_c('div',{staticClass:\"mrtn-stars\"},[_c('Rating',{attrs:{\"rating\":_vm.average,\"color\":_vm.config.widget_review.star_color}})],1),_c('div',{staticClass:\"mrtn-header__info\"},[_c('span',{staticClass:\"mrtn-reviews-count\",on:{\"click\":_vm.toggleDropdown}},[_vm._v(_vm._s(_vm.formatReviewsCount)+\" Avaliações\")]),_c('button',{staticClass:\"mrtn-dropdown-toggle\",class:{ 'mrtn-dropdown-toggle--active': _vm.showDropdown },on:{\"click\":_vm.toggleDropdown}},[_c('svg',{attrs:{\"width\":\"12\",\"height\":\"12\",\"viewBox\":\"0 0 12 12\",\"fill\":\"none\"}},[_c('path',{attrs:{\"d\":\"M3 4.5L6 7.5L9 4.5\",\"stroke\":\"currentColor\",\"stroke-width\":\"1.5\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}})])]),_c('RatingSummary',{attrs:{\"config\":_vm.config,\"visible\":_vm.showDropdown,\"rating\":_vm.rating,\"average\":_vm.average,\"total-ratings\":_vm.totalRating,\"recommended\":_vm.recommended},on:{\"rating-selected\":_vm.onRatingSelected,\"close\":function($event){_vm.showDropdown = false}}})],1)]),_c('div',{staticClass:\"mrtn-filter-container\"},[_c('button',{staticClass:\"mrtn-filter-btn\",on:{\"click\":_vm.toggleFilter}},[_c('svg',{attrs:{\"width\":\"16\",\"height\":\"16\",\"viewBox\":\"0 0 16 16\",\"fill\":\"none\"}},[_c('path',{attrs:{\"d\":\"M2 4H14M4 8H12M6 12H10\",\"stroke\":\"currentColor\",\"stroke-width\":\"1.5\",\"stroke-linecap\":\"round\"}}),_c('circle',{attrs:{\"cx\":\"4\",\"cy\":\"4\",\"r\":\"1.5\",\"fill\":\"currentColor\"}}),_c('circle',{attrs:{\"cx\":\"12\",\"cy\":\"8\",\"r\":\"1.5\",\"fill\":\"currentColor\"}}),_c('circle',{attrs:{\"cx\":\"8\",\"cy\":\"12\",\"r\":\"1.5\",\"fill\":\"currentColor\"}})])]),_c('SortDropdown',{attrs:{\"visible\":_vm.showFilter,\"current-sort\":_vm.currentSort},on:{\"sort-selected\":_vm.onSortSelected,\"close\":function($event){_vm.showFilter = false}}})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RatingSummary.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RatingSummary.vue?vue&type=script&lang=js\"","<template>\n <div v-if=\"visible\" ref=\"ratingSummary\" class=\"mrtn-rating-summary\">\n <div class=\"mrtn-rating-summary__header\">\n <div class=\"mrtn-average-section\">\n <div class=\"mrtn-average-display\">\n <div class=\"mrtn-average-badge\" :style=\"{ backgroundColor: config.widget_review.star_color }\">\n {{ average.toFixed(1) }} / 5\n </div>\n </div>\n </div>\n\n <span v-if=\"totalRecommended\" class=\"mrtn-average-score__text\">\n {{ totalRecommended }}\n </span>\n </div>\n\n <RatingBreakdown :config=\"config\" :rating=\"rating\" :total-rating=\"totalRating\" :current-active=\"currentActive\"\n @rating-selected=\"selectRating\" />\n\n <div class=\"mrtn-rating-summary__footer\">\n <span class=\"mrtn-rating-summary__powered\">Powered by MARTAN.app</span>\n </div>\n </div>\n</template>\n\n<script>\nimport RatingBreakdown from './RatingBreakdown.vue'\nimport { configProp } from \"../../../utils/configProps\";\n\nexport default {\n name: 'RatingSummary',\n\n components: {\n RatingBreakdown\n },\n\n props: {\n ...configProp,\n\n visible: {\n type: Boolean,\n default: false\n },\n\n rating: {\n type: Object,\n default: () => ({\n five: 0,\n four: 0,\n three: 0,\n two: 0,\n one: 0\n })\n },\n\n average: {\n type: Number,\n default: 0\n },\n\n totalRating: {\n type: Number,\n default: 0\n },\n\n recommended: {\n type: Number,\n default: 0\n }\n },\n\n data() {\n return {\n currentActive: null\n }\n },\n\n computed: {\n totalRecommended() {\n if (this.recommended === 0) return null\n return `${Math.round(this.recommended)}% dos clientes recomendam este produto.`\n }\n },\n\n mounted() {\n this.addClickOutsideListener()\n },\n\n beforeDestroy() {\n this.removeClickOutsideListener()\n },\n\n watch: {\n visible(newValue) {\n if (newValue) {\n this.$nextTick(() => {\n this.addClickOutsideListener()\n })\n } else {\n this.removeClickOutsideListener()\n }\n }\n },\n\n methods: {\n selectRating(rating) {\n if (this.currentActive === rating) {\n this.currentActive = null\n this.$emit('rating-selected', null)\n } else {\n this.currentActive = rating\n this.$emit('rating-selected', rating)\n }\n },\n\n addClickOutsideListener() {\n document.addEventListener('click', this.handleClickOutside)\n },\n\n removeClickOutsideListener() {\n document.removeEventListener('click', this.handleClickOutside)\n },\n\n handleClickOutside(event) {\n if (!this.visible) return\n if (\n event.target &&\n (\n event.target.nodeName === 'svg' ||\n event.target.nodeName === 'SVG' ||\n (event.target.classList && (\n event.target.classList.contains('mrtn-dropdown-toggle') ||\n event.target.classList.contains('mrtn-reviews-count')\n ))\n )\n ) {\n return\n }\n if (this.$refs.ratingSummary && !this.$refs.ratingSummary.contains(event.target)) {\n this.$emit('close')\n }\n }\n }\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.mrtn-rating-summary {\n position: absolute;\n top: 100%;\n left: 0;\n right: 0;\n background: white;\n border: 1px solid #e5e5e5;\n border-radius: 8px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);\n z-index: 1000;\n margin-top: 8px;\n padding: 24px 18px;\n min-width: 300px;\n}\n\n.mrtn-rating-summary__header {\n margin-bottom: 16px;\n text-align: center;\n}\n\n.mrtn-average-score {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n}\n\n.mrtn-average-score__number {\n font-size: 24px;\n font-weight: 700;\n color: #000000;\n}\n\n.mrtn-average-score__text {\n color: #666;\n font-size: 16px;\n font-weight: 100;\n}\n\n.mrtn-average-section {\n display: flex;\n justify-content: center;\n margin-bottom: 16px;\n}\n\n.mrtn-average-display {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.mrtn-stars-container {\n display: flex;\n align-items: center;\n\n @media (max-width: 580px) {\n display: none;\n }\n}\n\n.mrtn-average-badge {\n background: #ff6b35;\n color: white;\n padding: 8px 16px;\n border-radius: 20px;\n font-weight: 600;\n font-size: 14px;\n}\n\n.mrtn-rating-summary__footer {\n text-align: center;\n margin-top: 12px;\n}\n\n.mrtn-rating-summary__powered {\n font-size: 11px;\n color: #999999;\n}\n</style>\n","import { render, staticRenderFns } from \"./RatingSummary.vue?vue&type=template&id=b190791c&scoped=true\"\nimport script from \"./RatingSummary.vue?vue&type=script&lang=js\"\nexport * from \"./RatingSummary.vue?vue&type=script&lang=js\"\nimport style0 from \"./RatingSummary.vue?vue&type=style&index=0&id=b190791c&prod&lang=scss&scoped=true\"\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 \"b190791c\",\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 (_vm.visible)?_c('div',{ref:\"ratingSummary\",staticClass:\"mrtn-rating-summary\"},[_c('div',{staticClass:\"mrtn-rating-summary__header\"},[_c('div',{staticClass:\"mrtn-average-section\"},[_c('div',{staticClass:\"mrtn-average-display\"},[_c('div',{staticClass:\"mrtn-average-badge\",style:({ backgroundColor: _vm.config.widget_review.star_color })},[_vm._v(\" \"+_vm._s(_vm.average.toFixed(1))+\" / 5 \")])])]),(_vm.totalRecommended)?_c('span',{staticClass:\"mrtn-average-score__text\"},[_vm._v(\" \"+_vm._s(_vm.totalRecommended)+\" \")]):_vm._e()]),_c('RatingBreakdown',{attrs:{\"config\":_vm.config,\"rating\":_vm.rating,\"total-rating\":_vm.totalRating,\"current-active\":_vm.currentActive},on:{\"rating-selected\":_vm.selectRating}}),_vm._m(0)],1):_vm._e()}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"mrtn-rating-summary__footer\"},[_c('span',{staticClass:\"mrtn-rating-summary__powered\"},[_vm._v(\"Powered by MARTAN.app\")])])}]\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Compact.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Compact.vue?vue&type=script&lang=js\"","<template>\n <div class=\"mrtn-header--compact\">\n <div class=\"mrtn-header__rating\">\n <div class=\"mrtn-stars\">\n <Rating :rating=\"average\" :color=\"config.widget_review.star_color\" />\n </div>\n\n <div class=\"mrtn-header__info\">\n <span class=\"mrtn-reviews-count\" @click=\"toggleDropdown\">{{ formatReviewsCount }} Avaliações</span>\n <button class=\"mrtn-dropdown-toggle\" @click=\"toggleDropdown\"\n :class=\"{ 'mrtn-dropdown-toggle--active': showDropdown }\">\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\">\n <path d=\"M3 4.5L6 7.5L9 4.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\" />\n </svg>\n </button>\n\n <RatingSummary :config=\"config\" :visible=\"showDropdown\" :rating=\"rating\" :average=\"average\"\n :total-ratings=\"totalRating\" :recommended=\"recommended\" @rating-selected=\"onRatingSelected\"\n @close=\"showDropdown = false\" />\n </div>\n </div>\n\n <div class=\"mrtn-filter-container\">\n <button class=\"mrtn-filter-btn\" @click=\"toggleFilter\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path d=\"M2 4H14M4 8H12M6 12H10\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" />\n <circle cx=\"4\" cy=\"4\" r=\"1.5\" fill=\"currentColor\" />\n <circle cx=\"12\" cy=\"8\" r=\"1.5\" fill=\"currentColor\" />\n <circle cx=\"8\" cy=\"12\" r=\"1.5\" fill=\"currentColor\" />\n </svg>\n </button>\n\n <SortDropdown :visible=\"showFilter\" :current-sort=\"currentSort\" @sort-selected=\"onSortSelected\" @close=\"showFilter = false\" />\n </div>\n </div>\n</template>\n\n<script>\nimport RatingSummary from '../components/RatingSummary.vue'\nimport SortDropdown from '../components/SortDropdown.vue'\nimport Rating from '../components/Rating.vue';\n\nimport { configProp } from \"../../../utils/configProps\";\n\nexport default {\n name: 'Compact',\n\n components: {\n RatingSummary,\n SortDropdown,\n Rating\n },\n\n props: {\n ...configProp,\n rating: {\n type: Object,\n default: () => ({\n five: 0,\n four: 0,\n three: 0,\n two: 0,\n one: 0\n })\n },\n\n recommended: {\n type: Number,\n default: 0\n },\n\n average: {\n type: Number,\n default: 0\n },\n\n totalRating: {\n type: Number,\n default: 0\n }\n },\n\n data() {\n return {\n showDropdown: false,\n showFilter: false,\n currentSort: 'most_recent'\n }\n },\n\n computed: {\n formatReviewsCount() {\n if (this.totalRating >= 1000) {\n return (this.totalRating / 1000).toFixed(1).replace('.0', '') + 'k'\n }\n return this.totalRating.toLocaleString()\n }\n },\n\n methods: {\n toggleDropdown() {\n this.showDropdown = !this.showDropdown\n },\n\n toggleFilter() {\n this.showFilter = !this.showFilter\n this.$emit('filter-toggle', this.showFilter)\n },\n\n onRatingSelected(rating) {\n this.$emit('rating-selected', rating)\n },\n\n onSortSelected(sortValue) {\n this.currentSort = sortValue\n this.showFilter = false\n this.$emit('sort-selected', sortValue)\n }\n }\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.mrtn-header--compact {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 16px 0;\n background: white;\n}\n\n.mrtn-header__rating {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.mrtn-stars {\n display: flex;\n gap: 2px;\n}\n\n.mrtn-star {\n font-size: 16px;\n color: #e5e5e5;\n transition: color 0.2s ease;\n\n &--filled {\n color: #000000;\n }\n}\n\n.mrtn-header__info {\n display: flex;\n align-items: center;\n gap: 8px;\n position: relative;\n}\n\n.mrtn-reviews-count {\n font-size: 14px;\n font-weight: 500;\n color: #000000;\n cursor: pointer;\n}\n\n.mrtn-dropdown-toggle {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 20px;\n height: 20px;\n border: none;\n background: transparent;\n cursor: pointer;\n color: #000000;\n transition: transform 0.2s ease;\n\n &:hover {\n color: #666666;\n }\n\n &--active {\n transform: rotate(180deg);\n }\n\n svg {\n width: 12px;\n height: 12px;\n }\n}\n\n.mrtn-filter-container {\n position: relative;\n}\n\n.mrtn-filter-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 25px;\n height: 25px;\n border: 1px solid #e5e5e5;\n border-radius: 6px;\n background: white;\n cursor: pointer;\n color: #000000;\n transition: all 0.2s ease;\n\n &:hover {\n border-color: #cccccc;\n background: #f8f8f8;\n }\n\n &:active {\n transform: scale(0.95);\n }\n\n svg {\n width: 16px;\n height: 16px;\n }\n}\n</style>\n","import { render, staticRenderFns } from \"./Compact.vue?vue&type=template&id=4d4d0d6b&scoped=true\"\nimport script from \"./Compact.vue?vue&type=script&lang=js\"\nexport * from \"./Compact.vue?vue&type=script&lang=js\"\nimport style0 from \"./Compact.vue?vue&type=style&index=0&id=4d4d0d6b&prod&lang=scss&scoped=true\"\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 \"4d4d0d6b\",\n null\n \n)\n\nexport default component.exports","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??ref--2-2!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Rating.vue?vue&type=style&index=0&id=39af319e&prod&lang=css\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"5a552598\", content, true, {});","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"martan-rating\"},_vm._l((_vm.stars),function(star,index){return _c('svg',{key:index,staticClass:\"icon icon-tabler\",class:_vm.getStarClass(star),style:({ color: _vm.color }),attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"14\",\"height\":\"14\",\"viewBox\":\"0 0 24 24\",\"stroke-width\":\"2\",\"stroke\":\"currentColor\",\"fill\":\"none\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}},[(star === 0.5)?_c('defs',[_c('linearGradient',{attrs:{\"id\":(\"gradient-\" + index),\"x1\":\"0%\",\"y1\":\"0%\",\"x2\":\"100%\",\"y2\":\"0%\"}},[_c('stop',{style:((\"stop-color:\" + _vm.color + \";stop-opacity:1\")),attrs:{\"offset\":\"50%\"}}),_c('stop',{style:((\"stop-color:\" + _vm.color + \";stop-opacity:0\")),attrs:{\"offset\":\"50%\"}})],1)],1):_vm._e(),_c('path',{attrs:{\"stroke\":\"none\",\"d\":\"M0 0h24v24H0z\",\"fill\":\"none\"}}),_c('path',{attrs:{\"d\":\"M8.243 7.34l-6.38 .925l-.113 .023a1 1 0 0 0 -.44 1.684l4.622 4.499l-1.09 6.355l-.013 .11a1 1 0 0 0 1.464 .944l5.706 -3l5.693 3l.1 .046a1 1 0 0 0 1.352 -1.1l-1.091 -6.355l4.624 -4.5l.078 -.085a1 1 0 0 0 -.633 -1.62l-6.38 -.926l-2.852 -5.78a1 1 0 0 0 -1.794 0l-2.853 5.78z\",\"fill\":_vm.getStarFill(star, index)}})])}),0)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Rating.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Rating.vue?vue&type=script&lang=js\"","<template>\n <span class=\"martan-rating\">\n <svg\n v-for=\"(star, index) in stars\"\n :key=\"index\"\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"icon icon-tabler\"\n :class=\"getStarClass(star)\"\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n stroke-width=\"2\"\n stroke=\"currentColor\"\n fill=\"none\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n :style=\"{ color }\"\n >\n <defs v-if=\"star === 0.5\">\n <linearGradient :id=\"`gradient-${index}`\" x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"0%\">\n <stop offset=\"50%\" :style=\"`stop-color:${color};stop-opacity:1`\" />\n <stop offset=\"50%\" :style=\"`stop-color:${color};stop-opacity:0`\" />\n </linearGradient>\n </defs>\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\" />\n <path\n d=\"M8.243 7.34l-6.38 .925l-.113 .023a1 1 0 0 0 -.44 1.684l4.622 4.499l-1.09 6.355l-.013 .11a1 1 0 0 0 1.464 .944l5.706 -3l5.693 3l.1 .046a1 1 0 0 0 1.352 -1.1l-1.091 -6.355l4.624 -4.5l.078 -.085a1 1 0 0 0 -.633 -1.62l-6.38 -.926l-2.852 -5.78a1 1 0 0 0 -1.794 0l-2.853 5.78z\"\n :fill=\"getStarFill(star, index)\" />\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: 'Rating',\n\n props: {\n rating: {\n type: Number,\n default: 5\n },\n\n color: {\n type: String,\n default: \"#000000\"\n },\n },\n\n data() {\n return {\n stars: Array(5).fill(0)\n };\n },\n\n mounted() {\n this.updateStars();\n },\n\n methods: {\n updateStars() {\n const rating = Math.max(0, Math.min(5, this.rating));\n this.stars = Array(5).fill(0).map((_, index) => {\n const starPosition = index + 1;\n if (rating >= starPosition) {\n return 1;\n } else if (rating > index) {\n return 0.5;\n } else {\n return 0;\n }\n });\n },\n\n getStarClass(star) {\n if (star === 1) {\n return 'icon-tabler-star-filled';\n } else if (star === 0.5) {\n return 'icon-tabler-star-half';\n } else {\n return 'icon-tabler-star';\n }\n },\n\n getStarFill(star, index) {\n if (star === 1) {\n return 'currentColor';\n } else if (star === 0.5) {\n return `url(#gradient-${index})`;\n } else {\n return 'none';\n }\n }\n },\n\n watch: {\n rating: 'updateStars'\n }\n};\n</script>\n\n<style lang=\"css\">\n.martan-rating {\n display: flex;\n gap: 4px;\n}\n</style>\n","import { render, staticRenderFns } from \"./Rating.vue?vue&type=template&id=39af319e\"\nimport script from \"./Rating.vue?vue&type=script&lang=js\"\nexport * from \"./Rating.vue?vue&type=script&lang=js\"\nimport style0 from \"./Rating.vue?vue&type=style&index=0&id=39af319e&prod&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","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??ref--2-2!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RatingBreakdown.vue?vue&type=style&index=0&id=121d360c&prod&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"8c4908ae\", content, true, {});","export * from \"-!../../../../../../node_modules/vue-style-loader/index.js!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??ref--2-2!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Rating.vue?vue&type=style&index=0&id=39af319e&prod&lang=css\"","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".martan-rating{display:flex;gap:4px}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","export * from \"-!../../../../../../node_modules/vue-style-loader/index.js!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??ref--2-2!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RatingBreakdown.vue?vue&type=style&index=0&id=121d360c&prod&lang=scss&scoped=true\"","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".mrtn-rating-breakdown[data-v-121d360c]{display:flex;flex-direction:column;width:100%}.mrtn-rating-row[data-v-121d360c]{align-items:center;border-radius:6px;cursor:pointer;display:flex;gap:12px;padding:8px;position:relative;transition:all .2s ease}.mrtn-rating-row--active[data-v-121d360c],.mrtn-rating-row[data-v-121d360c]:hover{background:var(--hover-color)}.mrtn-rating-row--active[data-v-121d360c]{box-shadow:0 0 0 2px var(--hover-color);transform:scale(1.02);z-index:10}.mrtn-rating-breakdown--has-active .mrtn-rating-row[data-v-121d360c]:not(.mrtn-rating-row--active){filter:grayscale(.8);opacity:.4}.mrtn-rating-stars[data-v-121d360c]{display:flex;gap:2px;min-width:80px}.mrtn-rating-star[data-v-121d360c]{color:#e5e5e5;font-size:14px}.mrtn-rating-star--filled[data-v-121d360c]{color:#000}.mrtn-rating-bar[data-v-121d360c]{background:#f0f0f0;border-radius:4px;flex:1;height:8px;overflow:hidden;position:relative;transition:all .2s ease}.mrtn-rating-bar__fill[data-v-121d360c]{border-radius:4px;height:100%;transition:width .3s ease}.mrtn-rating-count[data-v-121d360c]{color:#666;font-size:12px;min-width:40px;text-align:right}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??ref--2-2!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SortDropdown.vue?vue&type=style&index=0&id=2b3eeb35&prod&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"a1278eac\", content, true, {});","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"mrtn-rating-breakdown\",class:{ 'mrtn-rating-breakdown--has-active': _vm.currentActive !== null },style:('--hover-color: ' + _vm.houverColor)},_vm._l((_vm.ratingBreakdown),function(count,stars){return _c('div',{key:stars,staticClass:\"mrtn-rating-row\",class:{ 'mrtn-rating-row--active': _vm.currentActive === stars },on:{\"click\":function($event){return _vm.selectRating(stars)}}},[_c('div',{staticClass:\"mrtn-rating-stars\"},[_c('Rating',{attrs:{\"rating\":parseInt(stars),\"color\":_vm.config.widget_review.star_color}})],1),_c('div',{staticClass:\"mrtn-rating-bar\"},[_c('div',{staticClass:\"mrtn-rating-bar__fill\",style:({\n width: _vm.getBarWidth(count) + '%',\n backgroundColor: _vm.config.widget_review.star_color\n })})]),_c('span',{staticClass:\"mrtn-rating-count\"},[_vm._v(\"(\"+_vm._s(count)+\")\")])])}),0)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RatingBreakdown.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RatingBreakdown.vue?vue&type=script&lang=js\"","<template>\n <div class=\"mrtn-rating-breakdown\" :style=\"'--hover-color: ' + houverColor\" :class=\"{ 'mrtn-rating-breakdown--has-active': currentActive !== null }\">\n <div v-for=\"(count, stars) in ratingBreakdown\" :key=\"stars\" class=\"mrtn-rating-row\"\n :class=\"{ 'mrtn-rating-row--active': currentActive === stars }\" @click=\"selectRating(stars)\">\n <div class=\"mrtn-rating-stars\">\n <Rating :rating=\"parseInt(stars)\" :color=\"config.widget_review.star_color\" />\n </div>\n\n <div class=\"mrtn-rating-bar\">\n <div class=\"mrtn-rating-bar__fill\" :style=\"{\n width: getBarWidth(count) + '%',\n backgroundColor: config.widget_review.star_color\n }\"></div>\n </div>\n\n <span class=\"mrtn-rating-count\">({{ count }})</span>\n </div>\n </div>\n</template>\n\n<script>\nimport { configProp } from \"../../../utils/configProps\";\nimport Rating from \"./Rating.vue\";\nimport { lightenColor } from \"../../../utils/lighten-color\";\n\nexport default {\n name: 'RatingBreakdown',\n\n props: {\n ...configProp,\n rating: {\n type: Object,\n default: () => ({\n five: 0,\n four: 0,\n three: 0,\n two: 0,\n one: 0\n })\n },\n\n totalRating: {\n type: Number,\n default: 0\n },\n\n\n average: {\n type: Number,\n default: 0\n }\n },\n\n data() {\n return {\n currentActive: null\n }\n },\n\n computed: {\n ratingBreakdown() {\n return {\n 5: this.rating.five,\n 4: this.rating.four,\n 3: this.rating.three,\n 2: this.rating.two,\n 1: this.rating.one\n }\n },\n\n houverColor() {\n if (!this.config.widget_review.star_color) return null\n return lightenColor(this.config.widget_review.star_color, 0.9)\n }\n },\n\n methods: {\n lightenColor,\n getBarWidth(count) {\n if (this.totalRating === 0) return 0\n return (count / this.totalRating) * 100\n },\n\n selectRating(rating) {\n if (this.currentActive === rating) {\n this.currentActive = null\n } else {\n this.currentActive = rating\n }\n this.$emit('rating-selected', this.currentActive)\n }\n },\n\n components: {\n Rating\n }\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.mrtn-rating-breakdown {\n display: flex;\n flex-direction: column;\n width: 100%;\n}\n\n.mrtn-rating-row {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 8px;\n border-radius: 6px;\n cursor: pointer;\n transition: all 0.2s ease;\n position: relative;\n\n &:hover {\n background: var(--hover-color);\n }\n\n &--active {\n background: var(--hover-color);\n box-shadow: 0 0 0 2px var(--hover-color);\n transform: scale(1.02);\n z-index: 10;\n }\n}\n\n.mrtn-rating-breakdown--has-active .mrtn-rating-row:not(.mrtn-rating-row--active) {\n opacity: 0.4;\n filter: grayscale(0.8);\n}\n\n.mrtn-rating-stars {\n display: flex;\n gap: 2px;\n min-width: 80px;\n}\n\n.mrtn-rating-star {\n font-size: 14px;\n color: #e5e5e5;\n\n &--filled {\n color: #000000;\n }\n}\n\n.mrtn-rating-bar {\n flex: 1;\n height: 8px;\n background: #f0f0f0;\n border-radius: 4px;\n overflow: hidden;\n position: relative;\n transition: all 0.2s ease;\n}\n\n.mrtn-rating-bar__fill {\n height: 100%;\n border-radius: 4px;\n transition: width 0.3s ease;\n}\n\n.mrtn-rating-count {\n font-size: 12px;\n color: #666666;\n min-width: 40px;\n text-align: right;\n}\n</style>\n","import { render, staticRenderFns } from \"./RatingBreakdown.vue?vue&type=template&id=121d360c&scoped=true\"\nimport script from \"./RatingBreakdown.vue?vue&type=script&lang=js\"\nexport * from \"./RatingBreakdown.vue?vue&type=script&lang=js\"\nimport style0 from \"./RatingBreakdown.vue?vue&type=style&index=0&id=121d360c&prod&lang=scss&scoped=true\"\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 \"121d360c\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../../../node_modules/vue-style-loader/index.js!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??ref--2-2!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SortDropdown.vue?vue&type=style&index=0&id=2b3eeb35&prod&lang=scss&scoped=true\"","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".mrtn-sort-dropdown[data-v-2b3eeb35]{background:#fff;border:1px solid #e5e5e5;border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,.1);margin-top:8px;min-width:200px;padding:16px;position:absolute;right:0;top:100%;z-index:1000}.mrtn-sort-dropdown__header[data-v-2b3eeb35]{margin-bottom:12px}.mrtn-sort-dropdown__title[data-v-2b3eeb35]{color:#000;font-size:16px;font-weight:600;margin:0}.mrtn-sort-dropdown__options[data-v-2b3eeb35]{display:flex;flex-direction:column;gap:4px}.mrtn-sort-option[data-v-2b3eeb35]{align-items:center;border-radius:4px;cursor:pointer;display:flex;justify-content:space-between;padding:8px 12px;transition:background-color .2s ease}.mrtn-sort-option[data-v-2b3eeb35]:hover{background:#f8f8f8}.mrtn-sort-option--active[data-v-2b3eeb35]{background:#f0f0f0}.mrtn-sort-option__text[data-v-2b3eeb35]{color:#000;font-size:14px;font-weight:400}.mrtn-sort-option__check[data-v-2b3eeb35]{color:#000;flex-shrink:0}.mrtn-sort-dropdown__footer[data-v-2b3eeb35]{margin-top:12px;text-align:right}.mrtn-sort-dropdown__powered[data-v-2b3eeb35]{color:#999;font-size:11px}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.visible)?_c('div',{ref:\"dropdown\",staticClass:\"mrtn-sort-dropdown\"},[_vm._m(0),_c('div',{staticClass:\"mrtn-sort-dropdown__options\"},_vm._l((_vm.sortOptions),function(option){return _c('div',{key:option.value,staticClass:\"mrtn-sort-option\",class:{ 'mrtn-sort-option--active': _vm.currentSort === option.value },on:{\"click\":function($event){return _vm.selectSort(option.value)}}},[_c('span',{staticClass:\"mrtn-sort-option__text\"},[_vm._v(_vm._s(option.label))]),(_vm.currentSort === option.value)?_c('svg',{staticClass:\"mrtn-sort-option__check\",attrs:{\"width\":\"16\",\"height\":\"16\",\"viewBox\":\"0 0 16 16\",\"fill\":\"none\"}},[_c('path',{attrs:{\"d\":\"M13.5 4.5L6 12L2.5 8.5\",\"stroke\":\"currentColor\",\"stroke-width\":\"2\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}})]):_vm._e()])}),0),_vm._m(1)]):_vm._e()}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"mrtn-sort-dropdown__header\"},[_c('h3',{staticClass:\"mrtn-sort-dropdown__title\"},[_vm._v(\"Ordenar por\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"mrtn-sort-dropdown__footer\"},[_c('span',{staticClass:\"mrtn-sort-dropdown__powered\"},[_vm._v(\"Powered by MARTAN.app\")])])}]\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SortDropdown.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SortDropdown.vue?vue&type=script&lang=js\"","<template>\n <div v-if=\"visible\" ref=\"dropdown\" class=\"mrtn-sort-dropdown\">\n <div class=\"mrtn-sort-dropdown__header\">\n <h3 class=\"mrtn-sort-dropdown__title\">Ordenar por</h3>\n </div>\n\n <div class=\"mrtn-sort-dropdown__options\">\n <div\n v-for=\"option in sortOptions\"\n :key=\"option.value\"\n class=\"mrtn-sort-option\"\n :class=\"{ 'mrtn-sort-option--active': currentSort === option.value }\"\n @click=\"selectSort(option.value)\"\n >\n <span class=\"mrtn-sort-option__text\">{{ option.label }}</span>\n <svg\n v-if=\"currentSort === option.value\"\n class=\"mrtn-sort-option__check\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n >\n <path d=\"M13.5 4.5L6 12L2.5 8.5\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </div>\n </div>\n\n <div class=\"mrtn-sort-dropdown__footer\">\n <span class=\"mrtn-sort-dropdown__powered\">Powered by MARTAN.app</span>\n </div>\n </div>\n</template>\n\n<script>\nexport default {\n name: 'SortDropdown',\n\n props: {\n visible: {\n type: Boolean,\n default: false\n },\n\n currentSort: {\n type: String,\n default: 'most_recent'\n }\n },\n\n data() {\n return {\n sortOptions: [\n { value: 'most_recent', label: 'Recentes' },\n { value: 'most_voted', label: 'Mais úteis' },\n { value: 'most_positive', label: 'Positivas' },\n { value: 'most_negative', label: 'Negativas' }\n ]\n }\n },\n\n mounted() {\n this.addClickOutsideListener()\n },\n\n beforeDestroy() {\n this.removeClickOutsideListener()\n },\n\n watch: {\n visible(newValue) {\n if (newValue) {\n this.$nextTick(() => {\n this.addClickOutsideListener()\n })\n } else {\n this.removeClickOutsideListener()\n }\n }\n },\n\n methods: {\n selectSort(sortValue) {\n this.$emit('sort-selected', sortValue)\n },\n\n addClickOutsideListener() {\n document.addEventListener('click', this.handleClickOutside)\n },\n\n removeClickOutsideListener() {\n document.removeEventListener('click', this.handleClickOutside)\n },\n\n handleClickOutside(event) {\n if (!this.visible) return\n if (\n event.target &&\n event.target.classList &&\n event.target.classList.contains('mrtn-filter-btn') &&\n event.target.nodeName !== 'svg' &&\n event.target.nodeName !== 'SVG'\n ) {\n return\n }\n if (this.$refs.dropdown && !this.$refs.dropdown.contains(event.target)) {\n this.$emit('close')\n }\n }\n }\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.mrtn-sort-dropdown {\n position: absolute;\n top: 100%;\n right: 0;\n background: white;\n border: 1px solid #e5e5e5;\n border-radius: 8px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);\n z-index: 1000;\n margin-top: 8px;\n padding: 16px;\n min-width: 200px;\n}\n\n.mrtn-sort-dropdown__header {\n margin-bottom: 12px;\n}\n\n.mrtn-sort-dropdown__title {\n font-size: 16px;\n font-weight: 600;\n color: #000000;\n margin: 0;\n}\n\n.mrtn-sort-dropdown__options {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.mrtn-sort-option {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px 12px;\n border-radius: 4px;\n cursor: pointer;\n transition: background-color 0.2s ease;\n\n &:hover {\n background: #f8f8f8;\n }\n\n &--active {\n background: #f0f0f0;\n }\n}\n\n.mrtn-sort-option__text {\n font-size: 14px;\n color: #000000;\n font-weight: 400;\n}\n\n.mrtn-sort-option__check {\n color: #000000;\n flex-shrink: 0;\n}\n\n.mrtn-sort-dropdown__footer {\n margin-top: 12px;\n text-align: right;\n}\n\n.mrtn-sort-dropdown__powered {\n font-size: 11px;\n color: #999999;\n}\n</style>\n","import { render, staticRenderFns } from \"./SortDropdown.vue?vue&type=template&id=2b3eeb35&scoped=true\"\nimport script from \"./SortDropdown.vue?vue&type=script&lang=js\"\nexport * from \"./SortDropdown.vue?vue&type=script&lang=js\"\nimport style0 from \"./SortDropdown.vue?vue&type=style&index=0&id=2b3eeb35&prod&lang=scss&scoped=true\"\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 \"2b3eeb35\",\n null\n \n)\n\nexport default component.exports","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??ref--2-2!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RatingSummary.vue?vue&type=style&index=0&id=b190791c&prod&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"4a045d99\", content, true, {});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??ref--2-2!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Compact.vue?vue&type=style&index=0&id=4d4d0d6b&prod&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"b015bed6\", content, true, {});","export * from \"-!../../../../../../node_modules/vue-style-loader/index.js!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??ref--2-2!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RatingSummary.vue?vue&type=style&index=0&id=b190791c&prod&lang=scss&scoped=true\"","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".mrtn-rating-summary[data-v-b190791c]{background:#fff;border:1px solid #e5e5e5;border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,.1);left:0;margin-top:8px;min-width:300px;padding:24px 18px;position:absolute;right:0;top:100%;z-index:1000}.mrtn-rating-summary__header[data-v-b190791c]{margin-bottom:16px;text-align:center}.mrtn-average-score[data-v-b190791c]{align-items:center;display:flex;gap:8px;justify-content:center}.mrtn-average-score__number[data-v-b190791c]{color:#000;font-size:24px;font-weight:700}.mrtn-average-score__text[data-v-b190791c]{color:#666;font-size:16px;font-weight:100}.mrtn-average-section[data-v-b190791c]{display:flex;justify-content:center;margin-bottom:16px}.mrtn-average-display[data-v-b190791c]{gap:12px}.mrtn-average-display[data-v-b190791c],.mrtn-stars-container[data-v-b190791c]{align-items:center;display:flex}@media(max-width:580px){.mrtn-stars-container[data-v-b190791c]{display:none}}.mrtn-average-badge[data-v-b190791c]{background:#ff6b35;border-radius:20px;color:#fff;font-size:14px;font-weight:600;padding:8px 16px}.mrtn-rating-summary__footer[data-v-b190791c]{margin-top:12px;text-align:center}.mrtn-rating-summary__powered[data-v-b190791c]{color:#999;font-size:11px}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","export * from \"-!../../../../../../node_modules/vue-style-loader/index.js!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??ref--2-2!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Compact.vue?vue&type=style&index=0&id=4d4d0d6b&prod&lang=scss&scoped=true\"","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".mrtn-header--compact[data-v-4d4d0d6b]{align-items:center;background:#fff;display:flex;justify-content:space-between;padding:16px 0}.mrtn-header__rating[data-v-4d4d0d6b]{align-items:center;display:flex;gap:12px}.mrtn-stars[data-v-4d4d0d6b]{display:flex;gap:2px}.mrtn-star[data-v-4d4d0d6b]{color:#e5e5e5;font-size:16px;transition:color .2s ease}.mrtn-star--filled[data-v-4d4d0d6b]{color:#000}.mrtn-header__info[data-v-4d4d0d6b]{align-items:center;display:flex;gap:8px;position:relative}.mrtn-reviews-count[data-v-4d4d0d6b]{color:#000;cursor:pointer;font-size:14px;font-weight:500}.mrtn-dropdown-toggle[data-v-4d4d0d6b]{align-items:center;background:transparent;border:none;color:#000;cursor:pointer;display:flex;height:20px;justify-content:center;transition:transform .2s ease;width:20px}.mrtn-dropdown-toggle[data-v-4d4d0d6b]:hover{color:#666}.mrtn-dropdown-toggle--active[data-v-4d4d0d6b]{transform:rotate(180deg)}.mrtn-dropdown-toggle svg[data-v-4d4d0d6b]{height:12px;width:12px}.mrtn-filter-container[data-v-4d4d0d6b]{position:relative}.mrtn-filter-btn[data-v-4d4d0d6b]{align-items:center;background:#fff;border:1px solid #e5e5e5;border-radius:6px;color:#000;cursor:pointer;display:flex;height:25px;justify-content:center;transition:all .2s ease;width:25px}.mrtn-filter-btn[data-v-4d4d0d6b]:hover{background:#f8f8f8;border-color:#ccc}.mrtn-filter-btn[data-v-4d4d0d6b]:active{transform:scale(.95)}.mrtn-filter-btn svg[data-v-4d4d0d6b]{height:16px;width:16px}\", \"\"]);\n// Exports\nmodule.exports = exports;\n"],"sourceRoot":""}
1
+ {"version":3,"sources":["webpack://widgetMartan/./src/widgets/reviews/components/Rating.vue?c507","webpack://widgetMartan/./src/widgets/reviews/components/Rating.vue?ab9f","webpack://widgetMartan/./src/widgets/reviews/components/Rating.vue?03a2","webpack://widgetMartan/src/widgets/reviews/components/Rating.vue","webpack://widgetMartan/./src/widgets/reviews/components/Rating.vue","webpack://widgetMartan/./src/widgets/reviews/components/RatingBreakdown.vue?c0f1","webpack://widgetMartan/./src/widgets/reviews/components/Rating.vue?2ff4","webpack://widgetMartan/./src/widgets/reviews/components/Rating.vue?0e4b","webpack://widgetMartan/./src/widgets/reviews/components/RatingBreakdown.vue?b1e0","webpack://widgetMartan/./src/widgets/reviews/components/RatingBreakdown.vue?0822","webpack://widgetMartan/./src/widgets/reviews/components/SortDropdown.vue?bccc","webpack://widgetMartan/./src/widgets/reviews/components/RatingBreakdown.vue?e347","webpack://widgetMartan/./src/widgets/reviews/components/RatingBreakdown.vue?1232","webpack://widgetMartan/src/widgets/reviews/components/RatingBreakdown.vue","webpack://widgetMartan/./src/widgets/reviews/components/RatingBreakdown.vue","webpack://widgetMartan/./src/widgets/reviews/components/SortDropdown.vue?c1e6","webpack://widgetMartan/./src/widgets/reviews/components/SortDropdown.vue?3dca","webpack://widgetMartan/./src/widgets/reviews/components/SortDropdown.vue?a8fb","webpack://widgetMartan/./src/widgets/reviews/components/SortDropdown.vue?3555","webpack://widgetMartan/src/widgets/reviews/components/SortDropdown.vue","webpack://widgetMartan/./src/widgets/reviews/components/SortDropdown.vue","webpack://widgetMartan/./src/widgets/reviews/headers/Center.vue?4334","webpack://widgetMartan/./src/widgets/reviews/headers/Center.vue?467d","webpack://widgetMartan/./src/widgets/reviews/headers/Center.vue?16bb","webpack://widgetMartan/./src/widgets/reviews/headers/Center.vue?da56","webpack://widgetMartan/./src/widgets/reviews/headers/Center.vue?845e","webpack://widgetMartan/./src/widgets/reviews/headers/Center.vue?eb34","webpack://widgetMartan/./src/widgets/reviews/headers/Center.vue?d97b","webpack://widgetMartan/./src/widgets/reviews/headers/Center.vue?8b8b","webpack://widgetMartan/src/widgets/reviews/headers/Center.vue","webpack://widgetMartan/./src/widgets/reviews/headers/Center.vue"],"names":["content","__esModule","default","module","i","locals","exports","add","name","props","rating","type","Number","color","String","data","stars","Array","fill","mounted","updateStars","methods","Math","max","min","map","_","index","getStarClass","star","getStarFill","watch","component","_vm","this","_h","$createElement","_c","_self","staticClass","_l","key","class","style","attrs","_e","___CSS_LOADER_API_IMPORT___","push","configProp","Object","five","four","three","two","one","totalRating","average","currentActive","computed","ratingBreakdown","houverColor","config","widget_review","star_color","lightenColor","getBarWidth","count","selectRating","$emit","components","Rating","on","$event","parseInt","width","backgroundColor","_v","_s","visible","Boolean","currentSort","sortOptions","value","label","addClickOutsideListener","beforeDestroy","removeClickOutsideListener","newValue","$nextTick","selectSort","sortValue","document","addEventListener","handleClickOutside","removeEventListener","event","target","classList","contains","nodeName","$refs","dropdown","ref","_m","option","RatingBreakdown","SortDropdown","recommended","showDropdown","showFilter","formatReviewsCount","toFixed","replace","toLocaleString","toggleDropdown","onRatingSelected","onSortSelected","toggleFilter"],"mappings":"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","file":"widget-martan.3.min.js","sourcesContent":["// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??ref--2-2!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Rating.vue?vue&type=style&index=0&id=39af319e&prod&lang=css\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"5a552598\", content, true, {});","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"martan-rating\"},_vm._l((_vm.stars),function(star,index){return _c('svg',{key:index,staticClass:\"icon icon-tabler\",class:_vm.getStarClass(star),style:({ color: _vm.color }),attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"14\",\"height\":\"14\",\"viewBox\":\"0 0 24 24\",\"stroke-width\":\"2\",\"stroke\":\"currentColor\",\"fill\":\"none\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}},[(star === 0.5)?_c('defs',[_c('linearGradient',{attrs:{\"id\":(\"gradient-\" + index),\"x1\":\"0%\",\"y1\":\"0%\",\"x2\":\"100%\",\"y2\":\"0%\"}},[_c('stop',{style:((\"stop-color:\" + _vm.color + \";stop-opacity:1\")),attrs:{\"offset\":\"50%\"}}),_c('stop',{style:((\"stop-color:\" + _vm.color + \";stop-opacity:0\")),attrs:{\"offset\":\"50%\"}})],1)],1):_vm._e(),_c('path',{attrs:{\"stroke\":\"none\",\"d\":\"M0 0h24v24H0z\",\"fill\":\"none\"}}),_c('path',{attrs:{\"d\":\"M8.243 7.34l-6.38 .925l-.113 .023a1 1 0 0 0 -.44 1.684l4.622 4.499l-1.09 6.355l-.013 .11a1 1 0 0 0 1.464 .944l5.706 -3l5.693 3l.1 .046a1 1 0 0 0 1.352 -1.1l-1.091 -6.355l4.624 -4.5l.078 -.085a1 1 0 0 0 -.633 -1.62l-6.38 -.926l-2.852 -5.78a1 1 0 0 0 -1.794 0l-2.853 5.78z\",\"fill\":_vm.getStarFill(star, index)}})])}),0)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Rating.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Rating.vue?vue&type=script&lang=js\"","<template>\n <span class=\"martan-rating\">\n <svg\n v-for=\"(star, index) in stars\"\n :key=\"index\"\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"icon icon-tabler\"\n :class=\"getStarClass(star)\"\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n stroke-width=\"2\"\n stroke=\"currentColor\"\n fill=\"none\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n :style=\"{ color }\"\n >\n <defs v-if=\"star === 0.5\">\n <linearGradient :id=\"`gradient-${index}`\" x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"0%\">\n <stop offset=\"50%\" :style=\"`stop-color:${color};stop-opacity:1`\" />\n <stop offset=\"50%\" :style=\"`stop-color:${color};stop-opacity:0`\" />\n </linearGradient>\n </defs>\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\" />\n <path\n d=\"M8.243 7.34l-6.38 .925l-.113 .023a1 1 0 0 0 -.44 1.684l4.622 4.499l-1.09 6.355l-.013 .11a1 1 0 0 0 1.464 .944l5.706 -3l5.693 3l.1 .046a1 1 0 0 0 1.352 -1.1l-1.091 -6.355l4.624 -4.5l.078 -.085a1 1 0 0 0 -.633 -1.62l-6.38 -.926l-2.852 -5.78a1 1 0 0 0 -1.794 0l-2.853 5.78z\"\n :fill=\"getStarFill(star, index)\" />\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: 'Rating',\n\n props: {\n rating: {\n type: Number,\n default: 5\n },\n\n color: {\n type: String,\n default: \"#000000\"\n },\n },\n\n data() {\n return {\n stars: Array(5).fill(0)\n };\n },\n\n mounted() {\n this.updateStars();\n },\n\n methods: {\n updateStars() {\n const rating = Math.max(0, Math.min(5, this.rating));\n this.stars = Array(5).fill(0).map((_, index) => {\n const starPosition = index + 1;\n if (rating >= starPosition) {\n return 1;\n } else if (rating > index) {\n return 0.5;\n } else {\n return 0;\n }\n });\n },\n\n getStarClass(star) {\n if (star === 1) {\n return 'icon-tabler-star-filled';\n } else if (star === 0.5) {\n return 'icon-tabler-star-half';\n } else {\n return 'icon-tabler-star';\n }\n },\n\n getStarFill(star, index) {\n if (star === 1) {\n return 'currentColor';\n } else if (star === 0.5) {\n return `url(#gradient-${index})`;\n } else {\n return 'none';\n }\n }\n },\n\n watch: {\n rating: 'updateStars'\n }\n};\n</script>\n\n<style lang=\"css\">\n.martan-rating {\n display: flex;\n gap: 4px;\n}\n</style>\n","import { render, staticRenderFns } from \"./Rating.vue?vue&type=template&id=39af319e\"\nimport script from \"./Rating.vue?vue&type=script&lang=js\"\nexport * from \"./Rating.vue?vue&type=script&lang=js\"\nimport style0 from \"./Rating.vue?vue&type=style&index=0&id=39af319e&prod&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","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??ref--2-2!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RatingBreakdown.vue?vue&type=style&index=0&id=121d360c&prod&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"8c4908ae\", content, true, {});","export * from \"-!../../../../../../node_modules/vue-style-loader/index.js!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??ref--2-2!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Rating.vue?vue&type=style&index=0&id=39af319e&prod&lang=css\"","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".martan-rating{display:flex;gap:4px}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","export * from \"-!../../../../../../node_modules/vue-style-loader/index.js!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??ref--2-2!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RatingBreakdown.vue?vue&type=style&index=0&id=121d360c&prod&lang=scss&scoped=true\"","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".mrtn-rating-breakdown[data-v-121d360c]{display:flex;flex-direction:column;width:100%}.mrtn-rating-row[data-v-121d360c]{align-items:center;border-radius:6px;cursor:pointer;display:flex;gap:12px;padding:8px;position:relative;transition:all .2s ease}.mrtn-rating-row--active[data-v-121d360c],.mrtn-rating-row[data-v-121d360c]:hover{background:var(--hover-color)}.mrtn-rating-row--active[data-v-121d360c]{box-shadow:0 0 0 2px var(--hover-color);transform:scale(1.02);z-index:10}.mrtn-rating-breakdown--has-active .mrtn-rating-row[data-v-121d360c]:not(.mrtn-rating-row--active){filter:grayscale(.8);opacity:.4}.mrtn-rating-stars[data-v-121d360c]{display:flex;gap:2px;min-width:80px}.mrtn-rating-star[data-v-121d360c]{color:#e5e5e5;font-size:14px}.mrtn-rating-star--filled[data-v-121d360c]{color:#000}.mrtn-rating-bar[data-v-121d360c]{background:#f0f0f0;border-radius:4px;flex:1;height:8px;overflow:hidden;position:relative;transition:all .2s ease}.mrtn-rating-bar__fill[data-v-121d360c]{border-radius:4px;height:100%;transition:width .3s ease}.mrtn-rating-count[data-v-121d360c]{color:#666;font-size:12px;min-width:40px;text-align:right}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??ref--2-2!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SortDropdown.vue?vue&type=style&index=0&id=2b3eeb35&prod&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"a1278eac\", content, true, {});","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"mrtn-rating-breakdown\",class:{ 'mrtn-rating-breakdown--has-active': _vm.currentActive !== null },style:('--hover-color: ' + _vm.houverColor)},_vm._l((_vm.ratingBreakdown),function(count,stars){return _c('div',{key:stars,staticClass:\"mrtn-rating-row\",class:{ 'mrtn-rating-row--active': _vm.currentActive === stars },on:{\"click\":function($event){return _vm.selectRating(stars)}}},[_c('div',{staticClass:\"mrtn-rating-stars\"},[_c('Rating',{attrs:{\"rating\":parseInt(stars),\"color\":_vm.config.widget_review.star_color}})],1),_c('div',{staticClass:\"mrtn-rating-bar\"},[_c('div',{staticClass:\"mrtn-rating-bar__fill\",style:({\n width: _vm.getBarWidth(count) + '%',\n backgroundColor: _vm.config.widget_review.star_color\n })})]),_c('span',{staticClass:\"mrtn-rating-count\"},[_vm._v(\"(\"+_vm._s(count)+\")\")])])}),0)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RatingBreakdown.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RatingBreakdown.vue?vue&type=script&lang=js\"","<template>\n <div class=\"mrtn-rating-breakdown\" :style=\"'--hover-color: ' + houverColor\" :class=\"{ 'mrtn-rating-breakdown--has-active': currentActive !== null }\">\n <div v-for=\"(count, stars) in ratingBreakdown\" :key=\"stars\" class=\"mrtn-rating-row\"\n :class=\"{ 'mrtn-rating-row--active': currentActive === stars }\" @click=\"selectRating(stars)\">\n <div class=\"mrtn-rating-stars\">\n <Rating :rating=\"parseInt(stars)\" :color=\"config.widget_review.star_color\" />\n </div>\n\n <div class=\"mrtn-rating-bar\">\n <div class=\"mrtn-rating-bar__fill\" :style=\"{\n width: getBarWidth(count) + '%',\n backgroundColor: config.widget_review.star_color\n }\"></div>\n </div>\n\n <span class=\"mrtn-rating-count\">({{ count }})</span>\n </div>\n </div>\n</template>\n\n<script>\nimport { configProp } from \"../../../utils/configProps\";\nimport Rating from \"./Rating.vue\";\nimport { lightenColor } from \"../../../utils/lighten-color\";\n\nexport default {\n name: 'RatingBreakdown',\n\n props: {\n ...configProp,\n rating: {\n type: Object,\n default: () => ({\n five: 0,\n four: 0,\n three: 0,\n two: 0,\n one: 0\n })\n },\n\n totalRating: {\n type: Number,\n default: 0\n },\n\n\n average: {\n type: Number,\n default: 0\n }\n },\n\n data() {\n return {\n currentActive: null\n }\n },\n\n computed: {\n ratingBreakdown() {\n return {\n 5: this.rating.five,\n 4: this.rating.four,\n 3: this.rating.three,\n 2: this.rating.two,\n 1: this.rating.one\n }\n },\n\n houverColor() {\n if (!this.config.widget_review.star_color) return null\n return lightenColor(this.config.widget_review.star_color, 0.9)\n }\n },\n\n methods: {\n lightenColor,\n getBarWidth(count) {\n if (this.totalRating === 0) return 0\n return (count / this.totalRating) * 100\n },\n\n selectRating(rating) {\n if (this.currentActive === rating) {\n this.currentActive = null\n } else {\n this.currentActive = rating\n }\n this.$emit('rating-selected', this.currentActive)\n }\n },\n\n components: {\n Rating\n }\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.mrtn-rating-breakdown {\n display: flex;\n flex-direction: column;\n width: 100%;\n}\n\n.mrtn-rating-row {\n display: flex;\n align-items: center;\n gap: 12px;\n padding: 8px;\n border-radius: 6px;\n cursor: pointer;\n transition: all 0.2s ease;\n position: relative;\n\n &:hover {\n background: var(--hover-color);\n }\n\n &--active {\n background: var(--hover-color);\n box-shadow: 0 0 0 2px var(--hover-color);\n transform: scale(1.02);\n z-index: 10;\n }\n}\n\n.mrtn-rating-breakdown--has-active .mrtn-rating-row:not(.mrtn-rating-row--active) {\n opacity: 0.4;\n filter: grayscale(0.8);\n}\n\n.mrtn-rating-stars {\n display: flex;\n gap: 2px;\n min-width: 80px;\n}\n\n.mrtn-rating-star {\n font-size: 14px;\n color: #e5e5e5;\n\n &--filled {\n color: #000000;\n }\n}\n\n.mrtn-rating-bar {\n flex: 1;\n height: 8px;\n background: #f0f0f0;\n border-radius: 4px;\n overflow: hidden;\n position: relative;\n transition: all 0.2s ease;\n}\n\n.mrtn-rating-bar__fill {\n height: 100%;\n border-radius: 4px;\n transition: width 0.3s ease;\n}\n\n.mrtn-rating-count {\n font-size: 12px;\n color: #666666;\n min-width: 40px;\n text-align: right;\n}\n</style>\n","import { render, staticRenderFns } from \"./RatingBreakdown.vue?vue&type=template&id=121d360c&scoped=true\"\nimport script from \"./RatingBreakdown.vue?vue&type=script&lang=js\"\nexport * from \"./RatingBreakdown.vue?vue&type=script&lang=js\"\nimport style0 from \"./RatingBreakdown.vue?vue&type=style&index=0&id=121d360c&prod&lang=scss&scoped=true\"\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 \"121d360c\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../../../node_modules/vue-style-loader/index.js!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??ref--2-2!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SortDropdown.vue?vue&type=style&index=0&id=2b3eeb35&prod&lang=scss&scoped=true\"","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".mrtn-sort-dropdown[data-v-2b3eeb35]{background:#fff;border:1px solid #e5e5e5;border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,.1);margin-top:8px;min-width:200px;padding:16px;position:absolute;right:0;top:100%;z-index:1000}.mrtn-sort-dropdown__header[data-v-2b3eeb35]{margin-bottom:12px}.mrtn-sort-dropdown__title[data-v-2b3eeb35]{color:#000;font-size:16px;font-weight:600;margin:0}.mrtn-sort-dropdown__options[data-v-2b3eeb35]{display:flex;flex-direction:column;gap:4px}.mrtn-sort-option[data-v-2b3eeb35]{align-items:center;border-radius:4px;cursor:pointer;display:flex;justify-content:space-between;padding:8px 12px;transition:background-color .2s ease}.mrtn-sort-option[data-v-2b3eeb35]:hover{background:#f8f8f8}.mrtn-sort-option--active[data-v-2b3eeb35]{background:#f0f0f0}.mrtn-sort-option__text[data-v-2b3eeb35]{color:#000;font-size:14px;font-weight:400}.mrtn-sort-option__check[data-v-2b3eeb35]{color:#000;flex-shrink:0}.mrtn-sort-dropdown__footer[data-v-2b3eeb35]{margin-top:12px;text-align:right}.mrtn-sort-dropdown__powered[data-v-2b3eeb35]{color:#999;font-size:11px}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.visible)?_c('div',{ref:\"dropdown\",staticClass:\"mrtn-sort-dropdown\"},[_vm._m(0),_c('div',{staticClass:\"mrtn-sort-dropdown__options\"},_vm._l((_vm.sortOptions),function(option){return _c('div',{key:option.value,staticClass:\"mrtn-sort-option\",class:{ 'mrtn-sort-option--active': _vm.currentSort === option.value },on:{\"click\":function($event){return _vm.selectSort(option.value)}}},[_c('span',{staticClass:\"mrtn-sort-option__text\"},[_vm._v(_vm._s(option.label))]),(_vm.currentSort === option.value)?_c('svg',{staticClass:\"mrtn-sort-option__check\",attrs:{\"width\":\"16\",\"height\":\"16\",\"viewBox\":\"0 0 16 16\",\"fill\":\"none\"}},[_c('path',{attrs:{\"d\":\"M13.5 4.5L6 12L2.5 8.5\",\"stroke\":\"currentColor\",\"stroke-width\":\"2\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}})]):_vm._e()])}),0),_vm._m(1)]):_vm._e()}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"mrtn-sort-dropdown__header\"},[_c('h3',{staticClass:\"mrtn-sort-dropdown__title\"},[_vm._v(\"Ordenar por\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"mrtn-sort-dropdown__footer\"},[_c('span',{staticClass:\"mrtn-sort-dropdown__powered\"},[_vm._v(\"Powered by MARTAN.app\")])])}]\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SortDropdown.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SortDropdown.vue?vue&type=script&lang=js\"","<template>\n <div v-if=\"visible\" ref=\"dropdown\" class=\"mrtn-sort-dropdown\">\n <div class=\"mrtn-sort-dropdown__header\">\n <h3 class=\"mrtn-sort-dropdown__title\">Ordenar por</h3>\n </div>\n\n <div class=\"mrtn-sort-dropdown__options\">\n <div\n v-for=\"option in sortOptions\"\n :key=\"option.value\"\n class=\"mrtn-sort-option\"\n :class=\"{ 'mrtn-sort-option--active': currentSort === option.value }\"\n @click=\"selectSort(option.value)\"\n >\n <span class=\"mrtn-sort-option__text\">{{ option.label }}</span>\n <svg\n v-if=\"currentSort === option.value\"\n class=\"mrtn-sort-option__check\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n >\n <path d=\"M13.5 4.5L6 12L2.5 8.5\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </div>\n </div>\n\n <div class=\"mrtn-sort-dropdown__footer\">\n <span class=\"mrtn-sort-dropdown__powered\">Powered by MARTAN.app</span>\n </div>\n </div>\n</template>\n\n<script>\nexport default {\n name: 'SortDropdown',\n\n props: {\n visible: {\n type: Boolean,\n default: false\n },\n\n currentSort: {\n type: String,\n default: 'most_recent'\n }\n },\n\n data() {\n return {\n sortOptions: [\n { value: 'most_recent', label: 'Recentes' },\n { value: 'most_voted', label: 'Mais úteis' },\n { value: 'most_positive', label: 'Positivas' },\n { value: 'most_negative', label: 'Negativas' }\n ]\n }\n },\n\n mounted() {\n this.addClickOutsideListener()\n },\n\n beforeDestroy() {\n this.removeClickOutsideListener()\n },\n\n watch: {\n visible(newValue) {\n if (newValue) {\n this.$nextTick(() => {\n this.addClickOutsideListener()\n })\n } else {\n this.removeClickOutsideListener()\n }\n }\n },\n\n methods: {\n selectSort(sortValue) {\n this.$emit('sort-selected', sortValue)\n },\n\n addClickOutsideListener() {\n document.addEventListener('click', this.handleClickOutside)\n },\n\n removeClickOutsideListener() {\n document.removeEventListener('click', this.handleClickOutside)\n },\n\n handleClickOutside(event) {\n if (!this.visible) return\n if (\n event.target &&\n event.target.classList &&\n event.target.classList.contains('mrtn-filter-btn') &&\n event.target.nodeName !== 'svg' &&\n event.target.nodeName !== 'SVG'\n ) {\n return\n }\n if (this.$refs.dropdown && !this.$refs.dropdown.contains(event.target)) {\n this.$emit('close')\n }\n }\n }\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.mrtn-sort-dropdown {\n position: absolute;\n top: 100%;\n right: 0;\n background: white;\n border: 1px solid #e5e5e5;\n border-radius: 8px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);\n z-index: 1000;\n margin-top: 8px;\n padding: 16px;\n min-width: 200px;\n}\n\n.mrtn-sort-dropdown__header {\n margin-bottom: 12px;\n}\n\n.mrtn-sort-dropdown__title {\n font-size: 16px;\n font-weight: 600;\n color: #000000;\n margin: 0;\n}\n\n.mrtn-sort-dropdown__options {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.mrtn-sort-option {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px 12px;\n border-radius: 4px;\n cursor: pointer;\n transition: background-color 0.2s ease;\n\n &:hover {\n background: #f8f8f8;\n }\n\n &--active {\n background: #f0f0f0;\n }\n}\n\n.mrtn-sort-option__text {\n font-size: 14px;\n color: #000000;\n font-weight: 400;\n}\n\n.mrtn-sort-option__check {\n color: #000000;\n flex-shrink: 0;\n}\n\n.mrtn-sort-dropdown__footer {\n margin-top: 12px;\n text-align: right;\n}\n\n.mrtn-sort-dropdown__powered {\n font-size: 11px;\n color: #999999;\n}\n</style>\n","import { render, staticRenderFns } from \"./SortDropdown.vue?vue&type=template&id=2b3eeb35&scoped=true\"\nimport script from \"./SortDropdown.vue?vue&type=script&lang=js\"\nexport * from \"./SortDropdown.vue?vue&type=script&lang=js\"\nimport style0 from \"./SortDropdown.vue?vue&type=style&index=0&id=2b3eeb35&prod&lang=scss&scoped=true\"\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 \"2b3eeb35\",\n null\n \n)\n\nexport default component.exports","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??ref--2-2!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Center.vue?vue&type=style&index=0&id=3eefd51d&prod&lang=scss\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"23c55671\", content, true, {});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??ref--2-2!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Center.vue?vue&type=style&index=1&id=3eefd51d&prod&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"1bbba03d\", content, true, {});","export * from \"-!../../../../../../node_modules/vue-style-loader/index.js!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??ref--2-2!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Center.vue?vue&type=style&index=0&id=3eefd51d&prod&lang=scss\"","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".mrtn-header--center .mrtn-rating-breakdown{max-width:520px;width:100%}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","export * from \"-!../../../../../../node_modules/vue-style-loader/index.js!../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/dist/cjs.js??ref--2-2!../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Center.vue?vue&type=style&index=1&id=3eefd51d&prod&lang=scss&scoped=true\"","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".mrtn-filter-container[data-v-3eefd51d]{position:relative}.mrtn-filter-container .mrtn-filter-btn[data-v-3eefd51d]{background:transparent;border:none;color:#000;cursor:pointer;transition:all .2s ease}.mrtn-filter-container .mrtn-filter-btn[data-v-3eefd51d]:hover{color:#666}.mrtn-filter-container .mrtn-filter-btn[data-v-3eefd51d]:active{transform:scale(.95)}.mrtn-header--center[data-v-3eefd51d]{align-items:center;background:#fff;display:flex;flex-direction:column;gap:12px;position:relative}.mrtn-header__main[data-v-3eefd51d]{align-items:center;display:flex;gap:16px;justify-content:center;max-width:320px;width:100%}.mrtn-average-section[data-v-3eefd51d]{align-items:center;display:flex;gap:12px}.mrtn-average-icon[data-v-3eefd51d]{align-items:center;border-radius:8px;display:flex;height:40px;justify-content:center;width:40px}.mrtn-average-info[data-v-3eefd51d]{align-items:flex-start;display:flex;flex-direction:column}.mrtn-average-score[data-v-3eefd51d]{color:#000;font-size:32px;font-weight:700;line-height:1}.mrtn-total-reviews[data-v-3eefd51d]{color:#666;font-size:14px;margin-top:4px}.mrtn-dropdown-toggle[data-v-3eefd51d]{align-items:center;background:#fff;border:1px solid #e5e5e5;border-radius:6px;color:#000;cursor:pointer;display:flex;height:32px;justify-content:center;transition:all .2s ease;width:32px}.mrtn-dropdown-toggle[data-v-3eefd51d]:hover{background:#f8f8f8;border-color:#ccc}.mrtn-dropdown-toggle[data-v-3eefd51d]:active{transform:scale(.95)}.mrtn-dropdown-toggle svg[data-v-3eefd51d]{height:12px;width:12px}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"mrtn-header--center\"},[_c('div',{staticClass:\"mrtn-header__main\"},[_c('div',{staticClass:\"mrtn-average-section\"},[_c('div',{staticClass:\"mrtn-average-icon\",style:({ backgroundColor: _vm.lightenColor(_vm.config.widget_review.star_color, 0.8) })},[_c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"18\",\"height\":\"18\",\"viewBox\":\"0 0 24 24\",\"stroke\":_vm.config.widget_review.star_color,\"fill\":_vm.average > 0 ? _vm.config.widget_review.star_color : 'none',\"stroke-width\":\"2\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}},[_c('defs',[_c('linearGradient',{attrs:{\"id\":'starGradient' + _vm.average}},[_c('stop',{attrs:{\"offset\":\"0%\",\"stop-color\":_vm.config.widget_review.star_color}}),_c('stop',{attrs:{\"offset\":((_vm.average < 5 ? _vm.average - 1 : _vm.average) / 5) *\n 100 +\n '%',\"stop-color\":_vm.config.widget_review.star_color}}),_c('stop',{attrs:{\"offset\":((_vm.average < 5 ? _vm.average - 1 : _vm.average) / 5) *\n 100 +\n '%',\"stop-color\":\"transparent\"}}),_c('stop',{attrs:{\"offset\":\"100%\",\"stop-color\":\"transparent\"}})],1)],1),_c('path',{attrs:{\"stroke\":\"none\",\"d\":\"M0 0h24v24H0z\",\"fill\":\"none\"}}),_c('path',{attrs:{\"d\":\"M8.243 7.34l-6.38 .925l-.113 .023a1 1 0 0 0 -.44 1.684l4.622 4.499l-1.09 6.355l-.013 .11a1 1 0 0 0 1.464 .944l5.706 -3l5.693 3l.1 .046a1 1 0 0 0 1.352 -1.1l-1.091 -6.355l4.624 -4.5l.078 -.085a1 1 0 0 0 -.633 -1.62l-6.38 -.926l-2.852 -5.78a1 1 0 0 0 -1.794 0l-2.853 5.78z\",\"fill\":(\"url(#starGradient\" + _vm.average + \")\")}})])]),_c('div',{staticClass:\"mrtn-average-info\"},[_c('span',{staticClass:\"mrtn-average-score\"},[_vm._v(_vm._s(_vm.average.toFixed(1)))]),_c('span',{staticClass:\"mrtn-total-reviews\"},[_vm._v(_vm._s(_vm.formatReviewsCount)+\" Avaliações\")])])])]),_c('RatingBreakdown',{attrs:{\"config\":_vm.config,\"rating\":_vm.rating,\"total-rating\":_vm.totalRating,\"current-active\":_vm.currentActive},on:{\"rating-selected\":_vm.onRatingSelected}}),_c('div',{staticClass:\"mrtn-filter-container\"},[_c('button',{staticClass:\"mrtn-filter-btn\",on:{\"click\":_vm.toggleFilter}},[_vm._v(\" Ordenar por \")]),_c('SortDropdown',{attrs:{\"visible\":_vm.showFilter,\"current-sort\":_vm.currentSort},on:{\"sort-selected\":_vm.onSortSelected,\"close\":function($event){_vm.showFilter = false}}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Center.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Center.vue?vue&type=script&lang=js\"","<template>\n <div class=\"mrtn-header--center\">\n <div class=\"mrtn-header__main\">\n <div class=\"mrtn-average-section\">\n <div class=\"mrtn-average-icon\" :style=\"{ backgroundColor: lightenColor(config.widget_review.star_color, 0.8) }\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" :stroke=\"config.widget_review.star_color\"\n :fill=\"average > 0 ? config.widget_review.star_color : 'none'\" stroke-width=\"2\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\">\n <defs>\n <linearGradient :id=\"'starGradient' + average\">\n <stop offset=\"0%\" :stop-color=\"config.widget_review.star_color\" />\n <stop :offset=\"((average < 5 ? average - 1 : average) / 5) *\n 100 +\n '%'\n \" :stop-color=\"config.widget_review.star_color\" />\n <stop :offset=\"((average < 5 ? average - 1 : average) / 5) *\n 100 +\n '%'\n \" stop-color=\"transparent\" />\n <stop offset=\"100%\" stop-color=\"transparent\" />\n </linearGradient>\n </defs>\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\" />\n <path\n d=\"M8.243 7.34l-6.38 .925l-.113 .023a1 1 0 0 0 -.44 1.684l4.622 4.499l-1.09 6.355l-.013 .11a1 1 0 0 0 1.464 .944l5.706 -3l5.693 3l.1 .046a1 1 0 0 0 1.352 -1.1l-1.091 -6.355l4.624 -4.5l.078 -.085a1 1 0 0 0 -.633 -1.62l-6.38 -.926l-2.852 -5.78a1 1 0 0 0 -1.794 0l-2.853 5.78z\"\n :fill=\"`url(#starGradient${average})`\" />\n </svg>\n </div>\n <div class=\"mrtn-average-info\">\n <span class=\"mrtn-average-score\">{{ average.toFixed(1) }}</span>\n <span class=\"mrtn-total-reviews\">{{ formatReviewsCount }} Avaliações</span>\n </div>\n </div>\n </div>\n\n <RatingBreakdown :config=\"config\" :rating=\"rating\" :total-rating=\"totalRating\" :current-active=\"currentActive\"\n @rating-selected=\"onRatingSelected\" />\n\n <div class=\"mrtn-filter-container\">\n <button class=\"mrtn-filter-btn\" @click=\"toggleFilter\">\n Ordenar por\n </button>\n\n <SortDropdown :visible=\"showFilter\" :current-sort=\"currentSort\" @sort-selected=\"onSortSelected\" @close=\"showFilter = false\" />\n </div>\n </div>\n</template>\n\n<script>\nimport RatingBreakdown from '../components/RatingBreakdown.vue'\nimport SortDropdown from '../components/SortDropdown.vue'\nimport { configProp } from \"../../../utils/configProps\";\nimport { lightenColor } from \"../../../utils/lighten-color\";\n\nexport default {\n name: 'Center',\n\n components: {\n RatingBreakdown,\n SortDropdown\n },\n\n props: {\n ...configProp,\n\n rating: {\n type: Object,\n default: () => ({\n five: 0,\n four: 0,\n three: 0,\n two: 0,\n one: 0\n })\n },\n\n recommended: {\n type: Number,\n default: 0\n },\n\n average: {\n type: Number,\n default: 0\n },\n\n totalRating: {\n type: Number,\n default: 0\n }\n },\n\n data() {\n return {\n showDropdown: true,\n showFilter: false,\n currentSort: 'most_recent',\n currentActive: null\n }\n },\n\n computed: {\n formatReviewsCount() {\n if (this.totalRating >= 1000) {\n return (this.totalRating / 1000).toFixed(1).replace('.0', '') + 'k'\n }\n return this.totalRating.toLocaleString()\n }\n },\n\n methods: {\n lightenColor,\n toggleDropdown() {\n this.showDropdown = !this.showDropdown\n },\n\n onRatingSelected(rating) {\n if (this.currentActive === rating) {\n this.currentActive = null\n this.$emit('rating-selected', null)\n } else {\n this.currentActive = rating\n this.$emit('rating-selected', rating)\n }\n },\n\n onSortSelected(sortValue) {\n this.currentSort = sortValue\n this.showFilter = false\n this.$emit('sort-selected', sortValue)\n },\n\n toggleFilter() {\n this.showFilter = !this.showFilter\n this.$emit('filter-toggle', this.showFilter)\n },\n }\n}\n</script>\n\n<style lang=\"scss\">\n.mrtn-header--center .mrtn-rating-breakdown {\n max-width: 520px;\n width: 100%;\n}\n</style>\n\n<style lang=\"scss\" scoped>\n.mrtn-filter-container {\n position: relative;\n\n .mrtn-filter-btn {\n border: none;\n background: transparent;\n cursor: pointer;\n color: #000000;\n transition: all 0.2s ease;\n\n &:hover {\n color: #666666;\n }\n\n &:active {\n transform: scale(0.95);\n }\n }\n}\n\n.mrtn-header--center {\n display: flex;\n flex-direction: column;\n align-items: center;\n background: white;\n position: relative;\n gap: 12px;\n}\n\n.mrtn-header__main {\n display: flex;\n align-items: center;\n gap: 16px;\n max-width: 320px;\n width: 100%;\n justify-content: center;\n}\n\n.mrtn-average-section {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.mrtn-average-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 40px;\n height: 40px;\n border-radius: 8px;\n}\n\n.mrtn-average-info {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n}\n\n.mrtn-average-score {\n font-size: 32px;\n font-weight: 700;\n color: #000000;\n line-height: 1;\n}\n\n.mrtn-total-reviews {\n font-size: 14px;\n color: #666666;\n margin-top: 4px;\n}\n\n.mrtn-dropdown-toggle {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n border: 1px solid #e5e5e5;\n border-radius: 6px;\n background: white;\n cursor: pointer;\n color: #000000;\n transition: all 0.2s ease;\n\n &:hover {\n border-color: #cccccc;\n background: #f8f8f8;\n }\n\n &:active {\n transform: scale(0.95);\n }\n\n svg {\n width: 12px;\n height: 12px;\n }\n}\n</style>\n","import { render, staticRenderFns } from \"./Center.vue?vue&type=template&id=3eefd51d&scoped=true\"\nimport script from \"./Center.vue?vue&type=script&lang=js\"\nexport * from \"./Center.vue?vue&type=script&lang=js\"\nimport style0 from \"./Center.vue?vue&type=style&index=0&id=3eefd51d&prod&lang=scss\"\nimport style1 from \"./Center.vue?vue&type=style&index=1&id=3eefd51d&prod&lang=scss&scoped=true\"\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 \"3eefd51d\",\n null\n \n)\n\nexport default component.exports"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
- (window.webpackJsonpwidgetMartan=window.webpackJsonpwidgetMartan||[]).push([[4],{105:function(t,e,r){"use strict";r.r(e);var a=r(43),o=r(54),n=r(4),i=r(10),s={name:"Center",components:{RatingBreakdown:a.a,SortDropdown:o.a},props:{...n.a,rating:{type:Object,default:()=>({five:0,four:0,three:0,two:0,one:0})},recommended:{type:Number,default:0},average:{type:Number,default:0},totalRating:{type:Number,default:0}},data:()=>({showDropdown:!0,showFilter:!1,currentSort:"most_recent",currentActive:null}),computed:{formatReviewsCount(){return this.totalRating>=1e3?(this.totalRating/1e3).toFixed(1).replace(".0","")+"k":this.totalRating.toLocaleString()}},methods:{lightenColor:i.a,toggleDropdown(){this.showDropdown=!this.showDropdown},onRatingSelected(t){this.currentActive===t?(this.currentActive=null,this.$emit("rating-selected",null)):(this.currentActive=t,this.$emit("rating-selected",t))},onSortSelected(t){this.currentSort=t,this.showFilter=!1,this.$emit("sort-selected",t)},toggleFilter(){this.showFilter=!this.showFilter,this.$emit("filter-toggle",this.showFilter)}}},l=(r(86),r(88),r(3)),d=Object(l.a)(s,(function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("div",{staticClass:"mrtn-header--center"},[r("div",{staticClass:"mrtn-header__main"},[r("div",{staticClass:"mrtn-average-section"},[r("div",{staticClass:"mrtn-average-icon",style:{backgroundColor:t.lightenColor(t.config.widget_review.star_color,.8)}},[r("svg",{attrs:{xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",viewBox:"0 0 24 24",stroke:t.config.widget_review.star_color,fill:t.average>0?t.config.widget_review.star_color:"none","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"}},[r("defs",[r("linearGradient",{attrs:{id:"starGradient"+t.average}},[r("stop",{attrs:{offset:"0%","stop-color":t.config.widget_review.star_color}}),r("stop",{attrs:{offset:(t.average<5?t.average-1:t.average)/5*100+"%","stop-color":t.config.widget_review.star_color}}),r("stop",{attrs:{offset:(t.average<5?t.average-1:t.average)/5*100+"%","stop-color":"transparent"}}),r("stop",{attrs:{offset:"100%","stop-color":"transparent"}})],1)],1),r("path",{attrs:{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}}),r("path",{attrs:{d:"M8.243 7.34l-6.38 .925l-.113 .023a1 1 0 0 0 -.44 1.684l4.622 4.499l-1.09 6.355l-.013 .11a1 1 0 0 0 1.464 .944l5.706 -3l5.693 3l.1 .046a1 1 0 0 0 1.352 -1.1l-1.091 -6.355l4.624 -4.5l.078 -.085a1 1 0 0 0 -.633 -1.62l-6.38 -.926l-2.852 -5.78a1 1 0 0 0 -1.794 0l-2.853 5.78z",fill:"url(#starGradient"+t.average+")"}})])]),r("div",{staticClass:"mrtn-average-info"},[r("span",{staticClass:"mrtn-average-score"},[t._v(t._s(t.average.toFixed(1)))]),r("span",{staticClass:"mrtn-total-reviews"},[t._v(t._s(t.formatReviewsCount)+" Avaliações")])])])]),r("RatingBreakdown",{attrs:{config:t.config,rating:t.rating,"total-rating":t.totalRating,"current-active":t.currentActive},on:{"rating-selected":t.onRatingSelected}}),r("div",{staticClass:"mrtn-filter-container"},[r("button",{staticClass:"mrtn-filter-btn",on:{click:t.toggleFilter}},[t._v(" Ordenar por ")]),r("SortDropdown",{attrs:{visible:t.showFilter,"current-sort":t.currentSort},on:{"sort-selected":t.onSortSelected,close:function(e){t.showFilter=!1}}})],1)],1)}),[],!1,null,"3eefd51d",null);e.default=d.exports},30:function(t,e,r){var a=r(35);a.__esModule&&(a=a.default),"string"==typeof a&&(a=[[t.i,a,""]]),a.locals&&(t.exports=a.locals);(0,r(9).default)("5a552598",a,!0,{})},31:function(t,e,r){"use strict";var a={name:"Rating",props:{rating:{type:Number,default:5},color:{type:String,default:"#000000"}},data:()=>({stars:Array(5).fill(0)}),mounted(){this.updateStars()},methods:{updateStars(){const t=Math.max(0,Math.min(5,this.rating));this.stars=Array(5).fill(0).map((e,r)=>t>=r+1?1:t>r?.5:0)},getStarClass:t=>1===t?"icon-tabler-star-filled":.5===t?"icon-tabler-star-half":"icon-tabler-star",getStarFill:(t,e)=>1===t?"currentColor":.5===t?`url(#gradient-${e})`:"none"},watch:{rating:"updateStars"}},o=(r(34),r(3)),n=Object(o.a)(a,(function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("span",{staticClass:"martan-rating"},t._l(t.stars,(function(e,a){return r("svg",{key:a,staticClass:"icon icon-tabler",class:t.getStarClass(e),style:{color:t.color},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"14",viewBox:"0 0 24 24","stroke-width":"2",stroke:"currentColor",fill:"none","stroke-linecap":"round","stroke-linejoin":"round"}},[.5===e?r("defs",[r("linearGradient",{attrs:{id:"gradient-"+a,x1:"0%",y1:"0%",x2:"100%",y2:"0%"}},[r("stop",{style:"stop-color:"+t.color+";stop-opacity:1",attrs:{offset:"50%"}}),r("stop",{style:"stop-color:"+t.color+";stop-opacity:0",attrs:{offset:"50%"}})],1)],1):t._e(),r("path",{attrs:{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}}),r("path",{attrs:{d:"M8.243 7.34l-6.38 .925l-.113 .023a1 1 0 0 0 -.44 1.684l4.622 4.499l-1.09 6.355l-.013 .11a1 1 0 0 0 1.464 .944l5.706 -3l5.693 3l.1 .046a1 1 0 0 0 1.352 -1.1l-1.091 -6.355l4.624 -4.5l.078 -.085a1 1 0 0 0 -.633 -1.62l-6.38 -.926l-2.852 -5.78a1 1 0 0 0 -1.794 0l-2.853 5.78z",fill:t.getStarFill(e,a)}})])})),0)}),[],!1,null,null,null);e.a=n.exports},33:function(t,e,r){var a=r(41);a.__esModule&&(a=a.default),"string"==typeof a&&(a=[[t.i,a,""]]),a.locals&&(t.exports=a.locals);(0,r(9).default)("8c4908ae",a,!0,{})},34:function(t,e,r){"use strict";r(30)},35:function(t,e,r){(e=r(8)(!1)).push([t.i,".martan-rating{display:flex;gap:4px}",""]),t.exports=e},40:function(t,e,r){"use strict";r(33)},41:function(t,e,r){(e=r(8)(!1)).push([t.i,".mrtn-rating-breakdown[data-v-121d360c]{display:flex;flex-direction:column;width:100%}.mrtn-rating-row[data-v-121d360c]{align-items:center;border-radius:6px;cursor:pointer;display:flex;gap:12px;padding:8px;position:relative;transition:all .2s ease}.mrtn-rating-row--active[data-v-121d360c],.mrtn-rating-row[data-v-121d360c]:hover{background:var(--hover-color)}.mrtn-rating-row--active[data-v-121d360c]{box-shadow:0 0 0 2px var(--hover-color);transform:scale(1.02);z-index:10}.mrtn-rating-breakdown--has-active .mrtn-rating-row[data-v-121d360c]:not(.mrtn-rating-row--active){filter:grayscale(.8);opacity:.4}.mrtn-rating-stars[data-v-121d360c]{display:flex;gap:2px;min-width:80px}.mrtn-rating-star[data-v-121d360c]{color:#e5e5e5;font-size:14px}.mrtn-rating-star--filled[data-v-121d360c]{color:#000}.mrtn-rating-bar[data-v-121d360c]{background:#f0f0f0;border-radius:4px;flex:1;height:8px;overflow:hidden;position:relative;transition:all .2s ease}.mrtn-rating-bar__fill[data-v-121d360c]{border-radius:4px;height:100%;transition:width .3s ease}.mrtn-rating-count[data-v-121d360c]{color:#666;font-size:12px;min-width:40px;text-align:right}",""]),t.exports=e},42:function(t,e,r){var a=r(53);a.__esModule&&(a=a.default),"string"==typeof a&&(a=[[t.i,a,""]]),a.locals&&(t.exports=a.locals);(0,r(9).default)("a1278eac",a,!0,{})},43:function(t,e,r){"use strict";var a=r(4),o=r(31),n=r(10),i={name:"RatingBreakdown",props:{...a.a,rating:{type:Object,default:()=>({five:0,four:0,three:0,two:0,one:0})},totalRating:{type:Number,default:0},average:{type:Number,default:0}},data:()=>({currentActive:null}),computed:{ratingBreakdown(){return{5:this.rating.five,4:this.rating.four,3:this.rating.three,2:this.rating.two,1:this.rating.one}},houverColor(){return this.config.widget_review.star_color?Object(n.a)(this.config.widget_review.star_color,.9):null}},methods:{lightenColor:n.a,getBarWidth(t){return 0===this.totalRating?0:t/this.totalRating*100},selectRating(t){this.currentActive===t?this.currentActive=null:this.currentActive=t,this.$emit("rating-selected",this.currentActive)}},components:{Rating:o.a}},s=(r(40),r(3)),l=Object(s.a)(i,(function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("div",{staticClass:"mrtn-rating-breakdown",class:{"mrtn-rating-breakdown--has-active":null!==t.currentActive},style:"--hover-color: "+t.houverColor},t._l(t.ratingBreakdown,(function(e,a){return r("div",{key:a,staticClass:"mrtn-rating-row",class:{"mrtn-rating-row--active":t.currentActive===a},on:{click:function(e){return t.selectRating(a)}}},[r("div",{staticClass:"mrtn-rating-stars"},[r("Rating",{attrs:{rating:parseInt(a),color:t.config.widget_review.star_color}})],1),r("div",{staticClass:"mrtn-rating-bar"},[r("div",{staticClass:"mrtn-rating-bar__fill",style:{width:t.getBarWidth(e)+"%",backgroundColor:t.config.widget_review.star_color}})]),r("span",{staticClass:"mrtn-rating-count"},[t._v("("+t._s(e)+")")])])})),0)}),[],!1,null,"121d360c",null);e.a=l.exports},52:function(t,e,r){"use strict";r(42)},53:function(t,e,r){(e=r(8)(!1)).push([t.i,".mrtn-sort-dropdown[data-v-2b3eeb35]{background:#fff;border:1px solid #e5e5e5;border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,.1);margin-top:8px;min-width:200px;padding:16px;position:absolute;right:0;top:100%;z-index:1000}.mrtn-sort-dropdown__header[data-v-2b3eeb35]{margin-bottom:12px}.mrtn-sort-dropdown__title[data-v-2b3eeb35]{color:#000;font-size:16px;font-weight:600;margin:0}.mrtn-sort-dropdown__options[data-v-2b3eeb35]{display:flex;flex-direction:column;gap:4px}.mrtn-sort-option[data-v-2b3eeb35]{align-items:center;border-radius:4px;cursor:pointer;display:flex;justify-content:space-between;padding:8px 12px;transition:background-color .2s ease}.mrtn-sort-option[data-v-2b3eeb35]:hover{background:#f8f8f8}.mrtn-sort-option--active[data-v-2b3eeb35]{background:#f0f0f0}.mrtn-sort-option__text[data-v-2b3eeb35]{color:#000;font-size:14px;font-weight:400}.mrtn-sort-option__check[data-v-2b3eeb35]{color:#000;flex-shrink:0}.mrtn-sort-dropdown__footer[data-v-2b3eeb35]{margin-top:12px;text-align:right}.mrtn-sort-dropdown__powered[data-v-2b3eeb35]{color:#999;font-size:11px}",""]),t.exports=e},54:function(t,e,r){"use strict";var a={name:"SortDropdown",props:{visible:{type:Boolean,default:!1},currentSort:{type:String,default:"most_recent"}},data:()=>({sortOptions:[{value:"most_recent",label:"Recentes"},{value:"most_voted",label:"Mais úteis"},{value:"most_positive",label:"Positivas"},{value:"most_negative",label:"Negativas"}]}),mounted(){this.addClickOutsideListener()},beforeDestroy(){this.removeClickOutsideListener()},watch:{visible(t){t?this.$nextTick(()=>{this.addClickOutsideListener()}):this.removeClickOutsideListener()}},methods:{selectSort(t){this.$emit("sort-selected",t)},addClickOutsideListener(){document.addEventListener("click",this.handleClickOutside)},removeClickOutsideListener(){document.removeEventListener("click",this.handleClickOutside)},handleClickOutside(t){this.visible&&(t.target&&t.target.classList&&t.target.classList.contains("mrtn-filter-btn")&&"svg"!==t.target.nodeName&&"SVG"!==t.target.nodeName||this.$refs.dropdown&&!this.$refs.dropdown.contains(t.target)&&this.$emit("close"))}}},o=(r(52),r(3)),n=Object(o.a)(a,(function(){var t=this,e=t.$createElement,r=t._self._c||e;return t.visible?r("div",{ref:"dropdown",staticClass:"mrtn-sort-dropdown"},[t._m(0),r("div",{staticClass:"mrtn-sort-dropdown__options"},t._l(t.sortOptions,(function(e){return r("div",{key:e.value,staticClass:"mrtn-sort-option",class:{"mrtn-sort-option--active":t.currentSort===e.value},on:{click:function(r){return t.selectSort(e.value)}}},[r("span",{staticClass:"mrtn-sort-option__text"},[t._v(t._s(e.label))]),t.currentSort===e.value?r("svg",{staticClass:"mrtn-sort-option__check",attrs:{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none"}},[r("path",{attrs:{d:"M13.5 4.5L6 12L2.5 8.5",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"}})]):t._e()])})),0),t._m(1)]):t._e()}),[function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"mrtn-sort-dropdown__header"},[e("h3",{staticClass:"mrtn-sort-dropdown__title"},[this._v("Ordenar por")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"mrtn-sort-dropdown__footer"},[e("span",{staticClass:"mrtn-sort-dropdown__powered"},[this._v("Powered by MARTAN.app")])])}],!1,null,"2b3eeb35",null);e.a=n.exports},68:function(t,e,r){var a=r(87);a.__esModule&&(a=a.default),"string"==typeof a&&(a=[[t.i,a,""]]),a.locals&&(t.exports=a.locals);(0,r(9).default)("23c55671",a,!0,{})},69:function(t,e,r){var a=r(89);a.__esModule&&(a=a.default),"string"==typeof a&&(a=[[t.i,a,""]]),a.locals&&(t.exports=a.locals);(0,r(9).default)("1bbba03d",a,!0,{})},86:function(t,e,r){"use strict";r(68)},87:function(t,e,r){(e=r(8)(!1)).push([t.i,".mrtn-header--center .mrtn-rating-breakdown{max-width:520px;width:100%}",""]),t.exports=e},88:function(t,e,r){"use strict";r(69)},89:function(t,e,r){(e=r(8)(!1)).push([t.i,".mrtn-filter-container[data-v-3eefd51d]{position:relative}.mrtn-filter-container .mrtn-filter-btn[data-v-3eefd51d]{background:transparent;border:none;color:#000;cursor:pointer;transition:all .2s ease}.mrtn-filter-container .mrtn-filter-btn[data-v-3eefd51d]:hover{color:#666}.mrtn-filter-container .mrtn-filter-btn[data-v-3eefd51d]:active{transform:scale(.95)}.mrtn-header--center[data-v-3eefd51d]{align-items:center;background:#fff;display:flex;flex-direction:column;gap:12px;position:relative}.mrtn-header__main[data-v-3eefd51d]{align-items:center;display:flex;gap:16px;justify-content:center;max-width:320px;width:100%}.mrtn-average-section[data-v-3eefd51d]{align-items:center;display:flex;gap:12px}.mrtn-average-icon[data-v-3eefd51d]{align-items:center;border-radius:8px;display:flex;height:40px;justify-content:center;width:40px}.mrtn-average-info[data-v-3eefd51d]{align-items:flex-start;display:flex;flex-direction:column}.mrtn-average-score[data-v-3eefd51d]{color:#000;font-size:32px;font-weight:700;line-height:1}.mrtn-total-reviews[data-v-3eefd51d]{color:#666;font-size:14px;margin-top:4px}.mrtn-dropdown-toggle[data-v-3eefd51d]{align-items:center;background:#fff;border:1px solid #e5e5e5;border-radius:6px;color:#000;cursor:pointer;display:flex;height:32px;justify-content:center;transition:all .2s ease;width:32px}.mrtn-dropdown-toggle[data-v-3eefd51d]:hover{background:#f8f8f8;border-color:#ccc}.mrtn-dropdown-toggle[data-v-3eefd51d]:active{transform:scale(.95)}.mrtn-dropdown-toggle svg[data-v-3eefd51d]{height:12px;width:12px}",""]),t.exports=e}}]);
1
+ (window.webpackJsonpwidgetMartan=window.webpackJsonpwidgetMartan||[]).push([[4],{29:function(t,a,r){var e=r(33);e.__esModule&&(e=e.default),"string"==typeof e&&(e=[[t.i,e,""]]),e.locals&&(t.exports=e.locals);(0,r(9).default)("5a552598",e,!0,{})},30:function(t,a,r){"use strict";var e={name:"Rating",props:{rating:{type:Number,default:5},color:{type:String,default:"#000000"}},data:()=>({stars:Array(5).fill(0)}),mounted(){this.updateStars()},methods:{updateStars(){const t=Math.max(0,Math.min(5,this.rating));this.stars=Array(5).fill(0).map((a,r)=>t>=r+1?1:t>r?.5:0)},getStarClass:t=>1===t?"icon-tabler-star-filled":.5===t?"icon-tabler-star-half":"icon-tabler-star",getStarFill:(t,a)=>1===t?"currentColor":.5===t?`url(#gradient-${a})`:"none"},watch:{rating:"updateStars"}},i=(r(32),r(3)),n=Object(i.a)(e,(function(){var t=this,a=t.$createElement,r=t._self._c||a;return r("span",{staticClass:"martan-rating"},t._l(t.stars,(function(a,e){return r("svg",{key:e,staticClass:"icon icon-tabler",class:t.getStarClass(a),style:{color:t.color},attrs:{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"14",viewBox:"0 0 24 24","stroke-width":"2",stroke:"currentColor",fill:"none","stroke-linecap":"round","stroke-linejoin":"round"}},[.5===a?r("defs",[r("linearGradient",{attrs:{id:"gradient-"+e,x1:"0%",y1:"0%",x2:"100%",y2:"0%"}},[r("stop",{style:"stop-color:"+t.color+";stop-opacity:1",attrs:{offset:"50%"}}),r("stop",{style:"stop-color:"+t.color+";stop-opacity:0",attrs:{offset:"50%"}})],1)],1):t._e(),r("path",{attrs:{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}}),r("path",{attrs:{d:"M8.243 7.34l-6.38 .925l-.113 .023a1 1 0 0 0 -.44 1.684l4.622 4.499l-1.09 6.355l-.013 .11a1 1 0 0 0 1.464 .944l5.706 -3l5.693 3l.1 .046a1 1 0 0 0 1.352 -1.1l-1.091 -6.355l4.624 -4.5l.078 -.085a1 1 0 0 0 -.633 -1.62l-6.38 -.926l-2.852 -5.78a1 1 0 0 0 -1.794 0l-2.853 5.78z",fill:t.getStarFill(a,e)}})])})),0)}),[],!1,null,null,null);a.a=n.exports},31:function(t,a,r){var e=r(39);e.__esModule&&(e=e.default),"string"==typeof e&&(e=[[t.i,e,""]]),e.locals&&(t.exports=e.locals);(0,r(9).default)("8c4908ae",e,!0,{})},32:function(t,a,r){"use strict";r(29)},33:function(t,a,r){(a=r(8)(!1)).push([t.i,".martan-rating{display:flex;gap:4px}",""]),t.exports=a},38:function(t,a,r){"use strict";r(31)},39:function(t,a,r){(a=r(8)(!1)).push([t.i,".mrtn-rating-breakdown[data-v-121d360c]{display:flex;flex-direction:column;width:100%}.mrtn-rating-row[data-v-121d360c]{align-items:center;border-radius:6px;cursor:pointer;display:flex;gap:12px;padding:8px;position:relative;transition:all .2s ease}.mrtn-rating-row--active[data-v-121d360c],.mrtn-rating-row[data-v-121d360c]:hover{background:var(--hover-color)}.mrtn-rating-row--active[data-v-121d360c]{box-shadow:0 0 0 2px var(--hover-color);transform:scale(1.02);z-index:10}.mrtn-rating-breakdown--has-active .mrtn-rating-row[data-v-121d360c]:not(.mrtn-rating-row--active){filter:grayscale(.8);opacity:.4}.mrtn-rating-stars[data-v-121d360c]{display:flex;gap:2px;min-width:80px}.mrtn-rating-star[data-v-121d360c]{color:#e5e5e5;font-size:14px}.mrtn-rating-star--filled[data-v-121d360c]{color:#000}.mrtn-rating-bar[data-v-121d360c]{background:#f0f0f0;border-radius:4px;flex:1;height:8px;overflow:hidden;position:relative;transition:all .2s ease}.mrtn-rating-bar__fill[data-v-121d360c]{border-radius:4px;height:100%;transition:width .3s ease}.mrtn-rating-count[data-v-121d360c]{color:#666;font-size:12px;min-width:40px;text-align:right}",""]),t.exports=a},41:function(t,a,r){"use strict";var e=r(4),i=r(30),n=r(10),o={name:"RatingBreakdown",props:{...e.a,rating:{type:Object,default:()=>({five:0,four:0,three:0,two:0,one:0})},totalRating:{type:Number,default:0},average:{type:Number,default:0}},data:()=>({currentActive:null}),computed:{ratingBreakdown(){return{5:this.rating.five,4:this.rating.four,3:this.rating.three,2:this.rating.two,1:this.rating.one}},houverColor(){return this.config.widget_review.star_color?Object(n.a)(this.config.widget_review.star_color,.9):null}},methods:{lightenColor:n.a,getBarWidth(t){return 0===this.totalRating?0:t/this.totalRating*100},selectRating(t){this.currentActive===t?this.currentActive=null:this.currentActive=t,this.$emit("rating-selected",this.currentActive)}},components:{Rating:i.a}},s=(r(38),r(3)),l=Object(s.a)(o,(function(){var t=this,a=t.$createElement,r=t._self._c||a;return r("div",{staticClass:"mrtn-rating-breakdown",class:{"mrtn-rating-breakdown--has-active":null!==t.currentActive},style:"--hover-color: "+t.houverColor},t._l(t.ratingBreakdown,(function(a,e){return r("div",{key:e,staticClass:"mrtn-rating-row",class:{"mrtn-rating-row--active":t.currentActive===e},on:{click:function(a){return t.selectRating(e)}}},[r("div",{staticClass:"mrtn-rating-stars"},[r("Rating",{attrs:{rating:parseInt(e),color:t.config.widget_review.star_color}})],1),r("div",{staticClass:"mrtn-rating-bar"},[r("div",{staticClass:"mrtn-rating-bar__fill",style:{width:t.getBarWidth(a)+"%",backgroundColor:t.config.widget_review.star_color}})]),r("span",{staticClass:"mrtn-rating-count"},[t._v("("+t._s(a)+")")])])})),0)}),[],!1,null,"121d360c",null);a.a=l.exports},58:function(t,a,r){var e=r(79);e.__esModule&&(e=e.default),"string"==typeof e&&(e=[[t.i,e,""]]),e.locals&&(t.exports=e.locals);(0,r(9).default)("1bbb3a2b",e,!0,{})},78:function(t,a,r){"use strict";r(58)},79:function(t,a,r){(a=r(8)(!1)).push([t.i,".mrtn-summary-container[data-v-a03cf414]{align-items:center;display:flex;justify-content:space-between;margin-top:1rem}.mrtn-summary-title[data-v-a03cf414]{margin-bottom:20px}.mrtn-summary-title .mrtn-title[data-v-a03cf414]{color:#000;font-size:24px;font-weight:700;margin:0 0 8px}.mrtn-summary-title .mrtn-total-responses[data-v-a03cf414]{color:#333;font-size:20px;font-weight:300}.mrtn-recommendation[data-v-a03cf414]{color:#666;font-size:16px;font-weight:100}@media(max-width:580px){.mrtn-recommendation[data-v-a03cf414]{font-size:12px}}.mrtn-average-section[data-v-a03cf414]{display:flex;justify-content:center;margin-bottom:16px}.mrtn-average-display[data-v-a03cf414]{gap:12px}.mrtn-average-display[data-v-a03cf414],.mrtn-stars-container[data-v-a03cf414]{align-items:center;display:flex}@media(max-width:580px){.mrtn-stars-container[data-v-a03cf414]{display:none}}.mrtn-average-badge[data-v-a03cf414]{background:#ff6b35;border-radius:20px;color:#fff;font-size:14px;font-weight:600;padding:8px 16px}.mrtn-rating-breakdown[data-v-a03cf414]{display:flex;flex-direction:column;gap:8px}.mrtn-rating-row[data-v-a03cf414]{align-items:center;display:flex;gap:12px;padding:4px 0}.mrtn-rating-label[data-v-a03cf414]{color:#666;font-size:12px;min-width:70px;text-align:left}.mrtn-rating-bar[data-v-a03cf414]{background:#f0f0f0;border-radius:6px;flex:1;height:12px;overflow:hidden;position:relative}.mrtn-rating-bar__fill[data-v-a03cf414]{border-radius:6px;height:100%;transition:width .3s ease}.mrtn-rating-count[data-v-a03cf414]{color:#666;font-size:12px;font-weight:500;min-width:40px;text-align:right}",""]),t.exports=a},94:function(t,a,r){"use strict";r.r(a);var e=r(30),i=r(41),n=r(4),o={name:"Summary",components:{Rating:e.a,RatingBreakdown:i.a},props:{...n.a,rating:{type:Object,default:()=>({five:0,four:0,three:0,two:0,one:0})},recommended:{type:Number,default:0},average:{type:Number,default:0},totalRating:{type:Number,default:0}},data:()=>({currentActive:null}),computed:{ratingBreakdown(){return{5:this.rating.five,4:this.rating.four,3:this.rating.three,2:this.rating.two,1:this.rating.one}},formatReviewsCount(){return this.totalRating>=1e3?(this.totalRating/1e3).toFixed(1).replace(".0","")+"k":this.totalRating.toLocaleString()}},methods:{getBarWidth(t){return 0===this.totalRating?0:t/this.totalRating*100},onRatingSelected(t){this.currentActive=t,this.$emit("rating-selected",t)}}},s=(r(78),r(3)),l=Object(s.a)(o,(function(){var t=this,a=t.$createElement,r=t._self._c||a;return r("div",{staticClass:"mrtn-header--summary"},[r("RatingBreakdown",{attrs:{config:t.config,rating:t.rating,"total-rating":t.totalRating,"current-active":t.currentActive},on:{"rating-selected":t.onRatingSelected}}),r("div",{staticClass:"mrtn-summary-container"},[r("div",{staticClass:"mrtn-summary-title"},[r("div",{staticClass:"mrtn-total-responses"},[t._v(t._s(t.formatReviewsCount)+" "+t._s(this.totalRating>1?"Avaliações":"Avaliação"))]),t.recommended>0?r("div",{staticClass:"mrtn-recommendation"},[t._v(" "+t._s(Math.round(t.recommended))+"% dos clientes recomendam esse produto ")]):t._e()]),r("div",{staticClass:"mrtn-average-section"},[r("div",{staticClass:"mrtn-average-display"},[r("div",{staticClass:"mrtn-stars-container"},[r("Rating",{attrs:{rating:t.average,color:t.config.widget_review.star_color}})],1),r("div",{staticClass:"mrtn-average-badge",style:{backgroundColor:t.config.widget_review.star_color}},[t._v(" "+t._s(t.average.toFixed(1))+" / 5 ")])])])])],1)}),[],!1,null,"a03cf414",null);a.default=l.exports}}]);
2
2
  //# sourceMappingURL=widget-martan.4.min.js.map