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,37 @@
1
+ import { IStep, StepState, StepType } from "../../interfaces/step";
2
+
3
+ export class Step implements IStep {
4
+
5
+ public name;
6
+ public label:string = '';
7
+ public priority;
8
+ public type: StepType = null;
9
+ public data:any;
10
+ public state: StepState = 'pending';
11
+
12
+ constructor(name:any, priority:any, label:string, state?:StepState) {
13
+ this.name = name;
14
+ this.label = label;
15
+ this.state = state || 'pending';
16
+ this.priority = priority;
17
+ }
18
+
19
+ doing = () => {
20
+ this.data = null;
21
+ this.state = 'doing';
22
+ };
23
+
24
+ restart = () => {
25
+ this.data = null;
26
+ this.state = 'pending';
27
+ }
28
+
29
+ ready = (data:any) => {
30
+ this.data = data;
31
+ this.state = 'ready';
32
+ }
33
+
34
+ isPending = () => this.state == 'pending' || this.state == 'doing';
35
+
36
+ isReady = () => this.state == 'ready' && this.data;
37
+ }
@@ -0,0 +1,74 @@
1
+ import { inject } from "@angular/core";
2
+ import { OptionsService } from "../../ec-services";
3
+ import { FilterElement, FilterType, IFilter } from "../../interfaces";
4
+ import { Filter } from "./filter";
5
+
6
+ export class AttributesFilter extends Filter {
7
+ private _optionsService: OptionsService = inject(OptionsService);
8
+
9
+ override data: FilterElement[] = [];
10
+ override multi: boolean = false;
11
+
12
+ constructor(initialValue?: any, options?:any) {
13
+ super();
14
+ if(options){
15
+ this.setContent(options, initialValue);
16
+ }else{
17
+ this._optionsService.getAttributes().subscribe(
18
+ res => {
19
+ //console.log(res);
20
+ this.setContent(res, initialValue);
21
+ }
22
+ )
23
+ }
24
+ }
25
+
26
+ override type(): FilterType { return 'attributes'; }
27
+
28
+ override setContent(options: any, initialValue?: any): void {
29
+ const attributes = this._optionsService.generateMenu(options);
30
+ attributes.forEach((filter: any) => filter = this.createElement(filter, options, initialValue));
31
+ this.data = attributes;
32
+ }
33
+ override getContent(): FilterElement[] {
34
+ return this.data;
35
+ }
36
+ override toUrlParams(actual_url = '&attributeCodes=', sublist?:any, already?:any) {
37
+ let elements = sublist || this.data;
38
+ let aux_url = '';
39
+ elements.forEach((element: any) => {
40
+ if (element.type == 'sub') {
41
+ let result = this.toUrlParams('', element.children, (actual_url != '&attributeCodes=' && actual_url != ''))
42
+ if (!actual_url.includes(result)) actual_url += this.cleanResult(result);
43
+ } else if (element.selected) {
44
+ if (actual_url == '&attributeCodes=' && aux_url == '') {
45
+ aux_url = element.code;
46
+ }
47
+ else {
48
+ if (aux_url == '') aux_url = (already ? '<and>' : '') + element.code;
49
+ else aux_url += ('<and>' + element.code);
50
+ }
51
+ }
52
+ })
53
+ //console.log(actual_url + aux_url);
54
+ return actual_url + aux_url;
55
+ };
56
+
57
+ cleanResult(text: string) { return text.replace('&attributeCodes=', '') };
58
+
59
+ override createElement(filter: any, original: any, initialValue?: any) {
60
+ if (filter.type == 'sub') {
61
+ filter.multi = false;
62
+ filter.shape = 'text';
63
+ filter.value = original.code;
64
+ filter.children = filter.children.map((child: any, i: number) =>{
65
+ return this.createElement(child, child.children, initialValue)
66
+ });
67
+ } else {
68
+ filter.value = original.code;
69
+ filter.multi = false;
70
+ filter.selected = (initialValue && this.removeAccents(original.slug?.toLowerCase()) == this.removeAccents(initialValue?.toLowerCase()));
71
+ }
72
+ return filter;
73
+ }
74
+ }
@@ -0,0 +1,57 @@
1
+ import { inject } from "@angular/core";
2
+ import { OptionsService } from "../../ec-services";
3
+ import { FilterElement, FilterType, IFilter } from "../../interfaces";
4
+ import { Filter } from "./filter";
5
+
6
+ export class CategoryFilter extends Filter{
7
+ private _optionsService: OptionsService = inject(OptionsService);
8
+
9
+ override data: FilterElement[] = [];
10
+ override multi: boolean = false;
11
+
12
+ constructor(private initialValues?: any,) {
13
+ super();
14
+ this._optionsService.getCategories().subscribe(res => {
15
+ //console.log(res);
16
+ this.setContent(res, initialValues);
17
+ })
18
+ }
19
+
20
+ override type(): FilterType {
21
+ return 'categories';
22
+ }
23
+ override setContent(options: any, initialValue?: any): void {
24
+ const categories = this._optionsService.generateMenu(options);
25
+ categories.forEach((filter: any, i: number) => filter = this.createElement(filter, options[i], initialValue));
26
+ this.data = categories;
27
+ }
28
+ override getContent(): FilterElement[] {
29
+ throw new Error("Method not implemented.");
30
+ }
31
+ override toUrlParams(actual_url = '', sublist?: any): string {
32
+ let elements = sublist || this.data;
33
+ elements.forEach((element: any) => {
34
+ if (element.type == 'sub' && !element.selected) {
35
+ const result = this.toUrlParams('', element.children);
36
+ !actual_url.includes(result) ? actual_url += result : null;
37
+ } else if (element.selected) {
38
+ if (actual_url == '') actual_url = '&category=' + element.value;
39
+ else actual_url = element.value;
40
+ }
41
+ })
42
+ return actual_url;
43
+ }
44
+ override createElement(filter: any, original: any, initialValue?: any) {
45
+ if (filter.type == 'sub') {
46
+ filter.multi = false;
47
+ filter.shape = 'text';
48
+ filter.value = original.code;
49
+ filter.selected = (initialValue && this.removeAccents(original.slug?.toLowerCase()) == this.removeAccents(initialValue?.toLowerCase()));
50
+ filter.children = filter.children.map((child:any, i:number) => this.createElement(child, original.children[i], initialValue));
51
+ } else {
52
+ filter.value = original.code;
53
+ filter.selected = (initialValue && this.removeAccents(original.slug?.toLowerCase()) == this.removeAccents(initialValue?.toLowerCase()));
54
+ }
55
+ return filter
56
+ }
57
+ }
@@ -0,0 +1,57 @@
1
+ import { FilterElement, FilterType, IFilter } from "../../interfaces";
2
+ import { Filter } from "./filter";
3
+
4
+ export class DynamicsFilter extends Filter{
5
+ generated_url = '';
6
+ override data: FilterElement[] = [];
7
+ override multi: boolean = true;
8
+
9
+ override type(): FilterType {
10
+ return 'dynamics';
11
+ }
12
+ override setContent(options: any): void {
13
+ options = options.map((option:any) => option = this.createElement(option));
14
+ this.data = options;
15
+ }
16
+ override getContent(): FilterElement[] {
17
+ throw new Error("Method not implemented.");
18
+ }
19
+ override toUrlParams = (actual_url = '&optionCodes=', sublist?:any, already?:any):string => {
20
+ let elements = sublist || this.data;
21
+ let aux_url = '';
22
+ elements.forEach((element:any) => {
23
+ if (element.type == 'sub') {
24
+ let result = this.toUrlParams('', element.children, (actual_url != '&optionCodes=' && actual_url != ''))
25
+ if (!actual_url.includes(result)) actual_url += this.cleanResult(result);
26
+ } else if (element.selected) {
27
+ if (actual_url == '&optionCodes=' && aux_url == '') {
28
+ aux_url = element.value;
29
+ }
30
+ else {
31
+ if (aux_url == '') aux_url = (already ? '<and>' : '') + element.value;
32
+ else aux_url += ('<and>' + element.value);
33
+ }
34
+ }
35
+ })
36
+ return actual_url + aux_url;
37
+ };
38
+
39
+ override createElement(option: any) {
40
+ option = {
41
+ title: option.label, useToFilter:option.useToFilter, type: 'sub', multi: false, code: option.code, shape: option.type, children: option.values.map((value:any) => {
42
+ return {
43
+ title: value.code,
44
+ description: value.name,
45
+ code: (option.code + ' ' + value.name),
46
+ type: 'child',
47
+ value: value.code,
48
+ selected: false,
49
+ image: value.image
50
+ }
51
+ })
52
+ }
53
+ return option;
54
+ }
55
+
56
+ cleanResult(text:string) {return text.replace('&optionCodes=', '')};
57
+ }
@@ -0,0 +1,23 @@
1
+ import { FilterType, IFilter, PaginationSettings } from "../../interfaces";
2
+ import { AttributesFilter } from "./attributes-filter";
3
+ import { CategoryFilter } from "./category-filter";
4
+ import { DynamicsFilter } from "./dynamics-filter";
5
+ import { Filter } from "./filter";
6
+ import { SortFilter } from "./sort-filter";
7
+
8
+ export class FilterFactory {
9
+ public create(filterType: FilterType, productsFilter?: PaginationSettings): Filter {
10
+ switch (filterType) {
11
+ case 'categories':
12
+ return new CategoryFilter(productsFilter ? (productsFilter.type == 'categories' && productsFilter.value) : null);
13
+ case 'attributes':
14
+ return new AttributesFilter(productsFilter ? (productsFilter.type == 'attributes' && productsFilter.value) : null);
15
+ case 'dynamics':
16
+ return new DynamicsFilter();
17
+ case 'sort':
18
+ return new SortFilter();
19
+ default:
20
+ throw new Error("Not implemented")
21
+ }
22
+ }
23
+ }
@@ -0,0 +1,89 @@
1
+ import { FilterElement, FilterType, IFilter } from "../../interfaces";
2
+
3
+ export class Filter implements IFilter {
4
+
5
+ data: FilterElement[] = [];
6
+ multi: boolean = false;
7
+
8
+ type(): FilterType {
9
+ throw new Error("Method not implemented.");
10
+ }
11
+ setContent(options: any): void {
12
+ throw new Error("Method not implemented.");
13
+ }
14
+ getContent(): FilterElement[] {
15
+ throw new Error("Method not implemented.");
16
+ }
17
+ toUrlParams(): string {
18
+ throw new Error("Method not implemented.");
19
+ }
20
+ createElement(filter: any, original: any, initialValue?: any) {
21
+ throw new Error("Method not implemented.");
22
+ }
23
+ removeAccents = (str:string) => {
24
+ return str.normalize("NFD").replace(/[\u0300-\u036f]/g, "");
25
+ }
26
+
27
+ setSelected(element:any, value?:any){
28
+ //console.log(element, value);
29
+ ((element.multi != undefined) && !element.multi) ? this.cleanFilter(this.data, element) : null;
30
+ this.setSelectedValue(element, value);
31
+ }
32
+
33
+ cleanFilter = (data:any, element_to_change:any) => {
34
+ //console.log("cleanFilter");
35
+ element_to_change && data.forEach((element:any) => {
36
+ element_to_change != element ? element.selected = false : null;
37
+ (element.children && element.children.length > 0) && this.cleanFilter(element.children, element_to_change);
38
+ })
39
+ }
40
+
41
+ setSelectedValue(element:any, value?:any, sublist?:any, multi?:any){
42
+ let elements = sublist || this.data;
43
+ let index = elements.findIndex((subelement:any) => {
44
+ return (element.code || element) == subelement.code;
45
+ });
46
+ if (index >= 0) {
47
+ elements[index].selected = elements[index].selected ? false : true;
48
+ !multi && elements.forEach((child:any, i:number) => {
49
+ if (i != index) child.selected = false;
50
+ });
51
+ return {
52
+ elements,
53
+ founded: true
54
+ };
55
+ } else {
56
+ elements.some((elem:any) => elem.type == 'sub') && elements.some(
57
+ (filter:any) => {
58
+ let founded = false;
59
+ if (filter.type == 'sub') {
60
+ const result = this.setSelectedValue(element, value, filter.children, filter.multi);
61
+ if (result && result.founded) {
62
+ filter.children = result.elements;
63
+ founded = true;
64
+ }
65
+ }
66
+ return founded;
67
+ }
68
+ )
69
+ }
70
+ return null;
71
+ };
72
+
73
+ getSelectedList = (): any => this.findSelected(this.data, []);
74
+
75
+ findSelected = (elements: any[], result:any) => {
76
+ let element = elements.find(elem => elem.selected);
77
+ if (element) {
78
+ result.push(element.code);
79
+ return result;
80
+ }
81
+ elements.forEach(elem => {
82
+ if (elem.children && elem.children.length) {
83
+ let new_result = this.findSelected(elem.children, result);
84
+ if (new_result) result = new_result;
85
+ }
86
+ })
87
+ return result;
88
+ }
89
+ }
@@ -0,0 +1,6 @@
1
+ export * from'./category-filter';
2
+ export * from'./attributes-filter';
3
+ export * from'./dynamics-filter';
4
+ export * from'./sort-filter';
5
+ export * from'./filter-factory';
6
+ export * from'./filter';
@@ -0,0 +1,93 @@
1
+ import { inject } from "@angular/core";
2
+ import { CoreConstantsService } from "../../constants";
3
+ import { FilterElement, FilterType, IFilter } from "../../interfaces";
4
+ import { Filter } from "./filter";
5
+
6
+ export class SortFilter extends Filter {
7
+ private _consts: CoreConstantsService = inject(CoreConstantsService);
8
+
9
+ override data: FilterElement[] = [];
10
+ override multi: boolean = true;
11
+
12
+ constructor(){
13
+ super();
14
+ this.setContent();
15
+ }
16
+
17
+ override type(): FilterType {
18
+ return 'sort'
19
+ }
20
+ override setContent(): void {
21
+ this.data = [
22
+ {
23
+ title: 'price', type: 'sub', multi: false, code: 'price', shape: 'text', children: [
24
+ { title: 'cheapest-first', code: 'price chip', type: 'child', value: 'asc', selected: false, multi: false, },
25
+ { title: 'most-expensive-first', code: 'price expensive', type: 'child', value: 'desc', selected: false, multi: false, }
26
+ ]
27
+ },
28
+ {
29
+ title: 'alphabetical-order', type: 'sub', code: 'order-alph', multi: false, shape: 'text', children: [
30
+ // { title: 'order-alph', type: 'child', code: 'alpha default', value: '', selected: false, multi: false },
31
+ { title: 'ascendancy', type: 'child', code: 'alpha asc', value: 'asc', selected: false, multi: false, },
32
+ { title: 'descendant', type: 'child', code: 'alpha desc', value: 'desc', selected: false, multi: false, }
33
+ ]
34
+ },
35
+ {
36
+ title: 'created-date',
37
+ type: 'sub',
38
+ code: 'recent',
39
+ multi: false,
40
+ shape: 'text',
41
+ children: [
42
+ { title: 'order-date', type: 'child', code: 'recent default', value: '', selected: false, multi: false },
43
+ { title: 'newest-first', type: 'child', code: 'recent desc', value: 'desc', selected: false, multi: false },
44
+ { title: 'oldest-first', type: 'child', code: 'recent asc', value: 'asc', selected: false, multi: false },
45
+ ]
46
+ },
47
+ {
48
+ title: 'date-created',
49
+ type: 'sub',
50
+ code: 'update',
51
+ multi: false,
52
+ shape: 'text',
53
+ children: [
54
+ { noUrl: true, title: 'newest-first', type: 'child', code: 'update asc', value: 'asc', selected: false, multi: false },
55
+ { noUrl: true, title: 'oldest-first', type: 'child', code: 'update desc', value: 'desc', selected: false, multi: false },
56
+ ]
57
+ }
58
+ ]
59
+
60
+ if (!this._consts.getSortFilters().includes('all')) {
61
+ this.data = this.data.filter(elem => this._consts.getSortFilters().includes(elem.code))
62
+ }
63
+ }
64
+ override getContent(): FilterElement[] {
65
+ return this.data;
66
+ }
67
+ override toUrlParams(actual_url = '', sublist?:any, father?:any): string {
68
+ let elements = sublist || this.data;
69
+ elements.forEach((element:any) => {
70
+ if (!element.noUrl) { //Si es sin url, no se hace nada. Osea el filtrado es en la vista.
71
+ if (element.type == 'sub') {
72
+ const result = this.toUrlParams(actual_url, element.children, element.title);
73
+ !actual_url.includes(result) ? actual_url += result : null;
74
+ } else if (element.selected) {
75
+ actual_url = ('&sorting[' + this.translate(father) + ']=' + element.value);
76
+ }
77
+ }
78
+ })
79
+ return actual_url;
80
+ }
81
+ override createElement(filter: any, original: any, initialValue?: any) {
82
+ throw new Error("Method not implemented.");
83
+ }
84
+
85
+ translate(value:string):string | null{
86
+ switch (value) {
87
+ case 'price': return 'price';
88
+ case 'created-date': return 'dateCreate';
89
+ case 'alphabetical-order': return 'name';
90
+ default: return null;
91
+ }
92
+ }
93
+ }
@@ -0,0 +1,3 @@
1
+ export * from './user';
2
+ export * from './filters';
3
+ export * from './checkout';
@@ -0,0 +1,68 @@
1
+ import { Deserializable } from "../interfaces";
2
+
3
+ export class User implements Deserializable {
4
+
5
+ private readonly USER = 'USER';
6
+ public type = 'loguedin';
7
+ public config = {};
8
+ public client_id = 'demo_client';
9
+ public client_secret = 'secret_demo_client';
10
+ public grant_type = 'password';
11
+ public email = '';
12
+ public username = '';
13
+ public password = '';
14
+ public first_name = '';
15
+ public last_name = '';
16
+ public address = { country: '', city: '', state: '', address: '', postcode: '' };
17
+ public birthday = '';
18
+ public gender = '';
19
+ public phone_number = '';
20
+ public suscribed_to_newsletter: boolean = true;
21
+ public document_type? = '';
22
+ public preferred_card? = '';
23
+ public document_number? = '';
24
+ public channels = []
25
+ public customers = []
26
+ public token = '';
27
+ public typeUser? = null;
28
+
29
+ initilized(res: any) {
30
+ this.token = res.token
31
+ this.typeUser = res.hasOwnProperty('type') ? res.type : 'retail_customer'
32
+ this.username = res.username
33
+ this.email = res.username
34
+ this.channels = res.channels || []
35
+ this.customers = res.customers || []
36
+ }
37
+
38
+ deserialize(input: any): this {
39
+ return Object.assign(this, input);
40
+ }
41
+
42
+ jsonify() {
43
+ return {
44
+ client_id: this.client_id,
45
+ client_secret: this.client_secret,
46
+ grant_type: this.grant_type,
47
+ username: this.username,
48
+ email: this.email,
49
+ password: this.password,
50
+ token: this.token,
51
+ typeUser: this.typeUser,
52
+ channels: this.channels,
53
+ customers: this.customers
54
+ }
55
+ }
56
+
57
+ public isSeller() { return this.typeUser && this.typeUser == 'seller' || false }
58
+
59
+ public setChannels(...channels: any): void { this.channels = channels }
60
+
61
+ public isWholesaler():boolean {
62
+ return this.typeUser && (this.typeUser == 'wholesaler_customer' || this.typeUser == 'seller') || false
63
+ }
64
+
65
+ static fromJson(data: any): User {
66
+ return Object.assign(new User(), data);
67
+ }
68
+ }
@@ -0,0 +1,69 @@
1
+ import { inject, Injectable } from '@angular/core';
2
+ import { ENVIRONMENT_TOKEN } from '../providers';
3
+ import { Environment } from '../interfaces';
4
+ import { LocalStorageService } from '../ec-services';
5
+ import { TranslateService } from '@ngx-translate/core';
6
+ import { CoreConstantsService } from './core.constants.service';
7
+
8
+ /**
9
+ * Servicio que provee de datos que estan relacionado con las peticiones a la API
10
+ * @export
11
+ * @class ApiConstantsService
12
+ */
13
+ @Injectable({
14
+ providedIn: 'root'
15
+ })
16
+ export class ApiConstantsService {
17
+ private _localStorage: LocalStorageService = inject(LocalStorageService);
18
+ private _translate: TranslateService = inject(TranslateService);
19
+
20
+ /**
21
+ * Contiene los datos provisto por el frontend en el archivo environment.ts
22
+ */
23
+ private environment:Environment = inject(ENVIRONMENT_TOKEN)
24
+ /**
25
+ * Canal actual del frontend
26
+ */
27
+ public CHANNEL:string = this.environment.channel;
28
+ /**
29
+ * Locale actual del frontend
30
+ */
31
+ public LOCALE:string = this.environment.locale;
32
+ /**
33
+ * URL del backend para realizar las peticiones
34
+ */
35
+ public readonly API_URL:string = this.environment.apiUrl;
36
+ /**
37
+ * URL para las peticiones a shop-api
38
+ */
39
+ public readonly SHOP_API_URL:string = 'shop-api/';
40
+ /**
41
+ * URL para las peticiones a cms
42
+ */
43
+ public readonly CMS_URL:string = 'cms/';
44
+ /**
45
+ * URL base para realizar las peticiones a la API
46
+ */
47
+ private urlBase: string = this.environment.apiUrl
48
+ /**
49
+ * Retorna la url base
50
+ * @returns {string}
51
+ */
52
+ public getUrlBase(): string { return this.urlBase};
53
+ /**
54
+ * Cambia el canal actual
55
+ * @param code
56
+ * @returns
57
+ */
58
+ public setChannel(code: string):void{ this.CHANNEL = code;}
59
+
60
+ public setLocale(locale: string):void{
61
+ this._localStorage.setItem(this.LOCALE_KEY, locale);
62
+ this._translate.use(locale.split('_')[0])
63
+ this.LOCALE = locale;
64
+ }
65
+
66
+ //Storage key
67
+ private readonly LOCALE_KEY:string = 'LOCALE';
68
+ private readonly CHANNEL_KEY:string = 'CHANNEL';
69
+ }