@meeovi/layer-commerce 1.0.6 → 1.0.7

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 (323) hide show
  1. package/package.json +8 -2
  2. package/app/components/catalog/product/ProductAccordion/ProductAccordion.vue +0 -39
  3. package/app/components/catalog/product/ProductAccordion/__tests__/ProductAccordion.spec.ts +0 -15
  4. package/app/components/catalog/product/ProductAccordion/types.ts +0 -5
  5. package/app/components/catalog/product/ProductProperties/ProductProperties.vue +0 -50
  6. package/app/components/catalog/product/ProductProperties/__tests__/ProductProperties.spec.ts +0 -15
  7. package/app/components/catalog/product/ProductProperties/types.ts +0 -5
  8. package/app/components/catalog/product/ProductSlider/ProductSlider.vue +0 -28
  9. package/app/components/catalog/product/ProductSlider/__tests__/ProductSlider.spec.ts +0 -14
  10. package/app/components/catalog/product/ProductSlider/types.ts +0 -7
  11. package/app/components/catalog/product/RecommendedProducts/RecommendedProducts.vue +0 -12
  12. package/app/components/catalog/product/RecommendedProducts/types.ts +0 -5
  13. package/app/components/catalog/product/RenderContentProductSlider/RenderContentProductSlider.vue +0 -11
  14. package/app/components/catalog/product/add-attribute.vue +0 -54
  15. package/app/components/catalog/product/add-product-type.vue +0 -54
  16. package/app/components/catalog/product/add-product.vue +0 -53
  17. package/app/components/catalog/product/add-showcase.vue +0 -52
  18. package/app/components/catalog/product/add-station.vue +0 -54
  19. package/app/components/catalog/product/bestsellers.vue +0 -57
  20. package/app/components/catalog/product/bidding.vue +0 -93
  21. package/app/components/catalog/product/colorOptions.vue +0 -58
  22. package/app/components/catalog/product/deals.vue +0 -46
  23. package/app/components/catalog/product/exclusives.vue +0 -56
  24. package/app/components/catalog/product/featuredproducts.vue +0 -57
  25. package/app/components/catalog/product/giftCard.vue +0 -63
  26. package/app/components/catalog/product/latestproducts.vue +0 -46
  27. package/app/components/catalog/product/productCard.vue +0 -105
  28. package/app/components/catalog/product/productCompare.vue +0 -60
  29. package/app/components/catalog/product/productCompareTable.vue +0 -441
  30. package/app/components/catalog/product/productDetails.vue +0 -126
  31. package/app/components/catalog/product/productFaqs.vue +0 -17
  32. package/app/components/catalog/product/productGallery.vue +0 -16
  33. package/app/components/catalog/product/productQty.vue +0 -54
  34. package/app/components/catalog/product/productReviews.vue +0 -56
  35. package/app/components/catalog/product/productSpecs.vue +0 -116
  36. package/app/components/catalog/product/radiostation.vue +0 -36
  37. package/app/components/catalog/product/recentlyviewed.vue +0 -43
  38. package/app/components/catalog/product/relatedbrands.vue +0 -54
  39. package/app/components/catalog/product/relatedproducts.vue +0 -43
  40. package/app/components/catalog/product/relatedstations.vue +0 -40
  41. package/app/components/catalog/product/shippingOptions.vue +0 -41
  42. package/app/components/catalog/product/sizeOptions.vue +0 -42
  43. package/app/components/catalog/product/update-attribute-set.vue +0 -209
  44. package/app/components/catalog/product/update-attribute.vue +0 -118
  45. package/app/components/catalog/product/update-product.vue +0 -372
  46. package/app/components/catalog/product/update-showcase.vue +0 -153
  47. package/app/components/catalog/shops/relatedstores.vue +0 -37
  48. package/app/components/catalog/shops/restaurant.vue +0 -66
  49. package/app/components/catalog/shops/stores.vue +0 -44
  50. package/app/components/catalog/vendor/README.md +0 -3
  51. package/app/components/catalog/vendor/blocks/biggestcustomers.vue +0 -33
  52. package/app/components/catalog/vendor/blocks/lowestselling.vue +0 -33
  53. package/app/components/catalog/vendor/blocks/topcategories.vue +0 -33
  54. package/app/components/catalog/vendor/blocks/topproducts.vue +0 -27
  55. package/app/components/catalog/vendor/pages/attributes.vue +0 -43
  56. package/app/components/catalog/vendor/pages/commissions.vue +0 -43
  57. package/app/components/catalog/vendor/pages/crm.vue +0 -67
  58. package/app/components/catalog/vendor/pages/dashboard.vue +0 -46
  59. package/app/components/catalog/vendor/pages/emails.vue +0 -43
  60. package/app/components/catalog/vendor/pages/enquiries.vue +0 -43
  61. package/app/components/catalog/vendor/pages/invoices.vue +0 -43
  62. package/app/components/catalog/vendor/pages/orders.vue +0 -68
  63. package/app/components/catalog/vendor/pages/products.vue +0 -55
  64. package/app/components/catalog/vendor/pages/reviews.vue +0 -48
  65. package/app/components/catalog/vendor/pages/shipments.vue +0 -43
  66. package/app/components/catalog/vendor/pages/stores.vue +0 -43
  67. package/app/components/categories/chart/[id].vue +0 -200
  68. package/app/components/categories/chart/add-chart.vue +0 -142
  69. package/app/components/categories/chart/chart.vue +0 -82
  70. package/app/components/categories/chart/monthlyChart.vue +0 -46
  71. package/app/components/categories/chart/weeklyChart.vue +0 -46
  72. package/app/components/categories/chart/yearlyChart.vue +0 -46
  73. package/app/components/categories/charts.vue +0 -118
  74. package/app/components/categories/deals.vue +0 -101
  75. package/app/components/categories/eats.vue +0 -49
  76. package/app/components/categories/restaurants.vue +0 -26
  77. package/app/components/categories/station/[id].vue +0 -72
  78. package/app/components/categories/stations.vue +0 -124
  79. package/app/components/categories/time/time.vue +0 -63
  80. package/app/components/categories/travel.vue +0 -75
  81. package/app/components/categories/weather/weather.vue +0 -44
  82. package/app/components/content/blocks/breadcrumbs.vue +0 -0
  83. package/app/components/content/blocks/currencySwitcher.vue +0 -0
  84. package/app/components/content/blocks/languageSwitcher.vue +0 -0
  85. package/app/components/content/blocks/videoproduct.vue +0 -9
  86. package/app/components/content/pages/checkout.vue +0 -118
  87. package/app/components/content/pages/meeoviGlobal.vue +0 -68
  88. package/app/components/content/pages/pickup-locations.vue +0 -238
  89. package/app/components/content/pages/showcases.vue +0 -90
  90. package/app/components/content/pages/success.vue +0 -60
  91. package/app/components/marketing/add-brand.vue +0 -54
  92. package/app/components/marketing/add-incentive.vue +0 -54
  93. package/app/components/marketing/promotions/giftcards.vue +0 -102
  94. package/app/components/marketing/promotions/subscriptions.vue +0 -121
  95. package/app/components/marketing/update-incentive.vue +0 -326
  96. package/app/components/menus/lowernav.vue +0 -78
  97. package/app/components/partials/LocaleSelector.vue +0 -24
  98. package/app/components/partials/ShoppingCart.vue +0 -128
  99. package/app/components/partials/StripePayment.vue +0 -149
  100. package/app/components/partials/addToCartBtn.vue +0 -40
  101. package/app/components/partials/cartItem.vue +0 -124
  102. package/app/components/partials/checkoutButton.vue +0 -44
  103. package/app/components/partials/compareBtn.vue +0 -68
  104. package/app/components/partials/ratings.vue +0 -13
  105. package/app/components/partials/store/CurrencySelector.vue +0 -133
  106. package/app/components/partials/store/StoreSwitcher.vue +0 -13
  107. package/app/components/placeholders/Comments.vue +0 -15
  108. package/app/components/placeholders/CreateListBtn.vue +0 -7
  109. package/app/components/placeholders/Event.vue +0 -9
  110. package/app/components/placeholders/ListShowcases.vue +0 -9
  111. package/app/components/placeholders/Short.vue +0 -9
  112. package/app/components/placeholders/Space.vue +0 -9
  113. package/app/components/placeholders/Tag.vue +0 -7
  114. package/app/components/related/brandCard.vue +0 -41
  115. package/app/components/related/incentiveCard.vue +0 -44
  116. package/app/components/related/invoiceCard.vue +0 -43
  117. package/app/components/related/orderCard.vue +0 -43
  118. package/app/components/related/relatedproducts.vue +0 -17
  119. package/app/components/sales/CartPageContent/CartPageContent.vue +0 -37
  120. package/app/components/sales/CheckoutAddress/CheckoutAddress.vue +0 -50
  121. package/app/components/sales/CheckoutAddress/__tests__/CheckoutAddress.spec.ts +0 -16
  122. package/app/components/sales/CheckoutAddress/types.ts +0 -16
  123. package/app/components/sales/CheckoutPayment/CheckoutPayment.vue +0 -68
  124. package/app/components/sales/CheckoutPayment/__tests__/CheckoutPayment.spec.ts +0 -14
  125. package/app/components/sales/CheckoutPayment/types.ts +0 -12
  126. package/app/components/sales/OrderSummary/OrderSummary.vue +0 -57
  127. package/app/components/sales/OrderSummary/__tests__/ContactInformation.spec.ts +0 -52
  128. package/app/components/sales/OrderSummary/types.ts +0 -5
  129. package/app/components/sales/incentives.vue +0 -223
  130. package/app/components/sales/invoices.vue +0 -107
  131. package/app/components/sales/orders.vue +0 -378
  132. package/app/components/sales/shipments.vue +0 -65
  133. package/app/components/sales/transactions.vue +0 -109
  134. package/app/components/shop/add-shop.vue +0 -54
  135. package/app/components/shop/cart/cartItem.vue +0 -182
  136. package/app/components/shop/cart/checkout.vue +0 -415
  137. package/app/components/shop/checkout/StripeCardElement.vue +0 -206
  138. package/app/components/shop/checkout/StripeCheckout.vue +0 -49
  139. package/app/components/shop/checkout/addressBilling.vue +0 -263
  140. package/app/components/shop/checkout/addressShipping.vue +0 -175
  141. package/app/components/shop/checkout/cart/ProductItem.vue +0 -56
  142. package/app/components/shop/checkout/cart/PromotionItem.vue +0 -53
  143. package/app/composables/_types.ts +0 -18
  144. package/app/composables/adapters/abstract/cartAdapter.ts +0 -0
  145. package/app/composables/adapters/abstract/categoryAdapter.ts +0 -0
  146. package/app/composables/adapters/abstract/customerAdapter.ts +0 -0
  147. package/app/composables/adapters/abstract/inventoryAdapter.ts +0 -0
  148. package/app/composables/adapters/abstract/orderAdapter.ts +0 -0
  149. package/app/composables/adapters/abstract/productAdapter.ts +0 -7
  150. package/app/composables/cart/registry.ts +0 -20
  151. package/app/composables/cart/types.ts +0 -18
  152. package/app/composables/cart/useCart.ts +0 -15
  153. package/app/composables/config.ts +0 -19
  154. package/app/composables/defs/apiDefinitions.ts +0 -55
  155. package/app/composables/defs/extension.feature +0 -40
  156. package/app/composables/defs/extension.mocks.ts +0 -39
  157. package/app/composables/defs/extension.test.ts +0 -280
  158. package/app/composables/defs/extension.ts +0 -236
  159. package/app/composables/defs/index.ts +0 -3
  160. package/app/composables/defs/types.ts +0 -136
  161. package/app/composables/domain/cart.ts +0 -0
  162. package/app/composables/domain/category.ts +0 -0
  163. package/app/composables/domain/order.ts +0 -0
  164. package/app/composables/domain/price.ts +0 -0
  165. package/app/composables/domain/product.ts +0 -8
  166. package/app/composables/domain/reward.ts +0 -0
  167. package/app/composables/domain/transactions.ts +0 -0
  168. package/app/composables/helpers/contextualizedNormalizers.feature +0 -14
  169. package/app/composables/helpers/contextualizedNormalizers.test.ts +0 -85
  170. package/app/composables/helpers/contextualizedNormalizers.ts +0 -20
  171. package/app/composables/helpers/index.ts +0 -1
  172. package/app/composables/index.ts +0 -6
  173. package/app/composables/methods/auth.ts +0 -83
  174. package/app/composables/methods/cart.ts +0 -119
  175. package/app/composables/methods/category.ts +0 -27
  176. package/app/composables/methods/checkout.ts +0 -54
  177. package/app/composables/methods/customer.ts +0 -52
  178. package/app/composables/methods/helpers.ts +0 -5
  179. package/app/composables/methods/index.ts +0 -75
  180. package/app/composables/methods/order.ts +0 -39
  181. package/app/composables/methods/product.ts +0 -95
  182. package/app/composables/methods/settings.ts +0 -16
  183. package/app/composables/models/cart.ts +0 -95
  184. package/app/composables/models/category.ts +0 -13
  185. package/app/composables/models/checkout.ts +0 -17
  186. package/app/composables/models/customer.ts +0 -16
  187. package/app/composables/models/facets.ts +0 -25
  188. package/app/composables/models/index.ts +0 -94
  189. package/app/composables/models/order.ts +0 -43
  190. package/app/composables/models/product.ts +0 -73
  191. package/app/composables/models/shared.ts +0 -75
  192. package/app/composables/products/registry.ts +0 -20
  193. package/app/composables/products/types.ts +0 -13
  194. package/app/composables/products/useEvents.ts +0 -0
  195. package/app/composables/products/useGiftCards.ts +0 -0
  196. package/app/composables/products/useProducts.ts +0 -12
  197. package/app/composables/products/useSubscriptions.ts +0 -0
  198. package/app/composables/registry.ts +0 -21
  199. package/app/composables/stores/cart.ts +0 -218
  200. package/app/composables/stores/cartStore.ts +0 -300
  201. package/app/composables/stores/checkout.ts +0 -19
  202. package/app/composables/stores/compare.ts +0 -65
  203. package/app/composables/stores/currency.js +0 -29
  204. package/app/composables/stores/digital-products.js +0 -11
  205. package/app/composables/stores/index.js +0 -0
  206. package/app/composables/stores/orders.ts +0 -161
  207. package/app/composables/stores/product.ts +0 -26
  208. package/app/composables/stores/productList.ts +0 -0
  209. package/app/composables/stores/productListInfo.ts +0 -0
  210. package/app/composables/stores/products.ts +0 -112
  211. package/app/composables/stores/recentlyViewedProducts.ts +0 -0
  212. package/app/composables/stores/review.ts +0 -25
  213. package/app/composables/stores/storeInPickUp.ts +0 -22
  214. package/app/composables/stores/user.ts +0 -20
  215. package/app/composables/stores/wishlist.ts +0 -19
  216. package/app/composables/types/Order.type.ts +0 -181
  217. package/app/composables/types/index.ts +0 -285
  218. package/app/composables/types/product.ts +0 -14
  219. package/app/composables/useBreakpoints/index.ts +0 -1
  220. package/app/composables/useBreakpoints/useBreakpoints.ts +0 -28
  221. package/app/composables/useCart/__tests__/useCart.spec.ts +0 -11
  222. package/app/composables/useCart/index.ts +0 -1
  223. package/app/composables/useCart/types.ts +0 -17
  224. package/app/composables/useCart/useCart.ts +0 -46
  225. package/app/composables/useCartShippingMethods/__tests__/useCartShippingMethods.spec.ts +0 -11
  226. package/app/composables/useCartShippingMethods/index.ts +0 -1
  227. package/app/composables/useCartShippingMethods/types.ts +0 -17
  228. package/app/composables/useCartShippingMethods/useCartShippingMethods.ts +0 -47
  229. package/app/composables/useCatalog.ts +0 -64
  230. package/app/composables/useContent/index.ts +0 -1
  231. package/app/composables/useContent/types.ts +0 -44
  232. package/app/composables/useContent/useContent.ts +0 -45
  233. package/app/composables/useContent.ts +0 -57
  234. package/app/composables/useCustomer/__tests__/useCustomer.spec.ts +0 -25
  235. package/app/composables/useCustomer/index.ts +0 -2
  236. package/app/composables/useCustomer/types.ts +0 -17
  237. package/app/composables/useCustomer/useCustomer.ts +0 -40
  238. package/app/composables/useCustomerAddress/__tests__/useCustomerAddress.spec.ts +0 -11
  239. package/app/composables/useCustomerAddress/index.ts +0 -2
  240. package/app/composables/useCustomerAddress/types.ts +0 -17
  241. package/app/composables/useCustomerAddress/useCustomerAddress.ts +0 -55
  242. package/app/composables/useCustomerOrder/__tests__/useCustomerOrder.spec.ts +0 -11
  243. package/app/composables/useCustomerOrder/adress.ts +0 -10
  244. package/app/composables/useCustomerOrder/index.ts +0 -2
  245. package/app/composables/useCustomerOrder/product.ts +0 -37
  246. package/app/composables/useCustomerOrder/types.ts +0 -40
  247. package/app/composables/useCustomerOrder/useCustomerOrder.ts +0 -63
  248. package/app/composables/useCustomerOrders/__tests__/useCustomerOrders.spec.ts +0 -11
  249. package/app/composables/useCustomerOrders/index.ts +0 -2
  250. package/app/composables/useCustomerOrders/types.ts +0 -20
  251. package/app/composables/useCustomerOrders/useCustomerOrders.ts +0 -56
  252. package/app/composables/useCustomerReturns/__tests__/useCustomerReturns.spec.ts +0 -11
  253. package/app/composables/useCustomerReturns/index.ts +0 -2
  254. package/app/composables/useCustomerReturns/types.ts +0 -17
  255. package/app/composables/useCustomerReturns/useCustomerReturns.ts +0 -41
  256. package/app/composables/useHandleError/index.ts +0 -1
  257. package/app/composables/useHandleError/types.ts +0 -11
  258. package/app/composables/useHandleError/useHandleError.ts +0 -27
  259. package/app/composables/usePageTitle.ts +0 -16
  260. package/app/composables/useProduct/index.ts +0 -2
  261. package/app/composables/useProduct/types.ts +0 -17
  262. package/app/composables/useProduct/useProduct.ts +0 -42
  263. package/app/composables/useProductAttribute/__tests__/useProduct.mock.ts +0 -31
  264. package/app/composables/useProductAttribute/__tests__/useProductAttribute.spec.ts +0 -14
  265. package/app/composables/useProductAttribute/index.ts +0 -1
  266. package/app/composables/useProductAttribute/useProductAttribute.ts +0 -37
  267. package/app/composables/useProductRecommended/__tests__/useProductRecommended.spec.ts +0 -12
  268. package/app/composables/useProductRecommended/index.ts +0 -1
  269. package/app/composables/useProductRecommended/types.ts +0 -17
  270. package/app/composables/useProductRecommended/useProductRecommended.ts +0 -43
  271. package/app/composables/useProductReviews/__tests__/productReviews.mock.ts +0 -20
  272. package/app/composables/useProductReviews/__tests__/useProductReviews.spec.ts +0 -22
  273. package/app/composables/useProductReviews/index.ts +0 -2
  274. package/app/composables/useProductReviews/types.ts +0 -17
  275. package/app/composables/useProductReviews/useProductReviews.ts +0 -46
  276. package/app/composables/useProducts/__tests__/useProducts.spec.ts +0 -11
  277. package/app/composables/useProducts/types.ts +0 -22
  278. package/app/composables/useProducts/useProducts.ts +0 -41
  279. package/app/composables/utils/countryList.ts +0 -14
  280. package/app/composables/utils/currency.js +0 -56
  281. package/app/composables/utils/glossary.ts +0 -0
  282. package/app/composables/utils/importExport.ts +0 -0
  283. package/app/composables/utils/index.js +0 -0
  284. package/app/composables/utils/print.ts +0 -0
  285. package/app/composables/utils/shopThemes.ts +0 -0
  286. package/app/composables/utils/statistics.ts +0 -0
  287. package/app/composables/utils/stock.ts +0 -0
  288. package/app/composables/utils/stripe.ts +0 -16
  289. package/app/composables/utils/taxation.ts +0 -0
  290. package/app/composables/utils/tellFriends.ts +0 -0
  291. package/app/composables/validationRules/index.ts +0 -1
  292. package/app/composables/validationRules/password.feature +0 -67
  293. package/app/composables/validationRules/password.test.ts +0 -89
  294. package/app/composables/validationRules/password.ts +0 -25
  295. package/app/composables/vendors/index.ts +0 -0
  296. package/app/composables/vendors/registry.ts +0 -0
  297. package/app/composables/vendors/useAffiliates.ts +0 -0
  298. package/app/composables/vendors/useCommission.ts +0 -0
  299. package/app/modules/vue-head/composables/useHead.ts +0 -3
  300. package/app/pages/brand/[...slug].vue +0 -92
  301. package/app/pages/brands.vue +0 -90
  302. package/app/pages/cart.vue +0 -142
  303. package/app/pages/compare.vue +0 -166
  304. package/app/pages/departments/[...slug].vue +0 -385
  305. package/app/pages/departments/category/[...slug].vue +0 -135
  306. package/app/pages/incentive/[...id].vue +0 -66
  307. package/app/pages/invoice/[id].vue +0 -309
  308. package/app/pages/order/[id].vue +0 -327
  309. package/app/pages/product/[...id].vue +0 -309
  310. package/app/pages/product/showcases/index.vue +0 -86
  311. package/app/pages/shipment/[...id].vue +0 -176
  312. package/app/pages/shop/[...slug].vue +0 -158
  313. package/app/pages/shops.vue +0 -76
  314. package/app/pages/subscription/[...id].vue +0 -147
  315. package/app/pages/transaction/[...id].vue +0 -74
  316. package/app/types/shims-imports.d.ts +0 -13
  317. package/app/utils/client.ts +0 -26
  318. package/app/utils/index.ts +0 -53
  319. package/app/utils/normalizer.ts +0 -23
  320. package/app/utils/normalizers/magento.ts +0 -29
  321. package/app/utils/normalizers/shopify.ts +0 -29
  322. package/global.d.ts +0 -149
  323. package/tsconfig.json +0 -31
@@ -1,58 +0,0 @@
1
- <template>
2
- <v-row>
3
- <v-col cols="12">
4
- <h6>Color</h6>
5
- </v-col>
6
-
7
- <v-col cols="12">
8
- <v-container>
9
- <v-row>
10
- <v-col cols="auto" v-for="color in colors" :key="color.id">
11
- <v-btn density="compact" :style="`background-color: ${color.value || color.hex || color.name}`" :title="color.name"
12
- @click="selectColor(color)">
13
- </v-btn>
14
- </v-col>
15
- </v-row>
16
- </v-container>
17
- </v-col>
18
- </v-row>
19
- </template>
20
-
21
- <script setup>
22
- import { ref, onMounted } from 'vue'
23
- const emit = defineEmits(['color-selected'])
24
- const colors = ref([])
25
- const selectedColor = ref(null)
26
-
27
- const nuxtApp = useNuxtApp()
28
- const { $directus, $readItems } = nuxtApp
29
-
30
- const loadColors = async () => {
31
- try {
32
- const res = await $directus.request($readItems('attributes', {
33
- filter: {
34
- attribute_code: { _eq: 'color' }
35
- },
36
- sort: ['id']
37
- }))
38
-
39
- const attr = (res && res[0]) || null
40
- const opts = attr?.options || []
41
- // options may only have `name`; normalize to objects with id and value
42
- colors.value = opts.map((o, i) => ({ id: `${attr?.id || 'color'}-${i}`, name: o.name, value: o.name }))
43
- } catch (e) {
44
- // eslint-disable-next-line no-console
45
- console.warn('Failed to load color attributes', e)
46
- colors.value = []
47
- }
48
- }
49
-
50
- const selectColor = (color) => {
51
- selectedColor.value = color.value ?? color.id
52
- emit('color-selected', color)
53
- }
54
-
55
- onMounted(() => {
56
- loadColors()
57
- })
58
- </script>
@@ -1,46 +0,0 @@
1
- <template>
2
- <div>
3
- <section data-bs-version="5.1" class="mbr-section features20 cid-txNnCwzel4" id="features20-4t"
4
- data-sortbtn="btn-primary">
5
- <div class="container-fluid">
6
- <h2 class="mbr-section-title align-left mbr-fonts-style display-5">
7
- Deals</h2>
8
- <div class="underline align-left pb-3">
9
- <div class="line"></div>
10
- </div>
11
- <v-sheet class="mx-auto">
12
- <v-slide-group v-model="model" class="pa-4" selected-class="bg-success" show-arrows>
13
- <v-slide-group-item v-slot="{ isSelected, toggle, selectedClass }"
14
- v-for="(products, index) in deals" :key="index">
15
- <productCard :product="products" :class="['ma-4', selectedClass]" @click="toggle" />
16
-
17
- <div class="d-flex fill-height align-center justify-center">
18
- <v-scale-transition>
19
- <v-icon v-if="isSelected" color="white" icon="mdi-close-circle-outline" size="48"></v-icon>
20
- </v-scale-transition>
21
- </div>
22
- </v-slide-group-item>
23
- </v-slide-group>
24
- </v-sheet>
25
- </div>
26
- </section>
27
- </div>
28
- </template>
29
-
30
- <script setup>
31
- import productCard from './productCard.vue'
32
- import { useCatalogFallback } from '../../../composables/useCatalog'
33
-
34
- const model = ref(null)
35
- const catalog = useCatalogFallback()
36
-
37
- const {
38
- data: deals
39
- } = await useAsyncData('deals', async () => {
40
- return await catalog.listProducts({
41
- fields: ['*', 'products.products_id.*', 'products.products_id.image.*', 'currency.currency_id.*', 'brands.brands_id.*', 'image.*'],
42
- limit: 10,
43
- filter: { price: { _lte: '20.00' }, status: { _eq: 'published' } }
44
- })
45
- })
46
- </script>
@@ -1,56 +0,0 @@
1
- <template>
2
- <div>
3
- <section data-bs-version="5.1" class="mbr-section features20 cid-txNnCwzel4" id="features20-4t"
4
- data-sortbtn="btn-primary">
5
- <div class="container-fluid">
6
- <h2 class="mbr-section-title align-left mbr-fonts-style display-5">
7
- Exclusives</h2>
8
- <div class="underline align-left pb-3">
9
- <div class="line"></div>
10
- </div>
11
- <v-sheet class="mx-auto sliderProducts row align-items-stretch items-row justify-content-center">
12
- <v-slide-group v-model="model" class="pa-4" selected-class="bg-success" show-arrows>
13
- <v-slide-group-item v-slot="{ isSelected, toggle, selectedClass }" v-for="(products, index) in exclusives"
14
- :key="index">
15
- <productCard :product="products?.products_id" :class="['ma-4', selectedClass]" @click="toggle" />
16
-
17
- <div class="d-flex fill-height align-center justify-center">
18
- <v-scale-transition>
19
- <v-icon v-if="isSelected" color="white" icon="mdi-close-circle-outline" size="48"></v-icon>
20
- </v-scale-transition>
21
- </div>
22
- </v-slide-group-item>
23
- </v-slide-group>
24
- </v-sheet>
25
- </div>
26
- </section>
27
- </div>
28
- </template>
29
-
30
- <script setup>
31
- import productCard from './productCard.vue'
32
-
33
- const model = ref(null);
34
- const { $commerce } = useNuxtApp()
35
- import { useCatalogFallback } from '../../../composables/useCatalog'
36
- const catalog = useCatalogFallback()
37
-
38
- const { data: exclusives } = await useAsyncData('exclusives', async () => {
39
- // ask the adapter for products first; composable will fallback to Directus
40
- const refs = await catalog.listProducts({
41
- fields: ['id', 'sku'],
42
- limit: 10,
43
- filter: { status: { _eq: 'published' }, departments: { departments_id: { name: { _eq: 'Exclusives' } } } }
44
- })
45
-
46
- const products = await Promise.all(refs.map(async (r: any) => {
47
- try {
48
- return await $commerce.getProduct(String(r.sku || r.id))
49
- } catch (e) {
50
- return null
51
- }
52
- }))
53
-
54
- return products.filter(Boolean)
55
- })
56
- </script>
@@ -1,57 +0,0 @@
1
- <template>
2
- <div>
3
- <section data-bs-version="5.1" class="mbr-section features20 cid-txNnCwzel4" id="features20-4t"
4
- data-sortbtn="btn-primary">
5
- <div class="container-fluid">
6
- <h2 class="mbr-section-title align-left mbr-fonts-style display-5">
7
- Featured Products</h2>
8
- <div class="underline align-left pb-3">
9
- <div class="line"></div>
10
- </div>
11
- <v-sheet class="mx-auto">
12
- <v-slide-group v-model="model" class="pa-4" show-arrows>
13
- <v-slide-group-item v-slot="{ isSelected, toggle, selectedClass }"
14
- v-for="(products, index) in featured" :key="index">
15
- <productCard :product="products" :class="['ma-4', selectedClass]" @click="toggle" />
16
-
17
- <div class="d-flex fill-height align-center justify-center">
18
- <v-scale-transition>
19
- <v-icon v-if="isSelected" color="white" icon="mdi-close-circle-outline" size="48"></v-icon>
20
- </v-scale-transition>
21
- </div>
22
- </v-slide-group-item>
23
- </v-slide-group>
24
- </v-sheet>
25
- </div>
26
- </section>
27
- </div>
28
- </template>
29
-
30
- <script setup>
31
- import productCard from './productCard.vue'
32
-
33
- const model = ref(null);
34
- import { useCatalogFallback } from '../../../composables/useCatalog'
35
- const catalog = useCatalogFallback()
36
-
37
- const {
38
- data: featured
39
- } = await useAsyncData('featured', async () => {
40
- return await catalog.listProducts({
41
- fields: ['*', 'products.products_id.*', 'products.products_id.image.*', 'currency.currency_id.*', 'brands.brands_id.*', 'image.*'],
42
- limit: 10,
43
- filter: {
44
- lists: {
45
- lists_id: {
46
- lists_types: {
47
- lists_types_id: {
48
- name: { _eq: 'Featured' }
49
- }
50
- }
51
- }
52
- },
53
- status: { _eq: 'published' }
54
- }
55
- })
56
- })
57
- </script>
@@ -1,63 +0,0 @@
1
- <template>
2
- <div>
3
- <!---->
4
- <v-row class="giftCardSection">
5
- <v-col cols="12">
6
- <h2>{{ callouts?.menus?.[3]?.name }}</h2>
7
- </v-col>
8
-
9
- <v-col cols="12">
10
- <v-row>
11
- <v-col cols="6"><v-text-field class="giftcardfield"
12
- :label="callouts?.menus?.[4]?.name"></v-text-field></v-col>
13
- <v-col cols="6"><v-btn class="giftcardbtn" color="orange" size="x-large" type="submit"
14
- variant="elevated">{{ callouts?.menus?.[5]?.name }}</v-btn></v-col>
15
- </v-row>
16
-
17
- <v-expansion-panels>
18
- <v-expansion-panel :title="callouts?.menus?.[6]?.name" :text="callouts?.menus?.[6]?.description">
19
- </v-expansion-panel>
20
- </v-expansion-panels>
21
- </v-col>
22
-
23
- <v-col cols="12">
24
- <h2>{{ callouts?.menus?.[7]?.name }} {{ gift?.amount }}</h2>
25
- <NuxtLink :to="`/commerce/giftcard/${gift?.id}`">{{ callouts?.menus?.[8]?.name }}</NuxtLink>
26
- </v-col>
27
- <v-divider></v-divider>
28
-
29
- <v-col cols="12">
30
- <p></p>
31
- </v-col>
32
- <v-divider></v-divider>
33
- </v-row>
34
- </div>
35
- </template>
36
-
37
- <script setup>
38
- const props = defineProps({
39
- gift: {
40
- type: String,
41
- required: true,
42
- },
43
- });
44
-
45
- const {
46
- $directus,
47
- $readItem
48
- } = useNuxtApp()
49
-
50
- const {
51
- data: callouts
52
- } = await useAsyncData('callouts', () => {
53
- return $directus.request($readItem('callouts', '4'))
54
- })
55
-
56
- useHead({
57
- title: 'Redeem an Meeovi Gift Card'
58
- })
59
-
60
- definePageMeta({
61
- middleware: ['authenticated'],
62
- })
63
- </script>
@@ -1,46 +0,0 @@
1
- <template>
2
- <div>
3
- <section data-bs-version="5.1" class="mbr-section features20 cid-txNnCwzel4" id="features20-4t"
4
- data-sortbtn="btn-primary">
5
- <div class="container-fluid">
6
- <h2 class="mbr-section-title align-left mbr-fonts-style display-5">
7
- Latest Products</h2>
8
- <div class="underline align-left pb-3">
9
- <div class="line"></div>
10
- </div>
11
- <v-sheet class="mx-auto">
12
- <v-slide-group v-model="model" class="pa-4" show-arrows>
13
- <v-slide-group-item v-slot="{ isSelected, toggle, selectedClass }" v-for="(products, index) in latest" :key="index">
14
- <productCard :product="products" :class="['ma-4', selectedClass]" @click="toggle" />
15
-
16
- <div class="d-flex fill-height align-center justify-center">
17
- <v-scale-transition>
18
- <v-icon v-if="isSelected" color="white" icon="mdi-close-circle-outline" size="48"></v-icon>
19
- </v-scale-transition>
20
- </div>
21
- </v-slide-group-item>
22
- </v-slide-group>
23
- </v-sheet>
24
- </div>
25
- </section>
26
- </div>
27
- </template>
28
-
29
- <script setup>
30
- import productCard from './productCard.vue'
31
-
32
- const model = ref(null);
33
- import { useCatalogFallback } from '../../../composables/useCatalog'
34
- const catalog = useCatalogFallback()
35
-
36
- const {
37
- data: latest
38
- } = await useAsyncData('latest', async () => {
39
- return await catalog.listProducts({
40
- fields: ['*', 'products.products_id.*', 'products.products_id.image.*', 'currency.currency_id.*', 'brands.brands_id.*', 'image.*'],
41
- filter: { status: { _eq: 'published' } },
42
- sort: '-products_id.date_created',
43
- limit: 10
44
- })
45
- })
46
- </script>
@@ -1,105 +0,0 @@
1
- <template>
2
- <div>
3
- <div class="border border-neutral-200 rounded-md hover:shadow-lg max-w-[300px]">
4
- <div class="relative" v-if="displayProduct?.image?.length > 0">
5
- <NuxtLink :to="`/product/${displayProduct?.id}`" class="block">
6
- <img v-if="$directus && displayProduct?.image?.filename_disk"
7
- :src="`${$directus.url}assets/${displayProduct?.image?.filename_disk}`" :alt="displayProduct?.name"
8
- class="block object-cover h-auto rounded-md aspect-square" width="300" height="300" />
9
- <img v-else-if="displayProduct?.imageUrl" :src="displayProduct?.imageUrl" :alt="displayProduct?.name"
10
- class="block object-cover h-auto rounded-md aspect-square" width="300" height="300" />
11
- </NuxtLink>
12
- <v-btn variant="flat" size="sm" square
13
- class="absolute bottom-0 right-0 mr-2 mb-2 bg-white ring-1 ring-inset ring-neutral-200 rounded-full!"
14
- aria-label="Add to wishlist">
15
- <v-icon icon="fas fa-heart" size="sm"></v-icon>
16
- </v-btn>
17
- </div>
18
-
19
- <div class="relative" v-else>
20
- <NuxtLink :to="`/product/${displayProduct?.id}`" class="block">
21
- <img src="~/assets/images/mbr-1920x1893.png" :alt="displayProduct?.name"
22
- class="block object-cover h-auto rounded-md aspect-square" width="300" height="300" />
23
- </NuxtLink>
24
- <v-btn variant="flat" size="sm" square
25
- class="absolute bottom-0 right-0 mr-2 mb-2 bg-white ring-1 ring-inset ring-neutral-200 rounded-full!"
26
- aria-label="Add to wishlist">
27
- <v-icon icon="fas fa-heart" size="sm"></v-icon>
28
- </v-btn>
29
- </div>
30
- <div class="p-4 border-t border-neutral-200" style="background-color: white !important;">
31
- <NuxtLink :to="`/product/${displayProduct?.id}`" variant="secondary" class="no-underline"> {{ displayProduct?.name }}
32
- </NuxtLink>
33
- <div class="flex items-center pt-1">
34
- <v-rating size="xs" active-color="warning" :model-value="displayProduct?.rating" :max="5" />
35
-
36
- <NuxtLink :to="`/product/${displayProduct?.id}`" variant="secondary" class="pl-1 no-underline">
37
- <v-chip size="xs">{{ displayProduct?.rating }}</v-chip>
38
- </NuxtLink>
39
- </div>
40
- <p class="block py-2 font-normal leading-5 typography-text-sm text-neutral-700"
41
- v-if="displayProduct?.brands && displayProduct?.brands.length > 0">
42
- By:
43
- <div style="display: inline-block;" v-for="brands in product?.brands" :key="brands">
44
- <NuxtLink :to="`/brand/${brands?.brands_id?.slug}`">{{ brands?.brands_id?.name }}</NuxtLink></div>
45
- </p>
46
- <span class="block pb-2 font-bold typography-text-lg">
47
- <div style="display: inline-block;" v-for="currency in displayProduct?.currency || []" :key="currency">
48
- {{ currency?.currency_id?.symbol }}
49
- </div>
50
- {{ displayProduct?.price }}
51
- </span>
52
- <!--<v-btn size="sm">
53
- <template #prefix>
54
- <SfIconShoppingCart size="sm" />
55
- </template>
56
- Add to cart
57
- </v-btn>-->
58
- </div>
59
- </div>
60
- </div>
61
- </template>
62
-
63
- <script setup>
64
- import { ref, onMounted, watch, computed } from 'vue'
65
- import { useCatalogFallback } from '../../../composables/useCatalog'
66
-
67
- const props = defineProps({
68
- product: {
69
- type: [Object, String],
70
- required: true,
71
- },
72
- });
73
-
74
- const productData = ref<any>(null)
75
- const catalog = useCatalogFallback()
76
-
77
- const displayProduct = computed(() => productData.value || props.product)
78
-
79
- const resolveId = (p: any) => {
80
- if (!p) return null
81
- if (typeof p === 'string') return p
82
- // directus nested shape product?.products_id or products_id?.id
83
- return p.id || p.products_id?.id || p.products_id || null
84
- }
85
-
86
- async function load() {
87
- const id = resolveId(props.product)
88
- if (!id) return
89
- // prefer adapter if available
90
- if (catalog.adapter) {
91
- // adapter may expose getProductById or getProductBySlug
92
- try {
93
- const p = await catalog.getProductById(id)
94
- productData.value = p || (await catalog.getProductBySlug(id))
95
- } catch (e) {
96
- productData.value = await catalog.getProductBySlug(id)
97
- }
98
- } else {
99
- productData.value = await catalog.getProductById(id)
100
- }
101
- }
102
-
103
- onMounted(load)
104
- watch(() => props.product, load)
105
- </script>
@@ -1,60 +0,0 @@
1
- <!-- pages/compare.vue -->
2
- <template>
3
- <div class="product-compare-page">
4
- <productCard
5
- :is-loading="isLoading"
6
- />
7
- </div>
8
- </template>
9
-
10
- <script setup lang="ts">
11
- import { onMounted } from 'vue'
12
- import { useRouter } from 'vue-router'
13
- import { useCompareStore } from '~/stores/compare'
14
- import { useMetaStore } from '~/stores/meta'
15
- import { useNavigationStore } from '~/stores/navigation'
16
- import { useBreadcrumbsStore } from '~/stores/breadcrumbs'
17
-
18
- const router = useRouter()
19
- const compareStore = useCompareStore()
20
- const metaStore = useMetaStore()
21
- const navigationStore = useNavigationStore()
22
- const breadcrumbsStore = useBreadcrumbsStore()
23
-
24
- const isLoading = computed(() => compareStore.getIsLoading)
25
-
26
- // Methods converted from the container class
27
- const updateMeta = () => {
28
- metaStore.setMeta({
29
- title: 'Product Compare',
30
- description: 'Compare products and find the best one for you.',
31
- keywords: 'product comparison, compare products, find the best deal'
32
- })
33
- }
34
-
35
- breadcrumbsStore.updateBreadcrumbs = () => {
36
- const breadcrumbs = [{
37
- url: '/compare',
38
- name: 'Product Compare'
39
- }]
40
- breadcrumbsStore.updateBreadcrumbs(breadcrumbs)
41
- }
42
-
43
- const updateHeaderState = () => {
44
- navigationStore.addNavigationItem({
45
- name: 'PRODUCT_COMPARE',
46
- title: 'Compare',
47
- onBack: () => router.back()
48
- })
49
- }
50
-
51
- // Lifecycle hook (equivalent to componentDidMount)
52
- onMounted(() => {
53
- // Scroll to top
54
- window.scrollTo({ top: 0 })
55
-
56
- updateMeta()
57
- updateBreadcrumbs()
58
- updateHeaderState()
59
- })
60
- </script>