ng-easycommerce 0.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.editorconfig +16 -0
- package/README.md +27 -0
- package/angular.json +48 -0
- package/package.json +57 -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,59 @@
|
|
|
1
|
+
<div id="container" class="flex-center generalContainer container-xl">
|
|
2
|
+
@if(payments && payments[0].method.code){
|
|
3
|
+
<div class="Main card my-2">
|
|
4
|
+
@if(this.blocks && this.blocks.length > 0){
|
|
5
|
+
@if(containsBlock(this.payments[0].method.code); as bloque) {
|
|
6
|
+
<div class="wrap my-4 card-body" [id]="bloque.code">
|
|
7
|
+
<div class="row">
|
|
8
|
+
<div class="col-md-12 col-12">
|
|
9
|
+
<h5 [class]="bloque.code+'-title'">{{ (bloque?.translations[locale]?.name ?
|
|
10
|
+
bloque.translations[locale].name :
|
|
11
|
+
'thanks-for-buying') | translate
|
|
12
|
+
| uppercase }}</h5>
|
|
13
|
+
</div>
|
|
14
|
+
</div>
|
|
15
|
+
<div class="row">
|
|
16
|
+
<div class="col-md-12 col-12 text-start">
|
|
17
|
+
<app-blocks-ec [section]="'info_metodo_pago'" [blockFilters]="payments[0].method.code">
|
|
18
|
+
</app-blocks-ec>
|
|
19
|
+
<div class="d-flex flex-column details">
|
|
20
|
+
<p class="card-text">{{ ('number' | translate) + ': ' + params.external_reference }}</p>
|
|
21
|
+
<p class="card-text">{{((params.payment_status || 'pending') | translate)}}</p>
|
|
22
|
+
</div>
|
|
23
|
+
</div>
|
|
24
|
+
</div>
|
|
25
|
+
</div>
|
|
26
|
+
}@else {
|
|
27
|
+
<ng-container *ngTemplateOutlet="notInfoToMethodTemplate ? notInfoToMethodTemplate : notInfoToMethod; context: { $implicit: params }"></ng-container>
|
|
28
|
+
}
|
|
29
|
+
} @else{
|
|
30
|
+
<ng-container *ngTemplateOutlet="notInfoToMethodTemplate ? notInfoToMethodTemplate : notInfoToMethod; context: { $implicit: params }"></ng-container>
|
|
31
|
+
}
|
|
32
|
+
</div>
|
|
33
|
+
} @else {
|
|
34
|
+
<app-loading-full-ec></app-loading-full-ec>
|
|
35
|
+
}
|
|
36
|
+
</div>
|
|
37
|
+
|
|
38
|
+
<ng-template #notInfoToMethod let-params>
|
|
39
|
+
|
|
40
|
+
<div class="wrap my-4 card-body">
|
|
41
|
+
<div class="row">
|
|
42
|
+
<div class="col-md-12 col-12">
|
|
43
|
+
<h5 class="card-title titpage center-block text-center">
|
|
44
|
+
{{ 'thanks-for-buying' | translate | uppercase }}
|
|
45
|
+
</h5>
|
|
46
|
+
</div>
|
|
47
|
+
</div>
|
|
48
|
+
<div class="row">
|
|
49
|
+
<div class="col-md-12 col-12 text-center py-3">
|
|
50
|
+
<h4 class="thanks-details">{{ 'thanks-details' | translate }}</h4>
|
|
51
|
+
<h5 class="number">{{ ('number' | translate) + ': ' + params.external_reference }}</h5>
|
|
52
|
+
<h5 class="pending">{{ ((params.payment_status || 'pending') | translate) }}</h5>
|
|
53
|
+
<!-- <h5 *ngIf="!from_mp">{{ ('will_contact' | translate) }}</h5> -->
|
|
54
|
+
|
|
55
|
+
<!-- <a routerLink="/collection"><button class="comprar">{{ 'continue-shopping' | translate }}</button></a> -->
|
|
56
|
+
</div>
|
|
57
|
+
</div>
|
|
58
|
+
</div>
|
|
59
|
+
</ng-template>
|
|
File without changes
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { Component, inject, OnInit, TemplateRef } from '@angular/core';
|
|
2
|
+
import { LoadingFullEcComponent } from '../../widgets-ec';
|
|
3
|
+
import { BlocksEcComponent } from '../../blocks-ec';
|
|
4
|
+
import { ApiConstantsService } from '../../../constants';
|
|
5
|
+
import { TranslateModule } from '@ngx-translate/core';
|
|
6
|
+
import { CommonModule, UpperCasePipe } from '@angular/common';
|
|
7
|
+
import { BlocksService, CartService, CheckoutService } from '../../../ec-services';
|
|
8
|
+
import { ActivatedRoute, Router } from '@angular/router';
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
@Component({
|
|
12
|
+
selector: 'app-order-success-ec',
|
|
13
|
+
standalone: true,
|
|
14
|
+
templateUrl: './success-ec.component.html',
|
|
15
|
+
styleUrls: ['./success-ec.component.scss'],
|
|
16
|
+
imports: [BlocksEcComponent, LoadingFullEcComponent, TranslateModule, UpperCasePipe, CommonModule]
|
|
17
|
+
})
|
|
18
|
+
export class SuccessEcComponent implements OnInit {
|
|
19
|
+
private _apiConsts: ApiConstantsService = inject(ApiConstantsService)
|
|
20
|
+
private _cartService: CartService = inject(CartService)
|
|
21
|
+
private _router: Router = inject(Router)
|
|
22
|
+
private _activatedRoute: ActivatedRoute = inject(ActivatedRoute)
|
|
23
|
+
private _checkoutService: CheckoutService = inject(CheckoutService)
|
|
24
|
+
private _blocksService: BlocksService = inject(BlocksService);
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
public locale = this._apiConsts.LOCALE;
|
|
28
|
+
|
|
29
|
+
public orderDetails = {};
|
|
30
|
+
public params: any = {};
|
|
31
|
+
public from_mp = true;
|
|
32
|
+
public payments: any;
|
|
33
|
+
public blocks: any;
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* @description variable para recibir un template en caso de que se quiera cambiar la informacion por defecto.
|
|
37
|
+
*/
|
|
38
|
+
public notInfoToMethodTemplate:TemplateRef<any> | null = null;
|
|
39
|
+
|
|
40
|
+
constructor() { }
|
|
41
|
+
|
|
42
|
+
ngOnInit() {
|
|
43
|
+
this._checkoutService.order$.subscribe(
|
|
44
|
+
res => {
|
|
45
|
+
//console.log('LO QUE LLEGA EN ORDEN', res);
|
|
46
|
+
res?.number ? this.params = {
|
|
47
|
+
external_reference: res.number,
|
|
48
|
+
} : null
|
|
49
|
+
//this.payments = [{method:{code:'bank_transsfer'}}]
|
|
50
|
+
this.payments = res?.payments ? res.payments : null
|
|
51
|
+
},
|
|
52
|
+
);
|
|
53
|
+
|
|
54
|
+
this._blocksService.getBlocks('info_metodo_pago')
|
|
55
|
+
this._blocksService.blocks$.subscribe(res => this.blocks = res)
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* @description Chequea si existe un bloque recibido por parametro.
|
|
60
|
+
* @param codeBlock codigo del bloque.
|
|
61
|
+
* @returns el bloque si lo encontro.
|
|
62
|
+
*/
|
|
63
|
+
containsBlock(codeBlock: string): any { return this.blocks.find((block:any) => block.code == codeBlock) }
|
|
64
|
+
|
|
65
|
+
}
|
package/projects/ng-easycommerce/src/lib/ec-components/collection-ec/collection-ec.component.html
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
<section class="container-xl mb-5">
|
|
2
|
+
<div class="row m-0 p-0">
|
|
3
|
+
<div class="d-none d-lg-block col-3">
|
|
4
|
+
<!--Filtros-->
|
|
5
|
+
</div>
|
|
6
|
+
|
|
7
|
+
<div class="col-12 col-lg-9 mt-2 p-0">
|
|
8
|
+
<div class="container">
|
|
9
|
+
<!-- @for(['a', 'b', 'c', 'd'] as product){
|
|
10
|
+
|
|
11
|
+
} -->
|
|
12
|
+
</div>
|
|
13
|
+
</div>
|
|
14
|
+
|
|
15
|
+
</div>
|
|
16
|
+
</section>
|
package/projects/ng-easycommerce/src/lib/ec-components/collection-ec/collection-ec.component.scss
ADDED
|
File without changes
|
package/projects/ng-easycommerce/src/lib/ec-components/collection-ec/collection-ec.component.ts
ADDED
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { afterNextRender, Component, HostListener, inject, Input, OnInit, signal } from '@angular/core';
|
|
2
|
+
import { DefaultFilter, FilterType, PaginationSettings, Product } from '../../interfaces';
|
|
3
|
+
import { AuthService, FiltersService, OptionsService, ProductsService } from '../../ec-services';
|
|
4
|
+
import { ActivatedRoute } from '@angular/router';
|
|
5
|
+
import { CoreConstantsService } from '../../constants';
|
|
6
|
+
import { combineLatest, forkJoin, map, Observable, take } from 'rxjs';
|
|
7
|
+
import { Filter } from '../../classes';
|
|
8
|
+
import { InfiniteScrollDirective } from "ngx-infinite-scroll";
|
|
9
|
+
@Component({
|
|
10
|
+
selector: 'lib-collection-ec',
|
|
11
|
+
standalone: true,
|
|
12
|
+
imports: [InfiniteScrollDirective],
|
|
13
|
+
templateUrl: './collection-ec.component.html',
|
|
14
|
+
styleUrl: './collection-ec.component.scss'
|
|
15
|
+
})
|
|
16
|
+
export class CollectionEcComponent implements OnInit {
|
|
17
|
+
|
|
18
|
+
protected _productsService: ProductsService = inject(ProductsService)
|
|
19
|
+
protected _activeRoute: ActivatedRoute = inject(ActivatedRoute)
|
|
20
|
+
protected _optionsService: OptionsService = inject(OptionsService)
|
|
21
|
+
|
|
22
|
+
public params$ = this._activeRoute.params
|
|
23
|
+
//public ready = this._optionsService.ready
|
|
24
|
+
public queryParams$ = this._activeRoute.queryParams
|
|
25
|
+
public products$ = this._productsService.products$
|
|
26
|
+
//public products$ = []
|
|
27
|
+
|
|
28
|
+
public authService: AuthService = inject(AuthService)
|
|
29
|
+
public constanst: CoreConstantsService = inject(CoreConstantsService)
|
|
30
|
+
|
|
31
|
+
public products: Product[] = [];
|
|
32
|
+
public defaultFilters: DefaultFilter[] = [];
|
|
33
|
+
public loading:Boolean = false;
|
|
34
|
+
public countProducts = signal<number>(0)
|
|
35
|
+
private loaded = false;
|
|
36
|
+
|
|
37
|
+
@Input() optionsFilters: FilterType[] = ['all'];
|
|
38
|
+
|
|
39
|
+
filters_sort:Filter[] = [];
|
|
40
|
+
|
|
41
|
+
private _filtersService: FiltersService = inject(FiltersService)
|
|
42
|
+
public filters$: Observable<Filter[]> = this._filtersService.filters$;
|
|
43
|
+
public ready$: Observable<boolean> = this._filtersService.ready$;
|
|
44
|
+
|
|
45
|
+
private window:any;
|
|
46
|
+
|
|
47
|
+
ngOnInit(): void {
|
|
48
|
+
this.getProducts();
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
//protected readonly questions = signal<Question[]>([]);
|
|
52
|
+
private total = 0;
|
|
53
|
+
|
|
54
|
+
constructor() {
|
|
55
|
+
afterNextRender(()=> {
|
|
56
|
+
this.window = window;
|
|
57
|
+
this.window?.scroll(0,0)
|
|
58
|
+
})
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
getProducts(): void {
|
|
62
|
+
combineLatest([this.params$, this.queryParams$]).subscribe({
|
|
63
|
+
next: ([params, queryParams]) => {
|
|
64
|
+
const paginationSettings:PaginationSettings = {
|
|
65
|
+
latest:true,
|
|
66
|
+
limit:10,
|
|
67
|
+
type: params['type'] || null,
|
|
68
|
+
value: params['value'] || null
|
|
69
|
+
}
|
|
70
|
+
//console.log(ready,"actualizar")
|
|
71
|
+
console.log(params['type'], params['value'])
|
|
72
|
+
/* console.log(paginationSettings) */
|
|
73
|
+
this._productsService.getProductsForFilter(paginationSettings, queryParams["search"]);
|
|
74
|
+
}
|
|
75
|
+
})
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
onScroll() {
|
|
79
|
+
this.loading = true;
|
|
80
|
+
this._productsService.updateProducts()
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<p>coupon-ec works!</p>
|
|
File without changes
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Component, inject } from '@angular/core';
|
|
2
|
+
import { CartService } from '../../ec-services';
|
|
3
|
+
import { Observable } from 'rxjs';
|
|
4
|
+
|
|
5
|
+
@Component({
|
|
6
|
+
selector: 'app-coupon-ec',
|
|
7
|
+
standalone: true,
|
|
8
|
+
imports: [],
|
|
9
|
+
templateUrl: './coupon-ec.component.html',
|
|
10
|
+
styleUrl: './coupon-ec.component.scss'
|
|
11
|
+
})
|
|
12
|
+
export class CouponEcComponent {
|
|
13
|
+
private _cartService: CartService = inject(CartService);
|
|
14
|
+
public coupon$: Observable<any> = this._cartService.coupon$
|
|
15
|
+
public couponValue: string = "";
|
|
16
|
+
|
|
17
|
+
addCoupon(){
|
|
18
|
+
this.validCoupon() && this._cartService.addCoupon(this.couponValue)
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
validCoupon(): boolean {
|
|
22
|
+
if(this.couponValue){
|
|
23
|
+
return /^([A-Za-z\-0-9]*)\w+$/.test(this.couponValue);
|
|
24
|
+
} else {
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
removeCoupon(){
|
|
30
|
+
this._cartService.removeCoupon()
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<p>filters-ec works!</p>
|
|
File without changes
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { Component, inject } from '@angular/core';
|
|
2
|
+
import { FiltersService } from '../../ec-services';
|
|
3
|
+
import { Filter } from '../../classes';
|
|
4
|
+
import { FilterElement, FilterType } from '../../interfaces';
|
|
5
|
+
|
|
6
|
+
@Component({
|
|
7
|
+
selector: 'lib-filters-ec',
|
|
8
|
+
standalone: true,
|
|
9
|
+
imports: [],
|
|
10
|
+
templateUrl: './filters-ec.component.html',
|
|
11
|
+
styleUrl: './filters-ec.component.scss'
|
|
12
|
+
})
|
|
13
|
+
export class FiltersEcComponent {
|
|
14
|
+
private _filtersService: FiltersService = inject(FiltersService);
|
|
15
|
+
public filters: Filter[] = [];
|
|
16
|
+
public filter$ = this._filtersService.filters$;
|
|
17
|
+
|
|
18
|
+
constructor() {
|
|
19
|
+
this.filter$.subscribe( res => {
|
|
20
|
+
this.filters = this._filtersService.getSpecificFilters(['attributes', 'categories', 'dynamics'])
|
|
21
|
+
})
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
getSpecificFilter(type:FilterType): Filter | null{
|
|
25
|
+
const filter = this.filters.find(filter => filter.type() === type)
|
|
26
|
+
return filter || null;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/*Obtiene el filtro elegido en el select, lo pasa al setSelect
|
|
30
|
+
para que se marque seleccionado*/
|
|
31
|
+
onSelect(event:any,filter:FilterElement[] | null){
|
|
32
|
+
console.log(filter)
|
|
33
|
+
/* const selectedOption = filter
|
|
34
|
+
.flatMap(category => category.children)
|
|
35
|
+
.filter(option => option?.code === event.target.value)
|
|
36
|
+
.pop()
|
|
37
|
+
selectedOption && this._filtersService.setFilterSelected(this.filters[0], selectedOption) */
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
setSelected(filter:Filter | null, selected:FilterElement){
|
|
41
|
+
console.log("set",filter);
|
|
42
|
+
filter && this._filtersService.setFilterSelected(filter, selected)
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<p>filters-sort works!</p>
|
|
File without changes
|
package/projects/ng-easycommerce/src/lib/ec-components/filters-sort-ec/filters-sort-ec.component.ts
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { Component, EventEmitter, inject, Input, Output } from '@angular/core';
|
|
2
|
+
import { FiltersService } from '../../ec-services';
|
|
3
|
+
import { Filter } from '../../classes';
|
|
4
|
+
import { FilterElement } from '../../interfaces';
|
|
5
|
+
//import { FilterElement } from ';
|
|
6
|
+
|
|
7
|
+
@Component({
|
|
8
|
+
selector: 'app-filters-sort-ec',
|
|
9
|
+
standalone: true,
|
|
10
|
+
imports: [],
|
|
11
|
+
templateUrl: './filters-sort-ec.component.html',
|
|
12
|
+
styleUrl: './filters-sort-ec.component.scss'
|
|
13
|
+
})
|
|
14
|
+
export class FiltersSortEcComponent {
|
|
15
|
+
private _filtersService: FiltersService = inject(FiltersService);
|
|
16
|
+
public filters: Filter[] = [];
|
|
17
|
+
public filter$ = this._filtersService.filters$;
|
|
18
|
+
//@Input() filters: Filter[] = [];
|
|
19
|
+
@Output() changeFilter = new EventEmitter();
|
|
20
|
+
|
|
21
|
+
constructor() {
|
|
22
|
+
this.filter$.subscribe( res => {
|
|
23
|
+
this.filters = this._filtersService.getSpecificFilters(['sort'])
|
|
24
|
+
//console.log(this.filters);
|
|
25
|
+
})
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/*Obtiene el filtro elegido en el select, lo pasa al setSelect
|
|
29
|
+
para que se marque seleccionado*/
|
|
30
|
+
onSelect(event:any,filter:FilterElement[]){
|
|
31
|
+
//console.log(filter)
|
|
32
|
+
const selectedOption = filter
|
|
33
|
+
.flatMap(category => category.children)
|
|
34
|
+
.filter(option => option?.code === event.target.value)
|
|
35
|
+
.pop()
|
|
36
|
+
selectedOption && this._filtersService.setFilterSelected(this.filters[0], selectedOption)
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/* Retornar los filtros autorizados para el usuario logueado */
|
|
40
|
+
/* filtersNotAuth = (filters, ...code) => {
|
|
41
|
+
//console.log(this.filters)
|
|
42
|
+
if (!this.authService.isAuthenticated()) {
|
|
43
|
+
filters = filters.filter(attr => code.indexOf(attr['code']) >= 0)
|
|
44
|
+
this.filters[0].data = filters
|
|
45
|
+
}
|
|
46
|
+
return filters
|
|
47
|
+
} */
|
|
48
|
+
|
|
49
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<p>footer-ec works!</p>
|
|
File without changes
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
|
2
|
+
|
|
3
|
+
import { FooterEcComponent } from './footer-ec.component';
|
|
4
|
+
|
|
5
|
+
describe('FooterEcComponent', () => {
|
|
6
|
+
let component: FooterEcComponent;
|
|
7
|
+
let fixture: ComponentFixture<FooterEcComponent>;
|
|
8
|
+
|
|
9
|
+
beforeEach(async () => {
|
|
10
|
+
await TestBed.configureTestingModule({
|
|
11
|
+
imports: [FooterEcComponent]
|
|
12
|
+
})
|
|
13
|
+
.compileComponents();
|
|
14
|
+
|
|
15
|
+
fixture = TestBed.createComponent(FooterEcComponent);
|
|
16
|
+
component = fixture.componentInstance;
|
|
17
|
+
fixture.detectChanges();
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
it('should create', () => {
|
|
21
|
+
expect(component).toBeTruthy();
|
|
22
|
+
});
|
|
23
|
+
});
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Component} from '@angular/core';
|
|
2
|
+
import { AsyncPipe } from '@angular/common';
|
|
3
|
+
import { MenuEcComponent } from '../abstractions-components';
|
|
4
|
+
/**
|
|
5
|
+
* Componente que se encarga de manejar la funcionalidad del Footer.
|
|
6
|
+
* @extends {MenuEcComponent}
|
|
7
|
+
*/
|
|
8
|
+
@Component({
|
|
9
|
+
selector: 'lib-footer-ec',
|
|
10
|
+
standalone: true,
|
|
11
|
+
imports: [AsyncPipe],
|
|
12
|
+
templateUrl: './footer-ec.component.html',
|
|
13
|
+
styleUrl: './footer-ec.component.scss'
|
|
14
|
+
})
|
|
15
|
+
export class FooterEcComponent extends MenuEcComponent{
|
|
16
|
+
|
|
17
|
+
}
|
|
18
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<p>header-ec works!</p>
|
|
File without changes
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
|
2
|
+
|
|
3
|
+
import { HeaderEcComponent } from './header-ec.component';
|
|
4
|
+
|
|
5
|
+
describe('HeaderEcComponent', () => {
|
|
6
|
+
let component: HeaderEcComponent;
|
|
7
|
+
let fixture: ComponentFixture<HeaderEcComponent>;
|
|
8
|
+
|
|
9
|
+
beforeEach(async () => {
|
|
10
|
+
await TestBed.configureTestingModule({
|
|
11
|
+
imports: [HeaderEcComponent]
|
|
12
|
+
})
|
|
13
|
+
.compileComponents();
|
|
14
|
+
|
|
15
|
+
fixture = TestBed.createComponent(HeaderEcComponent);
|
|
16
|
+
component = fixture.componentInstance;
|
|
17
|
+
fixture.detectChanges();
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
it('should create', () => {
|
|
21
|
+
expect(component).toBeTruthy();
|
|
22
|
+
});
|
|
23
|
+
});
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { afterNextRender, Component, inject } from '@angular/core';
|
|
2
|
+
import { TitleCasePipe } from '@angular/common';
|
|
3
|
+
import { MenuEcComponent } from '../abstractions-components';
|
|
4
|
+
import { CartService, ToastService } from '../../ec-services';
|
|
5
|
+
import { Observable } from 'rxjs';
|
|
6
|
+
import { AuthService } from '../../ec-services';
|
|
7
|
+
/**
|
|
8
|
+
* Componente que se encarga de manejar la funcionalidad del Header.
|
|
9
|
+
*/
|
|
10
|
+
@Component({
|
|
11
|
+
selector: 'lib-header-ec',
|
|
12
|
+
standalone: true,
|
|
13
|
+
imports: [TitleCasePipe],
|
|
14
|
+
templateUrl: './header-ec.component.html',
|
|
15
|
+
styleUrl: './header-ec.component.scss'
|
|
16
|
+
})
|
|
17
|
+
export class HeaderEcComponent extends MenuEcComponent {
|
|
18
|
+
public _cartService: CartService = inject(CartService);
|
|
19
|
+
public authService: AuthService = inject(AuthService);
|
|
20
|
+
public count$: Observable<number> = this._cartService.getCountCartItems();
|
|
21
|
+
|
|
22
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<p>home-ec works!</p>
|
|
File without changes
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
|
2
|
+
|
|
3
|
+
import { HomeEcComponent } from './home-ec.component';
|
|
4
|
+
|
|
5
|
+
describe('HomeEcComponent', () => {
|
|
6
|
+
let component: HomeEcComponent;
|
|
7
|
+
let fixture: ComponentFixture<HomeEcComponent>;
|
|
8
|
+
|
|
9
|
+
beforeEach(async () => {
|
|
10
|
+
await TestBed.configureTestingModule({
|
|
11
|
+
imports: [HomeEcComponent]
|
|
12
|
+
})
|
|
13
|
+
.compileComponents();
|
|
14
|
+
|
|
15
|
+
fixture = TestBed.createComponent(HomeEcComponent);
|
|
16
|
+
component = fixture.componentInstance;
|
|
17
|
+
fixture.detectChanges();
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
it('should create', () => {
|
|
21
|
+
expect(component).toBeTruthy();
|
|
22
|
+
});
|
|
23
|
+
});
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Component, inject } from '@angular/core';
|
|
2
|
+
import { CoreConstantsService } from '../../constants';
|
|
3
|
+
import { BlocksService } from '../../ec-services';
|
|
4
|
+
/**
|
|
5
|
+
* Componente que se encarga de manejar el Home de la aplicación.
|
|
6
|
+
*/
|
|
7
|
+
@Component({
|
|
8
|
+
selector: 'lib-home-ec',
|
|
9
|
+
standalone: true,
|
|
10
|
+
imports: [],
|
|
11
|
+
templateUrl: './home-ec.component.html',
|
|
12
|
+
styleUrl: './home-ec.component.scss'
|
|
13
|
+
})
|
|
14
|
+
export class HomeEcComponent {
|
|
15
|
+
|
|
16
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export * from './footer-ec/footer-ec.component';
|
|
2
|
+
export * from './header-ec/header-ec.component';
|
|
3
|
+
export * from './home-ec/home-ec.component';
|
|
4
|
+
export * from './blocks-ec/blocks-ec.component';
|
|
5
|
+
export * from './product-ec/product-ec.component';
|
|
6
|
+
export * from './collection-ec/collection-ec.component';
|
|
7
|
+
export * from './filters-sort-ec/filters-sort-ec.component';
|
|
8
|
+
export * from './widgets-ec';
|
|
9
|
+
export * from './auth-ec';
|
|
10
|
+
export * from './filters-ec/filters-ec.component';
|
|
11
|
+
export * from './product-detail-ec/product-detail-ec.component';
|
|
12
|
+
export * from './variants-ec/variants-ec.component';
|
|
13
|
+
export * from './breadcrumb-ec/breadcrumb-ec.component';
|
|
14
|
+
export * from './cart-ec';
|
|
15
|
+
export * from './coupon-ec/coupon-ec.component';
|
|
16
|
+
export * from './checkout-ec/checkout-ec.component';
|
|
17
|
+
export * from './checkout-ec/success-ec/success-ec.component';
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { Component, computed, inject, signal, WritableSignal } from '@angular/core';
|
|
2
|
+
import { ProductDetailService, ProductsService, ToastService } from '../../ec-services';
|
|
3
|
+
import { Observable } from 'rxjs';
|
|
4
|
+
import { Product } from '../../interfaces';
|
|
5
|
+
import { ActivatedRoute } from '@angular/router';
|
|
6
|
+
import { DomSanitizer } from '@angular/platform-browser';
|
|
7
|
+
import { CoreConstantsService } from '../../constants';
|
|
8
|
+
|
|
9
|
+
@Component({
|
|
10
|
+
selector: 'app-product-detail-ec',
|
|
11
|
+
standalone: true,
|
|
12
|
+
imports: [],
|
|
13
|
+
templateUrl: './product-detail-ec.component.html',
|
|
14
|
+
styleUrl: './product-detail-ec.component.scss'
|
|
15
|
+
})
|
|
16
|
+
export class ProductDetailEcComponent {
|
|
17
|
+
private _productDetailService: ProductDetailService = inject(ProductDetailService);
|
|
18
|
+
private _productService: ProductsService = inject(ProductsService);
|
|
19
|
+
private _activedRoute: ActivatedRoute = inject(ActivatedRoute);
|
|
20
|
+
private _domSanitizer: DomSanitizer = inject(DomSanitizer);
|
|
21
|
+
private _consts:CoreConstantsService = inject(CoreConstantsService);
|
|
22
|
+
private _toastService: ToastService = inject(ToastService);
|
|
23
|
+
|
|
24
|
+
public product$: Observable<Product | null> = this._productDetailService.product$;
|
|
25
|
+
public options$: Observable<any> = this._productDetailService.options$;
|
|
26
|
+
public data$: Observable<any> = this._productDetailService.associatedData$;
|
|
27
|
+
public mediaUrl = this._consts.mediaUrl();
|
|
28
|
+
public code:string = '';
|
|
29
|
+
|
|
30
|
+
public quantity:WritableSignal<number> = signal(1);
|
|
31
|
+
|
|
32
|
+
constructor(){
|
|
33
|
+
this._activedRoute.params.subscribe( queryParams => {
|
|
34
|
+
this.code = queryParams["id"];
|
|
35
|
+
this._productDetailService.loadProduct(this.code);
|
|
36
|
+
})
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
sanitizedHtml(html: string){
|
|
40
|
+
return this._domSanitizer.bypassSecurityTrustHtml(html);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
addToCart(){
|
|
44
|
+
this.quantity() > 0 && this._productDetailService.addToCart(this.quantity());
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* @description actualiza la variable quantity sumandole 'x' contenido.
|
|
49
|
+
* @param stock debe recibir un number que contenga el stock disponible.
|
|
50
|
+
* @param multipleQuantity debe recibir el multiplo de cantidad que se quiera incrementar.
|
|
51
|
+
*/
|
|
52
|
+
plus(stock?:number, multipleQuantity?:number){
|
|
53
|
+
if(multipleQuantity && multipleQuantity > 0) {
|
|
54
|
+
stock ? ( this.quantity() < stock
|
|
55
|
+
? this.quantity.update(value => value + multipleQuantity)
|
|
56
|
+
: this._toastService.show('out-of-stock-actually'))
|
|
57
|
+
: this.quantity.update(value => value + multipleQuantity)
|
|
58
|
+
} else {
|
|
59
|
+
stock ? ( this.quantity() < stock
|
|
60
|
+
? this.quantity.update(value => value + 1)
|
|
61
|
+
: this._toastService.show('out-of-stock-actually'))
|
|
62
|
+
: this.quantity.update(value => value + 1)
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* @description actualiza la varible quantity restandole 'x' contenido.
|
|
68
|
+
* @param multipleQuantity debe recibir el multiplo de cantidad que se quiera decrementar.
|
|
69
|
+
*/
|
|
70
|
+
less(multipleQuantity?:any){
|
|
71
|
+
if(multipleQuantity && multipleQuantity > 0 ){
|
|
72
|
+
this.quantity() > multipleQuantity ? this.quantity.update(value => value - multipleQuantity) : null;
|
|
73
|
+
} else {
|
|
74
|
+
this.quantity() > 1 ? this.quantity.update(value => value - 1) : null;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
checkStock(stock: number){
|
|
79
|
+
if(this.quantity() >= stock)
|
|
80
|
+
this.quantity.set(stock);
|
|
81
|
+
}
|
|
82
|
+
}
|