@ecomplus/widget-martan 1.1.24 → 1.2.1

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 (90) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/cms.config.js +78 -83
  3. package/dist/public/widget-martan.1.min.js +1 -1
  4. package/dist/public/widget-martan.1.min.js.map +1 -1
  5. package/dist/public/widget-martan.2.min.js +1 -1
  6. package/dist/public/widget-martan.2.min.js.map +1 -1
  7. package/dist/public/widget-martan.3.min.js +1 -1
  8. package/dist/public/widget-martan.3.min.js.map +1 -1
  9. package/dist/public/widget-martan.4.min.js +1 -1
  10. package/dist/public/widget-martan.4.min.js.map +1 -1
  11. package/dist/public/widget-martan.5.min.js +1 -1
  12. package/dist/public/widget-martan.5.min.js.map +1 -1
  13. package/dist/public/widget-martan.6.min.js +2 -0
  14. package/dist/public/widget-martan.6.min.js.map +1 -0
  15. package/dist/public/widget-martan.7.min.js +2 -0
  16. package/dist/public/widget-martan.7.min.js.map +1 -0
  17. package/dist/public/widget-martan.8.min.js +2 -0
  18. package/dist/public/widget-martan.8.min.js.map +1 -0
  19. package/dist/public/widget-martan.var.min.js +3 -3
  20. package/dist/public/widget-martan.var.min.js.map +1 -1
  21. package/dist/widget-martan.1.min.js +1 -1
  22. package/dist/widget-martan.1.min.js.map +1 -1
  23. package/dist/widget-martan.2.min.js +1 -1
  24. package/dist/widget-martan.2.min.js.map +1 -1
  25. package/dist/widget-martan.3.min.js +1 -1
  26. package/dist/widget-martan.3.min.js.map +1 -1
  27. package/dist/widget-martan.4.min.js +1 -1
  28. package/dist/widget-martan.4.min.js.map +1 -1
  29. package/dist/widget-martan.5.min.js +1 -1
  30. package/dist/widget-martan.5.min.js.map +1 -1
  31. package/dist/widget-martan.6.min.js +2 -0
  32. package/dist/widget-martan.6.min.js.map +1 -0
  33. package/dist/widget-martan.7.min.js +2 -0
  34. package/dist/widget-martan.7.min.js.map +1 -0
  35. package/dist/widget-martan.8.min.js +2 -0
  36. package/dist/widget-martan.8.min.js.map +1 -0
  37. package/dist/widget-martan.min.js +3 -3
  38. package/dist/widget-martan.min.js.map +1 -1
  39. package/package.json +2 -2
  40. package/src/append/product-block.ejs +5 -1
  41. package/src/append/product-card-slots.ejs +1 -1
  42. package/src/append/product-slots.ejs +1 -9
  43. package/src/index.js +17 -12
  44. package/src/utils/configProps.js +29 -0
  45. package/src/utils/lighten-color.js +20 -0
  46. package/src/utils/widget-initializer.js +60 -0
  47. package/src/widgets/questions/Questions.vue +436 -0
  48. package/src/widgets/questions/index.js +10 -0
  49. package/src/widgets/ratings/Rating.vue +223 -0
  50. package/src/widgets/ratings/index.js +232 -0
  51. package/src/widgets/reviews/Reviews.vue +317 -288
  52. package/src/widgets/reviews/components/Quickview.vue +390 -0
  53. package/src/widgets/reviews/components/Rating.vue +106 -0
  54. package/src/widgets/reviews/components/RatingBreakdown.vue +171 -0
  55. package/src/widgets/reviews/components/RatingHistogram.vue +306 -0
  56. package/src/widgets/reviews/components/RatingSummary.vue +226 -0
  57. package/src/widgets/reviews/components/RatingSummaryG.vue +104 -0
  58. package/src/widgets/reviews/components/ReviewCard.vue +223 -0
  59. package/src/widgets/reviews/{ReviewReply.vue → components/ReviewReply.vue} +42 -1
  60. package/src/widgets/reviews/{Score.vue → components/Score.vue} +3 -4
  61. package/src/widgets/reviews/{Sort.vue → components/Sort.vue} +1 -1
  62. package/src/widgets/reviews/components/SortDropdown.vue +184 -0
  63. package/src/widgets/reviews/components/VerifiedPurchase.vue +121 -0
  64. package/src/widgets/reviews/headers/Center.vue +248 -0
  65. package/src/widgets/reviews/headers/Compact.vue +225 -0
  66. package/src/widgets/reviews/headers/Histogram.vue +224 -0
  67. package/src/widgets/reviews/headers/Padrao.vue +113 -0
  68. package/src/widgets/reviews/headers/Summary.vue +217 -0
  69. package/src/widgets/reviews/index.js +2 -48
  70. package/src/append/body.ejs +0 -79
  71. package/src/append/head.ejs +0 -5
  72. package/src/append/stamps.ejs +0 -3
  73. package/src/widgets/reviews/AuthorAndRating.vue +0 -30
  74. package/src/widgets/reviews/AverageScore.vue +0 -160
  75. package/src/widgets/reviews/AverageTotal.vue +0 -35
  76. package/src/widgets/reviews/CardReview.vue +0 -87
  77. package/src/widgets/reviews/GridView.vue +0 -113
  78. package/src/widgets/reviews/HeaderExpanded.vue +0 -84
  79. package/src/widgets/reviews/HeaderMinimal.vue +0 -110
  80. package/src/widgets/reviews/ListView.vue +0 -47
  81. package/src/widgets/reviews/Quickview.vue +0 -397
  82. package/src/widgets/reviews/ReviewBody.vue +0 -39
  83. package/src/widgets/reviews/ThumbsPictures.vue +0 -135
  84. package/src/widgets/reviews/Total.vue +0 -79
  85. package/src/widgets/reviews/VerifiedPurchase.vue +0 -110
  86. package/src/widgets/reviews/isRecommended.vue +0 -44
  87. package/src/widgets/snippets/Rating.vue +0 -71
  88. package/src/widgets/snippets/Snippets.vue +0 -311
  89. package/src/widgets/snippets/index.js +0 -45
  90. /package/src/widgets/reviews/{VideoPlayer.vue → components/VideoPlayer.vue} +0 -0
package/CHANGELOG.md CHANGED
@@ -3,6 +3,18 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [1.2.1](https://github.com/ecomplus/storefront/compare/@ecomplus/widget-martan@1.2.0...@ecomplus/widget-martan@1.2.1) (2026-01-30)
7
+
8
+ ### Bug Fixes
9
+
10
+ - **martan:** fix `@ecomplus/storefront-twbs` import ([dce6525](https://github.com/ecomplus/storefront/commit/dce6525fa1169be496f6fbe8f28d6a47f1886f8c))
11
+
12
+ # [1.2.0](https://github.com/ecomplus/storefront/compare/@ecomplus/widget-martan@1.1.24...@ecomplus/widget-martan@1.2.0) (2026-01-20)
13
+
14
+ ### Features
15
+
16
+ - **widget-martan:** add new widget configuration to CMS settings ([35c5b1c](https://github.com/ecomplus/storefront/commit/35c5b1cc77e9908d7168a28847872cfe1e776ae4))
17
+
6
18
  ## [1.1.24](https://github.com/ecomplus/storefront/compare/@ecomplus/widget-martan@1.1.23...@ecomplus/widget-martan@1.1.24) (2025-09-02)
7
19
 
8
20
  **Note:** Version bump only for package @ecomplus/widget-martan
package/cms.config.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { name } from './package.json'
2
2
 
3
3
  const label = 'Martan'
4
- const thumbnail = 'https://ik.imagekit.io/2wovc1fdm/storefront-widget.png'
4
+ const thumbnail = 'https://ik.imagekit.io/2wovc1fdm/review-6ee734d1-0d51-4b83-8911-5bd8e74fd18f-1767972806198-logo-nbg_R-cm00EY6.png'
5
5
 
6
6
  const martan = {
7
7
  label: 'Configuração dos Widgets',
@@ -10,31 +10,24 @@ const martan = {
10
10
  hint: 'Para ajuda com a configuração use nossa documentação.(https://docs.martan.app/integracoes/ecomplus)',
11
11
  fields: [
12
12
  {
13
- label: 'ID da loja',
14
- hint: 'Obtenha aqui https://app.martan.app/settings',
13
+ label: 'ID da loja (Store ID)',
14
+ hint: 'Obtenha aqui https://dash.martan.app/stores',
15
15
  name: 'store_id',
16
16
  widget: 'number',
17
17
  required: true
18
18
  },
19
19
  {
20
- label: 'Widget Key',
21
- name: 'widget_key',
22
- widget: 'string',
23
- required: true,
24
- hint: 'Obtenha aqui https://app.martan.app/settings'
25
- },
26
- {
27
- label: 'Web ID',
20
+ label: 'Web ID (API-Key)',
28
21
  name: 'web_id',
29
22
  widget: 'string',
30
23
  required: true,
31
- hint: 'Obtenha aqui https://app.martan.app/settings'
24
+ hint: 'Obtenha aqui https://dash.martan.app/stores'
32
25
  }
33
26
  ]
34
27
  }
35
28
 
36
29
  const widgetRating = {
37
- label: 'Média de avaliações',
30
+ label: 'Widget de Avaliações Card de Produtos (Rating)',
38
31
  name: 'widget_rating',
39
32
  widget: 'object',
40
33
  hint: 'Este widget é exibido no card dos produtos exibindo a média das avaliações através de estrelas.',
@@ -51,14 +44,14 @@ const widgetRating = {
51
44
  hint: 'Exibir estrela com classificação média das notas nos cards de resultado de pesquisa',
52
45
  name: 'search_page',
53
46
  widget: 'boolean',
54
- default: false
47
+ default: true
55
48
  },
56
49
  {
57
50
  label: 'Tamanho da font (px) da estrela',
58
51
  name: 'font_size',
59
52
  hint: 'Tamanho do icone da estrela nos cards de produtos',
60
53
  widget: 'number',
61
- default: 12,
54
+ default: 15,
62
55
  required: false
63
56
  },
64
57
  {
@@ -66,7 +59,25 @@ const widgetRating = {
66
59
  hint: 'Cor do incone de estrela que será exibido no widget de reviews',
67
60
  name: 'star_color',
68
61
  widget: 'color',
69
- required: false
62
+ required: false,
63
+ default: '#ffc107'
64
+ },
65
+ {
66
+ label: 'Estilo do widget',
67
+ name: 'theme',
68
+ widget: 'select',
69
+ required: false,
70
+ default: 'normal',
71
+ options: [
72
+ {
73
+ label: 'Compacto',
74
+ value: 'compact'
75
+ },
76
+ {
77
+ label: 'Nota Completa',
78
+ value: 'normal'
79
+ }
80
+ ]
70
81
  },
71
82
  {
72
83
  label: 'Quando exibir o widget',
@@ -74,14 +85,14 @@ const widgetRating = {
74
85
  name: 'display',
75
86
  widget: 'select',
76
87
  required: false,
77
- default: 'always',
88
+ default: 'gt1',
78
89
  options: [
79
90
  {
80
91
  label: 'Sempre',
81
92
  value: 'always'
82
93
  },
83
94
  {
84
- label: 'Apenas quando houver avaliações',
95
+ label: 'Apenas quando houver +1 avaliação',
85
96
  value: 'gt1'
86
97
  }
87
98
  ]
@@ -112,22 +123,35 @@ const widgetReview = {
112
123
  label: 'Cor do icone de estrela',
113
124
  name: 'star_color',
114
125
  widget: 'color',
115
- required: false
126
+ required: false,
127
+ default: '#ffc107'
116
128
  },
117
129
  {
118
130
  label: 'Estilo do Cabeçalho',
119
131
  name: 'header_layout',
120
132
  widget: 'select',
121
133
  required: false,
122
- default: 'header-minimal',
134
+ default: 'Histogram',
123
135
  options: [
124
136
  {
125
- label: 'Minimal',
126
- value: 'header-minimal'
137
+ label: 'Padrão',
138
+ value: 'Padrao'
139
+ },
140
+ {
141
+ label: 'Compacto',
142
+ value: 'compact'
127
143
  },
128
144
  {
129
- label: 'Expandido',
130
- value: 'header-expanded'
145
+ label: 'Centralizado',
146
+ value: 'Center'
147
+ },
148
+ {
149
+ label: 'Resumo',
150
+ value: 'Summary'
151
+ },
152
+ {
153
+ label: 'Histograma',
154
+ value: 'Histogram'
131
155
  }
132
156
  ]
133
157
  },
@@ -136,7 +160,7 @@ const widgetReview = {
136
160
  name: 'reviews_layout',
137
161
  widget: 'select',
138
162
  required: false,
139
- default: 'list-expanded',
163
+ default: 'list-grid',
140
164
  options: [
141
165
  {
142
166
  label: 'Lista',
@@ -151,53 +175,6 @@ const widgetReview = {
151
175
  ]
152
176
  }
153
177
 
154
- const widgetSnippet = {
155
- label: 'Snippet de Reviews',
156
- name: 'widget_snippet',
157
- widget: 'object',
158
- hint: 'Este widget será exibido na página de produtos acima do preço do produto.',
159
- fields: [
160
- {
161
- label: 'Habilitar Widget',
162
- name: 'is_enabled',
163
- widget: 'boolean',
164
- default: true
165
- },
166
- {
167
- label: 'Cor de fundo',
168
- name: 'background_color',
169
- widget: 'color',
170
- required: false
171
- },
172
- {
173
- label: 'Cor do Texto',
174
- name: 'text_color',
175
- widget: 'color',
176
- required: false
177
- },
178
- {
179
- label: 'Cor do icone de estrela',
180
- name: 'star_color',
181
- widget: 'color',
182
- required: false
183
- },
184
- {
185
- label: 'Bordas',
186
- name: 'border',
187
- widget: 'boolean',
188
- default: false,
189
- required: false
190
- },
191
- {
192
- label: 'Cor da borda',
193
- name: 'border_color',
194
- hint: 'Borda será aplicada apenas se opção acima estiver habilitada',
195
- widget: 'color',
196
- required: false
197
- }
198
- ]
199
- }
200
-
201
178
  const configDefault = {
202
179
  label,
203
180
  thumbnail,
@@ -228,16 +205,6 @@ const configDefault = {
228
205
  widget: 'hidden',
229
206
  default: true
230
207
  },
231
- {
232
- name: 'headAppend',
233
- widget: 'hidden',
234
- default: 'src/append/head'
235
- },
236
- {
237
- name: 'bodyAppend',
238
- widget: 'hidden',
239
- default: 'src/append/body'
240
- },
241
208
  {
242
209
  name: 'productDescriptionAppend',
243
210
  widget: 'hidden',
@@ -256,9 +223,37 @@ const configDefault = {
256
223
  ]
257
224
  }
258
225
 
226
+ const widgetQuestions = {
227
+ label: 'Perguntas e Respostas',
228
+ name: 'widget_questions',
229
+ widget: 'object',
230
+ hint: 'Este widget é exibido apenas na página de produtos, exibindo uma listagem com as perguntas e respostas dos compradores.',
231
+ fields: [
232
+ {
233
+ label: 'Habilitar Widget',
234
+ name: 'is_enabled',
235
+ widget: 'boolean',
236
+ default: true
237
+ },
238
+ {
239
+ label: 'Título',
240
+ name: 'title',
241
+ widget: 'string',
242
+ default: 'Perguntas e respostas',
243
+ required: false
244
+ },
245
+ {
246
+ label: 'Habilitar novas pergunta',
247
+ name: 'enable_new_questions',
248
+ widget: 'boolean',
249
+ default: true
250
+ }
251
+ ]
252
+ }
253
+
259
254
  martan.fields.push(widgetRating)
260
255
  martan.fields.push(widgetReview)
261
- martan.fields.push(widgetSnippet)
256
+ martan.fields.push(widgetQuestions)
262
257
 
263
258
  configDefault.fields.push(martan)
264
259
  export default () => configDefault
@@ -1,2 +1,2 @@
1
- (window.webpackJsonpwidgetMartan=window.webpackJsonpwidgetMartan||[]).push([[1],{69:function(t,i,e){var r=e(76);r.__esModule&&(r=r.default),"string"==typeof r&&(r=[[t.i,r,""]]),r.locals&&(t.exports=r.locals);(0,e(5).default)("33bcfd10",r,!0,{})},75:function(t,i,e){"use strict";e(69)},76:function(t,i,e){(i=e(4)(!1)).push([t.i,".mt-rating-remove{align-items:center;cursor:pointer;display:flex;visibility:hidden}.mt-rating__list.is-active .mt-rating-remove{visibility:visible}.mt-rating__options li:hover{cursor:pointer}.mt-rating__list{align-items:center;display:flex;height:23px}.mt-rating__list.is-active .mt-rating-total,.mt-rating__list:hover .mt-rating-total{visibility:visible}.mt-rating__list:hover{opacity:.9}.mt-rating-meter{background-color:#e3e6e6;border-radius:50px;box-shadow:inset 0 0 0 1px #e3e6e6;display:flex;height:10px;overflow:hidden;width:100%}.mt-rating__options{list-style:none;margin:0;max-width:800px;padding:0;width:100%}.mt-rating-star{align-items:center;justify-content:space-around;margin-left:5px;width:30px}.mt-rating-star,.mt-rating-total{color:#757373;display:flex;font-size:12px}.mt-rating-total{gap:3px;margin-left:2px;visibility:hidden;width:50px}",""]),t.exports=i},83:function(t,i,e){"use strict";e.r(i);var r={name:"AverageScore",props:{},data:()=>({maxReviews:5}),methods:{async setRating(t,i){await new Promise(t=>{t(Array.from(options.value.children).map(t=>(t.style.removeProperty("opacity"),t.children[0].childNodes[1].style.stroke="rgb(227, 230, 230)",t.classList.remove("is-active"))))}).then(()=>{if(i!==reviews.orderRating){const t=Array.from(options.value.children)[i-1];t.classList.add("is-active"),t.style.opacity=1,t.children[0].childNodes[1].style.stroke=config.star_color,Array.from(options.value.children).forEach((t,e)=>{e!==i-1&&(t.style.opacity=".5")})}}),i===reviews.orderRating?reviews.orderRating=null:(reviews.offset=0,reviews.orderRating=i)}}},s=(e(75),e(2)),a=Object(s.a)(r,(function(){var t=this,i=t.$createElement,e=t._self._c||i;return e("ul",{ref:"options",staticClass:"mt-rating__options"},t._l(t.maxReviews,(function(i){return e("li",{key:i,staticClass:"mt-rating__list",on:{click:function(e){return 0===t.reviews.total?null:t.setRating(e,i)}}},[e("div",{staticClass:"mt-rating-star"},[e("span",[t._v(t._s(i))]),e("svg",{staticClass:"icon icon-tabler icon-tabler-star",attrs:{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"14",viewBox:"0 0 24 24","stroke-width":"2",stroke:"#e3e6e6",fill:"none","stroke-linecap":"round","stroke-linejoin":"round"}},[e("path",{attrs:{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}}),e("path",{attrs:{d:"M12 17.75l-6.172 3.245l1.179 -6.873l-5 -4.867l6.9 -1l3.086 -6.253l3.086 6.253l6.9 1l-5 4.867l1.179 6.873z"}})])]),e("div",{staticClass:"mt-rating-meter"},[e("div",{staticClass:"mt-rating-bar",style:{width:t.reviews.getWidth(i),"background-color":t.config.star_color||"red"}})]),e("div",{staticClass:"mt-rating-total"},[e("span",[t._v(t._s(t.reviews.average[t.numberToText(i)]))]),e("span",[t._v("("+t._s(t.reviews.getWidth(i))+")")]),e("span",{staticClass:"mt-rating-remove"},[e("svg",{staticClass:"icon icon-tabler icon-tabler-x",attrs:{xmlns:"http://www.w3.org/2000/svg",width:"15",height:"15",viewBox:"0 0 24 24","stroke-width":"2",stroke:"currentColor",fill:"none","stroke-linecap":"round","stroke-linejoin":"round"}},[e("path",{attrs:{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}}),e("path",{attrs:{d:"M18 6l-12 12"}}),e("path",{attrs:{d:"M6 6l12 12"}})])])])])})),0)}),[],!1,null,null,null);i.default=a.exports}}]);
1
+ (window.webpackJsonpwidgetMartan=window.webpackJsonpwidgetMartan||[]).push([[1,5],{34:function(e,t,a){"use strict";function i(e){const t=Math.floor((new Date-new Date(e))/1e3),a={ano:31536e3,"mês":2592e3,semana:604800,dia:86400,hora:3600,minuto:60,segundo:1};let i;if(0===t)return"Agora";for(const e in a)if(i=Math.floor(t/a[e]),i>0)return 1===i?`${i} ${e} atrás`:"mês"===e?i+" meses atrás":`${i} ${e}s atrás`}a.d(t,"a",(function(){return i}))},35:function(e,t,a){var i=a(43);i.__esModule&&(i=i.default),"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);(0,a(9).default)("36ac3f8a",i,!0,{})},36:function(e,t,a){var i=a(45);i.__esModule&&(i=i.default),"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);(0,a(9).default)("0060b384",i,!0,{})},37:function(e,t,a){var i=a(47);i.__esModule&&(i=i.default),"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);(0,a(9).default)("414da60f",i,!0,{})},42:function(e,t,a){"use strict";a(35)},43:function(e,t,a){(t=a(8)(!1)).push([e.i,".mt-reply[data-v-35ae7688]{background:var(--white);border-left:3px solid #e6e6e6;border-radius:12px;border-right:1px solid hsla(0,0%,9%,.102);display:flex;flex-direction:column;font-size:15px;gap:10px;line-height:1.6;margin:10px 0 0;padding:20px;width:100%}@media(max-width:580px){.mt-reply[data-v-35ae7688]{margin:10px 0}}.mt-reply__date[data-v-35ae7688]{color:#475569;color:#777;font-weight:400}.mt-reply__body[data-v-35ae7688],.mt-reply__date[data-v-35ae7688]{font-size:14px;text-decoration:none}.mt-reply__body[data-v-35ae7688]{font-weight:600}.mt-reply__wrapper[data-v-35ae7688]{align-items:center;display:flex}",""]),e.exports=t},44:function(e,t,a){"use strict";a(36)},45:function(e,t,a){(t=a(8)(!1)).push([e.i,".mt-rating__verified{align-items:center;color:#9e9e9e;display:flex;font-size:10px;font-weight:400;gap:3px}.mt-rating__verified svg{color:var(--success);width:15px}",""]),e.exports=t},46:function(e,t,a){"use strict";a(37)},47:function(e,t,a){(t=a(8)(!1)).push([e.i,".review-card[data-v-3da2753a]{background-color:#f3f3f3;border-radius:8px;height:-moz-max-content;height:max-content;padding:16px;width:100%}.review-card__header[data-v-3da2753a]{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:1rem}.review-card__author[data-v-3da2753a]{display:flex;flex-direction:column}.review-card__name[data-v-3da2753a]{font-weight:700;margin-bottom:.25rem}.review-card__date[data-v-3da2753a]{color:#71717a;font-size:70%}.review-card__rating[data-v-3da2753a]{display:flex;gap:.25rem}.review-card__content[data-v-3da2753a]{font-size:.9375rem}.review-card__text[data-v-3da2753a]{line-height:1.5;margin-bottom:1rem}.review-card__text-toggle[data-v-3da2753a]{color:#047857;cursor:pointer;font-size:.875rem;line-height:1.25rem}.review-card__images[data-v-3da2753a]{display:flex;flex-wrap:wrap;gap:.5rem}.review-card__images img[data-v-3da2753a]{border-radius:.25rem;cursor:pointer;height:80px;-o-object-fit:cover;object-fit:cover;width:80px}.review-card__text-empty[data-v-3da2753a]{color:#71717a;font-size:70%}.review-card__title[data-v-3da2753a]{font-size:1.125rem;font-weight:500;line-height:1.75rem;margin-bottom:.5rem}.review-card__recommendation[data-v-3da2753a]{color:#047857;font-size:.875rem;line-height:1.25rem;margin-top:1rem}.i-happy-line[data-v-3da2753a]{--un-icon:url(\"data:image/svg+xml;utf8,%3Csvg viewBox='0 0 24 24' display='inline-block' vertical-align='middle' margin-bottom='0.22rem' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='m12.594 23.258l-.012.002l-.071.035l-.02.004l-.014-.004l-.071-.036q-.016-.004-.024.006l-.004.01l-.017.428l.005.02l.01.013l.104.074l.015.004l.012-.004l.104-.074l.012-.016l.004-.017l-.017-.427q-.004-.016-.016-.018m.264-.113l-.014.002l-.184.093l-.01.01l-.003.011l.018.43l.005.012l.008.008l.201.092q.019.005.029-.008l.004-.014l-.034-.614q-.005-.019-.02-.022m-.715.002a.02.02 0 0 0-.027.006l-.006.014l-.034.614q.001.018.017.024l.015-.002l.201-.093l.01-.008l.003-.011l.018-.43l-.003-.012l-.01-.01z'/%3E%3Cpath fill='currentColor' d='M12 4a8 8 0 1 0 0 16a8 8 0 0 0 0-16M2 12C2 6.477 6.477 2 12 2s10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12m6.5-2c-.195 0-.444.124-.606.448a1 1 0 0 1-1.788-.896C6.542 8.68 7.413 8 8.5 8s1.957.68 2.394 1.552a1 1 0 0 1-1.788.896C8.944 10.124 8.696 10 8.5 10m7 0c-.195 0-.444.124-.606.448a1 1 0 1 1-1.788-.896C13.543 8.68 14.413 8 15.5 8s1.957.68 2.394 1.552a1 1 0 0 1-1.788.896c-.162-.324-.41-.448-.606-.448m-6.896 4.338a1 1 0 0 1 1.412-.088c.53.468 1.223.75 1.984.75s1.455-.282 1.984-.75a1 1 0 1 1 1.324 1.5A4.98 4.98 0 0 1 12 17a4.98 4.98 0 0 1-3.308-1.25a1 1 0 0 1-.088-1.412'/%3E%3C/g%3E%3C/svg%3E\");background-color:#047857;color:inherit;display:inline-block;height:1em;margin-bottom:.22rem;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;vertical-align:middle;width:1em}",""]),e.exports=t},51:function(e,t,a){var i=a(65);i.__esModule&&(i=i.default),"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);(0,a(9).default)("307f0beb",i,!0,{})},52:function(e,t,a){var i=a(67);i.__esModule&&(i=i.default),"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);(0,a(9).default)("0b763a1c",i,!0,{})},53:function(e,t,a){var i=a(69);i.__esModule&&(i=i.default),"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);(0,a(9).default)("2cc802e8",i,!0,{})},63:function(e,t,a){"use strict";a.r(t);var i=a(34),r=a(26),s={name:"ReviewReply",props:{reply:{type:Object}},computed:{i19storeResponse:()=>"Resposta da loja"},methods:{formatDate:r.formatDate,timeAgo:i.a}},o=(a(42),a(3)),l=Object(o.a)(s,(function(){var e=this,t=e.$createElement,a=e._self._c||t;return e.reply?a("div",{staticClass:"mt-reply__wrapper"},[a("div",{staticStyle:{"margin-right":"10px"}},[a("svg",{staticStyle:{transform:"rotate(180deg)"},attrs:{width:"24px",height:"24px",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"}},[a("path",{attrs:{d:"M10.53 5.03a.75.75 0 10-1.06-1.06l-6.25 6.25a.75.75 0 000 1.06l6.25 6.25a.75.75 0 101.06-1.06L5.56 11.5H17a3.248 3.248 0 013.25 3.248v4.502a.75.75 0 001.5 0v-4.502A4.748 4.748 0 0017 10H5.56l4.97-4.97z"}})])]),a("div",{staticClass:"mt-reply"},[a("span",{staticClass:"mt-reply__body"},[e._v(e._s(e.i19storeResponse)+" · "),a("span",{staticClass:"mt-reply__date",attrs:{title:"Respondido em "+e.formatDate(e.reply.created_at)}},[e._v(e._s(e.timeAgo(e.reply.created_at)))])]),a("span",[e._v(e._s(e.reply.body))])])]):e._e()}),[],!1,null,"35ae7688",null).exports,n=a(27),d=a.n(n),c={name:"VerifiedPurchase",props:{showVerified:{type:Boolean,default:!1}},data:()=>({collapseId:null}),computed:{i19verifiedBuyer:()=>"Comprador verificado",i19howProcessVerifiedMsg:()=>Object(r.i18n)({en_us:"How we verify and process reviews",pt_br:"Como verificamos e processamos avaliações"}),i19useMartanPrivacyMsg:()=>Object(r.i18n)({en_us:"We use Martan, a web-based application that provides an online reviews and marketing solution, to collect, source, process and display reviews on our website.",pt_br:"Utilizamos o Martan, uma aplicação baseada na web que oferece uma solução de avaliações online e marketing, para coletar, originar, processar e exibir avaliações em nosso site."}),i19howWeCollectMsg:()=>Object(r.i18n)({en_us:'We automatically send review requests through Martan to customers for whom we have a record of purchasing products directly from our website. This allows us to verify the reliability of the review through technical means such as the customers email address. Reviews submitted directly through these requests are marked as "Verified Purchase", and the following statement will be displayed in the interface where the review is published: "This review was collected from a verified customer who purchased this item."',pt_br:'Enviamos automaticamente solicitações de avaliações por meio do Martan aos clientes para os quais temos registro de que compraram produtos diretamente em nosso site. Isso nos permite verificar a confiabilidade da avaliação por meio de meios técnicos, como o endereço de e-mail do cliente. As avaliações enviadas diretamente por essas solicitações são marcadas como "Compra verificada", e a seguinte declaração será exibida na interface em que a avaliação for publicada: "Esta avaliação foi coletada de um cliente verificado que comprou este item".'}),i19howClientsReviewMsg:()=>Object(r.i18n)({en_us:"Customers can choose how to rate reviewed products with a score between 1 and 5. The average review score is calculated using a simple mathematical average, which is then rounded to a half or full star rating using standard rounding rules. The average review score includes reviews for which customers received discounts on future purchases for adding a photo or video to their review.",pt_br:"Os clientes podem escolher como avaliar os produtos avaliados com uma pontuação entre 1 e 5. A pontuação média das avaliações é calculada usando uma média matemática simples, que é então arredondada para uma meia ou uma avaliação de estrela completa usando regras padrão de arredondamento. A pontuação média das avaliações inclui avaliações para as quais os clientes receberam descontos em compras futuras por adicionar uma foto ou um vídeo à sua avaliação."})},methods:{open:function(){d()("#"+this.collapseId).collapse("toggle")}},mounted:function(){this.collapseId="mt-verified-"+Date.now()}},u=(a(44),{name:"ReviewCard",components:{ReviewReply:l,VerifiedPurchase:Object(o.a)(c,(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",[a("div",{staticClass:"mt-rating__verified"},[a("svg",{staticClass:"icon icon-tabler icon-tabler-discount-check-filled",attrs:{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24","stroke-width":"2",stroke:"currentColor",fill:"none","stroke-linecap":"round","stroke-linejoin":"round"}},[a("path",{attrs:{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}}),a("path",{attrs:{d:"M12.01 2.011a3.2 3.2 0 0 1 2.113 .797l.154 .145l.698 .698a1.2 1.2 0 0 0 .71 .341l.135 .008h1a3.2 3.2 0 0 1 3.195 3.018l.005 .182v1c0 .27 .092 .533 .258 .743l.09 .1l.697 .698a3.2 3.2 0 0 1 .147 4.382l-.145 .154l-.698 .698a1.2 1.2 0 0 0 -.341 .71l-.008 .135v1a3.2 3.2 0 0 1 -3.018 3.195l-.182 .005h-1a1.2 1.2 0 0 0 -.743 .258l-.1 .09l-.698 .697a3.2 3.2 0 0 1 -4.382 .147l-.154 -.145l-.698 -.698a1.2 1.2 0 0 0 -.71 -.341l-.135 -.008h-1a3.2 3.2 0 0 1 -3.195 -3.018l-.005 -.182v-1a1.2 1.2 0 0 0 -.258 -.743l-.09 -.1l-.697 -.698a3.2 3.2 0 0 1 -.147 -4.382l.145 -.154l.698 -.698a1.2 1.2 0 0 0 .341 -.71l.008 -.135v-1l.005 -.182a3.2 3.2 0 0 1 3.013 -3.013l.182 -.005h1a1.2 1.2 0 0 0 .743 -.258l.1 -.09l.698 -.697a3.2 3.2 0 0 1 2.269 -.944zm3.697 7.282a1 1 0 0 0 -1.414 0l-3.293 3.292l-1.293 -1.292l-.094 -.083a1 1 0 0 0 -1.32 1.497l2 2l.094 .083a1 1 0 0 0 1.32 -.083l4 -4l.083 -.094a1 1 0 0 0 -.083 -1.32z","stroke-width":"0",fill:"currentColor"}})]),a("span",{attrs:{title:"Esta compra foi auditada por Martan.app"}},[e._v(" "+e._s(e.i19verifiedBuyer)+" ")])]),a("div",{staticClass:"collapse multi-collapse",attrs:{id:e.collapseId}},[a("div",{staticClass:"card card-body"},[a("h5",[e._v(e._s(e.i19howProcessVerifiedMsg))]),a("p",[e._v(" "+e._s(e.i19useMartanPrivacyMsg)+" ")]),a("p",[e._v(" "+e._s(e.i19howWeCollectMsg)+" ")]),a("p",[e._v(" "+e._s(e.i19howClientsReviewMsg)+" ")])])])])}),[],!1,null,null,null).exports},data:()=>({showFullText:!1}),props:{review:{type:Object,required:!0},starColor:{type:String,default:"#212529"},truncateBody:{type:Boolean,default:!0}},methods:{timeAgo:i.a,formatDate:e=>new Date(e).toLocaleDateString("pt-BR",{timeZone:"America/Sao_Paulo"})},computed:{truncatedText(){return this.review.body.substring(0,200)+"..."}},mounted(){const e=Array.from(document.querySelectorAll(".mt-lazy-image")),t=new IntersectionObserver((e,a)=>{e.forEach(e=>{if(e.isIntersecting&&"false"===e.target.dataset.loaded){const a=e.target;a.dataset.loaded=!0,a.src=a.dataset.src,t.unobserve(a)}})});e.forEach(e=>t.observe(e)),this.showFullText=!this.truncateBody}}),m=(a(46),Object(o.a)(u,(function(){var e=this,t=e.$createElement,a=e._self._c||t;return e.review?a("div",{staticClass:"review-card"},[a("div",{staticClass:"review-card__header"},[a("div",{staticClass:"review-card__author"},[a("span",{staticClass:"review-card__name"},[e._v(e._s(e.review.display_name))]),a("span",{staticClass:"review-card__date",attrs:{title:e.timeAgo(e.review.created_at)}},[e._v(e._s(e.formatDate(e.review.created_at)))]),e.review.verified_purchase?a("VerifiedPurchase"):e._e()],1),a("div",{staticClass:"review-card__rating"},e._l(5,(function(t){return a("div",{key:t,staticClass:"review-card__star"},[a("svg",{attrs:{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"14",viewBox:"0 0 24 24",stroke:t<=e.review.rating?e.starColor:"#E6E3E3",fill:t<=e.review.rating?e.starColor:"none","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"}},[a("path",{attrs:{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}}),a("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"}})])])})),0)]),a("div",{staticClass:"review-card__content"},[e.review.title?a("p",{staticClass:"review-card__title"},[e._v(" "+e._s(e.review.title)+" ")]):e._e(),e.review.body?a("p",{staticClass:"review-card__text"},[e._v(" "+e._s(e.showFullText?e.review.body:e.truncatedText)+" "),e.review.body.length>200?a("span",{staticClass:"review-card__text-toggle",on:{click:function(t){e.showFullText=!e.showFullText}}},[e._v(" "+e._s(e.showFullText?"Ver menos":"Ver mais")+" ")]):e._e()]):a("p",{staticClass:"review-card__text-empty"},[e._v("(Avaliação sem comentário)")]),e.review.pictures&&e.review.pictures.length?a("div",{staticClass:"review-card__images"},e._l(e.review.pictures,(function(t,i){return a("img",{directives:[{name:"show",rawName:"v-show",value:t.thumb,expression:"image.thumb"}],key:i,staticClass:"mt-lazy-image",attrs:{"data-loaded":"false","data-src":t.thumb,alt:"Review image "+(i+1)},on:{click:function(t){return e.$emit("openQuickview",{review:e.review,imageIndex:i})}}})})),0):e._e(),e._m(0)]),e.review.reply?a("div",{staticClass:"review-card-reply"},[a("ReviewReply",{attrs:{reply:e.review.reply}})],1):e._e()]):e._e()}),[function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"review-card__recommendation"},[t("i",{staticClass:"i-happy-line"}),t("span",{staticClass:"text-sm"},[this._v("Eu comprei e recomendo esse produto")])])}],!1,null,"3da2753a",null));t.default=m.exports},64:function(e,t,a){"use strict";a(51)},65:function(e,t,a){(t=a(8)(!1)).push([e.i,".mt-player video{display:block;width:100%}.mt-player .playPauseBtn{background:none;border:0;color:#212529;cursor:pointer;line-height:1;max-width:50px;outline:0;padding:0;text-align:center}.mt-player__controls{padding:5px;transform:translateY(0);width:100%}.mt-player__controls>*{flex:1}.mt-player__progress{background:hsla(0,0%,100%,.5);cursor:pointer;display:flex;flex:10;flex-basis:100%;height:5px;max-width:430px;position:relative;width:100%}.mt-player__progress--filled{background:#a50;flex:0;flex-basis:0%;width:50%}",""]),e.exports=t},66:function(e,t,a){"use strict";a(52)},67:function(e,t,a){(t=a(8)(!1)).push([e.i,"#martan-quickview{padding:0!important}#martan-quickview .modal-dialog{margin:0 auto}.mt-quickview .review-card{margin-top:0!important;width:100%!important}.mt-quickview .review-card__images{display:none}",""]),e.exports=t},68:function(e,t,a){"use strict";a(53)},69:function(e,t,a){(t=a(8)(!1)).push([e.i,".mt-quickview[data-v-ef1c07f4]{padding:0}.mt-quickview__content[data-v-ef1c07f4]{display:flex;flex-direction:column}@media(min-width:992px){.mt-quickview__content[data-v-ef1c07f4]{flex-direction:row}}.mt-quickview__gallery-column[data-v-ef1c07f4]{flex:1;max-width:500px;width:100%}.mt-quickview__main-image img[data-v-ef1c07f4]{border-top-left-radius:3px;max-height:100%;max-width:100%;-o-object-fit:contain;object-fit:contain}@media(max-width:992px){.mt-quickview__main-image img[data-v-ef1c07f4]{border-top-right-radius:3px}}.mt-quickview__thumbnails[data-v-ef1c07f4]{display:flex;gap:.5rem;overflow-x:auto;padding:.5rem}@media(min-width:992px){.mt-quickview__thumbnails[data-v-ef1c07f4]{flex-wrap:wrap;max-height:100px}}.mt-quickview__thumb[data-v-ef1c07f4]{border:2px solid transparent;cursor:pointer;flex-shrink:0;height:60px;width:60px}.mt-quickview__thumb.active[data-v-ef1c07f4]{border-color:var(--primary)}.mt-quickview__thumb img[data-v-ef1c07f4]{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.mt-quickview__thumb i[data-v-ef1c07f4]{align-items:center;background:#f8f9fa;display:flex;font-size:1.5rem;height:100%;justify-content:center;width:100%}.mt-quickview__info-column[data-v-ef1c07f4]{flex:1}@media(min-width:992px){.mt-quickview__info-column[data-v-ef1c07f4]{max-height:500px;overflow-y:auto}}.mt-quickview .close[data-v-ef1c07f4]{padding:8px 1rem;position:absolute;z-index:1}.mt-quickview__galery[data-v-ef1c07f4]{align-items:center;display:flex;max-width:500px;min-height:500px;width:100%}.mt-quickview__galery img[data-v-ef1c07f4]{height:100%;max-height:500px;max-width:500px;-o-object-fit:contain;object-fit:contain;width:100%}.mt-quickview__galery .glide__slides[data-v-ef1c07f4]{align-items:center}.mt-quickview__review[data-v-ef1c07f4]{padding:1rem}@media(min-width:992px){.mt-quickview__review[data-v-ef1c07f4]{max-height:500px;overflow:auto}}@media(min-width:1200px){.mt-quickview__review[data-v-ef1c07f4]{max-height:500px;overflow:auto}}.mt-quickview .video-wrapper[data-v-ef1c07f4]{align-items:center;display:flex}",""]),e.exports=t},89:function(e,t,a){"use strict";a.r(t);var i=a(95),r=a(26),s=a(34),o={name:"VideoPlayer",props:{video:{type:String,required:!0}},data:()=>({isPlaying:!0}),methods:{play(){this.$refs.videoPlayer.paused||this.$refs.videoPlayer.ended?this.$refs.videoPlayer.play():this.$refs.videoPlayer.pause()},updateBtn(){this.isPlaying=this.$refs.videoPlayer.paused}},mounted:function(){this.$refs.playButton.addEventListener("click",this.play),this.$refs.videoPlayer.addEventListener("click",this.play),this.$refs.videoPlayer.addEventListener("play",this.updateBtn),this.$refs.videoPlayer.addEventListener("pause",this.updateBtn)}},l=(a(64),a(3)),n={name:"Quickview",components:{VideoPlayer:Object(l.a)(o,(function(){var e=this.$createElement,t=this._self._c||e;return t("div",{staticClass:"mt-player"},[t("video",{ref:"videoPlayer",attrs:{preload:"metadata"}},[t("source",{attrs:{src:this.video,type:"video/mp4"}})]),t("div",{staticClass:"mt-player__controls"},[t("button",{ref:"playButton",staticClass:"playPauseBtn",attrs:{title:"tocar vídeo"}},[this.isPlaying?t("svg",{staticClass:"icon icon-tabler icon-tabler-player-play",attrs:{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24","stroke-width":"2",stroke:"currentColor",fill:"none","stroke-linecap":"round","stroke-linejoin":"round"}},[t("path",{attrs:{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}}),t("path",{attrs:{d:"M7 4v16l13 -8z"}})]):t("svg",{staticClass:"icon icon-tabler icon-tabler-player-pause",attrs:{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24","stroke-width":"2",stroke:"currentColor",fill:"none","stroke-linecap":"round","stroke-linejoin":"round"}},[t("path",{attrs:{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}}),t("path",{attrs:{d:"M6 5m0 1a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v12a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1z"}}),t("path",{attrs:{d:"M14 5m0 1a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v12a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1z"}})])])])])}),[],!1,null,null,null).exports,ReviewCard:a(63).default},props:{review:Object,isOpen:{type:Boolean,default:!1},starColor:String},data:()=>({currentImageIndex:0,currentImage:null}),computed:{i19quickview:()=>"Quickview",i19next:()=>Object(r.i18n)(i.a),i19previous:()=>Object(r.i18n)(i.b),reviewId:function(){return this.review&&this.review.id?this.review.id:null},pictures:function(){return this.review&&this.review.pictures?this.review.pictures:[]},video:function(){return this.review&&this.review.video_url?this.review.video_url:null},title:function(){return this.review&&this.review.title?this.review.title:null},author:function(){return this.review&&this.review.display_name?this.review.display_name:null},rating:function(){return this.review&&this.review.rating?this.review.rating:null},recommended:function(){return this.review&&this.review.is_recommended?this.review.is_recommended:null},isVerified:function(){return this.review&&this.review.verified_purchase?this.review.verified_purchase:null},reply:function(){return this.review&&this.review.reply?this.review.reply:null},created:function(){return this.review&&this.review.created_at?this.review.created_at:null},body:function(){return this.review&&this.review.body?this.review.body:null}},watch:{isOpen:function(e){e&&$("#martan-quickview").modal("show")},pictures:{immediate:!0,handler(e){e&&e.length&&(this.currentImage=e[0].big||e[0].normal)}}},mounted(){$("#martan-quickview").on("hidden.bs.modal",this.close),$("#martan-quickview").on("shown.bs.modal",this.mount)},methods:{formatDate:r.formatDate,timeAgo:s.a,close:function(){this.$emit("onClose",!0)},setCurrentImage(e){this.currentImageIndex=e,e<this.pictures.length?this.currentImage=this.pictures[e].big:this.currentImage=null}}},d=(a(66),a(68),Object(l.a)(n,(function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"modal fade",attrs:{id:"martan-quickview",tabindex:"-1",role:"dialog","aria-labelledby":"quickviewModal","aria-hidden":"true"}},[a("div",{staticClass:"modal-dialog modal-dialog-centered modal-xl",attrs:{role:"document"}},[a("div",{staticClass:"modal-content"},[a("div",{directives:[{name:"show",rawName:"v-show",value:!1,expression:"false"}],staticClass:"modal-header"},[a("h5",{staticClass:"modal-title",attrs:{id:"quickviewModal"}},[e._v(e._s(e.i19quickview))]),e._m(0)]),a("div",{staticClass:"modal-body mt-quickview"},[e._m(1),a("div",{staticClass:"mt-quickview__content"},[a("div",{staticClass:"mt-quickview__gallery-column"},[a("div",{staticClass:"mt-quickview__main-image"},[e.currentImage?a("img",{attrs:{src:e.currentImage,alt:"Review image"}}):e.video?a("VideoPlayer",{attrs:{videoUrl:e.video}}):e._e()],1),e.pictures.length||e.video?a("div",{staticClass:"mt-quickview__thumbnails"},[e._l(e.pictures,(function(t,i){return a("div",{key:"thumb-"+i,staticClass:"mt-quickview__thumb",class:{active:e.currentImageIndex===i},on:{click:function(t){return e.setCurrentImage(i)}}},[a("img",{attrs:{src:t.thumb,alt:"Thumbnail "+(i+1)}})])})),e.video?a("div",{staticClass:"mt-quickview__thumb",class:{active:e.currentImageIndex===e.pictures.length},on:{click:function(t){return e.setCurrentImage(e.pictures.length)}}},[a("i",{staticClass:"fas fa-play-circle"})]):e._e()],2):e._e()]),e.review?a("div",{staticClass:"mt-quickview__info-column"},[a("div",{staticClass:"mt-review"},[a("div",{staticClass:"mt-rating__group"},[a("ReviewCard",{attrs:{"truncate-body":!1,review:e.review,"star-color":e.starColor,full:!0}})],1)])]):e._e()])])])])])}),[function(){var e=this.$createElement,t=this._self._c||e;return t("button",{staticClass:"close",attrs:{type:"button","data-dismiss":"modal","aria-label":"Close"}},[t("span",{attrs:{"aria-hidden":"true"}},[this._v("×")])])},function(){var e=this.$createElement,t=this._self._c||e;return t("button",{staticClass:"close",attrs:{type:"button","data-dismiss":"modal","aria-label":"Close"}},[t("span",{attrs:{"aria-hidden":"true"}},[this._v("×")])])}],!1,null,"ef1c07f4",null));t.default=d.exports}}]);
2
2
  //# sourceMappingURL=widget-martan.1.min.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack://widgetMartan/./src/widgets/reviews/AverageScore.vue?1bf6","webpack://widgetMartan/./src/widgets/reviews/AverageScore.vue?234b","webpack://widgetMartan/./src/widgets/reviews/AverageScore.vue?221b","webpack://widgetMartan/./src/widgets/reviews/AverageScore.vue?b6d9","webpack://widgetMartan/./src/widgets/reviews/AverageScore.vue?e50e","webpack://widgetMartan/src/widgets/reviews/AverageScore.vue","webpack://widgetMartan/./src/widgets/reviews/AverageScore.vue"],"names":["content","__esModule","default","module","i","locals","exports","add","___CSS_LOADER_API_IMPORT___","push","name","props","data","maxReviews","methods","e","rating","Promise","resolve","Array","from","options","value","children","map","option","style","removeProperty","childNodes","stroke","classList","remove","then","reviews","orderRating","el","opacity","config","star_color","forEach","index","offset","component","_vm","this","_h","$createElement","_c","_self","ref","staticClass","_l","key","on","total","setRating","_v","_s","attrs","width","getWidth","average","numberToText"],"mappings":"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","file":"widget-martan.1.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!./AverageScore.vue?vue&type=style&index=0&id=6e389857&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(\"33bcfd10\", 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!./AverageScore.vue?vue&type=style&index=0&id=6e389857&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, \".mt-rating-remove{align-items:center;cursor:pointer;display:flex;visibility:hidden}.mt-rating__list.is-active .mt-rating-remove{visibility:visible}.mt-rating__options li:hover{cursor:pointer}.mt-rating__list{align-items:center;display:flex;height:23px}.mt-rating__list.is-active .mt-rating-total,.mt-rating__list:hover .mt-rating-total{visibility:visible}.mt-rating__list:hover{opacity:.9}.mt-rating-meter{background-color:#e3e6e6;border-radius:50px;box-shadow:inset 0 0 0 1px #e3e6e6;display:flex;height:10px;overflow:hidden;width:100%}.mt-rating__options{list-style:none;margin:0;max-width:800px;padding:0;width:100%}.mt-rating-star{align-items:center;justify-content:space-around;margin-left:5px;width:30px}.mt-rating-star,.mt-rating-total{color:#757373;display:flex;font-size:12px}.mt-rating-total{gap:3px;margin-left:2px;visibility:hidden;width:50px}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ul',{ref:\"options\",staticClass:\"mt-rating__options\"},_vm._l((_vm.maxReviews),function(index){return _c('li',{key:index,staticClass:\"mt-rating__list\",on:{\"click\":function (e) { return (_vm.reviews.total === 0 ? null : _vm.setRating(e, index)); }}},[_c('div',{staticClass:\"mt-rating-star\"},[_c('span',[_vm._v(_vm._s(index))]),_c('svg',{staticClass:\"icon icon-tabler icon-tabler-star\",attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"14\",\"height\":\"14\",\"viewBox\":\"0 0 24 24\",\"stroke-width\":\"2\",\"stroke\":\"#e3e6e6\",\"fill\":\"none\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}},[_c('path',{attrs:{\"stroke\":\"none\",\"d\":\"M0 0h24v24H0z\",\"fill\":\"none\"}}),_c('path',{attrs:{\"d\":\"M12 17.75l-6.172 3.245l1.179 -6.873l-5 -4.867l6.9 -1l3.086 -6.253l3.086 6.253l6.9 1l-5 4.867l1.179 6.873z\"}})])]),_c('div',{staticClass:\"mt-rating-meter\"},[_c('div',{staticClass:\"mt-rating-bar\",style:({\n width: _vm.reviews.getWidth(index),\n 'background-color': _vm.config.star_color || 'red',\n })})]),_c('div',{staticClass:\"mt-rating-total\"},[_c('span',[_vm._v(_vm._s(_vm.reviews.average[_vm.numberToText(index)]))]),_c('span',[_vm._v(\"(\"+_vm._s(_vm.reviews.getWidth(index))+\")\")]),_c('span',{staticClass:\"mt-rating-remove\"},[_c('svg',{staticClass:\"icon icon-tabler icon-tabler-x\",attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"15\",\"height\":\"15\",\"viewBox\":\"0 0 24 24\",\"stroke-width\":\"2\",\"stroke\":\"currentColor\",\"fill\":\"none\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}},[_c('path',{attrs:{\"stroke\":\"none\",\"d\":\"M0 0h24v24H0z\",\"fill\":\"none\"}}),_c('path',{attrs:{\"d\":\"M18 6l-12 12\"}}),_c('path',{attrs:{\"d\":\"M6 6l12 12\"}})])])])])}),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!./AverageScore.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!./AverageScore.vue?vue&type=script&lang=js\"","<template>\n <ul class=\"mt-rating__options\" ref=\"options\">\n <li class=\"mt-rating__list\" v-for=\"index in maxReviews\" :key=\"index\"\n v-on:click=\"(e) => (reviews.total === 0 ? null : setRating(e, index))\">\n <div class=\"mt-rating-star\">\n <span>{{ index }}</span>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"icon icon-tabler icon-tabler-star\" width=\"14\" height=\"14\"\n viewBox=\"0 0 24 24\" stroke-width=\"2\" stroke=\"#e3e6e6\" fill=\"none\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\">\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\" />\n <path\n d=\"M12 17.75l-6.172 3.245l1.179 -6.873l-5 -4.867l6.9 -1l3.086 -6.253l3.086 6.253l6.9 1l-5 4.867l1.179 6.873z\" />\n </svg>\n </div>\n\n <div class=\"mt-rating-meter\">\n <div class=\"mt-rating-bar\" v-bind:style=\"{\n width: reviews.getWidth(index),\n 'background-color': config.star_color || 'red',\n }\" />\n </div>\n\n <div class=\"mt-rating-total\">\n <span>{{ reviews.average[numberToText(index)] }}</span>\n <span>({{ reviews.getWidth(index) }})</span>\n\n <span class=\"mt-rating-remove\"><svg xmlns=\"http://www.w3.org/2000/svg\" class=\"icon icon-tabler icon-tabler-x\"\n width=\"15\" height=\"15\" viewBox=\"0 0 24 24\" stroke-width=\"2\" stroke=\"currentColor\" fill=\"none\"\n stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"></path>\n <path d=\"M18 6l-12 12\"></path>\n <path d=\"M6 6l12 12\"></path>\n </svg></span>\n </div>\n </li>\n </ul>\n</template>\n\n\n<script>\nexport default {\n name: 'AverageScore',\n\n props: {\n },\n\n data() {\n return {\n maxReviews: 5\n };\n },\n\n methods: {\n async setRating(e, rating) {\n const removeClass = () =>\n new Promise((resolve) => {\n const res = Array.from(options.value.children).map((option) => {\n option.style.removeProperty(\"opacity\")\n option.children[0].childNodes[1].style.stroke = \"rgb(227, 230, 230)\"\n return option.classList.remove(\"is-active\")\n })\n\n resolve(res)\n })\n\n await removeClass().then(() => {\n if (rating !== reviews.orderRating) {\n const el = Array.from(options.value.children)[rating - 1]\n el.classList.add(\"is-active\")\n el.style.opacity = 1\n el.children[0].childNodes[1].style.stroke = config.star_color\n Array.from(options.value.children).forEach((option, index) => {\n if (index !== rating - 1) {\n option.style.opacity = \".5\"\n }\n })\n }\n })\n\n if (rating === reviews.orderRating) {\n reviews.orderRating = null\n } else {\n reviews.offset = 0\n reviews.orderRating = rating\n }\n }\n },\n};\n</script>\n\n<style>\n.mt-rating-remove {\n visibility: hidden;\n cursor: pointer;\n display: flex;\n align-items: center;\n}\n\n.mt-rating__list.is-active .mt-rating-remove {\n visibility: visible;\n}\n\n.mt-rating__options li:hover {\n cursor: pointer;\n}\n\n.mt-rating__list {\n display: flex;\n align-items: center;\n height: 23px;\n}\n\n.mt-rating__list.is-active .mt-rating-total,\n.mt-rating__list:hover .mt-rating-total {\n visibility: visible;\n}\n\n.mt-rating__list:hover {\n opacity: 0.9;\n}\n\n.mt-rating-meter {\n overflow: hidden;\n box-shadow: inset 0 0 0 1px #e3e6e6;\n background-color: #e3e6e6;\n height: 10px;\n width: 100%;\n border-radius: 50px;\n display: flex;\n}\n\n.mt-rating__options {\n margin: 0;\n list-style: none;\n padding: 0;\n max-width: 800px;\n width: 100%;\n}\n\n.mt-rating-star {\n display: flex;\n width: 30px;\n justify-content: space-around;\n font-size: 12px;\n color: #757373;\n align-items: center;\n margin-left: 5px;\n}\n\n.mt-rating-total {\n visibility: hidden;\n width: 50px;\n font-size: 12px;\n color: #757373;\n margin-left: 2px;\n display: flex;\n gap: 3px;\n}\n</style>\n","import { render, staticRenderFns } from \"./AverageScore.vue?vue&type=template&id=6e389857\"\nimport script from \"./AverageScore.vue?vue&type=script&lang=js\"\nexport * from \"./AverageScore.vue?vue&type=script&lang=js\"\nimport style0 from \"./AverageScore.vue?vue&type=style&index=0&id=6e389857&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"],"sourceRoot":""}
1
+ {"version":3,"sources":["webpack://widgetMartan/./src/utils/time-ago.js","webpack://widgetMartan/./src/widgets/reviews/components/ReviewReply.vue?f01f","webpack://widgetMartan/./src/widgets/reviews/components/VerifiedPurchase.vue?98e2","webpack://widgetMartan/./src/widgets/reviews/components/ReviewCard.vue?50b7","webpack://widgetMartan/./src/widgets/reviews/components/ReviewReply.vue?2734","webpack://widgetMartan/./src/widgets/reviews/components/ReviewReply.vue?e52a","webpack://widgetMartan/./src/widgets/reviews/components/VerifiedPurchase.vue?9f3f","webpack://widgetMartan/./src/widgets/reviews/components/VerifiedPurchase.vue?d83d","webpack://widgetMartan/./src/widgets/reviews/components/ReviewCard.vue?7989","webpack://widgetMartan/./src/widgets/reviews/components/ReviewCard.vue?d22a","webpack://widgetMartan/./src/widgets/reviews/components/VideoPlayer.vue?a1ea","webpack://widgetMartan/./src/widgets/reviews/components/Quickview.vue?b851","webpack://widgetMartan/./src/widgets/reviews/components/Quickview.vue?5779","webpack://widgetMartan/./src/widgets/reviews/components/ReviewCard.vue?e244","webpack://widgetMartan/./src/widgets/reviews/components/ReviewReply.vue?91c9","webpack://widgetMartan/src/widgets/reviews/components/ReviewReply.vue","webpack://widgetMartan/./src/widgets/reviews/components/ReviewReply.vue","webpack://widgetMartan/./src/widgets/reviews/components/ReviewReply.vue?5c97","webpack://widgetMartan/./src/widgets/reviews/components/VerifiedPurchase.vue?ad2b","webpack://widgetMartan/src/widgets/reviews/components/VerifiedPurchase.vue","webpack://widgetMartan/./src/widgets/reviews/components/ReviewCard.vue?0a31","webpack://widgetMartan/src/widgets/reviews/components/ReviewCard.vue","webpack://widgetMartan/./src/widgets/reviews/components/VerifiedPurchase.vue","webpack://widgetMartan/./src/widgets/reviews/components/VerifiedPurchase.vue?af2e","webpack://widgetMartan/./src/widgets/reviews/components/ReviewCard.vue","webpack://widgetMartan/./src/widgets/reviews/components/VideoPlayer.vue?d4a3","webpack://widgetMartan/./src/widgets/reviews/components/VideoPlayer.vue?e97c","webpack://widgetMartan/./src/widgets/reviews/components/Quickview.vue?c3ac","webpack://widgetMartan/./src/widgets/reviews/components/Quickview.vue?2e5e","webpack://widgetMartan/./src/widgets/reviews/components/Quickview.vue?9440","webpack://widgetMartan/./src/widgets/reviews/components/Quickview.vue?1ca3","webpack://widgetMartan/./src/widgets/reviews/components/Quickview.vue?cdd7","webpack://widgetMartan/./src/widgets/reviews/components/VideoPlayer.vue?b1c6","webpack://widgetMartan/src/widgets/reviews/components/VideoPlayer.vue","webpack://widgetMartan/./src/widgets/reviews/components/Quickview.vue?e542","webpack://widgetMartan/src/widgets/reviews/components/Quickview.vue","webpack://widgetMartan/./src/widgets/reviews/components/VideoPlayer.vue","webpack://widgetMartan/./src/widgets/reviews/components/VideoPlayer.vue?af46","webpack://widgetMartan/./src/widgets/reviews/components/Quickview.vue"],"names":["timeAgo","date","segundos","Math","floor","Date","intervalos","ano","mês","semana","dia","hora","minuto","segundo","contador","intervalo","content","__esModule","default","module","i","locals","exports","add","___CSS_LOADER_API_IMPORT___","push","name","props","reply","type","Object","computed","i19storeResponse","methods","formatDate","_vm","this","_h","$createElement","_c","_self","staticClass","staticStyle","attrs","_v","_s","created_at","body","_e","showVerified","Boolean","data","collapseId","i19verifiedBuyer","i19howProcessVerifiedMsg","i18n","en_us","pt_br","i19useMartanPrivacyMsg","i19howWeCollectMsg","i19howClientsReviewMsg","open","$","collapse","mounted","now","components","ReviewReply","VerifiedPurchase","showFullText","review","required","starColor","String","truncateBody","toLocaleDateString","timeZone","truncatedText","substring","images","Array","from","document","querySelectorAll","imageObserver","IntersectionObserver","entries","observer","forEach","entry","isIntersecting","target","dataset","loaded","image","src","unobserve","img","observe","display_name","_l","star","key","rating","title","length","on","$event","pictures","index","directives","rawName","value","expression","thumb","$emit","imageIndex","_m","video","isPlaying","play","$refs","videoPlayer","paused","ended","pause","updateBtn","playButton","addEventListener","VideoPlayer","ref","ReviewCard","isOpen","currentImageIndex","currentImage","i19quickview","i19next","i19previous","reviewId","id","video_url","author","recommended","is_recommended","isVerified","verified_purchase","created","watch","isOpened","modal","immediate","handler","newPics","big","normal","close","mount","setCurrentImage","pic","class","active"],"mappings":"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","file":"widget-martan.1.min.js","sourcesContent":["// Retorna uma hora em formato humanizade\nexport function timeAgo (date) {\n const segundos = Math.floor((new Date() - new Date(date)) / 1000)\n\n const intervalos = {\n ano: 31536000,\n mês: 2592000,\n semana: 604800,\n dia: 86400,\n hora: 3600,\n minuto: 60,\n segundo: 1\n }\n\n let contador\n\n if (segundos === 0) {\n return 'Agora'\n }\n\n for (const intervalo in intervalos) {\n contador = Math.floor(segundos / intervalos[intervalo])\n\n if (contador > 0) {\n if (contador === 1) {\n return `${contador} ${intervalo} atrás`\n } else {\n if (intervalo === 'mês') {\n return `${contador} meses atrás`\n }\n return `${contador} ${intervalo}s atrás`\n }\n }\n }\n}\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!./ReviewReply.vue?vue&type=style&index=0&id=35ae7688&prod&lang=css&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(\"36ac3f8a\", 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!./VerifiedPurchase.vue?vue&type=style&index=0&id=ec6260f8&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(\"0060b384\", 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!./ReviewCard.vue?vue&type=style&index=0&id=3da2753a&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(\"414da60f\", 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!./ReviewReply.vue?vue&type=style&index=0&id=35ae7688&prod&lang=css&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, \".mt-reply[data-v-35ae7688]{background:var(--white);border-left:3px solid #e6e6e6;border-radius:12px;border-right:1px solid hsla(0,0%,9%,.102);display:flex;flex-direction:column;font-size:15px;gap:10px;line-height:1.6;margin:10px 0 0;padding:20px;width:100%}@media(max-width:580px){.mt-reply[data-v-35ae7688]{margin:10px 0}}.mt-reply__date[data-v-35ae7688]{color:#475569;color:#777;font-weight:400}.mt-reply__body[data-v-35ae7688],.mt-reply__date[data-v-35ae7688]{font-size:14px;text-decoration:none}.mt-reply__body[data-v-35ae7688]{font-weight:600}.mt-reply__wrapper[data-v-35ae7688]{align-items:center;display:flex}\", \"\"]);\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!./VerifiedPurchase.vue?vue&type=style&index=0&id=ec6260f8&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, \".mt-rating__verified{align-items:center;color:#9e9e9e;display:flex;font-size:10px;font-weight:400;gap:3px}.mt-rating__verified svg{color:var(--success);width:15px}\", \"\"]);\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!./ReviewCard.vue?vue&type=style&index=0&id=3da2753a&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, \".review-card[data-v-3da2753a]{background-color:#f3f3f3;border-radius:8px;height:-moz-max-content;height:max-content;padding:16px;width:100%}.review-card__header[data-v-3da2753a]{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:1rem}.review-card__author[data-v-3da2753a]{display:flex;flex-direction:column}.review-card__name[data-v-3da2753a]{font-weight:700;margin-bottom:.25rem}.review-card__date[data-v-3da2753a]{color:#71717a;font-size:70%}.review-card__rating[data-v-3da2753a]{display:flex;gap:.25rem}.review-card__content[data-v-3da2753a]{font-size:.9375rem}.review-card__text[data-v-3da2753a]{line-height:1.5;margin-bottom:1rem}.review-card__text-toggle[data-v-3da2753a]{color:#047857;cursor:pointer;font-size:.875rem;line-height:1.25rem}.review-card__images[data-v-3da2753a]{display:flex;flex-wrap:wrap;gap:.5rem}.review-card__images img[data-v-3da2753a]{border-radius:.25rem;cursor:pointer;height:80px;-o-object-fit:cover;object-fit:cover;width:80px}.review-card__text-empty[data-v-3da2753a]{color:#71717a;font-size:70%}.review-card__title[data-v-3da2753a]{font-size:1.125rem;font-weight:500;line-height:1.75rem;margin-bottom:.5rem}.review-card__recommendation[data-v-3da2753a]{color:#047857;font-size:.875rem;line-height:1.25rem;margin-top:1rem}.i-happy-line[data-v-3da2753a]{--un-icon:url(\\\"data:image/svg+xml;utf8,%3Csvg viewBox='0 0 24 24' display='inline-block' vertical-align='middle' margin-bottom='0.22rem' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='m12.594 23.258l-.012.002l-.071.035l-.02.004l-.014-.004l-.071-.036q-.016-.004-.024.006l-.004.01l-.017.428l.005.02l.01.013l.104.074l.015.004l.012-.004l.104-.074l.012-.016l.004-.017l-.017-.427q-.004-.016-.016-.018m.264-.113l-.014.002l-.184.093l-.01.01l-.003.011l.018.43l.005.012l.008.008l.201.092q.019.005.029-.008l.004-.014l-.034-.614q-.005-.019-.02-.022m-.715.002a.02.02 0 0 0-.027.006l-.006.014l-.034.614q.001.018.017.024l.015-.002l.201-.093l.01-.008l.003-.011l.018-.43l-.003-.012l-.01-.01z'/%3E%3Cpath fill='currentColor' d='M12 4a8 8 0 1 0 0 16a8 8 0 0 0 0-16M2 12C2 6.477 6.477 2 12 2s10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12m6.5-2c-.195 0-.444.124-.606.448a1 1 0 0 1-1.788-.896C6.542 8.68 7.413 8 8.5 8s1.957.68 2.394 1.552a1 1 0 0 1-1.788.896C8.944 10.124 8.696 10 8.5 10m7 0c-.195 0-.444.124-.606.448a1 1 0 1 1-1.788-.896C13.543 8.68 14.413 8 15.5 8s1.957.68 2.394 1.552a1 1 0 0 1-1.788.896c-.162-.324-.41-.448-.606-.448m-6.896 4.338a1 1 0 0 1 1.412-.088c.53.468 1.223.75 1.984.75s1.455-.282 1.984-.75a1 1 0 1 1 1.324 1.5A4.98 4.98 0 0 1 12 17a4.98 4.98 0 0 1-3.308-1.25a1 1 0 0 1-.088-1.412'/%3E%3C/g%3E%3C/svg%3E\\\");background-color:#047857;color:inherit;display:inline-block;height:1em;margin-bottom:.22rem;-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;vertical-align:middle;width:1em}\", \"\"]);\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!./VideoPlayer.vue?vue&type=style&index=0&id=4f122ab7&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(\"307f0beb\", 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!./Quickview.vue?vue&type=style&index=0&id=ef1c07f4&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(\"0b763a1c\", 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!./Quickview.vue?vue&type=style&index=1&id=ef1c07f4&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(\"2cc802e8\", content, true, {});","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.review)?_c('div',{staticClass:\"review-card\"},[_c('div',{staticClass:\"review-card__header\"},[_c('div',{staticClass:\"review-card__author\"},[_c('span',{staticClass:\"review-card__name\"},[_vm._v(_vm._s(_vm.review.display_name))]),_c('span',{staticClass:\"review-card__date\",attrs:{\"title\":_vm.timeAgo(_vm.review.created_at)}},[_vm._v(_vm._s(_vm.formatDate(_vm.review.created_at)))]),(_vm.review.verified_purchase)?_c('VerifiedPurchase'):_vm._e()],1),_c('div',{staticClass:\"review-card__rating\"},_vm._l((5),function(star){return _c('div',{key:star,staticClass:\"review-card__star\"},[_c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"14\",\"height\":\"14\",\"viewBox\":\"0 0 24 24\",\"stroke\":star <= _vm.review.rating ? _vm.starColor : '#E6E3E3',\"fill\":star <= _vm.review.rating ? _vm.starColor : 'none',\"stroke-width\":\"2\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}},[_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\"}})])])}),0)]),_c('div',{staticClass:\"review-card__content\"},[(_vm.review.title)?_c('p',{staticClass:\"review-card__title\"},[_vm._v(\" \"+_vm._s(_vm.review.title)+\" \")]):_vm._e(),(_vm.review.body)?_c('p',{staticClass:\"review-card__text\"},[_vm._v(\" \"+_vm._s(_vm.showFullText ? _vm.review.body : _vm.truncatedText)+\" \"),(_vm.review.body.length > 200)?_c('span',{staticClass:\"review-card__text-toggle\",on:{\"click\":function($event){_vm.showFullText = !_vm.showFullText}}},[_vm._v(\" \"+_vm._s(_vm.showFullText ? \"Ver menos\" : \"Ver mais\")+\" \")]):_vm._e()]):_c('p',{staticClass:\"review-card__text-empty\"},[_vm._v(\"(Avaliação sem comentário)\")]),(_vm.review.pictures && _vm.review.pictures.length)?_c('div',{staticClass:\"review-card__images\"},_vm._l((_vm.review.pictures),function(image,index){return _c('img',{directives:[{name:\"show\",rawName:\"v-show\",value:(image.thumb),expression:\"image.thumb\"}],key:index,staticClass:\"mt-lazy-image\",attrs:{\"data-loaded\":\"false\",\"data-src\":image.thumb,\"alt\":(\"Review image \" + (index + 1))},on:{\"click\":function($event){return _vm.$emit('openQuickview', { review: _vm.review, imageIndex: index })}}})}),0):_vm._e(),_vm._m(0)]),(_vm.review.reply)?_c('div',{staticClass:\"review-card-reply\"},[_c('ReviewReply',{attrs:{\"reply\":_vm.review.reply}})],1):_vm._e()]):_vm._e()}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"review-card__recommendation\"},[_c('i',{staticClass:\"i-happy-line\"}),_c('span',{staticClass:\"text-sm\"},[_vm._v(\"Eu comprei e recomendo esse produto\")])])}]\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReviewReply.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!./ReviewReply.vue?vue&type=script&lang=js\"","<template>\n <div\n v-if=\"reply\"\n class=\"mt-reply__wrapper\"\n >\n <div style=\"margin-right: 10px\">\n <svg\n width=\"24px\"\n height=\"24px\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style=\"transform: rotate(180deg)\"\n >\n <path\n d=\"M10.53 5.03a.75.75 0 10-1.06-1.06l-6.25 6.25a.75.75 0 000 1.06l6.25 6.25a.75.75 0 101.06-1.06L5.56 11.5H17a3.248 3.248 0 013.25 3.248v4.502a.75.75 0 001.5 0v-4.502A4.748 4.748 0 0017 10H5.56l4.97-4.97z\"\n />\n </svg>\n </div>\n\n <div class=\"mt-reply\">\n <span class=\"mt-reply__body\"\n >{{ i19storeResponse }} ·\n <span\n class=\"mt-reply__date\"\n :title=\"'Respondido em ' + formatDate(reply.created_at)\"\n >{{ timeAgo(reply.created_at) }}</span\n ></span\n >\n <span>{{ reply.body }}</span>\n </div>\n </div>\n</template>\n\n<script>\nimport { formatDate } from \"@ecomplus/utils\";\nimport { timeAgo } from \"../../../utils/time-ago\";\n\nexport default {\n\n name: \"ReviewReply\",\n\n props: {\n reply: {\n type: Object,\n }\n },\n\n computed: {\n i19storeResponse: () => 'Resposta da loja'\n },\n\n methods: {\n formatDate,\n timeAgo\n }\n};\n</script>\n<style lang=\"css\" scoped>\n.mt-reply {\n margin: 10px 0 0;\n display: flex;\n flex-direction: column;\n background: var(--white);\n padding: 20px;\n border-radius: 12px;\n font-size: 15px;\n line-height: 1.6;\n gap: 10px;\n border-right: 1px solid #1717171a;\n border-left: 3px solid rgb(230, 230, 230);\n width: 100%;\n}\n\n@media (max-width: 580px) {\n .mt-reply {\n margin: 10px 0;\n }\n}\n\n.mt-reply__date {\n font-weight: normal;\n font-size: 14px;\n text-decoration: none;\n color: #475569;\n color: #777;\n}\n\n.mt-reply__body {\n font-weight: 600;\n font-size: 14px;\n text-decoration: none;\n}\n\n.mt-reply__wrapper {\n display: flex;\n align-items: center;\n}\n</style>\n","import { render, staticRenderFns } from \"./ReviewReply.vue?vue&type=template&id=35ae7688&scoped=true\"\nimport script from \"./ReviewReply.vue?vue&type=script&lang=js\"\nexport * from \"./ReviewReply.vue?vue&type=script&lang=js\"\nimport style0 from \"./ReviewReply.vue?vue&type=style&index=0&id=35ae7688&prod&lang=css&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 \"35ae7688\",\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.reply)?_c('div',{staticClass:\"mt-reply__wrapper\"},[_c('div',{staticStyle:{\"margin-right\":\"10px\"}},[_c('svg',{staticStyle:{\"transform\":\"rotate(180deg)\"},attrs:{\"width\":\"24px\",\"height\":\"24px\",\"viewBox\":\"0 0 24 24\",\"xmlns\":\"http://www.w3.org/2000/svg\"}},[_c('path',{attrs:{\"d\":\"M10.53 5.03a.75.75 0 10-1.06-1.06l-6.25 6.25a.75.75 0 000 1.06l6.25 6.25a.75.75 0 101.06-1.06L5.56 11.5H17a3.248 3.248 0 013.25 3.248v4.502a.75.75 0 001.5 0v-4.502A4.748 4.748 0 0017 10H5.56l4.97-4.97z\"}})])]),_c('div',{staticClass:\"mt-reply\"},[_c('span',{staticClass:\"mt-reply__body\"},[_vm._v(_vm._s(_vm.i19storeResponse)+\" · \"),_c('span',{staticClass:\"mt-reply__date\",attrs:{\"title\":'Respondido em ' + _vm.formatDate(_vm.reply.created_at)}},[_vm._v(_vm._s(_vm.timeAgo(_vm.reply.created_at)))])]),_c('span',[_vm._v(_vm._s(_vm.reply.body))])])]):_vm._e()}\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!./VerifiedPurchase.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!./VerifiedPurchase.vue?vue&type=script&lang=js\"","<template>\n <div>\n <div class=\"mt-rating__verified\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"icon icon-tabler icon-tabler-discount-check-filled\"\n width=\"24\"\n height=\"24\"\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 >\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\" />\n <path\n d=\"M12.01 2.011a3.2 3.2 0 0 1 2.113 .797l.154 .145l.698 .698a1.2 1.2 0 0 0 .71 .341l.135 .008h1a3.2 3.2 0 0 1 3.195 3.018l.005 .182v1c0 .27 .092 .533 .258 .743l.09 .1l.697 .698a3.2 3.2 0 0 1 .147 4.382l-.145 .154l-.698 .698a1.2 1.2 0 0 0 -.341 .71l-.008 .135v1a3.2 3.2 0 0 1 -3.018 3.195l-.182 .005h-1a1.2 1.2 0 0 0 -.743 .258l-.1 .09l-.698 .697a3.2 3.2 0 0 1 -4.382 .147l-.154 -.145l-.698 -.698a1.2 1.2 0 0 0 -.71 -.341l-.135 -.008h-1a3.2 3.2 0 0 1 -3.195 -3.018l-.005 -.182v-1a1.2 1.2 0 0 0 -.258 -.743l-.09 -.1l-.697 -.698a3.2 3.2 0 0 1 -.147 -4.382l.145 -.154l.698 -.698a1.2 1.2 0 0 0 .341 -.71l.008 -.135v-1l.005 -.182a3.2 3.2 0 0 1 3.013 -3.013l.182 -.005h1a1.2 1.2 0 0 0 .743 -.258l.1 -.09l.698 -.697a3.2 3.2 0 0 1 2.269 -.944zm3.697 7.282a1 1 0 0 0 -1.414 0l-3.293 3.292l-1.293 -1.292l-.094 -.083a1 1 0 0 0 -1.32 1.497l2 2l.094 .083a1 1 0 0 0 1.32 -.083l4 -4l.083 -.094a1 1 0 0 0 -.083 -1.32z\"\n stroke-width=\"0\"\n fill=\"currentColor\"\n />\n </svg>\n\n <span title=\"Esta compra foi auditada por Martan.app\"> {{ i19verifiedBuyer }} </span>\n </div>\n <div class=\"collapse multi-collapse\" :id=\"collapseId\">\n <div class=\"card card-body\">\n <h5>{{ i19howProcessVerifiedMsg }}</h5>\n\n <p>\n {{ i19useMartanPrivacyMsg }}\n </p>\n\n <p>\n {{ i19howWeCollectMsg }}\n </p>\n\n <p>\n {{ i19howClientsReviewMsg }}\n </p>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport { i18n } from \"@ecomplus/utils\";\nimport $ from \"@ecomplus/storefront-twbs\";\n\nexport default {\n name: \"VerifiedPurchase\",\n\n props: {\n showVerified: {\n type: Boolean,\n default: false,\n },\n },\n\n data() {\n return {\n collapseId: null,\n };\n },\n\n computed: {\n i19verifiedBuyer: () => \"Comprador verificado\",\n i19howProcessVerifiedMsg: () =>\n i18n({\n en_us: \"How we verify and process reviews\",\n pt_br: \"Como verificamos e processamos avaliações\",\n }),\n i19useMartanPrivacyMsg: () =>\n i18n({\n en_us:\n \"We use Martan, a web-based application that provides an online reviews and marketing solution, to collect, source, process and display reviews on our website.\",\n pt_br:\n \"Utilizamos o Martan, uma aplicação baseada na web que oferece uma solução de avaliações online e marketing, para coletar, originar, processar e exibir avaliações em nosso site.\",\n }),\n i19howWeCollectMsg: () =>\n i18n({\n en_us:\n 'We automatically send review requests through Martan to customers for whom we have a record of purchasing products directly from our website. This allows us to verify the reliability of the review through technical means such as the customers email address. Reviews submitted directly through these requests are marked as \"Verified Purchase\", and the following statement will be displayed in the interface where the review is published: \"This review was collected from a verified customer who purchased this item.\"',\n pt_br:\n 'Enviamos automaticamente solicitações de avaliações por meio do Martan aos clientes para os quais temos registro de que compraram produtos diretamente em nosso site. Isso nos permite verificar a confiabilidade da avaliação por meio de meios técnicos, como o endereço de e-mail do cliente. As avaliações enviadas diretamente por essas solicitações são marcadas como \"Compra verificada\", e a seguinte declaração será exibida na interface em que a avaliação for publicada: \"Esta avaliação foi coletada de um cliente verificado que comprou este item\".',\n }),\n i19howClientsReviewMsg: () =>\n i18n({\n en_us:\n \"Customers can choose how to rate reviewed products with a score between 1 and 5. The average review score is calculated using a simple mathematical average, which is then rounded to a half or full star rating using standard rounding rules. The average review score includes reviews for which customers received discounts on future purchases for adding a photo or video to their review.\",\n pt_br:\n \"Os clientes podem escolher como avaliar os produtos avaliados com uma pontuação entre 1 e 5. A pontuação média das avaliações é calculada usando uma média matemática simples, que é então arredondada para uma meia ou uma avaliação de estrela completa usando regras padrão de arredondamento. A pontuação média das avaliações inclui avaliações para as quais os clientes receberam descontos em compras futuras por adicionar uma foto ou um vídeo à sua avaliação.\",\n }),\n },\n\n methods: {\n open: function () {\n $(\"#\" + this.collapseId).collapse(\"toggle\");\n },\n },\n\n mounted: function () {\n this.collapseId = \"mt-verified-\" + Date.now();\n },\n};\n</script>\n\n<style lang=\"scss\">\n.mt-rating__verified {\n color: #9e9e9e;\n font-size: 10px;\n font-weight: 400;\n display: flex;\n align-items: center;\n gap: 3px;\n svg {\n width: 15px;\n color: var(--success);\n }\n}\n</style>\n","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReviewCard.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!./ReviewCard.vue?vue&type=script&lang=js\"","x<template>\n <div class=\"review-card\" v-if=\"review\">\n <div class=\"review-card__header\">\n <div class=\"review-card__author\">\n <span class=\"review-card__name\">{{ review.display_name }}</span>\n <span class=\"review-card__date\" :title=\"timeAgo(review.created_at)\">{{\n formatDate(review.created_at)\n }}</span>\n\n <VerifiedPurchase v-if=\"review.verified_purchase\" />\n </div>\n <div class=\"review-card__rating\">\n <div v-for=\"star in 5\" :key=\"star\" class=\"review-card__star\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 24 24\"\n :stroke=\"star <= review.rating ? starColor : '#E6E3E3'\" :fill=\"star <= review.rating ? starColor : 'none'\"\n stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\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 </svg>\n </div>\n </div>\n </div>\n\n <div class=\"review-card__content\">\n <p class=\"review-card__title\" v-if=\"review.title\">\n {{ review.title }}\n </p>\n\n <p class=\"review-card__text\" v-if=\"review.body\">\n {{ showFullText ? review.body : truncatedText }}\n <span v-if=\"review.body.length > 200\" class=\"review-card__text-toggle\" @click=\"showFullText = !showFullText\">\n {{ showFullText ? \"Ver menos\" : \"Ver mais\" }}\n </span>\n </p>\n <p class=\"review-card__text-empty\" v-else>(Avaliação sem comentário)</p>\n\n <div v-if=\"review.pictures && review.pictures.length\" class=\"review-card__images\">\n <img v-for=\"(image, index) in review.pictures\" :key=\"index\" data-loaded=\"false\" :data-src=\"image.thumb\"\n :alt=\"`Review image ${index + 1}`\" @click=\"$emit('openQuickview', { review, imageIndex: index })\"\n v-show=\"image.thumb\" class=\"mt-lazy-image\" />\n </div>\n\n <div class=\"review-card__recommendation\">\n <i class=\"i-happy-line\"></i>\n <span class=\"text-sm\">Eu comprei e recomendo esse produto</span>\n </div>\n </div>\n\n <div class=\"review-card-reply\" v-if=\"review.reply\">\n <ReviewReply :reply=\"review.reply\" />\n </div>\n </div>\n</template>\n\n<script>\nimport { timeAgo } from \"../../../utils/time-ago\";\nimport ReviewReply from \"./ReviewReply.vue\";\nimport VerifiedPurchase from \"./VerifiedPurchase.vue\";\n\nexport default {\n name: \"ReviewCard\",\n\n components: {\n ReviewReply,\n VerifiedPurchase,\n },\n\n data() {\n return {\n showFullText: false,\n };\n },\n\n props: {\n review: {\n type: Object,\n required: true,\n },\n starColor: {\n type: String,\n default: \"#212529\",\n },\n truncateBody: {\n type: Boolean,\n default: true,\n },\n },\n\n methods: {\n timeAgo,\n formatDate(date) {\n return new Date(date).toLocaleDateString(\"pt-BR\", {\n timeZone: \"America/Sao_Paulo\",\n });\n },\n },\n\n computed: {\n truncatedText() {\n return this.review.body.substring(0, 200) + \"...\";\n },\n },\n\n mounted() {\n const images = Array.from(document.querySelectorAll(\".mt-lazy-image\"));\n const imageObserver = new IntersectionObserver((entries, observer) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting && entry.target.dataset.loaded === \"false\") {\n const image = entry.target;\n image.dataset.loaded = true;\n image.src = image.dataset.src;\n imageObserver.unobserve(image);\n }\n });\n });\n\n images.forEach((img) => imageObserver.observe(img));\n this.showFullText = !this.truncateBody;\n },\n};\n</script>\n\n<style lang=\"scss\" scoped>\n.review-card {\n background-color: #F3F3F3;\n border-radius: 8px;\n padding: 16px;\n width: 100%;\n height: max-content;\n\n &__header {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n margin-bottom: 1rem;\n }\n\n &__author {\n display: flex;\n flex-direction: column;\n }\n\n &__name {\n font-weight: bold;\n margin-bottom: 0.25rem;\n }\n\n &__date {\n font-size: 70%;\n color: rgb(113 113 122 / 1);\n }\n\n &__rating {\n display: flex;\n gap: 0.25rem;\n }\n\n &__content {\n font-size: 0.9375rem;\n }\n\n &__text {\n margin-bottom: 1rem;\n line-height: 1.5;\n }\n\n &__text-toggle {\n cursor: pointer;\n color: #047857;\n font-size: 0.875rem;\n line-height: 1.25rem;\n }\n\n &__images {\n display: flex;\n gap: 0.5rem;\n flex-wrap: wrap;\n\n img {\n width: 80px;\n height: 80px;\n object-fit: cover;\n border-radius: 0.25rem;\n cursor: pointer;\n }\n }\n\n &__text-empty {\n font-size: 70%;\n color: rgb(113 113 122 / 1);\n }\n\n &__title {\n font-size: 1.125rem;\n line-height: 1.75rem;\n font-weight: 500;\n margin-bottom: 0.5rem;\n }\n\n &__recommendation {\n margin-top: 1rem;\n color: #047857;\n font-size: 0.875rem;\n line-height: 1.25rem;\n }\n}\n\n.i-happy-line {\n --un-icon: url(\"data:image/svg+xml;utf8,%3Csvg viewBox='0 0 24 24' display='inline-block' vertical-align='middle' margin-bottom='0.22rem' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='m12.594 23.258l-.012.002l-.071.035l-.02.004l-.014-.004l-.071-.036q-.016-.004-.024.006l-.004.01l-.017.428l.005.02l.01.013l.104.074l.015.004l.012-.004l.104-.074l.012-.016l.004-.017l-.017-.427q-.004-.016-.016-.018m.264-.113l-.014.002l-.184.093l-.01.01l-.003.011l.018.43l.005.012l.008.008l.201.092q.019.005.029-.008l.004-.014l-.034-.614q-.005-.019-.02-.022m-.715.002a.02.02 0 0 0-.027.006l-.006.014l-.034.614q.001.018.017.024l.015-.002l.201-.093l.01-.008l.003-.011l.018-.43l-.003-.012l-.01-.01z'/%3E%3Cpath fill='currentColor' d='M12 4a8 8 0 1 0 0 16a8 8 0 0 0 0-16M2 12C2 6.477 6.477 2 12 2s10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12m6.5-2c-.195 0-.444.124-.606.448a1 1 0 0 1-1.788-.896C6.542 8.68 7.413 8 8.5 8s1.957.68 2.394 1.552a1 1 0 0 1-1.788.896C8.944 10.124 8.696 10 8.5 10m7 0c-.195 0-.444.124-.606.448a1 1 0 1 1-1.788-.896C13.543 8.68 14.413 8 15.5 8s1.957.68 2.394 1.552a1 1 0 0 1-1.788.896c-.162-.324-.41-.448-.606-.448m-6.896 4.338a1 1 0 0 1 1.412-.088c.53.468 1.223.75 1.984.75s1.455-.282 1.984-.75a1 1 0 1 1 1.324 1.5A4.98 4.98 0 0 1 12 17a4.98 4.98 0 0 1-3.308-1.25a1 1 0 0 1-.088-1.412'/%3E%3C/g%3E%3C/svg%3E\");\n -webkit-mask: var(--un-icon) no-repeat;\n mask: var(--un-icon) no-repeat;\n -webkit-mask-size: 100% 100%;\n mask-size: 100% 100%;\n background-color: #047857;\n color: inherit;\n display: inline-block;\n vertical-align: middle;\n margin-bottom: 0.22rem;\n width: 1em;\n height: 1em;\n}\n</style>\n","import { render, staticRenderFns } from \"./VerifiedPurchase.vue?vue&type=template&id=ec6260f8\"\nimport script from \"./VerifiedPurchase.vue?vue&type=script&lang=js\"\nexport * from \"./VerifiedPurchase.vue?vue&type=script&lang=js\"\nimport style0 from \"./VerifiedPurchase.vue?vue&type=style&index=0&id=ec6260f8&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"mt-rating__verified\"},[_c('svg',{staticClass:\"icon icon-tabler icon-tabler-discount-check-filled\",attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"24\",\"height\":\"24\",\"viewBox\":\"0 0 24 24\",\"stroke-width\":\"2\",\"stroke\":\"currentColor\",\"fill\":\"none\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}},[_c('path',{attrs:{\"stroke\":\"none\",\"d\":\"M0 0h24v24H0z\",\"fill\":\"none\"}}),_c('path',{attrs:{\"d\":\"M12.01 2.011a3.2 3.2 0 0 1 2.113 .797l.154 .145l.698 .698a1.2 1.2 0 0 0 .71 .341l.135 .008h1a3.2 3.2 0 0 1 3.195 3.018l.005 .182v1c0 .27 .092 .533 .258 .743l.09 .1l.697 .698a3.2 3.2 0 0 1 .147 4.382l-.145 .154l-.698 .698a1.2 1.2 0 0 0 -.341 .71l-.008 .135v1a3.2 3.2 0 0 1 -3.018 3.195l-.182 .005h-1a1.2 1.2 0 0 0 -.743 .258l-.1 .09l-.698 .697a3.2 3.2 0 0 1 -4.382 .147l-.154 -.145l-.698 -.698a1.2 1.2 0 0 0 -.71 -.341l-.135 -.008h-1a3.2 3.2 0 0 1 -3.195 -3.018l-.005 -.182v-1a1.2 1.2 0 0 0 -.258 -.743l-.09 -.1l-.697 -.698a3.2 3.2 0 0 1 -.147 -4.382l.145 -.154l.698 -.698a1.2 1.2 0 0 0 .341 -.71l.008 -.135v-1l.005 -.182a3.2 3.2 0 0 1 3.013 -3.013l.182 -.005h1a1.2 1.2 0 0 0 .743 -.258l.1 -.09l.698 -.697a3.2 3.2 0 0 1 2.269 -.944zm3.697 7.282a1 1 0 0 0 -1.414 0l-3.293 3.292l-1.293 -1.292l-.094 -.083a1 1 0 0 0 -1.32 1.497l2 2l.094 .083a1 1 0 0 0 1.32 -.083l4 -4l.083 -.094a1 1 0 0 0 -.083 -1.32z\",\"stroke-width\":\"0\",\"fill\":\"currentColor\"}})]),_c('span',{attrs:{\"title\":\"Esta compra foi auditada por Martan.app\"}},[_vm._v(\" \"+_vm._s(_vm.i19verifiedBuyer)+\" \")])]),_c('div',{staticClass:\"collapse multi-collapse\",attrs:{\"id\":_vm.collapseId}},[_c('div',{staticClass:\"card card-body\"},[_c('h5',[_vm._v(_vm._s(_vm.i19howProcessVerifiedMsg))]),_c('p',[_vm._v(\" \"+_vm._s(_vm.i19useMartanPrivacyMsg)+\" \")]),_c('p',[_vm._v(\" \"+_vm._s(_vm.i19howWeCollectMsg)+\" \")]),_c('p',[_vm._v(\" \"+_vm._s(_vm.i19howClientsReviewMsg)+\" \")])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./ReviewCard.vue?vue&type=template&id=3da2753a&scoped=true\"\nimport script from \"./ReviewCard.vue?vue&type=script&lang=js\"\nexport * from \"./ReviewCard.vue?vue&type=script&lang=js\"\nimport style0 from \"./ReviewCard.vue?vue&type=style&index=0&id=3da2753a&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 \"3da2753a\",\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!./VideoPlayer.vue?vue&type=style&index=0&id=4f122ab7&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, \".mt-player video{display:block;width:100%}.mt-player .playPauseBtn{background:none;border:0;color:#212529;cursor:pointer;line-height:1;max-width:50px;outline:0;padding:0;text-align:center}.mt-player__controls{padding:5px;transform:translateY(0);width:100%}.mt-player__controls>*{flex:1}.mt-player__progress{background:hsla(0,0%,100%,.5);cursor:pointer;display:flex;flex:10;flex-basis:100%;height:5px;max-width:430px;position:relative;width:100%}.mt-player__progress--filled{background:#a50;flex:0;flex-basis:0%;width:50%}\", \"\"]);\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!./Quickview.vue?vue&type=style&index=0&id=ef1c07f4&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, \"#martan-quickview{padding:0!important}#martan-quickview .modal-dialog{margin:0 auto}.mt-quickview .review-card{margin-top:0!important;width:100%!important}.mt-quickview .review-card__images{display:none}\", \"\"]);\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!./Quickview.vue?vue&type=style&index=1&id=ef1c07f4&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, \".mt-quickview[data-v-ef1c07f4]{padding:0}.mt-quickview__content[data-v-ef1c07f4]{display:flex;flex-direction:column}@media(min-width:992px){.mt-quickview__content[data-v-ef1c07f4]{flex-direction:row}}.mt-quickview__gallery-column[data-v-ef1c07f4]{flex:1;max-width:500px;width:100%}.mt-quickview__main-image img[data-v-ef1c07f4]{border-top-left-radius:3px;max-height:100%;max-width:100%;-o-object-fit:contain;object-fit:contain}@media(max-width:992px){.mt-quickview__main-image img[data-v-ef1c07f4]{border-top-right-radius:3px}}.mt-quickview__thumbnails[data-v-ef1c07f4]{display:flex;gap:.5rem;overflow-x:auto;padding:.5rem}@media(min-width:992px){.mt-quickview__thumbnails[data-v-ef1c07f4]{flex-wrap:wrap;max-height:100px}}.mt-quickview__thumb[data-v-ef1c07f4]{border:2px solid transparent;cursor:pointer;flex-shrink:0;height:60px;width:60px}.mt-quickview__thumb.active[data-v-ef1c07f4]{border-color:var(--primary)}.mt-quickview__thumb img[data-v-ef1c07f4]{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.mt-quickview__thumb i[data-v-ef1c07f4]{align-items:center;background:#f8f9fa;display:flex;font-size:1.5rem;height:100%;justify-content:center;width:100%}.mt-quickview__info-column[data-v-ef1c07f4]{flex:1}@media(min-width:992px){.mt-quickview__info-column[data-v-ef1c07f4]{max-height:500px;overflow-y:auto}}.mt-quickview .close[data-v-ef1c07f4]{padding:8px 1rem;position:absolute;z-index:1}.mt-quickview__galery[data-v-ef1c07f4]{align-items:center;display:flex;max-width:500px;min-height:500px;width:100%}.mt-quickview__galery img[data-v-ef1c07f4]{height:100%;max-height:500px;max-width:500px;-o-object-fit:contain;object-fit:contain;width:100%}.mt-quickview__galery .glide__slides[data-v-ef1c07f4]{align-items:center}.mt-quickview__review[data-v-ef1c07f4]{padding:1rem}@media(min-width:992px){.mt-quickview__review[data-v-ef1c07f4]{max-height:500px;overflow:auto}}@media(min-width:1200px){.mt-quickview__review[data-v-ef1c07f4]{max-height:500px;overflow:auto}}.mt-quickview .video-wrapper[data-v-ef1c07f4]{align-items:center;display:flex}\", \"\"]);\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:\"modal fade\",attrs:{\"id\":\"martan-quickview\",\"tabindex\":\"-1\",\"role\":\"dialog\",\"aria-labelledby\":\"quickviewModal\",\"aria-hidden\":\"true\"}},[_c('div',{staticClass:\"modal-dialog modal-dialog-centered modal-xl\",attrs:{\"role\":\"document\"}},[_c('div',{staticClass:\"modal-content\"},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(false),expression:\"false\"}],staticClass:\"modal-header\"},[_c('h5',{staticClass:\"modal-title\",attrs:{\"id\":\"quickviewModal\"}},[_vm._v(_vm._s(_vm.i19quickview))]),_vm._m(0)]),_c('div',{staticClass:\"modal-body mt-quickview\"},[_vm._m(1),_c('div',{staticClass:\"mt-quickview__content\"},[_c('div',{staticClass:\"mt-quickview__gallery-column\"},[_c('div',{staticClass:\"mt-quickview__main-image\"},[(_vm.currentImage)?_c('img',{attrs:{\"src\":_vm.currentImage,\"alt\":'Review image'}}):(_vm.video)?_c('VideoPlayer',{attrs:{\"videoUrl\":_vm.video}}):_vm._e()],1),(_vm.pictures.length || _vm.video)?_c('div',{staticClass:\"mt-quickview__thumbnails\"},[_vm._l((_vm.pictures),function(pic,index){return _c('div',{key:(\"thumb-\" + index),staticClass:\"mt-quickview__thumb\",class:{ active: _vm.currentImageIndex === index },on:{\"click\":function($event){return _vm.setCurrentImage(index)}}},[_c('img',{attrs:{\"src\":pic.thumb,\"alt\":'Thumbnail ' + (index + 1)}})])}),(_vm.video)?_c('div',{staticClass:\"mt-quickview__thumb\",class:{ active: _vm.currentImageIndex === _vm.pictures.length },on:{\"click\":function($event){return _vm.setCurrentImage(_vm.pictures.length)}}},[_c('i',{staticClass:\"fas fa-play-circle\"})]):_vm._e()],2):_vm._e()]),(_vm.review)?_c('div',{staticClass:\"mt-quickview__info-column\"},[_c('div',{staticClass:\"mt-review\"},[_c('div',{staticClass:\"mt-rating__group\"},[_c('ReviewCard',{attrs:{\"truncate-body\":false,\"review\":_vm.review,\"star-color\":_vm.starColor,\"full\":true}})],1)])]):_vm._e()])])])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('button',{staticClass:\"close\",attrs:{\"type\":\"button\",\"data-dismiss\":\"modal\",\"aria-label\":\"Close\"}},[_c('span',{attrs:{\"aria-hidden\":\"true\"}},[_vm._v(\"×\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('button',{staticClass:\"close\",attrs:{\"type\":\"button\",\"data-dismiss\":\"modal\",\"aria-label\":\"Close\"}},[_c('span',{attrs:{\"aria-hidden\":\"true\"}},[_vm._v(\"×\")])])}]\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VideoPlayer.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!./VideoPlayer.vue?vue&type=script&lang=js\"","<template>\n <div class=\"mt-player\">\n <video preload=\"metadata\" ref=\"videoPlayer\">\n <source :src=\"video\" type=\"video/mp4\" />\n </video>\n\n <div class=\"mt-player__controls\">\n <button ref=\"playButton\" class=\"playPauseBtn\" title=\"tocar vídeo\">\n <svg\n v-if=\"this.isPlaying\"\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"icon icon-tabler icon-tabler-player-play\"\n width=\"24\"\n height=\"24\"\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 >\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\" />\n <path d=\"M7 4v16l13 -8z\" />\n </svg>\n <svg\n v-else\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"icon icon-tabler icon-tabler-player-pause\"\n width=\"24\"\n height=\"24\"\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 >\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\" />\n <path\n d=\"M6 5m0 1a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v12a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1z\"\n />\n <path\n d=\"M14 5m0 1a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v12a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1z\"\n />\n </svg>\n </button>\n </div>\n </div>\n</template>\n\n<script>\nexport default {\n name: \"VideoPlayer\",\n\n props: {\n video: {\n type: String,\n required: true\n },\n },\n\n data() {\n return {\n isPlaying: true,\n };\n },\n\n methods: {\n play() {\n if (this.$refs.videoPlayer.paused || this.$refs.videoPlayer.ended) {\n this.$refs.videoPlayer.play();\n } else {\n this.$refs.videoPlayer.pause();\n }\n },\n updateBtn() {\n this.isPlaying = this.$refs.videoPlayer.paused;\n },\n },\n mounted: function () {\n this.$refs.playButton.addEventListener(\"click\", this.play);\n this.$refs.videoPlayer.addEventListener(\"click\", this.play);\n this.$refs.videoPlayer.addEventListener(\"play\", this.updateBtn);\n this.$refs.videoPlayer.addEventListener(\"pause\", this.updateBtn);\n },\n};\n</script>\n\n<style lang=\"scss\">\n.mt-player {\n video {\n display: block;\n width: 100%;\n }\n\n .playPauseBtn {\n background: none;\n border: 0;\n line-height: 1;\n color: #212529;\n text-align: center;\n outline: 0;\n padding: 0;\n cursor: pointer;\n max-width: 50px;\n }\n\n &__controls {\n width: 100%;\n transform: translateY(0);\n padding: 5px;\n }\n\n &__controls > * {\n flex: 1;\n }\n\n &__progress {\n flex: 10;\n position: relative;\n display: flex;\n flex-basis: 100%;\n height: 5px;\n background: rgba(255, 255, 255, 0.5);\n cursor: pointer;\n max-width: 430px;\n width: 100%;\n &--filled {\n width: 50%;\n background: #aa5500;\n flex: 0;\n flex-basis: 0%;\n }\n }\n}\n</style>\n","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Quickview.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!./Quickview.vue?vue&type=script&lang=js\"","<template>\n <div\n class=\"modal fade\"\n id=\"martan-quickview\"\n tabindex=\"-1\"\n role=\"dialog\"\n aria-labelledby=\"quickviewModal\"\n aria-hidden=\"true\"\n >\n <div class=\"modal-dialog modal-dialog-centered modal-xl\" role=\"document\">\n <div class=\"modal-content\">\n <div class=\"modal-header\" v-show=\"false\">\n <h5 class=\"modal-title\" id=\"quickviewModal\">{{ i19quickview }}</h5>\n <button\n type=\"button\"\n class=\"close\"\n data-dismiss=\"modal\"\n aria-label=\"Close\"\n >\n <span aria-hidden=\"true\">&times;</span>\n </button>\n </div>\n\n <div class=\"modal-body mt-quickview\">\n <button\n type=\"button\"\n class=\"close\"\n data-dismiss=\"modal\"\n aria-label=\"Close\"\n >\n <span aria-hidden=\"true\">&times;</span>\n </button>\n\n <div class=\"mt-quickview__content\">\n <!-- Image Gallery Column -->\n <div class=\"mt-quickview__gallery-column\">\n <!-- Main Image Display -->\n <div class=\"mt-quickview__main-image\">\n <img\n :src=\"currentImage\"\n :alt=\"'Review image'\"\n v-if=\"currentImage\"\n />\n <VideoPlayer v-else-if=\"video\" :videoUrl=\"video\" />\n </div>\n\n <!-- Thumbnails -->\n <div\n class=\"mt-quickview__thumbnails\"\n v-if=\"pictures.length || video\"\n >\n <div\n v-for=\"(pic, index) in pictures\"\n :key=\"`thumb-${index}`\"\n class=\"mt-quickview__thumb\"\n :class=\"{ active: currentImageIndex === index }\"\n @click=\"setCurrentImage(index)\"\n >\n <img :src=\"pic.thumb\" :alt=\"'Thumbnail ' + (index + 1)\" />\n </div>\n <div\n v-if=\"video\"\n class=\"mt-quickview__thumb\"\n :class=\"{ active: currentImageIndex === pictures.length }\"\n @click=\"setCurrentImage(pictures.length)\"\n >\n <i class=\"fas fa-play-circle\"></i>\n </div>\n </div>\n </div>\n\n <!-- Review Info Column -->\n <div class=\"mt-quickview__info-column\" v-if=\"review\">\n <div class=\"mt-review\">\n <div class=\"mt-rating__group\">\n <ReviewCard\n :truncate-body=\"false\"\n :review=\"review\"\n :star-color=\"starColor\"\n :full=\"true\"\n />\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport { i19next, i19previous } from \"@ecomplus/i18n\";\nimport { i18n, formatDate } from \"@ecomplus/utils\";\n\nimport { timeAgo } from \"../../../utils/time-ago\";\nimport VideoPlayer from \"./VideoPlayer.vue\";\nimport ReviewCard from \"./ReviewCard.vue\";\n\nexport default {\n name: \"Quickview\",\n\n components: {\n VideoPlayer,\n ReviewCard,\n },\n\n props: {\n review: Object,\n isOpen: {\n type: Boolean,\n default: false,\n },\n starColor: String,\n },\n\n data() {\n return {\n currentImageIndex: 0,\n currentImage: null,\n };\n },\n\n computed: {\n i19quickview: () => \"Quickview\",\n i19next: () => i18n(i19next),\n i19previous: () => i18n(i19previous),\n\n reviewId: function () {\n if (this.review && this.review.id) {\n return this.review.id;\n }\n\n return null;\n },\n\n pictures: function () {\n if (this.review && this.review.pictures) {\n return this.review.pictures;\n }\n return [];\n },\n\n video: function () {\n if (this.review && this.review.video_url) {\n return this.review.video_url;\n }\n return null;\n },\n\n title: function () {\n if (this.review && this.review.title) {\n return this.review.title;\n }\n return null;\n },\n\n author: function () {\n if (this.review && this.review.display_name) {\n return this.review.display_name;\n }\n return null;\n },\n\n rating: function () {\n if (this.review && this.review.rating) {\n return this.review.rating;\n }\n return null;\n },\n\n recommended: function () {\n if (this.review && this.review.is_recommended) {\n return this.review.is_recommended;\n }\n return null;\n },\n\n isVerified: function () {\n if (this.review && this.review.verified_purchase) {\n return this.review.verified_purchase;\n }\n return null;\n },\n\n reply: function () {\n if (this.review && this.review.reply) {\n return this.review.reply;\n }\n return null;\n },\n\n created: function () {\n if (this.review && this.review.created_at) {\n return this.review.created_at;\n }\n return null;\n },\n\n body: function () {\n if (this.review && this.review.body) {\n return this.review.body;\n }\n return null;\n },\n },\n\n watch: {\n isOpen: function (isOpened) {\n if (isOpened) {\n $(\"#martan-quickview\").modal(\"show\");\n }\n },\n pictures: {\n immediate: true,\n handler(newPics) {\n if (newPics && newPics.length) {\n this.currentImage = newPics[0].big || newPics[0].normal;\n }\n },\n },\n },\n\n mounted() {\n $(\"#martan-quickview\").on(\"hidden.bs.modal\", this.close);\n $(\"#martan-quickview\").on(\"shown.bs.modal\", this.mount);\n },\n\n methods: {\n formatDate,\n timeAgo,\n close: function () {\n this.$emit(\"onClose\", true);\n },\n setCurrentImage(index) {\n this.currentImageIndex = index;\n if (index < this.pictures.length) {\n this.currentImage = this.pictures[index].big;\n } else {\n this.currentImage = null; // Will show video player\n }\n },\n },\n};\n</script>\n\n<style lang=\"scss\">\n#martan-quickview {\n padding: 0 !important;\n .modal-dialog {\n margin: 0 auto;\n }\n}\n\n.mt-quickview {\n .review-card {\n width: 100% !important;\n margin-top: 0 !important;\n }\n .review-card__images {\n display: none;\n }\n}\n</style>\n\n<style lang=\"scss\" scoped>\n.mt-quickview {\n padding: 0;\n\n &__content {\n display: flex;\n flex-direction: column;\n\n @media (min-width: 992px) {\n flex-direction: row;\n }\n }\n\n &__gallery-column {\n flex: 1;\n max-width: 500px;\n width: 100%;\n }\n\n &__main-image {\n img {\n max-width: 100%;\n max-height: 100%;\n object-fit: contain;\n border-top-left-radius: 3px;\n @media (max-width: 992px) {\n border-top-right-radius: 3px;\n }\n }\n }\n\n &__thumbnails {\n display: flex;\n gap: 0.5rem;\n overflow-x: auto;\n padding: 0.5rem;\n\n @media (min-width: 992px) {\n flex-wrap: wrap;\n max-height: 100px;\n }\n }\n\n &__thumb {\n width: 60px;\n height: 60px;\n border: 2px solid transparent;\n cursor: pointer;\n flex-shrink: 0;\n\n &.active {\n border-color: var(--primary);\n }\n\n img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n\n i {\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n background: #f8f9fa;\n font-size: 1.5rem;\n }\n }\n\n &__info-column {\n flex: 1;\n @media (min-width: 992px) {\n max-height: 500px;\n overflow-y: auto;\n }\n }\n\n .close {\n position: absolute;\n z-index: 1;\n padding: 8px 1rem;\n }\n\n &__galery {\n max-width: 500px;\n min-height: 500px;\n width: 100%;\n display: flex;\n align-items: center;\n\n img {\n max-width: 500px;\n max-height: 500px;\n height: 100%;\n object-fit: contain;\n width: 100%;\n }\n\n .glide__slides {\n align-items: center;\n }\n }\n\n &__review {\n padding: 1rem;\n\n @media (min-width: 992px) {\n max-height: 500px;\n overflow: auto;\n }\n\n @media (min-width: 1200px) {\n max-height: 500px;\n overflow: auto;\n }\n }\n\n .video-wrapper {\n display: flex;\n align-items: center;\n }\n}\n</style>\n","import { render, staticRenderFns } from \"./VideoPlayer.vue?vue&type=template&id=4f122ab7\"\nimport script from \"./VideoPlayer.vue?vue&type=script&lang=js\"\nexport * from \"./VideoPlayer.vue?vue&type=script&lang=js\"\nimport style0 from \"./VideoPlayer.vue?vue&type=style&index=0&id=4f122ab7&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"mt-player\"},[_c('video',{ref:\"videoPlayer\",attrs:{\"preload\":\"metadata\"}},[_c('source',{attrs:{\"src\":_vm.video,\"type\":\"video/mp4\"}})]),_c('div',{staticClass:\"mt-player__controls\"},[_c('button',{ref:\"playButton\",staticClass:\"playPauseBtn\",attrs:{\"title\":\"tocar vídeo\"}},[(this.isPlaying)?_c('svg',{staticClass:\"icon icon-tabler icon-tabler-player-play\",attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"24\",\"height\":\"24\",\"viewBox\":\"0 0 24 24\",\"stroke-width\":\"2\",\"stroke\":\"currentColor\",\"fill\":\"none\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}},[_c('path',{attrs:{\"stroke\":\"none\",\"d\":\"M0 0h24v24H0z\",\"fill\":\"none\"}}),_c('path',{attrs:{\"d\":\"M7 4v16l13 -8z\"}})]):_c('svg',{staticClass:\"icon icon-tabler icon-tabler-player-pause\",attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"24\",\"height\":\"24\",\"viewBox\":\"0 0 24 24\",\"stroke-width\":\"2\",\"stroke\":\"currentColor\",\"fill\":\"none\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}},[_c('path',{attrs:{\"stroke\":\"none\",\"d\":\"M0 0h24v24H0z\",\"fill\":\"none\"}}),_c('path',{attrs:{\"d\":\"M6 5m0 1a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v12a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1z\"}}),_c('path',{attrs:{\"d\":\"M14 5m0 1a1 1 0 0 1 1 -1h2a1 1 0 0 1 1 1v12a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1z\"}})])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./Quickview.vue?vue&type=template&id=ef1c07f4&scoped=true\"\nimport script from \"./Quickview.vue?vue&type=script&lang=js\"\nexport * from \"./Quickview.vue?vue&type=script&lang=js\"\nimport style0 from \"./Quickview.vue?vue&type=style&index=0&id=ef1c07f4&prod&lang=scss\"\nimport style1 from \"./Quickview.vue?vue&type=style&index=1&id=ef1c07f4&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 \"ef1c07f4\",\n null\n \n)\n\nexport default component.exports"],"sourceRoot":""}