@mframework/layer-commerce 0.0.3

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 (355) hide show
  1. package/README.md +101 -0
  2. package/app/cart/useCart.ts +1 -0
  3. package/app/components/ChevronIcon/ChevronIcon.config.ts +17 -0
  4. package/app/components/DateSelect/DateSelect.config.ts +15 -0
  5. package/app/components/Field/Field.config.ts +14 -0
  6. package/app/components/FieldDate/FieldDate.config.ts +16 -0
  7. package/app/components/Form/Form.type.ts +8 -0
  8. package/app/components/Product/Product.config.ts +19 -0
  9. package/app/components/Product/Stock.config.ts +15 -0
  10. package/app/components/ProductCustomizableOption/ProductCustomizableOption.config.ts +5 -0
  11. package/app/components/ProductGallery/ProductGallery.config.ts +15 -0
  12. package/app/components/ProductReviews/ProductReviews.config.ts +8 -0
  13. package/app/composables/_types.ts +18 -0
  14. package/app/composables/adapters/abstract/cartAdapter.ts +0 -0
  15. package/app/composables/adapters/abstract/categoryAdapter.ts +0 -0
  16. package/app/composables/adapters/abstract/customerAdapter.ts +0 -0
  17. package/app/composables/adapters/abstract/inventoryAdapter.ts +0 -0
  18. package/app/composables/adapters/abstract/orderAdapter.ts +0 -0
  19. package/app/composables/adapters/abstract/productAdapter.ts +7 -0
  20. package/app/composables/cart/registry.ts +20 -0
  21. package/app/composables/cart/types.ts +18 -0
  22. package/app/composables/cart/useCart.ts +15 -0
  23. package/app/composables/config.ts +19 -0
  24. package/app/composables/defs/apiDefinitions.ts +55 -0
  25. package/app/composables/defs/extension.feature +40 -0
  26. package/app/composables/defs/extension.mocks.ts +39 -0
  27. package/app/composables/defs/extension.test.ts +280 -0
  28. package/app/composables/defs/extension.ts +236 -0
  29. package/app/composables/defs/index.ts +3 -0
  30. package/app/composables/defs/typeHelpers.ts +8 -0
  31. package/app/composables/defs/types.ts +136 -0
  32. package/app/composables/domain/product.ts +12 -0
  33. package/app/composables/featured-products.ts +20 -0
  34. package/app/composables/helpers/contextualizedNormalizers.feature +14 -0
  35. package/app/composables/helpers/contextualizedNormalizers.test.ts +85 -0
  36. package/app/composables/helpers/contextualizedNormalizers.ts +20 -0
  37. package/app/composables/helpers/index.ts +1 -0
  38. package/app/composables/index.ts +9 -0
  39. package/app/composables/methods/auth.ts +83 -0
  40. package/app/composables/methods/cart.ts +119 -0
  41. package/app/composables/methods/category.ts +27 -0
  42. package/app/composables/methods/checkout.ts +54 -0
  43. package/app/composables/methods/customer.ts +52 -0
  44. package/app/composables/methods/helpers.ts +5 -0
  45. package/app/composables/methods/index.ts +75 -0
  46. package/app/composables/methods/order.ts +39 -0
  47. package/app/composables/methods/product.ts +95 -0
  48. package/app/composables/methods/settings.ts +16 -0
  49. package/app/composables/models/cart.ts +95 -0
  50. package/app/composables/models/category.ts +13 -0
  51. package/app/composables/models/checkout.ts +17 -0
  52. package/app/composables/models/customer.ts +16 -0
  53. package/app/composables/models/facets.ts +25 -0
  54. package/app/composables/models/index.ts +94 -0
  55. package/app/composables/models/order.ts +43 -0
  56. package/app/composables/models/product.ts +73 -0
  57. package/app/composables/models/shared.ts +75 -0
  58. package/app/composables/orders.ts +69 -0
  59. package/app/composables/products/registry.ts +86 -0
  60. package/app/composables/products/types.ts +8 -0
  61. package/app/composables/products/useEvents.ts +26 -0
  62. package/app/composables/products/useGiftCards.ts +29 -0
  63. package/app/composables/products/useProducts.ts +12 -0
  64. package/app/composables/products/useSubscriptions.ts +29 -0
  65. package/app/composables/products.ts +30 -0
  66. package/app/composables/registry.ts +24 -0
  67. package/app/composables/useAuth.ts +43 -0
  68. package/app/composables/useBreakpoints/index.ts +1 -0
  69. package/app/composables/useBreakpoints/useBreakpoints.ts +28 -0
  70. package/app/composables/useCache.ts +38 -0
  71. package/app/composables/useCart/__tests__/useCart.spec.ts +11 -0
  72. package/app/composables/useCart/index.ts +1 -0
  73. package/app/composables/useCart/types.ts +17 -0
  74. package/app/composables/useCart/useCart.ts +46 -0
  75. package/app/composables/useCartShippingMethods/__tests__/useCartShippingMethods.spec.ts +11 -0
  76. package/app/composables/useCartShippingMethods/index.ts +1 -0
  77. package/app/composables/useCartShippingMethods/types.ts +17 -0
  78. package/app/composables/useCartShippingMethods/useCartShippingMethods.ts +47 -0
  79. package/app/composables/useCatalog.ts +26 -0
  80. package/app/composables/useContent.ts +26 -0
  81. package/app/composables/useCustomer/__tests__/useCustomer.spec.ts +25 -0
  82. package/app/composables/useCustomer/index.ts +2 -0
  83. package/app/composables/useCustomer/types.ts +17 -0
  84. package/app/composables/useCustomer/useCustomer.ts +40 -0
  85. package/app/composables/useCustomerAddress/__tests__/useCustomerAddress.spec.ts +11 -0
  86. package/app/composables/useCustomerAddress/index.ts +2 -0
  87. package/app/composables/useCustomerAddress/types.ts +17 -0
  88. package/app/composables/useCustomerAddress/useCustomerAddress.ts +55 -0
  89. package/app/composables/useCustomerOrder/__tests__/useCustomerOrder.spec.ts +11 -0
  90. package/app/composables/useCustomerOrder/adress.ts +10 -0
  91. package/app/composables/useCustomerOrder/index.ts +2 -0
  92. package/app/composables/useCustomerOrder/product.ts +37 -0
  93. package/app/composables/useCustomerOrder/types.ts +40 -0
  94. package/app/composables/useCustomerOrder/useCustomerOrder.ts +63 -0
  95. package/app/composables/useCustomerOrders/__tests__/useCustomerOrders.spec.ts +11 -0
  96. package/app/composables/useCustomerOrders/index.ts +2 -0
  97. package/app/composables/useCustomerOrders/types.ts +20 -0
  98. package/app/composables/useCustomerOrders/useCustomerOrders.ts +56 -0
  99. package/app/composables/useCustomerReturns/__tests__/useCustomerReturns.spec.ts +11 -0
  100. package/app/composables/useCustomerReturns/index.ts +2 -0
  101. package/app/composables/useCustomerReturns/types.ts +17 -0
  102. package/app/composables/useCustomerReturns/useCustomerReturns.ts +41 -0
  103. package/app/composables/useHandleError/index.ts +1 -0
  104. package/app/composables/useHandleError/types.ts +11 -0
  105. package/app/composables/useHandleError/useHandleError.ts +27 -0
  106. package/app/composables/useInventory.ts +29 -0
  107. package/app/composables/useLoading.ts +21 -0
  108. package/app/composables/useNotification.ts +21 -0
  109. package/app/composables/usePageTitle.ts +20 -0
  110. package/app/composables/useProduct/index.ts +2 -0
  111. package/app/composables/useProduct/types.ts +17 -0
  112. package/app/composables/useProduct/useProduct.ts +42 -0
  113. package/app/composables/useProductAttribute/__tests__/useProduct.mock.ts +31 -0
  114. package/app/composables/useProductAttribute/__tests__/useProductAttribute.spec.ts +14 -0
  115. package/app/composables/useProductAttribute/index.ts +1 -0
  116. package/app/composables/useProductAttribute/useProductAttribute.ts +37 -0
  117. package/app/composables/useProductRecommended/__tests__/useProductRecommended.spec.ts +12 -0
  118. package/app/composables/useProductRecommended/index.ts +1 -0
  119. package/app/composables/useProductRecommended/types.ts +17 -0
  120. package/app/composables/useProductRecommended/useProductRecommended.ts +43 -0
  121. package/app/composables/useProductReviews/__tests__/productReviews.mock.ts +20 -0
  122. package/app/composables/useProductReviews/__tests__/useProductReviews.spec.ts +22 -0
  123. package/app/composables/useProductReviews/index.ts +2 -0
  124. package/app/composables/useProductReviews/types.ts +17 -0
  125. package/app/composables/useProductReviews/useProductReviews.ts +46 -0
  126. package/app/composables/useProducts/__tests__/useProducts.spec.ts +11 -0
  127. package/app/composables/useProducts/types.ts +22 -0
  128. package/app/composables/useProducts/useProducts.ts +41 -0
  129. package/app/composables/useTax.ts +27 -0
  130. package/app/composables/validationRules/index.ts +1 -0
  131. package/app/composables/validationRules/password.feature +67 -0
  132. package/app/composables/validationRules/password.test.ts +89 -0
  133. package/app/composables/validationRules/password.ts +25 -0
  134. package/app/normalizers/Cart.query.ts +729 -0
  135. package/app/normalizers/Cart.type.ts +285 -0
  136. package/app/normalizers/Category.query.ts +146 -0
  137. package/app/normalizers/Category.type.ts +55 -0
  138. package/app/normalizers/CheckEmail.query.ts +28 -0
  139. package/app/normalizers/Checkout.query.ts +253 -0
  140. package/app/normalizers/Checkout.type.ts +77 -0
  141. package/app/normalizers/CmsBlock.query.ts +57 -0
  142. package/app/normalizers/CmsBlock.type.ts +25 -0
  143. package/app/normalizers/CmsPage.query.ts +59 -0
  144. package/app/normalizers/CmsPage.type.ts +26 -0
  145. package/app/normalizers/Config.query.ts +224 -0
  146. package/app/normalizers/Config.type.ts +196 -0
  147. package/app/normalizers/ContactForm.query.ts +49 -0
  148. package/app/normalizers/CreditMemo.type.ts +49 -0
  149. package/app/normalizers/GiftCard.type.ts +24 -0
  150. package/app/normalizers/Invoice.type.ts +58 -0
  151. package/app/normalizers/Menu.query.ts +54 -0
  152. package/app/normalizers/Menu.type.ts +22 -0
  153. package/app/normalizers/MyAccount.query.ts +268 -0
  154. package/app/normalizers/MyAccount.type.ts +129 -0
  155. package/app/normalizers/NewsletterSubscription.query.ts +38 -0
  156. package/app/normalizers/Order.query.ts +741 -0
  157. package/app/normalizers/Order.type.ts +268 -0
  158. package/app/normalizers/Payment.type.ts +28 -0
  159. package/app/normalizers/ProductAlerts.query.ts +23 -0
  160. package/app/normalizers/ProductCompare.query.ts +226 -0
  161. package/app/normalizers/ProductCompare.type.ts +90 -0
  162. package/app/normalizers/ProductList.query.ts +1620 -0
  163. package/app/normalizers/ProductList.type.ts +726 -0
  164. package/app/normalizers/Region.query.ts +58 -0
  165. package/app/normalizers/Region.type.ts +23 -0
  166. package/app/normalizers/Return.type.ts +50 -0
  167. package/app/normalizers/Review.query.ts +81 -0
  168. package/app/normalizers/Review.type.ts +42 -0
  169. package/app/normalizers/Slider.query.ts +72 -0
  170. package/app/normalizers/Slider.type.ts +26 -0
  171. package/app/normalizers/StoreInPickUp.query.ts +54 -0
  172. package/app/normalizers/StoreInPickUp.type.ts +59 -0
  173. package/app/normalizers/Subscription.type.ts +25 -0
  174. package/app/normalizers/Transaction.type.ts +20 -0
  175. package/app/normalizers/UrlRewrites.query.ts +55 -0
  176. package/app/normalizers/UrlRewrites.type.ts +25 -0
  177. package/app/normalizers/Wishlist.query.ts +202 -0
  178. package/app/normalizers/Wishlist.type.ts +42 -0
  179. package/app/pages/brand/[...slug].vue +76 -0
  180. package/app/pages/brands.vue +67 -0
  181. package/app/pages/cart.vue +142 -0
  182. package/app/pages/compare.vue +166 -0
  183. package/app/pages/departments/[...slug].vue +353 -0
  184. package/app/pages/departments/category/[...slug].vue +114 -0
  185. package/app/pages/incentive/[...id].vue +66 -0
  186. package/app/pages/invoice/[id].vue +309 -0
  187. package/app/pages/order/[id].vue +327 -0
  188. package/app/pages/product/[...id].vue +309 -0
  189. package/app/pages/product/showcases/index.vue +86 -0
  190. package/app/pages/shipment/[...id].vue +176 -0
  191. package/app/pages/shop/[...slug].vue +158 -0
  192. package/app/pages/shops.vue +76 -0
  193. package/app/pages/subscription/[...id].vue +147 -0
  194. package/app/pages/transaction/[...id].vue +74 -0
  195. package/app/routes/CategoryPage/CategoryPage.config.ts +28 -0
  196. package/app/routes/CategoryPage/CategoryPage.type.ts +8 -0
  197. package/app/routes/Checkout/Checkout.config.ts +3 -0
  198. package/app/routes/Checkout/Checkout.type.ts +14 -0
  199. package/app/routes/MyAccount/MyAccount.config.ts +1 -0
  200. package/app/routes/SearchPage/SearchPage.config.ts +1 -0
  201. package/app/routes/UrlRewrites/UrlRewrites.config.ts +5 -0
  202. package/app/stores/Cart/Cart.type.ts +26 -0
  203. package/app/stores/MyAccount/MyAccount.action.ts +7 -0
  204. package/app/stores/Notification/Notification.action.ts +40 -0
  205. package/app/stores/Notification/Notification.type.ts +16 -0
  206. package/app/stores/Popup/Popup.action.ts +30 -0
  207. package/app/stores/Product/Product.dispatcher.ts +53 -0
  208. package/app/stores/Product/Product.reducer.ts +12 -0
  209. package/app/stores/ProductList/ProductList.dispatcher.ts +35 -0
  210. package/app/stores/ProductList/ProductList.reducer.ts +13 -0
  211. package/app/stores/Store.type.ts +31 -0
  212. package/app/stores/Wishlist/Wishlist.type.ts +12 -0
  213. package/app/stores/cart.ts +218 -0
  214. package/app/stores/cartStore.ts +224 -0
  215. package/app/stores/checkout.ts +18 -0
  216. package/app/stores/compare.ts +65 -0
  217. package/app/stores/currency.js +29 -0
  218. package/app/stores/digital-products.js +11 -0
  219. package/app/stores/orders.ts +172 -0
  220. package/app/stores/product.ts +34 -0
  221. package/app/stores/productList.ts +35 -0
  222. package/app/stores/productListInfo.ts +0 -0
  223. package/app/stores/products.ts +118 -0
  224. package/app/stores/recentlyViewedProducts.ts +56 -0
  225. package/app/stores/review.ts +33 -0
  226. package/app/stores/storeInPickUp.ts +21 -0
  227. package/app/stores/user.ts +20 -0
  228. package/app/stores/wishlist.ts +46 -0
  229. package/app/types/Account.type.ts +141 -0
  230. package/app/types/Breadcrumbs.type.ts +23 -0
  231. package/app/types/CMS.type.ts +33 -0
  232. package/app/types/Category.type.ts +67 -0
  233. package/app/types/Checkout.type.ts +58 -0
  234. package/app/types/Common.type.ts +77 -0
  235. package/app/types/Config.type.ts +47 -0
  236. package/app/types/Device.type.ts +37 -0
  237. package/app/types/Direction.type.ts +23 -0
  238. package/app/types/Downloadable.type.ts +24 -0
  239. package/app/types/Error.type.ts +22 -0
  240. package/app/types/Field.type.ts +151 -0
  241. package/app/types/Global.type.ts +156 -0
  242. package/app/types/Graphql.type.ts +4497 -0
  243. package/app/types/Layout.type.ts +18 -0
  244. package/app/types/Menu.type.ts +39 -0
  245. package/app/types/MiniCart.type.ts +61 -0
  246. package/app/types/NotificationList.type.ts +34 -0
  247. package/app/types/Order.type.ts +174 -0
  248. package/app/types/Price.type.ts +72 -0
  249. package/app/types/ProductCompare.type.ts +24 -0
  250. package/app/types/ProductList.type.ts +351 -0
  251. package/app/types/Rating.type.ts +42 -0
  252. package/app/types/Router.type.ts +67 -0
  253. package/app/types/Slider.type.ts +25 -0
  254. package/app/types/StockStatus.type.ts +21 -0
  255. package/app/types/domain/index.ts +94 -0
  256. package/app/types/index.ts +33 -0
  257. package/app/types/shims.d.ts +52 -0
  258. package/app/types/tilework-opus.d.ts +48 -0
  259. package/app/utils/Address/Address.type.ts +28 -0
  260. package/app/utils/Address/index.ts +325 -0
  261. package/app/utils/Auth/IsSignedIn.ts +4 -0
  262. package/app/utils/Auth/Token.ts +9 -0
  263. package/app/utils/Base64/Base64.ts +16 -0
  264. package/app/utils/Base64/index.ts +12 -0
  265. package/app/utils/Browser/Browser.ts +29 -0
  266. package/app/utils/Browser/index.ts +12 -0
  267. package/app/utils/BrowserDatabase/BrowserDatabase.ts +70 -0
  268. package/app/utils/BrowserDatabase/index.ts +12 -0
  269. package/app/utils/CSS/CSS.ts +65 -0
  270. package/app/utils/CSS/index.ts +12 -0
  271. package/app/utils/Cache/Cache.ts +99 -0
  272. package/app/utils/Cart/Cart.ts +300 -0
  273. package/app/utils/Cart/Cart.type.ts +76 -0
  274. package/app/utils/Cart/Token.ts +59 -0
  275. package/app/utils/Cart/index.ts +13 -0
  276. package/app/utils/Category/Filters.ts +39 -0
  277. package/app/utils/Category/index.ts +12 -0
  278. package/app/utils/Common/index.ts +32 -0
  279. package/app/utils/Compare/Compare.ts +89 -0
  280. package/app/utils/Compare/index.ts +12 -0
  281. package/app/utils/Currency/Currency.ts +84 -0
  282. package/app/utils/Currency/index.ts +12 -0
  283. package/app/utils/DynamicReducer/DynamicReducer.type.ts +14 -0
  284. package/app/utils/DynamicReducer/Helper.ts +30 -0
  285. package/app/utils/DynamicReducer/index.tsx +35 -0
  286. package/app/utils/ElementTransition/ElementTransition.ts +100 -0
  287. package/app/utils/Form/Extract.ts +316 -0
  288. package/app/utils/Form/Form.ts +46 -0
  289. package/app/utils/Form/Form.type.ts +60 -0
  290. package/app/utils/Form/Transform.ts +33 -0
  291. package/app/utils/FormPortalCollector/index.ts +45 -0
  292. package/app/utils/History/History.type.ts +31 -0
  293. package/app/utils/History/index.ts +17 -0
  294. package/app/utils/Manipulations/Array.ts +18 -0
  295. package/app/utils/Manipulations/Date.ts +36 -0
  296. package/app/utils/Manipulations/index.ts +14 -0
  297. package/app/utils/Media/Media.ts +27 -0
  298. package/app/utils/Media/index.ts +13 -0
  299. package/app/utils/Menu/Menu.ts +116 -0
  300. package/app/utils/Menu/Menu.type.ts +37 -0
  301. package/app/utils/Menu/index.ts +12 -0
  302. package/app/utils/Mobile/index.ts +13 -0
  303. package/app/utils/Mobile/isMobile.ts +34 -0
  304. package/app/utils/Orders/Orders.ts +71 -0
  305. package/app/utils/Orders/Orders.type.ts +19 -0
  306. package/app/utils/Orders/index.ts +13 -0
  307. package/app/utils/Polyfill/index.ts +336 -0
  308. package/app/utils/Preload/CategoryPreload.ts +74 -0
  309. package/app/utils/Preload/ProductPreload.ts +28 -0
  310. package/app/utils/Preload/index.ts +75 -0
  311. package/app/utils/Price/Price.config.ts +189 -0
  312. package/app/utils/Price/Price.ts +63 -0
  313. package/app/utils/Price/index.ts +12 -0
  314. package/app/utils/Product/Extract.ts +652 -0
  315. package/app/utils/Product/Product.ts +575 -0
  316. package/app/utils/Product/Product.type.ts +260 -0
  317. package/app/utils/Product/Transform.ts +382 -0
  318. package/app/utils/Product/index.ts +12 -0
  319. package/app/utils/Promise/MakeCancelable.ts +44 -0
  320. package/app/utils/Promise/Promise.type.ts +15 -0
  321. package/app/utils/Promise/index.ts +13 -0
  322. package/app/utils/Query/Field.ts +71 -0
  323. package/app/utils/Query/Fragment.ts +22 -0
  324. package/app/utils/Query/PrepareDocument.ts +119 -0
  325. package/app/utils/Query/Query.type.ts +26 -0
  326. package/app/utils/Query/index.ts +15 -0
  327. package/app/utils/Request/Config.ts +21 -0
  328. package/app/utils/Request/DataContainer.ts +102 -0
  329. package/app/utils/Request/Debounce.ts +48 -0
  330. package/app/utils/Request/Error.ts +31 -0
  331. package/app/utils/Request/Hash.ts +88 -0
  332. package/app/utils/Request/LowPriorityLoad.ts +32 -0
  333. package/app/utils/Request/LowPriorityRender.ts +55 -0
  334. package/app/utils/Request/Mutation.ts +25 -0
  335. package/app/utils/Request/Query.ts +25 -0
  336. package/app/utils/Request/QueryDispatcher.ts +135 -0
  337. package/app/utils/Request/Request.ts +310 -0
  338. package/app/utils/Store/Store.type.ts +26 -0
  339. package/app/utils/Store/index.ts +71 -0
  340. package/app/utils/Url/Url.ts +297 -0
  341. package/app/utils/Url/index.ts +12 -0
  342. package/app/utils/Validator/Config.ts +96 -0
  343. package/app/utils/Validator/Validator.ts +268 -0
  344. package/app/utils/Validator/Validator.type.ts +47 -0
  345. package/app/utils/Validator/index.ts +12 -0
  346. package/app/utils/Wishlist/Wishlist.ts +65 -0
  347. package/app/utils/Wishlist/index.ts +12 -0
  348. package/app/utils/client.ts +280 -0
  349. package/app/utils/index.ts +53 -0
  350. package/app/utils/normalizer.ts +23 -0
  351. package/app/utils/normalizers/magento.ts +29 -0
  352. package/app/utils/normalizers/shopify.ts +29 -0
  353. package/nuxt.config.ts +11 -0
  354. package/package.json +43 -0
  355. package/tsconfig.json +45 -0
@@ -0,0 +1,158 @@
1
+ <template>
2
+ <div class="contentPage">
3
+ <section data-bs-version="5.1" class="features02 essencem5 cid-uHg1VExDxg" id="features02-aq"
4
+ data-sortbtn="btn-primary">
5
+ <div class="container">
6
+ <div class="row">
7
+ <div class="col-12">
8
+ <div class="title-wrapper">
9
+ <h2 class="mbr-section-title mbr-fonts-style display-2">
10
+ <strong>{{ shop?.name }}</strong>
11
+ </h2>
12
+ </div>
13
+ </div>
14
+ <div class="col-12">
15
+ <div class="card-wrapper">
16
+ <div class="item-img">
17
+ <NuxtImg loading="lazy" class="align-end text-white" v-if="shop?.image"
18
+ :src="`${$directus.url}/assets/${shop?.image?.filename_disk}`" :alt="shop?.name" cover />
19
+ <div class="card-box">
20
+ <div class="icon-wrapper">
21
+ <span class="mbr-iconfont mobi-mbri-contact-form mobi-mbri"></span>
22
+ </div>
23
+ <h4 class="card-title mbr-fonts-style display-5">
24
+ <strong>{{ shop?.name }}</strong>
25
+ </h4>
26
+
27
+ <div>
28
+ <div>
29
+ <p>Email: {{ shop?.store_email }}</p>
30
+ </div>
31
+
32
+ <div>
33
+ <p>Phone: {{ shop?.store_phone }}</p>
34
+ </div>
35
+
36
+ <div>
37
+ <p>Shipping Policy: {{ shop?.store_shipping_policy }}</p>
38
+ </div>
39
+
40
+ <div>
41
+ <p>Address: {{ shop?.store_address }}</p>
42
+ </div>
43
+
44
+ <div>
45
+ <p>Country: {{ shop?.store_country }}</p>
46
+ </div>
47
+ </div>
48
+ <p class="card-text mbr-fonts-style display-7" v-dompurify-html="shop?.description"></p>
49
+ </div>
50
+ </div>
51
+ </div>
52
+ </div>
53
+ </div>
54
+ </div>
55
+ </section>
56
+
57
+ <v-card elevation="0">
58
+ <v-tabs v-model="tab" bg-color="info" align-tabs="center">
59
+ <v-tab v-for="(menu, index) in shopbar?.menus" :key="index">
60
+ <NuxtLink :to="menu?.url">{{ menu?.name }}</NuxtLink>
61
+ </v-tab>
62
+ </v-tabs>
63
+
64
+ <v-card-text>
65
+ <v-tabs-window v-model="tab">
66
+
67
+ <v-tabs-window-item :value="shopbar?.menus[1]?.value">
68
+ <div v-for="(products, index) in shop?.products" :key="index">
69
+ <productCard :product="products?.products_id" />
70
+ </div>
71
+ </v-tabs-window-item>
72
+
73
+ <v-tabs-window-item :value="shopbar?.menus[2]?.value">
74
+ <div v-for="(showcases, index) in shop?.showcases" :key="index">
75
+ <showcases :product="showcases?.showcases_id" />
76
+ </div>
77
+ </v-tabs-window-item>
78
+
79
+ <v-tabs-window-item :value="shopbar?.menus[3]?.value">
80
+ <div v-for="(comments, index) in shop?.comments" :key="index">
81
+ <comments :comments="comments?.comments_id" />
82
+ </div>
83
+ </v-tabs-window-item>
84
+
85
+ <v-tabs-window-item :value="shopbar?.menus[4]?.value">
86
+ <div v-for="(spaces, index) in shop?.spaces" :key="index">
87
+ <spaces :space="spaces?.spaces_id" />
88
+ </div>
89
+ </v-tabs-window-item>
90
+
91
+ <v-tabs-window-item :value="shopbar?.menus[5]?.value">
92
+ <div v-for="(events, index) in shop?.events" :key="index">
93
+ <events :space="events?.events_id" />
94
+ </div>
95
+ </v-tabs-window-item>
96
+ </v-tabs-window>
97
+ </v-card-text>
98
+ </v-card>
99
+ </div>
100
+ </template>
101
+
102
+ <script setup>
103
+ import { ref } from 'vue'
104
+ import showcases from '~/components/catalog/product/relatedproducts.vue'
105
+ import productCard from '~/components/catalog/product/productCard.vue'
106
+ import comments from '@/components/placeholders/Comments.vue'
107
+ import spaces from '@/components/placeholders/Space.vue'
108
+ import events from '@/components/placeholders/Event.vue'
109
+ import { useContentFallback } from '../../composables/useContent'
110
+
111
+ const route = useRoute();
112
+ const tab = ref(null);
113
+ const { $directus, $readItem } = useNuxtApp()
114
+
115
+ const slug = computed(() => {
116
+ const s = route.params.slug
117
+ return Array.isArray(s) ? s[0] : s
118
+ })
119
+
120
+ const content = useContentFallback()
121
+
122
+ const { data: shopRaw } = await useAsyncData('shop', () => {
123
+ return content.listShops({
124
+ fields: ['*',
125
+ 'media.*',
126
+ 'spaces.spaces_id.*',
127
+ 'events.events_id.*',
128
+ 'products.products_id.*',
129
+ 'products.products_id.image.*',
130
+ 'showcases.showcases_id.*',
131
+ 'comments.comments_id.*',
132
+ 'shorts.shorts_id.*',
133
+ 'image.*',
134
+ 'country.country_id.*'
135
+ ],
136
+ filter: {
137
+ slug: {
138
+ _eq: slug.value
139
+ }
140
+ },
141
+ limit: 1
142
+ })
143
+ })
144
+
145
+ const shop = computed(() => shopRaw.value?.[0] || null)
146
+
147
+ const { data: shopbar } = await useAsyncData('shopbar', () => {
148
+ return $directus.request($readItem('navigation', '55'))
149
+ })
150
+
151
+ definePageMeta({
152
+ layout: 'nolive',
153
+ });
154
+
155
+ useHead({
156
+ title: computed(() => shop.value?.name || 'Shop Page')
157
+ })
158
+ </script>
@@ -0,0 +1,76 @@
1
+ <template>
2
+ <div class="contentPage">
3
+ <v-card elevation="0">
4
+ <v-toolbar title="Shops on Meeovi" color="green"></v-toolbar>
5
+ <v-tabs v-model="tab" bg-color="green" align-tabs="center">
6
+ <v-tab v-if="shopbar?.active === 'Active'" v-for="(menu, index) in shopbar?.menus" :key="index">
7
+ <NuxtLink :to="menu?.url">{{ menu?.name }}</NuxtLink>
8
+ </v-tab>
9
+ </v-tabs>
10
+
11
+ <v-card-text>
12
+ <v-tabs-window v-model="tab">
13
+ <v-tabs-window-item :value="shopbar?.menus[0]?.value">
14
+ <section data-bs-version="5.1" class="clients1 cid-uHg1k6KLf8" id="clients1-ap">
15
+ <div class="container">
16
+ <div class="row justify-content-center">
17
+ <div class="card col-12 col-md-6 col-lg-4" v-for="(shop, index) in stores" :key="index">
18
+ <store :store="shop" />
19
+ </div>
20
+ </div>
21
+ </div>
22
+ </section>
23
+ </v-tabs-window-item>
24
+
25
+ <v-tabs-window-item :value="shopbar?.menus[1]?.value">
26
+ <section data-bs-version="5.1" class="clients1 cid-uHg1k6KLf8" id="clients1-ap">
27
+ <div class="container">
28
+ <div class="row justify-content-center">
29
+ <div class="card col-12 col-md-6 col-lg-4" v-for="(shop, index) in stores" :key="index">
30
+ <store :store="shop" />
31
+ </div>
32
+ </div>
33
+ </div>
34
+ </section>
35
+ </v-tabs-window-item>
36
+
37
+ <v-tabs-window-item :value="shopbar?.menus[2]?.value">
38
+ <section data-bs-version="5.1" class="clients1 cid-uHg1k6KLf8" id="clients1-ap">
39
+ <div class="container">
40
+ <div class="row justify-content-center">
41
+ <div class="card col-12 col-md-6 col-lg-4" v-for="(shop, index) in stores" :key="index">
42
+ <store :store="shop" />
43
+ </div>
44
+ </div>
45
+ </div>
46
+ </section>
47
+ </v-tabs-window-item>
48
+ </v-tabs-window>
49
+ </v-card-text>
50
+ </v-card>
51
+ </div>
52
+ </template>
53
+
54
+ <script setup lang="ts">
55
+ import { ref } from 'vue'
56
+ import { useHead, useNuxtApp, useAsyncData } from '~/types'
57
+ import store from '../components/catalog/shops/stores.vue'
58
+
59
+ const tab = ref(null)
60
+
61
+ import { useContentFallback } from '../composables/useContent'
62
+ const content = useContentFallback()
63
+
64
+ const { data: stores } = await useAsyncData('stores', async () => {
65
+ return await content.listShops({ fields: ['*', { '*': ['*'] }] })
66
+ })
67
+
68
+ const { data: shopbar } = await useAsyncData('shopbar', () => {
69
+ const nuxtApp = useNuxtApp() as any
70
+ return nuxtApp.$directus ? nuxtApp.$directus.request(nuxtApp.$readItem('navigation', '55')) : null
71
+ })
72
+
73
+ useHead({
74
+ title: 'Shops on Meeovi',
75
+ })
76
+ </script>
@@ -0,0 +1,147 @@
1
+ <template>
2
+ <div>
3
+ <!---->
4
+ <section data-bs-version="5.1" class="features14 cid-u3U56NDZtd" id="features15-7o" data-sortbtn="btn-primary">
5
+ <div class="container">
6
+ <div class="row justify-content-center">
7
+ <div class="card col-12 col-md-6 col-lg-4">
8
+ <div class="card-wrapper">
9
+ <span class="mbr-iconfont mobi-mbri-protect mobi-mbri m-auto"></span>
10
+ <div class="card-box">
11
+ <h4 class="card-title mbr-fonts-style mb-2 display-7"><strong>Subscribed On</strong></h4>
12
+ <h5 class="card-text mbr-fonts-style display-4">{{ subscription?.start_date}}</h5>
13
+ </div>
14
+ </div>
15
+ </div>
16
+ <div class="card col-12 col-md-6 col-lg-4">
17
+ <div class="card-wrapper">
18
+ <span class="mbr-iconfont m-auto mobi-mbri-website-theme-2 mobi-mbri"></span>
19
+ <div class="card-box">
20
+ <h4 class="card-title mbr-fonts-style mb-2 display-7"><strong>Subscription #</strong></h4>
21
+ <h5 class="card-text mbr-fonts-style display-4">{{ subscription?.id}}</h5>
22
+ </div>
23
+ </div>
24
+ </div>
25
+ <div class="card col-12 col-md-6 col-lg-4">
26
+ <div class="card-wrapper">
27
+ <span class="mbr-iconfont m-auto mobi-mbri-features mobi-mbri"></span>
28
+ <div class="card-box">
29
+ <h4 class="card-title mbr-fonts-style mb-2 display-7">
30
+ <strong>View or Print Invoice</strong></h4>
31
+ <h5 class="card-text mbr-fonts-style display-4"></h5>
32
+ </div>
33
+
34
+ </div>
35
+ </div>
36
+
37
+ </div>
38
+ </div>
39
+ </section>
40
+
41
+ <section data-bs-version="5.1" class="contacts2 cid-u3U5tKf7Hq" id="contacts2-7p" data-sortbtn="btn-primary">
42
+ <div class="container">
43
+
44
+ <div class="row justify-content-center mt-4">
45
+ <div class="card col-12 col-md-6">
46
+ <div class="card-wrapper">
47
+ <div class="image-wrapper">
48
+ <span class="mbr-iconfont mobi-mbri-home mobi-mbri"></span>
49
+ </div>
50
+ <div class="text-wrapper">
51
+ <h6 class="card-title mbr-fonts-style mb-1 display-5">
52
+ <strong>Shipping Address</strong></h6>
53
+ <p class="mbr-text mbr-fonts-style display-7">{{ subscription?.customer?.customers_id?.address }}</p>
54
+ </div>
55
+ </div>
56
+ </div>
57
+ <div class="card col-12 col-md-6">
58
+ <div class="card-wrapper">
59
+ <div class="image-wrapper">
60
+ <span class="mbr-iconfont mobi-mbri-cash mobi-mbri"></span>
61
+ </div>
62
+ <div class="text-wrapper">
63
+ <h6 class="card-title mbr-fonts-style mb-1 display-5">
64
+ <strong>Payment Method</strong></h6>
65
+ <p class="mbr-text mbr-fonts-style display-7">
66
+ <NuxtLink to="mailto:info@site.com" class="text-primary">{{ subscription?.customer?.customers_id?.payment }}</NuxtLink>
67
+ </p>
68
+ </div>
69
+ </div>
70
+ </div>
71
+ <div class="card col-12 col-md-6">
72
+ <div class="card-wrapper">
73
+ <div class="image-wrapper">
74
+ <span class="mbr-iconfont mobi-mbri-contact-form mobi-mbri"></span>
75
+ </div>
76
+ <div class="text-wrapper">
77
+ <h6 class="card-title mbr-fonts-style mb-1 display-5">
78
+ <strong>Order Summary</strong></h6>
79
+ <p class="mbr-text mbr-fonts-style display-7" v-for="customers in subscription?.customer?.customers_id">Item(s) Subtotal: ${{ customer?.subscription?.orders_id?.total_before_tax }}
80
+ <br>Shipping &amp; Handling: ${{ customer?.subscription?.orders_id?.shipping_handling }}
81
+ <br>Total before tax: ${{ customer?.subscription?.orders_id?.total_before_tax }}
82
+ <br>Estimated tax to be collected: ${{ customer?.subscription?.orders_id?.tax }}
83
+ <br>Grand Total: ${{ customer?.subscription?.orders_id?.total_price }}</p>
84
+ </div>
85
+ </div>
86
+ </div>
87
+ <div class="card col-12 col-md-6">
88
+ <div class="card-wrapper">
89
+ <div class="image-wrapper">
90
+ <span class="mbr-iconfont mobi-mbri-bulleted-list mobi-mbri"></span>
91
+ </div>
92
+ <div class="text-wrapper">
93
+ <h6 class="card-title mbr-fonts-style mb-1 display-5">
94
+ <strong>Receipt</strong></h6>
95
+ <p class="mbr-text mbr-fonts-style display-7"></p>
96
+ </div>
97
+ </div>
98
+ </div>
99
+ </div>
100
+ </div>
101
+ </section>
102
+ </div>
103
+ </template>
104
+
105
+ <script>
106
+ import productCard from '~/app/components/catalog/product/productCard.vue'
107
+
108
+
109
+ export default {
110
+ components: { productCard, profilebar},
111
+ data: () => ({
112
+ model: null,
113
+ url: process.env.DIRECTUS_URL,
114
+ }),
115
+ }
116
+ </script>
117
+
118
+ <script setup>
119
+ const route = useRoute();
120
+
121
+ const {
122
+ $directus,
123
+ $readItem
124
+ } = useNuxtApp()
125
+ const user = useSupabaseUser()
126
+
127
+ const {
128
+ data: subscription
129
+ } = await useAsyncData('subscription', () => {
130
+ return $directus.request($readItem('subscriptions', route.params.id, {
131
+ filter: {
132
+ user: {
133
+ _eq: `${user?.id}`
134
+ }
135
+ },
136
+ limit: 1
137
+ })).then(response => response?.[0])
138
+ })
139
+
140
+ useHead({
141
+ title: subscription?.value?.id || 'Subscription Page',
142
+ })
143
+
144
+ definePageMeta({
145
+ middleware: ['authenticated'],
146
+ })
147
+ </script>
@@ -0,0 +1,74 @@
1
+ <template>
2
+ <div>
3
+ <!--<profilebar />-->
4
+ <section data-bs-version="5.1" class="features07 scalem5 cid-uhB4hw1yxB mbr-fullscreen" id="features07-9l">
5
+ <div class="container">
6
+ <div class="row">
7
+ <div class="col-12 col-lg-10 card">
8
+ <div class="title-wrapper">
9
+ <h2 class="mbr-section-title mbr-fonts-style display-5">
10
+ View Transaction</h2>
11
+ </div>
12
+ </div>
13
+ <div class="col-12 col-lg-12">
14
+ <div class="items-wrapper">
15
+ <div class="item features-without-image item-mb">
16
+ <div class="item-wrapper">
17
+ <div class="card-box">
18
+ <div class="icon-wrapper">
19
+ <span class="mbr-iconfont mobi-mbri-growing-chart mobi-mbri"></span>
20
+ </div>
21
+ <h4 class="card-title mbr-fonts-style display-7">
22
+ Transaction Information
23
+ </h4>
24
+ <a class="card-text mbr-fonts-style display-7" :href="`/order/${transaction?.orders?.orders_id?.id}`">Order #:
25
+ {{ transaction?.orders?.orders_id?.id }}</a>
26
+ <p class="card-text mbr-fonts-style display-7">Transaction ID: {{ transaction?.id }}</p>
27
+ <p class="card-text mbr-fonts-style display-7">Transaction Date:
28
+ {{ new Date(transaction?.created_at).toLocaleDateString() }}</p>
29
+ <p class="card-text mbr-fonts-style display-7">Is it Closed?
30
+ {{ transaction?.is_closed }}</p>
31
+ <p class="card-text mbr-fonts-style display-7">Parent Transaction ID: {{ transaction?.parent_id }}</p>
32
+ <p class="card-text mbr-fonts-style display-7">Payment ID: {{ transaction?.payment_id }}</p>
33
+ </div>
34
+ </div>
35
+ </div>
36
+ </div>
37
+ </div>
38
+ </div>
39
+ </div>
40
+ <img src="../../assets/images/background10.jpg" :alt="transaction?.id">
41
+ </section>
42
+ </div>
43
+ </template>
44
+
45
+ <script setup>
46
+ const route = useRoute();
47
+
48
+ const {
49
+ $directus,
50
+ $readItem
51
+ } = useNuxtApp()
52
+ const user = useSupabaseUser()
53
+
54
+ const {
55
+ data: transaction
56
+ } = await useAsyncData('transaction', () => {
57
+ return $directus.request($readItem('transactions', route.params.id, {
58
+ filter: {
59
+ user: {
60
+ _eq: `${user?.id}`
61
+ }
62
+ },
63
+ limit: 1
64
+ })).then(response => response?.[0])
65
+ })
66
+
67
+ useHead({
68
+ title: 'Transaction' + transaction?.value?.id || 'Transaction Page',
69
+ })
70
+
71
+ definePageMeta({
72
+ //middleware: ['auth-logged-in'],
73
+ })
74
+ </script>
@@ -0,0 +1,28 @@
1
+ export type CategorySortOptions = string;
2
+
3
+ export const SortDirections = {
4
+ ASC: 'asc',
5
+ DESC: 'desc',
6
+ } as const
7
+ export const NONE_SORT_OPTION_VALUE = 'none'
8
+
9
+ export const CategoryPageLayout = {
10
+ GRID: 'grid',
11
+ LIST: 'list',
12
+ } as const
13
+ export const CategoryDisplayMode = {
14
+ PRODUCTS: 'products',
15
+ CMS: 'cms',
16
+ MIXED: 'mixed',
17
+ } as const
18
+
19
+ export default {
20
+ SortDirections,
21
+ CategoryPageLayout,
22
+ CategoryDisplayMode,
23
+ NONE_SORT_OPTION_VALUE,
24
+ }
25
+
26
+ export type SortDirections = typeof SortDirections[keyof typeof SortDirections]
27
+ export type CategoryDisplayMode = typeof CategoryDisplayMode[keyof typeof CategoryDisplayMode]
28
+ export type CategoryPageLayout = typeof CategoryPageLayout[keyof typeof CategoryPageLayout]
@@ -0,0 +1,8 @@
1
+ export type CategorySortOption = {
2
+ value: string
3
+ label: string
4
+ }
5
+
6
+ export type CategorySortOptions = CategorySortOption[]
7
+
8
+ export default CategorySortOptions
@@ -0,0 +1,3 @@
1
+ export enum CheckoutStepUrl {
2
+ CHECKOUT_URL = '/checkout',
3
+ }
@@ -0,0 +1,14 @@
1
+ export interface CheckoutAddress {
2
+ company?: string
3
+ city?: string
4
+ country_id?: string
5
+ firstname?: string
6
+ lastname?: string
7
+ postcode?: string
8
+ street?: Array<string | null>
9
+ telephone?: string
10
+ region?: string
11
+ region_id?: number
12
+ region_code?: string
13
+ vat_id?: string
14
+ }
@@ -0,0 +1 @@
1
+ export const CUSTOMER = 'customer';
@@ -0,0 +1 @@
1
+ export const NONE_SORT_OPTION_VALUE = '';
@@ -0,0 +1,5 @@
1
+ export enum UrlRewritePageType {
2
+ CATEGORY = 'category',
3
+ CMS_PAGE = 'cms_page',
4
+ PRODUCT = 'product',
5
+ }
@@ -0,0 +1,26 @@
1
+ export interface CartItem {
2
+ id: string
3
+ productId: string
4
+ sku?: string
5
+ quantity: number
6
+ price?: number
7
+ [key: string]: any
8
+ }
9
+
10
+ export interface IndexedCartItem extends CartItem {
11
+ index?: number
12
+ }
13
+
14
+ export interface Cart {
15
+ id?: string
16
+ items?: CartItem[]
17
+ subtotal?: number
18
+ total?: number
19
+ tax_amount?: number
20
+ shipping_amount?: number
21
+ discount_amount?: number
22
+ coupon_code?: string | null
23
+ [key: string]: any
24
+ }
25
+
26
+ export default Cart
@@ -0,0 +1,7 @@
1
+ export function updateCustomerSignInStatus(isSignedIn: boolean, customer?: any) {
2
+ if (typeof window !== 'undefined' && 'CustomEvent' in window) {
3
+ window.dispatchEvent(new CustomEvent('mframework:auth:update', { detail: { isSignedIn, customer } }))
4
+ }
5
+ }
6
+
7
+ export default { updateCustomerSignInStatus }
@@ -0,0 +1,40 @@
1
+ import { Notification, NotificationOptions, NotificationType } from './Notification.type'
2
+
3
+ function genId() {
4
+ return `${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 9)}`
5
+ }
6
+
7
+ export function showNotification(message: string, type: NotificationType = NotificationType.INFO, options: NotificationOptions = {}): Notification {
8
+ const notification: Notification = {
9
+ id: genId(),
10
+ message,
11
+ type: options.type || type,
12
+ meta: options.meta,
13
+ createdAt: Date.now(),
14
+ }
15
+
16
+ if (typeof window !== 'undefined' && 'CustomEvent' in window) {
17
+ window.dispatchEvent(new CustomEvent('mframework:notification', { detail: notification }))
18
+ }
19
+
20
+ return notification
21
+ }
22
+
23
+ export function notifyInfo(message: string, options: NotificationOptions = {}) {
24
+ return showNotification(message, NotificationType.INFO, options)
25
+ }
26
+
27
+ export function notifySuccess(message: string, options: NotificationOptions = {}) {
28
+ return showNotification(message, NotificationType.SUCCESS, options)
29
+ }
30
+
31
+ export function notifyError(message: string, options: NotificationOptions = {}) {
32
+ return showNotification(message, NotificationType.ERROR, options)
33
+ }
34
+
35
+ export default {
36
+ showNotification,
37
+ notifyInfo,
38
+ notifySuccess,
39
+ notifyError,
40
+ }
@@ -0,0 +1,16 @@
1
+ export enum NotificationType {
2
+ INFO = 'info',
3
+ SUCCESS = 'success',
4
+ WARNING = 'warning',
5
+ ERROR = 'error',
6
+ }
7
+
8
+ export interface Notification {
9
+ id: string
10
+ message: string
11
+ type: NotificationType
12
+ meta?: Record<string, unknown>
13
+ createdAt: number
14
+ }
15
+
16
+ export type NotificationOptions = Partial<Pick<Notification, 'meta' | 'type'>>
@@ -0,0 +1,30 @@
1
+ export interface PopupPayload {
2
+ [key: string]: unknown
3
+ }
4
+
5
+ function genId() {
6
+ return `${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 9)}`
7
+ }
8
+
9
+ export function showPopup(popupId: string, payload: PopupPayload = {}) {
10
+ const popup = {
11
+ id: genId(),
12
+ popupId,
13
+ payload,
14
+ openedAt: Date.now(),
15
+ }
16
+
17
+ if (typeof window !== 'undefined' && 'CustomEvent' in window) {
18
+ window.dispatchEvent(new CustomEvent('mframework:popup:open', { detail: popup }))
19
+ }
20
+
21
+ return popup
22
+ }
23
+
24
+ export function closePopup(popupId: string) {
25
+ if (typeof window !== 'undefined' && 'CustomEvent' in window) {
26
+ window.dispatchEvent(new CustomEvent('mframework:popup:close', { detail: { popupId } }))
27
+ }
28
+ }
29
+
30
+ export default { showPopup, closePopup }