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,103 @@
1
+ import { AsyncPipe } from '@angular/common';
2
+ import { Component, inject, OnInit } from '@angular/core';
3
+ import { CheckoutService, PaymentService } from '../../../ec-services';
4
+ import { TranslateModule } from '@ngx-translate/core';
5
+ import { BehaviorSubject } from 'rxjs';
6
+ import { LoadingInlineEcComponent } from '../../widgets-ec';
7
+ import { MpRedirectEcComponent, OfflineEcComponent } from './payment-methods';
8
+ import { BankTransferEcComponent } from './payment-methods/bank-transfer-ec/bank-transfer-ec.component';
9
+
10
+ @Component({
11
+ selector: 'app-payment-ec',
12
+ standalone: true,
13
+ templateUrl: './payment-ec.component.html',
14
+ styleUrls: ['./payment-ec.component.scss'],
15
+ imports: [AsyncPipe,
16
+ TranslateModule,
17
+ LoadingInlineEcComponent,
18
+ MpRedirectEcComponent,
19
+ BankTransferEcComponent,
20
+ OfflineEcComponent
21
+ ]
22
+ })
23
+ export class PaymentEcComponent implements OnInit {
24
+
25
+ private _paymentService: PaymentService = inject(PaymentService)
26
+ private _checkoutService: CheckoutService = inject(CheckoutService)
27
+
28
+ private _methodDataSubject = new BehaviorSubject<any>(null);
29
+ private _loadingSubject = new BehaviorSubject<boolean>(false);
30
+
31
+ public methods$ = this._paymentService.methods$;
32
+ public loading$ = this._loadingSubject.asObservable();
33
+ public methodData$ = this._methodDataSubject.asObservable();
34
+
35
+ public loadingInternal: boolean = false;
36
+
37
+ constructor() { }
38
+
39
+ ngOnInit() {
40
+ }
41
+ setActive($event: any) {
42
+ const parent = $event.target.parentElement.children;
43
+ for (const button of parent) {
44
+ if (button.classList.contains('active')) {
45
+ button.classList.remove('active')
46
+ }
47
+ }
48
+ $event.target.classList.add("active")
49
+ }
50
+ async setMethod(method: any) {
51
+ this._methodDataSubject.next(null);
52
+ let result = await this._paymentService.putPayment(method.code);
53
+ this._methodDataSubject.next(method);
54
+ }
55
+
56
+ //Funciones para chequear el metodo de pago.
57
+ isRedirectRedsys = (code: string) => !!code?.toLowerCase().includes('redsys_redirect')
58
+ isRedirectCecaBank = (code: string) => !!code?.toLowerCase().includes('ceca_bank_redirect')
59
+ isMP = (code: string) => {
60
+ const lowerCode = code?.toLowerCase() || '';
61
+ return lowerCode.includes('mercado_pago') && !lowerCode.includes('credit');
62
+ }
63
+ isMPTarjetaDeCredito = (code: string) => !!code?.toLowerCase().includes('credit')
64
+ isMethodOffline = (code: string) => !!code?.toLowerCase().includes('offline')
65
+ isPeyPalExpress = (code: string) => {
66
+ const lowerCode = code?.toLowerCase() || '';
67
+ return lowerCode.includes('paypal') && lowerCode.includes('express');
68
+ }
69
+ isMobbex = (code: string) => !!code?.toLowerCase().includes('mobbex')
70
+ isBancard = (code: string) => !!code?.toLowerCase().includes('bancard')
71
+ isDecidir = (code: string) => !!code?.toLowerCase().includes('decidir')
72
+ isCulqi = (code: string) => !!code?.toLowerCase().includes('culqi')
73
+ isBankTransfer = (code: string) => !!code?.toLowerCase().includes('bank_transfer')
74
+ isCatastro = (code: string) => !!code?.toLowerCase().includes('catastro')
75
+ isBamboo = (code: string) => !!code?.toLowerCase().includes('bamboo')
76
+
77
+ allData(): any {
78
+ throw new Error('Method not implemented.');
79
+ }
80
+ emitResult = async () => {
81
+ this._paymentService.setPayment(this._methodDataSubject.getValue())
82
+ this.setLoading(false)
83
+ this.next()
84
+ }
85
+
86
+ public setLoading = (estado = true) => {
87
+ this._loadingSubject.next(estado);
88
+ return true;
89
+ }
90
+
91
+ public verifyValidate = ($event:any) => {
92
+ this.setLoading(true)
93
+ setTimeout(() => this.emitResult(), 1000);
94
+ }
95
+
96
+ public next = () => {
97
+ this._checkoutService.next()
98
+ }
99
+
100
+ public goBack = () => {
101
+ this._checkoutService.back()
102
+ }
103
+ }
@@ -0,0 +1,28 @@
1
+ <div class="row px-0 description-cont">
2
+
3
+ @for(line of method.description.split('\r\n');track $index; let i=$index){
4
+ <p [id]="'faqs-'+i" [class]="'qt px-5 m-0 line-'+i">{{ line }}</p>
5
+ }
6
+ </div>
7
+ @if(method.instructions){
8
+ <hr />
9
+ <div class="row px-0 instructions-cont mb-1">
10
+ <h5 class="instructions-title">{{ ('instructions' | translate) }}</h5>
11
+ @for(line of method.instructions.split('\r\n'); track $index; let i=$index){
12
+ <p [class]="'px-5 m-0 instructions-text line-'+i ">{{ line }}</p>
13
+ }
14
+ </div>
15
+ }
16
+
17
+ <div class="end-button">
18
+ <button class="btn btn-outline-primary" (click)="setLoading() && verifyValidate()">{{
19
+ ('pay-with-transfer'
20
+ | translate) }}</button>
21
+ </div>
22
+ <!-- @if(loading$ | async; as loading){
23
+ @if(loading){
24
+ <div class="mt-2">
25
+ <app-loading-inline-ec></app-loading-inline-ec>
26
+ </div>
27
+ }
28
+ } -->
@@ -0,0 +1,26 @@
1
+ import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
2
+ import { LoadingFullEcComponent, LoadingInlineEcComponent } from '../../../../widgets-ec';
3
+ import { TranslateModule } from '@ngx-translate/core';
4
+ import { AsyncPipe } from '@angular/common';
5
+
6
+ @Component({
7
+ selector: 'app-bank-transfer-ec',
8
+ standalone: true,
9
+ templateUrl: './bank-transfer-ec.component.html',
10
+ styleUrls: ['./bank-transfer-ec.component.scss'],
11
+ imports: [LoadingInlineEcComponent, TranslateModule, AsyncPipe],
12
+ })
13
+ export class BankTransferEcComponent implements OnInit {
14
+
15
+ @Input({
16
+ required: true,
17
+ }) method: any;
18
+ @Input() verifyValidate:any;
19
+ @Input() setLoading:any;
20
+
21
+ constructor() { }
22
+
23
+ ngOnInit() {
24
+ }
25
+
26
+ }
@@ -0,0 +1,3 @@
1
+ export * from './mp-redirect-ec/mp-redirect-ec.component';
2
+ export * from './bank-transfer-ec/bank-transfer-ec.component';
3
+ export * from './offline-ec/offline-ec.component';
@@ -0,0 +1,33 @@
1
+ <div class="text-center">
2
+ @if(url){
3
+ @if(!loading){
4
+ <button (click)="iniciar()" class="btn btn-outline-primary rounded-0 comprar mt-3">Pagar</button>
5
+ } @else {
6
+ <div class="d-flex flex-column jusitfy-content-center align-items-center mt-2">
7
+ <h3>Procesando el pago por mercado pago</h3>
8
+ <h5>Recuerde hacer click en "Volver al sitio" desde mercado pago para finalizar la compra.</h5>
9
+ <app-loading-full-ec></app-loading-full-ec>
10
+ </div>
11
+ <div class="container-fluid">
12
+ <div class="row">
13
+ <div class="col-5">
14
+ <hr>
15
+ </div>
16
+ <div class="col-2 text-center">
17
+ <label for="">o</label>
18
+ </div>
19
+ <div class="col-5">
20
+ <hr>
21
+ </div>
22
+ </div>
23
+ </div>
24
+ <div class="d-flex flex-column jusitfy-content-center align-items-center mt-2">
25
+ <button (click)="clickClose()" class="btn btn-outline-secondary rounded-0 comprar">Cancelar pago</button>
26
+ </div>
27
+ }
28
+ } @else{
29
+ <div class="d-flex flex-column jusitfy-content-center align-items-center mt-2">
30
+ <app-loading-full-ec></app-loading-full-ec>
31
+ </div>
32
+ }
33
+ </div>
@@ -0,0 +1,116 @@
1
+ import { Component, EventEmitter, inject, Input, OnInit, Output } from '@angular/core';
2
+ import { PaymentService, ToastService } from '../../../../../ec-services';
3
+ import { LoadingFullEcComponent } from '../../../../widgets-ec';
4
+
5
+ @Component({
6
+ selector: 'app-mp-redirect-ec',
7
+ standalone: true,
8
+ templateUrl: './mp-redirect-ec.component.html',
9
+ styleUrls: ['./mp-redirect-ec.component.scss'],
10
+ imports: [LoadingFullEcComponent]
11
+ })
12
+ export class MpRedirectEcComponent implements OnInit {
13
+
14
+ private _paymentService: PaymentService = inject(PaymentService)
15
+ private _toastService: ToastService = inject(ToastService)
16
+
17
+ @Input() method = null;
18
+ @Input() total_amount = 0;
19
+ @Input() allData: any;
20
+ @Output() ready = new EventEmitter();
21
+
22
+ protected preference: any;
23
+
24
+ public loading = false;
25
+ public url: any;
26
+ public closeModal = ''
27
+ public ventana: any;
28
+
29
+ constructor() { }
30
+
31
+ ngOnInit() {
32
+ this.getPreference()
33
+ }
34
+ clickClose = () => {
35
+ /* this.closeModal = 'cancel'
36
+ this.ventana?.close() */
37
+ }
38
+
39
+ iniciar = () => {
40
+ this.closeModal = ''
41
+ this.clearStorageState()
42
+ this.ventana = window.open(this.url)
43
+ this.callState()
44
+ }
45
+
46
+ callState = () => {
47
+ let state = this.closeModal != '' ? this.closeModal : localStorage.getItem('state')
48
+ !state && this.ventana.closed && (state = 'cancel')
49
+ this.loading = true
50
+ state && console.log(state);
51
+ if (state) {
52
+ this.loading = false
53
+ localStorage.removeItem('state')
54
+ if (state == 'success') {
55
+ this.ventana?.close()
56
+ this.ready.emit(true)
57
+ return
58
+ }
59
+ if (state == 'pending') {
60
+ this.ventana?.close()
61
+ this.ready.emit(true)
62
+ return
63
+ }
64
+ if (state == 'failure') {
65
+ this.ventana?.close()
66
+ this.processError('')
67
+ return
68
+ }
69
+ if (state == 'cancel') {
70
+ this.ventana?.close()
71
+ this.processError('Se cancelo el pago con mercado pago')
72
+ return
73
+ }
74
+ this.ventana?.close()
75
+ this.processError('')
76
+ return
77
+ }
78
+ setTimeout(() => {
79
+ this.callState()
80
+ }, 5000);
81
+
82
+ }
83
+ processError = (err:any) => {
84
+ this._toastService.show(err != '' ? err : 'payment-error');
85
+ console.log("ERROR ENVIO BACK ", err);
86
+ }
87
+ clearStorageState = () => {
88
+ sessionStorage.removeItem('state')
89
+ localStorage.removeItem('state')
90
+ }
91
+
92
+ getPreference = () =>
93
+ this._paymentService.getPreference(this.allData).then(
94
+ res => {
95
+ this.preference = res;
96
+ this.url = this.preference.init_point
97
+ this.renderMP(this.preference);
98
+ },
99
+ err => this.setError('operation-error')
100
+ );
101
+ setError = (message:any) => {
102
+ //this.error = message;
103
+ }
104
+ renderMP = (preference: any) => {
105
+ window.addEventListener("message", (event) => {
106
+ if (event.origin !== 'https://www.mercadopago.com.ar' || !event.data.type) {
107
+ return;
108
+ }
109
+ let dataType = event.data.type;
110
+ if (dataType === 'submit') {
111
+ const paymentData = event.data.value;
112
+ return;
113
+ }
114
+ });
115
+ }
116
+ }
@@ -0,0 +1,13 @@
1
+ <p id="faqs" class="qt px-5">{{ method.description }}</p>
2
+ <p class="px-5">{{ method.instructions }}</p>
3
+ <div class="end-button">
4
+ <button class="btn comprar" (click)="setLoading() && verifyValidate()">{{
5
+ ('pay-with-offline'| translate) }}</button>
6
+ </div>
7
+ <!-- @if(loading$ | async; as loading){
8
+ @if(loading){
9
+ <div class="mt-2">
10
+ <app-loading-inline-ec></app-loading-inline-ec>
11
+ </div>
12
+ }
13
+ } -->
@@ -0,0 +1,26 @@
1
+ import { Component, Input, OnInit } from '@angular/core';
2
+ import { LoadingInlineEcComponent } from '../../../../widgets-ec';
3
+ import { TranslateModule } from '@ngx-translate/core';
4
+
5
+ @Component({
6
+ selector: 'app-offline-ec',
7
+ standalone: true,
8
+ templateUrl: './offline-ec.component.html',
9
+ styleUrls: ['./offline-ec.component.scss'],
10
+ imports: [
11
+ LoadingInlineEcComponent,
12
+ TranslateModule
13
+ ]
14
+ })
15
+ export class OfflineEcComponent implements OnInit {
16
+ @Input({
17
+ required: true,
18
+ }) method: any;
19
+ @Input() verifyValidate: any;
20
+ @Input() setLoading: any;
21
+ constructor() { }
22
+
23
+ ngOnInit() {
24
+ }
25
+
26
+ }
@@ -0,0 +1,111 @@
1
+ <div class="container-fluid">
2
+ <div class="col-12">
3
+ <div class="card text-center">
4
+ <div class="card-header text-dark">
5
+ <h4>{{ 'select-method' | translate }}</h4>
6
+ @if(methods$ | async; as methods){
7
+ <div class="btn-toolbar justify-content-center" role="toolbar" aria-label="Envios toolbar">
8
+ <div class="" role="group" aria-label="Grupo botones envio">
9
+ <div class="d-flex align-content-start justify-content-center flex-wrap">
10
+ @for(method of filterMethods(methods); track $index){
11
+ <button [disabled]="buttonsDisabled" type="button"
12
+ class="btn btn-outline-secondary mx-1 mb-1"
13
+ (click)="setMethod(method); setActive($event)">
14
+ {{ method.name | translate }}
15
+ </button>
16
+ }
17
+ </div>
18
+
19
+
20
+ </div>
21
+ </div>
22
+ }@else {
23
+ <div class="d-flex flex-row w-100 justify-content-center mt-2">
24
+ <h5 class="text-secondary">{{'no-shipment-methods'|translate}}</h5>
25
+ </div>
26
+ }
27
+ </div>
28
+ <div class="card-body">
29
+ @if(moreInfoInMethod && methodSelect && methodSelect.description){
30
+ <div class="row justify-content-center mb-2">
31
+ <div class="col-12 col-md-6 col-lg-4 d-flex flex-column mb-2" [id]="methodSelect.code">
32
+ @for(line of methodSelect.description.split('\r\n'); track $index; let i=$index){
33
+ <span [id]="methodSelect.code+'-'+i" [class]="'line-'+i">{{line}}</span>
34
+ }
35
+ </div>
36
+ </div>}
37
+ @if(costs$ | async; as costs){
38
+ <!-- @if(costs){ -->
39
+ <div class="row justify-content-center">
40
+ @if(!loadingInternal){
41
+ @for(cost of costs; track $index; let y = $index){
42
+ <div class="col-auto text-dark">
43
+ @if(cost.contracts.length > 0){
44
+ @if(costs.length > 1){
45
+ <span><b>{{ cost.name | translate }}</b></span>
46
+ <hr />
47
+ }@else{
48
+ <span><b>{{ methodSelect.name | translate }}</b></span>
49
+ <hr />
50
+ }
51
+ @for(contract of cost.contracts; track $index; let i = $index){
52
+ <div class="option">
53
+ <div class="form-check current-contract">
54
+ <input class="form-check-input" [checked]="(y === 0 && i === 0) ? true : contract.selected" type="radio" name="card" [id]="cost.name + i"
55
+ value="dark" (click)="verifyValidate(costs,cost.name, contract)">
56
+ <label class="form-check-label" [for]="cost.name + i" aria-label="Dark grey">
57
+ @if(validName(contract.name)){
58
+ <span
59
+ [class]="(cost.name == 'home_delivery') ? 'shipment-contractname home_delivery' : 'shipment-contractname' ">
60
+ {{ contract.name | translate }}
61
+ </span>}
62
+ @if(contract.computed){
63
+ <span><br class="shipment-contractname">{{ contract.computed | translate }}
64
+ <br class="shipment-contractname">
65
+ </span>
66
+ }
67
+ @if(contract.detail){
68
+ <div class="contract-detail">
69
+ @for(line of contract.detail.split(' - '); track $index; let i = $index){
70
+ <div [class]="'contrat-item-'+i">
71
+ @if(i == 0){<span><b>{{ line }}</b></span>}
72
+ @if(i > 0){<span class="inside-detail">{{ line }}</span>}
73
+ </div>
74
+ }
75
+ </div>
76
+ }
77
+ @if(contract.price > 0){
78
+ <span [class]="'inside-detail ' + ( costos?.amount == 0 ? ' free ' : '') ">
79
+ @if(!contract.computed){<br class="shipment-contractname">}
80
+ {{ ('price'|translate) + ': ' + (contract.price | ecCurrencySymbol) }}</span>
81
+ }
82
+ <br>
83
+ </label>
84
+ </div>
85
+ </div>
86
+ }
87
+
88
+ }
89
+ </div>
90
+ }
91
+ }@else {
92
+ <app-loading-full-ec></app-loading-full-ec>
93
+ }
94
+ </div>
95
+ }
96
+
97
+ </div>
98
+
99
+ </div>
100
+ <div class="row d-flex flex-row">
101
+ <div class="col-12 d-flex justify-content-between">
102
+ <button class="btn btn-primary text-white" (click)="goBack()">{{'back'|translate}}</button>
103
+ <button type="submit" (click)="next()" class="btn btn-primary text-white">{{(isLastOne
104
+ ? 'finish-checkout' :'ready-form') | translate}}
105
+ <!-- {{(allready_data ? 'update' : (isLastOne ? 'finish-checkout' : 'ready-form')) | translate}} -->
106
+ </button>
107
+ </div>
108
+ </div>
109
+ </div>
110
+
111
+ </div>
@@ -0,0 +1,111 @@
1
+ import { afterNextRender, Component, inject, OnInit } from '@angular/core';
2
+ import { TranslateModule } from '@ngx-translate/core';
3
+ import { LoadingFullEcComponent } from '../../widgets-ec';
4
+ import { AsyncPipe, JsonPipe } from '@angular/common';
5
+ import { CheckoutService, ShipmentService } from '../../../ec-services';
6
+ import { EcCurrencySymbolPipe } from '../../../ec-pipe';
7
+ import { Observable } from 'rxjs';
8
+
9
+ @Component({
10
+ selector: 'app-shipment-ec',
11
+ standalone: true,
12
+ templateUrl: './shipment-ec.component.html',
13
+ styleUrls: ['./shipment-ec.component.scss'],
14
+ imports: [LoadingFullEcComponent, TranslateModule, AsyncPipe, EcCurrencySymbolPipe, JsonPipe]
15
+ })
16
+ export class ShipmentEcComponent implements OnInit {
17
+
18
+ private _shipmentService: ShipmentService = inject(ShipmentService)
19
+ private _checkoutService: CheckoutService = inject(CheckoutService)
20
+
21
+ public methods$ = this._shipmentService.methods$;
22
+ public isLastStep$ = this._checkoutService.isLastStep$;
23
+
24
+ private _hiddenMethods: string[] = ['UPS']
25
+ public buttonsDisabled: boolean = false
26
+ public methodSelect: any;
27
+ public loadingInternal: boolean = false
28
+ public moreInfoInMethod: boolean = false;
29
+ public costos: any = null
30
+ public costs$: Observable<any[]> = this._shipmentService.costs$;
31
+ public isLastOne: boolean = false;
32
+ public enabledConfirmButton: boolean = false
33
+
34
+ constructor() {
35
+ this.isLastStep$.subscribe(res => this.isLastOne = res);
36
+ }
37
+
38
+ ngOnInit() {
39
+ this._shipmentService.getShipmentMethods();
40
+ this._checkoutService.associatedData$.subscribe(data => {
41
+ console.log(data)
42
+ this.costos = data && data.find((value: any) => value.type == "shipment") || null
43
+ })
44
+ this.moreInfoInMethod = true //ShipmentService.moreInfoInMethod;
45
+ }
46
+
47
+ filterMethods(methods: any) {
48
+ return methods.filter((method: any) => !this._hiddenMethods.includes(method.name))
49
+ }
50
+
51
+ setMethod(method: any) {
52
+ this.methodSelect = method;
53
+ this.loadingInternal = true;
54
+
55
+ // Deshabilitar todos los botones
56
+ this.buttonsDisabled = true;
57
+
58
+ // setTimeout(() => {
59
+ this._shipmentService.setMethod(method.code).then(res => {
60
+ this.loadingInternal = false;
61
+
62
+ // Habilitar todos los botones
63
+ this.buttonsDisabled = false;
64
+ }).catch(error => {
65
+ // En caso de error, también habilitar los botones
66
+ this.loadingInternal = false;
67
+ this.buttonsDisabled = false;
68
+ console.error("Error:", error);
69
+ });
70
+ }
71
+
72
+ setActive(e: any) {
73
+ const parent = e.target.parentElement.children;
74
+ for (const button of parent) {
75
+ if (button.classList.contains('active')) {
76
+ button.classList.remove('active')
77
+ }
78
+ }
79
+ e.target.classList.add("active")
80
+ }
81
+
82
+ validName(name: any) {
83
+ return isNaN(name);
84
+ }
85
+ emitResult = (method_name: string, contract_data: any) => {
86
+
87
+ contract_data = {
88
+ ...contract_data,
89
+ shipping_method_contract: method_name + '_' + contract_data.name,
90
+ shipping_method_branch_code: method_name == "branch_delivery" ? contract_data.sucursal_id : contract_data.name,
91
+ }
92
+ //console.log("emitResult", contract_data);
93
+ this._shipmentService.setContract(contract_data);
94
+ }
95
+ verifyValidate(costs: any[], contract: any, data: any) {
96
+ try {
97
+ costs.forEach((cost: any) => cost.contracts.forEach((co: any) => co.selected = false))
98
+ costs.find((cost: any) => cost.name == contract).contracts.find((contra: any) => contra.name == data.name).selected = true
99
+ } catch (error) {
100
+ console.log("error al buscar contrato", error);
101
+ }
102
+ this.emitResult(contract, data);
103
+ }
104
+
105
+ goBack() {
106
+ this._checkoutService.back();
107
+ }
108
+ next() {
109
+ this._checkoutService.next()
110
+ }
111
+ }
@@ -0,0 +1,33 @@
1
+ <div>
2
+ @for(step of steps; track $index; let x=$index){
3
+ <div [id]="'test-l-'+step.priority" class="content">
4
+ <!-- <app-step-ec [step_id]="step.step" [id_step]="x+1" [previousStep]="steps[x-1] ? steps[x-1].name : step.name" [nextStep]="steps[x+1] ? next : endCheckout" [goBack]="goBack" [lastStep]="steps[x+1] ? false : true">
5
+ </app-step-ec> -->
6
+ @switch (step.name) {
7
+ @case ('address') {
8
+ @if(step.state == 'ready') {
9
+ <app-dataform-ec />
10
+ }
11
+ }
12
+ @case ('payment') {
13
+ @if(step.state == 'ready') {
14
+ <app-payment-ec />
15
+ }
16
+ }
17
+ @case ('shipment') {
18
+ @if(step.state == 'ready') {
19
+ <app-shipment-ec />
20
+ }
21
+ }
22
+ }
23
+ </div>
24
+ }
25
+ <!-- <div class="row d-flex flex-row">
26
+ <div class="col-6 d-flex justify-content-start">
27
+ <button type="button" class="btn btn-primary text-white" (click)="back()">Anterior</button>
28
+ </div>
29
+ <div class="col-6 d-flex justify-content-end">
30
+ <button type="button" class="btn btn-primary text-white" (click)="next()">Siguiente</button>
31
+ </div>
32
+ </div> -->
33
+ </div>
@@ -0,0 +1,39 @@
1
+ import { Component, inject, Input } from '@angular/core';
2
+ import { IStep } from '../../../interfaces';
3
+ import { CheckoutService } from '../../../ec-services';
4
+ import { Step } from '../../../classes';
5
+ import { DataformEcComponent } from '../dataform-ec/dataform-ec.component';
6
+ import { ShipmentEcComponent } from '../shipment-ec/shipment-ec.component';
7
+ import { PaymentEcComponent } from '../payment-ec/payment-ec.component';
8
+
9
+ @Component({
10
+ selector: 'app-step-container-ec',
11
+ standalone: true,
12
+ imports: [
13
+ DataformEcComponent,
14
+ ShipmentEcComponent,
15
+ PaymentEcComponent
16
+ ],
17
+ templateUrl: './step-container-ec.component.html',
18
+ styleUrl: './step-container-ec.component.scss'
19
+ })
20
+ export class StepContainerEcComponent {
21
+ private _checkoutService: CheckoutService = inject(CheckoutService);
22
+
23
+ @Input({
24
+ required: true,
25
+ }) steps!: Step[];
26
+
27
+ constructor(){
28
+ console.log('step-container-ec');
29
+ }
30
+
31
+ next(){
32
+ this._checkoutService.next()
33
+ }
34
+
35
+ back() {
36
+ this._checkoutService.back()
37
+ }
38
+
39
+ }