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.
Files changed (244) hide show
  1. package/.editorconfig +16 -0
  2. package/README.md +27 -0
  3. package/angular.json +48 -0
  4. package/package.json +58 -0
  5. package/projects/ng-easycommerce/README.md +24 -0
  6. package/projects/ng-easycommerce/ng-package.json +7 -0
  7. package/projects/ng-easycommerce/package.json +12 -0
  8. package/projects/ng-easycommerce/src/lib/api/connection.service.ts +79 -0
  9. package/projects/ng-easycommerce/src/lib/api/index.ts +1 -0
  10. package/projects/ng-easycommerce/src/lib/assets/ec-i18n/ct.json +274 -0
  11. package/projects/ng-easycommerce/src/lib/assets/ec-i18n/en.json +380 -0
  12. package/projects/ng-easycommerce/src/lib/assets/ec-i18n/es.json +387 -0
  13. package/projects/ng-easycommerce/src/lib/assets/ec-i18n/fr.json +266 -0
  14. package/projects/ng-easycommerce/src/lib/assets/ec-i18n/gl.json +274 -0
  15. package/projects/ng-easycommerce/src/lib/assets/ec-i18n/pr.json +274 -0
  16. package/projects/ng-easycommerce/src/lib/assets/recaptcha/recaptcha-site-keys.json +4 -0
  17. package/projects/ng-easycommerce/src/lib/assets/recaptcha/recaptcha-sites-prod.json +39 -0
  18. package/projects/ng-easycommerce/src/lib/assets/recaptcha/recaptcha-sites.json +53 -0
  19. package/projects/ng-easycommerce/src/lib/classes/checkout/index.ts +1 -0
  20. package/projects/ng-easycommerce/src/lib/classes/checkout/steps.ts +37 -0
  21. package/projects/ng-easycommerce/src/lib/classes/filters/attributes-filter.ts +74 -0
  22. package/projects/ng-easycommerce/src/lib/classes/filters/category-filter.ts +57 -0
  23. package/projects/ng-easycommerce/src/lib/classes/filters/dynamics-filter.ts +57 -0
  24. package/projects/ng-easycommerce/src/lib/classes/filters/filter-factory.ts +23 -0
  25. package/projects/ng-easycommerce/src/lib/classes/filters/filter.ts +89 -0
  26. package/projects/ng-easycommerce/src/lib/classes/filters/index.ts +6 -0
  27. package/projects/ng-easycommerce/src/lib/classes/filters/sort-filter.ts +93 -0
  28. package/projects/ng-easycommerce/src/lib/classes/index.ts +3 -0
  29. package/projects/ng-easycommerce/src/lib/classes/user.ts +68 -0
  30. package/projects/ng-easycommerce/src/lib/constants/api.constants.service.ts +69 -0
  31. package/projects/ng-easycommerce/src/lib/constants/core.constants.service.ts +210 -0
  32. package/projects/ng-easycommerce/src/lib/constants/index.ts +2 -0
  33. package/projects/ng-easycommerce/src/lib/ec-components/abstractions-components/block-ec.component.ts +107 -0
  34. package/projects/ng-easycommerce/src/lib/ec-components/abstractions-components/index.ts +2 -0
  35. package/projects/ng-easycommerce/src/lib/ec-components/abstractions-components/menu-ec.component.ts +102 -0
  36. package/projects/ng-easycommerce/src/lib/ec-components/auth-ec/auth-ec.component.html +10 -0
  37. package/projects/ng-easycommerce/src/lib/ec-components/auth-ec/auth-ec.component.scss +0 -0
  38. package/projects/ng-easycommerce/src/lib/ec-components/auth-ec/auth-ec.component.ts +13 -0
  39. package/projects/ng-easycommerce/src/lib/ec-components/auth-ec/confirm-account-ec/confirm-account-ec.component.html +19 -0
  40. package/projects/ng-easycommerce/src/lib/ec-components/auth-ec/confirm-account-ec/confirm-account-ec.component.scss +0 -0
  41. package/projects/ng-easycommerce/src/lib/ec-components/auth-ec/confirm-account-ec/confirm-account-ec.component.ts +34 -0
  42. package/projects/ng-easycommerce/src/lib/ec-components/auth-ec/forgot-password-ec/forgot-password-ec.component.html +31 -0
  43. package/projects/ng-easycommerce/src/lib/ec-components/auth-ec/forgot-password-ec/forgot-password-ec.component.scss +0 -0
  44. package/projects/ng-easycommerce/src/lib/ec-components/auth-ec/forgot-password-ec/forgot-password-ec.component.ts +55 -0
  45. package/projects/ng-easycommerce/src/lib/ec-components/auth-ec/index.ts +6 -0
  46. package/projects/ng-easycommerce/src/lib/ec-components/auth-ec/login-form-ec/login-form-ec.component.html +30 -0
  47. package/projects/ng-easycommerce/src/lib/ec-components/auth-ec/login-form-ec/login-form-ec.component.scss +0 -0
  48. package/projects/ng-easycommerce/src/lib/ec-components/auth-ec/login-form-ec/login-form-ec.component.ts +92 -0
  49. package/projects/ng-easycommerce/src/lib/ec-components/auth-ec/register-form-ec/register-form-ec.component.html +55 -0
  50. package/projects/ng-easycommerce/src/lib/ec-components/auth-ec/register-form-ec/register-form-ec.component.scss +0 -0
  51. package/projects/ng-easycommerce/src/lib/ec-components/auth-ec/register-form-ec/register-form-ec.component.ts +102 -0
  52. package/projects/ng-easycommerce/src/lib/ec-components/auth-ec/register-wholesaler-form-ec/register-wholesaler-form-ec.component.html +233 -0
  53. package/projects/ng-easycommerce/src/lib/ec-components/auth-ec/register-wholesaler-form-ec/register-wholesaler-form-ec.component.scss +0 -0
  54. package/projects/ng-easycommerce/src/lib/ec-components/auth-ec/register-wholesaler-form-ec/register-wholesaler-form-ec.component.ts +149 -0
  55. package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/block-banner-box-ec/block-banner-box-ec.component.html +113 -0
  56. package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/block-banner-box-ec/block-banner-box-ec.component.scss +12 -0
  57. package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/block-banner-box-ec/block-banner-box-ec.component.ts +100 -0
  58. package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/block-banner-full-ec/block-banner-full-ec.component.html +111 -0
  59. package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/block-banner-full-ec/block-banner-full-ec.component.scss +0 -0
  60. package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/block-banner-full-ec/block-banner-full-ec.component.ts +77 -0
  61. package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/block-form-contact-ec/block-form-contact-ec.component.html +62 -0
  62. package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/block-form-contact-ec/block-form-contact-ec.component.scss +0 -0
  63. package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/block-form-contact-ec/block-form-contact-ec.component.ts +89 -0
  64. package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/block-html-ec/block-html-ec.component.html +1 -0
  65. package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/block-html-ec/block-html-ec.component.scss +0 -0
  66. package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/block-html-ec/block-html-ec.component.ts +33 -0
  67. package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/block-newsletter-ec/block-newsletter-ec.component.html +1 -0
  68. package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/block-newsletter-ec/block-newsletter-ec.component.scss +0 -0
  69. package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/block-newsletter-ec/block-newsletter-ec.component.ts +81 -0
  70. package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/block-products-ec/block-products-ec.component.html +40 -0
  71. package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/block-products-ec/block-products-ec.component.scss +0 -0
  72. package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/block-products-ec/block-products-ec.component.ts +97 -0
  73. package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/blocks-ec.component.html +41 -0
  74. package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/blocks-ec.component.scss +0 -0
  75. package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/blocks-ec.component.ts +86 -0
  76. package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/index.ts +4 -0
  77. package/projects/ng-easycommerce/src/lib/ec-components/breadcrumb-ec/breadcrumb-ec.component.html +20 -0
  78. package/projects/ng-easycommerce/src/lib/ec-components/breadcrumb-ec/breadcrumb-ec.component.scss +0 -0
  79. package/projects/ng-easycommerce/src/lib/ec-components/breadcrumb-ec/breadcrumb-ec.component.ts +30 -0
  80. package/projects/ng-easycommerce/src/lib/ec-components/cart-ec/cart-ec.component.html +1 -0
  81. package/projects/ng-easycommerce/src/lib/ec-components/cart-ec/cart-ec.component.scss +0 -0
  82. package/projects/ng-easycommerce/src/lib/ec-components/cart-ec/cart-ec.component.ts +24 -0
  83. package/projects/ng-easycommerce/src/lib/ec-components/cart-ec/cart-item-ec/cart-item-ec.component.html +1 -0
  84. package/projects/ng-easycommerce/src/lib/ec-components/cart-ec/cart-item-ec/cart-item-ec.component.scss +0 -0
  85. package/projects/ng-easycommerce/src/lib/ec-components/cart-ec/cart-item-ec/cart-item-ec.component.ts +51 -0
  86. package/projects/ng-easycommerce/src/lib/ec-components/cart-ec/index.ts +2 -0
  87. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/checkout-ec.component.html +56 -0
  88. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/checkout-ec.component.scss +38 -0
  89. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/checkout-ec.component.ts +67 -0
  90. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/dataform-ec/dataform-ec.component.html +836 -0
  91. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/dataform-ec/dataform-ec.component.scss +0 -0
  92. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/dataform-ec/dataform-ec.component.ts +302 -0
  93. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/dataform-ec/input-ec/input-ec.component.html +32 -0
  94. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/dataform-ec/input-ec/input-ec.component.scss +0 -0
  95. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/dataform-ec/input-ec/input-ec.component.ts +52 -0
  96. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/detail-checkout-block-ec/detail-checkout-block-ec.component.html +12 -0
  97. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/detail-checkout-block-ec/detail-checkout-block-ec.component.scss +0 -0
  98. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/detail-checkout-block-ec/detail-checkout-block-ec.component.ts +48 -0
  99. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/payment-ec/payment-ec.component.html +195 -0
  100. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/payment-ec/payment-ec.component.scss +0 -0
  101. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/payment-ec/payment-ec.component.ts +103 -0
  102. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/payment-ec/payment-methods/bank-transfer-ec/bank-transfer-ec.component.html +28 -0
  103. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/payment-ec/payment-methods/bank-transfer-ec/bank-transfer-ec.component.scss +0 -0
  104. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/payment-ec/payment-methods/bank-transfer-ec/bank-transfer-ec.component.ts +26 -0
  105. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/payment-ec/payment-methods/index.ts +3 -0
  106. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/payment-ec/payment-methods/mp-redirect-ec/mp-redirect-ec.component.html +33 -0
  107. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/payment-ec/payment-methods/mp-redirect-ec/mp-redirect-ec.component.scss +0 -0
  108. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/payment-ec/payment-methods/mp-redirect-ec/mp-redirect-ec.component.ts +116 -0
  109. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/payment-ec/payment-methods/offline-ec/offline-ec.component.html +13 -0
  110. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/payment-ec/payment-methods/offline-ec/offline-ec.component.scss +0 -0
  111. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/payment-ec/payment-methods/offline-ec/offline-ec.component.ts +26 -0
  112. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/shipment-ec/shipment-ec.component.html +111 -0
  113. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/shipment-ec/shipment-ec.component.scss +0 -0
  114. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/shipment-ec/shipment-ec.component.ts +111 -0
  115. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/step-container-ec/step-container-ec.component.html +33 -0
  116. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/step-container-ec/step-container-ec.component.scss +0 -0
  117. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/step-container-ec/step-container-ec.component.ts +39 -0
  118. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/success-ec/success-ec.component.html +59 -0
  119. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/success-ec/success-ec.component.scss +0 -0
  120. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/success-ec/success-ec.component.ts +65 -0
  121. package/projects/ng-easycommerce/src/lib/ec-components/collection-ec/collection-ec.component.html +16 -0
  122. package/projects/ng-easycommerce/src/lib/ec-components/collection-ec/collection-ec.component.scss +0 -0
  123. package/projects/ng-easycommerce/src/lib/ec-components/collection-ec/collection-ec.component.ts +83 -0
  124. package/projects/ng-easycommerce/src/lib/ec-components/coupon-ec/coupon-ec.component.html +1 -0
  125. package/projects/ng-easycommerce/src/lib/ec-components/coupon-ec/coupon-ec.component.scss +0 -0
  126. package/projects/ng-easycommerce/src/lib/ec-components/coupon-ec/coupon-ec.component.ts +32 -0
  127. package/projects/ng-easycommerce/src/lib/ec-components/filters-ec/filters-ec.component.html +1 -0
  128. package/projects/ng-easycommerce/src/lib/ec-components/filters-ec/filters-ec.component.scss +0 -0
  129. package/projects/ng-easycommerce/src/lib/ec-components/filters-ec/filters-ec.component.ts +45 -0
  130. package/projects/ng-easycommerce/src/lib/ec-components/filters-sort-ec/filters-sort-ec.component.html +1 -0
  131. package/projects/ng-easycommerce/src/lib/ec-components/filters-sort-ec/filters-sort-ec.component.scss +0 -0
  132. package/projects/ng-easycommerce/src/lib/ec-components/filters-sort-ec/filters-sort-ec.component.ts +49 -0
  133. package/projects/ng-easycommerce/src/lib/ec-components/footer-ec/footer-ec.component.html +1 -0
  134. package/projects/ng-easycommerce/src/lib/ec-components/footer-ec/footer-ec.component.scss +0 -0
  135. package/projects/ng-easycommerce/src/lib/ec-components/footer-ec/footer-ec.component.spec.ts +23 -0
  136. package/projects/ng-easycommerce/src/lib/ec-components/footer-ec/footer-ec.component.ts +18 -0
  137. package/projects/ng-easycommerce/src/lib/ec-components/header-ec/header-ec.component.html +1 -0
  138. package/projects/ng-easycommerce/src/lib/ec-components/header-ec/header-ec.component.scss +0 -0
  139. package/projects/ng-easycommerce/src/lib/ec-components/header-ec/header-ec.component.spec.ts +23 -0
  140. package/projects/ng-easycommerce/src/lib/ec-components/header-ec/header-ec.component.ts +22 -0
  141. package/projects/ng-easycommerce/src/lib/ec-components/home-ec/home-ec.component.html +1 -0
  142. package/projects/ng-easycommerce/src/lib/ec-components/home-ec/home-ec.component.scss +0 -0
  143. package/projects/ng-easycommerce/src/lib/ec-components/home-ec/home-ec.component.spec.ts +23 -0
  144. package/projects/ng-easycommerce/src/lib/ec-components/home-ec/home-ec.component.ts +16 -0
  145. package/projects/ng-easycommerce/src/lib/ec-components/index.ts +17 -0
  146. package/projects/ng-easycommerce/src/lib/ec-components/product-detail-ec/product-detail-ec.component.html +0 -0
  147. package/projects/ng-easycommerce/src/lib/ec-components/product-detail-ec/product-detail-ec.component.scss +0 -0
  148. package/projects/ng-easycommerce/src/lib/ec-components/product-detail-ec/product-detail-ec.component.ts +82 -0
  149. package/projects/ng-easycommerce/src/lib/ec-components/product-ec/product-ec.component.html +31 -0
  150. package/projects/ng-easycommerce/src/lib/ec-components/product-ec/product-ec.component.scss +0 -0
  151. package/projects/ng-easycommerce/src/lib/ec-components/product-ec/product-ec.component.ts +46 -0
  152. package/projects/ng-easycommerce/src/lib/ec-components/variants-ec/variants-ec.component.html +65 -0
  153. package/projects/ng-easycommerce/src/lib/ec-components/variants-ec/variants-ec.component.scss +8 -0
  154. package/projects/ng-easycommerce/src/lib/ec-components/variants-ec/variants-ec.component.ts +20 -0
  155. package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/index.ts +4 -0
  156. package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/loading/index.ts +3 -0
  157. package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/loading/loading-full-ec/loading-full-ec.component.html +7 -0
  158. package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/loading/loading-full-ec/loading-full-ec.component.scss +0 -0
  159. package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/loading/loading-full-ec/loading-full-ec.component.ts +13 -0
  160. package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/loading/loading-inline-ec/loading-inline-ec.component.html +5 -0
  161. package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/loading/loading-inline-ec/loading-inline-ec.component.scss +0 -0
  162. package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/loading/loading-inline-ec/loading-inline-ec.component.ts +13 -0
  163. package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/loading/loading-section-ec/loading-section-ec.component.html +3 -0
  164. package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/loading/loading-section-ec/loading-section-ec.component.scss +0 -0
  165. package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/loading/loading-section-ec/loading-section-ec.component.ts +13 -0
  166. package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/magnizoom-ec/magnizoom-ec.component.html +11 -0
  167. package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/magnizoom-ec/magnizoom-ec.component.scss +0 -0
  168. package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/magnizoom-ec/magnizoom-ec.component.ts +177 -0
  169. package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/price-ec/price-ec.component.html +47 -0
  170. package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/price-ec/price-ec.component.scss +0 -0
  171. package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/price-ec/price-ec.component.ts +22 -0
  172. package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/re-captcha-ec/re-captcha-ec.component.html +6 -0
  173. package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/re-captcha-ec/re-captcha-ec.component.scss +0 -0
  174. package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/re-captcha-ec/re-captcha-ec.component.ts +70 -0
  175. package/projects/ng-easycommerce/src/lib/ec-guards/auth.guard.ts +19 -0
  176. package/projects/ng-easycommerce/src/lib/ec-guards/index.ts +1 -0
  177. package/projects/ng-easycommerce/src/lib/ec-pipe/ec-currency-symbol.pipe.ts +99 -0
  178. package/projects/ng-easycommerce/src/lib/ec-pipe/index.ts +1 -0
  179. package/projects/ng-easycommerce/src/lib/ec-services/addressing.service.ts +199 -0
  180. package/projects/ng-easycommerce/src/lib/ec-services/analytics/analytics.service.ts +76 -0
  181. package/projects/ng-easycommerce/src/lib/ec-services/analytics/doppler.service.ts +38 -0
  182. package/projects/ng-easycommerce/src/lib/ec-services/analytics/facebook-pixel.service.ts +214 -0
  183. package/projects/ng-easycommerce/src/lib/ec-services/analytics/google-analytics.service.ts +284 -0
  184. package/projects/ng-easycommerce/src/lib/ec-services/analytics/gtm.service.ts +413 -0
  185. package/projects/ng-easycommerce/src/lib/ec-services/analytics/index.ts +6 -0
  186. package/projects/ng-easycommerce/src/lib/ec-services/analytics/metricool-pixel.service.ts +46 -0
  187. package/projects/ng-easycommerce/src/lib/ec-services/auth.service.ts +438 -0
  188. package/projects/ng-easycommerce/src/lib/ec-services/auth.storage.service.ts +54 -0
  189. package/projects/ng-easycommerce/src/lib/ec-services/blocks-repository.service.ts +67 -0
  190. package/projects/ng-easycommerce/src/lib/ec-services/blocks.service.ts +48 -0
  191. package/projects/ng-easycommerce/src/lib/ec-services/cart.service.ts +492 -0
  192. package/projects/ng-easycommerce/src/lib/ec-services/channel.service.ts +81 -0
  193. package/projects/ng-easycommerce/src/lib/ec-services/checkout.service.ts +196 -0
  194. package/projects/ng-easycommerce/src/lib/ec-services/currency.service.ts +179 -0
  195. package/projects/ng-easycommerce/src/lib/ec-services/filters.service.ts +133 -0
  196. package/projects/ng-easycommerce/src/lib/ec-services/form.service.ts +82 -0
  197. package/projects/ng-easycommerce/src/lib/ec-services/index.ts +24 -0
  198. package/projects/ng-easycommerce/src/lib/ec-services/local-storage.service.ts +54 -0
  199. package/projects/ng-easycommerce/src/lib/ec-services/ngx-local-storage.service.ts +66 -0
  200. package/projects/ng-easycommerce/src/lib/ec-services/options.service.ts +274 -0
  201. package/projects/ng-easycommerce/src/lib/ec-services/order-utility.service.ts +52 -0
  202. package/projects/ng-easycommerce/src/lib/ec-services/pagination.service.ts +172 -0
  203. package/projects/ng-easycommerce/src/lib/ec-services/parameters.service.ts +67 -0
  204. package/projects/ng-easycommerce/src/lib/ec-services/payment.service.ts +63 -0
  205. package/projects/ng-easycommerce/src/lib/ec-services/product-detail.service.ts +288 -0
  206. package/projects/ng-easycommerce/src/lib/ec-services/products.service.ts +162 -0
  207. package/projects/ng-easycommerce/src/lib/ec-services/re-captcha.service.ts +126 -0
  208. package/projects/ng-easycommerce/src/lib/ec-services/shipment.service.ts +174 -0
  209. package/projects/ng-easycommerce/src/lib/ec-services/stores.service.ts +27 -0
  210. package/projects/ng-easycommerce/src/lib/ec-services/toast.service.ts +84 -0
  211. package/projects/ng-easycommerce/src/lib/interceptors/auth.interceptor.ts +43 -0
  212. package/projects/ng-easycommerce/src/lib/interceptors/index.ts +1 -0
  213. package/projects/ng-easycommerce/src/lib/interfaces/analytics/event-key.ts +14 -0
  214. package/projects/ng-easycommerce/src/lib/interfaces/analytics/facebook-pixel-data.ts +5 -0
  215. package/projects/ng-easycommerce/src/lib/interfaces/analytics/gtm-config.ts +6 -0
  216. package/projects/ng-easycommerce/src/lib/interfaces/analytics/index.ts +3 -0
  217. package/projects/ng-easycommerce/src/lib/interfaces/blocks.ts +56 -0
  218. package/projects/ng-easycommerce/src/lib/interfaces/checkout.ts +14 -0
  219. package/projects/ng-easycommerce/src/lib/interfaces/connection.ts +8 -0
  220. package/projects/ng-easycommerce/src/lib/interfaces/coupon.ts +5 -0
  221. package/projects/ng-easycommerce/src/lib/interfaces/currency.ts +10 -0
  222. package/projects/ng-easycommerce/src/lib/interfaces/deserializable.ts +3 -0
  223. package/projects/ng-easycommerce/src/lib/interfaces/environment.ts +6 -0
  224. package/projects/ng-easycommerce/src/lib/interfaces/filter.ts +59 -0
  225. package/projects/ng-easycommerce/src/lib/interfaces/index.ts +18 -0
  226. package/projects/ng-easycommerce/src/lib/interfaces/options.ts +28 -0
  227. package/projects/ng-easycommerce/src/lib/interfaces/pagination.ts +27 -0
  228. package/projects/ng-easycommerce/src/lib/interfaces/parameter.ts +15 -0
  229. package/projects/ng-easycommerce/src/lib/interfaces/product.ts +81 -0
  230. package/projects/ng-easycommerce/src/lib/interfaces/step.ts +19 -0
  231. package/projects/ng-easycommerce/src/lib/interfaces/storage.ts +7 -0
  232. package/projects/ng-easycommerce/src/lib/interfaces/store.ts +17 -0
  233. package/projects/ng-easycommerce/src/lib/interfaces/types/index.ts +1 -0
  234. package/projects/ng-easycommerce/src/lib/interfaces/types/user.type.ts +5 -0
  235. package/projects/ng-easycommerce/src/lib/providers/index.ts +1 -0
  236. package/projects/ng-easycommerce/src/lib/providers/provideEnvironment.ts +24 -0
  237. package/projects/ng-easycommerce/src/lib/stores/currency.store.ts +20 -0
  238. package/projects/ng-easycommerce/src/lib/stores/index.ts +1 -0
  239. package/projects/ng-easycommerce/src/public-api.ts +24 -0
  240. package/projects/ng-easycommerce/tsconfig.lib.json +15 -0
  241. package/projects/ng-easycommerce/tsconfig.lib.prod.json +11 -0
  242. package/projects/ng-easycommerce/tsconfig.spec.json +15 -0
  243. package/tsconfig.doc.json +4 -0
  244. 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
+ }
@@ -0,0 +1,2 @@
1
+ export * from './api.constants.service';
2
+ export * from './core.constants.service';
@@ -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
+ }
@@ -0,0 +1,2 @@
1
+ export * from './menu-ec.component';
2
+ export * from './block-ec.component';
@@ -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
+ }
@@ -0,0 +1,10 @@
1
+ <div class="container-xl">
2
+ <div class="row">
3
+ <div class="col-md-6 col-12">
4
+ <app-login-form-ec />
5
+ </div>
6
+ <div class="col-md-6 col-12">
7
+
8
+ </div>
9
+ </div>
10
+ </div>
@@ -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>
@@ -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>
@@ -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>