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,210 @@
|
|
|
1
|
+
import { inject, Injectable, PLATFORM_ID } from '@angular/core';
|
|
2
|
+
import { ApiConstantsService } from './api.constants.service';
|
|
3
|
+
import { isPlatformBrowser } from '@angular/common';
|
|
4
|
+
import { CurrencyConfig, currencyType, ParamsProductsWithUniqueVariant } from '../interfaces';
|
|
5
|
+
/**
|
|
6
|
+
* Servicio que provee las constantes necesarias que se utilizan por toda la aplicación.
|
|
7
|
+
* @export
|
|
8
|
+
* @class CoreConstantsService
|
|
9
|
+
*/
|
|
10
|
+
@Injectable({
|
|
11
|
+
providedIn: 'root'
|
|
12
|
+
})
|
|
13
|
+
export class CoreConstantsService {
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Servicio que contiene las constantes usadas para la API
|
|
17
|
+
*/
|
|
18
|
+
private apiConstants = inject(ApiConstantsService)
|
|
19
|
+
/**
|
|
20
|
+
* Provee el ID de la plataforma en donde se esta ejecutando el codigo, esto sirve para poder diferenciar si es de un servidor o un navegador web.
|
|
21
|
+
*/
|
|
22
|
+
private platformId: any = inject(PLATFORM_ID)
|
|
23
|
+
/**
|
|
24
|
+
* Guarda la variable window del web browser.
|
|
25
|
+
*/
|
|
26
|
+
private window: any;
|
|
27
|
+
|
|
28
|
+
constructor() {
|
|
29
|
+
if (isPlatformBrowser(this.platformId)) {
|
|
30
|
+
this.window = window
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Path usado en las colecciones de productos.
|
|
35
|
+
*/
|
|
36
|
+
public PRODUCT_LIST_ROUTE: string = 'collection/';
|
|
37
|
+
/**
|
|
38
|
+
* Path usado para acceder a las secciones.
|
|
39
|
+
*/
|
|
40
|
+
public SECTIONS_ROUTE: string = 'sections/';
|
|
41
|
+
/**
|
|
42
|
+
* Path que aloja la carpeta de los assets.
|
|
43
|
+
*/
|
|
44
|
+
public readonly ASSETS_URL: string = this.apiConstants.API_URL;
|
|
45
|
+
/**
|
|
46
|
+
* Retorna la url donde se guarda las imagenes.
|
|
47
|
+
* @param postMedia
|
|
48
|
+
* @returns
|
|
49
|
+
*/
|
|
50
|
+
public mediaUrl = (postMedia?: string) => this.ASSETS_URL + (this.ASSETS_URL == this.apiConstants.API_URL ? 'media/' : '') + (postMedia ? postMedia : "image/");
|
|
51
|
+
/**
|
|
52
|
+
* Retorna la url de las imagenes de los banners
|
|
53
|
+
* @returns
|
|
54
|
+
*/
|
|
55
|
+
public mediaBannerUrl = () => this.ASSETS_URL + (this.ASSETS_URL == this.apiConstants.API_URL ? 'media/' : '') + "banner-image/";
|
|
56
|
+
/**
|
|
57
|
+
* Retorna `true` si la vista es mobile, `false` caso contrario.
|
|
58
|
+
* @returns {boolean}
|
|
59
|
+
*/
|
|
60
|
+
public mobileScreen = () => this.window?.innerWidth < 750;
|
|
61
|
+
/**
|
|
62
|
+
* Contiene los valores para la moneda actual
|
|
63
|
+
*/
|
|
64
|
+
public currency: CurrencyConfig = {
|
|
65
|
+
code: 'ARG',
|
|
66
|
+
symbol: '$',
|
|
67
|
+
position: 'Left',
|
|
68
|
+
withoutDecimal: false
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Arreglo de valores usados para el pipe currencyPrice
|
|
73
|
+
*/
|
|
74
|
+
public currencyTypeConfig: CurrencyConfig[] = [
|
|
75
|
+
{
|
|
76
|
+
code: 'EUR',
|
|
77
|
+
symbol: '€',
|
|
78
|
+
position: 'Right',
|
|
79
|
+
withoutDecimal: false
|
|
80
|
+
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
code: 'ARG',
|
|
84
|
+
symbol: '$',
|
|
85
|
+
position: 'Left',
|
|
86
|
+
withoutDecimal: false
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
code: 'ARS',
|
|
90
|
+
symbol: '$',
|
|
91
|
+
position: 'Left',
|
|
92
|
+
withoutDecimal: false
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
code: 'USD',
|
|
96
|
+
symbol: '$',
|
|
97
|
+
position: 'Left',
|
|
98
|
+
withoutDecimal: false
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
code: 'PYG',
|
|
102
|
+
symbol: 'Gs.',
|
|
103
|
+
position: 'Left',
|
|
104
|
+
withoutDecimal: false
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
code: 'PEN',
|
|
108
|
+
symbol: 'S/',
|
|
109
|
+
position: 'Left',
|
|
110
|
+
withoutDecimal: false
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
code: 'SEK',
|
|
114
|
+
symbol: 'SEK',
|
|
115
|
+
position: 'Right',
|
|
116
|
+
withoutDecimal: true
|
|
117
|
+
},
|
|
118
|
+
]
|
|
119
|
+
/**
|
|
120
|
+
* Cambia la configuración de la moneda.
|
|
121
|
+
* @param currencyTypeConfig Arreglo con las distintas monedas.
|
|
122
|
+
*/
|
|
123
|
+
public setCurrencyTypeConfig(currencyTypeConfig: CurrencyConfig[]) {
|
|
124
|
+
this.currencyTypeConfig = currencyTypeConfig;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* @param currencyTypeFind Definir el code del tipo de moneda que se quiera utilizar.
|
|
129
|
+
* Si el tipo es CUSTOM se toman los valores del segundo parametro donde se puede definir la simbología y posesión que se quiera.
|
|
130
|
+
* @param customType Formato del parámetro ejemplo { code: 'ARG', symbol: '$', position: 'L' , withoutDecimals: false } ,
|
|
131
|
+
* todas las key son opcionales y por defecto se toman los valores del ejemplo.
|
|
132
|
+
* @returns se retorna la configuración que se seteo a la propiedad currency del servicio.
|
|
133
|
+
*/
|
|
134
|
+
public setCurrency(currencyTypeFind: currencyType, customType?: CurrencyConfig): CurrencyConfig {
|
|
135
|
+
this.currency = this.currencyTypeConfig.find((ct: CurrencyConfig) => ct.code == currencyTypeFind.toUpperCase()) || this.currency
|
|
136
|
+
customType && (this.currency = { ...this.currency, ...customType })
|
|
137
|
+
return this.currency;
|
|
138
|
+
};
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
public modifyChannelConfig(channelConfig: any) {
|
|
142
|
+
if (channelConfig.channel || channelConfig.code)
|
|
143
|
+
this.apiConstants.setChannel(channelConfig.channel || channelConfig.code)
|
|
144
|
+
|
|
145
|
+
if (channelConfig.locale || channelConfig.locales.code)
|
|
146
|
+
this.apiConstants.setLocale(channelConfig.locale || channelConfig.locales.code)
|
|
147
|
+
|
|
148
|
+
if (channelConfig.currency || channelConfig.baseCurrency)
|
|
149
|
+
this.setCurrency(channelConfig.currency || channelConfig.baseCurrency)
|
|
150
|
+
|
|
151
|
+
return channelConfig;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
/**
|
|
155
|
+
* @description se utiliza para configurar que filtros del tipo `SortFilter` se quiere mostrar en la vista.
|
|
156
|
+
* Se usan los codigo de los filtros para indicar cuales se deben mostrar.
|
|
157
|
+
*/
|
|
158
|
+
private sortFilters: string[] = ['price', 'order-alph', 'recent']
|
|
159
|
+
|
|
160
|
+
/**
|
|
161
|
+
*
|
|
162
|
+
* @param filtersCode arreglo de strings con los codigos de los filtros.
|
|
163
|
+
* Si se le pasa el parametro **all** este mostrara todos.
|
|
164
|
+
* @example price | order-alph | recent | update | all
|
|
165
|
+
* @returns
|
|
166
|
+
*/
|
|
167
|
+
setSortFilters = (filtersCode: string[] = ['all']) => this.sortFilters = filtersCode;
|
|
168
|
+
|
|
169
|
+
getSortFilters = () => this.sortFilters;
|
|
170
|
+
|
|
171
|
+
// ABOUT PRODUCTS
|
|
172
|
+
private productsWithUniqueVariant: boolean = false;
|
|
173
|
+
setProductWithUniqueVariant(value: boolean) { this.productsWithUniqueVariant = value; }
|
|
174
|
+
getProductWithUniqueVariant() { return this.productsWithUniqueVariant }
|
|
175
|
+
|
|
176
|
+
/**
|
|
177
|
+
* @description esta variable se utiliza para configurar los parametros cuando se desea mostrar
|
|
178
|
+
* variantes el listado de productos.
|
|
179
|
+
* @param {string}type tipo de options
|
|
180
|
+
* @param {string}code codigo de options
|
|
181
|
+
* @param {boolean}defaultFirstOption `true` toma el primer option del producto en general
|
|
182
|
+
* @param {boolean}checkIfStock `true` se realiza un chequeo de si la variante tiene stock para mostrarla
|
|
183
|
+
* @example ```javascript
|
|
184
|
+
* {
|
|
185
|
+
type: 'color',
|
|
186
|
+
code: 'color',
|
|
187
|
+
defaultFirstOption: false ,
|
|
188
|
+
checkIfStock:true
|
|
189
|
+
} ```
|
|
190
|
+
*/
|
|
191
|
+
private paramsProductsWithUniqueVariant: ParamsProductsWithUniqueVariant = {
|
|
192
|
+
type: 'color',
|
|
193
|
+
code: 'color',
|
|
194
|
+
defaultFirstOption: false,
|
|
195
|
+
checkIfStock: true
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
setParamsProductsWithUniqueVariant = (value: ParamsProductsWithUniqueVariant) => {
|
|
199
|
+
this.paramsProductsWithUniqueVariant = {
|
|
200
|
+
...this.paramsProductsWithUniqueVariant,
|
|
201
|
+
...value
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
getParamsProductsWithUniqueVariant = () => this.paramsProductsWithUniqueVariant
|
|
206
|
+
|
|
207
|
+
public getChannel(){
|
|
208
|
+
return this.apiConstants.CHANNEL;
|
|
209
|
+
}
|
|
210
|
+
}
|
package/projects/ng-easycommerce/src/lib/ec-components/abstractions-components/block-ec.component.ts
ADDED
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { afterNextRender, Component, inject } from "@angular/core";
|
|
2
|
+
import { ApiConstantsService, CoreConstantsService } from "../../constants";
|
|
3
|
+
import { SwiperOptions } from "swiper/types";
|
|
4
|
+
/**
|
|
5
|
+
* Componente para abstraer la funcionalidad de los componentes
|
|
6
|
+
* y que puedan heredarla.
|
|
7
|
+
* @export
|
|
8
|
+
* @class BlockEcComponent
|
|
9
|
+
*/
|
|
10
|
+
@Component({
|
|
11
|
+
selector: 'lib-block-ec',
|
|
12
|
+
standalone: true,
|
|
13
|
+
imports: [],
|
|
14
|
+
template: '<p>Block Helper Component</p>'
|
|
15
|
+
})
|
|
16
|
+
export class BlockEcComponent {
|
|
17
|
+
/**
|
|
18
|
+
* Constantes del core
|
|
19
|
+
*/
|
|
20
|
+
private consts = inject(CoreConstantsService)
|
|
21
|
+
/**
|
|
22
|
+
* Constantes de la API
|
|
23
|
+
*/
|
|
24
|
+
protected apiConsts = inject(ApiConstantsService)
|
|
25
|
+
/**
|
|
26
|
+
* Url para las imagenes
|
|
27
|
+
*/
|
|
28
|
+
public mediaUrl = this.consts.mediaUrl()
|
|
29
|
+
/**
|
|
30
|
+
* Url para las imagenes de los banners
|
|
31
|
+
*/
|
|
32
|
+
public mediaBannerUrl = this.consts.mediaBannerUrl()
|
|
33
|
+
/**
|
|
34
|
+
* Si la vista es mobile o no.
|
|
35
|
+
*/
|
|
36
|
+
public mobileScreen:boolean = this.consts.mobileScreen();
|
|
37
|
+
|
|
38
|
+
constructor(){}
|
|
39
|
+
/**
|
|
40
|
+
* Esta función separa el código del bloque y se queda con el elemento en la posicion uno para usarlo como clase CSS.
|
|
41
|
+
* La idea es que el código del bloque mantenga un formato similar a **BLOQUE-[nombre]-[extra]...** entonces esta función
|
|
42
|
+
* se quedaria con lo que contiene **nombre** para usarlo como nombre de clase css.
|
|
43
|
+
* @param code Código del bloque.
|
|
44
|
+
* @returns {string}
|
|
45
|
+
*/
|
|
46
|
+
trimClassBlock (code:string):string {
|
|
47
|
+
return (code.split('-').length > 1) ? code.split('-')[1].toLowerCase() : ''
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Obtiene la imagen del banner dependiendo de si es para mobile o desktop
|
|
51
|
+
* @param banner
|
|
52
|
+
* @returns
|
|
53
|
+
*/
|
|
54
|
+
getBannerImage(banner: any):string {
|
|
55
|
+
return (this.mobileScreen && banner.translations[this.apiConsts.LOCALE].mobileImageName && banner.translations[this.apiConsts.LOCALE].mobileImageName != '')
|
|
56
|
+
? banner.translations[this.apiConsts.LOCALE].mobileImageName
|
|
57
|
+
: banner.translations[this.apiConsts.LOCALE].imageName;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Obtiene la imagen del banner dependiendo de si es para mobile o desktop.
|
|
62
|
+
* Le suma el path para las url del banner.
|
|
63
|
+
* @param banner
|
|
64
|
+
* @returns
|
|
65
|
+
*/
|
|
66
|
+
getImage(banner: any): string {
|
|
67
|
+
return this.mediaBannerUrl +
|
|
68
|
+
(this.mobileScreen && banner.translations[this.apiConsts.LOCALE].mobileImageName && banner.translations[this.apiConsts.LOCALE].mobileImageName != '')
|
|
69
|
+
? banner.translations[this.apiConsts.LOCALE].mobileImageName
|
|
70
|
+
: banner.translations[this.apiConsts.LOCALE].imageName
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Retorna la configuración base para el carrusel.
|
|
74
|
+
* Más detalles: {@link https://swiperjs.com/types/interfaces/types_swiper_options.SwiperOptions}
|
|
75
|
+
* @returns {SwiperOptions}
|
|
76
|
+
*
|
|
77
|
+
*/
|
|
78
|
+
swiperOptions():SwiperOptions {
|
|
79
|
+
return {
|
|
80
|
+
slidesPerView: 1,
|
|
81
|
+
autoplay: true,
|
|
82
|
+
loop: true,
|
|
83
|
+
speed: 1050,
|
|
84
|
+
pagination: true,
|
|
85
|
+
navigation: false,
|
|
86
|
+
autoHeight: true,
|
|
87
|
+
breakpoints: {
|
|
88
|
+
0: {
|
|
89
|
+
slidesPerView: 1
|
|
90
|
+
},
|
|
91
|
+
576:{
|
|
92
|
+
slidesPerView: 1
|
|
93
|
+
},
|
|
94
|
+
768: {
|
|
95
|
+
slidesPerView: 1,
|
|
96
|
+
},
|
|
97
|
+
992: {
|
|
98
|
+
slidesPerView: 1,
|
|
99
|
+
},
|
|
100
|
+
1200: {
|
|
101
|
+
slidesPerView: 1,
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
}
|
package/projects/ng-easycommerce/src/lib/ec-components/abstractions-components/menu-ec.component.ts
ADDED
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { afterNextRender, afterRender, Component, inject } from '@angular/core';
|
|
2
|
+
import { AuthService, OptionsService, ParametersService } from '../../ec-services';
|
|
3
|
+
import { map, Observable } from 'rxjs';
|
|
4
|
+
import { CoreConstantsService } from '../../constants';
|
|
5
|
+
import { Attribute, Category, Parameter, Section } from '../../interfaces';
|
|
6
|
+
/**
|
|
7
|
+
* Para diferenciar los tipos de Menu
|
|
8
|
+
*/
|
|
9
|
+
type MenuType = "category" | "attribute" | "section"
|
|
10
|
+
/**
|
|
11
|
+
* Componente que sirve para abstraer la funcionalidad que comparten
|
|
12
|
+
* el menú y el footer.
|
|
13
|
+
* @class MenuEcComponent
|
|
14
|
+
*/
|
|
15
|
+
@Component({
|
|
16
|
+
selector: 'lib-footer-ec',
|
|
17
|
+
standalone: true,
|
|
18
|
+
imports: [],
|
|
19
|
+
template: '<p>Menu and Footer Helper Component</p>'
|
|
20
|
+
})
|
|
21
|
+
export class MenuEcComponent {
|
|
22
|
+
private optionsService = inject(OptionsService)
|
|
23
|
+
private parametersService = inject(ParametersService)
|
|
24
|
+
private _authService: AuthService = inject(AuthService)
|
|
25
|
+
/**
|
|
26
|
+
* Constantes del core.
|
|
27
|
+
*/
|
|
28
|
+
private consts = inject(CoreConstantsService)
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Observable de categorias
|
|
32
|
+
*/
|
|
33
|
+
public categories$: Observable<Category[]> = this.optionsService.getCategories()
|
|
34
|
+
/**
|
|
35
|
+
* Observable de secciones
|
|
36
|
+
*/
|
|
37
|
+
public sections$: Observable<Section[]> = this.optionsService.getSections()
|
|
38
|
+
/**
|
|
39
|
+
* Observable de atributos
|
|
40
|
+
*/
|
|
41
|
+
public attributes$: Observable<Attribute[]> = this.optionsService.getAttributes()
|
|
42
|
+
/**
|
|
43
|
+
* Observable de parametros
|
|
44
|
+
*/
|
|
45
|
+
public parameters$: Observable<Parameter[] | null> = this.parametersService.getParameters()
|
|
46
|
+
/**
|
|
47
|
+
* Url para las imagenes guardades en el backend.
|
|
48
|
+
*/
|
|
49
|
+
public mediaUrl = this.consts.mediaUrl()
|
|
50
|
+
/**
|
|
51
|
+
* Funcion para saber si existen un parametro.
|
|
52
|
+
*/
|
|
53
|
+
public hasParams = this.parametersService.hasParams
|
|
54
|
+
|
|
55
|
+
constructor() {}
|
|
56
|
+
|
|
57
|
+
protected addChildren = (menuType: MenuType, code: string, item: any, stackPlace = 'end'): void => {
|
|
58
|
+
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/* protected addChildren = (menuItems: any[], code: string, item: any, stackPlace = 'end') => {
|
|
62
|
+
(stackPlace === 'start')
|
|
63
|
+
? menuItems.find(item => item.code?.toLowerCase().includes(code))?.children.unshift(item)
|
|
64
|
+
: menuItems.find(item => item.code?.toLowerCase().includes(code))?.children.push(item)
|
|
65
|
+
|
|
66
|
+
} */
|
|
67
|
+
/**
|
|
68
|
+
* Actualiza las categorias agregando nuevas.
|
|
69
|
+
* @param categories
|
|
70
|
+
*/
|
|
71
|
+
protected updateCategories(categories: Category[]) {
|
|
72
|
+
this.categories$ = this.categories$.pipe(map((data: Category[]) => {
|
|
73
|
+
return [...data, ...categories]
|
|
74
|
+
}))
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Actualiza las secciones agregando nuevas.
|
|
78
|
+
* @param sections
|
|
79
|
+
*/
|
|
80
|
+
protected updateSections(sections: Section[]) {
|
|
81
|
+
this.sections$ = this.sections$.pipe(map((data: Section[]) => {
|
|
82
|
+
return [...data, ...sections]
|
|
83
|
+
}))
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Actualiza el menú de atributos agredando nuevos.
|
|
87
|
+
* @param attributes
|
|
88
|
+
*/
|
|
89
|
+
protected updateAttributes(attributes: Attribute[]) {
|
|
90
|
+
this.attributes$ = this.attributes$.pipe(map((data: Attribute[]) => {
|
|
91
|
+
return [...data, ...attributes]
|
|
92
|
+
}))
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
public isAuthenticated() {
|
|
96
|
+
return this._authService.isAuthenticated();
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
public logout() {
|
|
100
|
+
this._authService.logout();
|
|
101
|
+
}
|
|
102
|
+
}
|
|
File without changes
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { LoginFormEcComponent } from "./login-form-ec/login-form-ec.component";
|
|
3
|
+
|
|
4
|
+
@Component({
|
|
5
|
+
selector: 'app-auth-ec',
|
|
6
|
+
standalone: true,
|
|
7
|
+
imports: [LoginFormEcComponent],
|
|
8
|
+
templateUrl: './auth-ec.component.html',
|
|
9
|
+
styleUrl: './auth-ec.component.scss'
|
|
10
|
+
})
|
|
11
|
+
export class AuthEcComponent {
|
|
12
|
+
|
|
13
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<div class="mt-5 mb-5">
|
|
2
|
+
<div class="row">
|
|
3
|
+
<div class="col-md-12 col-12 text-center">
|
|
4
|
+
<h4 class="confirm-title text-white py-3 text-uppercase d-inline-block">
|
|
5
|
+
{{ ('thanks-for-register' | translate) | uppercase }}</h4>
|
|
6
|
+
</div>
|
|
7
|
+
</div>
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
<div class="row">
|
|
11
|
+
<div class="col-md-12 col-12 text-center">
|
|
12
|
+
<h4>{{ 'thanks-for-register-detail' | translate }}</h4>
|
|
13
|
+
<a routerLink="/auth/login">
|
|
14
|
+
<button class="btn btn-primary my-4" type="button">{{ 'login' | translate |
|
|
15
|
+
uppercase }}</button>
|
|
16
|
+
</a>
|
|
17
|
+
</div>
|
|
18
|
+
</div>
|
|
19
|
+
</div>
|
|
File without changes
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { UpperCasePipe } from '@angular/common';
|
|
2
|
+
import { Component, inject, OnInit } from '@angular/core';
|
|
3
|
+
import { TranslateModule } from '@ngx-translate/core';
|
|
4
|
+
import { AuthService } from '../../../ec-services';
|
|
5
|
+
import { ActivatedRoute } from '@angular/router';
|
|
6
|
+
import { firstValueFrom } from 'rxjs';
|
|
7
|
+
|
|
8
|
+
@Component({
|
|
9
|
+
selector: 'app-confirm-account-ec',
|
|
10
|
+
standalone: true,
|
|
11
|
+
imports: [TranslateModule, UpperCasePipe],
|
|
12
|
+
templateUrl: './confirm-account-ec.component.html',
|
|
13
|
+
styleUrl: './confirm-account-ec.component.scss'
|
|
14
|
+
})
|
|
15
|
+
export class ConfirmAccountEcComponent implements OnInit {
|
|
16
|
+
|
|
17
|
+
private _authService: AuthService = inject(AuthService)
|
|
18
|
+
private _activedRoute: ActivatedRoute = inject(ActivatedRoute)
|
|
19
|
+
|
|
20
|
+
public ok:boolean = false;
|
|
21
|
+
public error:boolean = false;
|
|
22
|
+
|
|
23
|
+
ngOnInit(): void {
|
|
24
|
+
const token = this._activedRoute.snapshot.queryParams['token'];
|
|
25
|
+
firstValueFrom(this._authService.confirmAccount(token))
|
|
26
|
+
.then( res => {
|
|
27
|
+
this.ok = true;
|
|
28
|
+
}).catch( res => {
|
|
29
|
+
this.error = true;
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
<div class="container" id="passReset">
|
|
2
|
+
@if(!ready){
|
|
3
|
+
<div>
|
|
4
|
+
<form [formGroup]="form" (submit)="recoverPassword($event)" class="row justify-content-center">
|
|
5
|
+
<div class="col-12 col-md-10 text-center">
|
|
6
|
+
<h3>{{ 'set-forgot-email' | translate }}</h3>
|
|
7
|
+
<div class="element-container">
|
|
8
|
+
<input type="email" class="form-control" formControlName="email" />
|
|
9
|
+
</div>
|
|
10
|
+
<button class="btn btn-primary btn-passreset my-2" type="submit" [disabled]="form.invalid">{{ 'recover-password' | translate
|
|
11
|
+
}}</button>
|
|
12
|
+
@if(loading)
|
|
13
|
+
{
|
|
14
|
+
<app-loading-inline-ec />
|
|
15
|
+
}
|
|
16
|
+
</div>
|
|
17
|
+
</form>
|
|
18
|
+
</div>
|
|
19
|
+
} @else {
|
|
20
|
+
<div class="row d-flex justify-content-center">
|
|
21
|
+
<div class="col-12 col-md-8">
|
|
22
|
+
<div class="element-container text-center">
|
|
23
|
+
<h3>{{ 'mail-sent' | translate }}</h3>
|
|
24
|
+
</div>
|
|
25
|
+
<div class="element-container text-center">
|
|
26
|
+
<h5 class="center-text">{{ 'check-your-email' | translate }}</h5>
|
|
27
|
+
</div>
|
|
28
|
+
</div>
|
|
29
|
+
</div>
|
|
30
|
+
}
|
|
31
|
+
</div>
|
|
File without changes
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { Component, inject, signal } from '@angular/core';
|
|
2
|
+
import { FormBuilder, FormGroup, ReactiveFormsModule, Validators } from '@angular/forms';
|
|
3
|
+
import { TranslateModule } from '@ngx-translate/core';
|
|
4
|
+
import { LoadingInlineEcComponent } from "../../widgets-ec/loading";
|
|
5
|
+
import { firstValueFrom } from 'rxjs';
|
|
6
|
+
import { AuthService, ToastService } from '../../../ec-services';
|
|
7
|
+
|
|
8
|
+
@Component({
|
|
9
|
+
selector: 'app-forgot-password-ec',
|
|
10
|
+
standalone: true,
|
|
11
|
+
imports: [TranslateModule, ReactiveFormsModule, LoadingInlineEcComponent],
|
|
12
|
+
templateUrl: './forgot-password-ec.component.html',
|
|
13
|
+
styleUrl: './forgot-password-ec.component.scss'
|
|
14
|
+
})
|
|
15
|
+
export class ForgotPasswordEcComponent {
|
|
16
|
+
private _formBuilder: FormBuilder = inject(FormBuilder);
|
|
17
|
+
private _authService: AuthService = inject(AuthService);
|
|
18
|
+
private _toastService: ToastService = inject(ToastService);
|
|
19
|
+
/**
|
|
20
|
+
* Para indicarle a la vista que se realizo con exito la petición
|
|
21
|
+
*/
|
|
22
|
+
public ready: boolean = false;
|
|
23
|
+
/**
|
|
24
|
+
* Para mostrar el spinner.
|
|
25
|
+
*/
|
|
26
|
+
public loading: boolean = false;
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Contiene el formulario.
|
|
30
|
+
*/
|
|
31
|
+
public form:FormGroup;
|
|
32
|
+
|
|
33
|
+
constructor(){
|
|
34
|
+
this.form = this._formBuilder.group({
|
|
35
|
+
email: ['', [Validators.required, Validators.email]],
|
|
36
|
+
})
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Genera una petición al backend para recuperar la contraseña.
|
|
41
|
+
* @param event
|
|
42
|
+
*/
|
|
43
|
+
recoverPassword = (event:Event) => {
|
|
44
|
+
event.preventDefault();
|
|
45
|
+
this.loading = true;
|
|
46
|
+
firstValueFrom(this._authService.recoverPassword(this.form.value.email))
|
|
47
|
+
.then((res:any) => {
|
|
48
|
+
this.ready = true
|
|
49
|
+
}).catch((res:any) => {
|
|
50
|
+
(!res || res.error)
|
|
51
|
+
? this._toastService.show('non-existent-email')
|
|
52
|
+
: this._toastService.show(res.error);
|
|
53
|
+
}).finally(() => this.loading = false)
|
|
54
|
+
}
|
|
55
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export * from './auth-ec.component';
|
|
2
|
+
export * from './login-form-ec/login-form-ec.component';
|
|
3
|
+
export * from './forgot-password-ec/forgot-password-ec.component';
|
|
4
|
+
export * from './confirm-account-ec/confirm-account-ec.component';
|
|
5
|
+
export * from './register-form-ec/register-form-ec.component';
|
|
6
|
+
export * from './register-wholesaler-form-ec/register-wholesaler-form-ec.component';
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
<div class="d-flex flex-column position-relative">
|
|
2
|
+
<h1 class="right-line ff-ubuntu-light mb-2"><span>Ingresar</span></h1>
|
|
3
|
+
<p class="ff-ubuntu-light font-sm pr-4">
|
|
4
|
+
Si ya estás registrado. Ingresa en tu cuenta con tu email y la
|
|
5
|
+
contraseña adecuada.
|
|
6
|
+
</p>
|
|
7
|
+
<div class="w-md-50 w-100 text-center">
|
|
8
|
+
<form [formGroup]="loginForm()" (submit)="login($event)">
|
|
9
|
+
<input class="form-control mb-4 radius-0" type="email" formControlName="username"
|
|
10
|
+
placeholder="Correo Electrónico">
|
|
11
|
+
<input class="form-control mb-4 radius-0" type="password" formControlName="password"
|
|
12
|
+
placeholder="Contraseña">
|
|
13
|
+
|
|
14
|
+
<div class="row d-flex flex-column">
|
|
15
|
+
<div class="col-12">
|
|
16
|
+
<button type="submit"
|
|
17
|
+
class="bg-gray border-0 px-4 py-2 color-white ff-ubuntu-light">INGRESAR</button>
|
|
18
|
+
</div>
|
|
19
|
+
<div class="col-12 d-flex justify-content-center align-items-center">
|
|
20
|
+
<a [routerLink]="'/auth/forgot-password'" class="font-md ff-ubuntu-light">
|
|
21
|
+
¿Olvidó su contraseña?
|
|
22
|
+
</a>
|
|
23
|
+
</div>
|
|
24
|
+
</div>
|
|
25
|
+
</form>
|
|
26
|
+
</div>
|
|
27
|
+
@if(loading){
|
|
28
|
+
<app-loading-section-ec></app-loading-section-ec>
|
|
29
|
+
}
|
|
30
|
+
</div>
|
|
File without changes
|