ng-easycommerce-v18 0.0.1
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/.editorconfig +16 -0
- package/README.md +27 -0
- package/angular.json +48 -0
- package/package.json +58 -0
- package/projects/ng-easycommerce/README.md +24 -0
- package/projects/ng-easycommerce/ng-package.json +7 -0
- package/projects/ng-easycommerce/package.json +12 -0
- package/projects/ng-easycommerce/src/lib/api/connection.service.ts +79 -0
- package/projects/ng-easycommerce/src/lib/api/index.ts +1 -0
- package/projects/ng-easycommerce/src/lib/assets/ec-i18n/ct.json +274 -0
- package/projects/ng-easycommerce/src/lib/assets/ec-i18n/en.json +380 -0
- package/projects/ng-easycommerce/src/lib/assets/ec-i18n/es.json +387 -0
- package/projects/ng-easycommerce/src/lib/assets/ec-i18n/fr.json +266 -0
- package/projects/ng-easycommerce/src/lib/assets/ec-i18n/gl.json +274 -0
- package/projects/ng-easycommerce/src/lib/assets/ec-i18n/pr.json +274 -0
- package/projects/ng-easycommerce/src/lib/assets/recaptcha/recaptcha-site-keys.json +4 -0
- package/projects/ng-easycommerce/src/lib/assets/recaptcha/recaptcha-sites-prod.json +39 -0
- package/projects/ng-easycommerce/src/lib/assets/recaptcha/recaptcha-sites.json +53 -0
- package/projects/ng-easycommerce/src/lib/classes/checkout/index.ts +1 -0
- package/projects/ng-easycommerce/src/lib/classes/checkout/steps.ts +37 -0
- package/projects/ng-easycommerce/src/lib/classes/filters/attributes-filter.ts +74 -0
- package/projects/ng-easycommerce/src/lib/classes/filters/category-filter.ts +57 -0
- package/projects/ng-easycommerce/src/lib/classes/filters/dynamics-filter.ts +57 -0
- package/projects/ng-easycommerce/src/lib/classes/filters/filter-factory.ts +23 -0
- package/projects/ng-easycommerce/src/lib/classes/filters/filter.ts +89 -0
- package/projects/ng-easycommerce/src/lib/classes/filters/index.ts +6 -0
- package/projects/ng-easycommerce/src/lib/classes/filters/sort-filter.ts +93 -0
- package/projects/ng-easycommerce/src/lib/classes/index.ts +3 -0
- package/projects/ng-easycommerce/src/lib/classes/user.ts +68 -0
- package/projects/ng-easycommerce/src/lib/constants/api.constants.service.ts +69 -0
- package/projects/ng-easycommerce/src/lib/constants/core.constants.service.ts +210 -0
- package/projects/ng-easycommerce/src/lib/constants/index.ts +2 -0
- package/projects/ng-easycommerce/src/lib/ec-components/abstractions-components/block-ec.component.ts +107 -0
- package/projects/ng-easycommerce/src/lib/ec-components/abstractions-components/index.ts +2 -0
- package/projects/ng-easycommerce/src/lib/ec-components/abstractions-components/menu-ec.component.ts +102 -0
- package/projects/ng-easycommerce/src/lib/ec-components/auth-ec/auth-ec.component.html +10 -0
- package/projects/ng-easycommerce/src/lib/ec-components/auth-ec/auth-ec.component.scss +0 -0
- package/projects/ng-easycommerce/src/lib/ec-components/auth-ec/auth-ec.component.ts +13 -0
- package/projects/ng-easycommerce/src/lib/ec-components/auth-ec/confirm-account-ec/confirm-account-ec.component.html +19 -0
- package/projects/ng-easycommerce/src/lib/ec-components/auth-ec/confirm-account-ec/confirm-account-ec.component.scss +0 -0
- package/projects/ng-easycommerce/src/lib/ec-components/auth-ec/confirm-account-ec/confirm-account-ec.component.ts +34 -0
- package/projects/ng-easycommerce/src/lib/ec-components/auth-ec/forgot-password-ec/forgot-password-ec.component.html +31 -0
- package/projects/ng-easycommerce/src/lib/ec-components/auth-ec/forgot-password-ec/forgot-password-ec.component.scss +0 -0
- package/projects/ng-easycommerce/src/lib/ec-components/auth-ec/forgot-password-ec/forgot-password-ec.component.ts +55 -0
- package/projects/ng-easycommerce/src/lib/ec-components/auth-ec/index.ts +6 -0
- package/projects/ng-easycommerce/src/lib/ec-components/auth-ec/login-form-ec/login-form-ec.component.html +30 -0
- package/projects/ng-easycommerce/src/lib/ec-components/auth-ec/login-form-ec/login-form-ec.component.scss +0 -0
- package/projects/ng-easycommerce/src/lib/ec-components/auth-ec/login-form-ec/login-form-ec.component.ts +92 -0
- package/projects/ng-easycommerce/src/lib/ec-components/auth-ec/register-form-ec/register-form-ec.component.html +55 -0
- package/projects/ng-easycommerce/src/lib/ec-components/auth-ec/register-form-ec/register-form-ec.component.scss +0 -0
- package/projects/ng-easycommerce/src/lib/ec-components/auth-ec/register-form-ec/register-form-ec.component.ts +102 -0
- package/projects/ng-easycommerce/src/lib/ec-components/auth-ec/register-wholesaler-form-ec/register-wholesaler-form-ec.component.html +233 -0
- package/projects/ng-easycommerce/src/lib/ec-components/auth-ec/register-wholesaler-form-ec/register-wholesaler-form-ec.component.scss +0 -0
- package/projects/ng-easycommerce/src/lib/ec-components/auth-ec/register-wholesaler-form-ec/register-wholesaler-form-ec.component.ts +149 -0
- package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/block-banner-box-ec/block-banner-box-ec.component.html +113 -0
- package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/block-banner-box-ec/block-banner-box-ec.component.scss +12 -0
- package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/block-banner-box-ec/block-banner-box-ec.component.ts +100 -0
- package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/block-banner-full-ec/block-banner-full-ec.component.html +111 -0
- package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/block-banner-full-ec/block-banner-full-ec.component.scss +0 -0
- package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/block-banner-full-ec/block-banner-full-ec.component.ts +77 -0
- package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/block-form-contact-ec/block-form-contact-ec.component.html +62 -0
- package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/block-form-contact-ec/block-form-contact-ec.component.scss +0 -0
- package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/block-form-contact-ec/block-form-contact-ec.component.ts +89 -0
- package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/block-html-ec/block-html-ec.component.html +1 -0
- package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/block-html-ec/block-html-ec.component.scss +0 -0
- package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/block-html-ec/block-html-ec.component.ts +33 -0
- package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/block-newsletter-ec/block-newsletter-ec.component.html +1 -0
- package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/block-newsletter-ec/block-newsletter-ec.component.scss +0 -0
- package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/block-newsletter-ec/block-newsletter-ec.component.ts +81 -0
- package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/block-products-ec/block-products-ec.component.html +40 -0
- package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/block-products-ec/block-products-ec.component.scss +0 -0
- package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/block-products-ec/block-products-ec.component.ts +97 -0
- package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/blocks-ec.component.html +41 -0
- package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/blocks-ec.component.scss +0 -0
- package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/blocks-ec.component.ts +86 -0
- package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/index.ts +4 -0
- package/projects/ng-easycommerce/src/lib/ec-components/breadcrumb-ec/breadcrumb-ec.component.html +20 -0
- package/projects/ng-easycommerce/src/lib/ec-components/breadcrumb-ec/breadcrumb-ec.component.scss +0 -0
- package/projects/ng-easycommerce/src/lib/ec-components/breadcrumb-ec/breadcrumb-ec.component.ts +30 -0
- package/projects/ng-easycommerce/src/lib/ec-components/cart-ec/cart-ec.component.html +1 -0
- package/projects/ng-easycommerce/src/lib/ec-components/cart-ec/cart-ec.component.scss +0 -0
- package/projects/ng-easycommerce/src/lib/ec-components/cart-ec/cart-ec.component.ts +24 -0
- package/projects/ng-easycommerce/src/lib/ec-components/cart-ec/cart-item-ec/cart-item-ec.component.html +1 -0
- package/projects/ng-easycommerce/src/lib/ec-components/cart-ec/cart-item-ec/cart-item-ec.component.scss +0 -0
- package/projects/ng-easycommerce/src/lib/ec-components/cart-ec/cart-item-ec/cart-item-ec.component.ts +51 -0
- package/projects/ng-easycommerce/src/lib/ec-components/cart-ec/index.ts +2 -0
- package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/checkout-ec.component.html +56 -0
- package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/checkout-ec.component.scss +38 -0
- package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/checkout-ec.component.ts +67 -0
- package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/dataform-ec/dataform-ec.component.html +836 -0
- package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/dataform-ec/dataform-ec.component.scss +0 -0
- package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/dataform-ec/dataform-ec.component.ts +302 -0
- package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/dataform-ec/input-ec/input-ec.component.html +32 -0
- package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/dataform-ec/input-ec/input-ec.component.scss +0 -0
- package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/dataform-ec/input-ec/input-ec.component.ts +52 -0
- package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/detail-checkout-block-ec/detail-checkout-block-ec.component.html +12 -0
- package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/detail-checkout-block-ec/detail-checkout-block-ec.component.scss +0 -0
- package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/detail-checkout-block-ec/detail-checkout-block-ec.component.ts +48 -0
- package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/payment-ec/payment-ec.component.html +195 -0
- package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/payment-ec/payment-ec.component.scss +0 -0
- package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/payment-ec/payment-ec.component.ts +103 -0
- package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/payment-ec/payment-methods/bank-transfer-ec/bank-transfer-ec.component.html +28 -0
- package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/payment-ec/payment-methods/bank-transfer-ec/bank-transfer-ec.component.scss +0 -0
- package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/payment-ec/payment-methods/bank-transfer-ec/bank-transfer-ec.component.ts +26 -0
- package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/payment-ec/payment-methods/index.ts +3 -0
- package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/payment-ec/payment-methods/mp-redirect-ec/mp-redirect-ec.component.html +33 -0
- package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/payment-ec/payment-methods/mp-redirect-ec/mp-redirect-ec.component.scss +0 -0
- package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/payment-ec/payment-methods/mp-redirect-ec/mp-redirect-ec.component.ts +116 -0
- package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/payment-ec/payment-methods/offline-ec/offline-ec.component.html +13 -0
- package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/payment-ec/payment-methods/offline-ec/offline-ec.component.scss +0 -0
- package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/payment-ec/payment-methods/offline-ec/offline-ec.component.ts +26 -0
- package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/shipment-ec/shipment-ec.component.html +111 -0
- package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/shipment-ec/shipment-ec.component.scss +0 -0
- package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/shipment-ec/shipment-ec.component.ts +111 -0
- package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/step-container-ec/step-container-ec.component.html +33 -0
- package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/step-container-ec/step-container-ec.component.scss +0 -0
- package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/step-container-ec/step-container-ec.component.ts +39 -0
- package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/success-ec/success-ec.component.html +59 -0
- package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/success-ec/success-ec.component.scss +0 -0
- package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/success-ec/success-ec.component.ts +65 -0
- package/projects/ng-easycommerce/src/lib/ec-components/collection-ec/collection-ec.component.html +16 -0
- package/projects/ng-easycommerce/src/lib/ec-components/collection-ec/collection-ec.component.scss +0 -0
- package/projects/ng-easycommerce/src/lib/ec-components/collection-ec/collection-ec.component.ts +83 -0
- package/projects/ng-easycommerce/src/lib/ec-components/coupon-ec/coupon-ec.component.html +1 -0
- package/projects/ng-easycommerce/src/lib/ec-components/coupon-ec/coupon-ec.component.scss +0 -0
- package/projects/ng-easycommerce/src/lib/ec-components/coupon-ec/coupon-ec.component.ts +32 -0
- package/projects/ng-easycommerce/src/lib/ec-components/filters-ec/filters-ec.component.html +1 -0
- package/projects/ng-easycommerce/src/lib/ec-components/filters-ec/filters-ec.component.scss +0 -0
- package/projects/ng-easycommerce/src/lib/ec-components/filters-ec/filters-ec.component.ts +45 -0
- package/projects/ng-easycommerce/src/lib/ec-components/filters-sort-ec/filters-sort-ec.component.html +1 -0
- package/projects/ng-easycommerce/src/lib/ec-components/filters-sort-ec/filters-sort-ec.component.scss +0 -0
- package/projects/ng-easycommerce/src/lib/ec-components/filters-sort-ec/filters-sort-ec.component.ts +49 -0
- package/projects/ng-easycommerce/src/lib/ec-components/footer-ec/footer-ec.component.html +1 -0
- package/projects/ng-easycommerce/src/lib/ec-components/footer-ec/footer-ec.component.scss +0 -0
- package/projects/ng-easycommerce/src/lib/ec-components/footer-ec/footer-ec.component.spec.ts +23 -0
- package/projects/ng-easycommerce/src/lib/ec-components/footer-ec/footer-ec.component.ts +18 -0
- package/projects/ng-easycommerce/src/lib/ec-components/header-ec/header-ec.component.html +1 -0
- package/projects/ng-easycommerce/src/lib/ec-components/header-ec/header-ec.component.scss +0 -0
- package/projects/ng-easycommerce/src/lib/ec-components/header-ec/header-ec.component.spec.ts +23 -0
- package/projects/ng-easycommerce/src/lib/ec-components/header-ec/header-ec.component.ts +22 -0
- package/projects/ng-easycommerce/src/lib/ec-components/home-ec/home-ec.component.html +1 -0
- package/projects/ng-easycommerce/src/lib/ec-components/home-ec/home-ec.component.scss +0 -0
- package/projects/ng-easycommerce/src/lib/ec-components/home-ec/home-ec.component.spec.ts +23 -0
- package/projects/ng-easycommerce/src/lib/ec-components/home-ec/home-ec.component.ts +16 -0
- package/projects/ng-easycommerce/src/lib/ec-components/index.ts +17 -0
- package/projects/ng-easycommerce/src/lib/ec-components/product-detail-ec/product-detail-ec.component.html +0 -0
- package/projects/ng-easycommerce/src/lib/ec-components/product-detail-ec/product-detail-ec.component.scss +0 -0
- package/projects/ng-easycommerce/src/lib/ec-components/product-detail-ec/product-detail-ec.component.ts +82 -0
- package/projects/ng-easycommerce/src/lib/ec-components/product-ec/product-ec.component.html +31 -0
- package/projects/ng-easycommerce/src/lib/ec-components/product-ec/product-ec.component.scss +0 -0
- package/projects/ng-easycommerce/src/lib/ec-components/product-ec/product-ec.component.ts +46 -0
- package/projects/ng-easycommerce/src/lib/ec-components/variants-ec/variants-ec.component.html +65 -0
- package/projects/ng-easycommerce/src/lib/ec-components/variants-ec/variants-ec.component.scss +8 -0
- package/projects/ng-easycommerce/src/lib/ec-components/variants-ec/variants-ec.component.ts +20 -0
- package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/index.ts +4 -0
- package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/loading/index.ts +3 -0
- package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/loading/loading-full-ec/loading-full-ec.component.html +7 -0
- package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/loading/loading-full-ec/loading-full-ec.component.scss +0 -0
- package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/loading/loading-full-ec/loading-full-ec.component.ts +13 -0
- package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/loading/loading-inline-ec/loading-inline-ec.component.html +5 -0
- package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/loading/loading-inline-ec/loading-inline-ec.component.scss +0 -0
- package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/loading/loading-inline-ec/loading-inline-ec.component.ts +13 -0
- package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/loading/loading-section-ec/loading-section-ec.component.html +3 -0
- package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/loading/loading-section-ec/loading-section-ec.component.scss +0 -0
- package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/loading/loading-section-ec/loading-section-ec.component.ts +13 -0
- package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/magnizoom-ec/magnizoom-ec.component.html +11 -0
- package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/magnizoom-ec/magnizoom-ec.component.scss +0 -0
- package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/magnizoom-ec/magnizoom-ec.component.ts +177 -0
- package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/price-ec/price-ec.component.html +47 -0
- package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/price-ec/price-ec.component.scss +0 -0
- package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/price-ec/price-ec.component.ts +22 -0
- package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/re-captcha-ec/re-captcha-ec.component.html +6 -0
- package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/re-captcha-ec/re-captcha-ec.component.scss +0 -0
- package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/re-captcha-ec/re-captcha-ec.component.ts +70 -0
- package/projects/ng-easycommerce/src/lib/ec-guards/auth.guard.ts +19 -0
- package/projects/ng-easycommerce/src/lib/ec-guards/index.ts +1 -0
- package/projects/ng-easycommerce/src/lib/ec-pipe/ec-currency-symbol.pipe.ts +99 -0
- package/projects/ng-easycommerce/src/lib/ec-pipe/index.ts +1 -0
- package/projects/ng-easycommerce/src/lib/ec-services/addressing.service.ts +199 -0
- package/projects/ng-easycommerce/src/lib/ec-services/analytics/analytics.service.ts +76 -0
- package/projects/ng-easycommerce/src/lib/ec-services/analytics/doppler.service.ts +38 -0
- package/projects/ng-easycommerce/src/lib/ec-services/analytics/facebook-pixel.service.ts +214 -0
- package/projects/ng-easycommerce/src/lib/ec-services/analytics/google-analytics.service.ts +284 -0
- package/projects/ng-easycommerce/src/lib/ec-services/analytics/gtm.service.ts +413 -0
- package/projects/ng-easycommerce/src/lib/ec-services/analytics/index.ts +6 -0
- package/projects/ng-easycommerce/src/lib/ec-services/analytics/metricool-pixel.service.ts +46 -0
- package/projects/ng-easycommerce/src/lib/ec-services/auth.service.ts +438 -0
- package/projects/ng-easycommerce/src/lib/ec-services/auth.storage.service.ts +54 -0
- package/projects/ng-easycommerce/src/lib/ec-services/blocks-repository.service.ts +67 -0
- package/projects/ng-easycommerce/src/lib/ec-services/blocks.service.ts +48 -0
- package/projects/ng-easycommerce/src/lib/ec-services/cart.service.ts +492 -0
- package/projects/ng-easycommerce/src/lib/ec-services/channel.service.ts +81 -0
- package/projects/ng-easycommerce/src/lib/ec-services/checkout.service.ts +196 -0
- package/projects/ng-easycommerce/src/lib/ec-services/currency.service.ts +179 -0
- package/projects/ng-easycommerce/src/lib/ec-services/filters.service.ts +133 -0
- package/projects/ng-easycommerce/src/lib/ec-services/form.service.ts +82 -0
- package/projects/ng-easycommerce/src/lib/ec-services/index.ts +24 -0
- package/projects/ng-easycommerce/src/lib/ec-services/local-storage.service.ts +54 -0
- package/projects/ng-easycommerce/src/lib/ec-services/ngx-local-storage.service.ts +66 -0
- package/projects/ng-easycommerce/src/lib/ec-services/options.service.ts +274 -0
- package/projects/ng-easycommerce/src/lib/ec-services/order-utility.service.ts +52 -0
- package/projects/ng-easycommerce/src/lib/ec-services/pagination.service.ts +172 -0
- package/projects/ng-easycommerce/src/lib/ec-services/parameters.service.ts +67 -0
- package/projects/ng-easycommerce/src/lib/ec-services/payment.service.ts +63 -0
- package/projects/ng-easycommerce/src/lib/ec-services/product-detail.service.ts +288 -0
- package/projects/ng-easycommerce/src/lib/ec-services/products.service.ts +162 -0
- package/projects/ng-easycommerce/src/lib/ec-services/re-captcha.service.ts +126 -0
- package/projects/ng-easycommerce/src/lib/ec-services/shipment.service.ts +174 -0
- package/projects/ng-easycommerce/src/lib/ec-services/stores.service.ts +27 -0
- package/projects/ng-easycommerce/src/lib/ec-services/toast.service.ts +84 -0
- package/projects/ng-easycommerce/src/lib/interceptors/auth.interceptor.ts +43 -0
- package/projects/ng-easycommerce/src/lib/interceptors/index.ts +1 -0
- package/projects/ng-easycommerce/src/lib/interfaces/analytics/event-key.ts +14 -0
- package/projects/ng-easycommerce/src/lib/interfaces/analytics/facebook-pixel-data.ts +5 -0
- package/projects/ng-easycommerce/src/lib/interfaces/analytics/gtm-config.ts +6 -0
- package/projects/ng-easycommerce/src/lib/interfaces/analytics/index.ts +3 -0
- package/projects/ng-easycommerce/src/lib/interfaces/blocks.ts +56 -0
- package/projects/ng-easycommerce/src/lib/interfaces/checkout.ts +14 -0
- package/projects/ng-easycommerce/src/lib/interfaces/connection.ts +8 -0
- package/projects/ng-easycommerce/src/lib/interfaces/coupon.ts +5 -0
- package/projects/ng-easycommerce/src/lib/interfaces/currency.ts +10 -0
- package/projects/ng-easycommerce/src/lib/interfaces/deserializable.ts +3 -0
- package/projects/ng-easycommerce/src/lib/interfaces/environment.ts +6 -0
- package/projects/ng-easycommerce/src/lib/interfaces/filter.ts +59 -0
- package/projects/ng-easycommerce/src/lib/interfaces/index.ts +18 -0
- package/projects/ng-easycommerce/src/lib/interfaces/options.ts +28 -0
- package/projects/ng-easycommerce/src/lib/interfaces/pagination.ts +27 -0
- package/projects/ng-easycommerce/src/lib/interfaces/parameter.ts +15 -0
- package/projects/ng-easycommerce/src/lib/interfaces/product.ts +81 -0
- package/projects/ng-easycommerce/src/lib/interfaces/step.ts +19 -0
- package/projects/ng-easycommerce/src/lib/interfaces/storage.ts +7 -0
- package/projects/ng-easycommerce/src/lib/interfaces/store.ts +17 -0
- package/projects/ng-easycommerce/src/lib/interfaces/types/index.ts +1 -0
- package/projects/ng-easycommerce/src/lib/interfaces/types/user.type.ts +5 -0
- package/projects/ng-easycommerce/src/lib/providers/index.ts +1 -0
- package/projects/ng-easycommerce/src/lib/providers/provideEnvironment.ts +24 -0
- package/projects/ng-easycommerce/src/lib/stores/currency.store.ts +20 -0
- package/projects/ng-easycommerce/src/lib/stores/index.ts +1 -0
- package/projects/ng-easycommerce/src/public-api.ts +24 -0
- package/projects/ng-easycommerce/tsconfig.lib.json +15 -0
- package/projects/ng-easycommerce/tsconfig.lib.prod.json +11 -0
- package/projects/ng-easycommerce/tsconfig.spec.json +15 -0
- package/tsconfig.doc.json +4 -0
- package/tsconfig.json +37 -0
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { IStep, StepState, StepType } from "../../interfaces/step";
|
|
2
|
+
|
|
3
|
+
export class Step implements IStep {
|
|
4
|
+
|
|
5
|
+
public name;
|
|
6
|
+
public label:string = '';
|
|
7
|
+
public priority;
|
|
8
|
+
public type: StepType = null;
|
|
9
|
+
public data:any;
|
|
10
|
+
public state: StepState = 'pending';
|
|
11
|
+
|
|
12
|
+
constructor(name:any, priority:any, label:string, state?:StepState) {
|
|
13
|
+
this.name = name;
|
|
14
|
+
this.label = label;
|
|
15
|
+
this.state = state || 'pending';
|
|
16
|
+
this.priority = priority;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
doing = () => {
|
|
20
|
+
this.data = null;
|
|
21
|
+
this.state = 'doing';
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
restart = () => {
|
|
25
|
+
this.data = null;
|
|
26
|
+
this.state = 'pending';
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
ready = (data:any) => {
|
|
30
|
+
this.data = data;
|
|
31
|
+
this.state = 'ready';
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
isPending = () => this.state == 'pending' || this.state == 'doing';
|
|
35
|
+
|
|
36
|
+
isReady = () => this.state == 'ready' && this.data;
|
|
37
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { inject } from "@angular/core";
|
|
2
|
+
import { OptionsService } from "../../ec-services";
|
|
3
|
+
import { FilterElement, FilterType, IFilter } from "../../interfaces";
|
|
4
|
+
import { Filter } from "./filter";
|
|
5
|
+
|
|
6
|
+
export class AttributesFilter extends Filter {
|
|
7
|
+
private _optionsService: OptionsService = inject(OptionsService);
|
|
8
|
+
|
|
9
|
+
override data: FilterElement[] = [];
|
|
10
|
+
override multi: boolean = false;
|
|
11
|
+
|
|
12
|
+
constructor(initialValue?: any, options?:any) {
|
|
13
|
+
super();
|
|
14
|
+
if(options){
|
|
15
|
+
this.setContent(options, initialValue);
|
|
16
|
+
}else{
|
|
17
|
+
this._optionsService.getAttributes().subscribe(
|
|
18
|
+
res => {
|
|
19
|
+
//console.log(res);
|
|
20
|
+
this.setContent(res, initialValue);
|
|
21
|
+
}
|
|
22
|
+
)
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
override type(): FilterType { return 'attributes'; }
|
|
27
|
+
|
|
28
|
+
override setContent(options: any, initialValue?: any): void {
|
|
29
|
+
const attributes = this._optionsService.generateMenu(options);
|
|
30
|
+
attributes.forEach((filter: any) => filter = this.createElement(filter, options, initialValue));
|
|
31
|
+
this.data = attributes;
|
|
32
|
+
}
|
|
33
|
+
override getContent(): FilterElement[] {
|
|
34
|
+
return this.data;
|
|
35
|
+
}
|
|
36
|
+
override toUrlParams(actual_url = '&attributeCodes=', sublist?:any, already?:any) {
|
|
37
|
+
let elements = sublist || this.data;
|
|
38
|
+
let aux_url = '';
|
|
39
|
+
elements.forEach((element: any) => {
|
|
40
|
+
if (element.type == 'sub') {
|
|
41
|
+
let result = this.toUrlParams('', element.children, (actual_url != '&attributeCodes=' && actual_url != ''))
|
|
42
|
+
if (!actual_url.includes(result)) actual_url += this.cleanResult(result);
|
|
43
|
+
} else if (element.selected) {
|
|
44
|
+
if (actual_url == '&attributeCodes=' && aux_url == '') {
|
|
45
|
+
aux_url = element.code;
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
if (aux_url == '') aux_url = (already ? '<and>' : '') + element.code;
|
|
49
|
+
else aux_url += ('<and>' + element.code);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
})
|
|
53
|
+
//console.log(actual_url + aux_url);
|
|
54
|
+
return actual_url + aux_url;
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
cleanResult(text: string) { return text.replace('&attributeCodes=', '') };
|
|
58
|
+
|
|
59
|
+
override createElement(filter: any, original: any, initialValue?: any) {
|
|
60
|
+
if (filter.type == 'sub') {
|
|
61
|
+
filter.multi = false;
|
|
62
|
+
filter.shape = 'text';
|
|
63
|
+
filter.value = original.code;
|
|
64
|
+
filter.children = filter.children.map((child: any, i: number) =>{
|
|
65
|
+
return this.createElement(child, child.children, initialValue)
|
|
66
|
+
});
|
|
67
|
+
} else {
|
|
68
|
+
filter.value = original.code;
|
|
69
|
+
filter.multi = false;
|
|
70
|
+
filter.selected = (initialValue && this.removeAccents(original.slug?.toLowerCase()) == this.removeAccents(initialValue?.toLowerCase()));
|
|
71
|
+
}
|
|
72
|
+
return filter;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { inject } from "@angular/core";
|
|
2
|
+
import { OptionsService } from "../../ec-services";
|
|
3
|
+
import { FilterElement, FilterType, IFilter } from "../../interfaces";
|
|
4
|
+
import { Filter } from "./filter";
|
|
5
|
+
|
|
6
|
+
export class CategoryFilter extends Filter{
|
|
7
|
+
private _optionsService: OptionsService = inject(OptionsService);
|
|
8
|
+
|
|
9
|
+
override data: FilterElement[] = [];
|
|
10
|
+
override multi: boolean = false;
|
|
11
|
+
|
|
12
|
+
constructor(private initialValues?: any,) {
|
|
13
|
+
super();
|
|
14
|
+
this._optionsService.getCategories().subscribe(res => {
|
|
15
|
+
//console.log(res);
|
|
16
|
+
this.setContent(res, initialValues);
|
|
17
|
+
})
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
override type(): FilterType {
|
|
21
|
+
return 'categories';
|
|
22
|
+
}
|
|
23
|
+
override setContent(options: any, initialValue?: any): void {
|
|
24
|
+
const categories = this._optionsService.generateMenu(options);
|
|
25
|
+
categories.forEach((filter: any, i: number) => filter = this.createElement(filter, options[i], initialValue));
|
|
26
|
+
this.data = categories;
|
|
27
|
+
}
|
|
28
|
+
override getContent(): FilterElement[] {
|
|
29
|
+
throw new Error("Method not implemented.");
|
|
30
|
+
}
|
|
31
|
+
override toUrlParams(actual_url = '', sublist?: any): string {
|
|
32
|
+
let elements = sublist || this.data;
|
|
33
|
+
elements.forEach((element: any) => {
|
|
34
|
+
if (element.type == 'sub' && !element.selected) {
|
|
35
|
+
const result = this.toUrlParams('', element.children);
|
|
36
|
+
!actual_url.includes(result) ? actual_url += result : null;
|
|
37
|
+
} else if (element.selected) {
|
|
38
|
+
if (actual_url == '') actual_url = '&category=' + element.value;
|
|
39
|
+
else actual_url = element.value;
|
|
40
|
+
}
|
|
41
|
+
})
|
|
42
|
+
return actual_url;
|
|
43
|
+
}
|
|
44
|
+
override createElement(filter: any, original: any, initialValue?: any) {
|
|
45
|
+
if (filter.type == 'sub') {
|
|
46
|
+
filter.multi = false;
|
|
47
|
+
filter.shape = 'text';
|
|
48
|
+
filter.value = original.code;
|
|
49
|
+
filter.selected = (initialValue && this.removeAccents(original.slug?.toLowerCase()) == this.removeAccents(initialValue?.toLowerCase()));
|
|
50
|
+
filter.children = filter.children.map((child:any, i:number) => this.createElement(child, original.children[i], initialValue));
|
|
51
|
+
} else {
|
|
52
|
+
filter.value = original.code;
|
|
53
|
+
filter.selected = (initialValue && this.removeAccents(original.slug?.toLowerCase()) == this.removeAccents(initialValue?.toLowerCase()));
|
|
54
|
+
}
|
|
55
|
+
return filter
|
|
56
|
+
}
|
|
57
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { FilterElement, FilterType, IFilter } from "../../interfaces";
|
|
2
|
+
import { Filter } from "./filter";
|
|
3
|
+
|
|
4
|
+
export class DynamicsFilter extends Filter{
|
|
5
|
+
generated_url = '';
|
|
6
|
+
override data: FilterElement[] = [];
|
|
7
|
+
override multi: boolean = true;
|
|
8
|
+
|
|
9
|
+
override type(): FilterType {
|
|
10
|
+
return 'dynamics';
|
|
11
|
+
}
|
|
12
|
+
override setContent(options: any): void {
|
|
13
|
+
options = options.map((option:any) => option = this.createElement(option));
|
|
14
|
+
this.data = options;
|
|
15
|
+
}
|
|
16
|
+
override getContent(): FilterElement[] {
|
|
17
|
+
throw new Error("Method not implemented.");
|
|
18
|
+
}
|
|
19
|
+
override toUrlParams = (actual_url = '&optionCodes=', sublist?:any, already?:any):string => {
|
|
20
|
+
let elements = sublist || this.data;
|
|
21
|
+
let aux_url = '';
|
|
22
|
+
elements.forEach((element:any) => {
|
|
23
|
+
if (element.type == 'sub') {
|
|
24
|
+
let result = this.toUrlParams('', element.children, (actual_url != '&optionCodes=' && actual_url != ''))
|
|
25
|
+
if (!actual_url.includes(result)) actual_url += this.cleanResult(result);
|
|
26
|
+
} else if (element.selected) {
|
|
27
|
+
if (actual_url == '&optionCodes=' && aux_url == '') {
|
|
28
|
+
aux_url = element.value;
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
if (aux_url == '') aux_url = (already ? '<and>' : '') + element.value;
|
|
32
|
+
else aux_url += ('<and>' + element.value);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
})
|
|
36
|
+
return actual_url + aux_url;
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
override createElement(option: any) {
|
|
40
|
+
option = {
|
|
41
|
+
title: option.label, useToFilter:option.useToFilter, type: 'sub', multi: false, code: option.code, shape: option.type, children: option.values.map((value:any) => {
|
|
42
|
+
return {
|
|
43
|
+
title: value.code,
|
|
44
|
+
description: value.name,
|
|
45
|
+
code: (option.code + ' ' + value.name),
|
|
46
|
+
type: 'child',
|
|
47
|
+
value: value.code,
|
|
48
|
+
selected: false,
|
|
49
|
+
image: value.image
|
|
50
|
+
}
|
|
51
|
+
})
|
|
52
|
+
}
|
|
53
|
+
return option;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
cleanResult(text:string) {return text.replace('&optionCodes=', '')};
|
|
57
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { FilterType, IFilter, PaginationSettings } from "../../interfaces";
|
|
2
|
+
import { AttributesFilter } from "./attributes-filter";
|
|
3
|
+
import { CategoryFilter } from "./category-filter";
|
|
4
|
+
import { DynamicsFilter } from "./dynamics-filter";
|
|
5
|
+
import { Filter } from "./filter";
|
|
6
|
+
import { SortFilter } from "./sort-filter";
|
|
7
|
+
|
|
8
|
+
export class FilterFactory {
|
|
9
|
+
public create(filterType: FilterType, productsFilter?: PaginationSettings): Filter {
|
|
10
|
+
switch (filterType) {
|
|
11
|
+
case 'categories':
|
|
12
|
+
return new CategoryFilter(productsFilter ? (productsFilter.type == 'categories' && productsFilter.value) : null);
|
|
13
|
+
case 'attributes':
|
|
14
|
+
return new AttributesFilter(productsFilter ? (productsFilter.type == 'attributes' && productsFilter.value) : null);
|
|
15
|
+
case 'dynamics':
|
|
16
|
+
return new DynamicsFilter();
|
|
17
|
+
case 'sort':
|
|
18
|
+
return new SortFilter();
|
|
19
|
+
default:
|
|
20
|
+
throw new Error("Not implemented")
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { FilterElement, FilterType, IFilter } from "../../interfaces";
|
|
2
|
+
|
|
3
|
+
export class Filter implements IFilter {
|
|
4
|
+
|
|
5
|
+
data: FilterElement[] = [];
|
|
6
|
+
multi: boolean = false;
|
|
7
|
+
|
|
8
|
+
type(): FilterType {
|
|
9
|
+
throw new Error("Method not implemented.");
|
|
10
|
+
}
|
|
11
|
+
setContent(options: any): void {
|
|
12
|
+
throw new Error("Method not implemented.");
|
|
13
|
+
}
|
|
14
|
+
getContent(): FilterElement[] {
|
|
15
|
+
throw new Error("Method not implemented.");
|
|
16
|
+
}
|
|
17
|
+
toUrlParams(): string {
|
|
18
|
+
throw new Error("Method not implemented.");
|
|
19
|
+
}
|
|
20
|
+
createElement(filter: any, original: any, initialValue?: any) {
|
|
21
|
+
throw new Error("Method not implemented.");
|
|
22
|
+
}
|
|
23
|
+
removeAccents = (str:string) => {
|
|
24
|
+
return str.normalize("NFD").replace(/[\u0300-\u036f]/g, "");
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
setSelected(element:any, value?:any){
|
|
28
|
+
//console.log(element, value);
|
|
29
|
+
((element.multi != undefined) && !element.multi) ? this.cleanFilter(this.data, element) : null;
|
|
30
|
+
this.setSelectedValue(element, value);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
cleanFilter = (data:any, element_to_change:any) => {
|
|
34
|
+
//console.log("cleanFilter");
|
|
35
|
+
element_to_change && data.forEach((element:any) => {
|
|
36
|
+
element_to_change != element ? element.selected = false : null;
|
|
37
|
+
(element.children && element.children.length > 0) && this.cleanFilter(element.children, element_to_change);
|
|
38
|
+
})
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
setSelectedValue(element:any, value?:any, sublist?:any, multi?:any){
|
|
42
|
+
let elements = sublist || this.data;
|
|
43
|
+
let index = elements.findIndex((subelement:any) => {
|
|
44
|
+
return (element.code || element) == subelement.code;
|
|
45
|
+
});
|
|
46
|
+
if (index >= 0) {
|
|
47
|
+
elements[index].selected = elements[index].selected ? false : true;
|
|
48
|
+
!multi && elements.forEach((child:any, i:number) => {
|
|
49
|
+
if (i != index) child.selected = false;
|
|
50
|
+
});
|
|
51
|
+
return {
|
|
52
|
+
elements,
|
|
53
|
+
founded: true
|
|
54
|
+
};
|
|
55
|
+
} else {
|
|
56
|
+
elements.some((elem:any) => elem.type == 'sub') && elements.some(
|
|
57
|
+
(filter:any) => {
|
|
58
|
+
let founded = false;
|
|
59
|
+
if (filter.type == 'sub') {
|
|
60
|
+
const result = this.setSelectedValue(element, value, filter.children, filter.multi);
|
|
61
|
+
if (result && result.founded) {
|
|
62
|
+
filter.children = result.elements;
|
|
63
|
+
founded = true;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return founded;
|
|
67
|
+
}
|
|
68
|
+
)
|
|
69
|
+
}
|
|
70
|
+
return null;
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
getSelectedList = (): any => this.findSelected(this.data, []);
|
|
74
|
+
|
|
75
|
+
findSelected = (elements: any[], result:any) => {
|
|
76
|
+
let element = elements.find(elem => elem.selected);
|
|
77
|
+
if (element) {
|
|
78
|
+
result.push(element.code);
|
|
79
|
+
return result;
|
|
80
|
+
}
|
|
81
|
+
elements.forEach(elem => {
|
|
82
|
+
if (elem.children && elem.children.length) {
|
|
83
|
+
let new_result = this.findSelected(elem.children, result);
|
|
84
|
+
if (new_result) result = new_result;
|
|
85
|
+
}
|
|
86
|
+
})
|
|
87
|
+
return result;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { inject } from "@angular/core";
|
|
2
|
+
import { CoreConstantsService } from "../../constants";
|
|
3
|
+
import { FilterElement, FilterType, IFilter } from "../../interfaces";
|
|
4
|
+
import { Filter } from "./filter";
|
|
5
|
+
|
|
6
|
+
export class SortFilter extends Filter {
|
|
7
|
+
private _consts: CoreConstantsService = inject(CoreConstantsService);
|
|
8
|
+
|
|
9
|
+
override data: FilterElement[] = [];
|
|
10
|
+
override multi: boolean = true;
|
|
11
|
+
|
|
12
|
+
constructor(){
|
|
13
|
+
super();
|
|
14
|
+
this.setContent();
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
override type(): FilterType {
|
|
18
|
+
return 'sort'
|
|
19
|
+
}
|
|
20
|
+
override setContent(): void {
|
|
21
|
+
this.data = [
|
|
22
|
+
{
|
|
23
|
+
title: 'price', type: 'sub', multi: false, code: 'price', shape: 'text', children: [
|
|
24
|
+
{ title: 'cheapest-first', code: 'price chip', type: 'child', value: 'asc', selected: false, multi: false, },
|
|
25
|
+
{ title: 'most-expensive-first', code: 'price expensive', type: 'child', value: 'desc', selected: false, multi: false, }
|
|
26
|
+
]
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
title: 'alphabetical-order', type: 'sub', code: 'order-alph', multi: false, shape: 'text', children: [
|
|
30
|
+
// { title: 'order-alph', type: 'child', code: 'alpha default', value: '', selected: false, multi: false },
|
|
31
|
+
{ title: 'ascendancy', type: 'child', code: 'alpha asc', value: 'asc', selected: false, multi: false, },
|
|
32
|
+
{ title: 'descendant', type: 'child', code: 'alpha desc', value: 'desc', selected: false, multi: false, }
|
|
33
|
+
]
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
title: 'created-date',
|
|
37
|
+
type: 'sub',
|
|
38
|
+
code: 'recent',
|
|
39
|
+
multi: false,
|
|
40
|
+
shape: 'text',
|
|
41
|
+
children: [
|
|
42
|
+
{ title: 'order-date', type: 'child', code: 'recent default', value: '', selected: false, multi: false },
|
|
43
|
+
{ title: 'newest-first', type: 'child', code: 'recent desc', value: 'desc', selected: false, multi: false },
|
|
44
|
+
{ title: 'oldest-first', type: 'child', code: 'recent asc', value: 'asc', selected: false, multi: false },
|
|
45
|
+
]
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
title: 'date-created',
|
|
49
|
+
type: 'sub',
|
|
50
|
+
code: 'update',
|
|
51
|
+
multi: false,
|
|
52
|
+
shape: 'text',
|
|
53
|
+
children: [
|
|
54
|
+
{ noUrl: true, title: 'newest-first', type: 'child', code: 'update asc', value: 'asc', selected: false, multi: false },
|
|
55
|
+
{ noUrl: true, title: 'oldest-first', type: 'child', code: 'update desc', value: 'desc', selected: false, multi: false },
|
|
56
|
+
]
|
|
57
|
+
}
|
|
58
|
+
]
|
|
59
|
+
|
|
60
|
+
if (!this._consts.getSortFilters().includes('all')) {
|
|
61
|
+
this.data = this.data.filter(elem => this._consts.getSortFilters().includes(elem.code))
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
override getContent(): FilterElement[] {
|
|
65
|
+
return this.data;
|
|
66
|
+
}
|
|
67
|
+
override toUrlParams(actual_url = '', sublist?:any, father?:any): string {
|
|
68
|
+
let elements = sublist || this.data;
|
|
69
|
+
elements.forEach((element:any) => {
|
|
70
|
+
if (!element.noUrl) { //Si es sin url, no se hace nada. Osea el filtrado es en la vista.
|
|
71
|
+
if (element.type == 'sub') {
|
|
72
|
+
const result = this.toUrlParams(actual_url, element.children, element.title);
|
|
73
|
+
!actual_url.includes(result) ? actual_url += result : null;
|
|
74
|
+
} else if (element.selected) {
|
|
75
|
+
actual_url = ('&sorting[' + this.translate(father) + ']=' + element.value);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
})
|
|
79
|
+
return actual_url;
|
|
80
|
+
}
|
|
81
|
+
override createElement(filter: any, original: any, initialValue?: any) {
|
|
82
|
+
throw new Error("Method not implemented.");
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
translate(value:string):string | null{
|
|
86
|
+
switch (value) {
|
|
87
|
+
case 'price': return 'price';
|
|
88
|
+
case 'created-date': return 'dateCreate';
|
|
89
|
+
case 'alphabetical-order': return 'name';
|
|
90
|
+
default: return null;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { Deserializable } from "../interfaces";
|
|
2
|
+
|
|
3
|
+
export class User implements Deserializable {
|
|
4
|
+
|
|
5
|
+
private readonly USER = 'USER';
|
|
6
|
+
public type = 'loguedin';
|
|
7
|
+
public config = {};
|
|
8
|
+
public client_id = 'demo_client';
|
|
9
|
+
public client_secret = 'secret_demo_client';
|
|
10
|
+
public grant_type = 'password';
|
|
11
|
+
public email = '';
|
|
12
|
+
public username = '';
|
|
13
|
+
public password = '';
|
|
14
|
+
public first_name = '';
|
|
15
|
+
public last_name = '';
|
|
16
|
+
public address = { country: '', city: '', state: '', address: '', postcode: '' };
|
|
17
|
+
public birthday = '';
|
|
18
|
+
public gender = '';
|
|
19
|
+
public phone_number = '';
|
|
20
|
+
public suscribed_to_newsletter: boolean = true;
|
|
21
|
+
public document_type? = '';
|
|
22
|
+
public preferred_card? = '';
|
|
23
|
+
public document_number? = '';
|
|
24
|
+
public channels = []
|
|
25
|
+
public customers = []
|
|
26
|
+
public token = '';
|
|
27
|
+
public typeUser? = null;
|
|
28
|
+
|
|
29
|
+
initilized(res: any) {
|
|
30
|
+
this.token = res.token
|
|
31
|
+
this.typeUser = res.hasOwnProperty('type') ? res.type : 'retail_customer'
|
|
32
|
+
this.username = res.username
|
|
33
|
+
this.email = res.username
|
|
34
|
+
this.channels = res.channels || []
|
|
35
|
+
this.customers = res.customers || []
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
deserialize(input: any): this {
|
|
39
|
+
return Object.assign(this, input);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
jsonify() {
|
|
43
|
+
return {
|
|
44
|
+
client_id: this.client_id,
|
|
45
|
+
client_secret: this.client_secret,
|
|
46
|
+
grant_type: this.grant_type,
|
|
47
|
+
username: this.username,
|
|
48
|
+
email: this.email,
|
|
49
|
+
password: this.password,
|
|
50
|
+
token: this.token,
|
|
51
|
+
typeUser: this.typeUser,
|
|
52
|
+
channels: this.channels,
|
|
53
|
+
customers: this.customers
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
public isSeller() { return this.typeUser && this.typeUser == 'seller' || false }
|
|
58
|
+
|
|
59
|
+
public setChannels(...channels: any): void { this.channels = channels }
|
|
60
|
+
|
|
61
|
+
public isWholesaler():boolean {
|
|
62
|
+
return this.typeUser && (this.typeUser == 'wholesaler_customer' || this.typeUser == 'seller') || false
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
static fromJson(data: any): User {
|
|
66
|
+
return Object.assign(new User(), data);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { inject, Injectable } from '@angular/core';
|
|
2
|
+
import { ENVIRONMENT_TOKEN } from '../providers';
|
|
3
|
+
import { Environment } from '../interfaces';
|
|
4
|
+
import { LocalStorageService } from '../ec-services';
|
|
5
|
+
import { TranslateService } from '@ngx-translate/core';
|
|
6
|
+
import { CoreConstantsService } from './core.constants.service';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Servicio que provee de datos que estan relacionado con las peticiones a la API
|
|
10
|
+
* @export
|
|
11
|
+
* @class ApiConstantsService
|
|
12
|
+
*/
|
|
13
|
+
@Injectable({
|
|
14
|
+
providedIn: 'root'
|
|
15
|
+
})
|
|
16
|
+
export class ApiConstantsService {
|
|
17
|
+
private _localStorage: LocalStorageService = inject(LocalStorageService);
|
|
18
|
+
private _translate: TranslateService = inject(TranslateService);
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Contiene los datos provisto por el frontend en el archivo environment.ts
|
|
22
|
+
*/
|
|
23
|
+
private environment:Environment = inject(ENVIRONMENT_TOKEN)
|
|
24
|
+
/**
|
|
25
|
+
* Canal actual del frontend
|
|
26
|
+
*/
|
|
27
|
+
public CHANNEL:string = this.environment.channel;
|
|
28
|
+
/**
|
|
29
|
+
* Locale actual del frontend
|
|
30
|
+
*/
|
|
31
|
+
public LOCALE:string = this.environment.locale;
|
|
32
|
+
/**
|
|
33
|
+
* URL del backend para realizar las peticiones
|
|
34
|
+
*/
|
|
35
|
+
public readonly API_URL:string = this.environment.apiUrl;
|
|
36
|
+
/**
|
|
37
|
+
* URL para las peticiones a shop-api
|
|
38
|
+
*/
|
|
39
|
+
public readonly SHOP_API_URL:string = 'shop-api/';
|
|
40
|
+
/**
|
|
41
|
+
* URL para las peticiones a cms
|
|
42
|
+
*/
|
|
43
|
+
public readonly CMS_URL:string = 'cms/';
|
|
44
|
+
/**
|
|
45
|
+
* URL base para realizar las peticiones a la API
|
|
46
|
+
*/
|
|
47
|
+
private urlBase: string = this.environment.apiUrl
|
|
48
|
+
/**
|
|
49
|
+
* Retorna la url base
|
|
50
|
+
* @returns {string}
|
|
51
|
+
*/
|
|
52
|
+
public getUrlBase(): string { return this.urlBase};
|
|
53
|
+
/**
|
|
54
|
+
* Cambia el canal actual
|
|
55
|
+
* @param code
|
|
56
|
+
* @returns
|
|
57
|
+
*/
|
|
58
|
+
public setChannel(code: string):void{ this.CHANNEL = code;}
|
|
59
|
+
|
|
60
|
+
public setLocale(locale: string):void{
|
|
61
|
+
this._localStorage.setItem(this.LOCALE_KEY, locale);
|
|
62
|
+
this._translate.use(locale.split('_')[0])
|
|
63
|
+
this.LOCALE = locale;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
//Storage key
|
|
67
|
+
private readonly LOCALE_KEY:string = 'LOCALE';
|
|
68
|
+
private readonly CHANNEL_KEY:string = 'CHANNEL';
|
|
69
|
+
}
|