ng-easycommerce-v18 0.0.1 → 0.0.2

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 +24 -27
  2. package/{projects/ng-easycommerce/src/lib/assets → assets}/ec-i18n/ct.json +273 -273
  3. package/{projects/ng-easycommerce/src/lib/assets → assets}/ec-i18n/en.json +0 -0
  4. package/{projects/ng-easycommerce/src/lib/assets → assets}/ec-i18n/es.json +387 -387
  5. package/{projects/ng-easycommerce/src/lib/assets → assets}/ec-i18n/fr.json +0 -0
  6. package/{projects/ng-easycommerce/src/lib/assets → assets}/ec-i18n/gl.json +273 -273
  7. package/{projects/ng-easycommerce/src/lib/assets → assets}/ec-i18n/pr.json +273 -273
  8. package/{projects/ng-easycommerce/src/lib/assets → assets}/recaptcha/recaptcha-site-keys.json +3 -3
  9. package/{projects/ng-easycommerce/src/lib/assets → assets}/recaptcha/recaptcha-sites-prod.json +38 -38
  10. package/{projects/ng-easycommerce/src/lib/assets → assets}/recaptcha/recaptcha-sites.json +52 -52
  11. package/esm2022/lib/api/connection.service.mjs +75 -0
  12. package/esm2022/lib/api/index.mjs +2 -0
  13. package/esm2022/lib/classes/checkout/index.mjs +2 -0
  14. package/esm2022/lib/classes/checkout/steps.mjs +29 -0
  15. package/esm2022/lib/classes/filters/attributes-filter.mjs +73 -0
  16. package/esm2022/lib/classes/filters/category-filter.mjs +59 -0
  17. package/esm2022/lib/classes/filters/dynamics-filter.mjs +58 -0
  18. package/esm2022/lib/classes/filters/filter-factory.mjs +21 -0
  19. package/esm2022/lib/classes/filters/filter.mjs +83 -0
  20. package/esm2022/lib/classes/filters/index.mjs +7 -0
  21. package/esm2022/lib/classes/filters/sort-filter.mjs +88 -0
  22. package/esm2022/lib/classes/index.mjs +4 -0
  23. package/esm2022/lib/classes/user.mjs +59 -0
  24. package/esm2022/lib/constants/api.constants.service.mjs +71 -0
  25. package/esm2022/lib/constants/core.constants.service.mjs +196 -0
  26. package/esm2022/lib/constants/index.mjs +3 -0
  27. package/esm2022/lib/ec-components/abstractions-components/block-ec.component.mjs +110 -0
  28. package/esm2022/lib/ec-components/abstractions-components/index.mjs +3 -0
  29. package/esm2022/lib/ec-components/abstractions-components/menu-ec.component.mjs +97 -0
  30. package/esm2022/lib/ec-components/account-ec/account-ec.component.mjs +22 -0
  31. package/esm2022/lib/ec-components/account-ec/index.mjs +4 -0
  32. package/esm2022/lib/ec-components/account-ec/order-ec/order-ec.component.mjs +16 -0
  33. package/esm2022/lib/ec-components/account-ec/orders-list-ec/orders-list-ec.component.mjs +150 -0
  34. package/esm2022/lib/ec-components/auth-ec/auth-ec.component.mjs +12 -0
  35. package/esm2022/lib/ec-components/auth-ec/confirm-account-ec/confirm-account-ec.component.mjs +30 -0
  36. package/esm2022/lib/ec-components/auth-ec/forgot-password-ec/forgot-password-ec.component.mjs +54 -0
  37. package/esm2022/lib/ec-components/auth-ec/index.mjs +7 -0
  38. package/esm2022/lib/ec-components/auth-ec/login-form-ec/login-form-ec.component.mjs +91 -0
  39. package/esm2022/lib/ec-components/auth-ec/register-form-ec/register-form-ec.component.mjs +105 -0
  40. package/esm2022/lib/ec-components/auth-ec/register-wholesaler-form-ec/register-wholesaler-form-ec.component.mjs +153 -0
  41. package/esm2022/lib/ec-components/blocks-ec/block-banner-box-ec/block-banner-box-ec.component.mjs +104 -0
  42. package/esm2022/lib/ec-components/blocks-ec/block-banner-full-ec/block-banner-full-ec.component.mjs +87 -0
  43. package/esm2022/lib/ec-components/blocks-ec/block-form-contact-ec/block-form-contact-ec.component.mjs +87 -0
  44. package/esm2022/lib/ec-components/blocks-ec/block-html-ec/block-html-ec.component.mjs +37 -0
  45. package/esm2022/lib/ec-components/blocks-ec/block-newsletter-ec/block-newsletter-ec.component.mjs +78 -0
  46. package/esm2022/lib/ec-components/blocks-ec/block-products-ec/block-products-ec.component.mjs +109 -0
  47. package/esm2022/lib/ec-components/blocks-ec/blocks-ec.component.mjs +99 -0
  48. package/esm2022/lib/ec-components/blocks-ec/index.mjs +5 -0
  49. package/esm2022/lib/ec-components/breadcrumb-ec/breadcrumb-ec.component.mjs +27 -0
  50. package/esm2022/lib/ec-components/cart-ec/cart-ec.component.mjs +21 -0
  51. package/esm2022/lib/ec-components/cart-ec/cart-item-ec/cart-item-ec.component.mjs +47 -0
  52. package/esm2022/lib/ec-components/cart-ec/index.mjs +3 -0
  53. package/esm2022/lib/ec-components/checkout-ec/checkout-ec.component.mjs +60 -0
  54. package/esm2022/lib/ec-components/checkout-ec/dataform-ec/dataform-ec.component.mjs +271 -0
  55. package/esm2022/lib/ec-components/checkout-ec/dataform-ec/input-ec/input-ec.component.mjs +51 -0
  56. package/esm2022/lib/ec-components/checkout-ec/detail-checkout-block-ec/detail-checkout-block-ec.component.mjs +45 -0
  57. package/esm2022/lib/ec-components/checkout-ec/payment-ec/payment-ec.component.mjs +92 -0
  58. package/esm2022/lib/ec-components/checkout-ec/payment-ec/payment-methods/bank-transfer-ec/bank-transfer-ec.component.mjs +30 -0
  59. package/esm2022/lib/ec-components/checkout-ec/payment-ec/payment-methods/index.mjs +4 -0
  60. package/esm2022/lib/ec-components/checkout-ec/payment-ec/payment-methods/mp-redirect-ec/mp-redirect-ec.component.mjs +119 -0
  61. package/esm2022/lib/ec-components/checkout-ec/payment-ec/payment-methods/offline-ec/offline-ec.component.mjs +32 -0
  62. package/esm2022/lib/ec-components/checkout-ec/shipment-ec/shipment-ec.component.mjs +96 -0
  63. package/esm2022/lib/ec-components/checkout-ec/step-container-ec/step-container-ec.component.mjs +35 -0
  64. package/esm2022/lib/ec-components/checkout-ec/success-ec/success-ec.component.mjs +55 -0
  65. package/esm2022/lib/ec-components/collection-ec/collection-ec.component.mjs +72 -0
  66. package/esm2022/lib/ec-components/coupon-ec/coupon-ec.component.mjs +29 -0
  67. package/esm2022/lib/ec-components/filters-ec/filters-ec.component.mjs +38 -0
  68. package/esm2022/lib/ec-components/filters-sort-ec/filters-sort-ec.component.mjs +36 -0
  69. package/esm2022/lib/ec-components/footer-ec/footer-ec.component.mjs +17 -0
  70. package/esm2022/lib/ec-components/header-ec/header-ec.component.mjs +18 -0
  71. package/esm2022/lib/ec-components/home-ec/home-ec.component.mjs +14 -0
  72. package/esm2022/lib/ec-components/index.mjs +19 -0
  73. package/esm2022/lib/ec-components/product-detail-ec/product-detail-ec.component.mjs +74 -0
  74. package/esm2022/lib/ec-components/product-ec/product-ec.component.mjs +51 -0
  75. package/esm2022/lib/ec-components/variants-ec/variants-ec.component.mjs +18 -0
  76. package/esm2022/lib/ec-components/widgets-ec/index.mjs +5 -0
  77. package/esm2022/lib/ec-components/widgets-ec/loading/index.mjs +4 -0
  78. package/esm2022/lib/ec-components/widgets-ec/loading/loading-full-ec/loading-full-ec.component.mjs +11 -0
  79. package/esm2022/lib/ec-components/widgets-ec/loading/loading-inline-ec/loading-inline-ec.component.mjs +16 -0
  80. package/esm2022/lib/ec-components/widgets-ec/loading/loading-section-ec/loading-section-ec.component.mjs +12 -0
  81. package/esm2022/lib/ec-components/widgets-ec/magnizoom-ec/magnizoom-ec.component.mjs +178 -0
  82. package/esm2022/lib/ec-components/widgets-ec/price-ec/price-ec.component.mjs +27 -0
  83. package/esm2022/lib/ec-components/widgets-ec/re-captcha-ec/re-captcha-ec.component.mjs +71 -0
  84. package/esm2022/lib/ec-guards/auth.guard.mjs +18 -0
  85. package/esm2022/lib/ec-guards/index.mjs +2 -0
  86. package/esm2022/lib/ec-pipe/ec-currency-symbol.pipe.mjs +98 -0
  87. package/esm2022/lib/ec-pipe/index.mjs +2 -0
  88. package/esm2022/lib/ec-services/addressing.service.mjs +185 -0
  89. package/esm2022/lib/ec-services/analytics/analytics.service.mjs +80 -0
  90. package/esm2022/lib/ec-services/analytics/doppler.service.mjs +47 -0
  91. package/esm2022/lib/ec-services/analytics/facebook-pixel.service.mjs +212 -0
  92. package/esm2022/lib/ec-services/analytics/google-analytics.service.mjs +283 -0
  93. package/esm2022/lib/ec-services/analytics/gtm.service.mjs +414 -0
  94. package/esm2022/lib/ec-services/analytics/index.mjs +7 -0
  95. package/esm2022/lib/ec-services/analytics/metricool-pixel.service.mjs +55 -0
  96. package/esm2022/lib/ec-services/auth.service.mjs +440 -0
  97. package/esm2022/lib/ec-services/auth.storage.service.mjs +54 -0
  98. package/esm2022/lib/ec-services/blocks-repository.service.mjs +64 -0
  99. package/esm2022/lib/ec-services/blocks.service.mjs +52 -0
  100. package/esm2022/lib/ec-services/cart.service.mjs +465 -0
  101. package/esm2022/lib/ec-services/channel.service.mjs +83 -0
  102. package/esm2022/lib/ec-services/checkout.service.mjs +180 -0
  103. package/esm2022/lib/ec-services/currency.service.mjs +177 -0
  104. package/esm2022/lib/ec-services/filters.service.mjs +134 -0
  105. package/esm2022/lib/ec-services/form.service.mjs +81 -0
  106. package/esm2022/lib/ec-services/index.mjs +27 -0
  107. package/esm2022/lib/ec-services/local-storage.service.mjs +58 -0
  108. package/esm2022/lib/ec-services/ngx-local-storage.service.mjs +66 -0
  109. package/esm2022/lib/ec-services/options.service.mjs +273 -0
  110. package/esm2022/lib/ec-services/order-utility.service.mjs +61 -0
  111. package/esm2022/lib/ec-services/orders.service.mjs +48 -0
  112. package/esm2022/lib/ec-services/pagination.service.mjs +163 -0
  113. package/esm2022/lib/ec-services/parameters.service.mjs +65 -0
  114. package/esm2022/lib/ec-services/payment.service.mjs +54 -0
  115. package/esm2022/lib/ec-services/product-detail.service.mjs +285 -0
  116. package/esm2022/lib/ec-services/products.service.mjs +148 -0
  117. package/esm2022/lib/ec-services/re-captcha.service.mjs +114 -0
  118. package/esm2022/lib/ec-services/shipment.service.mjs +158 -0
  119. package/esm2022/lib/ec-services/stores.service.mjs +27 -0
  120. package/esm2022/lib/ec-services/test.service.mjs +16 -0
  121. package/esm2022/lib/ec-services/toast.service.mjs +81 -0
  122. package/esm2022/lib/interceptors/auth.interceptor.mjs +35 -0
  123. package/esm2022/lib/interceptors/index.mjs +2 -0
  124. package/esm2022/lib/interfaces/analytics/event-key.mjs +2 -0
  125. package/esm2022/lib/interfaces/analytics/facebook-pixel-data.mjs +2 -0
  126. package/esm2022/lib/interfaces/analytics/gtm-config.mjs +2 -0
  127. package/esm2022/lib/interfaces/analytics/index.mjs +4 -0
  128. package/esm2022/lib/interfaces/blocks.mjs +2 -0
  129. package/esm2022/lib/interfaces/checkout.mjs +2 -0
  130. package/esm2022/lib/interfaces/connection.mjs +2 -0
  131. package/esm2022/lib/interfaces/coupon.mjs +2 -0
  132. package/esm2022/lib/interfaces/currency.mjs +2 -0
  133. package/esm2022/lib/interfaces/deserializable.mjs +2 -0
  134. package/esm2022/lib/interfaces/environment.mjs +2 -0
  135. package/esm2022/lib/interfaces/filter.mjs +2 -0
  136. package/esm2022/lib/interfaces/index.mjs +19 -0
  137. package/esm2022/lib/interfaces/options.mjs +2 -0
  138. package/esm2022/lib/interfaces/pagination.mjs +2 -0
  139. package/esm2022/lib/interfaces/parameter.mjs +2 -0
  140. package/esm2022/lib/interfaces/product.mjs +2 -0
  141. package/esm2022/lib/interfaces/step.mjs +2 -0
  142. package/esm2022/lib/interfaces/storage.mjs +2 -0
  143. package/esm2022/lib/interfaces/store.mjs +2 -0
  144. package/esm2022/lib/interfaces/types/index.mjs +2 -0
  145. package/esm2022/lib/interfaces/types/user.type.mjs +2 -0
  146. package/esm2022/lib/providers/index.mjs +2 -0
  147. package/esm2022/lib/providers/provideEnvironment.mjs +20 -0
  148. package/esm2022/lib/stores/currency.store.mjs +10 -0
  149. package/esm2022/lib/stores/index.mjs +2 -0
  150. package/esm2022/ng-easycommerce-v18.mjs +5 -0
  151. package/esm2022/public-api.mjs +20 -0
  152. package/fesm2022/ng-easycommerce-v18.mjs +8190 -0
  153. package/fesm2022/ng-easycommerce-v18.mjs.map +1 -0
  154. package/index.d.ts +5 -0
  155. package/lib/api/connection.service.d.ts +52 -0
  156. package/lib/api/index.d.ts +1 -0
  157. package/lib/classes/checkout/index.d.ts +1 -0
  158. package/lib/classes/checkout/steps.d.ts +15 -0
  159. package/lib/classes/filters/attributes-filter.d.ts +14 -0
  160. package/lib/classes/filters/category-filter.d.ts +14 -0
  161. package/lib/classes/filters/dynamics-filter.d.ts +13 -0
  162. package/lib/classes/filters/filter-factory.d.ts +5 -0
  163. package/lib/classes/filters/filter.d.ts +19 -0
  164. package/lib/classes/filters/index.d.ts +6 -0
  165. package/lib/classes/filters/sort-filter.d.ts +14 -0
  166. package/{projects/ng-easycommerce/src/lib/classes/index.ts → lib/classes/index.d.ts} +3 -3
  167. package/lib/classes/user.d.ts +50 -0
  168. package/lib/constants/api.constants.service.d.ts +54 -0
  169. package/lib/constants/core.constants.service.d.ts +109 -0
  170. package/lib/constants/index.d.ts +2 -0
  171. package/lib/ec-components/abstractions-components/block-ec.component.d.ts +62 -0
  172. package/lib/ec-components/abstractions-components/index.d.ts +2 -0
  173. package/lib/ec-components/abstractions-components/menu-ec.component.d.ts +67 -0
  174. package/lib/ec-components/account-ec/account-ec.component.d.ts +10 -0
  175. package/lib/ec-components/account-ec/index.d.ts +3 -0
  176. package/lib/ec-components/account-ec/order-ec/order-ec.component.d.ts +8 -0
  177. package/lib/ec-components/account-ec/orders-list-ec/orders-list-ec.component.d.ts +55 -0
  178. package/lib/ec-components/auth-ec/auth-ec.component.d.ts +5 -0
  179. package/lib/ec-components/auth-ec/confirm-account-ec/confirm-account-ec.component.d.ts +11 -0
  180. package/lib/ec-components/auth-ec/forgot-password-ec/forgot-password-ec.component.d.ts +27 -0
  181. package/{projects/ng-easycommerce/src/lib/ec-components/auth-ec/index.ts → lib/ec-components/auth-ec/index.d.ts} +6 -6
  182. package/lib/ec-components/auth-ec/login-form-ec/login-form-ec.component.d.ts +42 -0
  183. package/lib/ec-components/auth-ec/register-form-ec/register-form-ec.component.d.ts +39 -0
  184. package/lib/ec-components/auth-ec/register-wholesaler-form-ec/register-wholesaler-form-ec.component.d.ts +62 -0
  185. package/lib/ec-components/blocks-ec/block-banner-box-ec/block-banner-box-ec.component.d.ts +46 -0
  186. package/lib/ec-components/blocks-ec/block-banner-full-ec/block-banner-full-ec.component.d.ts +54 -0
  187. package/lib/ec-components/blocks-ec/block-form-contact-ec/block-form-contact-ec.component.d.ts +21 -0
  188. package/lib/ec-components/blocks-ec/block-html-ec/block-html-ec.component.d.ts +25 -0
  189. package/lib/ec-components/blocks-ec/block-newsletter-ec/block-newsletter-ec.component.d.ts +17 -0
  190. package/lib/ec-components/blocks-ec/block-products-ec/block-products-ec.component.d.ts +51 -0
  191. package/lib/ec-components/blocks-ec/blocks-ec.component.d.ts +59 -0
  192. package/{projects/ng-easycommerce/src/lib/ec-components/blocks-ec/index.ts → lib/ec-components/blocks-ec/index.d.ts} +4 -4
  193. package/lib/ec-components/breadcrumb-ec/breadcrumb-ec.component.d.ts +11 -0
  194. package/lib/ec-components/cart-ec/cart-ec.component.d.ts +12 -0
  195. package/lib/ec-components/cart-ec/cart-item-ec/cart-item-ec.component.d.ts +17 -0
  196. package/lib/ec-components/cart-ec/index.d.ts +2 -0
  197. package/lib/ec-components/checkout-ec/checkout-ec.component.d.ts +20 -0
  198. package/lib/ec-components/checkout-ec/dataform-ec/dataform-ec.component.d.ts +83 -0
  199. package/lib/ec-components/checkout-ec/dataform-ec/input-ec/input-ec.component.d.ts +14 -0
  200. package/lib/ec-components/checkout-ec/detail-checkout-block-ec/detail-checkout-block-ec.component.d.ts +11 -0
  201. package/lib/ec-components/checkout-ec/payment-ec/payment-ec.component.d.ts +37 -0
  202. package/lib/ec-components/checkout-ec/payment-ec/payment-methods/bank-transfer-ec/bank-transfer-ec.component.d.ts +11 -0
  203. 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
  204. package/lib/ec-components/checkout-ec/payment-ec/payment-methods/mp-redirect-ec/mp-redirect-ec.component.d.ts +30 -0
  205. package/lib/ec-components/checkout-ec/payment-ec/payment-methods/offline-ec/offline-ec.component.d.ts +11 -0
  206. package/lib/ec-components/checkout-ec/shipment-ec/shipment-ec.component.d.ts +30 -0
  207. package/lib/ec-components/checkout-ec/step-container-ec/step-container-ec.component.d.ts +11 -0
  208. package/lib/ec-components/checkout-ec/success-ec/success-ec.component.d.ts +30 -0
  209. package/lib/ec-components/collection-ec/collection-ec.component.d.ts +37 -0
  210. package/lib/ec-components/coupon-ec/coupon-ec.component.d.ts +12 -0
  211. package/lib/ec-components/filters-ec/filters-ec.component.d.ts +14 -0
  212. package/lib/ec-components/filters-sort-ec/filters-sort-ec.component.d.ts +14 -0
  213. package/lib/ec-components/footer-ec/footer-ec.component.d.ts +10 -0
  214. package/lib/ec-components/header-ec/header-ec.component.d.ts +12 -0
  215. package/lib/ec-components/home-ec/home-ec.component.d.ts +8 -0
  216. package/{projects/ng-easycommerce/src/lib/ec-components/index.ts → lib/ec-components/index.d.ts} +18 -17
  217. package/lib/ec-components/product-detail-ec/product-detail-ec.component.d.ts +35 -0
  218. package/lib/ec-components/product-ec/product-ec.component.d.ts +31 -0
  219. package/lib/ec-components/variants-ec/variants-ec.component.d.ts +8 -0
  220. package/{projects/ng-easycommerce/src/lib/ec-components/widgets-ec/index.ts → lib/ec-components/widgets-ec/index.d.ts} +4 -4
  221. package/{projects/ng-easycommerce/src/lib/ec-components/widgets-ec/loading/index.ts → lib/ec-components/widgets-ec/loading/index.d.ts} +3 -3
  222. package/lib/ec-components/widgets-ec/loading/loading-full-ec/loading-full-ec.component.d.ts +5 -0
  223. package/lib/ec-components/widgets-ec/loading/loading-inline-ec/loading-inline-ec.component.d.ts +6 -0
  224. package/lib/ec-components/widgets-ec/loading/loading-section-ec/loading-section-ec.component.d.ts +5 -0
  225. package/lib/ec-components/widgets-ec/magnizoom-ec/magnizoom-ec.component.d.ts +70 -0
  226. package/lib/ec-components/widgets-ec/price-ec/price-ec.component.d.ts +16 -0
  227. package/lib/ec-components/widgets-ec/re-captcha-ec/re-captcha-ec.component.d.ts +26 -0
  228. package/lib/ec-guards/auth.guard.d.ts +8 -0
  229. package/lib/ec-guards/index.d.ts +1 -0
  230. package/lib/ec-pipe/ec-currency-symbol.pipe.d.ts +54 -0
  231. package/lib/ec-pipe/index.d.ts +1 -0
  232. package/lib/ec-services/addressing.service.d.ts +233 -0
  233. package/lib/ec-services/analytics/analytics.service.d.ts +50 -0
  234. package/lib/ec-services/analytics/doppler.service.d.ts +26 -0
  235. package/lib/ec-services/analytics/facebook-pixel.service.d.ts +102 -0
  236. package/lib/ec-services/analytics/google-analytics.service.d.ts +118 -0
  237. package/lib/ec-services/analytics/gtm.service.d.ts +153 -0
  238. package/{projects/ng-easycommerce/src/lib/ec-services/analytics/index.ts → lib/ec-services/analytics/index.d.ts} +6 -6
  239. package/lib/ec-services/analytics/metricool-pixel.service.d.ts +26 -0
  240. package/lib/ec-services/auth.service.d.ts +229 -0
  241. package/lib/ec-services/auth.storage.service.d.ts +24 -0
  242. package/lib/ec-services/blocks-repository.service.d.ts +40 -0
  243. package/lib/ec-services/blocks.service.d.ts +38 -0
  244. package/lib/ec-services/cart.service.d.ts +211 -0
  245. package/lib/ec-services/channel.service.d.ts +59 -0
  246. package/lib/ec-services/checkout.service.d.ts +49 -0
  247. package/lib/ec-services/currency.service.d.ts +108 -0
  248. package/lib/ec-services/filters.service.d.ts +56 -0
  249. package/lib/ec-services/form.service.d.ts +50 -0
  250. package/{projects/ng-easycommerce/src/lib/ec-services/index.ts → lib/ec-services/index.d.ts} +26 -24
  251. package/lib/ec-services/local-storage.service.d.ts +40 -0
  252. package/lib/ec-services/ngx-local-storage.service.d.ts +42 -0
  253. package/lib/ec-services/options.service.d.ts +121 -0
  254. package/lib/ec-services/order-utility.service.d.ts +15 -0
  255. package/lib/ec-services/orders.service.d.ts +14 -0
  256. package/lib/ec-services/pagination.service.d.ts +89 -0
  257. package/lib/ec-services/parameters.service.d.ts +41 -0
  258. package/lib/ec-services/payment.service.d.ts +22 -0
  259. package/lib/ec-services/product-detail.service.d.ts +97 -0
  260. package/lib/ec-services/products.service.d.ts +48 -0
  261. package/lib/ec-services/re-captcha.service.d.ts +65 -0
  262. package/lib/ec-services/shipment.service.d.ts +49 -0
  263. package/lib/ec-services/stores.service.d.ts +12 -0
  264. package/lib/ec-services/test.service.d.ts +6 -0
  265. package/lib/ec-services/toast.service.d.ts +59 -0
  266. package/lib/interceptors/auth.interceptor.d.ts +2 -0
  267. package/lib/interceptors/index.d.ts +1 -0
  268. package/lib/interfaces/analytics/event-key.d.ts +1 -0
  269. package/lib/interfaces/analytics/facebook-pixel-data.d.ts +5 -0
  270. package/{projects/ng-easycommerce/src/lib/interfaces/analytics/gtm-config.ts → lib/interfaces/analytics/gtm-config.d.ts} +6 -6
  271. package/{projects/ng-easycommerce/src/lib/interfaces/analytics/index.ts → lib/interfaces/analytics/index.d.ts} +3 -3
  272. package/lib/interfaces/blocks.d.ts +41 -0
  273. package/{projects/ng-easycommerce/src/lib/interfaces/checkout.ts → lib/interfaces/checkout.d.ts} +12 -14
  274. package/{projects/ng-easycommerce/src/lib/interfaces/connection.ts → lib/interfaces/connection.d.ts} +7 -8
  275. package/lib/interfaces/coupon.d.ts +5 -0
  276. package/lib/interfaces/currency.d.ts +9 -0
  277. package/{projects/ng-easycommerce/src/lib/interfaces/deserializable.ts → lib/interfaces/deserializable.d.ts} +3 -3
  278. package/{projects/ng-easycommerce/src/lib/interfaces/environment.ts → lib/interfaces/environment.d.ts} +6 -6
  279. package/{projects/ng-easycommerce/src/lib/interfaces/filter.ts → lib/interfaces/filter.d.ts} +38 -59
  280. package/{projects/ng-easycommerce/src/lib/interfaces/index.ts → lib/interfaces/index.d.ts} +16 -18
  281. package/lib/interfaces/options.d.ts +26 -0
  282. package/lib/interfaces/pagination.d.ts +24 -0
  283. package/lib/interfaces/parameter.d.ts +14 -0
  284. package/{projects/ng-easycommerce/src/lib/interfaces/product.ts → lib/interfaces/product.d.ts} +73 -81
  285. package/lib/interfaces/step.d.ts +15 -0
  286. package/lib/interfaces/storage.d.ts +7 -0
  287. package/{projects/ng-easycommerce/src/lib/interfaces/store.ts → lib/interfaces/store.d.ts} +17 -17
  288. package/lib/interfaces/types/index.d.ts +1 -0
  289. package/lib/interfaces/types/user.type.d.ts +5 -0
  290. package/lib/providers/index.d.ts +1 -0
  291. package/lib/providers/provideEnvironment.d.ts +13 -0
  292. package/lib/stores/currency.store.d.ts +7 -0
  293. package/lib/stores/index.d.ts +1 -0
  294. package/package.json +29 -58
  295. package/{projects/ng-easycommerce/src/public-api.ts → public-api.d.ts} +8 -24
  296. package/.editorconfig +0 -16
  297. package/angular.json +0 -48
  298. package/projects/ng-easycommerce/README.md +0 -24
  299. package/projects/ng-easycommerce/ng-package.json +0 -7
  300. package/projects/ng-easycommerce/package.json +0 -12
  301. package/projects/ng-easycommerce/src/lib/api/connection.service.ts +0 -79
  302. package/projects/ng-easycommerce/src/lib/api/index.ts +0 -1
  303. package/projects/ng-easycommerce/src/lib/classes/checkout/index.ts +0 -1
  304. package/projects/ng-easycommerce/src/lib/classes/checkout/steps.ts +0 -37
  305. package/projects/ng-easycommerce/src/lib/classes/filters/attributes-filter.ts +0 -74
  306. package/projects/ng-easycommerce/src/lib/classes/filters/category-filter.ts +0 -57
  307. package/projects/ng-easycommerce/src/lib/classes/filters/dynamics-filter.ts +0 -57
  308. package/projects/ng-easycommerce/src/lib/classes/filters/filter-factory.ts +0 -23
  309. package/projects/ng-easycommerce/src/lib/classes/filters/filter.ts +0 -89
  310. package/projects/ng-easycommerce/src/lib/classes/filters/index.ts +0 -6
  311. package/projects/ng-easycommerce/src/lib/classes/filters/sort-filter.ts +0 -93
  312. package/projects/ng-easycommerce/src/lib/classes/user.ts +0 -68
  313. package/projects/ng-easycommerce/src/lib/constants/api.constants.service.ts +0 -69
  314. package/projects/ng-easycommerce/src/lib/constants/core.constants.service.ts +0 -210
  315. package/projects/ng-easycommerce/src/lib/constants/index.ts +0 -2
  316. package/projects/ng-easycommerce/src/lib/ec-components/abstractions-components/block-ec.component.ts +0 -107
  317. package/projects/ng-easycommerce/src/lib/ec-components/abstractions-components/index.ts +0 -2
  318. package/projects/ng-easycommerce/src/lib/ec-components/abstractions-components/menu-ec.component.ts +0 -102
  319. package/projects/ng-easycommerce/src/lib/ec-components/auth-ec/auth-ec.component.html +0 -10
  320. package/projects/ng-easycommerce/src/lib/ec-components/auth-ec/auth-ec.component.scss +0 -0
  321. package/projects/ng-easycommerce/src/lib/ec-components/auth-ec/auth-ec.component.ts +0 -13
  322. package/projects/ng-easycommerce/src/lib/ec-components/auth-ec/confirm-account-ec/confirm-account-ec.component.html +0 -19
  323. package/projects/ng-easycommerce/src/lib/ec-components/auth-ec/confirm-account-ec/confirm-account-ec.component.scss +0 -0
  324. package/projects/ng-easycommerce/src/lib/ec-components/auth-ec/confirm-account-ec/confirm-account-ec.component.ts +0 -34
  325. package/projects/ng-easycommerce/src/lib/ec-components/auth-ec/forgot-password-ec/forgot-password-ec.component.html +0 -31
  326. package/projects/ng-easycommerce/src/lib/ec-components/auth-ec/forgot-password-ec/forgot-password-ec.component.scss +0 -0
  327. package/projects/ng-easycommerce/src/lib/ec-components/auth-ec/forgot-password-ec/forgot-password-ec.component.ts +0 -55
  328. package/projects/ng-easycommerce/src/lib/ec-components/auth-ec/login-form-ec/login-form-ec.component.html +0 -30
  329. package/projects/ng-easycommerce/src/lib/ec-components/auth-ec/login-form-ec/login-form-ec.component.scss +0 -0
  330. package/projects/ng-easycommerce/src/lib/ec-components/auth-ec/login-form-ec/login-form-ec.component.ts +0 -92
  331. package/projects/ng-easycommerce/src/lib/ec-components/auth-ec/register-form-ec/register-form-ec.component.html +0 -55
  332. package/projects/ng-easycommerce/src/lib/ec-components/auth-ec/register-form-ec/register-form-ec.component.scss +0 -0
  333. package/projects/ng-easycommerce/src/lib/ec-components/auth-ec/register-form-ec/register-form-ec.component.ts +0 -102
  334. package/projects/ng-easycommerce/src/lib/ec-components/auth-ec/register-wholesaler-form-ec/register-wholesaler-form-ec.component.html +0 -233
  335. package/projects/ng-easycommerce/src/lib/ec-components/auth-ec/register-wholesaler-form-ec/register-wholesaler-form-ec.component.scss +0 -0
  336. package/projects/ng-easycommerce/src/lib/ec-components/auth-ec/register-wholesaler-form-ec/register-wholesaler-form-ec.component.ts +0 -149
  337. package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/block-banner-box-ec/block-banner-box-ec.component.html +0 -113
  338. package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/block-banner-box-ec/block-banner-box-ec.component.scss +0 -12
  339. package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/block-banner-box-ec/block-banner-box-ec.component.ts +0 -100
  340. package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/block-banner-full-ec/block-banner-full-ec.component.html +0 -111
  341. package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/block-banner-full-ec/block-banner-full-ec.component.scss +0 -0
  342. package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/block-banner-full-ec/block-banner-full-ec.component.ts +0 -77
  343. package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/block-form-contact-ec/block-form-contact-ec.component.html +0 -62
  344. package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/block-form-contact-ec/block-form-contact-ec.component.scss +0 -0
  345. package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/block-form-contact-ec/block-form-contact-ec.component.ts +0 -89
  346. package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/block-html-ec/block-html-ec.component.html +0 -1
  347. package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/block-html-ec/block-html-ec.component.scss +0 -0
  348. package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/block-html-ec/block-html-ec.component.ts +0 -33
  349. package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/block-newsletter-ec/block-newsletter-ec.component.html +0 -1
  350. package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/block-newsletter-ec/block-newsletter-ec.component.scss +0 -0
  351. package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/block-newsletter-ec/block-newsletter-ec.component.ts +0 -81
  352. package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/block-products-ec/block-products-ec.component.html +0 -40
  353. package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/block-products-ec/block-products-ec.component.scss +0 -0
  354. package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/block-products-ec/block-products-ec.component.ts +0 -97
  355. package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/blocks-ec.component.html +0 -41
  356. package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/blocks-ec.component.scss +0 -0
  357. package/projects/ng-easycommerce/src/lib/ec-components/blocks-ec/blocks-ec.component.ts +0 -86
  358. package/projects/ng-easycommerce/src/lib/ec-components/breadcrumb-ec/breadcrumb-ec.component.html +0 -20
  359. package/projects/ng-easycommerce/src/lib/ec-components/breadcrumb-ec/breadcrumb-ec.component.scss +0 -0
  360. package/projects/ng-easycommerce/src/lib/ec-components/breadcrumb-ec/breadcrumb-ec.component.ts +0 -30
  361. package/projects/ng-easycommerce/src/lib/ec-components/cart-ec/cart-ec.component.html +0 -1
  362. package/projects/ng-easycommerce/src/lib/ec-components/cart-ec/cart-ec.component.scss +0 -0
  363. package/projects/ng-easycommerce/src/lib/ec-components/cart-ec/cart-ec.component.ts +0 -24
  364. package/projects/ng-easycommerce/src/lib/ec-components/cart-ec/cart-item-ec/cart-item-ec.component.html +0 -1
  365. package/projects/ng-easycommerce/src/lib/ec-components/cart-ec/cart-item-ec/cart-item-ec.component.scss +0 -0
  366. package/projects/ng-easycommerce/src/lib/ec-components/cart-ec/cart-item-ec/cart-item-ec.component.ts +0 -51
  367. package/projects/ng-easycommerce/src/lib/ec-components/cart-ec/index.ts +0 -2
  368. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/checkout-ec.component.html +0 -56
  369. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/checkout-ec.component.scss +0 -38
  370. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/checkout-ec.component.ts +0 -67
  371. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/dataform-ec/dataform-ec.component.html +0 -836
  372. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/dataform-ec/dataform-ec.component.scss +0 -0
  373. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/dataform-ec/dataform-ec.component.ts +0 -302
  374. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/dataform-ec/input-ec/input-ec.component.html +0 -32
  375. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/dataform-ec/input-ec/input-ec.component.scss +0 -0
  376. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/dataform-ec/input-ec/input-ec.component.ts +0 -52
  377. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/detail-checkout-block-ec/detail-checkout-block-ec.component.html +0 -12
  378. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/detail-checkout-block-ec/detail-checkout-block-ec.component.scss +0 -0
  379. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/detail-checkout-block-ec/detail-checkout-block-ec.component.ts +0 -48
  380. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/payment-ec/payment-ec.component.html +0 -195
  381. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/payment-ec/payment-ec.component.scss +0 -0
  382. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/payment-ec/payment-ec.component.ts +0 -103
  383. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/payment-ec/payment-methods/bank-transfer-ec/bank-transfer-ec.component.html +0 -28
  384. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/payment-ec/payment-methods/bank-transfer-ec/bank-transfer-ec.component.scss +0 -0
  385. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/payment-ec/payment-methods/bank-transfer-ec/bank-transfer-ec.component.ts +0 -26
  386. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/payment-ec/payment-methods/mp-redirect-ec/mp-redirect-ec.component.html +0 -33
  387. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/payment-ec/payment-methods/mp-redirect-ec/mp-redirect-ec.component.scss +0 -0
  388. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/payment-ec/payment-methods/mp-redirect-ec/mp-redirect-ec.component.ts +0 -116
  389. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/payment-ec/payment-methods/offline-ec/offline-ec.component.html +0 -13
  390. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/payment-ec/payment-methods/offline-ec/offline-ec.component.scss +0 -0
  391. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/payment-ec/payment-methods/offline-ec/offline-ec.component.ts +0 -26
  392. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/shipment-ec/shipment-ec.component.html +0 -111
  393. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/shipment-ec/shipment-ec.component.scss +0 -0
  394. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/shipment-ec/shipment-ec.component.ts +0 -111
  395. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/step-container-ec/step-container-ec.component.html +0 -33
  396. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/step-container-ec/step-container-ec.component.scss +0 -0
  397. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/step-container-ec/step-container-ec.component.ts +0 -39
  398. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/success-ec/success-ec.component.html +0 -59
  399. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/success-ec/success-ec.component.scss +0 -0
  400. package/projects/ng-easycommerce/src/lib/ec-components/checkout-ec/success-ec/success-ec.component.ts +0 -65
  401. package/projects/ng-easycommerce/src/lib/ec-components/collection-ec/collection-ec.component.html +0 -16
  402. package/projects/ng-easycommerce/src/lib/ec-components/collection-ec/collection-ec.component.scss +0 -0
  403. package/projects/ng-easycommerce/src/lib/ec-components/collection-ec/collection-ec.component.ts +0 -83
  404. package/projects/ng-easycommerce/src/lib/ec-components/coupon-ec/coupon-ec.component.html +0 -1
  405. package/projects/ng-easycommerce/src/lib/ec-components/coupon-ec/coupon-ec.component.scss +0 -0
  406. package/projects/ng-easycommerce/src/lib/ec-components/coupon-ec/coupon-ec.component.ts +0 -32
  407. package/projects/ng-easycommerce/src/lib/ec-components/filters-ec/filters-ec.component.html +0 -1
  408. package/projects/ng-easycommerce/src/lib/ec-components/filters-ec/filters-ec.component.scss +0 -0
  409. package/projects/ng-easycommerce/src/lib/ec-components/filters-ec/filters-ec.component.ts +0 -45
  410. package/projects/ng-easycommerce/src/lib/ec-components/filters-sort-ec/filters-sort-ec.component.html +0 -1
  411. package/projects/ng-easycommerce/src/lib/ec-components/filters-sort-ec/filters-sort-ec.component.scss +0 -0
  412. package/projects/ng-easycommerce/src/lib/ec-components/filters-sort-ec/filters-sort-ec.component.ts +0 -49
  413. package/projects/ng-easycommerce/src/lib/ec-components/footer-ec/footer-ec.component.html +0 -1
  414. package/projects/ng-easycommerce/src/lib/ec-components/footer-ec/footer-ec.component.scss +0 -0
  415. package/projects/ng-easycommerce/src/lib/ec-components/footer-ec/footer-ec.component.spec.ts +0 -23
  416. package/projects/ng-easycommerce/src/lib/ec-components/footer-ec/footer-ec.component.ts +0 -18
  417. package/projects/ng-easycommerce/src/lib/ec-components/header-ec/header-ec.component.html +0 -1
  418. package/projects/ng-easycommerce/src/lib/ec-components/header-ec/header-ec.component.scss +0 -0
  419. package/projects/ng-easycommerce/src/lib/ec-components/header-ec/header-ec.component.spec.ts +0 -23
  420. package/projects/ng-easycommerce/src/lib/ec-components/header-ec/header-ec.component.ts +0 -22
  421. package/projects/ng-easycommerce/src/lib/ec-components/home-ec/home-ec.component.html +0 -1
  422. package/projects/ng-easycommerce/src/lib/ec-components/home-ec/home-ec.component.scss +0 -0
  423. package/projects/ng-easycommerce/src/lib/ec-components/home-ec/home-ec.component.spec.ts +0 -23
  424. package/projects/ng-easycommerce/src/lib/ec-components/home-ec/home-ec.component.ts +0 -16
  425. package/projects/ng-easycommerce/src/lib/ec-components/product-detail-ec/product-detail-ec.component.html +0 -0
  426. package/projects/ng-easycommerce/src/lib/ec-components/product-detail-ec/product-detail-ec.component.scss +0 -0
  427. package/projects/ng-easycommerce/src/lib/ec-components/product-detail-ec/product-detail-ec.component.ts +0 -82
  428. package/projects/ng-easycommerce/src/lib/ec-components/product-ec/product-ec.component.html +0 -31
  429. package/projects/ng-easycommerce/src/lib/ec-components/product-ec/product-ec.component.scss +0 -0
  430. package/projects/ng-easycommerce/src/lib/ec-components/product-ec/product-ec.component.ts +0 -46
  431. package/projects/ng-easycommerce/src/lib/ec-components/variants-ec/variants-ec.component.html +0 -65
  432. package/projects/ng-easycommerce/src/lib/ec-components/variants-ec/variants-ec.component.scss +0 -8
  433. package/projects/ng-easycommerce/src/lib/ec-components/variants-ec/variants-ec.component.ts +0 -20
  434. package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/loading/loading-full-ec/loading-full-ec.component.html +0 -7
  435. package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/loading/loading-full-ec/loading-full-ec.component.scss +0 -0
  436. package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/loading/loading-full-ec/loading-full-ec.component.ts +0 -13
  437. package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/loading/loading-inline-ec/loading-inline-ec.component.html +0 -5
  438. package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/loading/loading-inline-ec/loading-inline-ec.component.scss +0 -0
  439. package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/loading/loading-inline-ec/loading-inline-ec.component.ts +0 -13
  440. package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/loading/loading-section-ec/loading-section-ec.component.html +0 -3
  441. package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/loading/loading-section-ec/loading-section-ec.component.scss +0 -0
  442. package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/loading/loading-section-ec/loading-section-ec.component.ts +0 -13
  443. package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/magnizoom-ec/magnizoom-ec.component.html +0 -11
  444. package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/magnizoom-ec/magnizoom-ec.component.scss +0 -0
  445. package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/magnizoom-ec/magnizoom-ec.component.ts +0 -177
  446. package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/price-ec/price-ec.component.html +0 -47
  447. package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/price-ec/price-ec.component.scss +0 -0
  448. package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/price-ec/price-ec.component.ts +0 -22
  449. package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/re-captcha-ec/re-captcha-ec.component.html +0 -6
  450. package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/re-captcha-ec/re-captcha-ec.component.scss +0 -0
  451. package/projects/ng-easycommerce/src/lib/ec-components/widgets-ec/re-captcha-ec/re-captcha-ec.component.ts +0 -70
  452. package/projects/ng-easycommerce/src/lib/ec-guards/auth.guard.ts +0 -19
  453. package/projects/ng-easycommerce/src/lib/ec-guards/index.ts +0 -1
  454. package/projects/ng-easycommerce/src/lib/ec-pipe/ec-currency-symbol.pipe.ts +0 -99
  455. package/projects/ng-easycommerce/src/lib/ec-pipe/index.ts +0 -1
  456. package/projects/ng-easycommerce/src/lib/ec-services/addressing.service.ts +0 -199
  457. package/projects/ng-easycommerce/src/lib/ec-services/analytics/analytics.service.ts +0 -76
  458. package/projects/ng-easycommerce/src/lib/ec-services/analytics/doppler.service.ts +0 -38
  459. package/projects/ng-easycommerce/src/lib/ec-services/analytics/facebook-pixel.service.ts +0 -214
  460. package/projects/ng-easycommerce/src/lib/ec-services/analytics/google-analytics.service.ts +0 -284
  461. package/projects/ng-easycommerce/src/lib/ec-services/analytics/gtm.service.ts +0 -413
  462. package/projects/ng-easycommerce/src/lib/ec-services/analytics/metricool-pixel.service.ts +0 -46
  463. package/projects/ng-easycommerce/src/lib/ec-services/auth.service.ts +0 -438
  464. package/projects/ng-easycommerce/src/lib/ec-services/auth.storage.service.ts +0 -54
  465. package/projects/ng-easycommerce/src/lib/ec-services/blocks-repository.service.ts +0 -67
  466. package/projects/ng-easycommerce/src/lib/ec-services/blocks.service.ts +0 -48
  467. package/projects/ng-easycommerce/src/lib/ec-services/cart.service.ts +0 -492
  468. package/projects/ng-easycommerce/src/lib/ec-services/channel.service.ts +0 -81
  469. package/projects/ng-easycommerce/src/lib/ec-services/checkout.service.ts +0 -196
  470. package/projects/ng-easycommerce/src/lib/ec-services/currency.service.ts +0 -179
  471. package/projects/ng-easycommerce/src/lib/ec-services/filters.service.ts +0 -133
  472. package/projects/ng-easycommerce/src/lib/ec-services/form.service.ts +0 -82
  473. package/projects/ng-easycommerce/src/lib/ec-services/local-storage.service.ts +0 -54
  474. package/projects/ng-easycommerce/src/lib/ec-services/ngx-local-storage.service.ts +0 -66
  475. package/projects/ng-easycommerce/src/lib/ec-services/options.service.ts +0 -274
  476. package/projects/ng-easycommerce/src/lib/ec-services/order-utility.service.ts +0 -52
  477. package/projects/ng-easycommerce/src/lib/ec-services/pagination.service.ts +0 -172
  478. package/projects/ng-easycommerce/src/lib/ec-services/parameters.service.ts +0 -67
  479. package/projects/ng-easycommerce/src/lib/ec-services/payment.service.ts +0 -63
  480. package/projects/ng-easycommerce/src/lib/ec-services/product-detail.service.ts +0 -288
  481. package/projects/ng-easycommerce/src/lib/ec-services/products.service.ts +0 -162
  482. package/projects/ng-easycommerce/src/lib/ec-services/re-captcha.service.ts +0 -126
  483. package/projects/ng-easycommerce/src/lib/ec-services/shipment.service.ts +0 -174
  484. package/projects/ng-easycommerce/src/lib/ec-services/stores.service.ts +0 -27
  485. package/projects/ng-easycommerce/src/lib/ec-services/toast.service.ts +0 -84
  486. package/projects/ng-easycommerce/src/lib/interceptors/auth.interceptor.ts +0 -43
  487. package/projects/ng-easycommerce/src/lib/interceptors/index.ts +0 -1
  488. package/projects/ng-easycommerce/src/lib/interfaces/analytics/event-key.ts +0 -14
  489. package/projects/ng-easycommerce/src/lib/interfaces/analytics/facebook-pixel-data.ts +0 -5
  490. package/projects/ng-easycommerce/src/lib/interfaces/blocks.ts +0 -56
  491. package/projects/ng-easycommerce/src/lib/interfaces/coupon.ts +0 -5
  492. package/projects/ng-easycommerce/src/lib/interfaces/currency.ts +0 -10
  493. package/projects/ng-easycommerce/src/lib/interfaces/options.ts +0 -28
  494. package/projects/ng-easycommerce/src/lib/interfaces/pagination.ts +0 -27
  495. package/projects/ng-easycommerce/src/lib/interfaces/parameter.ts +0 -15
  496. package/projects/ng-easycommerce/src/lib/interfaces/step.ts +0 -19
  497. package/projects/ng-easycommerce/src/lib/interfaces/storage.ts +0 -7
  498. package/projects/ng-easycommerce/src/lib/interfaces/types/index.ts +0 -1
  499. package/projects/ng-easycommerce/src/lib/interfaces/types/user.type.ts +0 -5
  500. package/projects/ng-easycommerce/src/lib/providers/index.ts +0 -1
  501. package/projects/ng-easycommerce/src/lib/providers/provideEnvironment.ts +0 -24
  502. package/projects/ng-easycommerce/src/lib/stores/currency.store.ts +0 -20
  503. package/projects/ng-easycommerce/src/lib/stores/index.ts +0 -1
  504. package/projects/ng-easycommerce/tsconfig.lib.json +0 -15
  505. package/projects/ng-easycommerce/tsconfig.lib.prod.json +0 -11
  506. package/projects/ng-easycommerce/tsconfig.spec.json +0 -15
  507. package/tsconfig.doc.json +0 -4
  508. package/tsconfig.json +0 -37
@@ -0,0 +1,148 @@
1
+ import { inject, Injectable, signal } from '@angular/core';
2
+ import { BehaviorSubject } from 'rxjs';
3
+ import { ConnectionService } from '../api';
4
+ import { ApiConstantsService, CoreConstantsService } from '../constants';
5
+ import { OptionsService } from './options.service';
6
+ import { PaginationService } from './pagination.service';
7
+ import { FiltersService } from './filters.service';
8
+ import * as i0 from "@angular/core";
9
+ export class ProductsService {
10
+ _connection = inject(ConnectionService);
11
+ _apiConsts = inject(ApiConstantsService);
12
+ _optionsService = inject(OptionsService);
13
+ _paginationService = inject(PaginationService);
14
+ _consts = inject(CoreConstantsService);
15
+ _productsSubject = new BehaviorSubject([]);
16
+ products$ = this._productsSubject.asObservable();
17
+ _filtersService = inject(FiltersService);
18
+ searchValue = signal('');
19
+ constructor() {
20
+ this._paginationService.reset$.subscribe(res => {
21
+ this._productsSubject.next([]);
22
+ });
23
+ this._paginationService.paginationData$.subscribe(products => {
24
+ const productsWithUniqueVariant = this._consts.getProductWithUniqueVariant();
25
+ if (productsWithUniqueVariant)
26
+ products = this.getProductsWithUniqueVariant(products, this.getObjectWithVariant());
27
+ const currentProducts = this._productsSubject.value;
28
+ this._productsSubject.next([...currentProducts, ...products]);
29
+ });
30
+ }
31
+ //API URL
32
+ _shopApiUrl = this._apiConsts.SHOP_API_URL;
33
+ productByCodeApi(code, variant) { return this._shopApiUrl + this._apiConsts.CHANNEL + '/products/by-code/' + (variant ? 'variant/' : '') + code + '?locale=' + this._apiConsts.LOCALE; }
34
+ /**
35
+ * Setea los filtros para obtener los productos.
36
+ * @param paginationSettings
37
+ * @param searchValue
38
+ */
39
+ getProductsForFilter(paginationSettings, searchValue) {
40
+ searchValue ? this.searchValue.set(searchValue) : this.searchValue.set('');
41
+ paginationSettings && this._filtersService.setFilters(paginationSettings);
42
+ }
43
+ /**
44
+ * Actualiza los productos con los de la siguiente pagina.
45
+ */
46
+ updateProducts() {
47
+ if (!this._paginationService.getWaiting()) {
48
+ this._paginationService.getNext();
49
+ }
50
+ }
51
+ /**
52
+ * Devuelve el producto por codigo.
53
+ * @param code Codigo del producto
54
+ * @param variant Para indicar si es variante o no.
55
+ * @returns
56
+ */
57
+ getProductByCode(code, variant) {
58
+ return this._connection.get(this.productByCodeApi(code, variant));
59
+ }
60
+ /**
61
+ * Recibe una lista de productos y retorna los mismos productos tantas veces como variantes tenga.
62
+ * cada producto retornado tendrá una única variante.
63
+ * @param products Array. Lista de productos.
64
+ * @param withOption 'type' tipo de opción, code: código de la opción. 'defaultFirstOption': en caso de que no se pueda desdoblar por la opción indicada si el valor es verdadero se intentara desdoblar por la primera opción asociada al producto.
65
+ * 'checkIfStock': en caso de que esta valor sea verdadero se realiza un control de que la variantes cuenten con stock para ser un producto desdoblado por la variante, si el valor es falso no se realiza dicho control y el producto se desdoblara con stock en 0.
66
+ * @returns arreglo con los productos desdoblados por la opción solicitada.
67
+ * (opción por defecto que se intenta hacer el desdoblamiento 'color', o bien si en le parámetro withOption el atributo 'defaultFirstOption' es verdadero se desdobla por la primera opción asociada al producto)
68
+ */
69
+ getProductsWithUniqueVariant = (products, withOption = { type: 'color', code: 'color', defaultFirstOption: false, checkIfStock: true }) => {
70
+ !withOption['code'] && withOption['type'] && (withOption['code'] = withOption['type']) || !withOption['code'] && (withOption['code'] = 'color');
71
+ !withOption['type'] && withOption['code'] && (withOption['type'] = withOption['code']) || !withOption['type'] && (withOption['type'] = 'color');
72
+ !withOption.hasOwnProperty('defaultFirstOption') && (withOption['defaultFirstOption'] = false);
73
+ !withOption.hasOwnProperty('checkIfStock') && (withOption['checkIfStock'] = true);
74
+ let productsUniqueVariant = [];
75
+ products.forEach((product) => {
76
+ let variants = [...product?.variants];
77
+ let option = product.options.find((opt) => opt.type.toLowerCase() === withOption.type?.toLowerCase());
78
+ if (option) {
79
+ option.values.forEach((optionValue) => {
80
+ let modified_product = JSON.parse(JSON.stringify(product));
81
+ modified_product.options.find((option) => option.type.toLowerCase() == withOption.type?.toLowerCase()).values = [{ code: optionValue.code, name: optionValue.name }];
82
+ //busco una variante con ese code para asignarle la lista de imagenes
83
+ let variantAux = variants.find(variant => ((withOption.checkIfStock && variant.stock > 0) || withOption.checkIfStock == false)
84
+ && variant.options.length
85
+ && variant.options.some((op) => (op.hasOwnProperty(withOption.code?.toLowerCase()) || op.hasOwnProperty(withOption.code?.toUpperCase()))
86
+ && (op[`${withOption.code?.toLowerCase()}`] || op[`${withOption.code?.toUpperCase()}`]) === optionValue.code));
87
+ //console.log("---",variantAux);
88
+ variantAux && productsUniqueVariant.push(this.productWithVariantValues(modified_product, variantAux, optionValue));
89
+ });
90
+ }
91
+ else {
92
+ /**
93
+ * se modifica el caso para cuando se toma el primer `option` del producto para
94
+ * armar la lista de productos con variantes.
95
+ */
96
+ if (withOption.defaultFirstOption && product.options?.length) {
97
+ let firstOptions = product.options[0];
98
+ product.options[0].values.forEach((optionValue) => {
99
+ let modified_product = JSON.parse(JSON.stringify(product));
100
+ modified_product.options.find((option) => option.type == firstOptions.type).values = [{ code: optionValue.code, name: optionValue.name }];
101
+ let variantAux = variants.find(variant => {
102
+ return variant.options.find((elem) => elem[firstOptions.code] == optionValue.code);
103
+ });
104
+ if (variantAux && variantAux.images.length == 0) {
105
+ variantAux.images = product.picturesdefault;
106
+ }
107
+ if (withOption.checkIfStock) {
108
+ (variantAux && variantAux.stock > 0) ? productsUniqueVariant.push(this.productWithVariantValues(modified_product, variantAux, optionValue)) : null;
109
+ }
110
+ else {
111
+ variantAux && productsUniqueVariant.push(this.productWithVariantValues(modified_product, variantAux, optionValue));
112
+ }
113
+ });
114
+ }
115
+ else {
116
+ productsUniqueVariant.push(product);
117
+ }
118
+ }
119
+ });
120
+ return productsUniqueVariant.length > 0 ? productsUniqueVariant : products;
121
+ };
122
+ productWithVariantValues = (product, variant, optionValue) => {
123
+ product.picturesdefault = [...variant.images];
124
+ product.variant_id = variant.code; //lo dejo aca hasta asegurarnos de que no se estaba usando en otra parte.
125
+ product.stock = variant.stock || 0; //lo dejo aca hasta asegurarnos de que no se estaba usando en otra parte.
126
+ product.price = variant.price.toString() || '0';
127
+ product.currentOption = {
128
+ ...optionValue,
129
+ productCode: product.id,
130
+ variantCode: variant.code,
131
+ stock: variant.stock || 0,
132
+ finalPrice: variant.saleprice || variant.price || 0,
133
+ };
134
+ return product;
135
+ };
136
+ getObjectWithVariant = () => {
137
+ return this._consts.getParamsProductsWithUniqueVariant();
138
+ };
139
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ProductsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
140
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ProductsService, providedIn: 'root' });
141
+ }
142
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ProductsService, decorators: [{
143
+ type: Injectable,
144
+ args: [{
145
+ providedIn: 'root'
146
+ }]
147
+ }], ctorParameters: () => [] });
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVhc3ljb21tZXJjZS12MTgvc3JjL2xpYi9lYy1zZXJ2aWNlcy9wcm9kdWN0cy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBdUIsTUFBTSxFQUFFLFVBQVUsRUFBeUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxlQUFlLEVBQTBELE1BQU0sTUFBTSxDQUFDO0FBRS9GLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUMzQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDekUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXpELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFLbkQsTUFBTSxPQUFPLGVBQWU7SUFDaEIsV0FBVyxHQUFzQixNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUMzRCxVQUFVLEdBQXdCLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQzlELGVBQWUsR0FBbUIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3pELGtCQUFrQixHQUFzQixNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNsRSxPQUFPLEdBQXlCLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBRTdELGdCQUFnQixHQUErQixJQUFJLGVBQWUsQ0FBWSxFQUFFLENBQUMsQ0FBQTtJQUNsRixTQUFTLEdBQTBCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN2RSxlQUFlLEdBQW1CLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQTtJQUV4RCxXQUFXLEdBQUcsTUFBTSxDQUFTLEVBQUUsQ0FBQyxDQUFDO0lBRXpDO1FBQ0ksSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDM0MsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUNsQyxDQUFDLENBQUMsQ0FBQTtRQUNGLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUM3QyxRQUFRLENBQUMsRUFBRTtZQUNQLE1BQU0seUJBQXlCLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQywyQkFBMkIsRUFBRSxDQUFDO1lBQzdFLElBQUkseUJBQXlCO2dCQUN6QixRQUFRLEdBQUcsSUFBSSxDQUFDLDRCQUE0QixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxDQUFBO1lBQ3ZGLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7WUFDcEQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsZUFBZSxFQUFFLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUNsRSxDQUFDLENBQ0osQ0FBQTtJQUNMLENBQUM7SUFFRCxTQUFTO0lBQ0QsV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDO0lBQ25ELGdCQUFnQixDQUFDLElBQVksRUFBRSxPQUFnQixJQUFJLE9BQU8sSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sR0FBRyxvQkFBb0IsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLEdBQUcsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUV6TTs7OztPQUlHO0lBQ0gsb0JBQW9CLENBQUMsa0JBQXVDLEVBQUUsV0FBaUI7UUFDM0UsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDM0Usa0JBQWtCLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsa0JBQWtCLENBQUMsQ0FBQTtJQUM3RSxDQUFDO0lBQ0Q7O09BRUc7SUFDSCxjQUFjO1FBQ1YsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDO1lBQ3hDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQTtRQUNyQyxDQUFDO0lBQ0wsQ0FBQztJQUNEOzs7OztPQUtHO0lBQ0gsZ0JBQWdCLENBQUMsSUFBWSxFQUFFLE9BQWdCO1FBQzNDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNILDRCQUE0QixHQUFHLENBQUMsUUFBbUIsRUFBRSxhQUE4QyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUU7UUFFbEwsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFBO1FBQy9JLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQTtRQUMvSSxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFBO1FBQzlGLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQTtRQUVqRixJQUFJLHFCQUFxQixHQUFVLEVBQUUsQ0FBQztRQUN0QyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBWSxFQUFFLEVBQUU7WUFDOUIsSUFBSSxRQUFRLEdBQUcsQ0FBQyxHQUFHLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQztZQUN0QyxJQUFJLE1BQU0sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsS0FBSyxVQUFVLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7WUFDM0csSUFBSSxNQUFNLEVBQUUsQ0FBQztnQkFDVCxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFdBQWdCLEVBQUUsRUFBRTtvQkFDdkMsSUFBSSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztvQkFDM0QsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQVcsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxVQUFVLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxJQUFJLEVBQUUsV0FBVyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7b0JBQzFLLHFFQUFxRTtvQkFDckUsSUFBSSxVQUFVLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FDMUIsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFlBQVksSUFBSSxPQUFPLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxZQUFZLElBQUksS0FBSyxDQUFDOzJCQUN4RixPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU07MkJBQ3RCLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDOytCQUN0SSxDQUFDLEVBQUUsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssV0FBVyxDQUFDLElBQUksQ0FBQyxDQUV4SCxDQUFDO29CQUNGLGdDQUFnQztvQkFDaEMsVUFBVSxJQUFJLHFCQUFxQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZILENBQUMsQ0FBQyxDQUFBO1lBQ04sQ0FBQztpQkFBTSxDQUFDO2dCQUNKOzs7bUJBR0c7Z0JBQ0gsSUFBSSxVQUFVLENBQUMsa0JBQWtCLElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQztvQkFDM0QsSUFBSSxZQUFZLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQTtvQkFDckMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsV0FBZ0IsRUFBRSxFQUFFO3dCQUVuRCxJQUFJLGdCQUFnQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO3dCQUMzRCxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBZSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxXQUFXLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQzt3QkFFbkosSUFBSSxVQUFVLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRTs0QkFDckMsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUE7d0JBQzNGLENBQUMsQ0FBQyxDQUFBO3dCQUVGLElBQUksVUFBVSxJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDOzRCQUM5QyxVQUFVLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxlQUFlLENBQUE7d0JBQy9DLENBQUM7d0JBRUQsSUFBSSxVQUFVLENBQUMsWUFBWSxFQUFFLENBQUM7NEJBQzFCLENBQUMsVUFBVSxJQUFJLFVBQVUsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQzt3QkFDdkosQ0FBQzs2QkFBTSxDQUFDOzRCQUNKLFVBQVUsSUFBSSxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLGdCQUFnQixFQUFFLFVBQVUsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFBO3dCQUN0SCxDQUFDO29CQUVMLENBQUMsQ0FBQyxDQUFBO2dCQUNOLENBQUM7cUJBQU0sQ0FBQztvQkFDSixxQkFBcUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7Z0JBQ3ZDLENBQUM7WUFFTCxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUE7UUFDRixPQUFPLHFCQUFxQixDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7SUFDL0UsQ0FBQyxDQUFBO0lBRUQsd0JBQXdCLEdBQUcsQ0FBQyxPQUFnQixFQUFFLE9BQVksRUFBRSxXQUFnQixFQUFFLEVBQUU7UUFDNUUsT0FBTyxDQUFDLGVBQWUsR0FBRyxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQzdDLE9BQU8sQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLHlFQUF5RTtRQUM1RyxPQUFPLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMseUVBQXlFO1FBQzdHLE9BQU8sQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsSUFBSSxHQUFHLENBQUM7UUFDaEQsT0FBTyxDQUFDLGFBQWEsR0FBRztZQUNwQixHQUFHLFdBQVc7WUFDZCxXQUFXLEVBQUUsT0FBTyxDQUFDLEVBQUU7WUFDdkIsV0FBVyxFQUFFLE9BQU8sQ0FBQyxJQUFJO1lBQ3pCLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSyxJQUFJLENBQUM7WUFDekIsVUFBVSxFQUFFLE9BQU8sQ0FBQyxTQUFTLElBQUksT0FBTyxDQUFDLEtBQUssSUFBSSxDQUFDO1NBQ3RELENBQUE7UUFDRCxPQUFPLE9BQU8sQ0FBQTtJQUNsQixDQUFDLENBQUE7SUFFTyxvQkFBb0IsR0FBRyxHQUFvQyxFQUFFO1FBQ2pFLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQ0FBa0MsRUFBRSxDQUFBO0lBQzVELENBQUMsQ0FBQTt1R0FuSlEsZUFBZTsyR0FBZixlQUFlLGNBRlosTUFBTTs7MkZBRVQsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnZpcm9ubWVudEluamVjdG9yLCBpbmplY3QsIEluamVjdGFibGUsIHJ1bkluSW5qZWN0aW9uQ29udGV4dCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIG1hcCwgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCwgc2hhcmVSZXBsYXksIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRGVmYXVsdEZpbHRlciwgRmlsdGVyRWxlbWVudCwgRmlsdGVyVHlwZSwgSUZpbHRlciwgT3B0aW9ucywgUGFnaW5hdGlvblNldHRpbmdzLCBQYXJhbXNQcm9kdWN0c1dpdGhVbmlxdWVWYXJpYW50LCBQcm9kdWN0IH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBDb25uZWN0aW9uU2VydmljZSB9IGZyb20gJy4uL2FwaSc7XG5pbXBvcnQgeyBBcGlDb25zdGFudHNTZXJ2aWNlLCBDb3JlQ29uc3RhbnRzU2VydmljZSB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBPcHRpb25zU2VydmljZSB9IGZyb20gJy4vb3B0aW9ucy5zZXJ2aWNlJztcbmltcG9ydCB7IFBhZ2luYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9wYWdpbmF0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgRmlsdGVyLCBGaWx0ZXJGYWN0b3J5IH0gZnJvbSAnLi4vY2xhc3Nlcyc7XG5pbXBvcnQgeyBGaWx0ZXJzU2VydmljZSB9IGZyb20gJy4vZmlsdGVycy5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBQcm9kdWN0c1NlcnZpY2Uge1xuICAgIHByaXZhdGUgX2Nvbm5lY3Rpb246IENvbm5lY3Rpb25TZXJ2aWNlID0gaW5qZWN0KENvbm5lY3Rpb25TZXJ2aWNlKTtcbiAgICBwcml2YXRlIF9hcGlDb25zdHM6IEFwaUNvbnN0YW50c1NlcnZpY2UgPSBpbmplY3QoQXBpQ29uc3RhbnRzU2VydmljZSk7XG4gICAgcHJpdmF0ZSBfb3B0aW9uc1NlcnZpY2U6IE9wdGlvbnNTZXJ2aWNlID0gaW5qZWN0KE9wdGlvbnNTZXJ2aWNlKTtcbiAgICBwcml2YXRlIF9wYWdpbmF0aW9uU2VydmljZTogUGFnaW5hdGlvblNlcnZpY2UgPSBpbmplY3QoUGFnaW5hdGlvblNlcnZpY2UpO1xuICAgIHByaXZhdGUgX2NvbnN0czogQ29yZUNvbnN0YW50c1NlcnZpY2UgPSBpbmplY3QoQ29yZUNvbnN0YW50c1NlcnZpY2UpO1xuXG4gICAgcHJpdmF0ZSBfcHJvZHVjdHNTdWJqZWN0OiBCZWhhdmlvclN1YmplY3Q8UHJvZHVjdFtdPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UHJvZHVjdFtdPihbXSlcbiAgICBwdWJsaWMgcHJvZHVjdHMkOiBPYnNlcnZhYmxlPFByb2R1Y3RbXT4gPSB0aGlzLl9wcm9kdWN0c1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgcHJpdmF0ZSBfZmlsdGVyc1NlcnZpY2U6IEZpbHRlcnNTZXJ2aWNlID0gaW5qZWN0KEZpbHRlcnNTZXJ2aWNlKVxuXG4gICAgcHJpdmF0ZSBzZWFyY2hWYWx1ZSA9IHNpZ25hbDxzdHJpbmc+KCcnKTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLl9wYWdpbmF0aW9uU2VydmljZS5yZXNldCQuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgICAgICB0aGlzLl9wcm9kdWN0c1N1YmplY3QubmV4dChbXSlcbiAgICAgICAgfSlcbiAgICAgICAgdGhpcy5fcGFnaW5hdGlvblNlcnZpY2UucGFnaW5hdGlvbkRhdGEkLnN1YnNjcmliZShcbiAgICAgICAgICAgIHByb2R1Y3RzID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBwcm9kdWN0c1dpdGhVbmlxdWVWYXJpYW50ID0gdGhpcy5fY29uc3RzLmdldFByb2R1Y3RXaXRoVW5pcXVlVmFyaWFudCgpO1xuICAgICAgICAgICAgICAgIGlmIChwcm9kdWN0c1dpdGhVbmlxdWVWYXJpYW50KVxuICAgICAgICAgICAgICAgICAgICBwcm9kdWN0cyA9IHRoaXMuZ2V0UHJvZHVjdHNXaXRoVW5pcXVlVmFyaWFudChwcm9kdWN0cywgdGhpcy5nZXRPYmplY3RXaXRoVmFyaWFudCgpKVxuICAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRQcm9kdWN0cyA9IHRoaXMuX3Byb2R1Y3RzU3ViamVjdC52YWx1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLl9wcm9kdWN0c1N1YmplY3QubmV4dChbLi4uY3VycmVudFByb2R1Y3RzLCAuLi5wcm9kdWN0c10pO1xuICAgICAgICAgICAgfVxuICAgICAgICApXG4gICAgfVxuXG4gICAgLy9BUEkgVVJMXG4gICAgcHJpdmF0ZSBfc2hvcEFwaVVybCA9IHRoaXMuX2FwaUNvbnN0cy5TSE9QX0FQSV9VUkw7XG4gICAgcHJvZHVjdEJ5Q29kZUFwaShjb2RlOiBzdHJpbmcsIHZhcmlhbnQ6IGJvb2xlYW4pIHsgcmV0dXJuIHRoaXMuX3Nob3BBcGlVcmwgKyB0aGlzLl9hcGlDb25zdHMuQ0hBTk5FTCArICcvcHJvZHVjdHMvYnktY29kZS8nICsgKHZhcmlhbnQgPyAndmFyaWFudC8nIDogJycpICsgY29kZSArICc/bG9jYWxlPScgKyB0aGlzLl9hcGlDb25zdHMuTE9DQUxFOyB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRlYSBsb3MgZmlsdHJvcyBwYXJhIG9idGVuZXIgbG9zIHByb2R1Y3Rvcy5cbiAgICAgKiBAcGFyYW0gcGFnaW5hdGlvblNldHRpbmdzIFxuICAgICAqIEBwYXJhbSBzZWFyY2hWYWx1ZSBcbiAgICAgKi9cbiAgICBnZXRQcm9kdWN0c0ZvckZpbHRlcihwYWdpbmF0aW9uU2V0dGluZ3M/OiBQYWdpbmF0aW9uU2V0dGluZ3MsIHNlYXJjaFZhbHVlPzogYW55KTogYW55IHtcbiAgICAgICAgc2VhcmNoVmFsdWUgPyB0aGlzLnNlYXJjaFZhbHVlLnNldChzZWFyY2hWYWx1ZSkgOiB0aGlzLnNlYXJjaFZhbHVlLnNldCgnJyk7XG4gICAgICAgIHBhZ2luYXRpb25TZXR0aW5ncyAmJiB0aGlzLl9maWx0ZXJzU2VydmljZS5zZXRGaWx0ZXJzKHBhZ2luYXRpb25TZXR0aW5ncylcbiAgICB9XG4gICAgLyoqXG4gICAgICogQWN0dWFsaXphIGxvcyBwcm9kdWN0b3MgY29uIGxvcyBkZSBsYSBzaWd1aWVudGUgcGFnaW5hLlxuICAgICAqL1xuICAgIHVwZGF0ZVByb2R1Y3RzKCkge1xuICAgICAgICBpZiAoIXRoaXMuX3BhZ2luYXRpb25TZXJ2aWNlLmdldFdhaXRpbmcoKSkge1xuICAgICAgICAgICAgdGhpcy5fcGFnaW5hdGlvblNlcnZpY2UuZ2V0TmV4dCgpXG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogRGV2dWVsdmUgZWwgcHJvZHVjdG8gcG9yIGNvZGlnby5cbiAgICAgKiBAcGFyYW0gY29kZSBDb2RpZ28gZGVsIHByb2R1Y3RvXG4gICAgICogQHBhcmFtIHZhcmlhbnQgUGFyYSBpbmRpY2FyIHNpIGVzIHZhcmlhbnRlIG8gbm8uXG4gICAgICogQHJldHVybnMgXG4gICAgICovXG4gICAgZ2V0UHJvZHVjdEJ5Q29kZShjb2RlOiBzdHJpbmcsIHZhcmlhbnQ6IGJvb2xlYW4pOiBPYnNlcnZhYmxlPFByb2R1Y3Q+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Nvbm5lY3Rpb24uZ2V0KHRoaXMucHJvZHVjdEJ5Q29kZUFwaShjb2RlLCB2YXJpYW50KSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVjaWJlIHVuYSBsaXN0YSBkZSBwcm9kdWN0b3MgeSByZXRvcm5hIGxvcyBtaXNtb3MgcHJvZHVjdG9zIHRhbnRhcyB2ZWNlcyBjb21vIHZhcmlhbnRlcyB0ZW5nYS5cbiAgICAgKiBjYWRhIHByb2R1Y3RvIHJldG9ybmFkbyB0ZW5kcsOhIHVuYSDDum5pY2EgdmFyaWFudGUuXG4gICAgICogQHBhcmFtIHByb2R1Y3RzICBBcnJheS4gTGlzdGEgZGUgcHJvZHVjdG9zLlxuICAgICAqIEBwYXJhbSB3aXRoT3B0aW9uICd0eXBlJyB0aXBvIGRlIG9wY2nDs24sIGNvZGU6IGPDs2RpZ28gZGUgbGEgb3BjacOzbi4gJ2RlZmF1bHRGaXJzdE9wdGlvbic6IGVuIGNhc28gZGUgcXVlIG5vIHNlIHB1ZWRhIGRlc2RvYmxhciBwb3IgbGEgb3BjacOzbiBpbmRpY2FkYSBzaSBlbCB2YWxvciBlcyB2ZXJkYWRlcm8gc2UgaW50ZW50YXJhIGRlc2RvYmxhciBwb3IgbGEgcHJpbWVyYSBvcGNpw7NuIGFzb2NpYWRhIGFsIHByb2R1Y3RvLlxuICAgICAqICdjaGVja0lmU3RvY2snOiBlbiBjYXNvIGRlIHF1ZSBlc3RhIHZhbG9yIHNlYSB2ZXJkYWRlcm8gc2UgcmVhbGl6YSB1biBjb250cm9sIGRlIHF1ZSBsYSB2YXJpYW50ZXMgY3VlbnRlbiBjb24gc3RvY2sgcGFyYSBzZXIgdW4gcHJvZHVjdG8gZGVzZG9ibGFkbyBwb3IgbGEgdmFyaWFudGUsIHNpIGVsIHZhbG9yIGVzIGZhbHNvIG5vIHNlIHJlYWxpemEgZGljaG8gY29udHJvbCB5IGVsIHByb2R1Y3RvIHNlIGRlc2RvYmxhcmEgY29uIHN0b2NrIGVuIDAuXG4gICAgICogQHJldHVybnMgYXJyZWdsbyBjb24gbG9zIHByb2R1Y3RvcyBkZXNkb2JsYWRvcyBwb3IgbGEgb3BjacOzbiBzb2xpY2l0YWRhLlxuICAgICAqIChvcGNpw7NuIHBvciBkZWZlY3RvIHF1ZSBzZSBpbnRlbnRhIGhhY2VyIGVsIGRlc2RvYmxhbWllbnRvICdjb2xvcicsIG8gYmllbiBzaSBlbiBsZSBwYXLDoW1ldHJvIHdpdGhPcHRpb24gZWwgYXRyaWJ1dG8gJ2RlZmF1bHRGaXJzdE9wdGlvbicgZXMgdmVyZGFkZXJvIHNlIGRlc2RvYmxhIHBvciBsYSBwcmltZXJhIG9wY2nDs24gYXNvY2lhZGEgYWwgcHJvZHVjdG8pXG4gICAgICovXG4gICAgZ2V0UHJvZHVjdHNXaXRoVW5pcXVlVmFyaWFudCA9IChwcm9kdWN0czogUHJvZHVjdFtdLCB3aXRoT3B0aW9uOiBQYXJhbXNQcm9kdWN0c1dpdGhVbmlxdWVWYXJpYW50ID0geyB0eXBlOiAnY29sb3InLCBjb2RlOiAnY29sb3InLCBkZWZhdWx0Rmlyc3RPcHRpb246IGZhbHNlLCBjaGVja0lmU3RvY2s6IHRydWUgfSkgPT4ge1xuXG4gICAgICAgICF3aXRoT3B0aW9uWydjb2RlJ10gJiYgd2l0aE9wdGlvblsndHlwZSddICYmICh3aXRoT3B0aW9uWydjb2RlJ10gPSB3aXRoT3B0aW9uWyd0eXBlJ10pIHx8ICF3aXRoT3B0aW9uWydjb2RlJ10gJiYgKHdpdGhPcHRpb25bJ2NvZGUnXSA9ICdjb2xvcicpXG4gICAgICAgICF3aXRoT3B0aW9uWyd0eXBlJ10gJiYgd2l0aE9wdGlvblsnY29kZSddICYmICh3aXRoT3B0aW9uWyd0eXBlJ10gPSB3aXRoT3B0aW9uWydjb2RlJ10pIHx8ICF3aXRoT3B0aW9uWyd0eXBlJ10gJiYgKHdpdGhPcHRpb25bJ3R5cGUnXSA9ICdjb2xvcicpXG4gICAgICAgICF3aXRoT3B0aW9uLmhhc093blByb3BlcnR5KCdkZWZhdWx0Rmlyc3RPcHRpb24nKSAmJiAod2l0aE9wdGlvblsnZGVmYXVsdEZpcnN0T3B0aW9uJ10gPSBmYWxzZSlcbiAgICAgICAgIXdpdGhPcHRpb24uaGFzT3duUHJvcGVydHkoJ2NoZWNrSWZTdG9jaycpICYmICh3aXRoT3B0aW9uWydjaGVja0lmU3RvY2snXSA9IHRydWUpXG5cbiAgICAgICAgbGV0IHByb2R1Y3RzVW5pcXVlVmFyaWFudDogYW55W10gPSBbXTtcbiAgICAgICAgcHJvZHVjdHMuZm9yRWFjaCgocHJvZHVjdDogYW55KSA9PiB7XG4gICAgICAgICAgICBsZXQgdmFyaWFudHMgPSBbLi4ucHJvZHVjdD8udmFyaWFudHNdO1xuICAgICAgICAgICAgbGV0IG9wdGlvbiA9IHByb2R1Y3Qub3B0aW9ucy5maW5kKChvcHQ6IGFueSkgPT4gb3B0LnR5cGUudG9Mb3dlckNhc2UoKSA9PT0gd2l0aE9wdGlvbi50eXBlPy50b0xvd2VyQ2FzZSgpKTtcbiAgICAgICAgICAgIGlmIChvcHRpb24pIHtcbiAgICAgICAgICAgICAgICBvcHRpb24udmFsdWVzLmZvckVhY2goKG9wdGlvblZhbHVlOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IG1vZGlmaWVkX3Byb2R1Y3QgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHByb2R1Y3QpKTtcbiAgICAgICAgICAgICAgICAgICAgbW9kaWZpZWRfcHJvZHVjdC5vcHRpb25zLmZpbmQoKG9wdGlvbjogYW55KSA9PiBvcHRpb24udHlwZS50b0xvd2VyQ2FzZSgpID09IHdpdGhPcHRpb24udHlwZT8udG9Mb3dlckNhc2UoKSkudmFsdWVzID0gW3sgY29kZTogb3B0aW9uVmFsdWUuY29kZSwgbmFtZTogb3B0aW9uVmFsdWUubmFtZSB9XTtcbiAgICAgICAgICAgICAgICAgICAgLy9idXNjbyB1bmEgdmFyaWFudGUgY29uIGVzZSBjb2RlIHBhcmEgYXNpZ25hcmxlIGxhIGxpc3RhIGRlIGltYWdlbmVzXG4gICAgICAgICAgICAgICAgICAgIGxldCB2YXJpYW50QXV4ID0gdmFyaWFudHMuZmluZChcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQgPT4gKCh3aXRoT3B0aW9uLmNoZWNrSWZTdG9jayAmJiB2YXJpYW50LnN0b2NrID4gMCkgfHwgd2l0aE9wdGlvbi5jaGVja0lmU3RvY2sgPT0gZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgdmFyaWFudC5vcHRpb25zLmxlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIHZhcmlhbnQub3B0aW9ucy5zb21lKChvcDogYW55KSA9PiAob3AuaGFzT3duUHJvcGVydHkod2l0aE9wdGlvbi5jb2RlPy50b0xvd2VyQ2FzZSgpKSB8fCBvcC5oYXNPd25Qcm9wZXJ0eSh3aXRoT3B0aW9uLmNvZGU/LnRvVXBwZXJDYXNlKCkpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiAob3BbYCR7d2l0aE9wdGlvbi5jb2RlPy50b0xvd2VyQ2FzZSgpfWBdIHx8IG9wW2Ake3dpdGhPcHRpb24uY29kZT8udG9VcHBlckNhc2UoKX1gXSkgPT09IG9wdGlvblZhbHVlLmNvZGUpXG5cbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgLy9jb25zb2xlLmxvZyhcIi0tLVwiLHZhcmlhbnRBdXgpO1xuICAgICAgICAgICAgICAgICAgICB2YXJpYW50QXV4ICYmIHByb2R1Y3RzVW5pcXVlVmFyaWFudC5wdXNoKHRoaXMucHJvZHVjdFdpdGhWYXJpYW50VmFsdWVzKG1vZGlmaWVkX3Byb2R1Y3QsIHZhcmlhbnRBdXgsIG9wdGlvblZhbHVlKSk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogc2UgbW9kaWZpY2EgZWwgY2FzbyBwYXJhIGN1YW5kbyBzZSB0b21hIGVsIHByaW1lciBgb3B0aW9uYCBkZWwgcHJvZHVjdG8gcGFyYVxuICAgICAgICAgICAgICAgICAqIGFybWFyIGxhIGxpc3RhIGRlIHByb2R1Y3RvcyBjb24gdmFyaWFudGVzLlxuICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgIGlmICh3aXRoT3B0aW9uLmRlZmF1bHRGaXJzdE9wdGlvbiAmJiBwcm9kdWN0Lm9wdGlvbnM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICBsZXQgZmlyc3RPcHRpb25zID0gcHJvZHVjdC5vcHRpb25zWzBdXG4gICAgICAgICAgICAgICAgICAgIHByb2R1Y3Qub3B0aW9uc1swXS52YWx1ZXMuZm9yRWFjaCgob3B0aW9uVmFsdWU6IGFueSkgPT4ge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbW9kaWZpZWRfcHJvZHVjdCA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkocHJvZHVjdCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZWRfcHJvZHVjdC5vcHRpb25zLmZpbmQoKG9wdGlvbjogT3B0aW9ucykgPT4gb3B0aW9uLnR5cGUgPT0gZmlyc3RPcHRpb25zLnR5cGUpLnZhbHVlcyA9IFt7IGNvZGU6IG9wdGlvblZhbHVlLmNvZGUsIG5hbWU6IG9wdGlvblZhbHVlLm5hbWUgfV07XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2YXJpYW50QXV4ID0gdmFyaWFudHMuZmluZCh2YXJpYW50ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFyaWFudC5vcHRpb25zLmZpbmQoKGVsZW06IGFueSkgPT4gZWxlbVtmaXJzdE9wdGlvbnMuY29kZV0gPT0gb3B0aW9uVmFsdWUuY29kZSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2YXJpYW50QXV4ICYmIHZhcmlhbnRBdXguaW1hZ2VzLmxlbmd0aCA9PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudEF1eC5pbWFnZXMgPSBwcm9kdWN0LnBpY3R1cmVzZGVmYXVsdFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAod2l0aE9wdGlvbi5jaGVja0lmU3RvY2spIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmFyaWFudEF1eCAmJiB2YXJpYW50QXV4LnN0b2NrID4gMCkgPyBwcm9kdWN0c1VuaXF1ZVZhcmlhbnQucHVzaCh0aGlzLnByb2R1Y3RXaXRoVmFyaWFudFZhbHVlcyhtb2RpZmllZF9wcm9kdWN0LCB2YXJpYW50QXV4LCBvcHRpb25WYWx1ZSkpIDogbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudEF1eCAmJiBwcm9kdWN0c1VuaXF1ZVZhcmlhbnQucHVzaCh0aGlzLnByb2R1Y3RXaXRoVmFyaWFudFZhbHVlcyhtb2RpZmllZF9wcm9kdWN0LCB2YXJpYW50QXV4LCBvcHRpb25WYWx1ZSkpXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBwcm9kdWN0c1VuaXF1ZVZhcmlhbnQucHVzaChwcm9kdWN0KVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICByZXR1cm4gcHJvZHVjdHNVbmlxdWVWYXJpYW50Lmxlbmd0aCA+IDAgPyBwcm9kdWN0c1VuaXF1ZVZhcmlhbnQgOiBwcm9kdWN0cztcbiAgICB9XG5cbiAgICBwcm9kdWN0V2l0aFZhcmlhbnRWYWx1ZXMgPSAocHJvZHVjdDogUHJvZHVjdCwgdmFyaWFudDogYW55LCBvcHRpb25WYWx1ZTogYW55KSA9PiB7XG4gICAgICAgIHByb2R1Y3QucGljdHVyZXNkZWZhdWx0ID0gWy4uLnZhcmlhbnQuaW1hZ2VzXVxuICAgICAgICBwcm9kdWN0LnZhcmlhbnRfaWQgPSB2YXJpYW50LmNvZGU7IC8vbG8gZGVqbyBhY2EgaGFzdGEgYXNlZ3VyYXJub3MgZGUgcXVlIG5vIHNlIGVzdGFiYSB1c2FuZG8gZW4gb3RyYSBwYXJ0ZS5cbiAgICAgICAgcHJvZHVjdC5zdG9jayA9IHZhcmlhbnQuc3RvY2sgfHwgMDsgLy9sbyBkZWpvIGFjYSBoYXN0YSBhc2VndXJhcm5vcyBkZSBxdWUgbm8gc2UgZXN0YWJhIHVzYW5kbyBlbiBvdHJhIHBhcnRlLlxuICAgICAgICBwcm9kdWN0LnByaWNlID0gdmFyaWFudC5wcmljZS50b1N0cmluZygpIHx8ICcwJztcbiAgICAgICAgcHJvZHVjdC5jdXJyZW50T3B0aW9uID0ge1xuICAgICAgICAgICAgLi4ub3B0aW9uVmFsdWUsXG4gICAgICAgICAgICBwcm9kdWN0Q29kZTogcHJvZHVjdC5pZCxcbiAgICAgICAgICAgIHZhcmlhbnRDb2RlOiB2YXJpYW50LmNvZGUsXG4gICAgICAgICAgICBzdG9jazogdmFyaWFudC5zdG9jayB8fCAwLFxuICAgICAgICAgICAgZmluYWxQcmljZTogdmFyaWFudC5zYWxlcHJpY2UgfHwgdmFyaWFudC5wcmljZSB8fCAwLFxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwcm9kdWN0XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRPYmplY3RXaXRoVmFyaWFudCA9ICgpOiBQYXJhbXNQcm9kdWN0c1dpdGhVbmlxdWVWYXJpYW50ID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbnN0cy5nZXRQYXJhbXNQcm9kdWN0c1dpdGhVbmlxdWVWYXJpYW50KClcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,114 @@
1
+ import { afterNextRender, inject, Injectable } from '@angular/core';
2
+ import { BehaviorSubject, concatMap, firstValueFrom, map } from 'rxjs';
3
+ import { ConnectionService } from '../api';
4
+ import { ParametersService } from './parameters.service';
5
+ import { ApiConstantsService } from '../constants';
6
+ import * as i0 from "@angular/core";
7
+ export class ReCaptchaService {
8
+ _connection = inject(ConnectionService);
9
+ _paramsService = inject(ParametersService);
10
+ _apiConsts = inject(ApiConstantsService);
11
+ _recaptchaSubject = new BehaviorSubject({ siteKey: '' });
12
+ recaptcha$ = this._recaptchaSubject.asObservable();
13
+ params$ = this._paramsService.getParameters();
14
+ params;
15
+ urlBaseFormat = '';
16
+ testing = "easycommercetech";
17
+ productionEnvironment = false;
18
+ recaptchaSiteKeysUrl = './assets/recaptcha/recaptcha-site-keys.json';
19
+ recaptchaSitesUrl = './assets/recaptcha/recaptcha-sites.json';
20
+ recaptchaSitesUrlProd = './assets/recaptcha/recaptcha-sites-prod.json';
21
+ RECAPTCHA_SITE_KEYS = [];
22
+ RECAPTCHA_SITES = [];
23
+ constructor() {
24
+ this.params$.subscribe(params => this.params = params);
25
+ this.initializer();
26
+ afterNextRender(() => {
27
+ this.urlBaseFormat = this.formatUrl(location.href);
28
+ this.productionEnvironment = this.isProd();
29
+ });
30
+ }
31
+ /**
32
+ * Devuelve true si la url es de produccion, false en caso contrario.
33
+ * @returns {Boolean}
34
+ */
35
+ isProd() {
36
+ return !this.urlBaseFormat.includes(this.testing);
37
+ }
38
+ /**
39
+ * Recibe una url y se encarga de quitarle "http", "/" y las demas rutas, para devolver la url
40
+ * del sitio con una formato limpio. Ejemplo "https://ejemplo.com.ar/ruta1/ruta2/" a "ejemplo.com.ar"
41
+ * @param {string} url url que sera formateada
42
+ * @returns {string} url formateada
43
+ */
44
+ formatUrl(url) {
45
+ return url.split("/").filter(e => e != "/").filter(e => !e.includes("http")).filter(e => e.length).slice(0, 1).pop() || '';
46
+ }
47
+ /**
48
+ * Path que contiene la direccion del endpoint referido al captcha
49
+ * @returns {string}
50
+ */
51
+ captchaApi() { return `${this._apiConsts.SHOP_API_URL}channels`; }
52
+ /**
53
+ * Prioriza si existe un parametro desde el backend de nombre 'recaptcha_key_canal',
54
+ * de no existir este busca uno de tipo general de nombre 'recaptcha_key',
55
+ * y en caso de que este no exista se realiza lo siguiente:
56
+ * carga las variables RECAPTCHA_SITES y RECAPTCHA_SITE_KEYS, con los valores
57
+ * de los Json estaticos, para posteriormente obtener la "siteKey"(clave del captcha) en caso
58
+ * de que no venga desde el backend.
59
+ */
60
+ initializer() {
61
+ let paramThisChannel = this.params.find((param) => param.code === `recaptcha_key_${this._apiConsts.CHANNEL}`);
62
+ if (paramThisChannel) {
63
+ this._recaptchaSubject.next({ siteKey: paramThisChannel.value });
64
+ }
65
+ else {
66
+ let paramGeneral = this.params.find((param) => param.code === 'recaptcha_key');
67
+ if (paramGeneral) {
68
+ this._recaptchaSubject.next({ siteKey: paramGeneral.value });
69
+ }
70
+ else {
71
+ this.getRecaptchaSites().pipe(map((res) => this.RECAPTCHA_SITES = res), concatMap(res => this.getRecaptchaSiteKeys().pipe(map(res => this.RECAPTCHA_SITE_KEYS = res)))).subscribe(e => this.getSiteKey());
72
+ }
73
+ }
74
+ }
75
+ /**
76
+ * Obtiene los datos del archivo .json en donde se guardan las claves.
77
+ * @returns {Observable<any>} Datos obtenidos del archivo con las claves captcha
78
+ */
79
+ getRecaptchaSiteKeys() {
80
+ return this._connection.getWithFullUrl(this.recaptchaSiteKeysUrl);
81
+ }
82
+ /**
83
+ * Se obtiene los datos segun el entorno en que se ejecute
84
+ * @returns {Observable<any>} Datos obtenidos del archivo con las url de los sitios
85
+ */
86
+ getRecaptchaSites() {
87
+ return this.productionEnvironment ?
88
+ this._connection.getWithFullUrl(this.recaptchaSitesUrlProd) :
89
+ this._connection.getWithFullUrl(this.recaptchaSitesUrl);
90
+ }
91
+ /**
92
+ * Genera una peticion para recibir la clave del recaptcha. En caso de no tener exito,
93
+ * utiliza los archivos estaticos para retornar una clave por defecto. Rellena el Observable con
94
+ * los datos generados.
95
+ */
96
+ getSiteKey() {
97
+ firstValueFrom(this._connection.get(this.captchaApi())).then((res) => {
98
+ this._recaptchaSubject.next({
99
+ siteKey: res.siteKey ? res.siteKey : this.RECAPTCHA_SITE_KEYS[this.RECAPTCHA_SITES[this.urlBaseFormat]]
100
+ });
101
+ }, (err) => {
102
+ this._recaptchaSubject.next({ siteKey: this.RECAPTCHA_SITE_KEYS[this.RECAPTCHA_SITES[this.urlBaseFormat]] });
103
+ });
104
+ }
105
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ReCaptchaService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
106
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ReCaptchaService, providedIn: 'root' });
107
+ }
108
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ReCaptchaService, decorators: [{
109
+ type: Injectable,
110
+ args: [{
111
+ providedIn: 'root'
112
+ }]
113
+ }], ctorParameters: () => [] });
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmUtY2FwdGNoYS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLXNlcnZpY2VzL3JlLWNhcHRjaGEuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFcEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLEdBQUcsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNuRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDM0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sY0FBYyxDQUFDOztBQUtuRCxNQUFNLE9BQU8sZ0JBQWdCO0lBRXBCLFdBQVcsR0FBc0IsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDM0QsY0FBYyxHQUFzQixNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUM5RCxVQUFVLEdBQXdCLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBRTlELGlCQUFpQixHQUF1QyxJQUFJLGVBQWUsQ0FBb0IsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNqSCxVQUFVLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBRWxELE9BQU8sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQy9DLE1BQU0sQ0FBTTtJQUVYLGFBQWEsR0FBVyxFQUFFLENBQUM7SUFDM0IsT0FBTyxHQUFXLGtCQUFrQixDQUFBO0lBQ3BDLHFCQUFxQixHQUFZLEtBQUssQ0FBQztJQUV2QyxvQkFBb0IsR0FBRyw2Q0FBNkMsQ0FB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Z0I7MkdBQWhCLGdCQUFnQixjQUZoQixNQUFNOzsyRkFFTixnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1gsVUFBVSxFQUFFLE1BQU07aUJBQ2xCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYWZ0ZXJOZXh0UmVuZGVyLCBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJlY2FwdGNoYVNldHRpbmdzIH0gZnJvbSAnbmctcmVjYXB0Y2hhLTInO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb25jYXRNYXAsIGZpcnN0VmFsdWVGcm9tLCBtYXAsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENvbm5lY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vYXBpJztcbmltcG9ydCB7IFBhcmFtZXRlcnNTZXJ2aWNlIH0gZnJvbSAnLi9wYXJhbWV0ZXJzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXBpQ29uc3RhbnRzU2VydmljZSB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5cbkBJbmplY3RhYmxlKHtcblx0cHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFJlQ2FwdGNoYVNlcnZpY2Uge1xuXG5cdHByaXZhdGUgX2Nvbm5lY3Rpb246IENvbm5lY3Rpb25TZXJ2aWNlID0gaW5qZWN0KENvbm5lY3Rpb25TZXJ2aWNlKTtcblx0cHJpdmF0ZSBfcGFyYW1zU2VydmljZTogUGFyYW1ldGVyc1NlcnZpY2UgPSBpbmplY3QoUGFyYW1ldGVyc1NlcnZpY2UpO1xuXHRwcml2YXRlIF9hcGlDb25zdHM6IEFwaUNvbnN0YW50c1NlcnZpY2UgPSBpbmplY3QoQXBpQ29uc3RhbnRzU2VydmljZSk7XG5cblx0cHJpdmF0ZSBfcmVjYXB0Y2hhU3ViamVjdDogQmVoYXZpb3JTdWJqZWN0PFJlY2FwdGNoYVNldHRpbmdzPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UmVjYXB0Y2hhU2V0dGluZ3M+KHsgc2l0ZUtleTogJycgfSk7XG5cdHB1YmxpYyByZWNhcHRjaGEkID0gdGhpcy5fcmVjYXB0Y2hhU3ViamVjdC5hc09ic2VydmFibGUoKTtcblxuXHRwcml2YXRlIHBhcmFtcyQgPSB0aGlzLl9wYXJhbXNTZXJ2aWNlLmdldFBhcmFtZXRlcnMoKTtcblx0cHVibGljIHBhcmFtczogYW55O1xuXG5cdHByaXZhdGUgdXJsQmFzZUZvcm1hdDogc3RyaW5nID0gJyc7XG5cdHByaXZhdGUgdGVzdGluZzogc3RyaW5nID0gXCJlYXN5Y29tbWVyY2V0ZWNoXCJcblx0cHJpdmF0ZSBwcm9kdWN0aW9uRW52aXJvbm1lbnQ6IEJvb2xlYW4gPSBmYWxzZTtcblxuXHRwcml2YXRlIHJlY2FwdGNoYVNpdGVLZXlzVXJsID0gJy4vYXNzZXRzL3JlY2FwdGNoYS9yZWNhcHRjaGEtc2l0ZS1rZXlzLmpzb24nO1xuXHRwcml2YXRlIHJlY2FwdGNoYVNpdGVzVXJsID0gJy4vYXNzZXRzL3JlY2FwdGNoYS9yZWNhcHRjaGEtc2l0ZXMuanNvbic7XG5cdHByaXZhdGUgcmVjYXB0Y2hhU2l0ZXNVcmxQcm9kID0gJy4vYXNzZXRzL3JlY2FwdGNoYS9yZWNhcHRjaGEtc2l0ZXMtcHJvZC5qc29uJ1xuXG5cdHByaXZhdGUgUkVDQVBUQ0hBX1NJVEVfS0VZUzogYW55ID0gW11cblx0cHJpdmF0ZSBSRUNBUFRDSEFfU0lURVM6IGFueSA9IFtdXG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0dGhpcy5wYXJhbXMkLnN1YnNjcmliZShwYXJhbXMgPT4gdGhpcy5wYXJhbXMgPSBwYXJhbXMpO1x0XG5cdFx0dGhpcy5pbml0aWFsaXplcigpO1xuXHRcdGFmdGVyTmV4dFJlbmRlcigoKT0+IHtcblx0XHRcdHRoaXMudXJsQmFzZUZvcm1hdCA9IHRoaXMuZm9ybWF0VXJsKGxvY2F0aW9uLmhyZWYpO1xuXHRcdFx0dGhpcy5wcm9kdWN0aW9uRW52aXJvbm1lbnQgPSB0aGlzLmlzUHJvZCgpO1xuXHRcdH0pXG5cdH1cblx0LyoqXG4gICAgICogRGV2dWVsdmUgdHJ1ZSBzaSBsYSB1cmwgZXMgZGUgcHJvZHVjY2lvbiwgZmFsc2UgZW4gY2FzbyBjb250cmFyaW8uIFxuICAgICAqIEByZXR1cm5zIHtCb29sZWFufVxuICAgICAqL1xuXHRwcml2YXRlIGlzUHJvZCgpOiBCb29sZWFuIHtcblx0XHRyZXR1cm4gIXRoaXMudXJsQmFzZUZvcm1hdC5pbmNsdWRlcyh0aGlzLnRlc3RpbmcpXG5cdH1cblx0LyoqXG4gICAgICogUmVjaWJlIHVuYSB1cmwgeSBzZSBlbmNhcmdhIGRlIHF1aXRhcmxlIFwiaHR0cFwiLCBcIi9cIiB5IGxhcyBkZW1hcyBydXRhcywgcGFyYSBkZXZvbHZlciBsYSB1cmxcbiAgICAgKiBkZWwgc2l0aW8gY29uIHVuYSBmb3JtYXRvIGxpbXBpby4gRWplbXBsbyBcImh0dHBzOi8vZWplbXBsby5jb20uYXIvcnV0YTEvcnV0YTIvXCIgYSBcImVqZW1wbG8uY29tLmFyXCIgXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHVybCB1cmwgcXVlIHNlcmEgZm9ybWF0ZWFkYSBcbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSB1cmwgZm9ybWF0ZWFkYVxuICAgICAqL1xuXHRwcml2YXRlIGZvcm1hdFVybCh1cmw6IHN0cmluZyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIHVybC5zcGxpdChcIi9cIikuZmlsdGVyKGUgPT4gZSAhPSBcIi9cIikuZmlsdGVyKGUgPT4gIWUuaW5jbHVkZXMoXCJodHRwXCIpKS5maWx0ZXIoZSA9PiBlLmxlbmd0aCkuc2xpY2UoMCwxKS5wb3AoKSB8fCAnJ1xuXHR9XG5cblx0LyoqXG4gICAgICogUGF0aCBxdWUgY29udGllbmUgbGEgZGlyZWNjaW9uIGRlbCBlbmRwb2ludCByZWZlcmlkbyBhbCBjYXB0Y2hhXG4gICAgICogQHJldHVybnMge3N0cmluZ30gXG4gICAgICovXG4gICAgcHJpdmF0ZSBjYXB0Y2hhQXBpKCk6c3RyaW5nIHsgcmV0dXJuIGAke3RoaXMuX2FwaUNvbnN0cy5TSE9QX0FQSV9VUkx9Y2hhbm5lbHNgO31cblx0LyoqXG4gICAgICogUHJpb3JpemEgc2kgZXhpc3RlIHVuIHBhcmFtZXRybyBkZXNkZSBlbCBiYWNrZW5kIGRlIG5vbWJyZSAncmVjYXB0Y2hhX2tleV9jYW5hbCcsIFxuICAgICAqIGRlIG5vIGV4aXN0aXIgZXN0ZSBidXNjYSB1bm8gZGUgdGlwbyBnZW5lcmFsIGRlIG5vbWJyZSAncmVjYXB0Y2hhX2tleScsXG4gICAgICogeSBlbiBjYXNvIGRlIHF1ZSBlc3RlIG5vIGV4aXN0YSBzZSByZWFsaXphIGxvIHNpZ3VpZW50ZTogXG4gICAgICogY2FyZ2EgbGFzIHZhcmlhYmxlcyBSRUNBUFRDSEFfU0lURVMgeSBSRUNBUFRDSEFfU0lURV9LRVlTLCBjb24gbG9zIHZhbG9yZXNcbiAgICAgKiBkZSBsb3MgSnNvbiBlc3RhdGljb3MsIHBhcmEgcG9zdGVyaW9ybWVudGUgb2J0ZW5lciBsYSBcInNpdGVLZXlcIihjbGF2ZSBkZWwgY2FwdGNoYSkgZW4gY2Fzb1xuICAgICAqIGRlIHF1ZSBubyB2ZW5nYSBkZXNkZSBlbCBiYWNrZW5kLiBcbiAgICAgKi9cblx0cHJpdmF0ZSBpbml0aWFsaXplcigpOiB2b2lkIHtcblx0XHRsZXQgcGFyYW1UaGlzQ2hhbm5lbCA9IHRoaXMucGFyYW1zLmZpbmQoKHBhcmFtOmFueSkgPT4gcGFyYW0uY29kZSA9PT0gYHJlY2FwdGNoYV9rZXlfJHt0aGlzLl9hcGlDb25zdHMuQ0hBTk5FTH1gKVxuXHRcdGlmKHBhcmFtVGhpc0NoYW5uZWwpe1xuXHRcdFx0dGhpcy5fcmVjYXB0Y2hhU3ViamVjdC5uZXh0KHtzaXRlS2V5OiBwYXJhbVRoaXNDaGFubmVsLnZhbHVlfSk7XG5cdFx0fWVsc2V7XG5cdFx0XHRsZXQgcGFyYW1HZW5lcmFsID0gdGhpcy5wYXJhbXMuZmluZCgocGFyYW06YW55KSA9PiBwYXJhbS5jb2RlID09PSAncmVjYXB0Y2hhX2tleScpXG5cdFx0XHRpZihwYXJhbUdlbmVyYWwpe1xuXHRcdFx0XHR0aGlzLl9yZWNhcHRjaGFTdWJqZWN0Lm5leHQoe3NpdGVLZXk6IHBhcmFtR2VuZXJhbC52YWx1ZX0pO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dGhpcy5nZXRSZWNhcHRjaGFTaXRlcygpLnBpcGUoXG5cdFx0XHRcdFx0bWFwKChyZXM6YW55KSA9PiB0aGlzLlJFQ0FQVENIQV9TSVRFUyA9IHJlcyksXG5cdFx0XHRcdFx0Y29uY2F0TWFwKCByZXMgPT4gdGhpcy5nZXRSZWNhcHRjaGFTaXRlS2V5cygpLnBpcGUoXG5cdFx0XHRcdFx0XHRtYXAocmVzPT4gdGhpcy5SRUNBUFRDSEFfU0lURV9LRVlTID0gcmVzKVxuXHRcdFx0XHRcdCkpXG5cdFx0XHRcdCkuc3Vic2NyaWJlKFxuXHRcdFx0XHRcdGUgPT4gdGhpcy5nZXRTaXRlS2V5KClcblx0XHRcdFx0KVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8qKlxuICAgICAqIE9idGllbmUgbG9zIGRhdG9zIGRlbCBhcmNoaXZvIC5qc29uIGVuIGRvbmRlIHNlIGd1YXJkYW4gbGFzIGNsYXZlcy5cbiAgICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTxhbnk+fSBEYXRvcyBvYnRlbmlkb3MgZGVsIGFyY2hpdm8gY29uIGxhcyBjbGF2ZXMgY2FwdGNoYVxuICAgICAqL1xuXHRwcml2YXRlIGdldFJlY2FwdGNoYVNpdGVLZXlzKCk6IE9ic2VydmFibGU8YW55Pntcblx0XHRyZXR1cm4gdGhpcy5fY29ubmVjdGlvbi5nZXRXaXRoRnVsbFVybCh0aGlzLnJlY2FwdGNoYVNpdGVLZXlzVXJsKVxuXHR9XG5cdC8qKlxuICAgICAqIFNlIG9idGllbmUgbG9zIGRhdG9zIHNlZ3VuIGVsIGVudG9ybm8gZW4gcXVlIHNlIGVqZWN1dGVcbiAgICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTxhbnk+fSBEYXRvcyBvYnRlbmlkb3MgZGVsIGFyY2hpdm8gY29uIGxhcyB1cmwgZGUgbG9zIHNpdGlvc1xuICAgICAqL1xuXHRwcml2YXRlIGdldFJlY2FwdGNoYVNpdGVzKCk6IE9ic2VydmFibGU8YW55Pntcblx0XHRyZXR1cm4gdGhpcy5wcm9kdWN0aW9uRW52aXJvbm1lbnQgPyBcblx0XHRcdHRoaXMuX2Nvbm5lY3Rpb24uZ2V0V2l0aEZ1bGxVcmwodGhpcy5yZWNhcHRjaGFTaXRlc1VybFByb2QpIDpcblx0XHRcdHRoaXMuX2Nvbm5lY3Rpb24uZ2V0V2l0aEZ1bGxVcmwodGhpcy5yZWNhcHRjaGFTaXRlc1VybCk7XG5cdH1cblx0LyoqXG4gICAgICogR2VuZXJhIHVuYSBwZXRpY2lvbiBwYXJhIHJlY2liaXIgbGEgY2xhdmUgZGVsIHJlY2FwdGNoYS4gRW4gY2FzbyBkZSBubyB0ZW5lciBleGl0byxcbiAgICAgKiB1dGlsaXphIGxvcyBhcmNoaXZvcyBlc3RhdGljb3MgcGFyYSByZXRvcm5hciB1bmEgY2xhdmUgcG9yIGRlZmVjdG8uIFJlbGxlbmEgZWwgT2JzZXJ2YWJsZSBjb25cbiAgICAgKiBsb3MgZGF0b3MgZ2VuZXJhZG9zLlxuICAgICAqL1xuXHRwcml2YXRlIGdldFNpdGVLZXkoKXtcblx0XHRmaXJzdFZhbHVlRnJvbSh0aGlzLl9jb25uZWN0aW9uLmdldCh0aGlzLmNhcHRjaGFBcGkoKSkpLnRoZW4oXG5cdFx0XHQocmVzOiBhbnkpID0+IHtcblx0XHRcdFx0dGhpcy5fcmVjYXB0Y2hhU3ViamVjdC5uZXh0KCB7XG5cdFx0XHRcdFx0c2l0ZUtleTogcmVzLnNpdGVLZXkgPyByZXMuc2l0ZUtleSA6IHRoaXMuUkVDQVBUQ0hBX1NJVEVfS0VZU1t0aGlzLlJFQ0FQVENIQV9TSVRFU1t0aGlzLnVybEJhc2VGb3JtYXRdXVxuXHRcdFx0XHR9KVxuXHRcdFx0fSxcblx0XHRcdChlcnI6IGFueSkgPT4ge1xuXHRcdFx0XHR0aGlzLl9yZWNhcHRjaGFTdWJqZWN0Lm5leHQoeyBzaXRlS2V5OiB0aGlzLlJFQ0FQVENIQV9TSVRFX0tFWVNbdGhpcy5SRUNBUFRDSEFfU0lURVNbdGhpcy51cmxCYXNlRm9ybWF0XV19KVxuXHRcdFx0fVxuXHRcdClcblx0fVxufVxuIl19
@@ -0,0 +1,158 @@
1
+ import { inject, Injectable } from '@angular/core';
2
+ import { BehaviorSubject, firstValueFrom } from 'rxjs';
3
+ import { CheckoutService } from './checkout.service';
4
+ import { ConnectionService } from '../api';
5
+ import { ApiConstantsService } from '../constants';
6
+ import { CartService } from './cart.service';
7
+ import { StoresService } from './stores.service';
8
+ import { AnalyticsService } from './analytics';
9
+ import * as i0 from "@angular/core";
10
+ export class ShipmentService {
11
+ _checkoutService = inject(CheckoutService);
12
+ _connection = inject(ConnectionService);
13
+ _apiConsts = inject(ApiConstantsService);
14
+ _cartService = inject(CartService);
15
+ _storesService = inject(StoresService);
16
+ _analyticsService = inject(AnalyticsService);
17
+ _methodsSubject = new BehaviorSubject([]);
18
+ _costsSubject = new BehaviorSubject([]);
19
+ _stateSubject = new BehaviorSubject({ doing: false, ok: false, data: null });
20
+ methods$ = this._methodsSubject.asObservable();
21
+ costs$ = this._costsSubject.asObservable();
22
+ state$ = this._stateSubject.asObservable();
23
+ buttonsDisabled = false;
24
+ order;
25
+ _subscription = null;
26
+ //API URL
27
+ baseApi() { return 'shop-api/' + this._apiConsts.CHANNEL + '/' + 'checkout/' + this._cartService.getCartToken(); }
28
+ shipmentMethodsApi() { return this.baseApi() + '/shipping'; }
29
+ ;
30
+ putShipmentApi() { return this.baseApi() + '/shipping/' + this._stateSubject.getValue().data.method; }
31
+ ;
32
+ putContractApi = () => 'shop-api/' + this._apiConsts.CHANNEL + '/checkout/' + this._cartService.getCartToken() + '/shipping-contract';
33
+ calculatedCostsApi = () => 'shop-api/' + this._apiConsts.CHANNEL + '/carts/' + this._cartService.getCartToken() + '/multiple-estimated-shipping-cost';
34
+ constructor() { }
35
+ setMethod(method) {
36
+ // Deshabilitar todos los botones
37
+ //this.buttonsDisabled = true;
38
+ this._costsSubject.next([]);
39
+ this._stateSubject.next({ doing: true, ok: false, data: { method } });
40
+ return this.putShipment().then((res) => {
41
+ this._checkoutService.updateAsociatedData(res);
42
+ this.order = res;
43
+ return this.getCalculatedCosts();
44
+ }).then((res) => {
45
+ this.modifyCostsResponse(res, this.getUserData().shippingAddress.postcode, method);
46
+ return { success: true, order: this.order };
47
+ }).then((res) => {
48
+ const firstContract = this._costsSubject.getValue();
49
+ this.setContract(firstContract);
50
+ return { success: true, order: this.order };
51
+ }).catch((error) => {
52
+ console.log(error);
53
+ return { success: false, error: error };
54
+ });
55
+ }
56
+ putShipment() {
57
+ return firstValueFrom(this._connection.put(this.putShipmentApi(), { method: this._stateSubject.getValue().data.method }));
58
+ }
59
+ getCalculatedCosts() { return firstValueFrom(this._connection.get(this.calculatedCostsApi())); }
60
+ ;
61
+ getShipmentMethods = () => {
62
+ firstValueFrom(this._connection.getErrorNotHandler(this.shipmentMethodsApi())).then(res => {
63
+ this._methodsSubject.next(this.responseToList(res));
64
+ }, err => {
65
+ this._methodsSubject.next([]);
66
+ }).catch(err => {
67
+ this._methodsSubject.next([]);
68
+ });
69
+ };
70
+ responseToList(response) {
71
+ return (response.shipments && response.shipments.length > 0) && Object.keys(response.shipments[0].methods).map(key => response.shipments[0].methods[key]);
72
+ }
73
+ restartStep() {
74
+ throw new Error('Method not implemented.');
75
+ }
76
+ /**
77
+ * Obtener información obtenida en el paso de datos asociados al usuario y a la facturación
78
+ */
79
+ getUserData = () => this._checkoutService.getStepData('address');
80
+ // UTILS
81
+ /**
82
+ * @param response De api de solicitud de costos por metodo de envío seleccionado
83
+ * @param post_code Indicado en el paso de Addressing (datos personales y de facturación)
84
+ * @param method Metodo de envío seleccionado
85
+ */
86
+ modifyCostsResponse(response, post_code, method) {
87
+ response = response.multiplePrices;
88
+ let branch_delivery = response.findIndex((submethod) => submethod.name == 'branch_delivery');
89
+ if (branch_delivery != -1) {
90
+ response[branch_delivery].contracts = response[branch_delivery].contracts.map((contract) => {
91
+ let branch_property = contract.branch_property || {};
92
+ let address_data = branch_property.address || {};
93
+ return {
94
+ contract: 'branch_delivery',
95
+ name: contract.name,
96
+ price: contract.price,
97
+ ...address_data,
98
+ ...branch_property,
99
+ computed: (address_data.street || '') + ' N° ' + (address_data.number || '')
100
+ };
101
+ });
102
+ this._costsSubject.next(response);
103
+ }
104
+ if (method.includes('pickup_store')) {
105
+ let final_method_data = response;
106
+ this._subscription = this._storesService.stores.subscribe((stores) => {
107
+ if (stores.length) {
108
+ final_method_data.forEach((pickup_store) => {
109
+ pickup_store.contracts.forEach((contract) => {
110
+ const current_store = stores.find((store) => store.code == contract.name);
111
+ if (!current_store)
112
+ contract.detail = 'Sin información';
113
+ else
114
+ contract.detail = current_store.name + ' - ' + current_store.address;
115
+ return contract;
116
+ });
117
+ });
118
+ this._costsSubject.next(final_method_data);
119
+ }
120
+ });
121
+ }
122
+ else {
123
+ this._costsSubject.next(response);
124
+ }
125
+ }
126
+ ngOnDestroy() {
127
+ this._subscription && this._subscription.unsubscribe();
128
+ }
129
+ setContract(contract) {
130
+ const data = { ...contract, ...this.additionalParamsForContract(contract) };
131
+ return firstValueFrom(this._connection.put(this.putContractApi(), data)).then(order => {
132
+ this._analyticsService.callEvent('shipping_info', order);
133
+ this._checkoutService.updateAsociatedData(order);
134
+ return this._checkoutService.setStepData('shipment', order);
135
+ }, err => {
136
+ return new Promise((resolve, reject) => reject(new Error(err.error)));
137
+ }).catch(err => console.error(err));
138
+ }
139
+ additionalParamsForContract(contract) {
140
+ return {
141
+ shipping_method_contract: contract.shipping_method_contract
142
+ ? contract.shipping_method_contract
143
+ : contract.contract + '_' + contract.name,
144
+ shipping_method_branch_code: contract.shipping_method_branch_code
145
+ ? contract.shipping_method_branch_code
146
+ : (contract.contract && contract.contract == "branch_delivery") ? contract.number : contract.name
147
+ };
148
+ }
149
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ShipmentService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
150
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ShipmentService, providedIn: 'root' });
151
+ }
152
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ShipmentService, decorators: [{
153
+ type: Injectable,
154
+ args: [{
155
+ providedIn: 'root'
156
+ }]
157
+ }], ctorParameters: () => [] });
158
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hpcG1lbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVhc3ljb21tZXJjZS12MTgvc3JjL2xpYi9lYy1zZXJ2aWNlcy9zaGlwbWVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUE0QixNQUFNLE1BQU0sQ0FBQztBQUNqRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFckQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNuRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7QUFLL0MsTUFBTSxPQUFPLGVBQWU7SUFDaEIsZ0JBQWdCLEdBQW9CLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUM1RCxXQUFXLEdBQXNCLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQzNELFVBQVUsR0FBd0IsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDOUQsWUFBWSxHQUFnQixNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDaEQsY0FBYyxHQUFrQixNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDdEQsaUJBQWlCLEdBQXFCLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBRS9ELGVBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBTSxFQUFFLENBQUMsQ0FBQztJQUMvQyxhQUFhLEdBQUcsSUFBSSxlQUFlLENBQU0s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LENBQ0osQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUE7SUFDdEMsQ0FBQztJQUNELDJCQUEyQixDQUFDLFFBQVk7UUFDcEMsT0FBTztZQUNILHdCQUF3QixFQUNwQixRQUFRLENBQUMsd0JBQXdCO2dCQUM3QixDQUFDLENBQUMsUUFBUSxDQUFDLHdCQUF3QjtnQkFDbkMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEdBQUcsR0FBRyxHQUFHLFFBQVEsQ0FBQyxJQUFJO1lBQ2pELDJCQUEyQixFQUN2QixRQUFRLENBQUMsMkJBQTJCO2dCQUNoQyxDQUFDLENBQUMsUUFBUSxDQUFDLDJCQUEyQjtnQkFDdEMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsSUFBSSxRQUFRLENBQUMsUUFBUSxJQUFJLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJO1NBQzVHLENBQUE7SUFDTCxDQUFDO3VHQWhLUSxlQUFlOzJHQUFmLGVBQWUsY0FGWixNQUFNOzsyRkFFVCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBmaXJzdFZhbHVlRnJvbSwgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDaGVja291dFNlcnZpY2UgfSBmcm9tICcuL2NoZWNrb3V0LnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2hlY2tvdXRQcm9jZXNzU3RhdGUgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IENvbm5lY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vYXBpJztcbmltcG9ydCB7IEFwaUNvbnN0YW50c1NlcnZpY2UgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgQ2FydFNlcnZpY2UgfSBmcm9tICcuL2NhcnQuc2VydmljZSc7XG5pbXBvcnQgeyBTdG9yZXNTZXJ2aWNlIH0gZnJvbSAnLi9zdG9yZXMuc2VydmljZSc7XG5pbXBvcnQgeyBBbmFseXRpY3NTZXJ2aWNlIH0gZnJvbSAnLi9hbmFseXRpY3MnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFNoaXBtZW50U2VydmljZSB7XG4gICAgcHJpdmF0ZSBfY2hlY2tvdXRTZXJ2aWNlOiBDaGVja291dFNlcnZpY2UgPSBpbmplY3QoQ2hlY2tvdXRTZXJ2aWNlKTtcbiAgICBwcml2YXRlIF9jb25uZWN0aW9uOiBDb25uZWN0aW9uU2VydmljZSA9IGluamVjdChDb25uZWN0aW9uU2VydmljZSk7XG4gICAgcHJpdmF0ZSBfYXBpQ29uc3RzOiBBcGlDb25zdGFudHNTZXJ2aWNlID0gaW5qZWN0KEFwaUNvbnN0YW50c1NlcnZpY2UpO1xuICAgIHByaXZhdGUgX2NhcnRTZXJ2aWNlOiBDYXJ0U2VydmljZSA9IGluamVjdChDYXJ0U2VydmljZSk7XG4gICAgcHJpdmF0ZSBfc3RvcmVzU2VydmljZTogU3RvcmVzU2VydmljZSA9IGluamVjdChTdG9yZXNTZXJ2aWNlKTtcbiAgICBwcml2YXRlIF9hbmFseXRpY3NTZXJ2aWNlOiBBbmFseXRpY3NTZXJ2aWNlID0gaW5qZWN0KEFuYWx5dGljc1NlcnZpY2UpO1xuXG4gICAgcHJpdmF0ZSBfbWV0aG9kc1N1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4oW10pO1xuICAgIHByaXZhdGUgX2Nvc3RzU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55PihbXSk7XG4gICAgcHJpdmF0ZSBfc3RhdGVTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxDaGVja291dFByb2Nlc3NTdGF0ZT4oeyBkb2luZzogZmFsc2UsIG9rOiBmYWxzZSwgZGF0YTogbnVsbCB9KTtcblxuICAgIHB1YmxpYyBtZXRob2RzJDogT2JzZXJ2YWJsZTxhbnk+ID0gdGhpcy5fbWV0aG9kc1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgcHVibGljIGNvc3RzJDogT2JzZXJ2YWJsZTxhbnlbXT4gPSB0aGlzLl9jb3N0c1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgcHVibGljIHN0YXRlJDogT2JzZXJ2YWJsZTxhbnk+ID0gdGhpcy5fc3RhdGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICAgIHB1YmxpYyBidXR0b25zRGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwdWJsaWMgb3JkZXI6IGFueTtcbiAgICBwcml2YXRlIF9zdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiB8IG51bGwgPSBudWxsO1xuXG4gICAgLy9BUEkgVVJMXG4gICAgcHJpdmF0ZSBiYXNlQXBpKCkgeyByZXR1cm4gJ3Nob3AtYXBpLycgKyB0aGlzLl9hcGlDb25zdHMuQ0hBTk5FTCArICcvJyArICdjaGVja291dC8nICsgdGhpcy5fY2FydFNlcnZpY2UuZ2V0Q2FydFRva2VuKCk7IH1cblxuICAgIHB1YmxpYyBzaGlwbWVudE1ldGhvZHNBcGkoKSB7IHJldHVybiB0aGlzLmJhc2VBcGkoKSArICcvc2hpcHBpbmcnIH07XG4gICAgcHVibGljIHB1dFNoaXBtZW50QXBpKCkgeyByZXR1cm4gdGhpcy5iYXNlQXBpKCkgKyAnL3NoaXBwaW5nLycgKyB0aGlzLl9zdGF0ZVN1YmplY3QuZ2V0VmFsdWUoKS5kYXRhLm1ldGhvZCB9O1xuICAgIHB1YmxpYyBwdXRDb250cmFjdEFwaSA9ICgpID0+ICdzaG9wLWFwaS8nICsgdGhpcy5fYXBpQ29uc3RzLkNIQU5ORUwgKyAnL2NoZWNrb3V0LycgKyB0aGlzLl9jYXJ0U2VydmljZS5nZXRDYXJ0VG9rZW4oKSArICcvc2hpcHBpbmctY29udHJhY3QnO1xuICAgIHB1YmxpYyBjYWxjdWxhdGVkQ29zdHNBcGkgPSAoKSA9PiAnc2hvcC1hcGkvJyArIHRoaXMuX2FwaUNvbnN0cy5DSEFOTkVMICsgJy9jYXJ0cy8nICsgdGhpcy5fY2FydFNlcnZpY2UuZ2V0Q2FydFRva2VuKCkgKyAnL211bHRpcGxlLWVzdGltYXRlZC1zaGlwcGluZy1jb3N0JztcblxuXG4gICAgY29uc3RydWN0b3IoKSB7IH1cblxuICAgIHNldE1ldGhvZChtZXRob2Q6IGFueSk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIC8vIERlc2hhYmlsaXRhciB0b2RvcyBsb3MgYm90b25lc1xuICAgICAgICAvL3RoaXMuYnV0dG9uc0Rpc2FibGVkID0gdHJ1ZTtcblxuICAgICAgICB0aGlzLl9jb3N0c1N1YmplY3QubmV4dChbXSk7XG4gICAgICAgIHRoaXMuX3N0YXRlU3ViamVjdC5uZXh0KHsgZG9pbmc6IHRydWUsIG9rOiBmYWxzZSwgZGF0YTogeyBtZXRob2QgfSB9KTtcblxuICAgICAgICByZXR1cm4gdGhpcy5wdXRTaGlwbWVudCgpLnRoZW4oXG4gICAgICAgICAgICAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9jaGVja291dFNlcnZpY2UudXBkYXRlQXNvY2lhdGVkRGF0YShyZXMpO1xuICAgICAgICAgICAgICAgIHRoaXMub3JkZXIgPSByZXM7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0Q2FsY3VsYXRlZENvc3RzKClcbiAgICAgICAgICAgIH0pLnRoZW4oXG4gICAgICAgICAgICAgICAgKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubW9kaWZ5Q29zdHNSZXNwb25zZShyZXMsIHRoaXMuZ2V0VXNlckRhdGEoKS5zaGlwcGluZ0FkZHJlc3MucG9zdGNvZGUsIG1ldGhvZClcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgc3VjY2VzczogdHJ1ZSwgb3JkZXI6IHRoaXMub3JkZXIgfTtcbiAgICAgICAgICAgICAgICB9KS50aGVuKFxuICAgICAgICAgICAgICAgICAgICAocmVzOmFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZmlyc3RDb250cmFjdCA9IHRoaXMuX2Nvc3RzU3ViamVjdC5nZXRWYWx1ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRDb250cmFjdChmaXJzdENvbnRyYWN0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7IHN1Y2Nlc3M6IHRydWUsIG9yZGVyOiB0aGlzLm9yZGVyIH07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICApLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlcnJvcilcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgc3VjY2VzczogZmFsc2UsIGVycm9yOiBlcnJvciB9O1xuICAgICAgICAgICAgICAgIH0pXG4gICAgfVxuXG4gICAgcHJpdmF0ZSBwdXRTaGlwbWVudCgpIHtcbiAgICAgICAgcmV0dXJuIGZpcnN0VmFsdWVGcm9tKHRoaXMuX2Nvbm5lY3Rpb24ucHV0KHRoaXMucHV0U2hpcG1lbnRBcGkoKSwgeyBtZXRob2Q6IHRoaXMuX3N0YXRlU3ViamVjdC5nZXRWYWx1ZSgpLmRhdGEubWV0aG9kIH0pKTtcbiAgICB9XG5cbiAgICBnZXRDYWxjdWxhdGVkQ29zdHMoKSB7IHJldHVybiBmaXJzdFZhbHVlRnJvbSh0aGlzLl9jb25uZWN0aW9uLmdldCh0aGlzLmNhbGN1bGF0ZWRDb3N0c0FwaSgpKSkgfTtcblxuICAgIGdldFNoaXBtZW50TWV0aG9kcyA9ICgpID0+IHtcbiAgICAgICAgZmlyc3RWYWx1ZUZyb20odGhpcy5fY29ubmVjdGlvbi5nZXRFcnJvck5vdEhhbmRsZXIodGhpcy5zaGlwbWVudE1ldGhvZHNBcGkoKSkpLnRoZW4oXG4gICAgICAgICAgICByZXMgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX21ldGhvZHNTdWJqZWN0Lm5leHQodGhpcy5yZXNwb25zZVRvTGlzdChyZXMpKVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGVyciA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbWV0aG9kc1N1YmplY3QubmV4dChbXSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgKS5jYXRjaChlcnIgPT4ge1xuICAgICAgICAgICAgdGhpcy5fbWV0aG9kc1N1YmplY3QubmV4dChbXSlcbiAgICAgICAgfSlcbiAgICB9XG4gICAgcmVzcG9uc2VUb0xpc3QocmVzcG9uc2U6IGFueSkge1xuICAgICAgICByZXR1cm4gKHJlc3BvbnNlLnNoaXBtZW50cyAmJiByZXNwb25zZS5zaGlwbWVudHMubGVuZ3RoID4gMCkgJiYgT2JqZWN0LmtleXMocmVzcG9uc2Uuc2hpcG1lbnRzWzBdLm1ldGhvZHMpLm1hcChrZXkgPT4gcmVzcG9uc2Uuc2hpcG1lbnRzWzBdLm1ldGhvZHNba2V5XSk7XG4gICAgfVxuXG4gICAgcmVzdGFydFN0ZXAoKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgICB9XG4gICAgLyoqXG4gICAgKiBPYnRlbmVyIGluZm9ybWFjacOzbiBvYnRlbmlkYSBlbiBlbCBwYXNvIGRlIGRhdG9zIGFzb2NpYWRvcyBhbCB1c3VhcmlvIHkgYSBsYSBmYWN0dXJhY2nDs25cbiAgICAqL1xuICAgIGdldFVzZXJEYXRhID0gKCkgPT4gdGhpcy5fY2hlY2tvdXRTZXJ2aWNlLmdldFN0ZXBEYXRhKCdhZGRyZXNzJyk7XG4gICAgLy8gVVRJTFNcblxuICAgIC8qKlxuICAgICAqIEBwYXJhbSByZXNwb25zZSBEZSBhcGkgZGUgc29saWNpdHVkIGRlIGNvc3RvcyBwb3IgbWV0b2RvIGRlIGVudsOtbyBzZWxlY2Npb25hZG9cbiAgICAgKiBAcGFyYW0gcG9zdF9jb2RlIEluZGljYWRvIGVuIGVsIHBhc28gZGUgQWRkcmVzc2luZyAoZGF0b3MgcGVyc29uYWxlcyB5IGRlIGZhY3R1cmFjacOzbilcbiAgICAgKiBAcGFyYW0gbWV0aG9kIE1ldG9kbyBkZSBlbnbDrW8gc2VsZWNjaW9uYWRvXG4gICAgICovXG4gICAgbW9kaWZ5Q29zdHNSZXNwb25zZShyZXNwb25zZTogYW55LCBwb3N0X2NvZGU6IGFueSwgbWV0aG9kOiBhbnkpIHtcbiAgICAgICAgcmVzcG9uc2UgPSByZXNwb25zZS5tdWx0aXBsZVByaWNlcztcbiAgICAgICAgbGV0IGJyYW5jaF9kZWxpdmVyeSA9IHJlc3BvbnNlLmZpbmRJbmRleCgoc3VibWV0aG9kOiBhbnkpID0+IHN1Ym1ldGhvZC5uYW1lID09ICdicmFuY2hfZGVsaXZlcnknKTtcbiAgICAgICAgaWYgKGJyYW5jaF9kZWxpdmVyeSAhPSAtMSkge1xuICAgICAgICAgICAgcmVzcG9uc2VbYnJhbmNoX2RlbGl2ZXJ5XS5jb250cmFjdHMgPSByZXNwb25zZVticmFuY2hfZGVsaXZlcnldLmNvbnRyYWN0cy5tYXAoXG4gICAgICAgICAgICAgICAgKGNvbnRyYWN0OiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGJyYW5jaF9wcm9wZXJ0eSA9IGNvbnRyYWN0LmJyYW5jaF9wcm9wZXJ0eSB8fCB7fTtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGFkZHJlc3NfZGF0YSA9IGJyYW5jaF9wcm9wZXJ0eS5hZGRyZXNzIHx8IHt9O1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udHJhY3Q6ICdicmFuY2hfZGVsaXZlcnknLFxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogY29udHJhY3QubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHByaWNlOiBjb250cmFjdC5wcmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLmFkZHJlc3NfZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLmJyYW5jaF9wcm9wZXJ0eSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbXB1dGVkOiAoYWRkcmVzc19kYXRhLnN0cmVldCB8fCAnJykgKyAnIE7CsCAnICsgKGFkZHJlc3NfZGF0YS5udW1iZXIgfHwgJycpXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLl9jb3N0c1N1YmplY3QubmV4dChyZXNwb25zZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG1ldGhvZC5pbmNsdWRlcygncGlja3VwX3N0b3JlJykpIHtcbiAgICAgICAgICAgIGxldCBmaW5hbF9tZXRob2RfZGF0YSA9IHJlc3BvbnNlO1xuICAgICAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uID0gdGhpcy5fc3RvcmVzU2VydmljZS5zdG9yZXMuc3Vic2NyaWJlKChzdG9yZXM6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChzdG9yZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIGZpbmFsX21ldGhvZF9kYXRhLmZvckVhY2goKHBpY2t1cF9zdG9yZTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwaWNrdXBfc3RvcmUuY29udHJhY3RzLmZvckVhY2goKGNvbnRyYWN0OiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50X3N0b3JlID0gc3RvcmVzLmZpbmQoKHN0b3JlOiBhbnkpID0+IHN0b3JlLmNvZGUgPT0gY29udHJhY3QubmFtZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFjdXJyZW50X3N0b3JlKSBjb250cmFjdC5kZXRhaWwgPSAnU2luIGluZm9ybWFjacOzbic7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBjb250cmFjdC5kZXRhaWwgPSBjdXJyZW50X3N0b3JlLm5hbWUgKyAnIC0gJyArIGN1cnJlbnRfc3RvcmUuYWRkcmVzcztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29udHJhY3Q7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jb3N0c1N1YmplY3QubmV4dChmaW5hbF9tZXRob2RfZGF0YSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2Nvc3RzU3ViamVjdC5uZXh0KHJlc3BvbnNlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb24gJiYgdGhpcy5fc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgc2V0Q29udHJhY3QoY29udHJhY3Q6IGFueSl7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB7IC4uLmNvbnRyYWN0LCAuLi50aGlzLmFkZGl0aW9uYWxQYXJhbXNGb3JDb250cmFjdChjb250cmFjdCkgfTtcbiAgICAgICAgcmV0dXJuIGZpcnN0VmFsdWVGcm9tKHRoaXMuX2Nvbm5lY3Rpb24ucHV0KHRoaXMucHV0Q29udHJhY3RBcGkoKSwgZGF0YSkpLnRoZW4oXG4gICAgICAgICAgICBvcmRlciA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fYW5hbHl0aWNzU2VydmljZS5jYWxsRXZlbnQoJ3NoaXBwaW5nX2luZm8nLCBvcmRlcik7XG4gICAgICAgICAgICAgICAgdGhpcy5fY2hlY2tvdXRTZXJ2aWNlLnVwZGF0ZUFzb2NpYXRlZERhdGEob3JkZXIpO1xuICAgICAgICAgICAgICAgIHJldHVybiAgdGhpcy5fY2hlY2tvdXRTZXJ2aWNlLnNldFN0ZXBEYXRhKCdzaGlwbWVudCcsb3JkZXIpO30sXG4gICAgICAgICAgICBlcnIgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiByZWplY3QobmV3IEVycm9yKGVyci5lcnJvcikpKVxuICAgICAgICAgICAgfVxuICAgICAgICApLmNhdGNoKGVyciA9PiBjb25zb2xlLmVycm9yKGVycikpXG4gICAgfVxuICAgIGFkZGl0aW9uYWxQYXJhbXNGb3JDb250cmFjdChjb250cmFjdDphbnkpe1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgc2hpcHBpbmdfbWV0aG9kX2NvbnRyYWN0OlxuICAgICAgICAgICAgICAgIGNvbnRyYWN0LnNoaXBwaW5nX21ldGhvZF9jb250cmFjdFxuICAgICAgICAgICAgICAgICAgICA/IGNvbnRyYWN0LnNoaXBwaW5nX21ldGhvZF9jb250cmFjdFxuICAgICAgICAgICAgICAgICAgICA6IGNvbnRyYWN0LmNvbnRyYWN0ICsgJ18nICsgY29udHJhY3QubmFtZSxcbiAgICAgICAgICAgIHNoaXBwaW5nX21ldGhvZF9icmFuY2hfY29kZTpcbiAgICAgICAgICAgICAgICBjb250cmFjdC5zaGlwcGluZ19tZXRob2RfYnJhbmNoX2NvZGVcbiAgICAgICAgICAgICAgICAgICAgPyBjb250cmFjdC5zaGlwcGluZ19tZXRob2RfYnJhbmNoX2NvZGVcbiAgICAgICAgICAgICAgICAgICAgOiAoY29udHJhY3QuY29udHJhY3QgJiYgY29udHJhY3QuY29udHJhY3QgPT0gXCJicmFuY2hfZGVsaXZlcnlcIikgPyBjb250cmFjdC5udW1iZXIgOiBjb250cmFjdC5uYW1lXG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,27 @@
1
+ import { inject, Injectable } from '@angular/core';
2
+ import { BehaviorSubject, firstValueFrom } from 'rxjs';
3
+ import { ApiConstantsService } from '../constants';
4
+ import { ConnectionService } from '../api';
5
+ import * as i0 from "@angular/core";
6
+ export class StoresService {
7
+ _apiConsts = inject(ApiConstantsService);
8
+ _connection = inject(ConnectionService);
9
+ _storesSubject = new BehaviorSubject([]);
10
+ stores = this._storesSubject.asObservable();
11
+ getAllStoresApi = () => 'shop-api/' + this._apiConsts.CHANNEL + '/stores';
12
+ constructor() {
13
+ firstValueFrom(this._connection.get(this.getAllStoresApi())).then(res => {
14
+ res.length && this._storesSubject.next(res);
15
+ !res.length && this._storesSubject.next(null);
16
+ });
17
+ }
18
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: StoresService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
19
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: StoresService, providedIn: 'root' });
20
+ }
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: StoresService, decorators: [{
22
+ type: Injectable,
23
+ args: [{
24
+ providedIn: 'root'
25
+ }]
26
+ }], ctorParameters: () => [] });
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmVzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lYXN5Y29tbWVyY2UtdjE4L3NyYy9saWIvZWMtc2VydmljZXMvc3RvcmVzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ25ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFFBQVEsQ0FBQzs7QUFNM0MsTUFBTSxPQUFPLGFBQWE7SUFDakIsVUFBVSxHQUF3QixNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUM5RCxXQUFXLEdBQXNCLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBRTNELGNBQWMsR0FBRyxJQUFJLGVBQWUsQ0FBaUIsRUFBRSxDQUFDLENBQUM7SUFDMUQsTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUM7SUFFbkQsZUFBZSxHQUFHLEdBQUcsRUFBRSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUM7SUFFMUU7UUFDQyxjQUFjLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQ2hFLEdBQUcsQ0FBQyxFQUFFO1lBQ0wsR0FBRyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM1QyxDQUFDLEdBQUcsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0MsQ0FBQyxDQUNELENBQUE7SUFDRixDQUFDO3VHQWhCVyxhQUFhOzJHQUFiLGFBQWEsY0FGYixNQUFNOzsyRkFFTixhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNYLFVBQVUsRUFBRSxNQUFNO2lCQUNsQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBmaXJzdFZhbHVlRnJvbSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQXBpQ29uc3RhbnRzU2VydmljZSB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBDb25uZWN0aW9uU2VydmljZSB9IGZyb20gJy4uL2FwaSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvc3RvcmUnO1xuXG5ASW5qZWN0YWJsZSh7XG5cdHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBTdG9yZXNTZXJ2aWNlIHtcblx0cHJpdmF0ZSBfYXBpQ29uc3RzOiBBcGlDb25zdGFudHNTZXJ2aWNlID0gaW5qZWN0KEFwaUNvbnN0YW50c1NlcnZpY2UpO1xuXHRwcml2YXRlIF9jb25uZWN0aW9uOiBDb25uZWN0aW9uU2VydmljZSA9IGluamVjdChDb25uZWN0aW9uU2VydmljZSk7XG5cblx0cHJpdmF0ZSBfc3RvcmVzU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8U3RvcmVbXSB8IG51bGw+KFtdKTtcblx0cHVibGljIHN0b3JlcyA9IHRoaXMuX3N0b3Jlc1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG5cblx0Z2V0QWxsU3RvcmVzQXBpID0gKCkgPT4gJ3Nob3AtYXBpLycgKyB0aGlzLl9hcGlDb25zdHMuQ0hBTk5FTCArICcvc3RvcmVzJztcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRmaXJzdFZhbHVlRnJvbSh0aGlzLl9jb25uZWN0aW9uLmdldCh0aGlzLmdldEFsbFN0b3Jlc0FwaSgpKSkudGhlbihcblx0XHRcdHJlcyA9PiB7XG5cdFx0XHRcdHJlcy5sZW5ndGggJiYgdGhpcy5fc3RvcmVzU3ViamVjdC5uZXh0KHJlcyk7XG5cdFx0XHRcdCFyZXMubGVuZ3RoICYmIHRoaXMuX3N0b3Jlc1N1YmplY3QubmV4dChudWxsKTtcblx0XHRcdH1cblx0XHQpXG5cdH1cbn1cbiJdfQ==
@@ -0,0 +1,16 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class TestService {
4
+ constructor() {
5
+ console.log('hola');
6
+ }
7
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TestService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
8
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TestService, providedIn: 'root' });
9
+ }
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: TestService, decorators: [{
11
+ type: Injectable,
12
+ args: [{
13
+ providedIn: 'root'
14
+ }]
15
+ }], ctorParameters: () => [] });
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctZWFzeWNvbW1lcmNlLXYxOC9zcmMvbGliL2VjLXNlcnZpY2VzL3Rlc3Quc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8sV0FBVztJQUV0QjtRQUNFLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDckIsQ0FBQzt1R0FKUyxXQUFXOzJHQUFYLFdBQVcsY0FGVixNQUFNOzsyRkFFUCxXQUFXO2tCQUh2QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgVGVzdFNlcnZpY2Uge1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGNvbnNvbGUubG9nKCdob2xhJyk7XG4gICB9XG59XG4iXX0=