ng-easycommerce-v18 0.0.1 → 0.0.3

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 (508) hide show
  1. package/README.md +9 -12
  2. package/esm2022/lib/api/connection.service.mjs +75 -0
  3. package/esm2022/lib/api/index.mjs +2 -0
  4. package/esm2022/lib/classes/checkout/index.mjs +2 -0
  5. package/esm2022/lib/classes/checkout/steps.mjs +29 -0
  6. package/esm2022/lib/classes/filters/attributes-filter.mjs +73 -0
  7. package/esm2022/lib/classes/filters/category-filter.mjs +59 -0
  8. package/esm2022/lib/classes/filters/dynamics-filter.mjs +58 -0
  9. package/esm2022/lib/classes/filters/filter-factory.mjs +21 -0
  10. package/esm2022/lib/classes/filters/filter.mjs +83 -0
  11. package/esm2022/lib/classes/filters/index.mjs +7 -0
  12. package/esm2022/lib/classes/filters/sort-filter.mjs +88 -0
  13. package/esm2022/lib/classes/index.mjs +4 -0
  14. package/esm2022/lib/classes/user.mjs +59 -0
  15. package/esm2022/lib/constants/api.constants.service.mjs +71 -0
  16. package/esm2022/lib/constants/core.constants.service.mjs +205 -0
  17. package/esm2022/lib/constants/index.mjs +3 -0
  18. package/esm2022/lib/ec-components/abstractions-components/block-ec.component.mjs +110 -0
  19. package/esm2022/lib/ec-components/abstractions-components/index.mjs +3 -0
  20. package/esm2022/lib/ec-components/abstractions-components/menu-ec.component.mjs +97 -0
  21. package/esm2022/lib/ec-components/account-ec/account-ec.component.mjs +22 -0
  22. package/esm2022/lib/ec-components/account-ec/index.mjs +4 -0
  23. package/esm2022/lib/ec-components/account-ec/order-ec/order-ec.component.mjs +16 -0
  24. package/esm2022/lib/ec-components/account-ec/orders-list-ec/orders-list-ec.component.mjs +150 -0
  25. package/esm2022/lib/ec-components/auth-ec/auth-ec.component.mjs +12 -0
  26. package/esm2022/lib/ec-components/auth-ec/confirm-account-ec/confirm-account-ec.component.mjs +30 -0
  27. package/esm2022/lib/ec-components/auth-ec/forgot-password-ec/forgot-password-ec.component.mjs +54 -0
  28. package/esm2022/lib/ec-components/auth-ec/index.mjs +7 -0
  29. package/esm2022/lib/ec-components/auth-ec/login-form-ec/login-form-ec.component.mjs +91 -0
  30. package/esm2022/lib/ec-components/auth-ec/register-form-ec/register-form-ec.component.mjs +105 -0
  31. package/esm2022/lib/ec-components/auth-ec/register-wholesaler-form-ec/register-wholesaler-form-ec.component.mjs +153 -0
  32. package/esm2022/lib/ec-components/blocks-ec/block-banner-box-ec/block-banner-box-ec.component.mjs +109 -0
  33. package/esm2022/lib/ec-components/blocks-ec/block-banner-full-ec/block-banner-full-ec.component.mjs +87 -0
  34. package/esm2022/lib/ec-components/blocks-ec/block-form-contact-ec/block-form-contact-ec.component.mjs +87 -0
  35. package/esm2022/lib/ec-components/blocks-ec/block-html-ec/block-html-ec.component.mjs +37 -0
  36. package/esm2022/lib/ec-components/blocks-ec/block-newsletter-ec/block-newsletter-ec.component.mjs +86 -0
  37. package/esm2022/lib/ec-components/blocks-ec/block-products-ec/block-products-ec.component.mjs +109 -0
  38. package/esm2022/lib/ec-components/blocks-ec/blocks-ec.component.mjs +99 -0
  39. package/esm2022/lib/ec-components/blocks-ec/index.mjs +5 -0
  40. package/esm2022/lib/ec-components/breadcrumb-ec/breadcrumb-ec.component.mjs +27 -0
  41. package/esm2022/lib/ec-components/cart-ec/cart-ec.component.mjs +21 -0
  42. package/esm2022/lib/ec-components/cart-ec/cart-item-ec/cart-item-ec.component.mjs +47 -0
  43. package/esm2022/lib/ec-components/cart-ec/index.mjs +3 -0
  44. package/esm2022/lib/ec-components/checkout-ec/checkout-ec.component.mjs +60 -0
  45. package/esm2022/lib/ec-components/checkout-ec/dataform-ec/dataform-ec.component.mjs +271 -0
  46. package/esm2022/lib/ec-components/checkout-ec/dataform-ec/input-ec/input-ec.component.mjs +51 -0
  47. package/esm2022/lib/ec-components/checkout-ec/detail-checkout-block-ec/detail-checkout-block-ec.component.mjs +45 -0
  48. package/esm2022/lib/ec-components/checkout-ec/payment-ec/payment-ec.component.mjs +92 -0
  49. package/esm2022/lib/ec-components/checkout-ec/payment-ec/payment-methods/bank-transfer-ec/bank-transfer-ec.component.mjs +30 -0
  50. package/esm2022/lib/ec-components/checkout-ec/payment-ec/payment-methods/index.mjs +4 -0
  51. package/esm2022/lib/ec-components/checkout-ec/payment-ec/payment-methods/mp-redirect-ec/mp-redirect-ec.component.mjs +119 -0
  52. package/esm2022/lib/ec-components/checkout-ec/payment-ec/payment-methods/offline-ec/offline-ec.component.mjs +32 -0
  53. package/esm2022/lib/ec-components/checkout-ec/shipment-ec/shipment-ec.component.mjs +96 -0
  54. package/esm2022/lib/ec-components/checkout-ec/step-container-ec/step-container-ec.component.mjs +35 -0
  55. package/esm2022/lib/ec-components/checkout-ec/success-ec/success-ec.component.mjs +55 -0
  56. package/esm2022/lib/ec-components/collection-ec/collection-ec.component.mjs +72 -0
  57. package/esm2022/lib/ec-components/coupon-ec/coupon-ec.component.mjs +29 -0
  58. package/esm2022/lib/ec-components/filters-ec/filters-ec.component.mjs +38 -0
  59. package/esm2022/lib/ec-components/filters-sort-ec/filters-sort-ec.component.mjs +36 -0
  60. package/esm2022/lib/ec-components/footer-ec/footer-ec.component.mjs +17 -0
  61. package/esm2022/lib/ec-components/header-ec/header-ec.component.mjs +20 -0
  62. package/esm2022/lib/ec-components/home-ec/home-ec.component.mjs +14 -0
  63. package/esm2022/lib/ec-components/index.mjs +25 -0
  64. package/esm2022/lib/ec-components/product-detail-ec/product-detail-ec.component.mjs +86 -0
  65. package/esm2022/lib/ec-components/product-ec/product-ec.component.mjs +51 -0
  66. package/esm2022/lib/ec-components/variants-ec/variants-ec.component.mjs +18 -0
  67. package/esm2022/lib/ec-components/widgets-ec/index.mjs +5 -0
  68. package/esm2022/lib/ec-components/widgets-ec/loading/index.mjs +4 -0
  69. package/esm2022/lib/ec-components/widgets-ec/loading/loading-full-ec/loading-full-ec.component.mjs +11 -0
  70. package/esm2022/lib/ec-components/widgets-ec/loading/loading-inline-ec/loading-inline-ec.component.mjs +16 -0
  71. package/esm2022/lib/ec-components/widgets-ec/loading/loading-section-ec/loading-section-ec.component.mjs +12 -0
  72. package/esm2022/lib/ec-components/widgets-ec/magnizoom-ec/magnizoom-ec.component.mjs +178 -0
  73. package/esm2022/lib/ec-components/widgets-ec/price-ec/price-ec.component.mjs +27 -0
  74. package/esm2022/lib/ec-components/widgets-ec/re-captcha-ec/re-captcha-ec.component.mjs +71 -0
  75. package/esm2022/lib/ec-guards/auth.guard.mjs +18 -0
  76. package/esm2022/lib/ec-guards/index.mjs +2 -0
  77. package/esm2022/lib/ec-pipe/ec-currency-symbol.pipe.mjs +104 -0
  78. package/esm2022/lib/ec-pipe/index.mjs +2 -0
  79. package/esm2022/lib/ec-services/addressing.service.mjs +185 -0
  80. package/esm2022/lib/ec-services/analytics/analytics.service.mjs +80 -0
  81. package/esm2022/lib/ec-services/analytics/doppler.service.mjs +47 -0
  82. package/esm2022/lib/ec-services/analytics/facebook-pixel.service.mjs +212 -0
  83. package/esm2022/lib/ec-services/analytics/google-analytics.service.mjs +283 -0
  84. package/esm2022/lib/ec-services/analytics/gtm.service.mjs +414 -0
  85. package/esm2022/lib/ec-services/analytics/index.mjs +7 -0
  86. package/esm2022/lib/ec-services/analytics/metricool-pixel.service.mjs +55 -0
  87. package/esm2022/lib/ec-services/auth.service.mjs +440 -0
  88. package/esm2022/lib/ec-services/auth.storage.service.mjs +54 -0
  89. package/esm2022/lib/ec-services/blocks-repository.service.mjs +64 -0
  90. package/esm2022/lib/ec-services/blocks.service.mjs +52 -0
  91. package/esm2022/lib/ec-services/cart.service.mjs +465 -0
  92. package/esm2022/lib/ec-services/channel.service.mjs +83 -0
  93. package/esm2022/lib/ec-services/checkout.service.mjs +180 -0
  94. package/esm2022/lib/ec-services/currency.service.mjs +177 -0
  95. package/esm2022/lib/ec-services/filters.service.mjs +134 -0
  96. package/esm2022/lib/ec-services/form.service.mjs +81 -0
  97. package/esm2022/lib/ec-services/index.mjs +27 -0
  98. package/esm2022/lib/ec-services/local-storage.service.mjs +58 -0
  99. package/esm2022/lib/ec-services/ngx-local-storage.service.mjs +66 -0
  100. package/esm2022/lib/ec-services/options.service.mjs +273 -0
  101. package/esm2022/lib/ec-services/order-utility.service.mjs +61 -0
  102. package/esm2022/lib/ec-services/orders.service.mjs +48 -0
  103. package/esm2022/lib/ec-services/pagination.service.mjs +163 -0
  104. package/esm2022/lib/ec-services/parameters.service.mjs +65 -0
  105. package/esm2022/lib/ec-services/payment.service.mjs +54 -0
  106. package/esm2022/lib/ec-services/product-detail.service.mjs +285 -0
  107. package/esm2022/lib/ec-services/products.service.mjs +148 -0
  108. package/esm2022/lib/ec-services/re-captcha.service.mjs +114 -0
  109. package/esm2022/lib/ec-services/shipment.service.mjs +158 -0
  110. package/esm2022/lib/ec-services/stores.service.mjs +27 -0
  111. package/esm2022/lib/ec-services/test.service.mjs +16 -0
  112. package/esm2022/lib/ec-services/toast.service.mjs +81 -0
  113. package/esm2022/lib/interceptors/auth.interceptor.mjs +35 -0
  114. package/esm2022/lib/interceptors/index.mjs +2 -0
  115. package/esm2022/lib/interfaces/analytics/event-key.mjs +2 -0
  116. package/esm2022/lib/interfaces/analytics/facebook-pixel-data.mjs +2 -0
  117. package/esm2022/lib/interfaces/analytics/gtm-config.mjs +2 -0
  118. package/esm2022/lib/interfaces/analytics/index.mjs +4 -0
  119. package/esm2022/lib/interfaces/blocks.mjs +2 -0
  120. package/esm2022/lib/interfaces/checkout.mjs +2 -0
  121. package/esm2022/lib/interfaces/connection.mjs +2 -0
  122. package/esm2022/lib/interfaces/coupon.mjs +2 -0
  123. package/esm2022/lib/interfaces/currency.mjs +2 -0
  124. package/esm2022/lib/interfaces/deserializable.mjs +2 -0
  125. package/esm2022/lib/interfaces/environment.mjs +2 -0
  126. package/esm2022/lib/interfaces/filter.mjs +2 -0
  127. package/esm2022/lib/interfaces/index.mjs +19 -0
  128. package/esm2022/lib/interfaces/options.mjs +2 -0
  129. package/esm2022/lib/interfaces/pagination.mjs +2 -0
  130. package/esm2022/lib/interfaces/parameter.mjs +2 -0
  131. package/esm2022/lib/interfaces/product.mjs +2 -0
  132. package/esm2022/lib/interfaces/step.mjs +2 -0
  133. package/esm2022/lib/interfaces/storage.mjs +2 -0
  134. package/esm2022/lib/interfaces/store.mjs +2 -0
  135. package/esm2022/lib/interfaces/types/index.mjs +2 -0
  136. package/esm2022/lib/interfaces/types/user.type.mjs +2 -0
  137. package/esm2022/lib/providers/index.mjs +2 -0
  138. package/esm2022/lib/providers/provideEnvironment.mjs +20 -0
  139. package/esm2022/lib/stores/currency.store.mjs +10 -0
  140. package/esm2022/lib/stores/index.mjs +2 -0
  141. package/esm2022/ng-easycommerce-v18.mjs +5 -0
  142. package/esm2022/public-api.mjs +20 -0
  143. package/fesm2022/ng-easycommerce-v18.mjs +8228 -0
  144. package/fesm2022/ng-easycommerce-v18.mjs.map +1 -0
  145. package/index.d.ts +5 -0
  146. package/lib/api/connection.service.d.ts +52 -0
  147. package/lib/api/index.d.ts +1 -0
  148. package/lib/classes/checkout/index.d.ts +1 -0
  149. package/lib/classes/checkout/steps.d.ts +15 -0
  150. package/lib/classes/filters/attributes-filter.d.ts +14 -0
  151. package/lib/classes/filters/category-filter.d.ts +14 -0
  152. package/lib/classes/filters/dynamics-filter.d.ts +13 -0
  153. package/lib/classes/filters/filter-factory.d.ts +5 -0
  154. package/lib/classes/filters/filter.d.ts +19 -0
  155. package/lib/classes/filters/index.d.ts +6 -0
  156. package/lib/classes/filters/sort-filter.d.ts +14 -0
  157. package/{projects/ng-easycommerce/src/lib/classes/index.ts → lib/classes/index.d.ts} +3 -3
  158. package/lib/classes/user.d.ts +50 -0
  159. package/lib/constants/api.constants.service.d.ts +54 -0
  160. package/lib/constants/core.constants.service.d.ts +116 -0
  161. package/lib/constants/index.d.ts +2 -0
  162. package/lib/ec-components/abstractions-components/block-ec.component.d.ts +62 -0
  163. package/lib/ec-components/abstractions-components/index.d.ts +2 -0
  164. package/lib/ec-components/abstractions-components/menu-ec.component.d.ts +67 -0
  165. package/lib/ec-components/account-ec/account-ec.component.d.ts +10 -0
  166. package/lib/ec-components/account-ec/index.d.ts +3 -0
  167. package/lib/ec-components/account-ec/order-ec/order-ec.component.d.ts +8 -0
  168. package/lib/ec-components/account-ec/orders-list-ec/orders-list-ec.component.d.ts +55 -0
  169. package/lib/ec-components/auth-ec/auth-ec.component.d.ts +5 -0
  170. package/lib/ec-components/auth-ec/confirm-account-ec/confirm-account-ec.component.d.ts +11 -0
  171. package/lib/ec-components/auth-ec/forgot-password-ec/forgot-password-ec.component.d.ts +27 -0
  172. package/{projects/ng-easycommerce/src/lib/ec-components/auth-ec/index.ts → lib/ec-components/auth-ec/index.d.ts} +6 -6
  173. package/lib/ec-components/auth-ec/login-form-ec/login-form-ec.component.d.ts +42 -0
  174. package/lib/ec-components/auth-ec/register-form-ec/register-form-ec.component.d.ts +39 -0
  175. package/lib/ec-components/auth-ec/register-wholesaler-form-ec/register-wholesaler-form-ec.component.d.ts +62 -0
  176. package/lib/ec-components/blocks-ec/block-banner-box-ec/block-banner-box-ec.component.d.ts +47 -0
  177. package/lib/ec-components/blocks-ec/block-banner-full-ec/block-banner-full-ec.component.d.ts +54 -0
  178. package/lib/ec-components/blocks-ec/block-form-contact-ec/block-form-contact-ec.component.d.ts +21 -0
  179. package/lib/ec-components/blocks-ec/block-html-ec/block-html-ec.component.d.ts +25 -0
  180. package/lib/ec-components/blocks-ec/block-newsletter-ec/block-newsletter-ec.component.d.ts +19 -0
  181. package/lib/ec-components/blocks-ec/block-products-ec/block-products-ec.component.d.ts +51 -0
  182. package/lib/ec-components/blocks-ec/blocks-ec.component.d.ts +59 -0
  183. package/{projects/ng-easycommerce/src/lib/ec-components/blocks-ec/index.ts → lib/ec-components/blocks-ec/index.d.ts} +4 -4
  184. package/lib/ec-components/breadcrumb-ec/breadcrumb-ec.component.d.ts +11 -0
  185. package/lib/ec-components/cart-ec/cart-ec.component.d.ts +12 -0
  186. package/lib/ec-components/cart-ec/cart-item-ec/cart-item-ec.component.d.ts +17 -0
  187. package/lib/ec-components/cart-ec/index.d.ts +2 -0
  188. package/lib/ec-components/checkout-ec/checkout-ec.component.d.ts +20 -0
  189. package/lib/ec-components/checkout-ec/dataform-ec/dataform-ec.component.d.ts +83 -0
  190. package/lib/ec-components/checkout-ec/dataform-ec/input-ec/input-ec.component.d.ts +14 -0
  191. package/lib/ec-components/checkout-ec/detail-checkout-block-ec/detail-checkout-block-ec.component.d.ts +11 -0
  192. package/lib/ec-components/checkout-ec/payment-ec/payment-ec.component.d.ts +37 -0
  193. package/lib/ec-components/checkout-ec/payment-ec/payment-methods/bank-transfer-ec/bank-transfer-ec.component.d.ts +11 -0
  194. package/{projects/ng-easycommerce/src/lib/ec-components/checkout-ec/payment-ec/payment-methods/index.ts → lib/ec-components/checkout-ec/payment-ec/payment-methods/index.d.ts} +3 -3
  195. package/lib/ec-components/checkout-ec/payment-ec/payment-methods/mp-redirect-ec/mp-redirect-ec.component.d.ts +30 -0
  196. package/lib/ec-components/checkout-ec/payment-ec/payment-methods/offline-ec/offline-ec.component.d.ts +11 -0
  197. package/lib/ec-components/checkout-ec/shipment-ec/shipment-ec.component.d.ts +30 -0
  198. package/lib/ec-components/checkout-ec/step-container-ec/step-container-ec.component.d.ts +11 -0
  199. package/lib/ec-components/checkout-ec/success-ec/success-ec.component.d.ts +30 -0
  200. package/lib/ec-components/collection-ec/collection-ec.component.d.ts +37 -0
  201. package/lib/ec-components/coupon-ec/coupon-ec.component.d.ts +12 -0
  202. package/lib/ec-components/filters-ec/filters-ec.component.d.ts +14 -0
  203. package/lib/ec-components/filters-sort-ec/filters-sort-ec.component.d.ts +14 -0
  204. package/lib/ec-components/footer-ec/footer-ec.component.d.ts +10 -0
  205. package/lib/ec-components/header-ec/header-ec.component.d.ts +15 -0
  206. package/lib/ec-components/home-ec/home-ec.component.d.ts +8 -0
  207. package/{projects/ng-easycommerce/src/lib/ec-components/index.ts → lib/ec-components/index.d.ts} +24 -17
  208. package/lib/ec-components/product-detail-ec/product-detail-ec.component.d.ts +31 -0
  209. package/lib/ec-components/product-ec/product-ec.component.d.ts +31 -0
  210. package/lib/ec-components/variants-ec/variants-ec.component.d.ts +8 -0
  211. package/{projects/ng-easycommerce/src/lib/ec-components/widgets-ec/index.ts → lib/ec-components/widgets-ec/index.d.ts} +4 -4
  212. package/{projects/ng-easycommerce/src/lib/ec-components/widgets-ec/loading/index.ts → lib/ec-components/widgets-ec/loading/index.d.ts} +3 -3
  213. package/lib/ec-components/widgets-ec/loading/loading-full-ec/loading-full-ec.component.d.ts +5 -0
  214. package/lib/ec-components/widgets-ec/loading/loading-inline-ec/loading-inline-ec.component.d.ts +6 -0
  215. package/lib/ec-components/widgets-ec/loading/loading-section-ec/loading-section-ec.component.d.ts +5 -0
  216. package/lib/ec-components/widgets-ec/magnizoom-ec/magnizoom-ec.component.d.ts +70 -0
  217. package/lib/ec-components/widgets-ec/price-ec/price-ec.component.d.ts +16 -0
  218. package/lib/ec-components/widgets-ec/re-captcha-ec/re-captcha-ec.component.d.ts +26 -0
  219. package/lib/ec-guards/auth.guard.d.ts +8 -0
  220. package/lib/ec-guards/index.d.ts +1 -0
  221. package/lib/ec-pipe/ec-currency-symbol.pipe.d.ts +56 -0
  222. package/lib/ec-pipe/index.d.ts +1 -0
  223. package/lib/ec-services/addressing.service.d.ts +233 -0
  224. package/lib/ec-services/analytics/analytics.service.d.ts +50 -0
  225. package/lib/ec-services/analytics/doppler.service.d.ts +26 -0
  226. package/lib/ec-services/analytics/facebook-pixel.service.d.ts +102 -0
  227. package/lib/ec-services/analytics/google-analytics.service.d.ts +118 -0
  228. package/lib/ec-services/analytics/gtm.service.d.ts +153 -0
  229. package/{projects/ng-easycommerce/src/lib/ec-services/analytics/index.ts → lib/ec-services/analytics/index.d.ts} +6 -6
  230. package/lib/ec-services/analytics/metricool-pixel.service.d.ts +26 -0
  231. package/lib/ec-services/auth.service.d.ts +229 -0
  232. package/lib/ec-services/auth.storage.service.d.ts +24 -0
  233. package/lib/ec-services/blocks-repository.service.d.ts +40 -0
  234. package/lib/ec-services/blocks.service.d.ts +38 -0
  235. package/lib/ec-services/cart.service.d.ts +211 -0
  236. package/lib/ec-services/channel.service.d.ts +59 -0
  237. package/lib/ec-services/checkout.service.d.ts +49 -0
  238. package/lib/ec-services/currency.service.d.ts +108 -0
  239. package/lib/ec-services/filters.service.d.ts +56 -0
  240. package/lib/ec-services/form.service.d.ts +50 -0
  241. package/{projects/ng-easycommerce/src/lib/ec-services/index.ts → lib/ec-services/index.d.ts} +26 -24
  242. package/lib/ec-services/local-storage.service.d.ts +40 -0
  243. package/lib/ec-services/ngx-local-storage.service.d.ts +42 -0
  244. package/lib/ec-services/options.service.d.ts +121 -0
  245. package/lib/ec-services/order-utility.service.d.ts +15 -0
  246. package/lib/ec-services/orders.service.d.ts +14 -0
  247. package/lib/ec-services/pagination.service.d.ts +89 -0
  248. package/lib/ec-services/parameters.service.d.ts +41 -0
  249. package/lib/ec-services/payment.service.d.ts +22 -0
  250. package/lib/ec-services/product-detail.service.d.ts +97 -0
  251. package/lib/ec-services/products.service.d.ts +48 -0
  252. package/lib/ec-services/re-captcha.service.d.ts +65 -0
  253. package/lib/ec-services/shipment.service.d.ts +49 -0
  254. package/lib/ec-services/stores.service.d.ts +12 -0
  255. package/lib/ec-services/test.service.d.ts +6 -0
  256. package/lib/ec-services/toast.service.d.ts +59 -0
  257. package/lib/interceptors/auth.interceptor.d.ts +2 -0
  258. package/lib/interceptors/index.d.ts +1 -0
  259. package/lib/interfaces/analytics/event-key.d.ts +1 -0
  260. package/lib/interfaces/analytics/facebook-pixel-data.d.ts +5 -0
  261. package/{projects/ng-easycommerce/src/lib/interfaces/analytics/gtm-config.ts → lib/interfaces/analytics/gtm-config.d.ts} +6 -6
  262. package/{projects/ng-easycommerce/src/lib/interfaces/analytics/index.ts → lib/interfaces/analytics/index.d.ts} +3 -3
  263. package/lib/interfaces/blocks.d.ts +41 -0
  264. package/{projects/ng-easycommerce/src/lib/interfaces/checkout.ts → lib/interfaces/checkout.d.ts} +12 -14
  265. package/{projects/ng-easycommerce/src/lib/interfaces/connection.ts → lib/interfaces/connection.d.ts} +7 -8
  266. package/lib/interfaces/coupon.d.ts +5 -0
  267. package/lib/interfaces/currency.d.ts +9 -0
  268. package/{projects/ng-easycommerce/src/lib/interfaces/deserializable.ts → lib/interfaces/deserializable.d.ts} +3 -3
  269. package/{projects/ng-easycommerce/src/lib/interfaces/environment.ts → lib/interfaces/environment.d.ts} +6 -6
  270. package/{projects/ng-easycommerce/src/lib/interfaces/filter.ts → lib/interfaces/filter.d.ts} +38 -59
  271. package/{projects/ng-easycommerce/src/lib/interfaces/index.ts → lib/interfaces/index.d.ts} +16 -18
  272. package/lib/interfaces/options.d.ts +26 -0
  273. package/lib/interfaces/pagination.d.ts +24 -0
  274. package/lib/interfaces/parameter.d.ts +14 -0
  275. package/{projects/ng-easycommerce/src/lib/interfaces/product.ts → lib/interfaces/product.d.ts} +73 -81
  276. package/lib/interfaces/step.d.ts +15 -0
  277. package/lib/interfaces/storage.d.ts +7 -0
  278. package/{projects/ng-easycommerce/src/lib/interfaces/store.ts → lib/interfaces/store.d.ts} +17 -17
  279. package/lib/interfaces/types/index.d.ts +1 -0
  280. package/lib/interfaces/types/user.type.d.ts +5 -0
  281. package/lib/providers/index.d.ts +1 -0
  282. package/lib/providers/provideEnvironment.d.ts +13 -0
  283. package/lib/stores/currency.store.d.ts +7 -0
  284. package/lib/stores/index.d.ts +1 -0
  285. package/package.json +29 -58
  286. package/{projects/ng-easycommerce/src/public-api.ts → public-api.d.ts} +8 -24
  287. package/.editorconfig +0 -16
  288. package/angular.json +0 -48
  289. package/projects/ng-easycommerce/README.md +0 -24
  290. package/projects/ng-easycommerce/ng-package.json +0 -7
  291. package/projects/ng-easycommerce/package.json +0 -12
  292. package/projects/ng-easycommerce/src/lib/api/connection.service.ts +0 -79
  293. package/projects/ng-easycommerce/src/lib/api/index.ts +0 -1
  294. package/projects/ng-easycommerce/src/lib/classes/checkout/index.ts +0 -1
  295. package/projects/ng-easycommerce/src/lib/classes/checkout/steps.ts +0 -37
  296. package/projects/ng-easycommerce/src/lib/classes/filters/attributes-filter.ts +0 -74
  297. package/projects/ng-easycommerce/src/lib/classes/filters/category-filter.ts +0 -57
  298. package/projects/ng-easycommerce/src/lib/classes/filters/dynamics-filter.ts +0 -57
  299. package/projects/ng-easycommerce/src/lib/classes/filters/filter-factory.ts +0 -23
  300. package/projects/ng-easycommerce/src/lib/classes/filters/filter.ts +0 -89
  301. package/projects/ng-easycommerce/src/lib/classes/filters/index.ts +0 -6
  302. package/projects/ng-easycommerce/src/lib/classes/filters/sort-filter.ts +0 -93
  303. package/projects/ng-easycommerce/src/lib/classes/user.ts +0 -68
  304. package/projects/ng-easycommerce/src/lib/constants/api.constants.service.ts +0 -69
  305. package/projects/ng-easycommerce/src/lib/constants/core.constants.service.ts +0 -210
  306. package/projects/ng-easycommerce/src/lib/constants/index.ts +0 -2
  307. package/projects/ng-easycommerce/src/lib/ec-components/abstractions-components/block-ec.component.ts +0 -107
  308. package/projects/ng-easycommerce/src/lib/ec-components/abstractions-components/index.ts +0 -2
  309. package/projects/ng-easycommerce/src/lib/ec-components/abstractions-components/menu-ec.component.ts +0 -102
  310. package/projects/ng-easycommerce/src/lib/ec-components/auth-ec/auth-ec.component.html +0 -10
  311. package/projects/ng-easycommerce/src/lib/ec-components/auth-ec/auth-ec.component.scss +0 -0
  312. package/projects/ng-easycommerce/src/lib/ec-components/auth-ec/auth-ec.component.ts +0 -13
  313. package/projects/ng-easycommerce/src/lib/ec-components/auth-ec/confirm-account-ec/confirm-account-ec.component.html +0 -19
  314. package/projects/ng-easycommerce/src/lib/ec-components/auth-ec/confirm-account-ec/confirm-account-ec.component.scss +0 -0
  315. package/projects/ng-easycommerce/src/lib/ec-components/auth-ec/confirm-account-ec/confirm-account-ec.component.ts +0 -34
  316. package/projects/ng-easycommerce/src/lib/ec-components/auth-ec/forgot-password-ec/forgot-password-ec.component.html +0 -31
  317. package/projects/ng-easycommerce/src/lib/ec-components/auth-ec/forgot-password-ec/forgot-password-ec.component.scss +0 -0
  318. package/projects/ng-easycommerce/src/lib/ec-components/auth-ec/forgot-password-ec/forgot-password-ec.component.ts +0 -55
  319. package/projects/ng-easycommerce/src/lib/ec-components/auth-ec/login-form-ec/login-form-ec.component.html +0 -30
  320. package/projects/ng-easycommerce/src/lib/ec-components/auth-ec/login-form-ec/login-form-ec.component.scss +0 -0
  321. package/projects/ng-easycommerce/src/lib/ec-components/auth-ec/login-form-ec/login-form-ec.component.ts +0 -92
  322. package/projects/ng-easycommerce/src/lib/ec-components/auth-ec/register-form-ec/register-form-ec.component.html +0 -55
  323. package/projects/ng-easycommerce/src/lib/ec-components/auth-ec/register-form-ec/register-form-ec.component.scss +0 -0
  324. package/projects/ng-easycommerce/src/lib/ec-components/auth-ec/register-form-ec/register-form-ec.component.ts +0 -102
  325. package/projects/ng-easycommerce/src/lib/ec-components/auth-ec/register-wholesaler-form-ec/register-wholesaler-form-ec.component.html +0 -233
  326. package/projects/ng-easycommerce/src/lib/ec-components/auth-ec/register-wholesaler-form-ec/register-wholesaler-form-ec.component.scss +0 -0
  327. package/projects/ng-easycommerce/src/lib/ec-components/auth-ec/register-wholesaler-form-ec/register-wholesaler-form-ec.component.ts +0 -149
  328. package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/block-banner-box-ec/block-banner-box-ec.component.html +0 -113
  329. package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/block-banner-box-ec/block-banner-box-ec.component.scss +0 -12
  330. package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/block-banner-box-ec/block-banner-box-ec.component.ts +0 -100
  331. package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/block-banner-full-ec/block-banner-full-ec.component.html +0 -111
  332. package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/block-banner-full-ec/block-banner-full-ec.component.scss +0 -0
  333. package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/block-banner-full-ec/block-banner-full-ec.component.ts +0 -77
  334. package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/block-form-contact-ec/block-form-contact-ec.component.html +0 -62
  335. package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/block-form-contact-ec/block-form-contact-ec.component.scss +0 -0
  336. package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/block-form-contact-ec/block-form-contact-ec.component.ts +0 -89
  337. package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/block-html-ec/block-html-ec.component.html +0 -1
  338. package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/block-html-ec/block-html-ec.component.scss +0 -0
  339. package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/block-html-ec/block-html-ec.component.ts +0 -33
  340. package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/block-newsletter-ec/block-newsletter-ec.component.html +0 -1
  341. package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/block-newsletter-ec/block-newsletter-ec.component.scss +0 -0
  342. package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/block-newsletter-ec/block-newsletter-ec.component.ts +0 -81
  343. package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/block-products-ec/block-products-ec.component.html +0 -40
  344. package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/block-products-ec/block-products-ec.component.scss +0 -0
  345. package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/block-products-ec/block-products-ec.component.ts +0 -97
  346. package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/blocks-ec.component.html +0 -41
  347. package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/blocks-ec.component.scss +0 -0
  348. package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/blocks-ec.component.ts +0 -86
  349. package/projects/ng-easycommerce/src/lib/ec-components/breadcrumb-ec/breadcrumb-ec.component.html +0 -20
  350. package/projects/ng-easycommerce/src/lib/ec-components/breadcrumb-ec/breadcrumb-ec.component.scss +0 -0
  351. package/projects/ng-easycommerce/src/lib/ec-components/breadcrumb-ec/breadcrumb-ec.component.ts +0 -30
  352. package/projects/ng-easycommerce/src/lib/ec-components/cart-ec/cart-ec.component.html +0 -1
  353. package/projects/ng-easycommerce/src/lib/ec-components/cart-ec/cart-ec.component.scss +0 -0
  354. package/projects/ng-easycommerce/src/lib/ec-components/cart-ec/cart-ec.component.ts +0 -24
  355. package/projects/ng-easycommerce/src/lib/ec-components/cart-ec/cart-item-ec/cart-item-ec.component.html +0 -1
  356. package/projects/ng-easycommerce/src/lib/ec-components/cart-ec/cart-item-ec/cart-item-ec.component.scss +0 -0
  357. package/projects/ng-easycommerce/src/lib/ec-components/cart-ec/cart-item-ec/cart-item-ec.component.ts +0 -51
  358. package/projects/ng-easycommerce/src/lib/ec-components/cart-ec/index.ts +0 -2
  359. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/checkout-ec.component.html +0 -56
  360. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/checkout-ec.component.scss +0 -38
  361. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/checkout-ec.component.ts +0 -67
  362. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/dataform-ec/dataform-ec.component.html +0 -836
  363. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/dataform-ec/dataform-ec.component.scss +0 -0
  364. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/dataform-ec/dataform-ec.component.ts +0 -302
  365. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/dataform-ec/input-ec/input-ec.component.html +0 -32
  366. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/dataform-ec/input-ec/input-ec.component.scss +0 -0
  367. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/dataform-ec/input-ec/input-ec.component.ts +0 -52
  368. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/detail-checkout-block-ec/detail-checkout-block-ec.component.html +0 -12
  369. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/detail-checkout-block-ec/detail-checkout-block-ec.component.scss +0 -0
  370. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/detail-checkout-block-ec/detail-checkout-block-ec.component.ts +0 -48
  371. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/payment-ec/payment-ec.component.html +0 -195
  372. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/payment-ec/payment-ec.component.scss +0 -0
  373. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/payment-ec/payment-ec.component.ts +0 -103
  374. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/payment-ec/payment-methods/bank-transfer-ec/bank-transfer-ec.component.html +0 -28
  375. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/payment-ec/payment-methods/bank-transfer-ec/bank-transfer-ec.component.scss +0 -0
  376. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/payment-ec/payment-methods/bank-transfer-ec/bank-transfer-ec.component.ts +0 -26
  377. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/payment-ec/payment-methods/mp-redirect-ec/mp-redirect-ec.component.html +0 -33
  378. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/payment-ec/payment-methods/mp-redirect-ec/mp-redirect-ec.component.scss +0 -0
  379. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/payment-ec/payment-methods/mp-redirect-ec/mp-redirect-ec.component.ts +0 -116
  380. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/payment-ec/payment-methods/offline-ec/offline-ec.component.html +0 -13
  381. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/payment-ec/payment-methods/offline-ec/offline-ec.component.scss +0 -0
  382. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/payment-ec/payment-methods/offline-ec/offline-ec.component.ts +0 -26
  383. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/shipment-ec/shipment-ec.component.html +0 -111
  384. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/shipment-ec/shipment-ec.component.scss +0 -0
  385. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/shipment-ec/shipment-ec.component.ts +0 -111
  386. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/step-container-ec/step-container-ec.component.html +0 -33
  387. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/step-container-ec/step-container-ec.component.scss +0 -0
  388. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/step-container-ec/step-container-ec.component.ts +0 -39
  389. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/success-ec/success-ec.component.html +0 -59
  390. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/success-ec/success-ec.component.scss +0 -0
  391. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/success-ec/success-ec.component.ts +0 -65
  392. package/projects/ng-easycommerce/src/lib/ec-components/collection-ec/collection-ec.component.html +0 -16
  393. package/projects/ng-easycommerce/src/lib/ec-components/collection-ec/collection-ec.component.scss +0 -0
  394. package/projects/ng-easycommerce/src/lib/ec-components/collection-ec/collection-ec.component.ts +0 -83
  395. package/projects/ng-easycommerce/src/lib/ec-components/coupon-ec/coupon-ec.component.html +0 -1
  396. package/projects/ng-easycommerce/src/lib/ec-components/coupon-ec/coupon-ec.component.scss +0 -0
  397. package/projects/ng-easycommerce/src/lib/ec-components/coupon-ec/coupon-ec.component.ts +0 -32
  398. package/projects/ng-easycommerce/src/lib/ec-components/filters-ec/filters-ec.component.html +0 -1
  399. package/projects/ng-easycommerce/src/lib/ec-components/filters-ec/filters-ec.component.scss +0 -0
  400. package/projects/ng-easycommerce/src/lib/ec-components/filters-ec/filters-ec.component.ts +0 -45
  401. package/projects/ng-easycommerce/src/lib/ec-components/filters-sort-ec/filters-sort-ec.component.html +0 -1
  402. package/projects/ng-easycommerce/src/lib/ec-components/filters-sort-ec/filters-sort-ec.component.scss +0 -0
  403. package/projects/ng-easycommerce/src/lib/ec-components/filters-sort-ec/filters-sort-ec.component.ts +0 -49
  404. package/projects/ng-easycommerce/src/lib/ec-components/footer-ec/footer-ec.component.html +0 -1
  405. package/projects/ng-easycommerce/src/lib/ec-components/footer-ec/footer-ec.component.scss +0 -0
  406. package/projects/ng-easycommerce/src/lib/ec-components/footer-ec/footer-ec.component.spec.ts +0 -23
  407. package/projects/ng-easycommerce/src/lib/ec-components/footer-ec/footer-ec.component.ts +0 -18
  408. package/projects/ng-easycommerce/src/lib/ec-components/header-ec/header-ec.component.html +0 -1
  409. package/projects/ng-easycommerce/src/lib/ec-components/header-ec/header-ec.component.scss +0 -0
  410. package/projects/ng-easycommerce/src/lib/ec-components/header-ec/header-ec.component.spec.ts +0 -23
  411. package/projects/ng-easycommerce/src/lib/ec-components/header-ec/header-ec.component.ts +0 -22
  412. package/projects/ng-easycommerce/src/lib/ec-components/home-ec/home-ec.component.html +0 -1
  413. package/projects/ng-easycommerce/src/lib/ec-components/home-ec/home-ec.component.scss +0 -0
  414. package/projects/ng-easycommerce/src/lib/ec-components/home-ec/home-ec.component.spec.ts +0 -23
  415. package/projects/ng-easycommerce/src/lib/ec-components/home-ec/home-ec.component.ts +0 -16
  416. package/projects/ng-easycommerce/src/lib/ec-components/product-detail-ec/product-detail-ec.component.html +0 -0
  417. package/projects/ng-easycommerce/src/lib/ec-components/product-detail-ec/product-detail-ec.component.scss +0 -0
  418. package/projects/ng-easycommerce/src/lib/ec-components/product-detail-ec/product-detail-ec.component.ts +0 -82
  419. package/projects/ng-easycommerce/src/lib/ec-components/product-ec/product-ec.component.html +0 -31
  420. package/projects/ng-easycommerce/src/lib/ec-components/product-ec/product-ec.component.scss +0 -0
  421. package/projects/ng-easycommerce/src/lib/ec-components/product-ec/product-ec.component.ts +0 -46
  422. package/projects/ng-easycommerce/src/lib/ec-components/variants-ec/variants-ec.component.html +0 -65
  423. package/projects/ng-easycommerce/src/lib/ec-components/variants-ec/variants-ec.component.scss +0 -8
  424. package/projects/ng-easycommerce/src/lib/ec-components/variants-ec/variants-ec.component.ts +0 -20
  425. package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/loading/loading-full-ec/loading-full-ec.component.html +0 -7
  426. package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/loading/loading-full-ec/loading-full-ec.component.scss +0 -0
  427. package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/loading/loading-full-ec/loading-full-ec.component.ts +0 -13
  428. package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/loading/loading-inline-ec/loading-inline-ec.component.html +0 -5
  429. package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/loading/loading-inline-ec/loading-inline-ec.component.scss +0 -0
  430. package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/loading/loading-inline-ec/loading-inline-ec.component.ts +0 -13
  431. package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/loading/loading-section-ec/loading-section-ec.component.html +0 -3
  432. package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/loading/loading-section-ec/loading-section-ec.component.scss +0 -0
  433. package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/loading/loading-section-ec/loading-section-ec.component.ts +0 -13
  434. package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/magnizoom-ec/magnizoom-ec.component.html +0 -11
  435. package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/magnizoom-ec/magnizoom-ec.component.scss +0 -0
  436. package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/magnizoom-ec/magnizoom-ec.component.ts +0 -177
  437. package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/price-ec/price-ec.component.html +0 -47
  438. package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/price-ec/price-ec.component.scss +0 -0
  439. package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/price-ec/price-ec.component.ts +0 -22
  440. package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/re-captcha-ec/re-captcha-ec.component.html +0 -6
  441. package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/re-captcha-ec/re-captcha-ec.component.scss +0 -0
  442. package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/re-captcha-ec/re-captcha-ec.component.ts +0 -70
  443. package/projects/ng-easycommerce/src/lib/ec-guards/auth.guard.ts +0 -19
  444. package/projects/ng-easycommerce/src/lib/ec-guards/index.ts +0 -1
  445. package/projects/ng-easycommerce/src/lib/ec-pipe/ec-currency-symbol.pipe.ts +0 -99
  446. package/projects/ng-easycommerce/src/lib/ec-pipe/index.ts +0 -1
  447. package/projects/ng-easycommerce/src/lib/ec-services/addressing.service.ts +0 -199
  448. package/projects/ng-easycommerce/src/lib/ec-services/analytics/analytics.service.ts +0 -76
  449. package/projects/ng-easycommerce/src/lib/ec-services/analytics/doppler.service.ts +0 -38
  450. package/projects/ng-easycommerce/src/lib/ec-services/analytics/facebook-pixel.service.ts +0 -214
  451. package/projects/ng-easycommerce/src/lib/ec-services/analytics/google-analytics.service.ts +0 -284
  452. package/projects/ng-easycommerce/src/lib/ec-services/analytics/gtm.service.ts +0 -413
  453. package/projects/ng-easycommerce/src/lib/ec-services/analytics/metricool-pixel.service.ts +0 -46
  454. package/projects/ng-easycommerce/src/lib/ec-services/auth.service.ts +0 -438
  455. package/projects/ng-easycommerce/src/lib/ec-services/auth.storage.service.ts +0 -54
  456. package/projects/ng-easycommerce/src/lib/ec-services/blocks-repository.service.ts +0 -67
  457. package/projects/ng-easycommerce/src/lib/ec-services/blocks.service.ts +0 -48
  458. package/projects/ng-easycommerce/src/lib/ec-services/cart.service.ts +0 -492
  459. package/projects/ng-easycommerce/src/lib/ec-services/channel.service.ts +0 -81
  460. package/projects/ng-easycommerce/src/lib/ec-services/checkout.service.ts +0 -196
  461. package/projects/ng-easycommerce/src/lib/ec-services/currency.service.ts +0 -179
  462. package/projects/ng-easycommerce/src/lib/ec-services/filters.service.ts +0 -133
  463. package/projects/ng-easycommerce/src/lib/ec-services/form.service.ts +0 -82
  464. package/projects/ng-easycommerce/src/lib/ec-services/local-storage.service.ts +0 -54
  465. package/projects/ng-easycommerce/src/lib/ec-services/ngx-local-storage.service.ts +0 -66
  466. package/projects/ng-easycommerce/src/lib/ec-services/options.service.ts +0 -274
  467. package/projects/ng-easycommerce/src/lib/ec-services/order-utility.service.ts +0 -52
  468. package/projects/ng-easycommerce/src/lib/ec-services/pagination.service.ts +0 -172
  469. package/projects/ng-easycommerce/src/lib/ec-services/parameters.service.ts +0 -67
  470. package/projects/ng-easycommerce/src/lib/ec-services/payment.service.ts +0 -63
  471. package/projects/ng-easycommerce/src/lib/ec-services/product-detail.service.ts +0 -288
  472. package/projects/ng-easycommerce/src/lib/ec-services/products.service.ts +0 -162
  473. package/projects/ng-easycommerce/src/lib/ec-services/re-captcha.service.ts +0 -126
  474. package/projects/ng-easycommerce/src/lib/ec-services/shipment.service.ts +0 -174
  475. package/projects/ng-easycommerce/src/lib/ec-services/stores.service.ts +0 -27
  476. package/projects/ng-easycommerce/src/lib/ec-services/toast.service.ts +0 -84
  477. package/projects/ng-easycommerce/src/lib/interceptors/auth.interceptor.ts +0 -43
  478. package/projects/ng-easycommerce/src/lib/interceptors/index.ts +0 -1
  479. package/projects/ng-easycommerce/src/lib/interfaces/analytics/event-key.ts +0 -14
  480. package/projects/ng-easycommerce/src/lib/interfaces/analytics/facebook-pixel-data.ts +0 -5
  481. package/projects/ng-easycommerce/src/lib/interfaces/blocks.ts +0 -56
  482. package/projects/ng-easycommerce/src/lib/interfaces/coupon.ts +0 -5
  483. package/projects/ng-easycommerce/src/lib/interfaces/currency.ts +0 -10
  484. package/projects/ng-easycommerce/src/lib/interfaces/options.ts +0 -28
  485. package/projects/ng-easycommerce/src/lib/interfaces/pagination.ts +0 -27
  486. package/projects/ng-easycommerce/src/lib/interfaces/parameter.ts +0 -15
  487. package/projects/ng-easycommerce/src/lib/interfaces/step.ts +0 -19
  488. package/projects/ng-easycommerce/src/lib/interfaces/storage.ts +0 -7
  489. package/projects/ng-easycommerce/src/lib/interfaces/types/index.ts +0 -1
  490. package/projects/ng-easycommerce/src/lib/interfaces/types/user.type.ts +0 -5
  491. package/projects/ng-easycommerce/src/lib/providers/index.ts +0 -1
  492. package/projects/ng-easycommerce/src/lib/providers/provideEnvironment.ts +0 -24
  493. package/projects/ng-easycommerce/src/lib/stores/currency.store.ts +0 -20
  494. package/projects/ng-easycommerce/src/lib/stores/index.ts +0 -1
  495. package/projects/ng-easycommerce/tsconfig.lib.json +0 -15
  496. package/projects/ng-easycommerce/tsconfig.lib.prod.json +0 -11
  497. package/projects/ng-easycommerce/tsconfig.spec.json +0 -15
  498. package/tsconfig.doc.json +0 -4
  499. package/tsconfig.json +0 -37
  500. /package/{projects/ng-easycommerce/src/lib/assets → assets}/ec-i18n/ct.json +0 -0
  501. /package/{projects/ng-easycommerce/src/lib/assets → assets}/ec-i18n/en.json +0 -0
  502. /package/{projects/ng-easycommerce/src/lib/assets → assets}/ec-i18n/es.json +0 -0
  503. /package/{projects/ng-easycommerce/src/lib/assets → assets}/ec-i18n/fr.json +0 -0
  504. /package/{projects/ng-easycommerce/src/lib/assets → assets}/ec-i18n/gl.json +0 -0
  505. /package/{projects/ng-easycommerce/src/lib/assets → assets}/ec-i18n/pr.json +0 -0
  506. /package/{projects/ng-easycommerce/src/lib/assets → assets}/recaptcha/recaptcha-site-keys.json +0 -0
  507. /package/{projects/ng-easycommerce/src/lib/assets → assets}/recaptcha/recaptcha-sites-prod.json +0 -0
  508. /package/{projects/ng-easycommerce/src/lib/assets → assets}/recaptcha/recaptcha-sites.json +0 -0
@@ -0,0 +1,83 @@
1
+ import { inject, Injectable } from '@angular/core';
2
+ import { ApiConstantsService, CoreConstantsService } from '../constants';
3
+ import { ConnectionService } from '../api';
4
+ import { map, ReplaySubject, shareReplay } from 'rxjs';
5
+ import * as i0 from "@angular/core";
6
+ /**
7
+ * Servicio para manejar los canales de la aplicación
8
+ * @class ChannelService
9
+ */
10
+ export class ChannelService {
11
+ /**
12
+ * Constantes de la API
13
+ */
14
+ apiConsts = inject(ApiConstantsService);
15
+ /**
16
+ * Constantes del core
17
+ */
18
+ consts = inject(CoreConstantsService);
19
+ /**
20
+ * Maneja las peticiones a la API
21
+ */
22
+ connection = inject(ConnectionService);
23
+ /**
24
+ * Subject para manejar los cambios en los canales.
25
+ */
26
+ channelSubject = new ReplaySubject();
27
+ /**
28
+ * Observable de canales.
29
+ */
30
+ channel$ = this.channelSubject.asObservable();
31
+ /**
32
+ * Almacena el canal activo en la aplicación.
33
+ */
34
+ activeChannel;
35
+ /**
36
+ * Almacena el tipo de canal.
37
+ */
38
+ channelType;
39
+ //API URL
40
+ /**
41
+ * Devuelve la url para obtener los datos de un canal.
42
+ * @returns
43
+ */
44
+ channelApi() { return `${this.apiConsts.SHOP_API_URL}${this.apiConsts.CHANNEL}/channel`; }
45
+ constructor() { }
46
+ /**
47
+ * Obtiene el canal de la API
48
+ * @returns Observable con el canal.
49
+ */
50
+ getChannel = () => {
51
+ this.connection.get(this.channelApi()).pipe(shareReplay(1), map((response) => {
52
+ this.setChannelInfo(response);
53
+ this.channelSubject.next(response);
54
+ this.channelType = response.type;
55
+ return response;
56
+ })).subscribe();
57
+ return this.channel$;
58
+ };
59
+ /**
60
+ * Cambia la configuración del canal con un canal nuevo.
61
+ * @param channelObj
62
+ */
63
+ setChannelInfo(channelObj) {
64
+ this.apiConsts.setChannel(channelObj.code);
65
+ this.consts.setCurrency(channelObj.baseCurrency);
66
+ this.activeChannel = channelObj;
67
+ //this.injector.get(AddressingService).setTypeSelectAddress(channelObj.headquarterSelectionOnly || 'LOAD_ADDRESS_AND_SELECTION')
68
+ }
69
+ /**
70
+ * Devuelve el canal activo en la aplicación.
71
+ * @returns
72
+ */
73
+ getActiveChannel() { return this.activeChannel; }
74
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ChannelService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
75
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ChannelService, providedIn: 'root' });
76
+ }
77
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ChannelService, decorators: [{
78
+ type: Injectable,
79
+ args: [{
80
+ providedIn: 'root'
81
+ }]
82
+ }], ctorParameters: () => [] });
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbm5lbC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLXNlcnZpY2VzL2NoYW5uZWwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDekUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxHQUFHLEVBQWMsYUFBYSxFQUFFLFdBQVcsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFDbkU7OztHQUdHO0FBSUgsTUFBTSxPQUFPLGNBQWM7SUFDMUI7O09BRUc7SUFDSyxTQUFTLEdBQXdCLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ3JFOztPQUVHO0lBQ0ssTUFBTSxHQUF5QixNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQTtJQUNuRTs7T0FFRztJQUNLLFVBQVUsR0FBc0IsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUE7SUFDakU7O09BRUc7SUFDSyxjQUFjLEdBQUcsSUFBSSxhQUFhLEVBQU8sQ0FBQTtJQUNqRDs7T0FFRztJQUNJLFFBQVEsR0FBb0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQTtJQUNyRTs7T0FFRztJQUNJLGFBQWEsQ0FBTTtJQUMxQjs7T0FFRztJQUNJLFdBQVcsQ0FBTTtJQUV4QixTQUFTO0lBQ1Q7OztPQUdHO0lBQ0ssVUFBVSxLQUFLLE9BQU8sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sVUFBVSxDQUFDLENBQUMsQ0FBQztJQUVsRyxnQkFBZ0IsQ0FBQztJQUNqQjs7O09BR0c7SUFDSSxVQUFVLEdBQUcsR0FBb0IsRUFBRTtRQUN6QyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQzFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFDZCxHQUFHLENBQUMsQ0FBQyxRQUFhLEVBQUUsRUFBRTtZQUNyQixJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzlCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ25DLElBQUksQ0FBQyxXQUFXLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQztZQUNqQyxPQUFPLFFBQVEsQ0FBQTtRQUNoQixDQUFDLENBQUMsQ0FDRixDQUFDLFNBQVMsRUFBRSxDQUFBO1FBQ2IsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3RCLENBQUMsQ0FBQTtJQUNEOzs7T0FHRztJQUNJLGNBQWMsQ0FBQyxVQUFlO1FBQ3BDLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUMxQyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUE7UUFDaEQsSUFBSSxDQUFDLGFBQWEsR0FBRyxVQUFVLENBQUE7UUFDL0IsZ0lBQWdJO0lBQ2pJLENBQUM7SUFDRDs7O09BR0c7SUFDSSxnQkFBZ0IsS0FBSyxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO3VHQXBFNUMsY0FBYzsyR0FBZCxjQUFjLGNBRmQsTUFBTTs7MkZBRU4sY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDWCxVQUFVLEVBQUUsTUFBTTtpQkFDbEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQXBpQ29uc3RhbnRzU2VydmljZSwgQ29yZUNvbnN0YW50c1NlcnZpY2UgfSBmcm9tICcuLi9jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBDb25uZWN0aW9uU2VydmljZSB9IGZyb20gJy4uL2FwaSc7XHJcbmltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCwgc2hhcmVSZXBsYXkgfSBmcm9tICdyeGpzJztcclxuLyoqXHJcbiAqIFNlcnZpY2lvIHBhcmEgbWFuZWphciBsb3MgY2FuYWxlcyBkZSBsYSBhcGxpY2FjacOzblxyXG4gKiBAY2xhc3MgQ2hhbm5lbFNlcnZpY2VcclxuICovXHJcbkBJbmplY3RhYmxlKHtcclxuXHRwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIENoYW5uZWxTZXJ2aWNlIHtcclxuXHQvKipcclxuXHQgKiBDb25zdGFudGVzIGRlIGxhIEFQSVxyXG5cdCAqL1xyXG5cdHByaXZhdGUgYXBpQ29uc3RzOiBBcGlDb25zdGFudHNTZXJ2aWNlID0gaW5qZWN0KEFwaUNvbnN0YW50c1NlcnZpY2UpO1xyXG5cdC8qKlxyXG5cdCAqIENvbnN0YW50ZXMgZGVsIGNvcmVcclxuXHQgKi9cclxuXHRwcml2YXRlIGNvbnN0czogQ29yZUNvbnN0YW50c1NlcnZpY2UgPSBpbmplY3QoQ29yZUNvbnN0YW50c1NlcnZpY2UpXHJcblx0LyoqXHJcblx0ICogTWFuZWphIGxhcyBwZXRpY2lvbmVzIGEgbGEgQVBJXHJcblx0ICovXHJcblx0cHJpdmF0ZSBjb25uZWN0aW9uOiBDb25uZWN0aW9uU2VydmljZSA9IGluamVjdChDb25uZWN0aW9uU2VydmljZSlcclxuXHQvKipcclxuXHQgKiBTdWJqZWN0IHBhcmEgbWFuZWphciBsb3MgY2FtYmlvcyBlbiBsb3MgY2FuYWxlcy5cclxuXHQgKi9cclxuXHRwcml2YXRlIGNoYW5uZWxTdWJqZWN0ID0gbmV3IFJlcGxheVN1YmplY3Q8YW55PigpXHJcblx0LyoqXHJcblx0ICogT2JzZXJ2YWJsZSBkZSBjYW5hbGVzLlxyXG5cdCAqL1xyXG5cdHB1YmxpYyBjaGFubmVsJDogT2JzZXJ2YWJsZTxhbnk+ID0gdGhpcy5jaGFubmVsU3ViamVjdC5hc09ic2VydmFibGUoKVxyXG5cdC8qKlxyXG5cdCAqIEFsbWFjZW5hIGVsIGNhbmFsIGFjdGl2byBlbiBsYSBhcGxpY2FjacOzbi5cclxuXHQgKi9cclxuXHRwdWJsaWMgYWN0aXZlQ2hhbm5lbDogYW55O1xyXG5cdC8qKlxyXG5cdCAqIEFsbWFjZW5hIGVsIHRpcG8gZGUgY2FuYWwuXHJcblx0ICovXHJcblx0cHVibGljIGNoYW5uZWxUeXBlOiBhbnk7XHJcblxyXG5cdC8vQVBJIFVSTFxyXG5cdC8qKlxyXG5cdCAqIERldnVlbHZlIGxhIHVybCBwYXJhIG9idGVuZXIgbG9zIGRhdG9zIGRlIHVuIGNhbmFsLlxyXG5cdCAqIEByZXR1cm5zIFxyXG5cdCAqL1xyXG5cdHByaXZhdGUgY2hhbm5lbEFwaSgpIHsgcmV0dXJuIGAke3RoaXMuYXBpQ29uc3RzLlNIT1BfQVBJX1VSTH0ke3RoaXMuYXBpQ29uc3RzLkNIQU5ORUx9L2NoYW5uZWxgOyB9XHJcblxyXG5cdGNvbnN0cnVjdG9yKCkgeyB9XHJcblx0LyoqXHJcblx0ICogT2J0aWVuZSBlbCBjYW5hbCBkZSBsYSBBUElcclxuXHQgKiBAcmV0dXJucyBPYnNlcnZhYmxlIGNvbiBlbCBjYW5hbC5cclxuXHQgKi9cclxuXHRwdWJsaWMgZ2V0Q2hhbm5lbCA9ICgpOiBPYnNlcnZhYmxlPGFueT4gPT4ge1xyXG5cdFx0dGhpcy5jb25uZWN0aW9uLmdldCh0aGlzLmNoYW5uZWxBcGkoKSkucGlwZShcclxuXHRcdFx0c2hhcmVSZXBsYXkoMSksXHJcblx0XHRcdG1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG5cdFx0XHRcdHRoaXMuc2V0Q2hhbm5lbEluZm8ocmVzcG9uc2UpO1xyXG5cdFx0XHRcdHRoaXMuY2hhbm5lbFN1YmplY3QubmV4dChyZXNwb25zZSk7XHJcblx0XHRcdFx0dGhpcy5jaGFubmVsVHlwZSA9IHJlc3BvbnNlLnR5cGU7XHJcblx0XHRcdFx0cmV0dXJuIHJlc3BvbnNlXHJcblx0XHRcdH0pLFxyXG5cdFx0KS5zdWJzY3JpYmUoKVxyXG5cdFx0cmV0dXJuIHRoaXMuY2hhbm5lbCQ7XHJcblx0fVxyXG5cdC8qKlxyXG5cdCAqIENhbWJpYSBsYSBjb25maWd1cmFjacOzbiBkZWwgY2FuYWwgY29uIHVuIGNhbmFsIG51ZXZvLlxyXG5cdCAqIEBwYXJhbSBjaGFubmVsT2JqIFxyXG5cdCAqL1xyXG5cdHB1YmxpYyBzZXRDaGFubmVsSW5mbyhjaGFubmVsT2JqOiBhbnkpIHtcclxuXHRcdHRoaXMuYXBpQ29uc3RzLnNldENoYW5uZWwoY2hhbm5lbE9iai5jb2RlKVxyXG5cdFx0dGhpcy5jb25zdHMuc2V0Q3VycmVuY3koY2hhbm5lbE9iai5iYXNlQ3VycmVuY3kpXHJcblx0XHR0aGlzLmFjdGl2ZUNoYW5uZWwgPSBjaGFubmVsT2JqXHJcblx0XHQvL3RoaXMuaW5qZWN0b3IuZ2V0KEFkZHJlc3NpbmdTZXJ2aWNlKS5zZXRUeXBlU2VsZWN0QWRkcmVzcyhjaGFubmVsT2JqLmhlYWRxdWFydGVyU2VsZWN0aW9uT25seSB8fCAnTE9BRF9BRERSRVNTX0FORF9TRUxFQ1RJT04nKVxyXG5cdH1cclxuXHQvKipcclxuXHQgKiBEZXZ1ZWx2ZSBlbCBjYW5hbCBhY3Rpdm8gZW4gbGEgYXBsaWNhY2nDs24uXHJcblx0ICogQHJldHVybnMgXHJcblx0ICovXHJcblx0cHVibGljIGdldEFjdGl2ZUNoYW5uZWwoKSB7IHJldHVybiB0aGlzLmFjdGl2ZUNoYW5uZWw7IH1cclxufVxyXG4iXX0=
@@ -0,0 +1,180 @@
1
+ import { inject, Injectable } from '@angular/core';
2
+ import { BehaviorSubject, combineLatest, firstValueFrom, ReplaySubject } from 'rxjs';
3
+ import { CartService } from './cart.service';
4
+ import { ConnectionService } from '../api';
5
+ import { AnalyticsService } from './analytics';
6
+ import { ApiConstantsService } from '../constants';
7
+ import { Step, User } from '../classes';
8
+ import { AuthService } from './auth.service';
9
+ import { OrderUtilityService } from './order-utility.service';
10
+ import { Router } from '@angular/router';
11
+ import { ToastService } from './toast.service';
12
+ import * as i0 from "@angular/core";
13
+ export class CheckoutService {
14
+ _cartService = inject(CartService);
15
+ _connection = inject(ConnectionService);
16
+ _analyticsService = inject(AnalyticsService);
17
+ _consts = inject(ApiConstantsService);
18
+ _authService = inject(AuthService);
19
+ _orderUtilityService = inject(OrderUtilityService);
20
+ _router = inject(Router);
21
+ _toastService = inject(ToastService);
22
+ _canCheckoutSubject = new ReplaySubject();
23
+ _stateSubject = new BehaviorSubject([]);
24
+ _lastStepSubject = new BehaviorSubject(false);
25
+ _loadingSubject = new BehaviorSubject(false);
26
+ _orderSubject = new BehaviorSubject(null);
27
+ _associatedDataSubject = new BehaviorSubject(null);
28
+ _loadingStepSubject = new BehaviorSubject(false);
29
+ canCheckout$ = this._canCheckoutSubject.asObservable();
30
+ state$ = this._stateSubject.asObservable();
31
+ isLastStep$ = this._lastStepSubject.asObservable();
32
+ associatedData$ = this._associatedDataSubject.asObservable();
33
+ order$ = this._orderSubject.asObservable();
34
+ loadingStep$ = this._loadingStepSubject.asObservable();
35
+ total;
36
+ cartLocal;
37
+ checkoutData = {};
38
+ order;
39
+ //API Methods
40
+ baseApi = () => 'shop-api/' + this._consts.CHANNEL + '/checkout/' + this._cartService.getCartToken();
41
+ getHasPurchaseConditions() { return 'shop-api/' + this._consts.CHANNEL + '/carts/' + this._cartService.getCartToken() + '/has_purchase_conditions'; }
42
+ ;
43
+ completeApi() { return this.baseApi() + '/complete'; }
44
+ ;
45
+ constructor() {
46
+ combineLatest([this._cartService.cartItems$, this._cartService.loading$]).subscribe(([items, loading]) => {
47
+ if (!loading && items.length > 0) {
48
+ this._canCheckoutSubject.next(true);
49
+ this._cartService.getTotalAmount().subscribe((res) => {
50
+ this.total = res;
51
+ });
52
+ }
53
+ });
54
+ this._cartService.cart$.subscribe(cart => cart && (this.cartLocal = cart) && this.updateAsociatedData(cart));
55
+ this.order$.subscribe(order => order && this.updateAsociatedData(order));
56
+ }
57
+ setSteps(steps) {
58
+ let final_steps = [];
59
+ steps.forEach((step, i) => final_steps.push(new Step(step.name, step.priority || (i + 1), step.label, step.state)));
60
+ this._stateSubject.next(final_steps);
61
+ if (final_steps.length == 1) {
62
+ this._lastStepSubject.next(true);
63
+ }
64
+ console.log(final_steps);
65
+ firstValueFrom(this._connection.get(this.getHasPurchaseConditions())).then(res => {
66
+ this._analyticsService.callEvent('checkout_init', { ...this.cartLocal, currency: this.cartLocal?.currency, value: this.cartLocal?.total });
67
+ });
68
+ }
69
+ next() {
70
+ this._loadingStepSubject.next(true);
71
+ const steps = this._stateSubject.getValue();
72
+ const readyStep = steps.findIndex(step => step.state === 'ready');
73
+ if (steps[readyStep + 1]) {
74
+ steps[readyStep].state = 'doing';
75
+ steps[readyStep + 1].state = 'ready';
76
+ if (!steps[readyStep + 2])
77
+ this._lastStepSubject.next(true);
78
+ this._loadingStepSubject.next(false);
79
+ }
80
+ else {
81
+ this.complete().then(res => {
82
+ if (res.ok) {
83
+ this._router.navigate(['checkout/order_success']);
84
+ }
85
+ else {
86
+ this._toastService.show('operation-error');
87
+ }
88
+ this._loadingStepSubject.next(false);
89
+ }, err => {
90
+ console.log(err);
91
+ this._loadingStepSubject.next(false);
92
+ this._toastService.show('operation-error');
93
+ });
94
+ }
95
+ }
96
+ back() {
97
+ const steps = this._stateSubject.getValue();
98
+ const readyStep = steps.findIndex(step => step.state === 'ready');
99
+ this._lastStepSubject.next(false);
100
+ if (steps[readyStep - 1]) {
101
+ steps[readyStep].state = 'pending';
102
+ steps[readyStep - 1].state = 'ready';
103
+ }
104
+ }
105
+ setOrder = (order) => { this.order = order, this._orderSubject.next(order); };
106
+ //getOrder = () => this.order || this.orderSubject.value;
107
+ completeOrder = () => firstValueFrom(this._connection.put(this.completeApi(), { email: this.checkoutData.email, notes: this.checkoutData.notes || '' }));
108
+ complete = async () => {
109
+ try {
110
+ this._loadingSubject.next(true);
111
+ let result = await this.completeOrder();
112
+ if (result && result.error) {
113
+ this._cartService.changeHaveToUpdate(false);
114
+ this._loadingSubject.next(false);
115
+ return ({ ok: false, require_login: true, message: 'not-completed' });
116
+ }
117
+ this.setOrder(result);
118
+ this._analyticsService.callEvent('purchase', { ...result, currency: result.currency, value: result.total });
119
+ this._cartService.clearAndResetCart();
120
+ this._canCheckoutSubject.next(false);
121
+ //this._onReadySubject.next(false);
122
+ this._loadingSubject.next(false);
123
+ return ({ ok: true, require_login: false, message: '' });
124
+ }
125
+ catch (error) {
126
+ this._loadingSubject.next(false);
127
+ console.error('Error in complete:', error);
128
+ return { ok: false, require_login: false, message: 'An error occurred' };
129
+ }
130
+ };
131
+ updateAsociatedData = (cart) => {
132
+ let result = this._orderUtilityService.getPromotions(cart);
133
+ const userProfile = User.fromJson(this._authService.getUserProfileAsUser());
134
+ if (result) {
135
+ if (userProfile.isWholesaler() && cart.totals.taxes != 0) {
136
+ let total = { ...result[result.length - 1] };
137
+ result[result.length - 1] = {
138
+ type: 'taxes',
139
+ name: 'taxes',
140
+ amount: cart.totals.taxes
141
+ };
142
+ result.push(total);
143
+ }
144
+ let shipment = result?.find((promotion) => promotion.type == "shipment");
145
+ if (!shipment && cart.totals.shipping != 0) {
146
+ if (result?.length && !result.find((item) => item.type === "shipment")) {
147
+ let total = { ...result[result.length - 1] };
148
+ result[result.length - 1] = {
149
+ type: 'shipment',
150
+ name: 'shipment',
151
+ amount: cart.totals.shipping
152
+ };
153
+ result.push(total);
154
+ }
155
+ }
156
+ this._associatedDataSubject.next(result);
157
+ }
158
+ };
159
+ getStepData = (step_name) => {
160
+ let step_result = this._stateSubject.getValue().find(step => step.name == step_name);
161
+ return (step_result && step_result.data);
162
+ };
163
+ setStepData = (step_name, data) => {
164
+ let step = this._stateSubject.getValue().find(step => step.name == step_name);
165
+ step?.ready(data);
166
+ /* if (data) {
167
+ this._orderSubject.next(data);
168
+ this.total = data.totals.total;
169
+ } */
170
+ };
171
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: CheckoutService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
172
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: CheckoutService, providedIn: 'root' });
173
+ }
174
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: CheckoutService, decorators: [{
175
+ type: Injectable,
176
+ args: [{
177
+ providedIn: 'root'
178
+ }]
179
+ }], ctorParameters: () => [] });
180
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tvdXQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVhc3ljb21tZXJjZS12MTgvc3JjL2xpYi9lYy1zZXJ2aWNlcy9jaGVja291dC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBYyxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ25ELE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUsvQyxNQUFNLE9BQU8sZUFBZTtJQUVuQixZQUFZLEdBQWdCLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNoRCxXQUFXLEdBQXNCLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQzNELGlCQUFpQixHQUFxQixNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUMvRCxPQUFPLEdBQXdCLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQzNE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QyxJQUFJLElBQUksU0FBUyxDQUFDLENBQUM7UUFDOUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsQjs7O1lBR0k7SUFDTCxDQUFDLENBQUE7dUdBbExXLGVBQWU7MkdBQWYsZUFBZSxjQUZmLE1BQU07OzJGQUVOLGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1gsVUFBVSxFQUFFLE1BQU07aUJBQ2xCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgZmlyc3RWYWx1ZUZyb20sIE9ic2VydmFibGUsIFJlcGxheVN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQ2FydFNlcnZpY2UgfSBmcm9tICcuL2NhcnQuc2VydmljZSc7XHJcbmltcG9ydCB7IENoZWNrb3V0RGF0YSwgSVN0ZXAsIFN0ZXBUeXBlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IENvbm5lY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vYXBpJztcclxuaW1wb3J0IHsgQW5hbHl0aWNzU2VydmljZSB9IGZyb20gJy4vYW5hbHl0aWNzJztcclxuaW1wb3J0IHsgQXBpQ29uc3RhbnRzU2VydmljZSB9IGZyb20gJy4uL2NvbnN0YW50cyc7XHJcbmltcG9ydCB7IFN0ZXAsIFVzZXIgfSBmcm9tICcuLi9jbGFzc2VzJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuL2F1dGguc2VydmljZSc7XHJcbmltcG9ydCB7IE9yZGVyVXRpbGl0eVNlcnZpY2UgfSBmcm9tICcuL29yZGVyLXV0aWxpdHkuc2VydmljZSc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJy4vdG9hc3Quc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcblx0cHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDaGVja291dFNlcnZpY2Uge1xyXG5cclxuXHRwcml2YXRlIF9jYXJ0U2VydmljZTogQ2FydFNlcnZpY2UgPSBpbmplY3QoQ2FydFNlcnZpY2UpO1xyXG5cdHByaXZhdGUgX2Nvbm5lY3Rpb246IENvbm5lY3Rpb25TZXJ2aWNlID0gaW5qZWN0KENvbm5lY3Rpb25TZXJ2aWNlKTtcclxuXHRwcml2YXRlIF9hbmFseXRpY3NTZXJ2aWNlOiBBbmFseXRpY3NTZXJ2aWNlID0gaW5qZWN0KEFuYWx5dGljc1NlcnZpY2UpO1xyXG5cdHByaXZhdGUgX2NvbnN0czogQXBpQ29uc3RhbnRzU2VydmljZSA9IGluamVjdChBcGlDb25zdGFudHNTZXJ2aWNlKTtcclxuXHRwcml2YXRlIF9hdXRoU2VydmljZTogQXV0aFNlcnZpY2UgPSBpbmplY3QoQXV0aFNlcnZpY2UpO1xyXG5cdHByaXZhdGUgX29yZGVyVXRpbGl0eVNlcnZpY2U6IE9yZGVyVXRpbGl0eVNlcnZpY2UgPSBpbmplY3QoT3JkZXJVdGlsaXR5U2VydmljZSk7XHJcblx0cHJpdmF0ZSBfcm91dGVyOiBSb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcclxuXHRwcml2YXRlIF90b2FzdFNlcnZpY2U6IFRvYXN0U2VydmljZSA9IGluamVjdChUb2FzdFNlcnZpY2UpO1xyXG5cclxuXHRwcml2YXRlIF9jYW5DaGVja291dFN1YmplY3QgPSBuZXcgUmVwbGF5U3ViamVjdDxib29sZWFuPigpO1xyXG5cdHByaXZhdGUgX3N0YXRlU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8U3RlcFtdPihbXSlcclxuXHRwcml2YXRlIF9sYXN0U3RlcFN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHRwcml2YXRlIF9sb2FkaW5nU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cdHByaXZhdGUgX29yZGVyU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55PihudWxsKTtcclxuXHRwcml2YXRlIF9hc3NvY2lhdGVkRGF0YVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PENoZWNrb3V0RGF0YVtdIHwgbnVsbD4obnVsbCk7XHJcblx0cHJpdmF0ZSBfbG9hZGluZ1N0ZXBTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XHJcblxyXG5cdHB1YmxpYyBjYW5DaGVja291dCQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLl9jYW5DaGVja291dFN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XHJcblx0cHVibGljIHN0YXRlJDogT2JzZXJ2YWJsZTxhbnk+ID0gdGhpcy5fc3RhdGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xyXG5cdHB1YmxpYyBpc0xhc3RTdGVwJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMuX2xhc3RTdGVwU3ViamVjdC5hc09ic2VydmFibGUoKTtcclxuXHRwdWJsaWMgYXNzb2NpYXRlZERhdGEkOiBPYnNlcnZhYmxlPGFueT4gPSB0aGlzLl9hc3NvY2lhdGVkRGF0YVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XHJcblx0cHVibGljIG9yZGVyJDogT2JzZXJ2YWJsZTxhbnk+ID0gdGhpcy5fb3JkZXJTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xyXG5cdHB1YmxpYyBsb2FkaW5nU3RlcCQ6T2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMuX2xvYWRpbmdTdGVwU3ViamVjdC5hc09ic2VydmFibGUoKTtcclxuXHJcblx0cHVibGljIHRvdGFsOiBhbnk7XHJcblx0cHJpdmF0ZSBjYXJ0TG9jYWw6IGFueTtcclxuXHRwcml2YXRlIGNoZWNrb3V0RGF0YTogYW55ID0ge307XHJcblx0cHJpdmF0ZSBvcmRlcjogYW55O1xyXG5cclxuXHQvL0FQSSBNZXRob2RzXHJcblx0YmFzZUFwaSA9ICgpID0+ICdzaG9wLWFwaS8nICsgdGhpcy5fY29uc3RzLkNIQU5ORUwgKyAnL2NoZWNrb3V0LycgKyB0aGlzLl9jYXJ0U2VydmljZS5nZXRDYXJ0VG9rZW4oKTtcclxuXHRnZXRIYXNQdXJjaGFzZUNvbmRpdGlvbnMoKSB7IHJldHVybiAnc2hvcC1hcGkvJyArIHRoaXMuX2NvbnN0cy5DSEFOTkVMICsgJy9jYXJ0cy8nICsgdGhpcy5fY2FydFNlcnZpY2UuZ2V0Q2FydFRva2VuKCkgKyAnL2hhc19wdXJjaGFzZV9jb25kaXRpb25zJyB9O1xyXG5cdGNvbXBsZXRlQXBpKCkgeyByZXR1cm4gdGhpcy5iYXNlQXBpKCkgKyAnL2NvbXBsZXRlJyB9O1xyXG5cclxuXHJcblx0Y29uc3RydWN0b3IoKSB7XHJcblx0XHRjb21iaW5lTGF0ZXN0KFt0aGlzLl9jYXJ0U2VydmljZS5jYXJ0SXRlbXMkLCB0aGlzLl9jYXJ0U2VydmljZS5sb2FkaW5nJF0pLnN1YnNjcmliZSgoW2l0ZW1zLCBsb2FkaW5nXSkgPT4ge1xyXG5cdFx0XHRpZiAoIWxvYWRpbmcgJiYgaXRlbXMubGVuZ3RoID4gMCkge1xyXG5cdFx0XHRcdHRoaXMuX2NhbkNoZWNrb3V0U3ViamVjdC5uZXh0KHRydWUpO1xyXG5cdFx0XHRcdHRoaXMuX2NhcnRTZXJ2aWNlLmdldFRvdGFsQW1vdW50KCkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG5cdFx0XHRcdFx0dGhpcy50b3RhbCA9IHJlcztcclxuXHRcdFx0XHR9KVxyXG5cdFx0XHR9XHJcblx0XHR9KVxyXG5cdFx0dGhpcy5fY2FydFNlcnZpY2UuY2FydCQuc3Vic2NyaWJlKGNhcnQgPT4gY2FydCAmJiAodGhpcy5jYXJ0TG9jYWwgPSBjYXJ0KSAmJiB0aGlzLnVwZGF0ZUFzb2NpYXRlZERhdGEoY2FydCkpO1xyXG5cdFx0dGhpcy5vcmRlciQuc3Vic2NyaWJlKG9yZGVyID0+IG9yZGVyICYmIHRoaXMudXBkYXRlQXNvY2lhdGVkRGF0YShvcmRlcikpXHJcblx0fVxyXG5cclxuXHRzZXRTdGVwcyhzdGVwczogSVN0ZXBbXSkge1xyXG5cdFx0bGV0IGZpbmFsX3N0ZXBzOiBTdGVwW10gPSBbXTtcclxuXHRcdHN0ZXBzLmZvckVhY2goKHN0ZXAsIGkpID0+IGZpbmFsX3N0ZXBzLnB1c2gobmV3IFN0ZXAoc3RlcC5uYW1lLCBzdGVwLnByaW9yaXR5IHx8IChpICsgMSksIHN0ZXAubGFiZWwsIHN0ZXAuc3RhdGUpKSk7XHJcblx0XHR0aGlzLl9zdGF0ZVN1YmplY3QubmV4dChmaW5hbF9zdGVwcyk7XHJcblx0XHRpZiAoZmluYWxfc3RlcHMubGVuZ3RoID09IDEpIHtcclxuXHRcdFx0dGhpcy5fbGFzdFN0ZXBTdWJqZWN0Lm5leHQodHJ1ZSk7XHJcblx0XHR9XHJcblx0XHRjb25zb2xlLmxvZyhmaW5hbF9zdGVwcyk7XHJcblx0XHRmaXJzdFZhbHVlRnJvbSh0aGlzLl9jb25uZWN0aW9uLmdldCh0aGlzLmdldEhhc1B1cmNoYXNlQ29uZGl0aW9ucygpKSkudGhlbihcclxuXHRcdFx0cmVzID0+IHtcclxuXHRcdFx0XHR0aGlzLl9hbmFseXRpY3NTZXJ2aWNlLmNhbGxFdmVudCgnY2hlY2tvdXRfaW5pdCcsIHsgLi4udGhpcy5jYXJ0TG9jYWwsIGN1cnJlbmN5OiB0aGlzLmNhcnRMb2NhbD8uY3VycmVuY3ksIHZhbHVlOiB0aGlzLmNhcnRMb2NhbD8udG90YWwgfSlcclxuXHRcdFx0fVxyXG5cdFx0KVxyXG5cdH1cclxuXHJcblx0bmV4dCgpIHtcclxuXHRcdHRoaXMuX2xvYWRpbmdTdGVwU3ViamVjdC5uZXh0KHRydWUpO1xyXG5cdFx0Y29uc3Qgc3RlcHMgPSB0aGlzLl9zdGF0ZVN1YmplY3QuZ2V0VmFsdWUoKVxyXG5cdFx0Y29uc3QgcmVhZHlTdGVwID0gc3RlcHMuZmluZEluZGV4KHN0ZXAgPT4gc3RlcC5zdGF0ZSA9PT0gJ3JlYWR5Jyk7XHJcblx0XHRpZiAoc3RlcHNbcmVhZHlTdGVwICsgMV0pIHtcclxuXHRcdFx0c3RlcHNbcmVhZHlTdGVwXS5zdGF0ZSA9ICdkb2luZydcclxuXHRcdFx0c3RlcHNbcmVhZHlTdGVwICsgMV0uc3RhdGUgPSAncmVhZHknO1xyXG5cdFx0XHRpZiAoIXN0ZXBzW3JlYWR5U3RlcCArIDJdKSB0aGlzLl9sYXN0U3RlcFN1YmplY3QubmV4dCh0cnVlKTtcclxuXHRcdFx0dGhpcy5fbG9hZGluZ1N0ZXBTdWJqZWN0Lm5leHQoZmFsc2UpXHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLmNvbXBsZXRlKCkudGhlbihcclxuXHRcdFx0XHRyZXMgPT4ge1xyXG5cdFx0XHRcdFx0aWYgKHJlcy5vaykge1xyXG5cdFx0XHRcdFx0XHR0aGlzLl9yb3V0ZXIubmF2aWdhdGUoWydjaGVja291dC9vcmRlcl9zdWNjZXNzJ10pXHJcblx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHR0aGlzLl90b2FzdFNlcnZpY2Uuc2hvdygnb3BlcmF0aW9uLWVycm9yJylcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdHRoaXMuX2xvYWRpbmdTdGVwU3ViamVjdC5uZXh0KGZhbHNlKVxyXG5cdFx0XHRcdH0sXHJcblx0XHRcdFx0ZXJyID0+IHtcclxuXHRcdFx0XHRcdGNvbnNvbGUubG9nKGVycilcclxuXHRcdFx0XHRcdHRoaXMuX2xvYWRpbmdTdGVwU3ViamVjdC5uZXh0KGZhbHNlKVxyXG5cdFx0XHRcdFx0dGhpcy5fdG9hc3RTZXJ2aWNlLnNob3coJ29wZXJhdGlvbi1lcnJvcicpXHJcblx0XHRcdFx0fVxyXG5cdFx0XHQpXHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRiYWNrKCkge1xyXG5cdFx0Y29uc3Qgc3RlcHMgPSB0aGlzLl9zdGF0ZVN1YmplY3QuZ2V0VmFsdWUoKVxyXG5cdFx0Y29uc3QgcmVhZHlTdGVwID0gc3RlcHMuZmluZEluZGV4KHN0ZXAgPT4gc3RlcC5zdGF0ZSA9PT0gJ3JlYWR5Jyk7XHJcblx0XHR0aGlzLl9sYXN0U3RlcFN1YmplY3QubmV4dChmYWxzZSk7XHJcblx0XHRpZiAoc3RlcHNbcmVhZHlTdGVwIC0gMV0pIHtcclxuXHRcdFx0c3RlcHNbcmVhZHlTdGVwXS5zdGF0ZSA9ICdwZW5kaW5nJ1xyXG5cdFx0XHRzdGVwc1tyZWFkeVN0ZXAgLSAxXS5zdGF0ZSA9ICdyZWFkeSc7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRzZXRPcmRlciA9IChvcmRlcjogYW55KSA9PiB7IHRoaXMub3JkZXIgPSBvcmRlciwgdGhpcy5fb3JkZXJTdWJqZWN0Lm5leHQob3JkZXIpIH07XHJcblx0Ly9nZXRPcmRlciA9ICgpID0+IHRoaXMub3JkZXIgfHwgdGhpcy5vcmRlclN1YmplY3QudmFsdWU7XHJcblxyXG5cdHByaXZhdGUgY29tcGxldGVPcmRlciA9ICgpID0+IGZpcnN0VmFsdWVGcm9tKHRoaXMuX2Nvbm5lY3Rpb24ucHV0KHRoaXMuY29tcGxldGVBcGkoKSwgeyBlbWFpbDogdGhpcy5jaGVja291dERhdGEuZW1haWwsIG5vdGVzOiB0aGlzLmNoZWNrb3V0RGF0YS5ub3RlcyB8fCAnJyB9KSk7XHJcblxyXG5cdGNvbXBsZXRlID0gYXN5bmMgKCkgPT4ge1xyXG5cdFx0dHJ5IHtcclxuXHRcdFx0dGhpcy5fbG9hZGluZ1N1YmplY3QubmV4dCh0cnVlKTtcclxuXHRcdFx0bGV0IHJlc3VsdCA9IGF3YWl0IHRoaXMuY29tcGxldGVPcmRlcigpO1xyXG5cdFx0XHRcclxuXHRcdFx0aWYgKHJlc3VsdCAmJiByZXN1bHQuZXJyb3IpIHtcclxuXHRcdFx0XHR0aGlzLl9jYXJ0U2VydmljZS5jaGFuZ2VIYXZlVG9VcGRhdGUoZmFsc2UpO1xyXG5cdFx0XHRcdHRoaXMuX2xvYWRpbmdTdWJqZWN0Lm5leHQoZmFsc2UpO1xyXG5cdFx0XHRcdHJldHVybiAoeyBvazogZmFsc2UsIHJlcXVpcmVfbG9naW46IHRydWUsIG1lc3NhZ2U6ICdub3QtY29tcGxldGVkJyB9KTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0dGhpcy5zZXRPcmRlcihyZXN1bHQpO1xyXG5cdFx0XHR0aGlzLl9hbmFseXRpY3NTZXJ2aWNlLmNhbGxFdmVudCgncHVyY2hhc2UnLCB7IC4uLnJlc3VsdCwgY3VycmVuY3k6IHJlc3VsdC5jdXJyZW5jeSwgdmFsdWU6IHJlc3VsdC50b3RhbCB9KTtcclxuXHRcdFx0dGhpcy5fY2FydFNlcnZpY2UuY2xlYXJBbmRSZXNldENhcnQoKTtcclxuXHRcdFx0dGhpcy5fY2FuQ2hlY2tvdXRTdWJqZWN0Lm5leHQoZmFsc2UpO1xyXG5cdFx0XHQvL3RoaXMuX29uUmVhZHlTdWJqZWN0Lm5leHQoZmFsc2UpO1xyXG5cdFx0XHR0aGlzLl9sb2FkaW5nU3ViamVjdC5uZXh0KGZhbHNlKTtcclxuXHJcblx0XHRcdHJldHVybiAoeyBvazogdHJ1ZSwgcmVxdWlyZV9sb2dpbjogZmFsc2UsIG1lc3NhZ2U6ICcnIH0pO1xyXG5cdFx0fSBjYXRjaCAoZXJyb3IpIHtcclxuXHRcdFx0dGhpcy5fbG9hZGluZ1N1YmplY3QubmV4dChmYWxzZSk7XHJcblx0XHRcdGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGluIGNvbXBsZXRlOicsIGVycm9yKTtcclxuXHJcblx0XHRcdHJldHVybiB7IG9rOiBmYWxzZSwgcmVxdWlyZV9sb2dpbjogZmFsc2UsIG1lc3NhZ2U6ICdBbiBlcnJvciBvY2N1cnJlZCcgfTtcclxuXHRcdH1cclxuXHJcblx0fVxyXG5cclxuXHR1cGRhdGVBc29jaWF0ZWREYXRhID0gKGNhcnQ6IGFueSkgPT4ge1xyXG5cdFx0bGV0IHJlc3VsdCA9IHRoaXMuX29yZGVyVXRpbGl0eVNlcnZpY2UuZ2V0UHJvbW90aW9ucyhjYXJ0KTtcclxuXHRcdGNvbnN0IHVzZXJQcm9maWxlOiBVc2VyID0gVXNlci5mcm9tSnNvbih0aGlzLl9hdXRoU2VydmljZS5nZXRVc2VyUHJvZmlsZUFzVXNlcigpKTtcclxuXHRcdGlmIChyZXN1bHQpIHtcclxuXHRcdFx0aWYgKHVzZXJQcm9maWxlLmlzV2hvbGVzYWxlcigpICYmIGNhcnQudG90YWxzLnRheGVzICE9IDApIHtcclxuXHRcdFx0XHRsZXQgdG90YWwgPSB7IC4uLnJlc3VsdFtyZXN1bHQubGVuZ3RoIC0gMV0gfTtcclxuXHRcdFx0XHRyZXN1bHRbcmVzdWx0Lmxlbmd0aCAtIDFdID0ge1xyXG5cdFx0XHRcdFx0dHlwZTogJ3RheGVzJyxcclxuXHRcdFx0XHRcdG5hbWU6ICd0YXhlcycsXHJcblx0XHRcdFx0XHRhbW91bnQ6IGNhcnQudG90YWxzLnRheGVzXHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHJlc3VsdC5wdXNoKHRvdGFsKTtcclxuXHRcdFx0fVxyXG5cdFx0XHRsZXQgc2hpcG1lbnQgPSByZXN1bHQ/LmZpbmQoKHByb21vdGlvbjogYW55KSA9PiBwcm9tb3Rpb24udHlwZSA9PSBcInNoaXBtZW50XCIpO1xyXG5cdFx0XHRpZiAoIXNoaXBtZW50ICYmIGNhcnQudG90YWxzLnNoaXBwaW5nICE9IDApIHtcclxuXHJcblx0XHRcdFx0aWYgKHJlc3VsdD8ubGVuZ3RoICYmICFyZXN1bHQuZmluZCgoaXRlbTogYW55KSA9PiBpdGVtLnR5cGUgPT09IFwic2hpcG1lbnRcIikpIHtcclxuXHRcdFx0XHRcdGxldCB0b3RhbCA9IHsgLi4ucmVzdWx0W3Jlc3VsdC5sZW5ndGggLSAxXSB9O1xyXG5cdFx0XHRcdFx0cmVzdWx0W3Jlc3VsdC5sZW5ndGggLSAxXSA9IHtcclxuXHRcdFx0XHRcdFx0dHlwZTogJ3NoaXBtZW50JyxcclxuXHRcdFx0XHRcdFx0bmFtZTogJ3NoaXBtZW50JyxcclxuXHRcdFx0XHRcdFx0YW1vdW50OiBjYXJ0LnRvdGFscy5zaGlwcGluZ1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0cmVzdWx0LnB1c2godG90YWwpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHR0aGlzLl9hc3NvY2lhdGVkRGF0YVN1YmplY3QubmV4dChyZXN1bHQpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Z2V0U3RlcERhdGEgPSAoc3RlcF9uYW1lOiBTdGVwVHlwZSkgPT4ge1xyXG5cdFx0bGV0IHN0ZXBfcmVzdWx0ID0gdGhpcy5fc3RhdGVTdWJqZWN0LmdldFZhbHVlKCkuZmluZChzdGVwID0+IHN0ZXAubmFtZSA9PSBzdGVwX25hbWUpO1xyXG5cdFx0cmV0dXJuIChzdGVwX3Jlc3VsdCAmJiBzdGVwX3Jlc3VsdC5kYXRhKTtcclxuXHR9XHJcblxyXG5cdHNldFN0ZXBEYXRhID0gKHN0ZXBfbmFtZTogU3RlcFR5cGUsIGRhdGE6IGFueSkgPT4ge1xyXG5cdFx0bGV0IHN0ZXAgPSB0aGlzLl9zdGF0ZVN1YmplY3QuZ2V0VmFsdWUoKS5maW5kKHN0ZXAgPT4gc3RlcC5uYW1lID09IHN0ZXBfbmFtZSk7XHJcblx0XHRzdGVwPy5yZWFkeShkYXRhKTtcclxuXHRcdC8qIGlmIChkYXRhKSB7XHJcblx0XHRcdHRoaXMuX29yZGVyU3ViamVjdC5uZXh0KGRhdGEpO1xyXG5cdFx0XHR0aGlzLnRvdGFsID0gZGF0YS50b3RhbHMudG90YWw7XHJcblx0XHR9ICovXHJcblx0fVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,177 @@
1
+ import { inject, Injectable } from '@angular/core';
2
+ import { ApiConstantsService, CoreConstantsService } from '../constants';
3
+ import { ConnectionService } from '../api';
4
+ import { BehaviorSubject, firstValueFrom } from 'rxjs';
5
+ import { ChannelService } from './channel.service';
6
+ import { CurrencyStore } from '../stores';
7
+ import * as i0 from "@angular/core";
8
+ /**
9
+ * Servicio encargado de manejar todo lo que este relacionado a la moneda
10
+ * que maneja la aplicación.
11
+ */
12
+ export class CurrencyService {
13
+ /**
14
+ * Constantes de core
15
+ */
16
+ _consts = inject(CoreConstantsService);
17
+ /**
18
+ * Constantes de la API
19
+ */
20
+ _apiConsts = inject(ApiConstantsService);
21
+ /**
22
+ * Maneja las peticiones a la API
23
+ */
24
+ _connection = inject(ConnectionService);
25
+ /**
26
+ * Servicio de canales
27
+ */
28
+ _channel = inject(ChannelService);
29
+ /**
30
+ * Contiene el canal activo de la API.
31
+ */
32
+ _channel$ = this._channel.getChannel();
33
+ /**
34
+ * Subject para manejar la moneda actual.
35
+ */
36
+ _currencySubject = new BehaviorSubject({});
37
+ /**
38
+ * Subject para manejar la lista de monedas de la aplicación.
39
+ */
40
+ _currencyListSubject = new BehaviorSubject([]);
41
+ /**
42
+ * Subject para indicar la actualización de un estado.
43
+ */
44
+ _updateSubject = new BehaviorSubject(false);
45
+ currency$ = this._currencySubject.asObservable();
46
+ currencyList$ = this._currencyListSubject.asObservable();
47
+ update$ = this._updateSubject.asObservable();
48
+ //API URL
49
+ /**
50
+ * Devuelve la URL para obtener lista de monedas de la aplicación.
51
+ * @returns
52
+ */
53
+ getCurrencyListApi() { return `${this._apiConsts.SHOP_API_URL}/currencies`; }
54
+ ;
55
+ /**
56
+ * Devuelve la URL para obtener la convertibilidad de una moneda.
57
+ * @param baseCurrency Moneda base
58
+ * @param targetCurrency Moneda destino
59
+ * @returns
60
+ */
61
+ getConvertibilityApi(baseCurrency, targetCurrency) { return `${this._apiConsts.SHOP_API_URL}/currencies?baseCurrency=${baseCurrency}&targetCurrency=${targetCurrency}`; }
62
+ /**
63
+ * Store que guardara la moneda actual que maneja la aplicación.
64
+ */
65
+ currencyStore = inject(CurrencyStore);
66
+ constructor() {
67
+ this._channel$.subscribe(channel => {
68
+ channel.applyCurrencyExchange ? this.loadCurrencyList() : this.loadDefaultCurrency(channel.baseCurrency);
69
+ });
70
+ }
71
+ /**
72
+ * Se carga la moneda por defecto.
73
+ */
74
+ loadDefaultCurrency(currency) {
75
+ this._consts.setCurrency(currency);
76
+ this.load();
77
+ }
78
+ /**
79
+ * Carga la lista de monedas/currencies.
80
+ */
81
+ async loadCurrencyList() {
82
+ await firstValueFrom(this._connection.get(this.getCurrencyListApi()))
83
+ .then(res => {
84
+ this._currencyListSubject.next(res);
85
+ this._consts.setCurrencyTypeConfig(res);
86
+ this.load();
87
+ });
88
+ }
89
+ /**
90
+ * calcula la convetibilidad del precio pasado por paramentro segun esta formula:
91
+ * **c = a * b** donde *c=moneda despues del cambio*, *a=valor que quiero cambiar* y *b=ratio de cambio*.
92
+ * @param price Precio a cambiar
93
+ * @param ratio Ratio de cambio
94
+ * @returns Si el ratio no es null, retorna el precio cambiado, sino retorna el precio sin cambios.
95
+ */
96
+ calculateConvetibility(price, ratio) {
97
+ return ratio ? price * ratio : price;
98
+ }
99
+ /**
100
+ * genera la carga y configuración de la moneda elegida para la conversion.
101
+ * @param currency Moneda a convertir.
102
+ */
103
+ loadCurrency(currency) {
104
+ this._currencySubject.next(currency);
105
+ this._consts.setCurrency(currency.code);
106
+ let update = this._updateSubject.getValue();
107
+ this._updateSubject.next(!update);
108
+ this.currencyStore.add(this._consts.currency);
109
+ }
110
+ /**
111
+ * Genera la convertibilidad de la moneda base a la nueva. Si baseCurrency no tiene valor
112
+ * entonces utiliza la moneda base del canal.
113
+ * @param currency Objeto de la moneda destino.
114
+ * @param baseCurrency Codigo de la moneda base. *Ej: USD | ARS | EUR |...*
115
+ */
116
+ async generateConvertibility(currency, baseCurrency) {
117
+ if (!baseCurrency) {
118
+ try {
119
+ baseCurrency = await this._channel.getActiveChannel().baseCurrency;
120
+ }
121
+ catch (error) {
122
+ //console.error(error)
123
+ baseCurrency = 'USD';
124
+ }
125
+ }
126
+ console.log("BC", baseCurrency);
127
+ if (currency.code == baseCurrency) {
128
+ this.loadCurrency(currency);
129
+ }
130
+ else {
131
+ this.getConvertibility(baseCurrency, currency.code);
132
+ }
133
+ }
134
+ /**
135
+ * Obtiene la conversion desde la moneda base a la destino. Recibe un objeto de tipo CurrencyConfig.
136
+ * Si la conversion retorna resultado realiza el cambio, de lo contrario emite un mensaje de error.
137
+ * @param baseCurrency Codigo de la moneda base.
138
+ * @param targetCurrency Codigo de la moneda destino.
139
+ */
140
+ getConvertibility(baseCurrency, targetCurrency) {
141
+ this._connection.get(this.getConvertibilityApi(baseCurrency, targetCurrency))
142
+ .toPromise().then(res => {
143
+ if (res) {
144
+ let tempCurrency = res[0];
145
+ this.loadCurrency(tempCurrency);
146
+ }
147
+ else {
148
+ console.error('Error la variable res no contiene valor, asegurese de que esta conversión este configurada en el backoffice');
149
+ //this.toastr.show('error-convertibility')
150
+ }
151
+ }, err => {
152
+ console.log(err);
153
+ }).catch(err => console.log(err));
154
+ }
155
+ /**
156
+ * Carga la moneda, si hay una en el localstorage toma esa y realiza la conversion.
157
+ * de lo contrario solo setea en el observable currencySubject el valor por defecto cargado en las constantes.
158
+ */
159
+ load() {
160
+ let storeCurrency = this.currencyStore.currency();
161
+ if (storeCurrency && storeCurrency.code) {
162
+ this.generateConvertibility(storeCurrency);
163
+ }
164
+ else {
165
+ this._currencySubject.next(this._consts.currency);
166
+ }
167
+ }
168
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: CurrencyService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
169
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: CurrencyService, providedIn: 'root' });
170
+ }
171
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: CurrencyService, decorators: [{
172
+ type: Injectable,
173
+ args: [{
174
+ providedIn: 'root'
175
+ }]
176
+ }], ctorParameters: () => [] });
177
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVuY3kuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVhc3ljb21tZXJjZS12MTgvc3JjL2xpYi9lYy1zZXJ2aWNlcy9jdXJyZW5jeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFFbkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxXQUFXLENBQUM7O0FBQzFDOzs7R0FHRztBQUlILE1BQU0sT0FBTyxlQUFlO0lBQ3hCOztPQUVHO0lBQ0ssT0FBTyxHQUF5QixNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQTtJQUNwRTs7T0FFRztJQUNLLFVBQVUsR0FBd0IsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUE7SUFDckU7O09BRUc7SUFDSyxXQUFXLEdBQXNCLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO0lBQ2xFOztPQUVHO0lBQ0ssUUFBUSxHQUFtQixNQUFNLENBQUMsY0FBYyxDQUFDLENBQUE7SUFDekQ7O09BRUc7SUFDSyxTQUFTLEdBQW9CLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDaEU7O09BRUc7SUFDSyxnQkFBZ0IsR0FBb0MsSUFBSSxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUE7SUFDbkY7O09BRUc7SUFDSyxvQkFBb0IsR0FBeUIsSUFBSSxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUE7SUFD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SUFBSTtRQUNSLElBQUksYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDbEQsSUFBSSxhQUFhLElBQUksYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3RDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxhQUFhLENBQUMsQ0FBQTtRQUM5QyxDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUNyRCxDQUFDO0lBQ0wsQ0FBQzt1R0FuS1EsZUFBZTsyR0FBZixlQUFlLGNBRlosTUFBTTs7MkZBRVQsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQXBpQ29uc3RhbnRzU2VydmljZSwgQ29yZUNvbnN0YW50c1NlcnZpY2UgfSBmcm9tICcuLi9jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBDb25uZWN0aW9uU2VydmljZSB9IGZyb20gJy4uL2FwaSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgZmlyc3RWYWx1ZUZyb20sIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQ3VycmVuY3lDb25maWcgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgQ2hhbm5lbFNlcnZpY2UgfSBmcm9tICcuL2NoYW5uZWwuc2VydmljZSc7XHJcbmltcG9ydCB7IEN1cnJlbmN5U3RvcmUgfSBmcm9tICcuLi9zdG9yZXMnO1xyXG4vKipcclxuICogU2VydmljaW8gZW5jYXJnYWRvIGRlIG1hbmVqYXIgdG9kbyBsbyBxdWUgZXN0ZSByZWxhY2lvbmFkbyBhIGxhIG1vbmVkYVxyXG4gKiBxdWUgbWFuZWphIGxhIGFwbGljYWNpw7NuLlxyXG4gKi9cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDdXJyZW5jeVNlcnZpY2Uge1xyXG4gICAgLyoqXHJcbiAgICAgKiBDb25zdGFudGVzIGRlIGNvcmVcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBfY29uc3RzOiBDb3JlQ29uc3RhbnRzU2VydmljZSA9IGluamVjdChDb3JlQ29uc3RhbnRzU2VydmljZSlcclxuICAgIC8qKlxyXG4gICAgICogQ29uc3RhbnRlcyBkZSBsYSBBUElcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBfYXBpQ29uc3RzOiBBcGlDb25zdGFudHNTZXJ2aWNlID0gaW5qZWN0KEFwaUNvbnN0YW50c1NlcnZpY2UpXHJcbiAgICAvKipcclxuICAgICAqIE1hbmVqYSBsYXMgcGV0aWNpb25lcyBhIGxhIEFQSVxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIF9jb25uZWN0aW9uOiBDb25uZWN0aW9uU2VydmljZSA9IGluamVjdChDb25uZWN0aW9uU2VydmljZSlcclxuICAgIC8qKlxyXG4gICAgICogU2VydmljaW8gZGUgY2FuYWxlc1xyXG4gICAgICovXHJcbiAgICBwcml2YXRlIF9jaGFubmVsOiBDaGFubmVsU2VydmljZSA9IGluamVjdChDaGFubmVsU2VydmljZSlcclxuICAgIC8qKlxyXG4gICAgICogQ29udGllbmUgZWwgY2FuYWwgYWN0aXZvIGRlIGxhIEFQSS5cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBfY2hhbm5lbCQ6IE9ic2VydmFibGU8YW55PiA9IHRoaXMuX2NoYW5uZWwuZ2V0Q2hhbm5lbCgpO1xyXG4gICAgLyoqXHJcbiAgICAgKiBTdWJqZWN0IHBhcmEgbWFuZWphciBsYSBtb25lZGEgYWN0dWFsLlxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIF9jdXJyZW5jeVN1YmplY3Q6IEJlaGF2aW9yU3ViamVjdDxDdXJyZW5jeUNvbmZpZz4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHt9KVxyXG4gICAgLyoqXHJcbiAgICAgKiBTdWJqZWN0IHBhcmEgbWFuZWphciBsYSBsaXN0YSBkZSBtb25lZGFzIGRlIGxhIGFwbGljYWNpw7NuLlxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIF9jdXJyZW5jeUxpc3RTdWJqZWN0OiBCZWhhdmlvclN1YmplY3Q8YW55PiA9IG5ldyBCZWhhdmlvclN1YmplY3QoW10pXHJcbiAgICAvKipcclxuICAgICAqIFN1YmplY3QgcGFyYSBpbmRpY2FyIGxhIGFjdHVhbGl6YWNpw7NuIGRlIHVuIGVzdGFkby5cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBfdXBkYXRlU3ViamVjdDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSlcclxuXHJcbiAgICBwdWJsaWMgY3VycmVuY3kkOiBPYnNlcnZhYmxlPEN1cnJlbmN5Q29uZmlnPiA9IHRoaXMuX2N1cnJlbmN5U3ViamVjdC5hc09ic2VydmFibGUoKVxyXG4gICAgcHVibGljIGN1cnJlbmN5TGlzdCQ6IE9ic2VydmFibGU8YW55W10+ID0gdGhpcy5fY3VycmVuY3lMaXN0U3ViamVjdC5hc09ic2VydmFibGUoKVxyXG4gICAgcHVibGljIHVwZGF0ZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLl91cGRhdGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICAgIC8vQVBJIFVSTFxyXG4gICAgLyoqXHJcbiAgICAgKiBEZXZ1ZWx2ZSBsYSBVUkwgcGFyYSBvYnRlbmVyIGxpc3RhIGRlIG1vbmVkYXMgZGUgbGEgYXBsaWNhY2nDs24uXHJcbiAgICAgKiBAcmV0dXJucyBcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBnZXRDdXJyZW5jeUxpc3RBcGkoKSB7IHJldHVybiBgJHt0aGlzLl9hcGlDb25zdHMuU0hPUF9BUElfVVJMfS9jdXJyZW5jaWVzYCB9O1xyXG4gICAgLyoqXHJcbiAgICAgKiBEZXZ1ZWx2ZSBsYSBVUkwgcGFyYSBvYnRlbmVyIGxhIGNvbnZlcnRpYmlsaWRhZCBkZSB1bmEgbW9uZWRhLiBcclxuICAgICAqIEBwYXJhbSBiYXNlQ3VycmVuY3kgTW9uZWRhIGJhc2VcclxuICAgICAqIEBwYXJhbSB0YXJnZXRDdXJyZW5jeSBNb25lZGEgZGVzdGlub1xyXG4gICAgICogQHJldHVybnMgXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgZ2V0Q29udmVydGliaWxpdHlBcGkoYmFzZUN1cnJlbmN5OiBhbnksIHRhcmdldEN1cnJlbmN5OiBhbnkpIHsgcmV0dXJuIGAke3RoaXMuX2FwaUNvbnN0cy5TSE9QX0FQSV9VUkx9L2N1cnJlbmNpZXM/YmFzZUN1cnJlbmN5PSR7YmFzZUN1cnJlbmN5fSZ0YXJnZXRDdXJyZW5jeT0ke3RhcmdldEN1cnJlbmN5fWAgfVxyXG4gICAgLyoqXHJcbiAgICAgKiBTdG9yZSBxdWUgZ3VhcmRhcmEgbGEgbW9uZWRhIGFjdHVhbCBxdWUgbWFuZWphIGxhIGFwbGljYWNpw7NuLlxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgY3VycmVuY3lTdG9yZSA9IGluamVjdChDdXJyZW5jeVN0b3JlKTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICB0aGlzLl9jaGFubmVsJC5zdWJzY3JpYmUoY2hhbm5lbCA9PiB7XHJcbiAgICAgICAgICAgIGNoYW5uZWwuYXBwbHlDdXJyZW5jeUV4Y2hhbmdlID8gdGhpcy5sb2FkQ3VycmVuY3lMaXN0KCkgOiB0aGlzLmxvYWREZWZhdWx0Q3VycmVuY3koY2hhbm5lbC5iYXNlQ3VycmVuY3kpO1xyXG4gICAgICAgIH0pXHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgICAqICBTZSBjYXJnYSBsYSBtb25lZGEgcG9yIGRlZmVjdG8uXHJcbiAgICAgICAqL1xyXG4gICAgcHJpdmF0ZSBsb2FkRGVmYXVsdEN1cnJlbmN5KGN1cnJlbmN5OiBhbnkpIHtcclxuICAgICAgICB0aGlzLl9jb25zdHMuc2V0Q3VycmVuY3koY3VycmVuY3kpO1xyXG4gICAgICAgIHRoaXMubG9hZCgpXHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiAgQ2FyZ2EgbGEgbGlzdGEgZGUgbW9uZWRhcy9jdXJyZW5jaWVzLlxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGFzeW5jIGxvYWRDdXJyZW5jeUxpc3QoKSB7XHJcbiAgICAgICAgYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5fY29ubmVjdGlvbi5nZXQodGhpcy5nZXRDdXJyZW5jeUxpc3RBcGkoKSkpXHJcbiAgICAgICAgICAgIC50aGVuKHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9jdXJyZW5jeUxpc3RTdWJqZWN0Lm5leHQocmVzKVxyXG4gICAgICAgICAgICAgICAgdGhpcy5fY29uc3RzLnNldEN1cnJlbmN5VHlwZUNvbmZpZyhyZXMpXHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWQoKVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogIGNhbGN1bGEgbGEgY29udmV0aWJpbGlkYWQgZGVsIHByZWNpbyAgcGFzYWRvIHBvciBwYXJhbWVudHJvIHNlZ3VuIGVzdGEgZm9ybXVsYTpcclxuICAgICAqICoqYyA9IGEgKiBiKiogZG9uZGUgKmM9bW9uZWRhIGRlc3B1ZXMgZGVsIGNhbWJpbyosICphPXZhbG9yIHF1ZSBxdWllcm8gY2FtYmlhciogeSAqYj1yYXRpbyBkZSBjYW1iaW8qLiBcclxuICAgICAqIEBwYXJhbSBwcmljZSBQcmVjaW8gYSBjYW1iaWFyXHJcbiAgICAgKiBAcGFyYW0gcmF0aW8gUmF0aW8gZGUgY2FtYmlvXHJcbiAgICAgKiBAcmV0dXJucyBTaSBlbCByYXRpbyBubyBlcyBudWxsLCByZXRvcm5hIGVsIHByZWNpbyBjYW1iaWFkbywgc2lubyByZXRvcm5hIGVsIHByZWNpbyBzaW4gY2FtYmlvcy4gXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBjYWxjdWxhdGVDb252ZXRpYmlsaXR5KHByaWNlOiBudW1iZXIsIHJhdGlvOiBudW1iZXIpIHtcclxuICAgICAgICByZXR1cm4gcmF0aW8gPyBwcmljZSAqIHJhdGlvIDogcHJpY2U7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiAgZ2VuZXJhIGxhIGNhcmdhIHkgY29uZmlndXJhY2nDs24gZGUgbGEgbW9uZWRhIGVsZWdpZGEgcGFyYSBsYSBjb252ZXJzaW9uLlxyXG4gICAgICogQHBhcmFtIGN1cnJlbmN5IE1vbmVkYSBhIGNvbnZlcnRpci5cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBsb2FkQ3VycmVuY3koY3VycmVuY3k6IGFueSkge1xyXG4gICAgICAgIHRoaXMuX2N1cnJlbmN5U3ViamVjdC5uZXh0KGN1cnJlbmN5KTtcclxuICAgICAgICB0aGlzLl9jb25zdHMuc2V0Q3VycmVuY3koY3VycmVuY3kuY29kZSk7XHJcbiAgICAgICAgbGV0IHVwZGF0ZSA9IHRoaXMuX3VwZGF0ZVN1YmplY3QuZ2V0VmFsdWUoKVxyXG4gICAgICAgIHRoaXMuX3VwZGF0ZVN1YmplY3QubmV4dCghdXBkYXRlKVxyXG4gICAgICAgIHRoaXMuY3VycmVuY3lTdG9yZS5hZGQodGhpcy5fY29uc3RzLmN1cnJlbmN5KVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2VuZXJhIGxhIGNvbnZlcnRpYmlsaWRhZCBkZSBsYSBtb25lZGEgYmFzZSBhIGxhIG51ZXZhLiBTaSBiYXNlQ3VycmVuY3kgbm8gdGllbmUgdmFsb3IgXHJcbiAgICAgKiBlbnRvbmNlcyB1dGlsaXphIGxhIG1vbmVkYSBiYXNlIGRlbCBjYW5hbC5cclxuICAgICAqIEBwYXJhbSBjdXJyZW5jeSBPYmpldG8gZGUgbGEgbW9uZWRhIGRlc3Rpbm8uXHJcbiAgICAgKiBAcGFyYW0gYmFzZUN1cnJlbmN5IENvZGlnbyBkZSBsYSBtb25lZGEgYmFzZS4gKkVqOiBVU0QgfCBBUlMgfCBFVVIgfC4uLipcclxuICAgICAqL1xyXG4gICAgYXN5bmMgZ2VuZXJhdGVDb252ZXJ0aWJpbGl0eShjdXJyZW5jeTogYW55LCBiYXNlQ3VycmVuY3k/OiBzdHJpbmcpIHtcclxuICAgICAgICBpZiAoIWJhc2VDdXJyZW5jeSkge1xyXG4gICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgYmFzZUN1cnJlbmN5ID0gYXdhaXQgdGhpcy5fY2hhbm5lbC5nZXRBY3RpdmVDaGFubmVsKCkuYmFzZUN1cnJlbmN5O1xyXG4gICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgICAgICAgLy9jb25zb2xlLmVycm9yKGVycm9yKVxyXG4gICAgICAgICAgICAgICAgYmFzZUN1cnJlbmN5ID0gJ1VTRCdcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zb2xlLmxvZyhcIkJDXCIsIGJhc2VDdXJyZW5jeSk7XHJcbiAgICAgICAgaWYgKGN1cnJlbmN5LmNvZGUgPT0gYmFzZUN1cnJlbmN5KSB7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZEN1cnJlbmN5KGN1cnJlbmN5KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmdldENvbnZlcnRpYmlsaXR5KGJhc2VDdXJyZW5jeSwgY3VycmVuY3kuY29kZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogT2J0aWVuZSBsYSBjb252ZXJzaW9uIGRlc2RlIGxhIG1vbmVkYSBiYXNlIGEgbGEgZGVzdGluby4gUmVjaWJlIHVuIG9iamV0byBkZSB0aXBvIEN1cnJlbmN5Q29uZmlnLlxyXG4gICAgICogU2kgbGEgY29udmVyc2lvbiByZXRvcm5hIHJlc3VsdGFkbyByZWFsaXphIGVsIGNhbWJpbywgZGUgbG8gY29udHJhcmlvIGVtaXRlIHVuIG1lbnNhamUgZGUgZXJyb3IuXHJcbiAgICAgKiBAcGFyYW0gYmFzZUN1cnJlbmN5IENvZGlnbyBkZSBsYSBtb25lZGEgYmFzZS5cclxuICAgICAqIEBwYXJhbSB0YXJnZXRDdXJyZW5jeSBDb2RpZ28gZGUgbGEgbW9uZWRhIGRlc3Rpbm8uXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgZ2V0Q29udmVydGliaWxpdHkoYmFzZUN1cnJlbmN5OiBhbnksIHRhcmdldEN1cnJlbmN5OiBhbnkpIHtcclxuICAgICAgICB0aGlzLl9jb25uZWN0aW9uLmdldCh0aGlzLmdldENvbnZlcnRpYmlsaXR5QXBpKGJhc2VDdXJyZW5jeSwgdGFyZ2V0Q3VycmVuY3kpKVxyXG4gICAgICAgICAgICAudG9Qcm9taXNlKCkudGhlbihcclxuICAgICAgICAgICAgICAgIHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlcykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGVtcEN1cnJlbmN5ID0gcmVzWzBdXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZEN1cnJlbmN5KHRlbXBDdXJyZW5jeSlcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBsYSB2YXJpYWJsZSByZXMgbm8gY29udGllbmUgdmFsb3IsIGFzZWd1cmVzZSBkZSBxdWUgZXN0YSBjb252ZXJzacOzbiBlc3RlIGNvbmZpZ3VyYWRhIGVuIGVsIGJhY2tvZmZpY2UnKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvL3RoaXMudG9hc3RyLnNob3coJ2Vycm9yLWNvbnZlcnRpYmlsaXR5JylcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgZXJyID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlcnIpXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICkuY2F0Y2goZXJyID0+IGNvbnNvbGUubG9nKGVycikpXHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDYXJnYSBsYSBtb25lZGEsIHNpIGhheSB1bmEgZW4gZWwgbG9jYWxzdG9yYWdlIHRvbWEgZXNhIHkgcmVhbGl6YSBsYSBjb252ZXJzaW9uLlxyXG4gICAgICogZGUgbG8gY29udHJhcmlvIHNvbG8gc2V0ZWEgZW4gZWwgb2JzZXJ2YWJsZSBjdXJyZW5jeVN1YmplY3QgZWwgdmFsb3IgcG9yIGRlZmVjdG8gY2FyZ2FkbyBlbiBsYXMgY29uc3RhbnRlcy4gXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgbG9hZCgpIHtcclxuICAgICAgICBsZXQgc3RvcmVDdXJyZW5jeSA9IHRoaXMuY3VycmVuY3lTdG9yZS5jdXJyZW5jeSgpO1xyXG4gICAgICAgIGlmIChzdG9yZUN1cnJlbmN5ICYmIHN0b3JlQ3VycmVuY3kuY29kZSkge1xyXG4gICAgICAgICAgICB0aGlzLmdlbmVyYXRlQ29udmVydGliaWxpdHkoc3RvcmVDdXJyZW5jeSlcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLl9jdXJyZW5jeVN1YmplY3QubmV4dCh0aGlzLl9jb25zdHMuY3VycmVuY3kpXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==