@evershop/evershop 1.1.0 → 1.2.0
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/bin/build/index.js +24 -0
- package/bin/extension/index.js +2 -2
- package/bin/lib/addDefaultMiddlewareFuncs.js +7 -2
- package/bin/lib/buildEntry.js +15 -0
- package/bin/lib/onListening.js +7 -4
- package/bin/lib/startUp.js +6 -0
- package/package.json +9 -1
- package/src/components/admin/catalog/productEdit/category/CategoryItem.jsx +2 -7
- package/src/components/admin/catalog/productEdit/category/CategoryTree.jsx +14 -7
- package/src/components/admin/catalog/productEdit/category/CategoryTree.scss +10 -0
- package/src/components/admin/catalog/productEdit/variants/CreateVariant.jsx +2 -2
- package/src/components/admin/catalog/productEdit/variants/CreateVariantGroup.jsx +1 -1
- package/src/components/admin/catalog/productEdit/variants/EditVariant.jsx +1 -1
- package/src/components/admin/catalog/productEdit/variants/New.jsx +2 -2
- package/src/components/admin/catalog/productEdit/variants/Search.jsx +1 -1
- package/src/components/admin/catalog/productEdit/variants/SearchModal.jsx +1 -1
- package/src/components/admin/catalog/productEdit/variants/VariantModal.jsx +6 -6
- package/src/components/admin/catalog/productGrid/rows/ThumbnailRow.jsx +1 -1
- package/src/components/admin/checkout/shippingSetting/Method.jsx +6 -6
- package/src/components/admin/checkout/shippingSetting/MethodForm.jsx +4 -4
- package/src/components/admin/checkout/shippingSetting/Methods.jsx +3 -3
- package/src/components/admin/checkout/shippingSetting/PriceBasedPrice.jsx +2 -2
- package/src/components/admin/checkout/shippingSetting/WeightBasedPrice.jsx +2 -2
- package/src/components/admin/checkout/shippingSetting/Zone.jsx +7 -7
- package/src/components/admin/checkout/shippingSetting/ZoneForm.jsx +1 -1
- package/src/components/admin/cms/Card.jsx +3 -3
- package/src/components/admin/cms/PageHeading.jsx +3 -3
- package/src/components/admin/cms/widget/WidgetTypes.jsx +28 -0
- package/src/components/admin/cms/widget/grid/WidgetTypeRow.jsx +29 -0
- package/src/components/admin/oms/orderEdit/items/ItemVariantOptions.jsx +1 -1
- package/src/components/admin/oms/orderEdit/items/Name.jsx +1 -1
- package/src/components/admin/oms/orderGrid/headers/OrderDateColumnHeader.jsx +1 -1
- package/src/components/admin/promotion/couponEdit/AttributeGroupSelector.jsx +3 -3
- package/src/components/admin/promotion/couponEdit/BuyXGetY.jsx +2 -2
- package/src/components/admin/promotion/couponEdit/CategorySelector.jsx +6 -6
- package/src/components/admin/promotion/couponEdit/CollectionSelector.jsx +3 -3
- package/src/components/admin/promotion/couponEdit/ProductSkuSelector.jsx +4 -4
- package/src/components/admin/promotion/couponEdit/RequireProducts.jsx +2 -2
- package/src/components/admin/promotion/couponEdit/Setting.jsx +1 -1
- package/src/components/admin/promotion/couponEdit/TargetProducts.jsx +4 -4
- package/src/components/admin/tax/taxSetting/Rate.jsx +6 -6
- package/src/components/admin/tax/taxSetting/RateForm.jsx +5 -5
- package/src/components/admin/tax/taxSetting/Rates.jsx +6 -6
- package/src/components/admin/tax/taxSetting/TaxClass.jsx +3 -3
- package/src/components/admin/tax/taxSetting/TaxClassForm.jsx +1 -1
- package/src/components/admin/widgets/BasicMenuSetting.jsx +614 -0
- package/src/components/admin/widgets/BasicMenuSetting.scss +19 -0
- package/src/components/admin/widgets/CollectionProductsSetting.jsx +203 -0
- package/src/components/admin/widgets/TextBlockSetting.jsx +70 -0
- package/src/components/common/Area.jsx +31 -8
- package/src/components/common/Badge.jsx +1 -1
- package/src/components/common/Editor.jsx +191 -0
- package/src/components/common/Notification.scss +1 -0
- package/src/components/common/SimplePagination.jsx +2 -2
- package/src/components/common/form/Form.jsx +1 -1
- package/src/components/common/form/fields/Checkbox.jsx +1 -1
- package/src/components/common/form/fields/Ckeditor.jsx +11 -11
- package/src/components/common/form/fields/Editor.jsx +326 -0
- package/src/components/common/form/fields/Editor.scss +29 -0
- package/src/components/common/form/fields/Radio.jsx +1 -1
- package/src/components/common/form/fields/editor/FileBrowser.jsx +419 -0
- package/src/components/common/form/fields/editor/FileBrowser.scss +37 -0
- package/src/components/common/form/fields/editor/GetColumnClasses.jsx +14 -0
- package/src/components/common/form/fields/editor/GetRowClasses.jsx +18 -0
- package/src/components/common/form/fields/editor/RowTemplates.jsx +154 -0
- package/src/components/common/grid/Pagination.jsx +4 -4
- package/src/components/common/grid/headers/FromTo.jsx +1 -1
- package/src/components/common/grid/headers/Sortable.jsx +1 -1
- package/src/components/common/grid/rows/ThumbnailRow.jsx +1 -1
- package/src/components/common/list/Filter.jsx +1 -1
- package/src/components/common/modal/Alert.jsx +1 -1
- package/src/components/common/modal/Modal.jsx +1 -1
- package/src/components/frontStore/catalog/categoryView/filter/AttributeFilter.jsx +2 -2
- package/src/components/frontStore/catalog/categoryView/filter/CategoryFilter.jsx +3 -2
- package/src/components/frontStore/catalog/categoryView/filter/CategoryFilter.scss +5 -0
- package/src/components/frontStore/catalog/product/list/List.jsx +4 -4
- package/src/components/frontStore/catalog/product/list/Pagination.jsx +1 -1
- package/src/components/frontStore/catalog/product/list/Sorting.jsx +2 -2
- package/src/components/frontStore/catalog/product/list/item/Name.jsx +1 -1
- package/src/components/frontStore/checkout/cart/Empty.jsx +3 -3
- package/src/components/frontStore/checkout/cart/items/ItemOptions.jsx +1 -1
- package/src/components/frontStore/checkout/cart/items/ItemVariantOptions.jsx +1 -1
- package/src/components/frontStore/checkout/cart/items/Items.jsx +20 -21
- package/src/components/frontStore/checkout/cart/items/Items.scss +47 -0
- package/src/components/frontStore/checkout/cart/items/Quantity.jsx +154 -0
- package/src/components/frontStore/checkout/checkout/StepTitle.jsx +1 -1
- package/src/components/frontStore/checkout/checkout/payment/paymentStep/StepContent.jsx +5 -5
- package/src/components/frontStore/checkout/checkout/shipment/StepContent.jsx +1 -1
- package/src/components/frontStore/checkout/checkout/summary/Cart.jsx +10 -12
- package/src/components/frontStore/checkout/checkout/summary/Items.jsx +9 -9
- package/src/components/frontStore/checkout/checkout/summary/cart/Total.jsx +6 -6
- package/src/components/frontStore/checkout/success/summary/items/ItemOptions.jsx +1 -1
- package/src/components/frontStore/checkout/success/summary/items/Items.jsx +9 -6
- package/src/components/frontStore/checkout/success/summary/order/OrderSummary.jsx +9 -13
- package/src/components/frontStore/checkout/success/summary/order/Total.jsx +5 -5
- package/src/components/frontStore/customer/address/addressForm/AddressFormLoadingSkeleton.jsx +2 -2
- package/src/components/frontStore/customer/address/addressForm/NameAndTelephone.jsx +1 -1
- package/src/components/frontStore/customer/address/addressForm/ProvinceAndPostcode.jsx +1 -1
- package/src/components/frontStore/customer/checkout/Edit.jsx +2 -2
- package/src/components/frontStore/customer/detail/Order.jsx +4 -4
- package/src/components/frontStore/stripe/checkout/CheckoutForm.jsx +2 -2
- package/src/components/frontStore/stripe/checkout/TestCards.jsx +1 -1
- package/src/components/frontStore/widgets/BasicMenu.jsx +129 -0
- package/src/{modules/catalog/pages/frontStore/homepage/FeaturedProducts.jsx → components/frontStore/widgets/CollectionProducts.jsx} +40 -32
- package/src/components/frontStore/widgets/TextBlock.jsx +46 -0
- package/src/lib/componee/getComponentsByRoute.js +15 -2
- package/src/lib/event/event-manager.js +1 -1
- package/src/lib/middleware/tests/app/modules/404page/pages/frontStore/product/route.json +2 -1
- package/src/lib/middlewares/static.js +3 -1
- package/src/lib/response/render.js +5 -6
- package/src/lib/router/Router.js +1 -1
- package/src/lib/router/loadModuleRoutes.js +3 -0
- package/src/lib/router/registerAdminRoute.js +9 -1
- package/src/lib/router/registerFrontStoreRoute.js +2 -0
- package/src/lib/router/scanForRoutes.js +1 -0
- package/src/lib/router/tests/unit/unit.validateRoute.test.js +7 -1
- package/src/lib/util/defaultPaginationFilters.js +19 -17
- package/src/lib/util/getEnabledWidgets.js +28 -0
- package/src/lib/util/merge.js +67 -14
- package/src/lib/util/tests/unit/util.merge.test.js +21 -4
- package/src/lib/util/validateConfiguration.js +83 -0
- package/src/lib/webpack/createBaseConfig.js +4 -1
- package/src/lib/webpack/dev/createConfigClient.js +10 -2
- package/src/lib/webpack/loaders/AreaLoader.js +14 -3
- package/src/lib/webpack/util/parseGraphql.js +29 -16
- package/src/lib/webpack/util/parseGraphqlByFile.js +16 -2
- package/src/modules/auth/pages/admin/adminLogin/LoginForm.jsx +54 -21
- package/src/modules/auth/pages/admin/all/AdminUser.jsx +3 -3
- package/src/modules/base/bootstrap.js +79 -0
- package/src/modules/base/graphql/types/Route/Route.admin.graphql +15 -0
- package/src/modules/base/graphql/types/Route/Route.admin.resolvers.js +10 -0
- package/src/modules/base/pages/global/response[errorHandler].js +23 -0
- package/src/modules/catalog/bootstrap.js +125 -5
- package/src/modules/catalog/graphql/types/Category/Category.graphql +4 -3
- package/src/modules/catalog/graphql/types/Category/Category.resolvers.js +34 -0
- package/src/modules/catalog/graphql/types/Collection/Collection.graphql +2 -2
- package/src/modules/catalog/graphql/types/Collection/Collection.resolvers.js +34 -0
- package/src/modules/catalog/graphql/types/Product/Attribute/ProductAttribute.resolvers.js +1 -0
- package/src/modules/catalog/graphql/types/Product/Product.graphql +1 -1
- package/src/modules/catalog/graphql/types/Product/Product.resolvers.js +34 -0
- package/src/modules/catalog/graphql/types/Widget/CollectionProductsWidget/CollectionProductsWidget.graphql +11 -0
- package/src/modules/catalog/graphql/types/Widget/CollectionProductsWidget/CollectionProductsWidget.resolvers.js +8 -0
- package/src/modules/catalog/migration/Version-1.0.0.js +1 -0
- package/src/modules/catalog/migration/Version-1.0.7.js +10 -0
- package/src/modules/catalog/pages/admin/attributeEdit+attributeNew/FormContent.jsx +4 -4
- package/src/modules/catalog/pages/admin/attributeEdit+attributeNew/General.jsx +5 -5
- package/src/modules/catalog/pages/admin/attributeGrid/Grid.jsx +2 -2
- package/src/modules/catalog/pages/admin/categoryEdit/Products.jsx +4 -4
- package/src/modules/catalog/pages/admin/categoryEdit+categoryNew/FormContent.jsx +4 -4
- package/src/modules/catalog/pages/admin/categoryEdit+categoryNew/General.jsx +16 -18
- package/src/modules/catalog/pages/admin/categoryEdit+categoryNew/Image.jsx +1 -2
- package/src/modules/catalog/pages/admin/categoryEdit+categoryNew/Status.jsx +16 -1
- package/src/modules/catalog/pages/admin/categoryGrid/Grid.jsx +3 -3
- package/src/modules/catalog/pages/admin/collectionEdit/Products.jsx +4 -4
- package/src/modules/catalog/pages/admin/collectionEdit+collectionNew/FormContent.jsx +2 -2
- package/src/modules/catalog/pages/admin/collectionEdit+collectionNew/General.jsx +2 -2
- package/src/modules/catalog/pages/admin/collectionGrid/Grid.jsx +3 -3
- package/src/modules/catalog/pages/admin/productEdit/Collection.jsx +7 -7
- package/src/modules/catalog/pages/admin/productEdit+productNew/Attributes.jsx +1 -1
- package/src/modules/catalog/pages/admin/productEdit+productNew/CustomOptions.jsss +4 -4
- package/src/modules/catalog/pages/admin/productEdit+productNew/FormContent.jsx +4 -4
- package/src/modules/catalog/pages/admin/productEdit+productNew/General.jsx +15 -17
- package/src/modules/catalog/pages/admin/productGrid/Grid.jsx +3 -3
- package/src/modules/catalog/pages/frontStore/catalogSearch/General.jsx +2 -2
- package/src/modules/catalog/pages/frontStore/catalogSearch/Products.jsx +1 -1
- package/src/modules/catalog/pages/frontStore/catalogSearch/route.json +2 -1
- package/src/modules/catalog/pages/frontStore/categoryView/CategoryView.jsx +19 -2
- package/src/modules/catalog/pages/frontStore/categoryView/Filter.scss +1 -0
- package/src/modules/catalog/pages/frontStore/categoryView/General.jsx +6 -8
- package/src/modules/catalog/pages/frontStore/categoryView/General.scss +0 -2
- package/src/modules/catalog/pages/frontStore/categoryView/Pagination.jsx +6 -0
- package/src/modules/catalog/pages/frontStore/categoryView/Products.jsx +8 -1
- package/src/modules/catalog/pages/frontStore/categoryView/route.json +2 -1
- package/src/modules/catalog/pages/frontStore/productView/Description.jsx +3 -3
- package/src/modules/catalog/pages/frontStore/productView/Form.jsx +4 -4
- package/src/modules/catalog/pages/frontStore/productView/Form.scss +1 -0
- package/src/modules/catalog/pages/frontStore/productView/GeneralInfo.jsx +1 -1
- package/src/modules/catalog/pages/frontStore/productView/Images.jsx +1 -1
- package/src/modules/catalog/pages/frontStore/productView/Layout.jsx +1 -1
- package/src/modules/catalog/pages/frontStore/productView/Options.jsx +2 -2
- package/src/modules/catalog/pages/frontStore/productView/Variants.jsx +4 -4
- package/src/modules/catalog/pages/frontStore/productView/route.json +2 -1
- package/src/modules/catalog/services/AttributeCollection.js +10 -10
- package/src/modules/catalog/services/AttributeGroupCollection.js +10 -10
- package/src/modules/catalog/services/CategoryCollection.js +10 -10
- package/src/modules/catalog/services/CollectionCollection.js +10 -10
- package/src/modules/catalog/services/registerCartItemProductUrlField.js +35 -0
- package/src/modules/catalog/services/registerCartItemVariantOptionsField.js +51 -0
- package/src/modules/catalog/services/registerDefaultCategoryCollectionFilters.js +16 -0
- package/src/modules/checkout/api/addShippingNote/[context]bodyParser[auth].js +5 -0
- package/src/modules/checkout/api/addShippingNote/payloadSchema.json +15 -0
- package/src/modules/checkout/api/addShippingNote/route.json +5 -0
- package/src/modules/checkout/api/addShippingNote/saveShippingNote.js +50 -0
- package/src/modules/checkout/api/createCart/createNewCart.js +28 -1
- package/src/modules/checkout/api/updateCartItemQty/[bodyParser]updateQty.js +49 -0
- package/src/modules/checkout/api/updateCartItemQty/[context]bodyParser[auth].js +5 -0
- package/src/modules/checkout/api/updateCartItemQty/payloadSchema.json +21 -0
- package/src/modules/checkout/api/updateCartItemQty/route.json +5 -0
- package/src/modules/checkout/api/updateMineCartItemQty/[context]bodyParser[auth].js +5 -0
- package/src/modules/checkout/api/updateMineCartItemQty/[detectCurrentCart]updateQty.js +51 -0
- package/src/modules/checkout/api/updateMineCartItemQty/[getCurrentCustomer]detectCurrentCart.js +32 -0
- package/src/modules/checkout/api/updateMineCartItemQty/payloadSchema.json +21 -0
- package/src/modules/checkout/api/updateMineCartItemQty/route.json +5 -0
- package/src/modules/checkout/bootstrap.js +27 -0
- package/src/modules/checkout/graphql/types/Cart/Cart.graphql +22 -3
- package/src/modules/checkout/graphql/types/Cart/Cart.resolvers.js +18 -2
- package/src/modules/checkout/graphql/types/CheckoutSetting/CheckoutSetting.graphql +3 -0
- package/src/modules/checkout/graphql/types/CheckoutSetting/CheckoutSetting.resolvers.js +7 -0
- package/src/modules/checkout/migration/Version-1.0.0.js +14 -0
- package/src/modules/checkout/migration/Version-1.0.6.js +201 -0
- package/src/modules/checkout/pages/admin/shippingSetting/ShippingSetting.jsx +2 -2
- package/src/modules/checkout/pages/frontStore/all/[context]detectCurrentCart[auth].js +5 -0
- package/src/modules/checkout/pages/frontStore/cart/ShoppingCart.jsx +17 -8
- package/src/modules/checkout/pages/frontStore/cart/Summary.jsx +18 -19
- package/src/modules/checkout/pages/frontStore/cart/route.json +2 -1
- package/src/modules/checkout/pages/frontStore/checkout/Checkout.jsx +5 -5
- package/src/modules/checkout/pages/frontStore/checkout/Checkout.scss +4 -0
- package/src/modules/checkout/pages/frontStore/checkout/ShippingMethods.jsx +2 -2
- package/src/modules/checkout/pages/frontStore/checkout/ShippingNote.jsx +105 -0
- package/src/modules/checkout/pages/frontStore/checkout/Summary.jsx +14 -14
- package/src/modules/checkout/pages/frontStore/checkout/SummaryMobile.jsx +12 -15
- package/src/modules/checkout/pages/frontStore/checkout/route.json +2 -1
- package/src/modules/checkout/pages/frontStore/checkoutSuccess/CheckoutSuccess.jsx +1 -1
- package/src/modules/checkout/pages/frontStore/checkoutSuccess/CheckoutSuccess.scss +4 -0
- package/src/modules/checkout/pages/frontStore/checkoutSuccess/CustomerInfo.jsx +30 -32
- package/src/modules/checkout/pages/frontStore/checkoutSuccess/ShippingNote.jsx +47 -0
- package/src/modules/checkout/pages/frontStore/checkoutSuccess/Summary.jsx +12 -15
- package/src/modules/checkout/pages/frontStore/checkoutSuccess/route.json +2 -1
- package/src/modules/checkout/services/cart/Cart.js +31 -27
- package/src/modules/checkout/services/cart/registerCartBaseFields.js +133 -41
- package/src/modules/checkout/services/cart/registerCartItemBaseFields.js +300 -374
- package/src/modules/checkout/services/toPrice.js +1 -1
- package/src/modules/checkout/tests/basicSetup.js +85 -0
- package/src/modules/checkout/tests/coupons.js +82 -0
- package/src/modules/checkout/tests/products.js +67 -0
- package/src/modules/checkout/tests/taxRates.js +3 -0
- package/src/modules/checkout/tests/unit/discountAmount.test.js +60 -0
- package/src/modules/checkout/tests/unit/grandTotal.test.js +83 -0
- package/src/modules/checkout/tests/unit/lineTotal.test.js +90 -0
- package/src/modules/checkout/tests/unit/lineTotalWithDiscount.test.js +103 -0
- package/src/modules/checkout/tests/unit/productPrice.test.js +67 -0
- package/src/modules/checkout/tests/unit/subTotal.test.js +85 -0
- package/src/modules/checkout/tests/unit/subTotalWithDiscount.test.js +117 -0
- package/src/modules/checkout/tests/unit/taxAmount.test.js +67 -0
- package/src/modules/checkout/tests/unit/taxAmountRounding.test.js +277 -0
- package/src/modules/cms/api/createWidget/[context]bodyParser[auth].js +5 -0
- package/src/modules/cms/api/createWidget/createWidget[finish].js +17 -0
- package/src/modules/cms/api/createWidget/finish[apiResponse].js +27 -0
- package/src/modules/cms/api/createWidget/payloadSchema.json +18 -0
- package/src/modules/cms/api/createWidget/route.json +5 -0
- package/src/modules/cms/api/deleteWidget/deleteWidget.js +27 -0
- package/src/modules/cms/api/deleteWidget/route.json +5 -0
- package/src/modules/cms/api/updateWidget/[context]bodyParser[auth].js +5 -0
- package/src/modules/cms/api/updateWidget/finish[apiResponse].js +27 -0
- package/src/modules/cms/api/updateWidget/payloadSchema.json +18 -0
- package/src/modules/cms/api/updateWidget/route.json +5 -0
- package/src/modules/cms/api/updateWidget/updateWidget[finish].js +17 -0
- package/src/modules/cms/bootstrap.js +223 -3
- package/src/modules/cms/graphql/types/CmsPage/CmsPage.graphql +1 -2
- package/src/modules/cms/graphql/types/CmsPage/CmsPage.resolvers.js +35 -1
- package/src/modules/cms/graphql/types/Widget/Widget.graphql +91 -0
- package/src/modules/cms/graphql/types/Widget/Widget.resolvers.js +142 -0
- package/src/modules/cms/migration/Version-1.1.0.js +22 -0
- package/src/modules/cms/migration/Version-1.1.1.js +103 -0
- package/src/modules/cms/pages/admin/adminNotFound/NotFound.jsx +4 -4
- package/src/modules/cms/pages/admin/all/CmsMenuGroup.jsx +12 -4
- package/src/modules/cms/pages/admin/all/Notification.scss +1 -1
- package/src/modules/cms/pages/admin/all/search/NoResult.jsx +2 -2
- package/src/modules/cms/pages/admin/all/search/Results.jsx +3 -3
- package/src/modules/cms/pages/admin/cmsPageEdit+cmsPageNew/FormContent.jsx +7 -9
- package/src/modules/cms/pages/admin/cmsPageEdit+cmsPageNew/General.jsx +3 -3
- package/src/modules/cms/pages/admin/cmsPageEdit+cmsPageNew/Seo.jsx +1 -1
- package/src/modules/cms/pages/admin/cmsPageEdit+cmsPageNew/Status.jsx +40 -0
- package/src/modules/cms/pages/admin/cmsPageGrid/Grid.jsx +3 -4
- package/src/modules/cms/pages/admin/dashboard/Layout.jsx +3 -3
- package/src/modules/cms/pages/admin/widgetEdit/WidgetForm.jsx +52 -0
- package/src/modules/cms/pages/admin/widgetEdit/index.js +36 -0
- package/src/modules/cms/pages/admin/widgetEdit/route.json +4 -0
- package/src/modules/cms/pages/admin/widgetEdit+widgetNew/FormContent.jsx +69 -0
- package/src/modules/cms/pages/admin/widgetEdit+widgetNew/FormContent.scss +7 -0
- package/src/modules/cms/pages/admin/widgetEdit+widgetNew/General.jsx +185 -0
- package/src/modules/cms/pages/admin/widgetEdit+widgetNew/PageHeading.jsx +37 -0
- package/src/modules/cms/pages/admin/widgetEdit+widgetNew/Setting.jsx +55 -0
- package/src/modules/cms/pages/admin/widgetGrid/Grid.jsx +415 -0
- package/src/modules/cms/pages/admin/widgetGrid/Heading.jsx +11 -0
- package/src/modules/cms/pages/admin/widgetGrid/NewWidgetButton.jsx +52 -0
- package/src/modules/cms/pages/admin/widgetGrid/index.js +15 -0
- package/src/modules/cms/pages/admin/widgetGrid/route.json +4 -0
- package/src/modules/cms/pages/admin/widgetNew/WidgetNewForm.jsx +60 -0
- package/src/modules/cms/pages/admin/widgetNew/index.js +11 -0
- package/src/modules/cms/pages/admin/widgetNew/route.json +4 -0
- package/src/modules/cms/pages/admin/widgetNew/typeValidate.js +21 -0
- package/src/modules/cms/pages/frontStore/all/Breadcrumb.jsx +1 -1
- package/src/modules/cms/pages/frontStore/all/Footer.jsx +2 -2
- package/src/modules/cms/pages/frontStore/all/Layout.jsx +3 -3
- package/src/modules/cms/pages/frontStore/all/Layout.scss +13 -0
- package/src/modules/cms/pages/frontStore/all/Logo.jsx +2 -2
- package/src/modules/cms/pages/frontStore/all/Logo.scss +2 -4
- package/src/modules/cms/pages/frontStore/all/Notification.scss +1 -1
- package/src/modules/cms/pages/frontStore/cmsPageView/Layout.jsx +2 -2
- package/src/modules/cms/pages/frontStore/cmsPageView/View.jsx +5 -3
- package/src/modules/cms/pages/frontStore/cmsPageView/index.js +6 -12
- package/src/modules/cms/pages/frontStore/cmsPageView/route.json +2 -1
- package/src/modules/cms/pages/frontStore/homepage/route.json +2 -1
- package/src/modules/cms/pages/frontStore/notFound/NotFound.jsx +4 -4
- package/src/modules/cms/pages/frontStore/notFound/route.json +2 -1
- package/src/modules/cms/pages/frontStore/staticAsset/[context]staticAssets[auth].js +1 -1
- package/src/modules/cms/services/CMSPageCollection.js +10 -10
- package/src/modules/cms/services/WidgetCollection.js +62 -0
- package/src/modules/cms/services/getWidgetsBaseQuery.js +7 -0
- package/src/modules/cms/services/page/createPage.js +1 -2
- package/src/modules/cms/services/page/pageDataSchema.json +0 -4
- package/src/modules/cms/services/registerDefaultWidgetCollectionFilters.js +62 -0
- package/src/modules/cms/services/tailwind.admin.config.js +22 -107
- package/src/modules/cms/services/tailwind.frontStore.config.js +23 -108
- package/src/modules/cms/services/widget/createWidget.js +73 -0
- package/src/modules/cms/services/widget/deleteWidget.js +49 -0
- package/src/modules/cms/services/widget/loadWidgetInstances.js +54 -0
- package/src/modules/cms/services/widget/updateWidget.js +86 -0
- package/src/modules/cms/services/widget/widgetDataSchema.json +29 -0
- package/src/modules/cod/pages/admin/paymentSetting/CODSetting.jsx +2 -2
- package/src/modules/cod/pages/frontStore/checkout/CashOnDelivery.jsx +1 -1
- package/src/modules/customer/bootstrap.js +21 -4
- package/src/modules/customer/pages/admin/customerEdit/CustomerEditForm.jsx +3 -3
- package/src/modules/customer/pages/admin/customerEdit+customerNew/OrderHistory.jsx +1 -1
- package/src/modules/customer/pages/admin/customerGrid/Grid.jsx +3 -3
- package/src/modules/customer/pages/frontStore/account/AccountDetails.jsx +3 -3
- package/src/modules/customer/pages/frontStore/account/Layout.jsx +3 -3
- package/src/modules/customer/pages/frontStore/account/OrderHistory.jsx +1 -1
- package/src/modules/customer/pages/frontStore/account/route.json +2 -1
- package/src/modules/customer/pages/frontStore/login/LoginForm.jsx +2 -2
- package/src/modules/customer/pages/frontStore/login/route.json +2 -1
- package/src/modules/customer/pages/frontStore/register/RegisterForm.jsx +2 -2
- package/src/modules/customer/pages/frontStore/register/route.json +2 -1
- package/src/modules/customer/pages/frontStore/resetPasswordPage/ResetPasswordForm.jsx +2 -2
- package/src/modules/customer/pages/frontStore/resetPasswordPage/route.json +2 -1
- package/src/modules/customer/pages/frontStore/updatePasswordPage/UpdatePasswordForm.jsx +3 -3
- package/src/modules/customer/pages/frontStore/updatePasswordPage/route.json +2 -1
- package/src/modules/customer/services/CustomerCollection.js +10 -10
- package/src/modules/customer/services/CustomerGroupCollection.js +10 -10
- package/src/modules/graphql/pages/global/[bodyParser]buildQuery[graphql].js +238 -6
- package/src/modules/graphql/pages/global/[buildQuery]graphql[notification].js +12 -8
- package/src/modules/oms/bootstrap.js +87 -3
- package/src/modules/oms/graphql/types/Order/Order.graphql +11 -2
- package/src/modules/oms/graphql/types/Order/Order.resolvers.js +7 -1
- package/src/modules/oms/pages/admin/dashboard/Bestsellers.jsx +2 -2
- package/src/modules/oms/pages/admin/dashboard/Lifetimesales.jsx +5 -5
- package/src/modules/oms/pages/admin/orderEdit/AddTrackingButton.jsx +1 -1
- package/src/modules/oms/pages/admin/orderEdit/Items.jsx +7 -7
- package/src/modules/oms/pages/admin/orderEdit/Layout.jsx +3 -3
- package/src/modules/oms/pages/admin/orderEdit/Payment.jsx +6 -6
- package/src/modules/oms/pages/admin/orderEdit/ShipButton.jsx +1 -1
- package/src/modules/oms/pages/admin/orderGrid/Grid.jsx +3 -3
- package/src/modules/oms/services/OrderCollection.js +10 -10
- package/src/modules/paypal/api/paypalCreateOrder/[bodyParser]createOrder.js +55 -24
- package/src/modules/paypal/pages/admin/paymentSetting/PaypalSetting.jsx +6 -6
- package/src/modules/paypal/pages/frontStore/checkout/Paypal.jsx +3 -4
- package/src/modules/promotion/bootstrap.js +19 -101
- package/src/modules/promotion/pages/admin/couponEdit+couponNew/DiscountType.jsx +1 -1
- package/src/modules/promotion/pages/admin/couponEdit+couponNew/FormContent.jsx +5 -5
- package/src/modules/promotion/pages/admin/couponGrid/Grid.jsx +3 -3
- package/src/modules/promotion/pages/frontStore/cart/Coupon.jsx +2 -2
- package/src/modules/promotion/services/CouponCollection.js +10 -10
- package/src/modules/promotion/services/couponValidator.js +4 -7
- package/src/modules/promotion/services/discountCalculator.js +2 -7
- package/src/modules/promotion/services/registerCartItemPromotionFields.js +80 -0
- package/src/modules/promotion/services/registerCartPromotionFields.js +128 -0
- package/src/modules/promotion/services/registerDefaultCalculators.js +48 -20
- package/src/modules/promotion/services/registerDefaultValidators.js +16 -4
- package/src/modules/setting/pages/admin/paymentSetting/PaymentSetting.jsx +2 -2
- package/src/modules/setting/pages/admin/storeSetting/StoreSetting.jsx +98 -35
- package/src/modules/stripe/pages/admin/paymentSetting/StripePayment.jsx +5 -5
- package/src/modules/stripe/pages/frontStore/checkout/Stripe.jsx +1 -1
- package/src/modules/tax/bootstrap.js +40 -5
- package/src/modules/tax/graphql/types/Product/Price/ProductPrice.resolvers.js +6 -39
- package/src/modules/tax/graphql/types/TaxSetting/TaxSetting.graphql +1 -2
- package/src/modules/tax/graphql/types/TaxSetting/TaxSetting.resolvers.js +1 -8
- package/src/modules/tax/pages/admin/taxSetting/TaxSetting.jsx +4 -4
- package/src/modules/tax/services/TaxClassCollection.js +10 -10
- package/src/modules/tax/services/calculateTaxAmount.js +12 -9
- package/src/modules/tax/services/registerCartItemTaxPercentField.js +76 -0
- package/src/modules/auth/services/adminSessionMiddleware.js +0 -0
- package/src/modules/catalog/pages/frontStore/homepage/FeaturedCategories.jsx +0 -58
- package/src/modules/cms/pages/admin/cmsPageEdit+cmsPageNew/StatusAndLayout.jsx +0 -61
- package/src/modules/cms/pages/frontStore/all/Menu.jsx +0 -46
- package/src/modules/cms/pages/frontStore/all/Menu.scss +0 -7
- package/src/modules/cms/pages/frontStore/all/MobileMenu.jsx +0 -73
- package/src/modules/cms/pages/frontStore/all/MobileMenu.scss +0 -35
- package/src/modules/cms/pages/frontStore/homepage/MainBanner.jsx +0 -31
- package/src/modules/cms/pages/frontStore/homepage/MainBanner.scss +0 -48
package/bin/build/index.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
process.env.ALLOW_CONFIG_MUTATIONS = true;
|
|
2
|
+
const config = require('config');
|
|
1
3
|
const { existsSync, rmSync, mkdirSync } = require('fs');
|
|
2
4
|
const path = require('path');
|
|
3
5
|
const { CONSTANTS } = require('@evershop/evershop/src/lib/helpers');
|
|
@@ -11,8 +13,14 @@ const {
|
|
|
11
13
|
const { buildEntry } = require('@evershop/evershop/bin/lib/buildEntry');
|
|
12
14
|
const { getCoreModules } = require('@evershop/evershop/bin/lib/loadModules');
|
|
13
15
|
const { error } = require('@evershop/evershop/src/lib/log/logger');
|
|
16
|
+
const { lockHooks } = require('@evershop/evershop/src/lib/util/hookable');
|
|
17
|
+
const { lockRegistry } = require('@evershop/evershop/src/lib/util/registry');
|
|
18
|
+
const {
|
|
19
|
+
validateConfiguration
|
|
20
|
+
} = require('@evershop/evershop/src/lib/util/validateConfiguration');
|
|
14
21
|
const { compile } = require('./complie');
|
|
15
22
|
const { getEnabledExtensions } = require('../extension');
|
|
23
|
+
const { loadBootstrapScript } = require('../lib/bootstrap/bootstrap');
|
|
16
24
|
require('dotenv').config();
|
|
17
25
|
/* Loading modules and initilize routes, components */
|
|
18
26
|
const modules = [...getCoreModules(), ...getEnabledExtensions()];
|
|
@@ -38,6 +46,22 @@ if (existsSync(path.resolve(CONSTANTS.BUILDPATH))) {
|
|
|
38
46
|
}
|
|
39
47
|
|
|
40
48
|
(async () => {
|
|
49
|
+
/** Loading bootstrap script from modules */
|
|
50
|
+
try {
|
|
51
|
+
// eslint-disable-next-line no-restricted-syntax
|
|
52
|
+
for (const module of modules) {
|
|
53
|
+
await loadBootstrapScript(module);
|
|
54
|
+
}
|
|
55
|
+
lockHooks();
|
|
56
|
+
lockRegistry();
|
|
57
|
+
// Get the configuration (nodeconfig)
|
|
58
|
+
validateConfiguration(config);
|
|
59
|
+
} catch (e) {
|
|
60
|
+
error(e);
|
|
61
|
+
process.exit(0);
|
|
62
|
+
}
|
|
63
|
+
process.env.ALLOW_CONFIG_MUTATIONS = false;
|
|
64
|
+
|
|
41
65
|
const routes = getRoutes();
|
|
42
66
|
await buildEntry(routes.filter((r) => isBuildRequired(r)));
|
|
43
67
|
|
package/bin/extension/index.js
CHANGED
|
@@ -5,7 +5,7 @@ const { getConfig } = require('@evershop/evershop/src/lib/util/getConfig');
|
|
|
5
5
|
const { getCoreModules } = require('@evershop/evershop/bin/lib/loadModules');
|
|
6
6
|
const { warning } = require('@evershop/evershop/src/lib/log/logger');
|
|
7
7
|
|
|
8
|
-
let extensions
|
|
8
|
+
let extensions;
|
|
9
9
|
|
|
10
10
|
function loadExtensions() {
|
|
11
11
|
const coreModules = getCoreModules();
|
|
@@ -42,7 +42,7 @@ function loadExtensions() {
|
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
module.exports.getEnabledExtensions = function getEnabledExtensions() {
|
|
45
|
-
if (extensions
|
|
45
|
+
if (extensions === undefined) {
|
|
46
46
|
extensions = loadExtensions();
|
|
47
47
|
}
|
|
48
48
|
return extensions;
|
|
@@ -78,10 +78,10 @@ exports.addDefaultMiddlewareFuncs = function addDefaultMiddlewareFuncs(
|
|
|
78
78
|
}),
|
|
79
79
|
secret: cookieSecret,
|
|
80
80
|
cookie: {
|
|
81
|
-
maxAge: 24 * 60 * 60 * 1000
|
|
81
|
+
maxAge: getConfig('system.session.maxAge', 24 * 60 * 60 * 1000)
|
|
82
82
|
},
|
|
83
83
|
resave: getConfig('system.session.resave', false),
|
|
84
|
-
saveUninitialized: true
|
|
84
|
+
saveUninitialized: getConfig('system.session.saveUninitialized', true)
|
|
85
85
|
};
|
|
86
86
|
|
|
87
87
|
if (isProductionMode()) {
|
|
@@ -261,6 +261,11 @@ exports.addDefaultMiddlewareFuncs = function addDefaultMiddlewareFuncs(
|
|
|
261
261
|
} else {
|
|
262
262
|
middlewareFunc = route.webpackMiddleware;
|
|
263
263
|
}
|
|
264
|
+
middlewareFunc.waitUntilValid(() => {
|
|
265
|
+
const { stats } = middlewareFunc.context;
|
|
266
|
+
const jsonWebpackStats = stats.toJson();
|
|
267
|
+
response.locals.jsonWebpackStats = jsonWebpackStats;
|
|
268
|
+
});
|
|
264
269
|
// We need to run build for notFound route
|
|
265
270
|
const notFoundRoute = routes.find((r) => r.id === 'notFound');
|
|
266
271
|
const notFoundWebpackCompiler = notFoundRoute.webpackCompiler;
|
package/bin/lib/buildEntry.js
CHANGED
|
@@ -14,6 +14,9 @@ const {
|
|
|
14
14
|
} = require('@evershop/evershop/src/lib/webpack/util/parseGraphql');
|
|
15
15
|
const JSON5 = require('json5');
|
|
16
16
|
const { error } = require('@evershop/evershop/src/lib/log/logger');
|
|
17
|
+
const {
|
|
18
|
+
getEnabledWidgets
|
|
19
|
+
} = require('@evershop/evershop/src/lib/util/getEnabledWidgets');
|
|
17
20
|
/**
|
|
18
21
|
* Only pass the page routes, not api routes
|
|
19
22
|
*/
|
|
@@ -21,6 +24,7 @@ module.exports.buildEntry = async function buildEntry(
|
|
|
21
24
|
routes,
|
|
22
25
|
clientOnly = false
|
|
23
26
|
) {
|
|
27
|
+
const widgets = getEnabledWidgets();
|
|
24
28
|
await Promise.all(
|
|
25
29
|
routes.map(async (route) => {
|
|
26
30
|
const subPath = getRouteBuildPath(route);
|
|
@@ -70,6 +74,16 @@ module.exports.buildEntry = async function buildEntry(
|
|
|
70
74
|
route.isAdmin ? 'HydrateAdmin' : 'HydrateFrontStore'
|
|
71
75
|
}';
|
|
72
76
|
`;
|
|
77
|
+
areas['*'] = areas['*'] || {};
|
|
78
|
+
widgets.forEach((widget) => {
|
|
79
|
+
areas['*'][widget.type] = {
|
|
80
|
+
id: widget.type,
|
|
81
|
+
sortOrder: widget.sortOrder || 0,
|
|
82
|
+
component: route.isAdmin
|
|
83
|
+
? `---require('${widget.setting_component}')---`
|
|
84
|
+
: `---require('${widget.component}')---`
|
|
85
|
+
};
|
|
86
|
+
});
|
|
73
87
|
contentClient += '\r\n';
|
|
74
88
|
contentClient += `Area.defaultProps.components = ${inspect(areas, {
|
|
75
89
|
depth: 5
|
|
@@ -93,6 +107,7 @@ module.exports.buildEntry = async function buildEntry(
|
|
|
93
107
|
/** Build query */
|
|
94
108
|
const query = `${JSON.stringify(parseGraphql(components))}`;
|
|
95
109
|
|
|
110
|
+
// Loop through the widgets config and add the query to the widgets
|
|
96
111
|
let contentServer = `import React from 'react'; `;
|
|
97
112
|
contentServer += '\r\n';
|
|
98
113
|
contentServer += `import ReactDOM from 'react-dom'; `;
|
package/bin/lib/onListening.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const boxen = require('boxen');
|
|
2
|
-
const {
|
|
2
|
+
const { green } = require('kleur');
|
|
3
3
|
const normalizePort = require('./normalizePort');
|
|
4
4
|
|
|
5
5
|
const port = normalizePort();
|
|
@@ -7,13 +7,16 @@ const port = normalizePort();
|
|
|
7
7
|
* Event listener for HTTP server "listening" event.
|
|
8
8
|
*/
|
|
9
9
|
module.exports = function onListening() {
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
const message = boxen(
|
|
11
|
+
`Your website is running at "http://localhost:${port}"`,
|
|
12
|
+
{
|
|
12
13
|
title: 'EverShop',
|
|
13
14
|
titleAlignment: 'center',
|
|
14
15
|
padding: 1,
|
|
15
16
|
margin: 1,
|
|
16
17
|
borderColor: 'green'
|
|
17
|
-
}
|
|
18
|
+
}
|
|
18
19
|
);
|
|
20
|
+
// eslint-disable-next-line no-console
|
|
21
|
+
console.log(green(message));
|
|
19
22
|
};
|
package/bin/lib/startUp.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
const http = require('http');
|
|
2
|
+
const config = require('config');
|
|
2
3
|
const { Handler } = require('@evershop/evershop/src/lib/middleware/Handler');
|
|
3
4
|
const spawn = require('cross-spawn');
|
|
4
5
|
const path = require('path');
|
|
@@ -6,6 +7,9 @@ const { error } = require('@evershop/evershop/src/lib/log/logger');
|
|
|
6
7
|
const isDevelopmentMode = require('@evershop/evershop/src/lib/util/isDevelopmentMode');
|
|
7
8
|
const { lockHooks } = require('@evershop/evershop/src/lib/util/hookable');
|
|
8
9
|
const { lockRegistry } = require('@evershop/evershop/src/lib/util/registry');
|
|
10
|
+
const {
|
|
11
|
+
validateConfiguration
|
|
12
|
+
} = require('@evershop/evershop/src/lib/util/validateConfiguration');
|
|
9
13
|
const { createApp } = require('./app');
|
|
10
14
|
const normalizePort = require('./normalizePort');
|
|
11
15
|
const onListening = require('./onListening');
|
|
@@ -30,6 +34,8 @@ module.exports.start = async function start(cb) {
|
|
|
30
34
|
}
|
|
31
35
|
lockHooks();
|
|
32
36
|
lockRegistry();
|
|
37
|
+
// Get the configuration (nodeconfig)
|
|
38
|
+
validateConfiguration(config);
|
|
33
39
|
} catch (e) {
|
|
34
40
|
error(e);
|
|
35
41
|
process.exit(0);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@evershop/evershop",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"description": "The React Ecommerce platform. Built with React and Postgres. Open-source and free. Fast and customizable.",
|
|
5
5
|
"files": [
|
|
6
6
|
"bin",
|
|
@@ -40,6 +40,12 @@
|
|
|
40
40
|
"@babel/preset-react": "^7.16.0",
|
|
41
41
|
"@ckeditor/ckeditor5-build-classic": "^36.0.1",
|
|
42
42
|
"@ckeditor/ckeditor5-react": "^5.1.0",
|
|
43
|
+
"@editorjs/editorjs": "^2.30.2",
|
|
44
|
+
"@editorjs/header": "^2.8.7",
|
|
45
|
+
"@editorjs/list": "^1.10.0",
|
|
46
|
+
"@editorjs/quote": "^2.6.0",
|
|
47
|
+
"@editorjs/raw": "^2.5.0",
|
|
48
|
+
"@evershop/editorjs-image": "^1.0.0",
|
|
43
49
|
"@evershop/postgres-query-builder": "^1.2.0",
|
|
44
50
|
"@graphql-tools/load-files": "^6.6.1",
|
|
45
51
|
"@graphql-tools/merge": "^8.3.5",
|
|
@@ -50,6 +56,7 @@
|
|
|
50
56
|
"@shopify/draggable": "^1.0.0-beta.8",
|
|
51
57
|
"@stripe/react-stripe-js": "^1.5.0",
|
|
52
58
|
"@stripe/stripe-js": "^1.18.0",
|
|
59
|
+
"@tailwindcss/typography": "^0.5.13",
|
|
53
60
|
"ajv": "^8.12.0",
|
|
54
61
|
"ajv-errors": "^3.0.0",
|
|
55
62
|
"ajv-formats": "^2.1.1",
|
|
@@ -82,6 +89,7 @@
|
|
|
82
89
|
"html-webpack-plugin": "^5.5.0",
|
|
83
90
|
"immer": "^9.0.3",
|
|
84
91
|
"is-object": "^1.0.2",
|
|
92
|
+
"is-resolvable": "^1.1.0",
|
|
85
93
|
"jsesc": "^3.0.2",
|
|
86
94
|
"json5": "^2.2.1",
|
|
87
95
|
"kleur": "3.0.3",
|
|
@@ -32,16 +32,11 @@ function CategoryItem({ category, selectedCategory, setSelectedCategory }) {
|
|
|
32
32
|
const { data, fetching, error } = result;
|
|
33
33
|
|
|
34
34
|
if (error) {
|
|
35
|
-
return
|
|
36
|
-
<p>
|
|
37
|
-
Oh no...
|
|
38
|
-
{error.message}
|
|
39
|
-
</p>
|
|
40
|
-
);
|
|
35
|
+
return <p className="text-critical">{error.message}</p>;
|
|
41
36
|
}
|
|
42
37
|
return (
|
|
43
38
|
<li>
|
|
44
|
-
<div className="flex justify-start gap-
|
|
39
|
+
<div className="flex justify-start gap-4 items-center">
|
|
45
40
|
{!category.children && (
|
|
46
41
|
<a
|
|
47
42
|
href="#"
|
|
@@ -31,22 +31,29 @@ function CategoryTree({ selectedCategory, setSelectedCategory }) {
|
|
|
31
31
|
const { data, fetching, error } = result;
|
|
32
32
|
|
|
33
33
|
if (fetching) {
|
|
34
|
-
return
|
|
34
|
+
return (
|
|
35
|
+
<div className="category-tree-container absolute top-full left-0 right-0 border rounded">
|
|
36
|
+
<Spinner width={30} height={30} />
|
|
37
|
+
</div>
|
|
38
|
+
);
|
|
35
39
|
}
|
|
36
40
|
if (error) {
|
|
37
41
|
return (
|
|
38
|
-
<
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
</p>
|
|
42
|
+
<div className="category-tree-container absolute top-full left-0 right-0 border rounded">
|
|
43
|
+
<p className="text-critical">{error.message}</p>
|
|
44
|
+
</div>
|
|
42
45
|
);
|
|
43
46
|
}
|
|
44
47
|
if (data.categories.items.length === 0) {
|
|
45
|
-
return
|
|
48
|
+
return (
|
|
49
|
+
<div className="category-tree-container absolute top-full left-0 right-0 border rounded">
|
|
50
|
+
<div>There is no category</div>
|
|
51
|
+
</div>
|
|
52
|
+
);
|
|
46
53
|
}
|
|
47
54
|
|
|
48
55
|
return (
|
|
49
|
-
<div>
|
|
56
|
+
<div className="category-tree-container absolute top-full left-0 right-0 border rounded">
|
|
50
57
|
<ul className="category-tree">
|
|
51
58
|
{data.categories.items.map((category) => (
|
|
52
59
|
<CategoryItem
|
|
@@ -20,7 +20,7 @@ export function CreateVariant({
|
|
|
20
20
|
|
|
21
21
|
return (
|
|
22
22
|
<div>
|
|
23
|
-
<div className="mt-
|
|
23
|
+
<div className="mt-8">
|
|
24
24
|
<Button
|
|
25
25
|
title="Add Variant"
|
|
26
26
|
onAction={() => {
|
|
@@ -46,7 +46,7 @@ export function CreateVariant({
|
|
|
46
46
|
</Card.Session>
|
|
47
47
|
<Card.Session>
|
|
48
48
|
<div className="flex justify-end">
|
|
49
|
-
<div className="grid grid-cols-2 gap-
|
|
49
|
+
<div className="grid grid-cols-2 gap-4">
|
|
50
50
|
<SubmitButton
|
|
51
51
|
productId={productId}
|
|
52
52
|
attributes={variantGroup.attributes}
|
|
@@ -11,8 +11,8 @@ export function New({ createVariantGroupApi, setGroup }) {
|
|
|
11
11
|
{action === undefined && (
|
|
12
12
|
<div>
|
|
13
13
|
<div className="justify-center text-center">
|
|
14
|
-
<div className="mb-
|
|
15
|
-
<span className="pr-
|
|
14
|
+
<div className="mb-16">
|
|
15
|
+
<span className="pr-4">
|
|
16
16
|
This product has some variants like color or size?
|
|
17
17
|
</span>
|
|
18
18
|
<a
|
|
@@ -174,7 +174,7 @@ export function SearchModal({ keyword, variants, addVariant, searchAPI }) {
|
|
|
174
174
|
</div>
|
|
175
175
|
)}
|
|
176
176
|
{potentialVariants.length <= 0 && (
|
|
177
|
-
<div className="flex justify-center p-
|
|
177
|
+
<div className="flex justify-center p-4">
|
|
178
178
|
There is no product to show
|
|
179
179
|
</div>
|
|
180
180
|
)}
|
|
@@ -62,8 +62,8 @@ export function VariantModal({
|
|
|
62
62
|
return <p className="text-critical">{error.message}</p>;
|
|
63
63
|
}
|
|
64
64
|
return (
|
|
65
|
-
<div className="variant-item pb-
|
|
66
|
-
<div className="grid grid-cols-2 gap-x-
|
|
65
|
+
<div className="variant-item pb-6 border-b border-solid border-divider mb-6 last:border-b-0 last:pb-0">
|
|
66
|
+
<div className="grid grid-cols-2 gap-x-4">
|
|
67
67
|
<div className="col-span-1">
|
|
68
68
|
<ProductMediaManager
|
|
69
69
|
id="images"
|
|
@@ -72,9 +72,9 @@ export function VariantModal({
|
|
|
72
72
|
/>
|
|
73
73
|
</div>
|
|
74
74
|
<div className="col-span-1">
|
|
75
|
-
<div className="grid grid-cols-2 gap-x-
|
|
75
|
+
<div className="grid grid-cols-2 gap-x-4 border-b border-divider pb-6 mb-6">
|
|
76
76
|
{data?.attributes?.items.map((a, index) => (
|
|
77
|
-
<div key={a.attributeId} className="mt-
|
|
77
|
+
<div key={a.attributeId} className="mt-4 col">
|
|
78
78
|
<div>
|
|
79
79
|
<label>{a.attributeName}</label>
|
|
80
80
|
</div>
|
|
@@ -106,7 +106,7 @@ export function VariantModal({
|
|
|
106
106
|
</div>
|
|
107
107
|
))}
|
|
108
108
|
</div>
|
|
109
|
-
<div className="grid grid-cols-3 gap-x-
|
|
109
|
+
<div className="grid grid-cols-3 gap-x-4 border-b border-divider pb-6 mb-6">
|
|
110
110
|
<div>
|
|
111
111
|
<div>SKU</div>
|
|
112
112
|
<Field
|
|
@@ -128,7 +128,7 @@ export function VariantModal({
|
|
|
128
128
|
/>
|
|
129
129
|
</div>
|
|
130
130
|
</div>
|
|
131
|
-
<div className="grid grid-cols-3 gap-x-
|
|
131
|
+
<div className="grid grid-cols-3 gap-x-4">
|
|
132
132
|
<div>
|
|
133
133
|
<div>Status</div>
|
|
134
134
|
<Field
|
|
@@ -5,7 +5,7 @@ export default function ThumbnailRow({ src, name }) {
|
|
|
5
5
|
return (
|
|
6
6
|
<td>
|
|
7
7
|
<div
|
|
8
|
-
className="grid-thumbnail text-border border border-divider p-
|
|
8
|
+
className="grid-thumbnail text-border border border-divider p-3 rounded flex justify-center"
|
|
9
9
|
style={{ width: '6rem', height: '6rem' }}
|
|
10
10
|
>
|
|
11
11
|
{src && <img className="self-center" src={src} alt={name} />}
|
|
@@ -10,11 +10,11 @@ function Method({ method, getZones }) {
|
|
|
10
10
|
return (
|
|
11
11
|
<>
|
|
12
12
|
<>
|
|
13
|
-
<td className="border-none py-
|
|
14
|
-
<td className="border-none py-
|
|
13
|
+
<td className="border-none py-4">{method.name}</td>
|
|
14
|
+
<td className="border-none py-4">
|
|
15
15
|
{method.isEnabled ? 'Enabled' : 'Disabled'}
|
|
16
16
|
</td>
|
|
17
|
-
<td className="border-none py-
|
|
17
|
+
<td className="border-none py-4">
|
|
18
18
|
{method.cost?.text || (
|
|
19
19
|
<a
|
|
20
20
|
href="#"
|
|
@@ -28,14 +28,14 @@ function Method({ method, getZones }) {
|
|
|
28
28
|
</a>
|
|
29
29
|
)}
|
|
30
30
|
</td>
|
|
31
|
-
<td className="border-none py-
|
|
31
|
+
<td className="border-none py-4">
|
|
32
32
|
{method.conditionType
|
|
33
33
|
? `${method.min || 0} <= ${method.conditionType} <= ${
|
|
34
34
|
method.max || '∞'
|
|
35
35
|
}`
|
|
36
36
|
: 'None'}
|
|
37
37
|
</td>
|
|
38
|
-
<td className="border-none py-
|
|
38
|
+
<td className="border-none py-4">
|
|
39
39
|
<a
|
|
40
40
|
href="#"
|
|
41
41
|
className="text-interactive"
|
|
@@ -48,7 +48,7 @@ function Method({ method, getZones }) {
|
|
|
48
48
|
</a>
|
|
49
49
|
<a
|
|
50
50
|
href="#"
|
|
51
|
-
className="text-critical ml-
|
|
51
|
+
className="text-critical ml-8"
|
|
52
52
|
onClick={async (e) => {
|
|
53
53
|
e.preventDefault();
|
|
54
54
|
try {
|
|
@@ -29,7 +29,7 @@ function Condition({ method }) {
|
|
|
29
29
|
const [type, setType] = React.useState(method?.conditionType || 'price');
|
|
30
30
|
return (
|
|
31
31
|
<div>
|
|
32
|
-
<div className="mb-
|
|
32
|
+
<div className="mb-4">
|
|
33
33
|
<Radio
|
|
34
34
|
name="condition_type"
|
|
35
35
|
options={[
|
|
@@ -40,7 +40,7 @@ function Condition({ method }) {
|
|
|
40
40
|
value={type}
|
|
41
41
|
/>
|
|
42
42
|
</div>
|
|
43
|
-
<div className="grid grid-cols-2 gap-
|
|
43
|
+
<div className="grid grid-cols-2 gap-8">
|
|
44
44
|
<div>
|
|
45
45
|
<Field
|
|
46
46
|
name="min"
|
|
@@ -175,7 +175,7 @@ function MethodForm({ saveMethodApi, closeModal, getZones, method }) {
|
|
|
175
175
|
value={shippingMethod}
|
|
176
176
|
/>
|
|
177
177
|
) : (
|
|
178
|
-
<div className="flex gap-
|
|
178
|
+
<div className="flex gap-4 justify-start items-center">
|
|
179
179
|
<Input
|
|
180
180
|
name="name"
|
|
181
181
|
type="text"
|
|
@@ -293,7 +293,7 @@ function MethodForm({ saveMethodApi, closeModal, getZones, method }) {
|
|
|
293
293
|
{hasCondition && <Condition method={method} />}
|
|
294
294
|
</Card.Session>
|
|
295
295
|
<Card.Session>
|
|
296
|
-
<div className="flex justify-end gap-
|
|
296
|
+
<div className="flex justify-end gap-4">
|
|
297
297
|
<Button
|
|
298
298
|
title="Cancel"
|
|
299
299
|
variant="secondary"
|
|
@@ -7,7 +7,7 @@ import MethodForm from '@components/admin/checkout/shippingSetting/MethodForm';
|
|
|
7
7
|
export function Methods({ getZones, methods, addMethodApi }) {
|
|
8
8
|
const modal = useModal();
|
|
9
9
|
return (
|
|
10
|
-
<div className="my-
|
|
10
|
+
<div className="my-8">
|
|
11
11
|
<table className="border-collapse divide-y">
|
|
12
12
|
<thead>
|
|
13
13
|
<tr>
|
|
@@ -19,12 +19,12 @@ export function Methods({ getZones, methods, addMethodApi }) {
|
|
|
19
19
|
</tr>
|
|
20
20
|
</thead>
|
|
21
21
|
{methods.map((method) => (
|
|
22
|
-
<tr key={method.methodId} className="border-divider py-
|
|
22
|
+
<tr key={method.methodId} className="border-divider py-8">
|
|
23
23
|
<Method method={method} getZones={getZones} />
|
|
24
24
|
</tr>
|
|
25
25
|
))}
|
|
26
26
|
</table>
|
|
27
|
-
<div className="mt-
|
|
27
|
+
<div className="mt-4">
|
|
28
28
|
<a
|
|
29
29
|
href="#"
|
|
30
30
|
className="text-interactive"
|
|
@@ -11,7 +11,7 @@ export default function PriceBasedPrice({ lines }) {
|
|
|
11
11
|
}))
|
|
12
12
|
);
|
|
13
13
|
return (
|
|
14
|
-
<div className="my-
|
|
14
|
+
<div className="my-8">
|
|
15
15
|
<table className="border-collapse divide-y">
|
|
16
16
|
<thead>
|
|
17
17
|
<tr>
|
|
@@ -23,7 +23,7 @@ export default function PriceBasedPrice({ lines }) {
|
|
|
23
23
|
<tbody>
|
|
24
24
|
{rows.map((row, index) => (
|
|
25
25
|
// Create a random key for each row
|
|
26
|
-
<tr key={row.key} className="border-divider py-
|
|
26
|
+
<tr key={row.key} className="border-divider py-8">
|
|
27
27
|
<td className="border-none">
|
|
28
28
|
<Field
|
|
29
29
|
name={`price_based_cost[${index}][min_price]`}
|
|
@@ -11,7 +11,7 @@ export default function WeightBasedPrice({ lines }) {
|
|
|
11
11
|
}))
|
|
12
12
|
);
|
|
13
13
|
return (
|
|
14
|
-
<div className="my-
|
|
14
|
+
<div className="my-8">
|
|
15
15
|
<table className="border-collapse divide-y">
|
|
16
16
|
<thead>
|
|
17
17
|
<tr>
|
|
@@ -23,7 +23,7 @@ export default function WeightBasedPrice({ lines }) {
|
|
|
23
23
|
<tbody>
|
|
24
24
|
{rows.map((row, index) => (
|
|
25
25
|
// Create a random key for each row
|
|
26
|
-
<tr key={row.key} className="border-divider py-
|
|
26
|
+
<tr key={row.key} className="border-divider py-8">
|
|
27
27
|
<td className="border-none">
|
|
28
28
|
<Field
|
|
29
29
|
name={`weight_based_cost[${index}][min_weight]`}
|
|
@@ -13,9 +13,9 @@ function Zone({ zone, countries, getZones }) {
|
|
|
13
13
|
return (
|
|
14
14
|
<Card.Session
|
|
15
15
|
title={
|
|
16
|
-
<div className="flex justify-between items-center gap-
|
|
16
|
+
<div className="flex justify-between items-center gap-8">
|
|
17
17
|
<div>{zone.name}</div>
|
|
18
|
-
<div className="flex justify-between gap-
|
|
18
|
+
<div className="flex justify-between gap-8">
|
|
19
19
|
<a
|
|
20
20
|
href="#"
|
|
21
21
|
className="text-interactive"
|
|
@@ -58,11 +58,11 @@ function Zone({ zone, countries, getZones }) {
|
|
|
58
58
|
}
|
|
59
59
|
>
|
|
60
60
|
<div className="divide-y border rounded border-divider">
|
|
61
|
-
<div className="flex justify-start items-center border-divider mt-
|
|
62
|
-
<div className="p-
|
|
61
|
+
<div className="flex justify-start items-center border-divider mt-8">
|
|
62
|
+
<div className="p-8">
|
|
63
63
|
<MapIcon width={25} height={25} fill="#008060" />
|
|
64
64
|
</div>
|
|
65
|
-
<div className="flex-grow px-
|
|
65
|
+
<div className="flex-grow px-4">
|
|
66
66
|
<div>
|
|
67
67
|
<b>{zone.country?.name || 'Worldwide'}</b>
|
|
68
68
|
</div>
|
|
@@ -75,8 +75,8 @@ function Zone({ zone, countries, getZones }) {
|
|
|
75
75
|
</div>
|
|
76
76
|
</div>
|
|
77
77
|
</div>
|
|
78
|
-
<div className="flex justify-start items-center border-divider mt-
|
|
79
|
-
<div className="flex-grow px-
|
|
78
|
+
<div className="flex justify-start items-center border-divider mt-8">
|
|
79
|
+
<div className="flex-grow px-4">
|
|
80
80
|
<Methods
|
|
81
81
|
methods={zone.methods}
|
|
82
82
|
getZones={getZones}
|
|
@@ -9,7 +9,7 @@ function Card({ title, actions = [], subdued = false, children }) {
|
|
|
9
9
|
<div className="flex justify-between card-header">
|
|
10
10
|
{title && <h2 className="card-title">{title}</h2>}
|
|
11
11
|
{actions.length > 0 && (
|
|
12
|
-
<div className="flex space-x-
|
|
12
|
+
<div className="flex space-x-3">
|
|
13
13
|
{actions.map((action, index) => {
|
|
14
14
|
const className = {
|
|
15
15
|
primary: 'text-primary',
|
|
@@ -69,10 +69,10 @@ const Session = function Session({ actions = [], title, children }) {
|
|
|
69
69
|
return (
|
|
70
70
|
<div className="card-section border-b box-border">
|
|
71
71
|
{(title || actions.length > 0) && (
|
|
72
|
-
<div className="flex justify-between card-section-header mb-
|
|
72
|
+
<div className="flex justify-between card-section-header mb-4">
|
|
73
73
|
{title && <h3 className="card-session-title">{title}</h3>}
|
|
74
74
|
{actions.length > 0 && (
|
|
75
|
-
<div className="flex space-x-
|
|
75
|
+
<div className="flex space-x-3">
|
|
76
76
|
{actions.map((action, index) => {
|
|
77
77
|
const className = {
|
|
78
78
|
primary: 'text-primary',
|
|
@@ -8,7 +8,7 @@ function BreadcrumbIcon({ backUrl }) {
|
|
|
8
8
|
return (
|
|
9
9
|
<a
|
|
10
10
|
href={backUrl}
|
|
11
|
-
className="breadcrum-icon border block border-border rounded mr-
|
|
11
|
+
className="breadcrum-icon border block border-border rounded mr-3"
|
|
12
12
|
>
|
|
13
13
|
<span className="flex items-center justify-center">
|
|
14
14
|
<svg
|
|
@@ -51,7 +51,7 @@ function PageHeading({ backUrl, heading }) {
|
|
|
51
51
|
|
|
52
52
|
return (
|
|
53
53
|
<div className="page-heading flex justify-between items-center">
|
|
54
|
-
<div className="flex justify-start space-x-
|
|
54
|
+
<div className="flex justify-start space-x-4 items-center">
|
|
55
55
|
<Area
|
|
56
56
|
id="pageHeadingLeft"
|
|
57
57
|
noOuter
|
|
@@ -75,7 +75,7 @@ function PageHeading({ backUrl, heading }) {
|
|
|
75
75
|
]}
|
|
76
76
|
/>
|
|
77
77
|
</div>
|
|
78
|
-
<div className="flex justify-end space-x-
|
|
78
|
+
<div className="flex justify-end space-x-4 items-center">
|
|
79
79
|
<Area id="pageHeadingRight" noOuter coreComponents={[]} />
|
|
80
80
|
</div>
|
|
81
81
|
</div>
|