@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.
- package/README.md +101 -0
- package/app/cart/useCart.ts +1 -0
- package/app/components/ChevronIcon/ChevronIcon.config.ts +17 -0
- package/app/components/DateSelect/DateSelect.config.ts +15 -0
- package/app/components/Field/Field.config.ts +14 -0
- package/app/components/FieldDate/FieldDate.config.ts +16 -0
- package/app/components/Form/Form.type.ts +8 -0
- package/app/components/Product/Product.config.ts +19 -0
- package/app/components/Product/Stock.config.ts +15 -0
- package/app/components/ProductCustomizableOption/ProductCustomizableOption.config.ts +5 -0
- package/app/components/ProductGallery/ProductGallery.config.ts +15 -0
- package/app/components/ProductReviews/ProductReviews.config.ts +8 -0
- package/app/composables/_types.ts +18 -0
- package/app/composables/adapters/abstract/cartAdapter.ts +0 -0
- package/app/composables/adapters/abstract/categoryAdapter.ts +0 -0
- package/app/composables/adapters/abstract/customerAdapter.ts +0 -0
- package/app/composables/adapters/abstract/inventoryAdapter.ts +0 -0
- package/app/composables/adapters/abstract/orderAdapter.ts +0 -0
- package/app/composables/adapters/abstract/productAdapter.ts +7 -0
- package/app/composables/cart/registry.ts +20 -0
- package/app/composables/cart/types.ts +18 -0
- package/app/composables/cart/useCart.ts +15 -0
- package/app/composables/config.ts +19 -0
- package/app/composables/defs/apiDefinitions.ts +55 -0
- package/app/composables/defs/extension.feature +40 -0
- package/app/composables/defs/extension.mocks.ts +39 -0
- package/app/composables/defs/extension.test.ts +280 -0
- package/app/composables/defs/extension.ts +236 -0
- package/app/composables/defs/index.ts +3 -0
- package/app/composables/defs/typeHelpers.ts +8 -0
- package/app/composables/defs/types.ts +136 -0
- package/app/composables/domain/product.ts +12 -0
- package/app/composables/featured-products.ts +20 -0
- package/app/composables/helpers/contextualizedNormalizers.feature +14 -0
- package/app/composables/helpers/contextualizedNormalizers.test.ts +85 -0
- package/app/composables/helpers/contextualizedNormalizers.ts +20 -0
- package/app/composables/helpers/index.ts +1 -0
- package/app/composables/index.ts +9 -0
- package/app/composables/methods/auth.ts +83 -0
- package/app/composables/methods/cart.ts +119 -0
- package/app/composables/methods/category.ts +27 -0
- package/app/composables/methods/checkout.ts +54 -0
- package/app/composables/methods/customer.ts +52 -0
- package/app/composables/methods/helpers.ts +5 -0
- package/app/composables/methods/index.ts +75 -0
- package/app/composables/methods/order.ts +39 -0
- package/app/composables/methods/product.ts +95 -0
- package/app/composables/methods/settings.ts +16 -0
- package/app/composables/models/cart.ts +95 -0
- package/app/composables/models/category.ts +13 -0
- package/app/composables/models/checkout.ts +17 -0
- package/app/composables/models/customer.ts +16 -0
- package/app/composables/models/facets.ts +25 -0
- package/app/composables/models/index.ts +94 -0
- package/app/composables/models/order.ts +43 -0
- package/app/composables/models/product.ts +73 -0
- package/app/composables/models/shared.ts +75 -0
- package/app/composables/orders.ts +69 -0
- package/app/composables/products/registry.ts +86 -0
- package/app/composables/products/types.ts +8 -0
- package/app/composables/products/useEvents.ts +26 -0
- package/app/composables/products/useGiftCards.ts +29 -0
- package/app/composables/products/useProducts.ts +12 -0
- package/app/composables/products/useSubscriptions.ts +29 -0
- package/app/composables/products.ts +30 -0
- package/app/composables/registry.ts +24 -0
- package/app/composables/useAuth.ts +43 -0
- package/app/composables/useBreakpoints/index.ts +1 -0
- package/app/composables/useBreakpoints/useBreakpoints.ts +28 -0
- package/app/composables/useCache.ts +38 -0
- package/app/composables/useCart/__tests__/useCart.spec.ts +11 -0
- package/app/composables/useCart/index.ts +1 -0
- package/app/composables/useCart/types.ts +17 -0
- package/app/composables/useCart/useCart.ts +46 -0
- package/app/composables/useCartShippingMethods/__tests__/useCartShippingMethods.spec.ts +11 -0
- package/app/composables/useCartShippingMethods/index.ts +1 -0
- package/app/composables/useCartShippingMethods/types.ts +17 -0
- package/app/composables/useCartShippingMethods/useCartShippingMethods.ts +47 -0
- package/app/composables/useCatalog.ts +26 -0
- package/app/composables/useContent.ts +26 -0
- package/app/composables/useCustomer/__tests__/useCustomer.spec.ts +25 -0
- package/app/composables/useCustomer/index.ts +2 -0
- package/app/composables/useCustomer/types.ts +17 -0
- package/app/composables/useCustomer/useCustomer.ts +40 -0
- package/app/composables/useCustomerAddress/__tests__/useCustomerAddress.spec.ts +11 -0
- package/app/composables/useCustomerAddress/index.ts +2 -0
- package/app/composables/useCustomerAddress/types.ts +17 -0
- package/app/composables/useCustomerAddress/useCustomerAddress.ts +55 -0
- package/app/composables/useCustomerOrder/__tests__/useCustomerOrder.spec.ts +11 -0
- package/app/composables/useCustomerOrder/adress.ts +10 -0
- package/app/composables/useCustomerOrder/index.ts +2 -0
- package/app/composables/useCustomerOrder/product.ts +37 -0
- package/app/composables/useCustomerOrder/types.ts +40 -0
- package/app/composables/useCustomerOrder/useCustomerOrder.ts +63 -0
- package/app/composables/useCustomerOrders/__tests__/useCustomerOrders.spec.ts +11 -0
- package/app/composables/useCustomerOrders/index.ts +2 -0
- package/app/composables/useCustomerOrders/types.ts +20 -0
- package/app/composables/useCustomerOrders/useCustomerOrders.ts +56 -0
- package/app/composables/useCustomerReturns/__tests__/useCustomerReturns.spec.ts +11 -0
- package/app/composables/useCustomerReturns/index.ts +2 -0
- package/app/composables/useCustomerReturns/types.ts +17 -0
- package/app/composables/useCustomerReturns/useCustomerReturns.ts +41 -0
- package/app/composables/useHandleError/index.ts +1 -0
- package/app/composables/useHandleError/types.ts +11 -0
- package/app/composables/useHandleError/useHandleError.ts +27 -0
- package/app/composables/useInventory.ts +29 -0
- package/app/composables/useLoading.ts +21 -0
- package/app/composables/useNotification.ts +21 -0
- package/app/composables/usePageTitle.ts +20 -0
- package/app/composables/useProduct/index.ts +2 -0
- package/app/composables/useProduct/types.ts +17 -0
- package/app/composables/useProduct/useProduct.ts +42 -0
- package/app/composables/useProductAttribute/__tests__/useProduct.mock.ts +31 -0
- package/app/composables/useProductAttribute/__tests__/useProductAttribute.spec.ts +14 -0
- package/app/composables/useProductAttribute/index.ts +1 -0
- package/app/composables/useProductAttribute/useProductAttribute.ts +37 -0
- package/app/composables/useProductRecommended/__tests__/useProductRecommended.spec.ts +12 -0
- package/app/composables/useProductRecommended/index.ts +1 -0
- package/app/composables/useProductRecommended/types.ts +17 -0
- package/app/composables/useProductRecommended/useProductRecommended.ts +43 -0
- package/app/composables/useProductReviews/__tests__/productReviews.mock.ts +20 -0
- package/app/composables/useProductReviews/__tests__/useProductReviews.spec.ts +22 -0
- package/app/composables/useProductReviews/index.ts +2 -0
- package/app/composables/useProductReviews/types.ts +17 -0
- package/app/composables/useProductReviews/useProductReviews.ts +46 -0
- package/app/composables/useProducts/__tests__/useProducts.spec.ts +11 -0
- package/app/composables/useProducts/types.ts +22 -0
- package/app/composables/useProducts/useProducts.ts +41 -0
- package/app/composables/useTax.ts +27 -0
- package/app/composables/validationRules/index.ts +1 -0
- package/app/composables/validationRules/password.feature +67 -0
- package/app/composables/validationRules/password.test.ts +89 -0
- package/app/composables/validationRules/password.ts +25 -0
- package/app/normalizers/Cart.query.ts +729 -0
- package/app/normalizers/Cart.type.ts +285 -0
- package/app/normalizers/Category.query.ts +146 -0
- package/app/normalizers/Category.type.ts +55 -0
- package/app/normalizers/CheckEmail.query.ts +28 -0
- package/app/normalizers/Checkout.query.ts +253 -0
- package/app/normalizers/Checkout.type.ts +77 -0
- package/app/normalizers/CmsBlock.query.ts +57 -0
- package/app/normalizers/CmsBlock.type.ts +25 -0
- package/app/normalizers/CmsPage.query.ts +59 -0
- package/app/normalizers/CmsPage.type.ts +26 -0
- package/app/normalizers/Config.query.ts +224 -0
- package/app/normalizers/Config.type.ts +196 -0
- package/app/normalizers/ContactForm.query.ts +49 -0
- package/app/normalizers/CreditMemo.type.ts +49 -0
- package/app/normalizers/GiftCard.type.ts +24 -0
- package/app/normalizers/Invoice.type.ts +58 -0
- package/app/normalizers/Menu.query.ts +54 -0
- package/app/normalizers/Menu.type.ts +22 -0
- package/app/normalizers/MyAccount.query.ts +268 -0
- package/app/normalizers/MyAccount.type.ts +129 -0
- package/app/normalizers/NewsletterSubscription.query.ts +38 -0
- package/app/normalizers/Order.query.ts +741 -0
- package/app/normalizers/Order.type.ts +268 -0
- package/app/normalizers/Payment.type.ts +28 -0
- package/app/normalizers/ProductAlerts.query.ts +23 -0
- package/app/normalizers/ProductCompare.query.ts +226 -0
- package/app/normalizers/ProductCompare.type.ts +90 -0
- package/app/normalizers/ProductList.query.ts +1620 -0
- package/app/normalizers/ProductList.type.ts +726 -0
- package/app/normalizers/Region.query.ts +58 -0
- package/app/normalizers/Region.type.ts +23 -0
- package/app/normalizers/Return.type.ts +50 -0
- package/app/normalizers/Review.query.ts +81 -0
- package/app/normalizers/Review.type.ts +42 -0
- package/app/normalizers/Slider.query.ts +72 -0
- package/app/normalizers/Slider.type.ts +26 -0
- package/app/normalizers/StoreInPickUp.query.ts +54 -0
- package/app/normalizers/StoreInPickUp.type.ts +59 -0
- package/app/normalizers/Subscription.type.ts +25 -0
- package/app/normalizers/Transaction.type.ts +20 -0
- package/app/normalizers/UrlRewrites.query.ts +55 -0
- package/app/normalizers/UrlRewrites.type.ts +25 -0
- package/app/normalizers/Wishlist.query.ts +202 -0
- package/app/normalizers/Wishlist.type.ts +42 -0
- package/app/pages/brand/[...slug].vue +76 -0
- package/app/pages/brands.vue +67 -0
- package/app/pages/cart.vue +142 -0
- package/app/pages/compare.vue +166 -0
- package/app/pages/departments/[...slug].vue +353 -0
- package/app/pages/departments/category/[...slug].vue +114 -0
- package/app/pages/incentive/[...id].vue +66 -0
- package/app/pages/invoice/[id].vue +309 -0
- package/app/pages/order/[id].vue +327 -0
- package/app/pages/product/[...id].vue +309 -0
- package/app/pages/product/showcases/index.vue +86 -0
- package/app/pages/shipment/[...id].vue +176 -0
- package/app/pages/shop/[...slug].vue +158 -0
- package/app/pages/shops.vue +76 -0
- package/app/pages/subscription/[...id].vue +147 -0
- package/app/pages/transaction/[...id].vue +74 -0
- package/app/routes/CategoryPage/CategoryPage.config.ts +28 -0
- package/app/routes/CategoryPage/CategoryPage.type.ts +8 -0
- package/app/routes/Checkout/Checkout.config.ts +3 -0
- package/app/routes/Checkout/Checkout.type.ts +14 -0
- package/app/routes/MyAccount/MyAccount.config.ts +1 -0
- package/app/routes/SearchPage/SearchPage.config.ts +1 -0
- package/app/routes/UrlRewrites/UrlRewrites.config.ts +5 -0
- package/app/stores/Cart/Cart.type.ts +26 -0
- package/app/stores/MyAccount/MyAccount.action.ts +7 -0
- package/app/stores/Notification/Notification.action.ts +40 -0
- package/app/stores/Notification/Notification.type.ts +16 -0
- package/app/stores/Popup/Popup.action.ts +30 -0
- package/app/stores/Product/Product.dispatcher.ts +53 -0
- package/app/stores/Product/Product.reducer.ts +12 -0
- package/app/stores/ProductList/ProductList.dispatcher.ts +35 -0
- package/app/stores/ProductList/ProductList.reducer.ts +13 -0
- package/app/stores/Store.type.ts +31 -0
- package/app/stores/Wishlist/Wishlist.type.ts +12 -0
- package/app/stores/cart.ts +218 -0
- package/app/stores/cartStore.ts +224 -0
- package/app/stores/checkout.ts +18 -0
- package/app/stores/compare.ts +65 -0
- package/app/stores/currency.js +29 -0
- package/app/stores/digital-products.js +11 -0
- package/app/stores/orders.ts +172 -0
- package/app/stores/product.ts +34 -0
- package/app/stores/productList.ts +35 -0
- package/app/stores/productListInfo.ts +0 -0
- package/app/stores/products.ts +118 -0
- package/app/stores/recentlyViewedProducts.ts +56 -0
- package/app/stores/review.ts +33 -0
- package/app/stores/storeInPickUp.ts +21 -0
- package/app/stores/user.ts +20 -0
- package/app/stores/wishlist.ts +46 -0
- package/app/types/Account.type.ts +141 -0
- package/app/types/Breadcrumbs.type.ts +23 -0
- package/app/types/CMS.type.ts +33 -0
- package/app/types/Category.type.ts +67 -0
- package/app/types/Checkout.type.ts +58 -0
- package/app/types/Common.type.ts +77 -0
- package/app/types/Config.type.ts +47 -0
- package/app/types/Device.type.ts +37 -0
- package/app/types/Direction.type.ts +23 -0
- package/app/types/Downloadable.type.ts +24 -0
- package/app/types/Error.type.ts +22 -0
- package/app/types/Field.type.ts +151 -0
- package/app/types/Global.type.ts +156 -0
- package/app/types/Graphql.type.ts +4497 -0
- package/app/types/Layout.type.ts +18 -0
- package/app/types/Menu.type.ts +39 -0
- package/app/types/MiniCart.type.ts +61 -0
- package/app/types/NotificationList.type.ts +34 -0
- package/app/types/Order.type.ts +174 -0
- package/app/types/Price.type.ts +72 -0
- package/app/types/ProductCompare.type.ts +24 -0
- package/app/types/ProductList.type.ts +351 -0
- package/app/types/Rating.type.ts +42 -0
- package/app/types/Router.type.ts +67 -0
- package/app/types/Slider.type.ts +25 -0
- package/app/types/StockStatus.type.ts +21 -0
- package/app/types/domain/index.ts +94 -0
- package/app/types/index.ts +33 -0
- package/app/types/shims.d.ts +52 -0
- package/app/types/tilework-opus.d.ts +48 -0
- package/app/utils/Address/Address.type.ts +28 -0
- package/app/utils/Address/index.ts +325 -0
- package/app/utils/Auth/IsSignedIn.ts +4 -0
- package/app/utils/Auth/Token.ts +9 -0
- package/app/utils/Base64/Base64.ts +16 -0
- package/app/utils/Base64/index.ts +12 -0
- package/app/utils/Browser/Browser.ts +29 -0
- package/app/utils/Browser/index.ts +12 -0
- package/app/utils/BrowserDatabase/BrowserDatabase.ts +70 -0
- package/app/utils/BrowserDatabase/index.ts +12 -0
- package/app/utils/CSS/CSS.ts +65 -0
- package/app/utils/CSS/index.ts +12 -0
- package/app/utils/Cache/Cache.ts +99 -0
- package/app/utils/Cart/Cart.ts +300 -0
- package/app/utils/Cart/Cart.type.ts +76 -0
- package/app/utils/Cart/Token.ts +59 -0
- package/app/utils/Cart/index.ts +13 -0
- package/app/utils/Category/Filters.ts +39 -0
- package/app/utils/Category/index.ts +12 -0
- package/app/utils/Common/index.ts +32 -0
- package/app/utils/Compare/Compare.ts +89 -0
- package/app/utils/Compare/index.ts +12 -0
- package/app/utils/Currency/Currency.ts +84 -0
- package/app/utils/Currency/index.ts +12 -0
- package/app/utils/DynamicReducer/DynamicReducer.type.ts +14 -0
- package/app/utils/DynamicReducer/Helper.ts +30 -0
- package/app/utils/DynamicReducer/index.tsx +35 -0
- package/app/utils/ElementTransition/ElementTransition.ts +100 -0
- package/app/utils/Form/Extract.ts +316 -0
- package/app/utils/Form/Form.ts +46 -0
- package/app/utils/Form/Form.type.ts +60 -0
- package/app/utils/Form/Transform.ts +33 -0
- package/app/utils/FormPortalCollector/index.ts +45 -0
- package/app/utils/History/History.type.ts +31 -0
- package/app/utils/History/index.ts +17 -0
- package/app/utils/Manipulations/Array.ts +18 -0
- package/app/utils/Manipulations/Date.ts +36 -0
- package/app/utils/Manipulations/index.ts +14 -0
- package/app/utils/Media/Media.ts +27 -0
- package/app/utils/Media/index.ts +13 -0
- package/app/utils/Menu/Menu.ts +116 -0
- package/app/utils/Menu/Menu.type.ts +37 -0
- package/app/utils/Menu/index.ts +12 -0
- package/app/utils/Mobile/index.ts +13 -0
- package/app/utils/Mobile/isMobile.ts +34 -0
- package/app/utils/Orders/Orders.ts +71 -0
- package/app/utils/Orders/Orders.type.ts +19 -0
- package/app/utils/Orders/index.ts +13 -0
- package/app/utils/Polyfill/index.ts +336 -0
- package/app/utils/Preload/CategoryPreload.ts +74 -0
- package/app/utils/Preload/ProductPreload.ts +28 -0
- package/app/utils/Preload/index.ts +75 -0
- package/app/utils/Price/Price.config.ts +189 -0
- package/app/utils/Price/Price.ts +63 -0
- package/app/utils/Price/index.ts +12 -0
- package/app/utils/Product/Extract.ts +652 -0
- package/app/utils/Product/Product.ts +575 -0
- package/app/utils/Product/Product.type.ts +260 -0
- package/app/utils/Product/Transform.ts +382 -0
- package/app/utils/Product/index.ts +12 -0
- package/app/utils/Promise/MakeCancelable.ts +44 -0
- package/app/utils/Promise/Promise.type.ts +15 -0
- package/app/utils/Promise/index.ts +13 -0
- package/app/utils/Query/Field.ts +71 -0
- package/app/utils/Query/Fragment.ts +22 -0
- package/app/utils/Query/PrepareDocument.ts +119 -0
- package/app/utils/Query/Query.type.ts +26 -0
- package/app/utils/Query/index.ts +15 -0
- package/app/utils/Request/Config.ts +21 -0
- package/app/utils/Request/DataContainer.ts +102 -0
- package/app/utils/Request/Debounce.ts +48 -0
- package/app/utils/Request/Error.ts +31 -0
- package/app/utils/Request/Hash.ts +88 -0
- package/app/utils/Request/LowPriorityLoad.ts +32 -0
- package/app/utils/Request/LowPriorityRender.ts +55 -0
- package/app/utils/Request/Mutation.ts +25 -0
- package/app/utils/Request/Query.ts +25 -0
- package/app/utils/Request/QueryDispatcher.ts +135 -0
- package/app/utils/Request/Request.ts +310 -0
- package/app/utils/Store/Store.type.ts +26 -0
- package/app/utils/Store/index.ts +71 -0
- package/app/utils/Url/Url.ts +297 -0
- package/app/utils/Url/index.ts +12 -0
- package/app/utils/Validator/Config.ts +96 -0
- package/app/utils/Validator/Validator.ts +268 -0
- package/app/utils/Validator/Validator.type.ts +47 -0
- package/app/utils/Validator/index.ts +12 -0
- package/app/utils/Wishlist/Wishlist.ts +65 -0
- package/app/utils/Wishlist/index.ts +12 -0
- package/app/utils/client.ts +280 -0
- package/app/utils/index.ts +53 -0
- package/app/utils/normalizer.ts +23 -0
- package/app/utils/normalizers/magento.ts +29 -0
- package/app/utils/normalizers/shopify.ts +29 -0
- package/nuxt.config.ts +11 -0
- package/package.json +43 -0
- package/tsconfig.json +45 -0
|
@@ -0,0 +1,351 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* M Framework - Flexible backend agnostic framework.
|
|
3
|
+
*
|
|
4
|
+
* Copyright © Meeovi, LTD. All rights reserved.
|
|
5
|
+
* See LICENSE for license details.
|
|
6
|
+
*
|
|
7
|
+
* @license OSL-3.0 (Open Software License ("OSL") v. 3.0)
|
|
8
|
+
* @package mframework/mframework
|
|
9
|
+
* @link https://github.com/meeovi/mframework
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
import PropTypes from 'prop-types';
|
|
13
|
+
|
|
14
|
+
import { MetaTitleType } from './Common.type';
|
|
15
|
+
import { PriceType } from './Price.type';
|
|
16
|
+
import { UrlRewriteType } from './Router.type';
|
|
17
|
+
import { StockStatusType } from './StockStatus.type';
|
|
18
|
+
|
|
19
|
+
// Support for comtabilitiy
|
|
20
|
+
|
|
21
|
+
export const AttributeType = PropTypes.shape({
|
|
22
|
+
attribute_code: PropTypes.string,
|
|
23
|
+
attribute_type: PropTypes.string,
|
|
24
|
+
attribute_value: PropTypes.string,
|
|
25
|
+
attribute_label: PropTypes.string,
|
|
26
|
+
attribute_options: PropTypes.objectOf(PropTypes.shape({
|
|
27
|
+
label: PropTypes.string,
|
|
28
|
+
value: PropTypes.string,
|
|
29
|
+
})),
|
|
30
|
+
has_swatch: PropTypes.bool,
|
|
31
|
+
is_boolean: PropTypes.bool,
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
export const AttributesType = PropTypes.oneOfType([
|
|
35
|
+
PropTypes.objectOf(AttributeType),
|
|
36
|
+
PropTypes.arrayOf(PropTypes.objectOf(AttributeType)),
|
|
37
|
+
]);
|
|
38
|
+
|
|
39
|
+
export const FilterAttributeType = PropTypes.shape({
|
|
40
|
+
attribute_code: PropTypes.string,
|
|
41
|
+
attribute_label: PropTypes.string,
|
|
42
|
+
attribute_position: PropTypes.number,
|
|
43
|
+
attribute_values: PropTypes.arrayOf(PropTypes.string),
|
|
44
|
+
attribute_type: PropTypes.string,
|
|
45
|
+
attribute_options: PropTypes.objectOf(PropTypes.shape({
|
|
46
|
+
label: PropTypes.string,
|
|
47
|
+
count: PropTypes.number,
|
|
48
|
+
value_string: PropTypes.string,
|
|
49
|
+
swatch_data: PropTypes.shape({ type: PropTypes.string, value: PropTypes.string }),
|
|
50
|
+
})),
|
|
51
|
+
is_boolean: PropTypes.bool,
|
|
52
|
+
has_swatch: PropTypes.bool,
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
export const BreadcrumbsType = PropTypes.arrayOf(
|
|
56
|
+
PropTypes.shape({
|
|
57
|
+
name: PropTypes.string,
|
|
58
|
+
url_path: PropTypes.string,
|
|
59
|
+
}),
|
|
60
|
+
);
|
|
61
|
+
|
|
62
|
+
export const ImageType = PropTypes.shape({
|
|
63
|
+
path: PropTypes.string,
|
|
64
|
+
url: PropTypes.string,
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
export const CategoryType = PropTypes.shape({
|
|
68
|
+
name: PropTypes.string,
|
|
69
|
+
url_path: PropTypes.string,
|
|
70
|
+
breadcrumbs: BreadcrumbsType,
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
export const CategoriesType = PropTypes.arrayOf(CategoryType);
|
|
74
|
+
|
|
75
|
+
export const ThumbnailType = PropTypes.shape({
|
|
76
|
+
height: PropTypes.string,
|
|
77
|
+
type: PropTypes.string,
|
|
78
|
+
url: PropTypes.string,
|
|
79
|
+
width: PropTypes.string,
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
export const MediaItemType = PropTypes.shape({
|
|
83
|
+
thumbnail: ThumbnailType,
|
|
84
|
+
file: PropTypes.string,
|
|
85
|
+
video_content: PropTypes.shape({
|
|
86
|
+
media_type: PropTypes.string,
|
|
87
|
+
video_description: PropTypes.string,
|
|
88
|
+
video_metadata: PropTypes.string,
|
|
89
|
+
video_provider: PropTypes.string,
|
|
90
|
+
video_title: PropTypes.string,
|
|
91
|
+
video_url: PropTypes.string,
|
|
92
|
+
}),
|
|
93
|
+
id: PropTypes.number,
|
|
94
|
+
media_type: PropTypes.string,
|
|
95
|
+
label: PropTypes.string,
|
|
96
|
+
});
|
|
97
|
+
|
|
98
|
+
export const MediaType = PropTypes.arrayOf(MediaItemType);
|
|
99
|
+
|
|
100
|
+
export const ProductLinksType = PropTypes.arrayOf(
|
|
101
|
+
PropTypes.shape({
|
|
102
|
+
link_type: PropTypes.string,
|
|
103
|
+
linked_product_sku: PropTypes.string,
|
|
104
|
+
position: PropTypes.number,
|
|
105
|
+
}),
|
|
106
|
+
);
|
|
107
|
+
|
|
108
|
+
export const ReviewSummaryShape = {
|
|
109
|
+
rating_summary: PropTypes.number,
|
|
110
|
+
review_count: PropTypes.number,
|
|
111
|
+
};
|
|
112
|
+
|
|
113
|
+
export const RatingVoteType = PropTypes.shape({
|
|
114
|
+
vote_id: PropTypes.number,
|
|
115
|
+
rating_code: PropTypes.string,
|
|
116
|
+
percent: PropTypes.number,
|
|
117
|
+
});
|
|
118
|
+
|
|
119
|
+
export const ReviewsType = PropTypes.arrayOf(
|
|
120
|
+
PropTypes.shape({
|
|
121
|
+
review_id: PropTypes.number,
|
|
122
|
+
nickname: PropTypes.string,
|
|
123
|
+
title: PropTypes.string,
|
|
124
|
+
detail: PropTypes.string,
|
|
125
|
+
created_at: PropTypes.string,
|
|
126
|
+
rating_votes: PropTypes.arrayOf(RatingVoteType),
|
|
127
|
+
}),
|
|
128
|
+
);
|
|
129
|
+
|
|
130
|
+
export const DescriptionType = PropTypes.shape({ html: PropTypes.string });
|
|
131
|
+
|
|
132
|
+
export const StockItemType = PropTypes.shape({
|
|
133
|
+
in_stock: PropTypes.bool,
|
|
134
|
+
min_sale_qty: PropTypes.number,
|
|
135
|
+
max_sale_qty: PropTypes.number,
|
|
136
|
+
qty_increments: PropTypes.number,
|
|
137
|
+
});
|
|
138
|
+
|
|
139
|
+
export const OptionValueType = PropTypes.shape({
|
|
140
|
+
option_type_id: PropTypes.number,
|
|
141
|
+
price: PropTypes.number,
|
|
142
|
+
price_type: PropTypes.string,
|
|
143
|
+
sku: PropTypes.string,
|
|
144
|
+
sort_order: PropTypes.number,
|
|
145
|
+
title: PropTypes.string,
|
|
146
|
+
});
|
|
147
|
+
|
|
148
|
+
export const OptionsType = PropTypes.arrayOf(
|
|
149
|
+
PropTypes.shape({
|
|
150
|
+
option_id: PropTypes.number,
|
|
151
|
+
required: PropTypes.bool,
|
|
152
|
+
sort_order: PropTypes.number,
|
|
153
|
+
title: PropTypes.string,
|
|
154
|
+
values: PropTypes.arrayOf(OptionValueType),
|
|
155
|
+
}),
|
|
156
|
+
);
|
|
157
|
+
|
|
158
|
+
export const ValueType = PropTypes.shape({
|
|
159
|
+
uid: PropTypes.string,
|
|
160
|
+
option_type_id: PropTypes.number,
|
|
161
|
+
price: PropTypes.number,
|
|
162
|
+
priceInclTax: PropTypes.number,
|
|
163
|
+
priceExclTax: PropTypes.number,
|
|
164
|
+
price_type: PropTypes.string,
|
|
165
|
+
currency: PropTypes.string,
|
|
166
|
+
sku: PropTypes.string,
|
|
167
|
+
title: PropTypes.string,
|
|
168
|
+
sort_order: PropTypes.number,
|
|
169
|
+
});
|
|
170
|
+
|
|
171
|
+
export const PriceTierType = PropTypes.shape({
|
|
172
|
+
discount: PropTypes.shape({ amount_off: PropTypes.number, percent_off: PropTypes.number }),
|
|
173
|
+
final_price: PropTypes.shape({ currency: PropTypes.string, value: PropTypes.number }),
|
|
174
|
+
quantity: PropTypes.number,
|
|
175
|
+
});
|
|
176
|
+
|
|
177
|
+
export const CustomizableOptionShape = {
|
|
178
|
+
price: PropTypes.number,
|
|
179
|
+
priceInclTax: PropTypes.number,
|
|
180
|
+
priceExclTax: PropTypes.number,
|
|
181
|
+
price_type: PropTypes.string,
|
|
182
|
+
currency: PropTypes.string,
|
|
183
|
+
sku: PropTypes.string,
|
|
184
|
+
};
|
|
185
|
+
|
|
186
|
+
export const CustomizableOptionType = PropTypes.shape({
|
|
187
|
+
...CustomizableOptionShape,
|
|
188
|
+
uid: PropTypes.string,
|
|
189
|
+
option_type_id: PropTypes.number,
|
|
190
|
+
title: PropTypes.string,
|
|
191
|
+
sort_order: PropTypes.number,
|
|
192
|
+
});
|
|
193
|
+
|
|
194
|
+
export const InputOptionType = PropTypes.shape({
|
|
195
|
+
...CustomizableOptionShape,
|
|
196
|
+
max_characters: PropTypes.number,
|
|
197
|
+
});
|
|
198
|
+
|
|
199
|
+
export const FileOptionType = PropTypes.shape({
|
|
200
|
+
...CustomizableOptionShape,
|
|
201
|
+
file_extension: PropTypes.string,
|
|
202
|
+
});
|
|
203
|
+
|
|
204
|
+
export const CustomizableOptionsType = PropTypes.oneOfType([
|
|
205
|
+
FileOptionType,
|
|
206
|
+
InputOptionType,
|
|
207
|
+
PropTypes.arrayOf(CustomizableOptionType),
|
|
208
|
+
]);
|
|
209
|
+
|
|
210
|
+
export const ItemShape = {
|
|
211
|
+
attributes: AttributesType,
|
|
212
|
+
configurable_options: AttributesType,
|
|
213
|
+
id: PropTypes.number,
|
|
214
|
+
image: ImageType,
|
|
215
|
+
name: PropTypes.string,
|
|
216
|
+
options: CustomizableOptionsType,
|
|
217
|
+
price_range: PriceType,
|
|
218
|
+
price_tiers: PropTypes.arrayOf(PriceTierType),
|
|
219
|
+
...ReviewSummaryShape,
|
|
220
|
+
review_summary: PropTypes.shape(ReviewSummaryShape),
|
|
221
|
+
short_description: DescriptionType,
|
|
222
|
+
sku: PropTypes.string,
|
|
223
|
+
small_image: ImageType,
|
|
224
|
+
special_from_date: PropTypes.string,
|
|
225
|
+
special_to_date: PropTypes.string,
|
|
226
|
+
stock_item: StockItemType,
|
|
227
|
+
stock_status: StockStatusType,
|
|
228
|
+
thumbnail: ImageType,
|
|
229
|
+
type_id: PropTypes.string,
|
|
230
|
+
uid: PropTypes.string,
|
|
231
|
+
url: PropTypes.string,
|
|
232
|
+
url_rewrites: PropTypes.arrayOf(UrlRewriteType),
|
|
233
|
+
};
|
|
234
|
+
export const ItemType = PropTypes.shape(ItemShape);
|
|
235
|
+
|
|
236
|
+
export const ItemsType = PropTypes.arrayOf(ItemType);
|
|
237
|
+
|
|
238
|
+
// @ts-ignore
|
|
239
|
+
ItemType.variants = ItemsType;
|
|
240
|
+
|
|
241
|
+
export const PagesType = PropTypes.objectOf(ItemsType);
|
|
242
|
+
|
|
243
|
+
export const QuantityType = PropTypes.oneOfType([
|
|
244
|
+
PropTypes.number,
|
|
245
|
+
PropTypes.shape({
|
|
246
|
+
// @ts-ignore
|
|
247
|
+
[PropTypes.string]: PropTypes.number,
|
|
248
|
+
}),
|
|
249
|
+
]);
|
|
250
|
+
|
|
251
|
+
export const ItemOptionsType = PropTypes.arrayOf(
|
|
252
|
+
PropTypes.shape({
|
|
253
|
+
can_change_quantity: PropTypes.bool,
|
|
254
|
+
id: PropTypes.number,
|
|
255
|
+
is_default: PropTypes.bool,
|
|
256
|
+
label: PropTypes.string,
|
|
257
|
+
position: PropTypes.number,
|
|
258
|
+
price: PropTypes.number,
|
|
259
|
+
price_type: PropTypes.string,
|
|
260
|
+
quantity: QuantityType,
|
|
261
|
+
uid: PropTypes.string,
|
|
262
|
+
product: PropTypes.shape({
|
|
263
|
+
name: PropTypes.string,
|
|
264
|
+
stock_status: PropTypes.string,
|
|
265
|
+
price_range: PriceType,
|
|
266
|
+
}),
|
|
267
|
+
regularOptionPrice: PropTypes.number,
|
|
268
|
+
regularOptionPriceExclTax: PropTypes.number,
|
|
269
|
+
finalOptionPrice: PropTypes.number,
|
|
270
|
+
finalOptionPriceExclTax: PropTypes.number,
|
|
271
|
+
}),
|
|
272
|
+
);
|
|
273
|
+
|
|
274
|
+
export const ProductItemsType = PropTypes.arrayOf(
|
|
275
|
+
PropTypes.shape({
|
|
276
|
+
option_id: PropTypes.number,
|
|
277
|
+
options: ItemOptionsType,
|
|
278
|
+
position: PropTypes.number,
|
|
279
|
+
required: PropTypes.bool,
|
|
280
|
+
sku: PropTypes.string,
|
|
281
|
+
title: PropTypes.string,
|
|
282
|
+
type: PropTypes.string,
|
|
283
|
+
}),
|
|
284
|
+
);
|
|
285
|
+
|
|
286
|
+
export const ProductType = PropTypes.shape({
|
|
287
|
+
canonical_url: PropTypes.string,
|
|
288
|
+
categories: CategoriesType,
|
|
289
|
+
description: DescriptionType,
|
|
290
|
+
media_gallery_entries: MediaType,
|
|
291
|
+
meta_description: PropTypes.string,
|
|
292
|
+
meta_keyword: PropTypes.string,
|
|
293
|
+
meta_title: MetaTitleType,
|
|
294
|
+
product_links: ProductLinksType,
|
|
295
|
+
special_price: PropTypes.number,
|
|
296
|
+
url_key: PropTypes.string,
|
|
297
|
+
quantity: PropTypes.number,
|
|
298
|
+
items: ProductItemsType,
|
|
299
|
+
reviews: ReviewsType,
|
|
300
|
+
...ItemShape,
|
|
301
|
+
});
|
|
302
|
+
|
|
303
|
+
export const DownloadableSamplesType = PropTypes.arrayOf(
|
|
304
|
+
PropTypes.shape({
|
|
305
|
+
sample_url: PropTypes.oneOfType([ProductType, PropTypes.string]),
|
|
306
|
+
sort_order: PropTypes.number,
|
|
307
|
+
title: PropTypes.string,
|
|
308
|
+
}),
|
|
309
|
+
);
|
|
310
|
+
|
|
311
|
+
export const PriceConfiguration = PropTypes.shape({
|
|
312
|
+
containsOptions: PropTypes.bool,
|
|
313
|
+
containsOptionsWithPrice: PropTypes.bool,
|
|
314
|
+
containsRequiredOptions: PropTypes.bool,
|
|
315
|
+
containsRequiredOptionsWithPrice: PropTypes.bool,
|
|
316
|
+
});
|
|
317
|
+
|
|
318
|
+
export const MagentoProductType = PropTypes.shape({
|
|
319
|
+
entered_options: PropTypes.arrayOf(PropTypes.shape({
|
|
320
|
+
uid: PropTypes.string,
|
|
321
|
+
value: PropTypes.string,
|
|
322
|
+
})),
|
|
323
|
+
quantity: QuantityType,
|
|
324
|
+
selected_options: PropTypes.arrayOf(PropTypes.string),
|
|
325
|
+
sku: PropTypes.string,
|
|
326
|
+
});
|
|
327
|
+
|
|
328
|
+
export const ProductCardPropsType = PropTypes.shape({
|
|
329
|
+
siblingsHaveBrands: PropTypes.bool,
|
|
330
|
+
siblingsHavePriceBadge: PropTypes.bool,
|
|
331
|
+
siblingsHaveTierPrice: PropTypes.bool,
|
|
332
|
+
siblingsHaveConfigurableOptions: PropTypes.bool,
|
|
333
|
+
});
|
|
334
|
+
|
|
335
|
+
export const OptionsListType = PropTypes.arrayOf(
|
|
336
|
+
PropTypes.shape({
|
|
337
|
+
value: CustomizableOptionsType,
|
|
338
|
+
title: PropTypes.string,
|
|
339
|
+
required: PropTypes.bool,
|
|
340
|
+
sort_order: PropTypes.number,
|
|
341
|
+
type: PropTypes.string,
|
|
342
|
+
uid: PropTypes.string,
|
|
343
|
+
}),
|
|
344
|
+
);
|
|
345
|
+
|
|
346
|
+
export const LinkedProductsType = PropTypes.objectOf(
|
|
347
|
+
PropTypes.shape({
|
|
348
|
+
items: PropTypes.arrayOf(ProductType),
|
|
349
|
+
total_count: PropTypes.number,
|
|
350
|
+
}),
|
|
351
|
+
);
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* M Framework - Flexible backend agnostic framework.
|
|
3
|
+
*
|
|
4
|
+
* Copyright © Meeovi, LTD. All rights reserved.
|
|
5
|
+
* See LICENSE for license details.
|
|
6
|
+
*
|
|
7
|
+
* @license OSL-3.0 (Open Software License ("OSL") v. 3.0)
|
|
8
|
+
* @package mframework/mframework
|
|
9
|
+
* @link https://github.com/meeovi/mframework
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
import PropTypes from 'prop-types';
|
|
13
|
+
|
|
14
|
+
// Support for comtabilitiy
|
|
15
|
+
|
|
16
|
+
export const RatingOptionItemType = PropTypes.shape({
|
|
17
|
+
option_id: PropTypes.string,
|
|
18
|
+
value: PropTypes.string,
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
export const RatingItemsType = PropTypes.arrayOf(
|
|
22
|
+
PropTypes.shape({
|
|
23
|
+
rating_id: PropTypes.string,
|
|
24
|
+
rating_code: PropTypes.string,
|
|
25
|
+
rating_options: PropTypes.arrayOf(RatingOptionItemType),
|
|
26
|
+
}),
|
|
27
|
+
);
|
|
28
|
+
|
|
29
|
+
export const VoteType = PropTypes.shape({
|
|
30
|
+
rating_code: PropTypes.string,
|
|
31
|
+
value: PropTypes.string,
|
|
32
|
+
percent: PropTypes.number,
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
export const ReviewItemType = PropTypes.shape({
|
|
36
|
+
average_rating: PropTypes.number,
|
|
37
|
+
nickname: PropTypes.string,
|
|
38
|
+
title: PropTypes.string,
|
|
39
|
+
detail: PropTypes.string,
|
|
40
|
+
created_at: PropTypes.string,
|
|
41
|
+
rating_votes: PropTypes.arrayOf(VoteType),
|
|
42
|
+
});
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
export type LinkType = string;
|
|
2
|
+
export type LocationType = string;
|
|
3
|
+
export type UrlRewriteType = string;
|
|
4
|
+
// Runtime PropTypes are defined below; keep file as a module for compatibility
|
|
5
|
+
/**
|
|
6
|
+
* M Framework - Flexible backend agnostic framework.
|
|
7
|
+
*
|
|
8
|
+
* Copyright © Meeovi, LTD. All rights reserved.
|
|
9
|
+
* See LICENSE for license details.
|
|
10
|
+
*
|
|
11
|
+
* @license OSL-3.0 (Open Software License ("OSL") v. 3.0)
|
|
12
|
+
* @package mframework/mframework
|
|
13
|
+
* @link https://github.com/meeovi/mframework
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
import PropTypes from 'prop-types';
|
|
17
|
+
|
|
18
|
+
// Support for comtabilitiy
|
|
19
|
+
|
|
20
|
+
export const LocationType = PropTypes.shape({
|
|
21
|
+
pathname: PropTypes.string,
|
|
22
|
+
search: PropTypes.string,
|
|
23
|
+
// eslint-disable-next-line react/forbid-prop-types
|
|
24
|
+
state: PropTypes.object,
|
|
25
|
+
hash: PropTypes.string,
|
|
26
|
+
key: PropTypes.string,
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
export const HistoryType = PropTypes.shape({
|
|
30
|
+
length: PropTypes.number,
|
|
31
|
+
action: PropTypes.string,
|
|
32
|
+
location: LocationType,
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
export const MatchType = PropTypes.shape({
|
|
36
|
+
path: PropTypes.string,
|
|
37
|
+
url: PropTypes.string,
|
|
38
|
+
// eslint-disable-next-line react/forbid-prop-types
|
|
39
|
+
params: PropTypes.object,
|
|
40
|
+
isExact: PropTypes.bool,
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
export const UrlRewriteType = PropTypes.shape({
|
|
44
|
+
id: PropTypes.number,
|
|
45
|
+
type: PropTypes.string,
|
|
46
|
+
sku: PropTypes.string,
|
|
47
|
+
notFound: PropTypes.bool,
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
export const LinkType = PropTypes.oneOfType([
|
|
51
|
+
PropTypes.string,
|
|
52
|
+
PropTypes.shape({
|
|
53
|
+
pathname: PropTypes.string,
|
|
54
|
+
}),
|
|
55
|
+
]);
|
|
56
|
+
|
|
57
|
+
export const NavigationStateType = PropTypes.shape(
|
|
58
|
+
{
|
|
59
|
+
name: PropTypes.string.isRequired,
|
|
60
|
+
title: PropTypes.string,
|
|
61
|
+
},
|
|
62
|
+
);
|
|
63
|
+
|
|
64
|
+
export const NavigationStateHistoryType = PropTypes.shape({
|
|
65
|
+
navigationStateHistory: PropTypes.arrayOf(NavigationStateType),
|
|
66
|
+
navigationState: NavigationStateType,
|
|
67
|
+
});
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* M Framework - Flexible backend agnostic framework.
|
|
3
|
+
*
|
|
4
|
+
* Copyright © Meeovi, LTD. All rights reserved.
|
|
5
|
+
* See LICENSE for license details.
|
|
6
|
+
*
|
|
7
|
+
* @license OSL-3.0 (Open Software License ("OSL") v. 3.0)
|
|
8
|
+
* @package mframework/mframework
|
|
9
|
+
* @link https://github.com/meeovi/mframework
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
import PropTypes from 'prop-types';
|
|
13
|
+
|
|
14
|
+
// Support for comtabilitiy
|
|
15
|
+
|
|
16
|
+
export const SlideType = PropTypes.shape({
|
|
17
|
+
slide_id: PropTypes.string,
|
|
18
|
+
image: PropTypes.string,
|
|
19
|
+
slide_text: PropTypes.string,
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
export const SliderType = PropTypes.shape({
|
|
23
|
+
slider_id: PropTypes.string,
|
|
24
|
+
slides: PropTypes.arrayOf(SlideType),
|
|
25
|
+
});
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export type StockStatusType = string;
|
|
2
|
+
// Keep runtime PropTypes implementation below; avoid duplicate TS declarations
|
|
3
|
+
/**
|
|
4
|
+
* M Framework - Flexible backend agnostic framework.
|
|
5
|
+
*
|
|
6
|
+
* Copyright © Meeovi, LTD. All rights reserved.
|
|
7
|
+
* See LICENSE for license details.
|
|
8
|
+
*
|
|
9
|
+
* @license OSL-3.0 (Open Software License ("OSL") v. 3.0)
|
|
10
|
+
* @package mframework/mframework
|
|
11
|
+
* @link https://github.com/meeovi/mframework
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
import PropTypes from 'prop-types';
|
|
15
|
+
|
|
16
|
+
import { StockStatus } from 'Component/Product/Stock.config';
|
|
17
|
+
|
|
18
|
+
// Support for comtabilitiy
|
|
19
|
+
|
|
20
|
+
// eslint-disable-next-line import/prefer-default-export
|
|
21
|
+
export const StockStatusType = PropTypes.oneOf(Object.values(StockStatus));
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
export type Price = {
|
|
2
|
+
value: number
|
|
3
|
+
currency?: string
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
export type Image = {
|
|
7
|
+
url: string
|
|
8
|
+
alt?: string
|
|
9
|
+
width?: number
|
|
10
|
+
height?: number
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export interface Product {
|
|
14
|
+
id: string
|
|
15
|
+
sku?: string
|
|
16
|
+
title: string
|
|
17
|
+
description?: string
|
|
18
|
+
price: number | Price
|
|
19
|
+
images?: Image[]
|
|
20
|
+
variants?: any[]
|
|
21
|
+
attributes?: Record<string, any>
|
|
22
|
+
[key: string]: any
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export interface CartItem {
|
|
26
|
+
id: string
|
|
27
|
+
sku?: string
|
|
28
|
+
quantity: number
|
|
29
|
+
product?: Product
|
|
30
|
+
[key: string]: any
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export interface Cart {
|
|
34
|
+
id: string
|
|
35
|
+
email?: string
|
|
36
|
+
items: CartItem[]
|
|
37
|
+
total_quantity?: number
|
|
38
|
+
prices?: Record<string, any>
|
|
39
|
+
raw?: any
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export interface Order {
|
|
43
|
+
id: string
|
|
44
|
+
number?: string
|
|
45
|
+
items?: CartItem[]
|
|
46
|
+
total?: Price | number
|
|
47
|
+
status?: string
|
|
48
|
+
created_at?: string
|
|
49
|
+
raw?: any
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export interface Customer {
|
|
53
|
+
id: string
|
|
54
|
+
email?: string
|
|
55
|
+
firstName?: string
|
|
56
|
+
lastName?: string
|
|
57
|
+
[key: string]: any
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export interface GiftCard {
|
|
61
|
+
code: string
|
|
62
|
+
balance?: Price | number
|
|
63
|
+
currency?: string
|
|
64
|
+
raw?: any
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
export interface Subscription {
|
|
68
|
+
id: string
|
|
69
|
+
productId?: string
|
|
70
|
+
status?: string
|
|
71
|
+
schedule?: any
|
|
72
|
+
raw?: any
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
export interface PaymentIntent {
|
|
76
|
+
id: string
|
|
77
|
+
status?: string
|
|
78
|
+
amount?: Price | number
|
|
79
|
+
currency?: string
|
|
80
|
+
method?: string
|
|
81
|
+
raw?: any
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
export interface Review {
|
|
85
|
+
id: string
|
|
86
|
+
title?: string
|
|
87
|
+
detail?: string
|
|
88
|
+
rating?: number
|
|
89
|
+
created_at?: string
|
|
90
|
+
author?: string
|
|
91
|
+
raw?: any
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
// Minimal JSX namespace for legacy React/JSX type references used in the
|
|
2
|
+
// commerce layer's migrated code. Kept permissive to avoid introducing
|
|
3
|
+
// runtime changes; this only provides compile-time types.
|
|
4
|
+
declare global {
|
|
5
|
+
namespace JSX {
|
|
6
|
+
interface Element {}
|
|
7
|
+
interface IntrinsicElements { [elemName: string]: any }
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
import { sdk } from '@mframework/sdk'
|
|
12
|
+
|
|
13
|
+
export function createClient(provider?: string, config?: any) {
|
|
14
|
+
// Prefer provider-specific client creation if available on the SDK.
|
|
15
|
+
// Fall back to the SDK's commerce client.
|
|
16
|
+
try {
|
|
17
|
+
// some adapters expose a createClient/init API — delegate when present
|
|
18
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
19
|
+
const anySdk: any = sdk
|
|
20
|
+
if (typeof anySdk.createClient === 'function') return anySdk.createClient(provider, config)
|
|
21
|
+
if (typeof anySdk.init === 'function') return anySdk.init(config)
|
|
22
|
+
} catch (e) {
|
|
23
|
+
// swallow and fallback
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
return sdk.commerce
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export function init(config?: any) {
|
|
30
|
+
return createClient(undefined, config)
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export default { createClient, init }
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
declare module 'prop-types' {
|
|
2
|
+
const PropTypes: any;
|
|
3
|
+
export default PropTypes;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
declare module 'Component/*' {
|
|
7
|
+
export type ProductType = any;
|
|
8
|
+
export const ProductType: any;
|
|
9
|
+
export type FieldType = any;
|
|
10
|
+
export const FieldType: any;
|
|
11
|
+
export type StockStatus = any;
|
|
12
|
+
export const StockStatus: any;
|
|
13
|
+
export type ImageType = any;
|
|
14
|
+
export const ImageType: any;
|
|
15
|
+
export const REVIEW_POPUP_ID: any;
|
|
16
|
+
export const NONE_RADIO_OPTION: any;
|
|
17
|
+
export const DATE_FIELDS_COUNT: any;
|
|
18
|
+
export type FieldDateType = any;
|
|
19
|
+
export const FieldDateType: any;
|
|
20
|
+
export const TimeFormat: any;
|
|
21
|
+
export type FormFields = any;
|
|
22
|
+
export const FormFields: any;
|
|
23
|
+
export type DateFieldAttr = any;
|
|
24
|
+
export const DateFieldAttr: any;
|
|
25
|
+
export const HourFormat: any;
|
|
26
|
+
export type Directions = any;
|
|
27
|
+
export const Directions: any;
|
|
28
|
+
const whatever: any;
|
|
29
|
+
export default whatever;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
declare module 'Component/*/*' {
|
|
33
|
+
const whatever: any;
|
|
34
|
+
export = whatever;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
declare module 'Component/*/*/*' {
|
|
38
|
+
const whatever: any;
|
|
39
|
+
export = whatever;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
declare module 'Component/Product/Product.config' {
|
|
43
|
+
export const ProductType: any;
|
|
44
|
+
const cfg: any;
|
|
45
|
+
export default cfg;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
declare module 'Component/Field/Field.config' {
|
|
49
|
+
export const FieldType: any;
|
|
50
|
+
const cfg: any;
|
|
51
|
+
export default cfg;
|
|
52
|
+
}
|