ng-easycommerce 0.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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 +57 -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,302 @@
1
+ import { Component, inject, OnInit } from '@angular/core';
2
+ import { FormBuilder, FormGroup, FormsModule, ReactiveFormsModule, Validators } from '@angular/forms';
3
+ import { RouterLink } from '@angular/router';
4
+ import { LoginFormEcComponent } from '../../auth-ec';
5
+ import { TranslateModule } from '@ngx-translate/core';
6
+ import { AddressingService, AnalyticsService, AuthService, CartService, ChannelService, CheckoutService, FormService, ParametersService, ToastService } from '../../../ec-services';
7
+ import { AsyncPipe, JsonPipe, TitleCasePipe } from '@angular/common';
8
+ import { ApiConstantsService } from '../../../constants';
9
+ import { LoadingFullEcComponent } from '../../widgets-ec';
10
+ import { BehaviorSubject, filter, firstValueFrom } from 'rxjs';
11
+ import { ConnectionService } from '../../../api';
12
+ import { InputEcComponent } from './input-ec/input-ec.component';
13
+ import { BlocksEcComponent } from "../../blocks-ec/blocks-ec.component";
14
+
15
+ @Component({
16
+ selector: 'app-dataform-ec',
17
+ standalone: true,
18
+ imports: [
19
+ RouterLink,
20
+ ReactiveFormsModule,
21
+ FormsModule,
22
+ LoginFormEcComponent,
23
+ TranslateModule,
24
+ AsyncPipe,
25
+ TitleCasePipe,
26
+ LoadingFullEcComponent,
27
+ JsonPipe,
28
+ BlocksEcComponent
29
+ ],
30
+ templateUrl: './dataform-ec.component.html',
31
+ styleUrl: './dataform-ec.component.scss'
32
+ })
33
+ export class DataformEcComponent implements OnInit {
34
+
35
+ private _channelService: ChannelService = inject(ChannelService);
36
+ private _authService: AuthService = inject(AuthService);
37
+ private _paramsService: ParametersService = inject(ParametersService);
38
+ private _apiConsts: ApiConstantsService = inject(ApiConstantsService);
39
+ private _addressingService: AddressingService = inject(AddressingService);
40
+ private _cartService: CartService = inject(CartService);
41
+ private _toastService: ToastService = inject(ToastService);
42
+ private _formService: FormService = inject(FormService);
43
+ private _checkoutService: CheckoutService = inject(CheckoutService);
44
+ private _formBuilder: FormBuilder = inject(FormBuilder);
45
+
46
+ public modeSelectAddress = this._addressingService.modeSelectAddress;
47
+ public cartItems: any = []
48
+
49
+ public channel$ = this._channelService.channel$;
50
+ public countries$ = this._formService.getCountriesData();
51
+ public provinces$ = this._formService.provinces$;
52
+ public documentTypes$ = this._formService.documentTypes$;
53
+ public isLastStep$ = this._checkoutService.isLastStep$;
54
+ public loadingStep$ = this._checkoutService.loadingStep$;
55
+
56
+ public selectAddress: boolean = false;
57
+ public params: any;
58
+ public addressBook: any = [];
59
+ public addressBookSelected = { id: 0, notes: "" }
60
+ public form_ready: boolean = false;
61
+ public loading: boolean = false;
62
+ public allready_data: boolean = false;
63
+ public require_login: boolean = false;
64
+ public checkoutForm: FormGroup;
65
+ public checkoutFormFacturacion: FormGroup;
66
+ public getTypeForm: any = this._addressingService.getTypeForm;
67
+ public isLastOne: boolean = false;
68
+ public loadingStep: boolean = false;
69
+
70
+ private readonly postalCodePattern = '^[0-9][0-9]*$';
71
+
72
+ protected countriesFacturacionSubject = new BehaviorSubject<any[]>([]);
73
+ protected provincesFacturacionSubject = new BehaviorSubject<any[]>([]);
74
+ protected documentTypesFacturacionSubject = new BehaviorSubject<any[]>([]);
75
+
76
+ public countriesFacturacion$ = this.countriesFacturacionSubject.asObservable();
77
+ public provincesFacturacion$ = this.provincesFacturacionSubject.asObservable();
78
+ public documentTypesFacturacion$ = this.documentTypesFacturacionSubject.asObservable();
79
+
80
+ public viewDataFacturacion: boolean = true;
81
+ public validado = false;
82
+
83
+ constructor() {
84
+ this.checkoutForm = this._formBuilder.group({
85
+ ...this._addressingService.getTypeForm()?.configForm.formAddres,
86
+ postcode: ['', [Validators.required, Validators.pattern(this.postalCodePattern)]]
87
+ })
88
+ this.checkoutForm.statusChanges
89
+ .pipe(
90
+ filter(() => { this.onFormChange(); return this.checkoutForm.valid }))
91
+ .subscribe(() => this.onFormValid());
92
+
93
+ this.checkoutFormFacturacion = this._formBuilder.group({
94
+ ...this._addressingService.getTypeForm()?.configForm.formBilling,
95
+ postcode: ['', [Validators.required, Validators.pattern(this.postalCodePattern)]] // Se agrega para que sólo acepte códigos postales mayores que cero
96
+ });
97
+ this.checkoutFormFacturacion.statusChanges
98
+ .pipe(
99
+ filter(() => { this.onFormChange(); return this.checkoutFormFacturacion.valid }))
100
+ .subscribe(() => this.onFormValid());
101
+ this.isLastStep$.subscribe( res => this.isLastOne = res);
102
+ this.loadingStep$.subscribe( res => this.loadingStep = res);
103
+ }
104
+
105
+ ngOnInit(): void {
106
+ this._paramsService.getParameters().subscribe(params => this.params = params);
107
+ this._cartService.cartItems$.subscribe(items => this.cartItems = items);
108
+
109
+ this._authService.isAuthenticated() && this.checkoutForm.controls['email'].setValue(this._authService.getUserProfileAsUser()?.email); //--> esto es momentaneo hasta que empiece a trabajar con Seller y Customer.
110
+ this._authService.isAuthenticated() && this.checkoutForm.get('email')?.disable({ onlySelf: true });
111
+ (this._addressingService.modeSelectAddress == 'LOAD_ADDRESS_AND_SELECTION' || this._addressingService.modeSelectAddress == 'ONLY_ADDRESS_SELECTION')
112
+ && firstValueFrom(this._addressingService.getAddressBook()).then(res => {
113
+ this.addressBook = res && res || null
114
+ this.addressBook == null && this.setMode('carga')
115
+ }
116
+ ).catch(err => console.error(err.error.message))
117
+
118
+ }
119
+
120
+ isAuthenticated(): boolean {
121
+ return this._authService.isAuthenticated()
122
+ }
123
+
124
+ getMode() {
125
+ switch (this.modeSelectAddress) {
126
+ case 'ONLY_LOAD_ADDRESS':
127
+ return true
128
+ case 'ONLY_ADDRESS_SELECTION':
129
+ if (this._authService.isAuthenticated()) {
130
+ return false
131
+ }
132
+ return true
133
+ case 'LOAD_ADDRESS_AND_SELECTION':
134
+ if (this._authService.isAuthenticated()) {
135
+ return this.selectAddress
136
+ }
137
+ return true
138
+ }
139
+ }
140
+
141
+ setMode(mode: string) {
142
+ this.selectAddress = mode == "carga"
143
+ }
144
+
145
+ getParamByChannelAndLanguage(nameParam: string) {
146
+ return this._paramsService.hasParams(this.params, nameParam + this._apiConsts.CHANNEL + '_' + this._apiConsts.LOCALE.split('_')[0])
147
+ }
148
+
149
+ setSelectAddress(addressSelect: any) {
150
+ this.addressBook.map((address: any) => address.selected = address.id === addressSelect.id)
151
+ this.addressBookSelected.id = this.addressBook.find((address: any) => address.selected).id || 0
152
+ }
153
+ onSelectAddress(items:any){
154
+ this.loading = true;
155
+ let addressSelected = this.addressBook.find((address:any) => address.selected)
156
+ if (addressSelected) {
157
+ try {
158
+ if (!this.addressBookSelected.id) {
159
+ this.addressBookSelected.id = addressSelected.id || 0
160
+ }
161
+ const request = {
162
+ selected: this.addressBookSelected,
163
+ shippingAddress: addressSelected
164
+ }
165
+ this._addressingService.setHeadquarter(request).then(
166
+ res => {
167
+ if(this._cartService.channelConfig.applyOrderLot){
168
+ items.forEach((item:any) => {
169
+ if(!item.lot[0]){
170
+ this._cartService.addToLot(item.product,0,item.variant_id,0,item.item_id,item.quantity,item.product.price,item.quantity,item.discount,item.product.price*item.quantity,'new','','',0,res.shippingAddress.city + ' - ' + res.shippingAddress.street, 'newlot');
171
+ }
172
+ })
173
+ }
174
+ this.form_ready = true;
175
+ this.allready_data = true;
176
+ this.next();
177
+ }
178
+ ).catch(err => this._toastService.show('operation-error'));
179
+
180
+ } catch (e) { this._toastService.show('operation-error') }
181
+ } else {
182
+ this.showError('invalid-form')
183
+ }
184
+ this.loading = false;
185
+ }
186
+
187
+ onInputChange = () => this.form_ready = false;
188
+
189
+ getCountry(code: any) { return this._addressingService.countriesList.find((countries: any) => countries.code.toLocaleLowerCase().includes(code.toLocaleLowerCase()))?.name || "" }
190
+
191
+ getProvince(code: any) { return this._addressingService.provinceList.find((ct: any) => ct.code == code)?.name || "" }
192
+
193
+ getDocumentType(code: any) { return this._addressingService.documentTypes.find((dt: any) => dt.code == code)?.name || "" }
194
+
195
+ getLabelNotesParam() { return this._paramsService.hasParams(this.params, 'label_notes_' + this._apiConsts.CHANNEL + '_' + this._apiConsts.LOCALE.split('_')[0]) }
196
+
197
+ verifyValidate($event:any) {
198
+ if (this.checkoutForm.valid) {
199
+ // Aca debo resolver el formulario y una vez este todo ok debo avisar al observable de
200
+ // los steps.
201
+ this.emitResult();
202
+ } else
203
+ this.showError('invalid-form');
204
+ }
205
+ showError = (error_message: any) => { this._toastService.show(error_message); return true; }
206
+
207
+ protected emitResult = async () => {
208
+ this.loading = true;
209
+ let data: any = { shippingAddress: { ...this.checkoutForm.getRawValue(), phoneNumber: this.checkoutForm.value.phoneNumber.toString() }, notes: (this.checkoutForm.getRawValue()).notes };
210
+ if (!this.viewDataFacturacion && this.checkoutFormFacturacion.valid) data = { ...data, notes: data.notes, billingAddress: this.checkoutFormFacturacion.getRawValue() };
211
+ try {
212
+ let result = await this._addressingService.setAddress(data);
213
+
214
+ if (result === false) {
215
+ this.require_login = true;
216
+ this._toastService.show('El email ya está registrado, inicie sesión.')
217
+ }
218
+ else if (result !== false && result !== undefined) {
219
+ //Ojo que lo edito, no hizo una compra nueva, atenti a esto.
220
+ this.form_ready = true
221
+ this.allready_data = true
222
+ this.next()
223
+ }
224
+
225
+ } catch (e) { this._toastService.show('operation-error') }
226
+ this.loading = false;
227
+ }
228
+
229
+ protected onFormChange() {
230
+ if (this.checkoutForm.valid) {
231
+ if (!this.viewDataFacturacion && this.checkoutFormFacturacion.valid) {
232
+ this.validado = true
233
+ return
234
+ }
235
+ if (this.viewDataFacturacion && this.checkoutForm.valid) {
236
+ this.validado = true
237
+ return
238
+ }
239
+ }
240
+ this.validado = false
241
+ }
242
+
243
+ onFormValid = () => {
244
+ }
245
+
246
+ /**
247
+ * Captura el evento de cuando cambia un pais en el `<select>`
248
+ * @param event
249
+ */
250
+ onCountrySelected = (event: any, billing:boolean = false) => {
251
+ const { value } = event.target;
252
+ //$('#selectOpPais').attr('disabled', true);
253
+ const form = billing ? this.checkoutFormFacturacion : this.checkoutForm;
254
+ form.controls['countryCode'].setValue(value);
255
+ form.controls['provinceCode'].setValue('null');
256
+ //value != '' && this.provincesSubject.next(this.countriesSubject.value.find(country => country.code == value).provinces);
257
+ if (value != '' || value != 'null') {
258
+ this._formService.onCountrySelected(value);
259
+ }
260
+ }
261
+ /**
262
+ * Captura el evento de cuando cambia una provincia/estado en el `<select>`
263
+ * @param event
264
+ * @param provinces lista de provincias para obtener el nombre de la seleccionada.
265
+ */
266
+ onProvincesSelected(event: any, provinces: any, billing:boolean = false){
267
+ const { value } = event.target;
268
+ const form = billing ? this.checkoutFormFacturacion : this.checkoutForm;
269
+ return form.controls['provinceCode'].setValue(value == 'null' ? null : value);
270
+ /* return form.controls['provinceName'].setValue(provinces.find((province: any) => province.code == value).name); */
271
+ }
272
+ onDocumentTypesSelected(event: any, billing:boolean = false) {
273
+ const { value } = event.target
274
+ const form = billing ? this.checkoutFormFacturacion : this.checkoutForm;
275
+ return form.controls['documentType'].setValue(value == '' ? '' : value);
276
+ }
277
+ showFormFacturacion = () => {
278
+ this.viewDataFacturacion = !this.viewDataFacturacion
279
+ if (!this.viewDataFacturacion) {
280
+ this.countriesFacturacion$.subscribe(res => {
281
+ if (res && res.length > 0) {
282
+ this.checkoutFormFacturacion.controls['countryCode'].setValue(res[0].code)
283
+ // Provincia
284
+ this.checkoutFormFacturacion.controls['provinceCode'].setValue(
285
+ res[0]?.provinces[0].code
286
+ )
287
+ this.provincesFacturacionSubject.next(res[0]?.provinces)
288
+ // Documento
289
+ this.checkoutFormFacturacion.controls['documentType'].setValue(res[0]?.documentTypes[0].code)
290
+ this.documentTypesFacturacionSubject.next(res[0]?.documentTypes)
291
+ }
292
+ })
293
+ }
294
+ this.onFormChange()
295
+ return this.viewDataFacturacion
296
+ }
297
+
298
+ next(){
299
+ this._checkoutService.next()
300
+ }
301
+
302
+ }
@@ -0,0 +1,32 @@
1
+ <div class="form-group col-12 col-md-6">
2
+ <!--Si es required-->
3
+ <!-- <label class="field-label">{{name|translate}}
4
+ @if(isRequired){
5
+ <span class="required">*</span>
6
+ }
7
+ </label> -->
8
+ <!--Input-->
9
+ <!-- <input class="form-control" type="text" [value]="value" (input)="onInput($event)" placeholder=""
10
+ autocomplete="off">
11
+ @if(input.touched && input.errors?.['required']){
12
+ <div class="text-danger-container">
13
+ <span class="text-danger">{{name+'-help1'|translate}}</span>
14
+ </div>
15
+ } -->
16
+ <!--Error info-->
17
+ <!-- @if(input.touched && input.errors?.['pattern']){
18
+ <div class="text-danger-container">
19
+ <span class="text-danger">
20
+ {{name+'-help2'|translate}}
21
+ </span>
22
+ </div>
23
+ } -->
24
+ <input
25
+ class="form-control"
26
+ type="text"
27
+ [value]="value"
28
+ (input)="onInput($event)"
29
+ placeholder=""
30
+ autocomplete="off"
31
+ />
32
+ </div>
@@ -0,0 +1,52 @@
1
+ import { TitleCasePipe } from '@angular/common';
2
+ import { Component, forwardRef, inject, Input } from '@angular/core';
3
+ import { ControlContainer, ControlValueAccessor, FormControl, FormGroup, FormGroupDirective, FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';
4
+ import { TranslateModule } from '@ngx-translate/core';
5
+
6
+ @Component({
7
+ selector: 'app-input-ec',
8
+ standalone: true,
9
+ imports: [
10
+ ReactiveFormsModule,
11
+ FormsModule,
12
+ TranslateModule,
13
+ TitleCasePipe
14
+ ],
15
+ templateUrl: './input-ec.component.html',
16
+ styleUrl: './input-ec.component.scss',
17
+ viewProviders: [
18
+ {
19
+ provide: NG_VALUE_ACCESSOR,
20
+ useExisting: forwardRef(() => InputEcComponent),
21
+ multi: true,
22
+ },
23
+ ],
24
+ })
25
+ export class InputEcComponent implements ControlValueAccessor {
26
+ value = '';
27
+
28
+ private onChange = (value: any) => {};
29
+ private onTouched = () => {};
30
+
31
+ writeValue(value: any): void {
32
+ this.value = value || '';
33
+ }
34
+
35
+ registerOnChange(fn: any): void {
36
+ this.onChange = fn;
37
+ }
38
+
39
+ registerOnTouched(fn: any): void {
40
+ this.onTouched = fn;
41
+ }
42
+
43
+ onInput(event: Event): void {
44
+ const input = event.target as HTMLInputElement;
45
+ this.value = input.value;
46
+ this.onChange(this.value);
47
+ }
48
+
49
+ setDisabledState?(isDisabled: boolean): void {
50
+ // Si necesitas manejar el estado deshabilitado
51
+ }
52
+ }
@@ -0,0 +1,12 @@
1
+ @if(data$ | async; as datos){
2
+ <div id="appDetailCheckoutBlockEc" class="d-flex flex-row w-100 justify-content-center flex-wrap">
3
+ @for(item of data; track $index; let i = $index){
4
+ <div class="d-flex flex-column justify-content-center mx-sm-3 mx-2 text-center mb-4 resumen">
5
+ <i ngClass="mb-2 colorIconoCheckout" [class]="getIcon(item.type)"></i>
6
+ <strong class="text-center w-100 font-brandon font-md mb-1">{{ item.type | translate }}</strong>
7
+ <span class="text-center w-100 font-brandon font-md text-gray">{{ (item.amount != 0 ) ? (item.amount |
8
+ ecCurrencySymbol) : ('free' | translate) }}</span>
9
+ </div>
10
+ }
11
+ </div>
12
+ }
@@ -0,0 +1,48 @@
1
+ import { Component, inject } from '@angular/core';
2
+ import { TranslateModule } from '@ngx-translate/core';
3
+ import { EcCurrencySymbolPipe } from '../../../ec-pipe';
4
+ import { CheckoutService } from '../../../ec-services';
5
+ import { AsyncPipe } from '@angular/common';
6
+ @Component({
7
+ selector: 'app-detail-checkout-block-ec',
8
+ standalone: true,
9
+ imports: [TranslateModule, EcCurrencySymbolPipe, AsyncPipe],
10
+ templateUrl: './detail-checkout-block-ec.component.html',
11
+ styleUrl: './detail-checkout-block-ec.component.scss'
12
+ })
13
+ export class DetailCheckoutBlockEcComponent {
14
+ private _checkoutService: CheckoutService = inject(CheckoutService);
15
+
16
+ public data$ = this._checkoutService.associatedData$;
17
+ public data: any = null
18
+ getIcon = (data_type: string) => {
19
+
20
+ switch (data_type) {
21
+ case 'coupon': return 'fas fa-ticket-alt fa-3x';
22
+ case 'discount': return 'fas fa-tags fa-3x';
23
+ case 'shipment': return 'fas fa-shipping-fast fa-3x';
24
+ case 'subtotal': return 'fas fa-boxes fa-3x';
25
+ case 'taxes': return 'fas fa-file-invoice-dollar fa-3x';
26
+ case 'total': return 'fas fa-shopping-basket fa-3x';
27
+ default: return 'fas fa-tags fa-3x';
28
+ }
29
+
30
+ }
31
+ constructor() {
32
+ this._checkoutService.associatedData$.subscribe(data => {
33
+ this.data = data.filter((value: any, i: number) => this.checkData(value, i));
34
+ }
35
+ );
36
+ }
37
+
38
+ private checkData(data: any, index: number) {
39
+ switch (data.type) {
40
+ case 'discount':
41
+ return (data.amount != 0 && index === 1)
42
+ case 'coupon':
43
+ return (data.amount != 0 && index === 1)
44
+ default:
45
+ return true
46
+ }
47
+ }
48
+ }
@@ -0,0 +1,195 @@
1
+ @if(methods$ | async; as methods){
2
+ <div class="container-fluid">
3
+
4
+ <div class="row">
5
+ <div class="col-12">
6
+ <div class="card ">
7
+ <div class="card-header text-dark text-center">
8
+ <h4>{{ 'select-method' | translate }}</h4>
9
+ <div class="btn-toolbar justify-content-center" role="toolbar" aria-label="Envios toolbar">
10
+ <div class="" role="group" aria-label="Grupo botones envio">
11
+ <div class="d-flex align-content-start justify-content-center flex-wrap">
12
+ @for (method of methods; track $index; let x = $index) {
13
+ <button type="button" class="btn btn-outline-secondary mx-1 mb-1"(click)="setMethod(method) ; setActive($event)">
14
+ {{ method.name | translate }}
15
+ </button>
16
+ }
17
+ </div>
18
+ </div>
19
+ </div>
20
+ </div>
21
+ <div class="card-body text-center">
22
+ @if(methodData$ | async; as method){
23
+ <div class="row justify-content-center">
24
+ @if(!loadingInternal){
25
+ @if(isMP(method.code)){
26
+ <div class="method-container text-dark">
27
+ <div class="row">
28
+ <div class="col-12">
29
+ <p id="faqs" class="qt px-5 ">{{ method.description }}</p>
30
+ <p class="px-5">{{ method.instructions }}</p>
31
+ <app-mp-redirect-ec (ready)="verifyValidate($event)" [method]="method"></app-mp-redirect-ec>
32
+ </div>
33
+ </div>
34
+ </div>
35
+ }
36
+ <!-- <div class="method-container text-dark text-left" *ngIf="isMPTarjetaDeCredito(method.code)">
37
+ <div class="row">
38
+ <div class="col-12">
39
+ <p id="faqs" class="qt px-5 ">{{ method.description }}</p>
40
+ <p class="px-5">{{ method.instructions }}</p>
41
+ <div app-mp-credit-ec (ready)="verifyValidate()" [public_key]="getPK(method)"
42
+ [user_data]="allData()" [total_amount]="total_amount">
43
+ </div>
44
+ </div>
45
+ </div>
46
+ </div>
47
+ <div class="method-container text-dark text-start" *ngIf="isRedirectRedsys(method.code)">
48
+ <div class="row">
49
+ <div class="col-12">
50
+ <ng-container
51
+ *ngIf="!method.code.includes('bizum') && !method.code.includes('_out_')">
52
+ <app-redsys-redirect-ec (ready)="verifyValidate($event)" [method]="method"
53
+ [user_data]="allData()">
54
+ </app-redsys-redirect-ec>
55
+ </ng-container>
56
+ <ng-container
57
+ *ngIf="method.code.includes('bizum') || method.code.includes('_out_')">
58
+ <app-redsys-redirect-out-ec (ready)="verifyValidate($event)"
59
+ [method]="method" [user_data]="allData()">
60
+ </app-redsys-redirect-out-ec>
61
+ </ng-container>
62
+ </div>
63
+ </div>
64
+ </div>
65
+ <div class="method-container text-dark text-start" *ngIf="isRedirectCecaBank(method.code)">
66
+ <div class="row">
67
+ <div class="col-12">
68
+ <app-ceca-redirect-ec (ready)="verifyValidate($event)" [method]="method"
69
+ [user_data]="allData()">
70
+ </app-ceca-redirect-ec>
71
+ </div>
72
+ </div>
73
+ </div>
74
+ <div class="method-container text-dark text-start" *ngIf="isPeyPalExpress(method.code)">
75
+ <div class="container">
76
+ <div class="row justify-content-center">
77
+ <div class="col-12">
78
+ <app-paypal-express-ec (ready)="verifyValidate($event)" [method]="method"
79
+ [user_data]="allData()" [total_amount]="total_amount">
80
+ </app-paypal-express-ec>
81
+ </div>
82
+ </div>
83
+ </div>
84
+ </div>
85
+ <div class="method-container text-dark text-start" *ngIf="isMobbex(method.code)">
86
+ <div class="container">
87
+ <div class="row justify-content-center">
88
+ <div class="col-12">
89
+ <app-mobbex-ec (ready)="verifyValidate($event)" [method]="method"
90
+ [user_data]="allData()" [paymentServiceInst]="paymentService"
91
+ [total_amount]="total_amount">
92
+ </app-mobbex-ec>
93
+ </div>
94
+ </div>
95
+ </div>
96
+ </div>
97
+ <div class="method-container text-dark text-start" *ngIf="isBancard(method.code)">
98
+ <div class="container">
99
+ <div class="row justify-content-center">
100
+ <div class="col-12">
101
+ <app-bancard-ec (ready)="verifyValidate($event)" [method]="method"
102
+ [user_data]="allData()" [paymentServiceInst]="paymentService"
103
+ [total_amount]="total_amount">
104
+ </app-bancard-ec>
105
+ </div>
106
+ </div>
107
+ </div>
108
+ </div>
109
+ <div class="method-container text-dark text-start" *ngIf="isDecidir(method.code)">
110
+ <div class="container">
111
+ <div class="row justify-content-center">
112
+ <div class="col-12">
113
+ <app-decidir-ec (ready)="verifyValidate($event)" [method]="method"
114
+ [user_data]="allData()" [paymentServiceInst]="paymentService"
115
+ [total_amount]="total_amount">
116
+ </app-decidir-ec>
117
+ </div>
118
+ </div>
119
+ </div>
120
+ </div> -->
121
+ @if(isMethodOffline(method.code)){
122
+ <div class="method-container text-dark">
123
+ <div class="row">
124
+ <div class="col-12">
125
+ <app-offline-ec
126
+ [method]="method"
127
+ [verifyValidate]= "verifyValidate"
128
+ [setLoading] = "setLoading" />
129
+ </div>
130
+ </div>
131
+ </div>
132
+ }
133
+
134
+ <!--
135
+ <div class="method-container text-dark text-start" *ngIf="isCulqi(method.code)">
136
+ <div class="container">
137
+ <div class="row justify-content-center">
138
+ <div class="col-12">
139
+ <app-culqi-ec [apiKey]="getPKCulqi(method)" [method]="method"
140
+ [amount]="total_amount" [customStyle]="true"
141
+ (ready)="verifyValidate()"></app-culqi-ec>
142
+ </div>
143
+ </div>
144
+ </div>
145
+ </div>
146
+ <div class="method-container text-dark text-start" *ngIf="isCatastro(method.code)">
147
+ <div class="container">
148
+ <div class="row justify-content-center">
149
+ <div class="col-12">
150
+ <app-bancard-catastro-ec (ready)="verifyValidate($event)" [method]="method"
151
+ [user_data]="allData()" [paymentServiceInst]="paymentService"
152
+ [total_amount]="total_amount"></app-bancard-catastro-ec>
153
+ </div>
154
+ </div>
155
+ </div>
156
+ </div>
157
+ <div class="method-container text-dark text-start" *ngIf="isBamboo(method.code)">
158
+ <div class="container">
159
+ <div class="row justify-content-center">
160
+ <div class="col-12">
161
+ <app-bamboo-ec (ready)="verifyValidate($event)" [method]="method"
162
+ [user_data]="allData()" [paymentServiceInst]="paymentService"
163
+ [total_amount]="total_amount"></app-bamboo-ec>
164
+ </div>
165
+ </div>
166
+ </div>
167
+ </div> -->
168
+ @if(isBankTransfer(method.code)){
169
+ <div class="method-container text-dark">
170
+ <div class="row">
171
+ <div class="col-12">
172
+ <app-bank-transfer-ec
173
+ [method]="method"
174
+ [verifyValidate]= "verifyValidate"
175
+ [setLoading] = "setLoading" />
176
+ </div>
177
+ </div>
178
+ </div>
179
+ }
180
+ } @else {
181
+ <app-loading-inline-ec></app-loading-inline-ec>
182
+ }
183
+ </div>
184
+ }
185
+ </div>
186
+ </div>
187
+ <div class="row d-flex flex-row">
188
+ <div class="col-12 d-flex justify-content-between">
189
+ <button class="btn btn-primary text-white" (click)="goBack()">{{'back'|translate}}</button>
190
+ </div>
191
+ </div>
192
+ </div>
193
+ </div>
194
+ </div>
195
+ }