@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,56 +0,0 @@
1
- <script setup lang="ts">
2
- import { useVendureQuery } from "../../../composables/useVendureQuery";
3
- import getProductReviewsQuery from "#graphql/app/commerce/queries/getProductReviews.gql";
4
-
5
- const props = defineProps<{ productId: string }>();
6
- const { data } = useVendureQuery(getProductReviewsQuery, {
7
- productId: props.productId,
8
- });
9
- const reviews = computed(() => data.value?.product?.reviews || []);
10
-
11
- const format: Intl.DateTimeFormatOptions = {
12
- year: "numeric",
13
- month: "short",
14
- day: "numeric",
15
- hour: "numeric",
16
- minute: "numeric",
17
- hour12: true,
18
- };
19
- const formatDate = (date: string) =>
20
- new Date(date).toLocaleDateString("en-us", format);
21
- </script>
22
-
23
- <template>
24
- <div>
25
- <h4 class="text-xl font-bold dark:text-white mt-3">
26
- {{ $t("product.reviews") }}
27
- </h4>
28
- <div v-if="reviews.length">
29
- <div v-for="review in reviews" :key="review.id">
30
- <div
31
- v-if="review.createdAt"
32
- class="mt-3 text-gray-600 text-sm"
33
- >
34
- <span>{{ formatDate(review.createdAt) }}</span>
35
- </div>
36
- <div class="inline-flex items-center mt-2">
37
- <span
38
- v-for="n in review.rating"
39
- :key="n"
40
- class="w-5 h-5 i-carbon-star-filled"
41
- ></span>
42
- <span
43
- v-for="n in 5 - review.rating"
44
- :key="n"
45
- class="w-5 h-5 i-carbon-star"
46
- ></span>
47
- <span class="font-semibold ml-2">{{ review.summary }}</span>
48
- </div>
49
- <div class="mt-2">
50
- <p class="wrap-break-word">{{ review.body }}</p>
51
- </div>
52
- </div>
53
- </div>
54
- <div v-else>{{ $t("product.noReviews") }}</div>
55
- </div>
56
- </template>
@@ -1,116 +0,0 @@
1
- <template>
2
- <v-table>
3
- <tbody>
4
- <tr>
5
- <th>Released</th>
6
- <td>{{ new Date(product?.created_at).toLocaleDateString() }}</td>
7
- </tr>
8
- <tr>
9
- <th>Updated</th>
10
- <td>{{ new Date(product?.updated_at).toLocaleDateString() }}</td>
11
- </tr>
12
- <tr>
13
- <th>Name</th>
14
- <td>{{ product?.name }}</td>
15
- </tr>
16
- <tr>
17
- <th>Category Name</th>
18
- <td><div style="display: inline-block;" v-for="categories in product?.categories" :key="categories">{{ categories?.categories_id?.name.join(', ') }}</div></td>
19
- </tr>
20
- <tr>
21
- <th>Price</th>
22
- <td>
23
- <strong><div style="display: inline-block;" v-for="currency in product?.currency" :key="currency">{{ currency?.currency_id?.symbol }}</div></strong>
24
- {{ product?.price }}
25
- </td>
26
- </tr>
27
- <tr>
28
- <th>Average Rating</th>
29
- <td><ratings :rating="product?.rating" /></td>
30
- </tr>
31
- <tr>
32
- <th># of Reviews</th>
33
- <td>{{ product?.review_count }}</td>
34
- </tr>
35
- <tr>
36
- <th>Sku</th>
37
- <td>{{ product?.sku }}</td>
38
- </tr>
39
- <tr>
40
- <th>How many items are left?</th>
41
- <td>{{ product?.stock }}</td>
42
- </tr>
43
- <tr>
44
- <th>Visibility</th>
45
- <td>{{ product?.visibility }}</td>
46
- </tr>
47
- <tr>
48
- <th>Weight</th>
49
- <td>{{ product?.weight }}</td>
50
- </tr>
51
- <tr>
52
- <th>Height</th>
53
- <td>{{ product?.height }}</td>
54
- </tr>
55
- <tr>
56
- <th>Format</th>
57
- <td v-dompurify-html="product?.format"></td>
58
- </tr>
59
- <tr>
60
- <th>Product Color</th>
61
- <td>{{ product?.color }}</td>
62
- </tr>
63
- <tr>
64
- <th>Product Size</th>
65
- <td>{{ product?.size }}</td>
66
- </tr>
67
- <tr>
68
- <th>Product Manufacturer</th>
69
- <td>{{ product?.manufacturer?.manufacturer_id?.name }}</td>
70
- </tr>
71
- <tr>
72
- <th>Product Description</th>
73
- <td><div v-dompurify-html="product?.content"></div></td>
74
- </tr>
75
- <tr>
76
- <th>Is Gift Message Available</th>
77
- <td>{{ product?.gift_message_available }}</td>
78
- </tr>
79
- <tr>
80
- <th>Special to Date</th>
81
- <td><div style="display: inline-block;" v-for="currency in product?.currency" :key="currency">{{ currency?.currency_id?.symbol }}</div> {{ product?.special_to_date }}</td>
82
- </tr>
83
- <tr>
84
- <th>Special Price</th>
85
- <td><div style="display: inline-block;" v-for="currency in product?.currency" :key="currency">{{ currency?.currency_id?.symbol }}</div> {{ product?.special_price }}</td>
86
- </tr>
87
- <tr>
88
- <th>Is Featured</th>
89
- <td>{{ product?.is_featured }}</td>
90
- </tr>
91
- <tr>
92
- <th>Product URL Key</th>
93
- <td>{{ product?.url_key }}</td>
94
- </tr>
95
- <tr>
96
- <th>Product URL Path</th>
97
- <td>{{ product?.url_path }}</td>
98
- </tr>
99
- <tr>
100
- <th>Product Gift Message Availability</th>
101
- <td>{{ product?.gift_message_available }}</td>
102
- </tr>
103
- </tbody>
104
- </v-table>
105
- </template>
106
-
107
- <script setup>
108
- import ratings from '../../partials/ratings.vue'
109
-
110
- const props = defineProps({
111
- product: {
112
- type: Object,
113
- required: true,
114
- },
115
- });
116
- </script>
@@ -1,36 +0,0 @@
1
- <template>
2
- <div>
3
- <v-card color="#b02564">
4
- <div class="d-flex flex-no-wrap justify-space-between">
5
- <div>
6
- <v-card-title class="text-h5">
7
- {{ radio?.name }}
8
- </v-card-title>
9
-
10
- <v-card-subtitle>{{ radio?.description }}</v-card-subtitle>
11
-
12
- <v-card-actions>
13
- <v-btn class="ms-2" size="small" text="LISTEN" variant="outlined"
14
- :href="`/departments/categories/station/${radio?.id}`"></v-btn>
15
- </v-card-actions>
16
- </div>
17
-
18
- <v-avatar class="ma-3" rounded="0" size="125">
19
- <NuxtImg :src="`${$directus.url}/assets/${radio?.image?.filename_disk}`" />
20
- </v-avatar>
21
- </div>
22
- </v-card>
23
- </div>
24
- </template>
25
-
26
- <script setup>
27
- const props = defineProps({
28
- radio: {
29
- type: Object,
30
- required: true,
31
- },
32
- });
33
- const {
34
- radio
35
- } = props;
36
- </script>
@@ -1,43 +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
- Recently Viewed</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 recentlyViewed" :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
-
35
- import { onMounted } from 'vue'
36
- import { useRecentlyViewed } from '#commerce/app/composables/products/useRecentlyViewed'
37
-
38
- const { products: recentlyViewed, load } = useRecentlyViewed()
39
-
40
- onMounted(() => {
41
- load()
42
- })
43
- </script>
@@ -1,54 +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
- Related Brands</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="(brand, index) in relatedbrands" :key="index">
15
- <brandCard :product="brand" :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 brandCard from '../../related/brandCard.vue'
32
-
33
- const model = ref(null)
34
- const {
35
- $directus,
36
- $readItems
37
- } = useNuxtApp()
38
-
39
- const {
40
- data: relatedbrands
41
- } = await useAsyncData('relatedbrands', () => {
42
- return $directus.request($readItems('brands', {
43
- fields: ['*',
44
- 'image.*',
45
- ],
46
- limit: 10,
47
- filter: {
48
- status: {
49
- _eq: "published"
50
- }
51
- }
52
- }))
53
- })
54
- </script>
@@ -1,43 +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
- Related 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" selected-class="bg-success" show-arrows>
13
- <v-slide-group-item v-slot="{ isSelected, toggle, selectedClass }"
14
- v-for="(products, index) in related" :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: related
39
- } = await useAsyncData('related', async () => {
40
- // delegate to adapter when available, otherwise fallback to Directus via composable
41
- return await catalog.listProducts({ limit: 10, filter: { status: { _eq: 'published' } } })
42
- })
43
- </script>
@@ -1,40 +0,0 @@
1
- <template>
2
- <div>
3
- <v-sheet class="mx-auto row align-items-stretch items-row">
4
- <v-toolbar title="Radio Stations from the community" color="transparent">
5
- <NuxtLink to="/departments/categories/stations/">All Radio Stations</NuxtLink>
6
- </v-toolbar>
7
- <v-slide-group v-model="model" class="pa-4" selected-class="bg-success" show-arrows>
8
- <v-slide-group-item v-slot="{ toggle, selectedClass }" v-for="(result, index) in stationSlide" :key="index">
9
- <stations style="margin: 10px;" :radio="result" :class="['ma-4', selectedClass]" @click="toggle" />
10
- </v-slide-group-item>
11
- </v-slide-group>
12
- </v-sheet>
13
- </div>
14
- </template>
15
-
16
- <script setup>
17
- import {
18
- ref,
19
- } from 'vue';
20
- import stations from './radiostation.vue'
21
-
22
- const model = ref(null);
23
- const {
24
- $directus,
25
- $readItems
26
- } = useNuxtApp()
27
-
28
- const {
29
- data: stationSlide
30
- } = await useAsyncData('stationSlide', () => {
31
- return $directus.request($readItems('radios', {
32
- fields: ['*', { '*': ['*'] }],
33
- filter: {
34
- status: {
35
- _eq: "published"
36
- }
37
- }
38
- }))
39
- })
40
- </script>
@@ -1,41 +0,0 @@
1
- <template>
2
- <v-row>
3
- <v-col cols="12">
4
- <h6>Delivery</h6>
5
- </v-col>
6
-
7
- <v-col cols="12">
8
- <v-select v-model="selected" :items="shippingOptions" item-title="name" item-value="id"
9
- label="Select Delivery Method" single-line variant="solo" :loading="loading"
10
- :disabled="loading || shippingOptions.length === 0"></v-select>
11
- </v-col>
12
- </v-row>
13
- </template>
14
-
15
- <script setup>
16
- import { onMounted, watch } from 'vue'
17
- import { useShippingSelection } from '~/app/composables/cart/useShippingSelection'
18
-
19
- const props = defineProps({
20
- modelValue: { type: [String, Number, null], default: null }
21
- })
22
- const emit = defineEmits(['shippingOption-selected', 'update:modelValue'])
23
-
24
- const { shippingOptions, selected, loading, load } = useShippingSelection(props.modelValue)
25
-
26
- onMounted(() => {
27
- load()
28
- })
29
-
30
- watch(() => props.modelValue, (val) => {
31
- if (val === selected.value) return
32
- selected.value = val
33
- })
34
-
35
- watch(selected, async (val) => {
36
- const option = shippingOptions.value.find((s) => s.id === val) || null
37
- // update parent v-model
38
- emit('update:modelValue', val)
39
- emit('shippingOption-selected', option)
40
- })
41
- </script>
@@ -1,42 +0,0 @@
1
- <template>
2
- <v-row>
3
- <v-col cols="12">
4
- <h6>Size</h6>
5
- </v-col>
6
-
7
- <v-col cols="12">
8
- <v-select v-model="selectedSize" :items="sizes" label="Select Size" item-value="id" item-title="name" single-line variant="solo" />
9
- </v-col>
10
- </v-row>
11
- </template>
12
-
13
- <script setup>
14
- import { ref, onMounted, watch } from 'vue'
15
- const emit = defineEmits(['size-selected'])
16
- const sizes = ref([])
17
- const selectedSize = ref(null)
18
-
19
-
20
- const catalog = useCatalogFallback()
21
-
22
- const loadSizes = async () => {
23
- try {
24
- // adapter may expose attributes; composable falls back to Directus
25
- const res = await catalog.listAttributes({ filter: { attribute_code: { _eq: 'size' } }, sort: ['id'] })
26
-
27
- const attr = (res && res[0]) || null
28
- const opts = attr?.options || []
29
- sizes.value = opts.map((o, i) => ({ id: `${attr?.id || 'size'}-${i}`, name: o.name }))
30
- } catch (e) {
31
- // eslint-disable-next-line no-console
32
- console.warn('Failed to load size attributes', e)
33
- sizes.value = []
34
- }
35
- }
36
-
37
- watch(selectedSize, (newSize) => emit('size-selected', newSize))
38
-
39
- onMounted(() => {
40
- loadSizes()
41
- })
42
- </script>