@esolve/ng-esolve-connect 0.28.0 → 0.29.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (459) hide show
  1. package/README.md +6 -0
  2. package/esm2020/esolve-ng-esolve-connect.mjs +2 -2
  3. package/esm2020/index.mjs +64 -0
  4. package/esm2020/lib/account/address/esolve-address-record.interface.mjs +1 -1
  5. package/esm2020/lib/account/address/esolve-address-response.interface.mjs +1 -1
  6. package/esm2020/lib/account/address/esolve-address-result.model.mjs +1 -1
  7. package/esm2020/lib/account/address/esolve-address-set-data.interface.mjs +1 -1
  8. package/esm2020/lib/account/address/esolve-address-type.type.mjs +1 -1
  9. package/esm2020/lib/account/address/esolve-address.model.mjs +1 -1
  10. package/esm2020/lib/account/address/index.mjs +1 -1
  11. package/esm2020/lib/account/confirmation/esolve-account-confirmation-post-response-item.interface.mjs +1 -1
  12. package/esm2020/lib/account/confirmation/esolve-account-confirmation-result.model.mjs +1 -1
  13. package/esm2020/lib/account/confirmation/index.mjs +1 -1
  14. package/esm2020/lib/account/esolve-account.service.mjs +8 -4
  15. package/esm2020/lib/account/esolve-geocode-result.interface.mjs +1 -1
  16. package/esm2020/lib/account/esolve-location-update-result.model.mjs +1 -1
  17. package/esm2020/lib/account/index.mjs +1 -1
  18. package/esm2020/lib/account/password/esolve-change-password-result.model.mjs +1 -1
  19. package/esm2020/lib/account/password/esolve-forgot-password-get-result.interface.mjs +1 -1
  20. package/esm2020/lib/account/password/esolve-forgot-password-response.interface.mjs +1 -1
  21. package/esm2020/lib/account/password/esolve-reset-password-result.model.mjs +1 -1
  22. package/esm2020/lib/account/password/index.mjs +1 -1
  23. package/esm2020/lib/account/registration/esolve-registration-data.interface.mjs +1 -1
  24. package/esm2020/lib/account/registration/esolve-registration-post-response-item.interface.mjs +1 -1
  25. package/esm2020/lib/account/registration/esolve-registration-result.model.mjs +1 -1
  26. package/esm2020/lib/account/registration/index.mjs +1 -1
  27. package/esm2020/lib/account/transaction/esolve-transaction-address.model.mjs +1 -1
  28. package/esm2020/lib/account/transaction/esolve-transaction-client-record.interface.mjs +1 -1
  29. package/esm2020/lib/account/transaction/esolve-transaction-client.model.mjs +1 -1
  30. package/esm2020/lib/account/transaction/esolve-transaction-item-price.model.mjs +1 -1
  31. package/esm2020/lib/account/transaction/esolve-transaction-item-record.interface.mjs +1 -1
  32. package/esm2020/lib/account/transaction/esolve-transaction-item.model.mjs +1 -1
  33. package/esm2020/lib/account/transaction/esolve-transaction-list.model.mjs +1 -1
  34. package/esm2020/lib/account/transaction/esolve-transaction-location-record.interface.mjs +1 -1
  35. package/esm2020/lib/account/transaction/esolve-transaction-location.model.mjs +1 -1
  36. package/esm2020/lib/account/transaction/esolve-transaction-options.interface.mjs +1 -1
  37. package/esm2020/lib/account/transaction/esolve-transaction-payment-method-record.interface.mjs +1 -1
  38. package/esm2020/lib/account/transaction/esolve-transaction-payment-method.model.mjs +1 -1
  39. package/esm2020/lib/account/transaction/esolve-transaction-record.interface.mjs +1 -1
  40. package/esm2020/lib/account/transaction/esolve-transaction-shipping-method-record.interface.mjs +1 -1
  41. package/esm2020/lib/account/transaction/esolve-transaction-shipping-method.model.mjs +1 -1
  42. package/esm2020/lib/account/transaction/esolve-transaction-type.type.mjs +1 -1
  43. package/esm2020/lib/account/transaction/esolve-transaction-user-record.interface.mjs +1 -1
  44. package/esm2020/lib/account/transaction/esolve-transaction-user.model.mjs +1 -1
  45. package/esm2020/lib/account/transaction/esolve-transaction.model.mjs +1 -1
  46. package/esm2020/lib/account/transaction/index.mjs +1 -1
  47. package/esm2020/lib/account/user-account/classes/esolve-statement-ageing.model.mjs +1 -1
  48. package/esm2020/lib/account/user-account/classes/esolve-statement-balances.model.mjs +1 -1
  49. package/esm2020/lib/account/user-account/classes/esolve-statement-transaction.model.mjs +1 -1
  50. package/esm2020/lib/account/user-account/classes/esolve-statement.model.mjs +1 -1
  51. package/esm2020/lib/account/user-account/classes/esolve-user-account-business.model.mjs +1 -1
  52. package/esm2020/lib/account/user-account/classes/esolve-user-account-contact.model.mjs +1 -1
  53. package/esm2020/lib/account/user-account/classes/esolve-user-account-result.model.mjs +1 -1
  54. package/esm2020/lib/account/user-account/classes/esolve-user-account.model.mjs +1 -1
  55. package/esm2020/lib/account/user-account/classes/esolve-user-client-account-balances.model.mjs +1 -1
  56. package/esm2020/lib/account/user-account/classes/esolve-user-client-account.model.mjs +1 -1
  57. package/esm2020/lib/account/user-account/classes/index.mjs +1 -1
  58. package/esm2020/lib/account/user-account/index.mjs +1 -1
  59. package/esm2020/lib/account/user-account/interfaces/esolve-statement-ageing-record.interface.mjs +1 -1
  60. package/esm2020/lib/account/user-account/interfaces/esolve-statement-balances-record.interface.mjs +1 -1
  61. package/esm2020/lib/account/user-account/interfaces/esolve-statement-record.interface.mjs +1 -1
  62. package/esm2020/lib/account/user-account/interfaces/esolve-statement-transaction-record.interface.mjs +1 -1
  63. package/esm2020/lib/account/user-account/interfaces/esolve-user-account-data.interface.mjs +1 -1
  64. package/esm2020/lib/account/user-account/interfaces/esolve-user-account-record.interface.mjs +1 -1
  65. package/esm2020/lib/account/user-account/interfaces/esolve-user-client-account-balances-record.interface.mjs +1 -1
  66. package/esm2020/lib/account/user-account/interfaces/esolve-user-client-account-record.interface.mjs +1 -1
  67. package/esm2020/lib/account/user-account/interfaces/index.mjs +1 -1
  68. package/esm2020/lib/auth/esolve-auth-check-data.interface.mjs +1 -1
  69. package/esm2020/lib/auth/esolve-auth-check-response.interface.mjs +1 -1
  70. package/esm2020/lib/auth/esolve-auth-data.interface.mjs +1 -1
  71. package/esm2020/lib/auth/esolve-auth-get-data.interface.mjs +1 -1
  72. package/esm2020/lib/auth/esolve-auth-get-response.interface.mjs +1 -1
  73. package/esm2020/lib/auth/esolve-auth-interceptor.service.mjs +5 -4
  74. package/esm2020/lib/auth/esolve-auth-response-data.type.mjs +1 -1
  75. package/esm2020/lib/auth/esolve-auth-response.interface.mjs +1 -1
  76. package/esm2020/lib/auth/esolve-auth-result.type.mjs +1 -1
  77. package/esm2020/lib/auth/esolve-auth.service.mjs +8 -5
  78. package/esm2020/lib/auth/esolve-login-post-response-item.interface.mjs +1 -1
  79. package/esm2020/lib/auth/index.mjs +1 -1
  80. package/esm2020/lib/banners/esolve-banner-image-hotspot-coords.interface.mjs +1 -1
  81. package/esm2020/lib/banners/esolve-banner-image-hotspot-record.interface.mjs +1 -1
  82. package/esm2020/lib/banners/esolve-banner-image-hotspot.model.mjs +1 -1
  83. package/esm2020/lib/banners/esolve-banner-image-record.interface.mjs +1 -1
  84. package/esm2020/lib/banners/esolve-banner-image-set.interface.mjs +1 -1
  85. package/esm2020/lib/banners/esolve-banner-image-type.type.mjs +1 -1
  86. package/esm2020/lib/banners/esolve-banner-image.model.mjs +1 -1
  87. package/esm2020/lib/banners/esolve-banner-link.interface.mjs +1 -1
  88. package/esm2020/lib/banners/esolve-banner-record.interface.mjs +1 -1
  89. package/esm2020/lib/banners/esolve-banner-type.type.mjs +1 -1
  90. package/esm2020/lib/banners/esolve-banner.model.mjs +1 -1
  91. package/esm2020/lib/banners/esolve-banner.service.mjs +5 -5
  92. package/esm2020/lib/banners/index.mjs +1 -1
  93. package/esm2020/lib/cart/classes/esolve-cart-item.model.mjs +1 -1
  94. package/esm2020/lib/cart/classes/esolve-cart-stock-item.model.mjs +1 -1
  95. package/esm2020/lib/cart/classes/esolve-cart-totals.model.mjs +1 -1
  96. package/esm2020/lib/cart/classes/esolve-checkout-result.model.mjs +1 -1
  97. package/esm2020/lib/cart/classes/esolve-empty-cart-result.model.mjs +1 -1
  98. package/esm2020/lib/cart/classes/esolve-transaction-analytics-data.model.mjs +1 -1
  99. package/esm2020/lib/cart/classes/index.mjs +1 -1
  100. package/esm2020/lib/cart/esolve-cart.service.mjs +8 -5
  101. package/esm2020/lib/cart/index.mjs +1 -1
  102. package/esm2020/lib/cart/interfaces/esolve-cart-additional-where.interface.mjs +1 -1
  103. package/esm2020/lib/cart/interfaces/esolve-cart-empty-response.interface.mjs +1 -1
  104. package/esm2020/lib/cart/interfaces/esolve-cart-item-record.interface.mjs +1 -1
  105. package/esm2020/lib/cart/interfaces/esolve-cart-item-response.interface.mjs +1 -1
  106. package/esm2020/lib/cart/interfaces/esolve-cart-set-item.interface.mjs +1 -1
  107. package/esm2020/lib/cart/interfaces/esolve-cart-totals-record.interface.mjs +1 -1
  108. package/esm2020/lib/cart/interfaces/esolve-checkout-response.interface.mjs +1 -1
  109. package/esm2020/lib/cart/interfaces/esolve-tracking-code.interface.mjs +1 -1
  110. package/esm2020/lib/cart/interfaces/esolve-transaction-analytics-data-record.interface.mjs +1 -1
  111. package/esm2020/lib/cart/interfaces/index.mjs +1 -1
  112. package/esm2020/lib/cart/types/esolve-cart-set-action.type.mjs +1 -1
  113. package/esm2020/lib/cart/types/esolve-cart.type.mjs +1 -1
  114. package/esm2020/lib/cart/types/index.mjs +1 -1
  115. package/esm2020/lib/category-tree/esolve-category-identifier.interface.mjs +1 -1
  116. package/esm2020/lib/category-tree/esolve-category-record.interface.mjs +1 -1
  117. package/esm2020/lib/category-tree/esolve-category-tree-item-options.interface.mjs +1 -1
  118. package/esm2020/lib/category-tree/esolve-category-tree-item-record.interface.mjs +1 -1
  119. package/esm2020/lib/category-tree/esolve-category-tree-item.model.mjs +1 -1
  120. package/esm2020/lib/category-tree/esolve-category-tree.service.mjs +5 -5
  121. package/esm2020/lib/category-tree/esolve-subcategory-record.interface.mjs +1 -1
  122. package/esm2020/lib/category-tree/index.mjs +1 -1
  123. package/esm2020/lib/coupons/classes/esolve-coupon.model.mjs +1 -1
  124. package/esm2020/lib/coupons/classes/index.mjs +1 -1
  125. package/esm2020/lib/coupons/esolve-coupons.service.mjs +6 -4
  126. package/esm2020/lib/coupons/index.mjs +1 -1
  127. package/esm2020/lib/coupons/interfaces/esolve-coupon-record.interface.mjs +1 -1
  128. package/esm2020/lib/coupons/interfaces/esolve-coupon-validation-error.interface.mjs +1 -1
  129. package/esm2020/lib/coupons/interfaces/esolve-coupon-validation-result.interface.mjs +1 -1
  130. package/esm2020/lib/coupons/interfaces/esolve-coupon-validation.interface.mjs +1 -1
  131. package/esm2020/lib/coupons/interfaces/index.mjs +1 -1
  132. package/esm2020/lib/coupons/types/esolve-coupons-cache.type.mjs +1 -1
  133. package/esm2020/lib/coupons/types/index.mjs +1 -1
  134. package/esm2020/lib/enquiry/esolve-enquiry-response.interface.mjs +1 -1
  135. package/esm2020/lib/enquiry/esolve-enquiry-result.model.mjs +1 -1
  136. package/esm2020/lib/enquiry/esolve-enquiry.service.mjs +7 -4
  137. package/esm2020/lib/enquiry/index.mjs +1 -1
  138. package/esm2020/lib/esolve-connect-config.constant.mjs +1 -1
  139. package/esm2020/lib/esolve-connect.config.mjs +1 -1
  140. package/esm2020/lib/locations/classes/esolve-location-address.model.mjs +1 -1
  141. package/esm2020/lib/locations/classes/esolve-location-contact-info.model.mjs +1 -1
  142. package/esm2020/lib/locations/classes/esolve-location-geo.model.mjs +1 -1
  143. package/esm2020/lib/locations/classes/esolve-location-pobox-address.model.mjs +1 -1
  144. package/esm2020/lib/locations/classes/esolve-location-trading-day.model.mjs +1 -1
  145. package/esm2020/lib/locations/classes/esolve-location-trading-times.model.mjs +1 -1
  146. package/esm2020/lib/locations/classes/esolve-location.model.mjs +1 -1
  147. package/esm2020/lib/locations/classes/index.mjs +1 -1
  148. package/esm2020/lib/locations/esolve-locations.service.mjs +5 -4
  149. package/esm2020/lib/locations/index.mjs +1 -1
  150. package/esm2020/lib/locations/interfaces/esolve-location-record.interface.mjs +1 -1
  151. package/esm2020/lib/locations/interfaces/index.mjs +1 -1
  152. package/esm2020/lib/manufacturers/esolve-manufacturer-image-size.type.mjs +1 -1
  153. package/esm2020/lib/manufacturers/esolve-manufacturer-options.interface.mjs +1 -1
  154. package/esm2020/lib/manufacturers/esolve-manufacturer-record.interface.mjs +1 -1
  155. package/esm2020/lib/manufacturers/esolve-manufacturer.model.mjs +1 -1
  156. package/esm2020/lib/manufacturers/esolve-manufacturers.service.mjs +5 -5
  157. package/esm2020/lib/manufacturers/index.mjs +1 -1
  158. package/esm2020/lib/menu/esolve-menu-item.model.mjs +1 -1
  159. package/esm2020/lib/menu/esolve-menu-tree-record.interface.mjs +1 -1
  160. package/esm2020/lib/menu/esolve-menu.service.mjs +5 -4
  161. package/esm2020/lib/menu/esolve-menu.type.mjs +1 -1
  162. package/esm2020/lib/menu/index.mjs +1 -1
  163. package/esm2020/lib/news/esolve-news-article-author-record.interface.mjs +1 -1
  164. package/esm2020/lib/news/esolve-news-article-author.model.mjs +1 -1
  165. package/esm2020/lib/news/esolve-news-article-list.model.mjs +1 -1
  166. package/esm2020/lib/news/esolve-news-article-options.interface.mjs +1 -1
  167. package/esm2020/lib/news/esolve-news-article-record.interface.mjs +1 -1
  168. package/esm2020/lib/news/esolve-news-article.model.mjs +1 -1
  169. package/esm2020/lib/news/esolve-news-group-record.interface.mjs +1 -1
  170. package/esm2020/lib/news/esolve-news-group.model.mjs +1 -1
  171. package/esm2020/lib/news/esolve-news.service.mjs +5 -5
  172. package/esm2020/lib/news/index.mjs +1 -1
  173. package/esm2020/lib/ng-esolve-connect.module.mjs +6 -8
  174. package/esm2020/lib/payment/classes/esolve-banking-details.model.mjs +1 -1
  175. package/esm2020/lib/payment/classes/esolve-payment-method.model.mjs +1 -1
  176. package/esm2020/lib/payment/classes/esolve-payment-result.model.mjs +1 -1
  177. package/esm2020/lib/payment/classes/esolve-vault-item-result.model.mjs +1 -1
  178. package/esm2020/lib/payment/classes/esolve-vault-item.model.mjs +1 -1
  179. package/esm2020/lib/payment/classes/index.mjs +1 -1
  180. package/esm2020/lib/payment/esolve-payment.service.mjs +7 -5
  181. package/esm2020/lib/payment/index.mjs +1 -1
  182. package/esm2020/lib/payment/interfaces/esolve-card-data.interface.mjs +1 -1
  183. package/esm2020/lib/payment/interfaces/esolve-payment-form-input.interface.mjs +1 -1
  184. package/esm2020/lib/payment/interfaces/esolve-payment-method-options.interface.mjs +1 -1
  185. package/esm2020/lib/payment/interfaces/esolve-payment-method-record.interface.mjs +1 -1
  186. package/esm2020/lib/payment/interfaces/esolve-payment-redirect-links.interface.mjs +1 -1
  187. package/esm2020/lib/payment/interfaces/esolve-payment-response.interface.mjs +1 -1
  188. package/esm2020/lib/payment/interfaces/esolve-payment-set-body.interface.mjs +1 -1
  189. package/esm2020/lib/payment/interfaces/esolve-payment-status.interface.mjs +1 -1
  190. package/esm2020/lib/payment/interfaces/esolve-vault-record.interface.mjs +1 -1
  191. package/esm2020/lib/payment/interfaces/esolve-vault-response.interface.mjs +1 -1
  192. package/esm2020/lib/payment/interfaces/index.mjs +1 -1
  193. package/esm2020/lib/payment/types/esolve-integration-type.type.mjs +1 -1
  194. package/esm2020/lib/payment/types/esolve-service-provider.type.mjs +1 -1
  195. package/esm2020/lib/payment/types/index.mjs +1 -1
  196. package/esm2020/lib/ranges/esolve-range-options.interface.mjs +1 -1
  197. package/esm2020/lib/ranges/esolve-range-record.interface.mjs +1 -1
  198. package/esm2020/lib/ranges/esolve-range.model.mjs +1 -1
  199. package/esm2020/lib/ranges/esolve-ranges.service.mjs +5 -5
  200. package/esm2020/lib/ranges/index.mjs +1 -1
  201. package/esm2020/lib/session/esolve-session-data.interface.mjs +1 -1
  202. package/esm2020/lib/session/esolve-session.model.mjs +1 -1
  203. package/esm2020/lib/session/esolve-session.service.mjs +5 -4
  204. package/esm2020/lib/session/esolve-stored-session.interface.mjs +1 -1
  205. package/esm2020/lib/session/index.mjs +1 -1
  206. package/esm2020/lib/shared/assets/esolve-asset-list.type.mjs +1 -1
  207. package/esm2020/lib/shared/assets/esolve-asset-options.interface.mjs +1 -1
  208. package/esm2020/lib/shared/assets/esolve-asset-record.interface.mjs +1 -1
  209. package/esm2020/lib/shared/assets/esolve-asset-type.type.mjs +1 -1
  210. package/esm2020/lib/shared/assets/esolve-asset.model.mjs +1 -1
  211. package/esm2020/lib/shared/assets/esolve-assets.service.mjs +5 -5
  212. package/esm2020/lib/shared/assets/esolve-linked-asset-record.interface.mjs +1 -1
  213. package/esm2020/lib/shared/assets/esolve-linked-asset.model.mjs +1 -1
  214. package/esm2020/lib/shared/assets/index.mjs +1 -1
  215. package/esm2020/lib/shared/cookie/esolve-cookie.service.mjs +5 -4
  216. package/esm2020/lib/shared/custom-fields/esolve-custom-fields.interface.mjs +1 -1
  217. package/esm2020/lib/shared/custom-fields/index.mjs +1 -1
  218. package/esm2020/lib/shared/errors/esolve-error-handler.service.mjs +4 -4
  219. package/esm2020/lib/shared/errors/esolve-http-error.model.mjs +1 -1
  220. package/esm2020/lib/shared/errors/index.mjs +1 -1
  221. package/esm2020/lib/shared/esolve-list.model.mjs +1 -1
  222. package/esm2020/lib/shared/esolve-result.model.mjs +1 -1
  223. package/esm2020/lib/shared/esolve-url-target.type.mjs +1 -1
  224. package/esm2020/lib/shared/filters/classes/esolve-multiple-select-filter.model.mjs +1 -1
  225. package/esm2020/lib/shared/filters/classes/esolve-range-filter.model.mjs +1 -1
  226. package/esm2020/lib/shared/filters/classes/esolve-single-select-filter.model.mjs +1 -1
  227. package/esm2020/lib/shared/filters/classes/index.mjs +1 -1
  228. package/esm2020/lib/shared/filters/esolve-filter-factory.mjs +1 -1
  229. package/esm2020/lib/shared/filters/index.mjs +1 -1
  230. package/esm2020/lib/shared/filters/interfaces/esolve-filter-definitions.interface.mjs +1 -1
  231. package/esm2020/lib/shared/filters/interfaces/esolve-filter-record.interface.mjs +1 -1
  232. package/esm2020/lib/shared/filters/interfaces/esolve-filter.interface.mjs +1 -1
  233. package/esm2020/lib/shared/filters/interfaces/esolve-range-filter-record.interface.mjs +1 -1
  234. package/esm2020/lib/shared/filters/interfaces/esolve-select-filter-record.interface.mjs +1 -1
  235. package/esm2020/lib/shared/filters/interfaces/esolve-select-filter.interface.mjs +1 -1
  236. package/esm2020/lib/shared/filters/interfaces/index.mjs +1 -1
  237. package/esm2020/lib/shared/filters/types/esolve-filter-list.type.mjs +1 -1
  238. package/esm2020/lib/shared/filters/types/esolve-filter-record-list.type.mjs +1 -1
  239. package/esm2020/lib/shared/filters/types/esolve-filter-type.type.mjs +1 -1
  240. package/esm2020/lib/shared/filters/types/esolve-range-filter-type.type.mjs +1 -1
  241. package/esm2020/lib/shared/filters/types/esolve-select-filter-type.type.mjs +1 -1
  242. package/esm2020/lib/shared/filters/types/index.mjs +1 -1
  243. package/esm2020/lib/shared/geocoder/esolve-geocode-address-record.interface.mjs +1 -1
  244. package/esm2020/lib/shared/geocoder/esolve-geocode-address-result.model.mjs +1 -1
  245. package/esm2020/lib/shared/geocoder/esolve-geocode-coords-result.model.mjs +1 -1
  246. package/esm2020/lib/shared/geocoder/esolve-geocode-result-record.interface.mjs +1 -1
  247. package/esm2020/lib/shared/geocoder/esolve-geocode-result.model.mjs +1 -1
  248. package/esm2020/lib/shared/geocoder/esolve-geocoder.service.mjs +5 -4
  249. package/esm2020/lib/shared/geocoder/index.mjs +1 -1
  250. package/esm2020/lib/shared/response/esolve-delete-response.interface.mjs +1 -1
  251. package/esm2020/lib/shared/response/esolve-delete-result.interface.mjs +1 -1
  252. package/esm2020/lib/shared/response/esolve-get-response.interface.mjs +1 -1
  253. package/esm2020/lib/shared/response/esolve-post-response-item.interface.mjs +1 -1
  254. package/esm2020/lib/shared/response/esolve-post-response-status.interface.mjs +1 -1
  255. package/esm2020/lib/shared/response/esolve-response-handler.service.mjs +4 -4
  256. package/esm2020/lib/shared/response/esolve-response-log-item.interface.mjs +1 -1
  257. package/esm2020/lib/shared/response/esolve-response-result.model.mjs +1 -1
  258. package/esm2020/lib/shared/response/esolve-response.interface.mjs +1 -1
  259. package/esm2020/lib/shared/response/esolve-set-response.interface.mjs +1 -1
  260. package/esm2020/lib/shared/response/index.mjs +1 -1
  261. package/esm2020/lib/shared/seo/esolve-seo-details.interface.mjs +1 -1
  262. package/esm2020/lib/shared/seo/esolve-seo-info.model.mjs +1 -1
  263. package/esm2020/lib/shared/seo/esolve-seo.service.mjs +5 -4
  264. package/esm2020/lib/shared/seo/index.mjs +1 -1
  265. package/esm2020/lib/shared/sort/esolve-sort-order.type.mjs +1 -1
  266. package/esm2020/lib/shared/sort/esolve-sort.interface.mjs +1 -1
  267. package/esm2020/lib/shared/sort/index.mjs +1 -1
  268. package/esm2020/lib/shipping/esolve-insurance-calculation-method.type.mjs +1 -1
  269. package/esm2020/lib/shipping/esolve-shipping-calculation-method.type.mjs +1 -1
  270. package/esm2020/lib/shipping/esolve-shipping-cost-record.interface.mjs +1 -1
  271. package/esm2020/lib/shipping/esolve-shipping-cost.model.mjs +1 -1
  272. package/esm2020/lib/shipping/esolve-shipping-location.type.mjs +1 -1
  273. package/esm2020/lib/shipping/esolve-shipping-method-options.interface.mjs +1 -1
  274. package/esm2020/lib/shipping/esolve-shipping-method-record.interface.mjs +1 -1
  275. package/esm2020/lib/shipping/esolve-shipping-method.model.mjs +1 -1
  276. package/esm2020/lib/shipping/esolve-shipping-totals.model.mjs +1 -1
  277. package/esm2020/lib/shipping/esolve-shipping.service.mjs +5 -5
  278. package/esm2020/lib/shipping/index.mjs +1 -1
  279. package/esm2020/lib/specials/esolve-special-dates.model.mjs +1 -1
  280. package/esm2020/lib/specials/esolve-special-image-collection-record.interface.mjs +1 -1
  281. package/esm2020/lib/specials/esolve-special-image-collection.model.mjs +1 -1
  282. package/esm2020/lib/specials/esolve-special-image-record.interface.mjs +1 -1
  283. package/esm2020/lib/specials/esolve-special-image.model.mjs +1 -1
  284. package/esm2020/lib/specials/esolve-special-options.interface.mjs +1 -1
  285. package/esm2020/lib/specials/esolve-special-record.interface.mjs +1 -1
  286. package/esm2020/lib/specials/esolve-special.model.mjs +1 -1
  287. package/esm2020/lib/specials/esolve-specials.service.mjs +5 -5
  288. package/esm2020/lib/specials/index.mjs +1 -1
  289. package/esm2020/lib/stock/classes/esolve-additional-stock-image.model.mjs +1 -1
  290. package/esm2020/lib/stock/classes/esolve-colour.model.mjs +1 -1
  291. package/esm2020/lib/stock/classes/esolve-dependant-item.model.mjs +1 -1
  292. package/esm2020/lib/stock/classes/esolve-linked-stock-item.model.mjs +1 -1
  293. package/esm2020/lib/stock/classes/esolve-media-stock-item.model.mjs +1 -1
  294. package/esm2020/lib/stock/classes/esolve-recipe-stock-item.model.mjs +1 -1
  295. package/esm2020/lib/stock/classes/esolve-stock-badge.model.mjs +1 -1
  296. package/esm2020/lib/stock/classes/esolve-stock-group-item.model.mjs +1 -1
  297. package/esm2020/lib/stock/classes/esolve-stock-group.model.mjs +1 -1
  298. package/esm2020/lib/stock/classes/esolve-stock-image-collection.model.mjs +1 -1
  299. package/esm2020/lib/stock/classes/esolve-stock-image.model.mjs +1 -1
  300. package/esm2020/lib/stock/classes/esolve-stock-item-base.model.mjs +1 -1
  301. package/esm2020/lib/stock/classes/esolve-stock-item-list.model.mjs +1 -1
  302. package/esm2020/lib/stock/classes/esolve-stock-item.model.mjs +1 -1
  303. package/esm2020/lib/stock/classes/esolve-stock-lead-times.model.mjs +1 -1
  304. package/esm2020/lib/stock/classes/esolve-stock-price.model.mjs +1 -1
  305. package/esm2020/lib/stock/classes/esolve-stock-transaction-history.model.mjs +1 -1
  306. package/esm2020/lib/stock/classes/index.mjs +1 -1
  307. package/esm2020/lib/stock/esolve-stock.service.mjs +5 -5
  308. package/esm2020/lib/stock/index.mjs +1 -1
  309. package/esm2020/lib/stock/interfaces/esolve-additional-stock-image-record.interface.mjs +1 -1
  310. package/esm2020/lib/stock/interfaces/esolve-colour-record.interface.mjs +1 -1
  311. package/esm2020/lib/stock/interfaces/esolve-dependant-item-record.interface.mjs +1 -1
  312. package/esm2020/lib/stock/interfaces/esolve-linked-stock-record.interface.mjs +1 -1
  313. package/esm2020/lib/stock/interfaces/esolve-media-stock-item-options.interface.mjs +1 -1
  314. package/esm2020/lib/stock/interfaces/esolve-media-stock-item-record.interface.mjs +1 -1
  315. package/esm2020/lib/stock/interfaces/esolve-recipe-item-record.interface.mjs +1 -1
  316. package/esm2020/lib/stock/interfaces/esolve-recipe-stock-options.interface.mjs +1 -1
  317. package/esm2020/lib/stock/interfaces/esolve-stock-badge-record.interface.mjs +1 -1
  318. package/esm2020/lib/stock/interfaces/esolve-stock-base-record.interface.mjs +1 -1
  319. package/esm2020/lib/stock/interfaces/esolve-stock-filter-options.interface.mjs +1 -1
  320. package/esm2020/lib/stock/interfaces/esolve-stock-group-item-record.interface.mjs +1 -1
  321. package/esm2020/lib/stock/interfaces/esolve-stock-image-collection-record.interface.mjs +1 -1
  322. package/esm2020/lib/stock/interfaces/esolve-stock-item-options.interface.mjs +1 -1
  323. package/esm2020/lib/stock/interfaces/esolve-stock-lead-times-record.interface.mjs +1 -1
  324. package/esm2020/lib/stock/interfaces/esolve-stock-linked-category-record.interface.mjs +1 -1
  325. package/esm2020/lib/stock/interfaces/esolve-stock-record.interface.mjs +1 -1
  326. package/esm2020/lib/stock/interfaces/index.mjs +1 -1
  327. package/esm2020/lib/stock/types/esolve-media-stock-item-list.type.mjs +1 -1
  328. package/esm2020/lib/stock/types/esolve-media-stock-sort-field.type.mjs +1 -1
  329. package/esm2020/lib/stock/types/esolve-stock-image-size.type.mjs +1 -1
  330. package/esm2020/lib/stock/types/esolve-stock-sort-field.type.mjs +1 -1
  331. package/esm2020/lib/stock/types/esolve-stock-unit-of-measure.type.mjs +1 -1
  332. package/esm2020/lib/stock/types/index.mjs +1 -1
  333. package/esm2020/lib/suppliers/classes/esolve-supplier.model.mjs +1 -1
  334. package/esm2020/lib/suppliers/classes/index.mjs +1 -1
  335. package/esm2020/lib/suppliers/esolve-suppliers.service.mjs +5 -5
  336. package/esm2020/lib/suppliers/index.mjs +1 -1
  337. package/esm2020/lib/suppliers/interfaces/esolve-supplier-options.interface.mjs +1 -1
  338. package/esm2020/lib/suppliers/interfaces/esolve-supplier-record.interface.mjs +1 -1
  339. package/esm2020/lib/suppliers/interfaces/index.mjs +1 -1
  340. package/esm2020/lib/tags/esolve-tag-options.interface.mjs +1 -1
  341. package/esm2020/lib/tags/esolve-tag-phrase-match-mode.type.mjs +1 -1
  342. package/esm2020/lib/tags/esolve-tag-record.interface.mjs +1 -1
  343. package/esm2020/lib/tags/esolve-tag.model.mjs +1 -1
  344. package/esm2020/lib/tags/esolve-tags.service.mjs +5 -5
  345. package/esm2020/lib/tags/index.mjs +1 -1
  346. package/esm2020/lib/topics/esolve-topic-record.interface.mjs +1 -1
  347. package/esm2020/lib/topics/esolve-topic.model.mjs +1 -1
  348. package/esm2020/lib/topics/esolve-topic.service.mjs +5 -5
  349. package/esm2020/lib/topics/index.mjs +1 -1
  350. package/esm2020/lib/wishlist/classes/esolve-empty-wishlist-result.model.mjs +1 -1
  351. package/esm2020/lib/wishlist/classes/esolve-wishlist-item.model.mjs +1 -1
  352. package/esm2020/lib/wishlist/classes/index.mjs +1 -1
  353. package/esm2020/lib/wishlist/esolve-wishlist.service.mjs +7 -4
  354. package/esm2020/lib/wishlist/index.mjs +1 -1
  355. package/esm2020/lib/wishlist/interfaces/esolve-wishlist-item-record.interface.mjs +1 -1
  356. package/esm2020/lib/wishlist/interfaces/esolve-wishlist-item-response.interface.mjs +1 -1
  357. package/esm2020/lib/wishlist/interfaces/esolve-wishlist-set-item.interface.mjs +1 -1
  358. package/esm2020/lib/wishlist/interfaces/index.mjs +1 -1
  359. package/esm2020/lib/wishlist/types/esolve-wishlist-set-action.type.mjs +1 -1
  360. package/esm2020/lib/wishlist/types/esolve-wishlist.type.mjs +1 -1
  361. package/esm2020/lib/wishlist/types/index.mjs +1 -1
  362. package/esm2020/media/esolve-ng-esolve-connect-media.mjs +2 -2
  363. package/esm2020/media/index.mjs +9 -0
  364. package/esm2020/media/lib/classes/esolve-heading.model.mjs +7 -0
  365. package/esm2020/media/lib/classes/esolve-media-article.model.mjs +70 -0
  366. package/esm2020/media/lib/classes/esolve-media-group.model.mjs +15 -0
  367. package/esm2020/media/lib/classes/esolve-media-layout-section.model.mjs +18 -0
  368. package/esm2020/media/lib/classes/esolve-media-link.model.mjs +8 -0
  369. package/esm2020/media/lib/classes/index.mjs +6 -0
  370. package/esm2020/media/lib/components/index.mjs +3 -0
  371. package/esm2020/media/lib/components/media-layout/esolve-media-layout.component.mjs +38 -0
  372. package/esm2020/media/lib/components/media-section/esolve-media-section.component.mjs +46 -0
  373. package/esm2020/media/lib/esolve-connect-media-config.token.mjs +3 -0
  374. package/esm2020/media/lib/esolve-connect-media.config.mjs +2 -0
  375. package/esm2020/media/lib/interfaces/esolve-heading-record.interface.mjs +2 -0
  376. package/esm2020/media/lib/interfaces/esolve-layout-config.interface.mjs +2 -0
  377. package/esm2020/media/lib/interfaces/esolve-layout-section-config.interface.mjs +2 -0
  378. package/esm2020/media/lib/interfaces/esolve-media-group-record.interface.mjs +2 -0
  379. package/esm2020/media/lib/interfaces/esolve-media-layout-section-record.interface.mjs +2 -0
  380. package/esm2020/media/lib/interfaces/esolve-media-link-record.interface.mjs +2 -0
  381. package/esm2020/media/lib/interfaces/esolve-media-record.interface.mjs +2 -0
  382. package/esm2020/media/lib/interfaces/index.mjs +8 -0
  383. package/esm2020/media/lib/ng-esolve-connect-media.module.mjs +52 -0
  384. package/esm2020/media/lib/services/esolve-media-layout.service.mjs +145 -0
  385. package/esm2020/media/lib/services/esolve-media.service.mjs +114 -0
  386. package/esm2020/media/lib/services/index.mjs +3 -0
  387. package/esm2020/media/lib/types/esolve-media-layout-section-type.type.mjs +2 -0
  388. package/esm2020/media/lib/types/index.mjs +2 -0
  389. package/fesm2015/esolve-ng-esolve-connect-media.mjs +21 -22
  390. package/fesm2015/esolve-ng-esolve-connect-media.mjs.map +1 -1
  391. package/fesm2015/esolve-ng-esolve-connect.mjs +90 -91
  392. package/fesm2015/esolve-ng-esolve-connect.mjs.map +1 -1
  393. package/fesm2020/esolve-ng-esolve-connect-media.mjs +21 -22
  394. package/fesm2020/esolve-ng-esolve-connect-media.mjs.map +1 -1
  395. package/fesm2020/esolve-ng-esolve-connect.mjs +118 -119
  396. package/fesm2020/esolve-ng-esolve-connect.mjs.map +1 -1
  397. package/{public-api.d.ts → index.d.ts} +0 -0
  398. package/media/index.d.ts +8 -0
  399. package/media/{classes → lib/classes}/esolve-heading.model.d.ts +0 -0
  400. package/media/{classes → lib/classes}/esolve-media-article.model.d.ts +0 -0
  401. package/media/{classes → lib/classes}/esolve-media-group.model.d.ts +0 -0
  402. package/media/{classes → lib/classes}/esolve-media-layout-section.model.d.ts +0 -0
  403. package/media/{classes → lib/classes}/esolve-media-link.model.d.ts +0 -0
  404. package/media/{classes → lib/classes}/index.d.ts +0 -0
  405. package/media/{components → lib/components}/index.d.ts +0 -0
  406. package/media/{components → lib/components}/media-layout/esolve-media-layout.component.d.ts +1 -1
  407. package/media/{components → lib/components}/media-section/esolve-media-section.component.d.ts +1 -1
  408. package/media/{esolve-connect-media-config.token.d.ts → lib/esolve-connect-media-config.token.d.ts} +0 -0
  409. package/media/{esolve-connect-media.config.d.ts → lib/esolve-connect-media.config.d.ts} +0 -0
  410. package/media/{interfaces → lib/interfaces}/esolve-heading-record.interface.d.ts +0 -0
  411. package/media/{interfaces → lib/interfaces}/esolve-layout-config.interface.d.ts +0 -0
  412. package/media/{interfaces → lib/interfaces}/esolve-layout-section-config.interface.d.ts +0 -0
  413. package/media/{interfaces → lib/interfaces}/esolve-media-group-record.interface.d.ts +0 -0
  414. package/media/{interfaces → lib/interfaces}/esolve-media-layout-section-record.interface.d.ts +0 -0
  415. package/media/{interfaces → lib/interfaces}/esolve-media-link-record.interface.d.ts +0 -0
  416. package/media/{interfaces → lib/interfaces}/esolve-media-record.interface.d.ts +0 -0
  417. package/media/{interfaces → lib/interfaces}/index.d.ts +0 -0
  418. package/media/{ng-esolve-connect-media.module.d.ts → lib/ng-esolve-connect-media.module.d.ts} +0 -0
  419. package/media/{services → lib/services}/esolve-media-layout.service.d.ts +0 -0
  420. package/media/{services → lib/services}/esolve-media.service.d.ts +0 -0
  421. package/media/{services → lib/services}/index.d.ts +0 -0
  422. package/media/{types → lib/types}/esolve-media-layout-section-type.type.d.ts +0 -0
  423. package/media/{types → lib/types}/index.d.ts +0 -0
  424. package/package.json +13 -8
  425. package/esm2020/media/classes/esolve-heading.model.mjs +0 -7
  426. package/esm2020/media/classes/esolve-media-article.model.mjs +0 -70
  427. package/esm2020/media/classes/esolve-media-group.model.mjs +0 -15
  428. package/esm2020/media/classes/esolve-media-layout-section.model.mjs +0 -18
  429. package/esm2020/media/classes/esolve-media-link.model.mjs +0 -8
  430. package/esm2020/media/classes/index.mjs +0 -6
  431. package/esm2020/media/components/index.mjs +0 -3
  432. package/esm2020/media/components/media-layout/esolve-media-layout.component.mjs +0 -37
  433. package/esm2020/media/components/media-section/esolve-media-section.component.mjs +0 -46
  434. package/esm2020/media/esolve-connect-media-config.token.mjs +0 -3
  435. package/esm2020/media/esolve-connect-media.config.mjs +0 -2
  436. package/esm2020/media/interfaces/esolve-heading-record.interface.mjs +0 -2
  437. package/esm2020/media/interfaces/esolve-layout-config.interface.mjs +0 -2
  438. package/esm2020/media/interfaces/esolve-layout-section-config.interface.mjs +0 -2
  439. package/esm2020/media/interfaces/esolve-media-group-record.interface.mjs +0 -2
  440. package/esm2020/media/interfaces/esolve-media-layout-section-record.interface.mjs +0 -2
  441. package/esm2020/media/interfaces/esolve-media-link-record.interface.mjs +0 -2
  442. package/esm2020/media/interfaces/esolve-media-record.interface.mjs +0 -2
  443. package/esm2020/media/interfaces/index.mjs +0 -8
  444. package/esm2020/media/ng-esolve-connect-media.module.mjs +0 -54
  445. package/esm2020/media/public_api.mjs +0 -9
  446. package/esm2020/media/services/esolve-media-layout.service.mjs +0 -145
  447. package/esm2020/media/services/esolve-media.service.mjs +0 -114
  448. package/esm2020/media/services/index.mjs +0 -3
  449. package/esm2020/media/types/esolve-media-layout-section-type.type.mjs +0 -2
  450. package/esm2020/media/types/index.mjs +0 -2
  451. package/esm2020/public-api.mjs +0 -64
  452. package/esolve-ng-esolve-connect.d.ts +0 -5
  453. package/media/esolve-ng-esolve-connect-media.d.ts +0 -5
  454. package/media/package.json +0 -10
  455. package/media/public_api.d.ts +0 -8
  456. package/schematics/collection.json +0 -9
  457. package/schematics/ng-add/index.d.ts +0 -2
  458. package/schematics/ng-add/index.js +0 -30
  459. package/schematics/ng-add/index.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"esolve-ng-esolve-connect.mjs","sources":["../../../projects/ng-esolve-connect/src/lib/esolve-connect-config.constant.ts","../../../projects/ng-esolve-connect/src/lib/session/esolve-session.model.ts","../../../projects/ng-esolve-connect/src/lib/shared/cookie/esolve-cookie.service.ts","../../../projects/ng-esolve-connect/src/lib/session/esolve-session.service.ts","../../../projects/ng-esolve-connect/src/lib/auth/esolve-auth-interceptor.service.ts","../../../projects/ng-esolve-connect/src/lib/ng-esolve-connect.module.ts","../../../projects/ng-esolve-connect/src/lib/shared/esolve-list.model.ts","../../../projects/ng-esolve-connect/src/lib/shared/esolve-result.model.ts","../../../projects/ng-esolve-connect/src/lib/shared/filters/classes/esolve-multiple-select-filter.model.ts","../../../projects/ng-esolve-connect/src/lib/shared/filters/classes/esolve-range-filter.model.ts","../../../projects/ng-esolve-connect/src/lib/shared/filters/classes/esolve-single-select-filter.model.ts","../../../projects/ng-esolve-connect/src/lib/shared/filters/classes/index.ts","../../../projects/ng-esolve-connect/src/lib/shared/filters/interfaces/index.ts","../../../projects/ng-esolve-connect/src/lib/shared/filters/types/index.ts","../../../projects/ng-esolve-connect/src/lib/shared/filters/esolve-filter-factory.ts","../../../projects/ng-esolve-connect/src/lib/shared/response/esolve-response-result.model.ts","../../../projects/ng-esolve-connect/src/lib/shared/response/esolve-response-handler.service.ts","../../../projects/ng-esolve-connect/src/lib/shared/errors/esolve-http-error.model.ts","../../../projects/ng-esolve-connect/src/lib/shared/errors/esolve-error-handler.service.ts","../../../projects/ng-esolve-connect/src/lib/shared/sort/index.ts","../../../projects/ng-esolve-connect/src/lib/shared/seo/esolve-seo-info.model.ts","../../../projects/ng-esolve-connect/src/lib/shared/seo/esolve-seo.service.ts","../../../projects/ng-esolve-connect/src/lib/shared/geocoder/esolve-geocode-address-result.model.ts","../../../projects/ng-esolve-connect/src/lib/shared/geocoder/esolve-geocode-coords-result.model.ts","../../../projects/ng-esolve-connect/src/lib/shared/geocoder/esolve-geocode-result.model.ts","../../../projects/ng-esolve-connect/src/lib/shared/geocoder/esolve-geocoder.service.ts","../../../projects/ng-esolve-connect/src/lib/shared/assets/esolve-linked-asset.model.ts","../../../projects/ng-esolve-connect/src/lib/category-tree/esolve-category-tree-item.model.ts","../../../projects/ng-esolve-connect/src/lib/category-tree/esolve-category-tree.service.ts","../../../projects/ng-esolve-connect/src/lib/manufacturers/esolve-manufacturer.model.ts","../../../projects/ng-esolve-connect/src/lib/manufacturers/esolve-manufacturers.service.ts","../../../projects/ng-esolve-connect/src/lib/manufacturers/index.ts","../../../projects/ng-esolve-connect/src/lib/ranges/esolve-range.model.ts","../../../projects/ng-esolve-connect/src/lib/ranges/esolve-ranges.service.ts","../../../projects/ng-esolve-connect/src/lib/tags/esolve-tag.model.ts","../../../projects/ng-esolve-connect/src/lib/tags/esolve-tags.service.ts","../../../projects/ng-esolve-connect/src/lib/tags/index.ts","../../../projects/ng-esolve-connect/src/lib/topics/esolve-topic.model.ts","../../../projects/ng-esolve-connect/src/lib/topics/esolve-topic.service.ts","../../../projects/ng-esolve-connect/src/lib/shared/assets/esolve-asset.model.ts","../../../projects/ng-esolve-connect/src/lib/shared/assets/esolve-assets.service.ts","../../../projects/ng-esolve-connect/src/lib/shared/assets/index.ts","../../../projects/ng-esolve-connect/src/lib/auth/esolve-auth.service.ts","../../../projects/ng-esolve-connect/src/lib/account/address/esolve-address.model.ts","../../../projects/ng-esolve-connect/src/lib/account/address/esolve-address-result.model.ts","../../../projects/ng-esolve-connect/src/lib/account/user-account/classes/esolve-user-account-business.model.ts","../../../projects/ng-esolve-connect/src/lib/account/user-account/classes/esolve-user-account-contact.model.ts","../../../projects/ng-esolve-connect/src/lib/account/user-account/classes/esolve-user-account-result.model.ts","../../../projects/ng-esolve-connect/src/lib/account/user-account/classes/esolve-statement-ageing.model.ts","../../../projects/ng-esolve-connect/src/lib/account/user-account/classes/esolve-statement-balances.model.ts","../../../projects/ng-esolve-connect/src/lib/account/user-account/classes/esolve-statement-transaction.model.ts","../../../projects/ng-esolve-connect/src/lib/account/user-account/classes/esolve-statement.model.ts","../../../projects/ng-esolve-connect/src/lib/account/user-account/classes/esolve-user-client-account.model.ts","../../../projects/ng-esolve-connect/src/lib/account/user-account/classes/esolve-user-account.model.ts","../../../projects/ng-esolve-connect/src/lib/account/user-account/classes/esolve-user-client-account-balances.model.ts","../../../projects/ng-esolve-connect/src/lib/account/transaction/esolve-transaction-address.model.ts","../../../projects/ng-esolve-connect/src/lib/account/transaction/esolve-transaction-client.model.ts","../../../projects/ng-esolve-connect/src/lib/account/transaction/esolve-transaction-item.model.ts","../../../projects/ng-esolve-connect/src/lib/account/transaction/esolve-transaction-item-price.model.ts","../../../projects/ng-esolve-connect/src/lib/locations/classes/esolve-location-address.model.ts","../../../projects/ng-esolve-connect/src/lib/locations/classes/esolve-location-contact-info.model.ts","../../../projects/ng-esolve-connect/src/lib/locations/classes/esolve-location-geo.model.ts","../../../projects/ng-esolve-connect/src/lib/locations/classes/esolve-location-pobox-address.model.ts","../../../projects/ng-esolve-connect/src/lib/locations/classes/esolve-location-trading-day.model.ts","../../../projects/ng-esolve-connect/src/lib/locations/classes/esolve-location-trading-times.model.ts","../../../projects/ng-esolve-connect/src/lib/locations/classes/esolve-location.model.ts","../../../projects/ng-esolve-connect/src/lib/locations/classes/index.ts","../../../projects/ng-esolve-connect/src/lib/locations/esolve-locations.service.ts","../../../projects/ng-esolve-connect/src/lib/account/transaction/esolve-transaction-location.model.ts","../../../projects/ng-esolve-connect/src/lib/account/transaction/esolve-transaction-payment-method.model.ts","../../../projects/ng-esolve-connect/src/lib/account/transaction/esolve-transaction-shipping-method.model.ts","../../../projects/ng-esolve-connect/src/lib/account/transaction/esolve-transaction-user.model.ts","../../../projects/ng-esolve-connect/src/lib/account/transaction/esolve-transaction.model.ts","../../../projects/ng-esolve-connect/src/lib/account/transaction/esolve-transaction-list.model.ts","../../../projects/ng-esolve-connect/src/lib/account/transaction/index.ts","../../../projects/ng-esolve-connect/src/lib/account/password/esolve-change-password-result.model.ts","../../../projects/ng-esolve-connect/src/lib/account/password/esolve-reset-password-result.model.ts","../../../projects/ng-esolve-connect/src/lib/account/registration/esolve-registration-result.model.ts","../../../projects/ng-esolve-connect/src/lib/account/confirmation/esolve-account-confirmation-result.model.ts","../../../projects/ng-esolve-connect/src/lib/account/esolve-location-update-result.model.ts","../../../projects/ng-esolve-connect/src/lib/cart/classes/esolve-empty-cart-result.model.ts","../../../projects/ng-esolve-connect/src/lib/cart/classes/esolve-checkout-result.model.ts","../../../projects/ng-esolve-connect/src/lib/cart/classes/esolve-cart-item.model.ts","../../../projects/ng-esolve-connect/src/lib/cart/classes/esolve-cart-stock-item.model.ts","../../../projects/ng-esolve-connect/src/lib/cart/classes/esolve-cart-totals.model.ts","../../../projects/ng-esolve-connect/src/lib/cart/classes/esolve-transaction-analytics-data.model.ts","../../../projects/ng-esolve-connect/src/lib/coupons/classes/esolve-coupon.model.ts","../../../projects/ng-esolve-connect/src/lib/coupons/interfaces/esolve-coupon-validation-result.interface.ts","../../../projects/ng-esolve-connect/src/lib/coupons/esolve-coupons.service.ts","../../../projects/ng-esolve-connect/src/lib/coupons/index.ts","../../../projects/ng-esolve-connect/src/lib/cart/esolve-cart.service.ts","../../../projects/ng-esolve-connect/src/lib/account/esolve-account.service.ts","../../../projects/ng-esolve-connect/src/lib/banners/esolve-banner.model.ts","../../../projects/ng-esolve-connect/src/lib/banners/esolve-banner-image.model.ts","../../../projects/ng-esolve-connect/src/lib/banners/esolve-banner-image-hotspot.model.ts","../../../projects/ng-esolve-connect/src/lib/banners/esolve-banner.service.ts","../../../projects/ng-esolve-connect/src/lib/banners/index.ts","../../../projects/ng-esolve-connect/src/lib/menu/esolve-menu-item.model.ts","../../../projects/ng-esolve-connect/src/lib/menu/esolve-menu.service.ts","../../../projects/ng-esolve-connect/src/lib/news/esolve-news-group.model.ts","../../../projects/ng-esolve-connect/src/lib/news/esolve-news-article-author.model.ts","../../../projects/ng-esolve-connect/src/lib/news/esolve-news-article.model.ts","../../../projects/ng-esolve-connect/src/lib/news/esolve-news-article-list.model.ts","../../../projects/ng-esolve-connect/src/lib/news/esolve-news.service.ts","../../../projects/ng-esolve-connect/src/lib/stock/types/index.ts","../../../projects/ng-esolve-connect/src/lib/stock/classes/esolve-colour.model.ts","../../../projects/ng-esolve-connect/src/lib/stock/classes/esolve-stock-badge.model.ts","../../../projects/ng-esolve-connect/src/lib/stock/classes/esolve-stock-price.model.ts","../../../projects/ng-esolve-connect/src/lib/stock/classes/esolve-stock-lead-times.model.ts","../../../projects/ng-esolve-connect/src/lib/stock/classes/esolve-stock-transaction-history.model.ts","../../../projects/ng-esolve-connect/src/lib/stock/classes/esolve-stock-item-base.model.ts","../../../projects/ng-esolve-connect/src/lib/stock/classes/esolve-dependant-item.model.ts","../../../projects/ng-esolve-connect/src/lib/stock/classes/esolve-stock-group-item.model.ts","../../../projects/ng-esolve-connect/src/lib/stock/classes/esolve-stock-group.model.ts","../../../projects/ng-esolve-connect/src/lib/stock/classes/esolve-stock-item.model.ts","../../../projects/ng-esolve-connect/src/lib/stock/classes/esolve-stock-item-list.model.ts","../../../projects/ng-esolve-connect/src/lib/stock/classes/esolve-recipe-stock-item.model.ts","../../../projects/ng-esolve-connect/src/lib/stock/classes/esolve-linked-stock-item.model.ts","../../../projects/ng-esolve-connect/src/lib/stock/classes/esolve-media-stock-item.model.ts","../../../projects/ng-esolve-connect/src/lib/stock/classes/esolve-stock-image.model.ts","../../../projects/ng-esolve-connect/src/lib/stock/classes/esolve-additional-stock-image.model.ts","../../../projects/ng-esolve-connect/src/lib/stock/classes/esolve-stock-image-collection.model.ts","../../../projects/ng-esolve-connect/src/lib/stock/classes/index.ts","../../../projects/ng-esolve-connect/src/lib/stock/interfaces/esolve-stock-image-collection-record.interface.ts","../../../projects/ng-esolve-connect/src/lib/stock/interfaces/index.ts","../../../projects/ng-esolve-connect/src/lib/stock/esolve-stock.service.ts","../../../projects/ng-esolve-connect/src/lib/specials/esolve-special-image.model.ts","../../../projects/ng-esolve-connect/src/lib/specials/esolve-special-image-collection.model.ts","../../../projects/ng-esolve-connect/src/lib/specials/esolve-special-dates.model.ts","../../../projects/ng-esolve-connect/src/lib/specials/esolve-special.model.ts","../../../projects/ng-esolve-connect/src/lib/specials/esolve-specials.service.ts","../../../projects/ng-esolve-connect/src/lib/payment/interfaces/index.ts","../../../projects/ng-esolve-connect/src/lib/payment/classes/esolve-banking-details.model.ts","../../../projects/ng-esolve-connect/src/lib/payment/classes/esolve-payment-method.model.ts","../../../projects/ng-esolve-connect/src/lib/payment/classes/esolve-payment-result.model.ts","../../../projects/ng-esolve-connect/src/lib/payment/classes/esolve-vault-item-result.model.ts","../../../projects/ng-esolve-connect/src/lib/payment/classes/esolve-vault-item.model.ts","../../../projects/ng-esolve-connect/src/lib/payment/esolve-payment.service.ts","../../../projects/ng-esolve-connect/src/lib/shipping/esolve-shipping-method.model.ts","../../../projects/ng-esolve-connect/src/lib/shipping/esolve-shipping-totals.model.ts","../../../projects/ng-esolve-connect/src/lib/shipping/esolve-shipping-cost.model.ts","../../../projects/ng-esolve-connect/src/lib/shipping/esolve-shipping.service.ts","../../../projects/ng-esolve-connect/src/lib/enquiry/esolve-enquiry-result.model.ts","../../../projects/ng-esolve-connect/src/lib/enquiry/esolve-enquiry.service.ts","../../../projects/ng-esolve-connect/src/lib/wishlist/classes/esolve-wishlist-item.model.ts","../../../projects/ng-esolve-connect/src/lib/wishlist/classes/esolve-empty-wishlist-result.model.ts","../../../projects/ng-esolve-connect/src/lib/wishlist/esolve-wishlist.service.ts","../../../projects/ng-esolve-connect/src/lib/suppliers/classes/esolve-supplier.model.ts","../../../projects/ng-esolve-connect/src/lib/suppliers/esolve-suppliers.service.ts","../../../projects/ng-esolve-connect/src/public-api.ts","../../../projects/ng-esolve-connect/src/esolve-ng-esolve-connect.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\r\n\r\nimport { EsolveConnectConfig } from './esolve-connect.config';\r\n\r\nexport const ESOLVE_CONNECT_CONFIG = new InjectionToken<EsolveConnectConfig>('esolve.connect.config');\r\n","import { EsolveSessionData } from './esolve-session-data.interface';\r\n\r\nexport class EsolveSession implements EsolveSessionData {\r\n constructor(\r\n public id: number = -1,\r\n public location_id: number = 0,\r\n public readonly key: string = '',\r\n public readonly expiration_date?: Date,\r\n ) { }\r\n\r\n public get expired(): boolean {\r\n const current_date = new Date();\r\n\r\n return (\r\n (this.expiration_date === undefined) ||\r\n (current_date >= this.expiration_date)\r\n );\r\n }\r\n\r\n public get authenticated(): boolean {\r\n return (this.id > 0);\r\n }\r\n\r\n public get valid(): boolean {\r\n return (\r\n (this.key !== '') &&\r\n (this.expiration_date !== undefined) &&\r\n (this.id >= 0)\r\n );\r\n }\r\n\r\n public updateUser(user_id: number): void {\r\n this.id = user_id;\r\n }\r\n\r\n public updateLocation(location_id: number): void {\r\n this.location_id = location_id;\r\n }\r\n}\r\n","import { isPlatformBrowser } from '@angular/common';\r\nimport { Inject, Injectable, Optional, PLATFORM_ID } from '@angular/core';\r\n\r\nimport { Request, Response } from 'express';\r\n\r\nimport { CookieService } from 'ngx-cookie-service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class EsolveCookieService {\r\n private is_browser: boolean = isPlatformBrowser(this.platformId);\r\n\r\n constructor(\r\n private ngxCookies: CookieService,\r\n @Inject(PLATFORM_ID) private platformId: Object,\r\n @Optional() @Inject('REQUEST') private request: Request,\r\n @Optional() @Inject('RESPONSE') private response: Response,\r\n ) { }\r\n\r\n public check(name: string): boolean {\r\n if (this.is_browser) {\r\n return this.ngxCookies.check(name);\r\n }\r\n\r\n const server_cookies = this.request.headers.cookie;\r\n\r\n if (!server_cookies) {\r\n return false;\r\n }\r\n\r\n name = encodeURIComponent(name);\r\n const regExp = this.getCookieRegExp(name);\r\n return regExp.test(server_cookies);\r\n }\r\n\r\n public get(name: string): string {\r\n if (this.is_browser) {\r\n return this.ngxCookies.get(name);\r\n }\r\n\r\n if (!this.check(name)) {\r\n return '';\r\n }\r\n\r\n const server_cookies = this.request.headers.cookie ?? '';\r\n\r\n const regExp = this.getCookieRegExp(name);\r\n const result = regExp.exec(server_cookies);\r\n\r\n return result && result[1] ? this.safeDecodeURIComponent(result[1]) : '';\r\n }\r\n\r\n public set(\r\n name: string,\r\n value: string,\r\n expires?: Date,\r\n path?: string,\r\n domain?: string,\r\n secure?: boolean,\r\n ): void {\r\n if (this.is_browser) {\r\n this.ngxCookies.set(name, value, expires, path, domain, secure);\r\n\r\n return;\r\n }\r\n\r\n this.response.cookie(name, value, { domain, path, expires, secure });\r\n }\r\n\r\n public delete(\r\n name: string,\r\n path?: string,\r\n domain?: string,\r\n secure?: boolean,\r\n ): void {\r\n if (this.is_browser) {\r\n this.ngxCookies.delete(name, path, domain, secure);\r\n\r\n return;\r\n }\r\n\r\n this.response.clearCookie(name, { path, domain, secure });\r\n }\r\n\r\n /*\r\n * Following functions come from ngx-cookie-service project since they are primarily the same\r\n */\r\n\r\n /**\r\n * Get cookie Regular Expression\r\n *\r\n * @param name Cookie name\r\n * @returns property RegExp\r\n *\r\n * @link https://github.com/stevermeister/ngx-cookie-service/blob/bcb6ac203487c487fcd126896bffaa14981c709c/projects/ngx-cookie-service/src/lib/cookie.service.ts#L31\r\n */\r\n private getCookieRegExp(name: string): RegExp {\r\n const escapedName: string = name.replace(/([\\[\\]\\{\\}\\(\\)\\|\\=\\;\\+\\?\\,\\.\\*\\^\\$])/gi, '\\\\$1');\r\n\r\n return new RegExp('(?:^' + escapedName + '|;\\\\s*' + escapedName + ')=(.*?)(?:;|$)', 'g');\r\n }\r\n\r\n /**\r\n * Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).\r\n *\r\n * @param encodedURIComponent A value representing an encoded URI component.\r\n *\r\n * @returns The unencoded version of an encoded component of a Uniform Resource Identifier (URI).\r\n *\r\n * @link https://github.com/stevermeister/ngx-cookie-service/blob/bcb6ac203487c487fcd126896bffaa14981c709c/projects/ngx-cookie-service/src/lib/cookie.service.ts#L47\r\n */\r\n private safeDecodeURIComponent(encodedURIComponent: string): string {\r\n try {\r\n return decodeURIComponent(encodedURIComponent);\r\n } catch {\r\n // probably it is not uri encoded. return as is\r\n return encodedURIComponent;\r\n }\r\n }\r\n}\r\n","import { Inject, Injectable, PLATFORM_ID } from '@angular/core';\r\nimport { isPlatformBrowser } from '@angular/common';\r\n\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\n\r\nimport { EsolveCookieService } from '../shared/cookie/esolve-cookie.service';\r\nimport { EsolveConnectConfig } from '../esolve-connect.config';\r\nimport { ESOLVE_CONNECT_CONFIG } from '../esolve-connect-config.constant';\r\nimport { EsolveStoredSession } from './esolve-stored-session.interface';\r\nimport { EsolveSession } from './esolve-session.model';\r\n\r\n// TODO: Rewrite session manager to use a pure rxjs solution.\r\n\r\ninterface SessionUpdateOptions {\r\n user_id?: number;\r\n location_id?: number;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class EsolveSessionService {\r\n public session: Observable<EsolveSession>;\r\n\r\n private _session: BehaviorSubject<EsolveSession>;\r\n private key_expiration_timer: any;\r\n private storage_key = 'ngEslvUserSession';\r\n private is_browser: boolean;\r\n\r\n public get currentSession(): EsolveSession {\r\n return this._session.value;\r\n }\r\n\r\n constructor(\r\n @Inject(PLATFORM_ID) private platformId: Object,\r\n @Inject(ESOLVE_CONNECT_CONFIG) private config: EsolveConnectConfig,\r\n private cookieService: EsolveCookieService,\r\n ) {\r\n this.setStorageKey();\r\n this._session = new BehaviorSubject<EsolveSession>(new EsolveSession());\r\n this.session = this._session.asObservable();\r\n this.is_browser = isPlatformBrowser(this.platformId);\r\n }\r\n\r\n public clearTimer(): void {\r\n if (this.key_expiration_timer) {\r\n clearTimeout(this.key_expiration_timer);\r\n }\r\n }\r\n\r\n public restore(\r\n expirationCallback: (session?: EsolveSession) => void,\r\n invalidSessionCallback: () => void,\r\n ): void {\r\n if (this.currentSession.valid) {\r\n return;\r\n }\r\n\r\n let json_data = this.cookieService.get(this.storage_key);\r\n\r\n if (json_data === '' && localStorage) {\r\n let local_store_data = localStorage.getItem(this.storage_key);\r\n\r\n if (local_store_data) {\r\n json_data = local_store_data;\r\n }\r\n }\r\n\r\n const stored_session: EsolveStoredSession | null = (json_data ? JSON.parse(json_data) : null);\r\n\r\n if (!stored_session) {\r\n invalidSessionCallback();\r\n\r\n return;\r\n }\r\n\r\n const expiration_date = new Date(stored_session.expiration_date);\r\n\r\n const loaded_session = new EsolveSession(\r\n stored_session.id,\r\n stored_session.location_id,\r\n stored_session.key,\r\n expiration_date,\r\n );\r\n\r\n if (!loaded_session.expired) {\r\n this._session.next(loaded_session);\r\n const expiration_duration = expiration_date.getTime() - new Date().getTime();\r\n this.startTimer(expirationCallback, expiration_duration);\r\n } else {\r\n expirationCallback(loaded_session);\r\n }\r\n }\r\n\r\n public handleSession(\r\n user_id: number,\r\n location_id: number,\r\n key: string,\r\n expiry_time: number,\r\n expires: number,\r\n expirationCallback: () => void,\r\n ): void {\r\n const expiration_date = new Date(expiry_time * 1000);\r\n const session = new EsolveSession(\r\n user_id,\r\n location_id,\r\n key,\r\n expiration_date,\r\n );\r\n\r\n const json_data = JSON.stringify(session);\r\n\r\n this.cookieService.set(\r\n this.storage_key,\r\n json_data,\r\n expiration_date,\r\n '/',\r\n );\r\n\r\n if (localStorage) {\r\n localStorage.setItem(this.storage_key, json_data);\r\n }\r\n\r\n this._session.next(session);\r\n this.startTimer(expirationCallback, expires * 1000);\r\n }\r\n\r\n public handleUpdateSession(\r\n {\r\n user_id,\r\n location_id,\r\n }: SessionUpdateOptions,\r\n callback?: () => void,\r\n ): void {\r\n const current_session = this.currentSession;\r\n\r\n if (typeof user_id !== 'undefined') {\r\n current_session.updateUser(user_id);\r\n }\r\n\r\n if (typeof location_id !== 'undefined') {\r\n current_session.updateLocation(location_id);\r\n }\r\n\r\n const json_data = JSON.stringify(current_session);\r\n\r\n this.cookieService.set(\r\n this.storage_key,\r\n json_data,\r\n current_session.expiration_date,\r\n '/',\r\n );\r\n\r\n if (localStorage) {\r\n localStorage.setItem(this.storage_key, json_data);\r\n }\r\n\r\n this._session.next(current_session);\r\n\r\n if (typeof callback === 'function') {\r\n callback();\r\n }\r\n }\r\n\r\n private setStorageKey(): void {\r\n if (\r\n (typeof this.config.user_session_storage_key === 'string') &&\r\n (this.config.user_session_storage_key !== '')\r\n ) {\r\n this.storage_key = this.config.user_session_storage_key;\r\n }\r\n }\r\n\r\n private startTimer(callback: () => void, duration: number): void {\r\n if (this.is_browser) {\r\n this.key_expiration_timer = setTimeout(callback, duration);\r\n }\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport {\r\n HttpInterceptor,\r\n HttpRequest,\r\n HttpHandler,\r\n HttpEvent,\r\n} from '@angular/common/http';\r\n\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { EsolveConnectConfig } from '../esolve-connect.config';\r\nimport { ESOLVE_CONNECT_CONFIG } from '../esolve-connect-config.constant';\r\nimport { EsolveSessionService } from '../session/esolve-session.service';\r\n\r\n@Injectable()\r\nexport class EsolveAuthInterceptorService implements HttpInterceptor {\r\n constructor(\r\n @Inject(ESOLVE_CONNECT_CONFIG) private config: EsolveConnectConfig,\r\n private session: EsolveSessionService,\r\n ) { }\r\n\r\n public intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n if (req.url.startsWith(`${this.config.api_url}/`)) {\r\n const service_identifier = req.url.replace(`${this.config.api_url}/`, '');\r\n\r\n const modified_url = req.url;\r\n let params = req.params;\r\n let headers = req.headers;\r\n\r\n const session = this.session.currentSession;\r\n\r\n if (session.valid) {\r\n if (service_identifier !== 'get-access-token.php') {\r\n params = params.set('key', session.key);\r\n }\r\n }\r\n\r\n params = params.set('ws_id', this.config.wsid);\r\n\r\n if (this.config.native && this.config.device_designation) {\r\n headers = headers.set('X-Device-Designation', this.config.device_designation);\r\n }\r\n\r\n const modified_req = req.clone({\r\n url: modified_url,\r\n params,\r\n headers,\r\n });\r\n\r\n return next.handle(modified_req);\r\n }\r\n\r\n return next.handle(req);\r\n }\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\r\n\r\nimport { CookieService } from 'ngx-cookie-service';\r\n\r\nimport { EsolveConnectConfig } from './esolve-connect.config';\r\nimport { ESOLVE_CONNECT_CONFIG } from './esolve-connect-config.constant';\r\n\r\nimport { EsolveAuthInterceptorService } from './auth/esolve-auth-interceptor.service';\r\n\r\n@NgModule({\r\n declarations: [],\r\n imports: [\r\n CommonModule,\r\n HttpClientModule,\r\n ],\r\n providers: [CookieService],\r\n exports: [],\r\n})\r\nexport class NgEsolveConnectModule {\r\n public static forRoot(config: EsolveConnectConfig): ModuleWithProviders<NgEsolveConnectModule> {\r\n return {\r\n ngModule: NgEsolveConnectModule,\r\n providers: [\r\n {\r\n provide: ESOLVE_CONNECT_CONFIG,\r\n useValue: config,\r\n },\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: EsolveAuthInterceptorService,\r\n multi: true,\r\n },\r\n ],\r\n };\r\n }\r\n}\r\n","export class EsolveList<T> {\r\n constructor(\r\n public items: T[] = [],\r\n public page: number = 0,\r\n public rows: number = 0,\r\n public total: number = 0,\r\n ) { }\r\n}\r\n","export class EsolveResult {\r\n constructor(\r\n public status: string,\r\n public code: string,\r\n public message: string,\r\n ) { }\r\n}\r\n","import { HttpParams } from '@angular/common/http';\r\n\r\nimport { EsolveSelectFilter } from '../interfaces';\r\n\r\nexport class EsolveMultipleSelectFilter implements EsolveSelectFilter {\r\n public readonly type = 'multiple';\r\n public options: (string | number)[] = [];\r\n\r\n private values?: (string | number)[];\r\n\r\n constructor(\r\n public field: string,\r\n options?: (string | number)[],\r\n ) {\r\n if (options) {\r\n this.options = options;\r\n }\r\n }\r\n\r\n public setValue(values: (string | number)[]) {\r\n this.values = values;\r\n }\r\n\r\n public toHttpParams(): { [x: string]: string | (string | number)[]; };\r\n public toHttpParams(http_params: HttpParams): HttpParams;\r\n public toHttpParams(\r\n http_params?: HttpParams,\r\n ): HttpParams | { [x: string]: string | (string | number)[]; } {\r\n if (!this.values) {\r\n throw new Error('No values set');\r\n }\r\n\r\n const base_property = `filter[${this.field}]`;\r\n const type_property = base_property + '[type]';\r\n const values_property = base_property + '[values][]';\r\n\r\n const params = {\r\n [type_property]: this.type,\r\n [values_property]: this.values,\r\n };\r\n\r\n if (http_params) {\r\n return http_params.appendAll(params);\r\n }\r\n\r\n return params;\r\n }\r\n}\r\n","import { HttpParams } from '@angular/common/http';\r\nimport { EsolveFilter } from '../interfaces';\r\n\r\nexport class EsolveRangeFilter implements EsolveFilter {\r\n public readonly type = 'range';\r\n public min: number = 0;\r\n public max: number = 0;\r\n public options = {\r\n min: 0,\r\n max: 0,\r\n };\r\n\r\n constructor(\r\n public field: string,\r\n min: number = 0,\r\n max: number = 0,\r\n ) {\r\n this.options.min = min;\r\n this.options.max = max;\r\n\r\n if ((max > 0) && (min > max)) {\r\n this.options.min = max;\r\n this.options.max = min;\r\n }\r\n }\r\n\r\n public setValue(min: number, max: number): void {\r\n this.min = min;\r\n this.max = max;\r\n\r\n if ((max > 0) && (min > max)) {\r\n this.min = max;\r\n this.max = min;\r\n }\r\n }\r\n\r\n public toHttpParams(): { [x: string]: string | number; };\r\n public toHttpParams(http_params: HttpParams): HttpParams;\r\n public toHttpParams(\r\n http_params?: HttpParams,\r\n ): HttpParams | { [x: string]: string | number; } {\r\n if (this.min <= 0 && this.max <= 0) {\r\n throw new Error('No values set');\r\n }\r\n\r\n const base_property = `filter[${this.field}]`;\r\n const type_property = base_property + '[type]';\r\n const min_property = base_property + '[min]';\r\n const max_property = base_property + '[max]';\r\n\r\n const params = {\r\n [type_property]: this.type,\r\n [min_property]: this.min,\r\n [max_property]: this.max,\r\n };\r\n\r\n if (http_params) {\r\n return http_params.appendAll(params);\r\n }\r\n\r\n return params;\r\n }\r\n}\r\n","import { HttpParams } from '@angular/common/http';\r\n\r\nimport { EsolveSelectFilter } from '../interfaces';\r\n\r\nexport class EsolveSingleSelectFilter implements EsolveSelectFilter {\r\n public readonly type = 'single';\r\n public options: (string | number)[] = [];\r\n\r\n private value?: string | number;\r\n\r\n constructor(field: string, options: (string | number)[]);\r\n constructor(field: string, value: string | number);\r\n constructor(\r\n public field: string,\r\n options_or_value: string | number | (string | number)[],\r\n ) {\r\n if (Array.isArray(options_or_value)) {\r\n this.options = options_or_value;\r\n } else {\r\n this.setValue(options_or_value);\r\n }\r\n }\r\n\r\n public setValue(value: string | number) {\r\n this.value = value;\r\n }\r\n\r\n public toHttpParams(): { [x: string]: string | number; };\r\n public toHttpParams(http_params: HttpParams): HttpParams;\r\n public toHttpParams(\r\n http_params?: HttpParams,\r\n ): HttpParams | { [x: string]: string | number; } {\r\n if (!this.value) {\r\n throw new Error('No values set');\r\n }\r\n\r\n const base_property = `filter[${this.field}]`;\r\n const type_property = base_property + '[type]';\r\n const values_property = base_property + '[value]';\r\n\r\n const params = {\r\n [type_property]: this.type,\r\n [values_property]: this.value,\r\n };\r\n\r\n if (http_params) {\r\n return http_params.appendAll(params);\r\n }\r\n\r\n return params;\r\n }\r\n}\r\n","// Classes\r\nexport * from './esolve-multiple-select-filter.model';\r\nexport * from './esolve-range-filter.model';\r\nexport * from './esolve-single-select-filter.model';\r\n","// Interfaces\r\nexport * from './esolve-filter-definitions.interface';\r\nexport * from './esolve-filter-record.interface';\r\nexport * from './esolve-filter.interface';\r\nexport * from './esolve-range-filter-record.interface';\r\nexport * from './esolve-select-filter-record.interface';\r\nexport * from './esolve-select-filter.interface';\r\n","// Types\r\nexport * from './esolve-filter-list.type';\r\nexport * from './esolve-filter-record-list.type';\r\nexport * from './esolve-filter-type.type';\r\nexport * from './esolve-range-filter-type.type';\r\nexport * from './esolve-select-filter-type.type';\r\n","import { HttpParams } from '@angular/common/http';\r\n\r\nimport {\r\n EsolveMultipleSelectFilter,\r\n EsolveRangeFilter,\r\n EsolveSingleSelectFilter,\r\n} from './classes';\r\nimport { EsolveFilter, EsolveFilterDefinitions } from './interfaces';\r\n\r\nexport namespace EsolveFilterFactory {\r\n export function createRangeWithValue(\r\n field: string,\r\n min: number = 0,\r\n max: number = 0,\r\n ): EsolveRangeFilter {\r\n const filter = new EsolveRangeFilter(field);\r\n filter.setValue(min, max);\r\n\r\n return filter;\r\n }\r\n\r\n export function createSingleSelectWithValue(\r\n field: string,\r\n value: string | number,\r\n ): EsolveSingleSelectFilter {\r\n const filter = new EsolveSingleSelectFilter(field, value);\r\n\r\n return filter;\r\n }\r\n\r\n export function createMultipleSelectWithValue(\r\n field: string,\r\n value: (string | number)[],\r\n ): EsolveMultipleSelectFilter {\r\n const filter = new EsolveMultipleSelectFilter(field);\r\n filter.setValue(value);\r\n\r\n return filter;\r\n }\r\n\r\n export function covertFromObj(obj: EsolveFilterDefinitions): EsolveFilter[] {\r\n const filters: EsolveFilter[] = [];\r\n\r\n for (const field in obj) {\r\n const value = obj[field];\r\n let filter = null;\r\n\r\n if (Array.isArray(value)) {\r\n filter = createMultipleSelectWithValue(field, value);\r\n } else if (typeof value === 'object') {\r\n filter = createRangeWithValue(field, value.min, value.max);\r\n } else {\r\n filter = createSingleSelectWithValue(field, value);\r\n }\r\n\r\n if (filter) {\r\n filters.push(filter);\r\n }\r\n }\r\n\r\n return filters;\r\n }\r\n\r\n export function convertToHttpParams(\r\n filters: EsolveFilter[],\r\n ): { [x: string]: string | number | (string | number)[]; };\r\n\r\n export function convertToHttpParams(\r\n filters: EsolveFilter[],\r\n http_params: HttpParams,\r\n ): HttpParams;\r\n\r\n export function convertToHttpParams(\r\n filters: EsolveFilter[],\r\n http_params?: HttpParams,\r\n ): HttpParams | { [x: string]: string | number | (string | number)[]; } {\r\n if (http_params) {\r\n for (const filter of filters) {\r\n http_params = filter.toHttpParams(http_params);\r\n }\r\n\r\n return http_params;\r\n }\r\n\r\n let params = {};\r\n\r\n for (const filter of filters) {\r\n params = {\r\n ...params,\r\n ...filter.toHttpParams(),\r\n };\r\n }\r\n\r\n return params;\r\n }\r\n}\r\n","import { EsolveResponseLogItem } from './esolve-response-log-item.interface';\r\nimport { EsolvePostResponseItem } from './esolve-post-response-item.interface';\r\n\r\nexport class EsolveResponseResult {\r\n public success_log: EsolveResponseLogItem[] = [];\r\n public error_log: EsolveResponseLogItem[] = [];\r\n\r\n constructor(response: EsolvePostResponseItem) {\r\n this.error_log.push(...response.log.filter((log_item) => log_item.type === 'error'));\r\n this.success_log.push(...response.log.filter((log_item) => log_item.type === 'success'));\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { EsolvePostResponseItem } from './esolve-post-response-item.interface';\r\nimport { EsolveSetResponse } from './esolve-set-response.interface';\r\nimport { EsolveResponseResult } from './esolve-response-result.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class EsolveResponseHandlerService {\r\n constructor() { }\r\n\r\n /**\r\n * Parse single HTTP response\r\n *\r\n * @param http_response HTTP Response to eSolve service\r\n * @param resultHandler Function to parse response to a result\r\n *\r\n * @returns Parsed result of response\r\n */\r\n public validateSingleHttpResponse<R extends EsolveResponseResult, T extends EsolvePostResponseItem>(\r\n http_response: EsolveSetResponse<T>,\r\n resultHandler: (response: T) => R,\r\n ): R {\r\n if (\r\n (http_response.responses === undefined) ||\r\n (http_response.responses.length <= 0)\r\n ) {\r\n throw http_response;\r\n }\r\n\r\n const response = http_response.responses[0];\r\n\r\n if (\r\n (response.status.state === 'error') ||\r\n (response.status.state === 'none')\r\n ) {\r\n throw response;\r\n }\r\n\r\n return resultHandler(response);\r\n }\r\n}\r\n","export class EsolveHttpError extends Error {\r\n public readonly http_error = true;\r\n public type: 'error' | 'exception';\r\n public error_code: string;\r\n\r\n constructor(type: 'error' | 'exception', code: string, message: string, ...params: any[]) {\r\n // Pass remaining arguments (including vendor specific ones) to parent constructor\r\n super(...[message, ...params]);\r\n\r\n // Maintains proper stack trace for where our error was thrown (only available on V8)\r\n if (Error.captureStackTrace) {\r\n Error.captureStackTrace(this, EsolveHttpError);\r\n }\r\n\r\n this.name = 'EsolveHttpError';\r\n this.type = type;\r\n this.error_code = code;\r\n }\r\n}\r\n","import { HttpErrorResponse } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport { Observable, throwError } from 'rxjs';\r\n\r\nimport {\r\n EsolveResponse,\r\n EsolveDeleteResult,\r\n EsolvePostResponseItem,\r\n EsolveDeleteResponse,\r\n EsolveSetResponse,\r\n} from '../response';\r\nimport { EsolveHttpError } from './esolve-http-error.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class EsolveErrorHandlerService {\r\n constructor() { }\r\n\r\n public throwError(code: string, message: string): void {\r\n throw new EsolveHttpError('error', message, code);\r\n }\r\n\r\n public emitError(code: string, message: string): Observable<never> {\r\n return throwError(() => new EsolveHttpError('error', message, code));\r\n }\r\n\r\n public handleHttpPostError(\r\n service_type: string,\r\n errorRes: HttpErrorResponse | EsolveSetResponse | EsolvePostResponseItem,\r\n ): Observable<never> {\r\n if (\r\n !(errorRes instanceof HttpErrorResponse) &&\r\n !('service_type' in errorRes) &&\r\n (\r\n ('id' in errorRes) &&\r\n ('esolve_id' in errorRes) &&\r\n ('transaction_type' in errorRes) &&\r\n ('status' in errorRes) &&\r\n ('log' in errorRes)\r\n )\r\n ) {\r\n return throwError(() => this.parsePostErrors(errorRes));\r\n }\r\n\r\n return this.handleHttpError(service_type, errorRes);\r\n }\r\n\r\n public handleHttpDeleteError(\r\n service_type: string,\r\n errorRes: HttpErrorResponse | EsolveDeleteResponse | EsolveDeleteResult,\r\n ): Observable<never> {\r\n const is_not_base = (\r\n !(errorRes instanceof HttpErrorResponse) &&\r\n !('service_type' in errorRes) &&\r\n (\r\n ('id' in errorRes) &&\r\n ('status' in errorRes) &&\r\n ('message' in errorRes) &&\r\n ('code' in errorRes)\r\n )\r\n );\r\n\r\n if (is_not_base) {\r\n return throwError(() => this.parseDeleteError(errorRes));\r\n }\r\n\r\n return this.handleHttpError(service_type, errorRes);\r\n }\r\n\r\n private handleHttpError(\r\n service_type: string,\r\n error_response: HttpErrorResponse | EsolveResponse,\r\n ): Observable<never> {\r\n if (error_response instanceof HttpErrorResponse) {\r\n if (error_response.status === 500) {\r\n const server_error = error_response.error;\r\n\r\n if (\r\n ('service_type' in server_error) &&\r\n (server_error.service_type === service_type)\r\n ) {\r\n return throwError(() => this.parseException(server_error as EsolveResponse));\r\n }\r\n }\r\n } else {\r\n if (\r\n ('service_type' in error_response) &&\r\n (error_response.service_type === service_type)\r\n ) {\r\n if (error_response.type === 'exception') {\r\n return throwError(() => this.parseException(error_response));\r\n } else if (error_response.type === 'error') {\r\n return throwError(() => this.parseResponseError(error_response));\r\n }\r\n }\r\n }\r\n\r\n return throwError(() => error_response);\r\n }\r\n\r\n private parseException(exception: EsolveResponse): EsolveHttpError {\r\n const error = new EsolveHttpError(\r\n 'exception',\r\n exception.message || 'Unknown exception has occurred',\r\n exception.additional_data.exception_type || 'unknown',\r\n );\r\n\r\n return error;\r\n }\r\n\r\n private parseResponseError(exception: EsolveResponse): EsolveHttpError {\r\n const error = new EsolveHttpError(\r\n 'error',\r\n exception.message || 'Unknown error has occurred',\r\n exception.code || 'unknown',\r\n );\r\n\r\n return error;\r\n }\r\n\r\n private parsePostErrors(response: EsolvePostResponseItem): EsolveHttpError {\r\n let error_code = 'unknown';\r\n let message = 'Unknown error has occurred';\r\n\r\n\r\n if ((response.status.state === 'none') && (response.log.length > 0)) {\r\n error_code = 'no_response';\r\n message = 'Response was provided';\r\n } else if (response.status.state === 'error') {\r\n const login_error_log = response.log[0];\r\n\r\n error_code = login_error_log.message_code;\r\n message = login_error_log.message;\r\n }\r\n\r\n return new EsolveHttpError('error', error_code, message);\r\n }\r\n\r\n private parseDeleteError(result: EsolveDeleteResult): EsolveHttpError {\r\n return new EsolveHttpError('error', result.message, result.code);\r\n }\r\n}\r\n","// Types\r\nexport * from './esolve-sort-order.type';\r\n// Interfaces\r\nexport * from './esolve-sort.interface';\r\n","/**\r\n * Search Engine Optimization information.\r\n */\r\nexport class EsolveSeoInfo {\r\n constructor(\r\n public title: string = '',\r\n public description: string = '',\r\n public keywords: string = '',\r\n ) { }\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { Meta, Title } from '@angular/platform-browser';\r\n\r\nimport { EsolveConnectConfig } from '../../esolve-connect.config';\r\nimport { ESOLVE_CONNECT_CONFIG } from '../../esolve-connect-config.constant';\r\n\r\nimport { EsolveSeoInfo } from './esolve-seo-info.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class EsolveSeoService {\r\n private title_prefix = '';\r\n private title_suffix = '';\r\n private title_separator = '|';\r\n\r\n private default_seo_title = '';\r\n private default_seo_description = '';\r\n private default_seo_keywords = '';\r\n\r\n constructor(\r\n @Inject(ESOLVE_CONNECT_CONFIG) private config: EsolveConnectConfig,\r\n private title: Title,\r\n private meta: Meta,\r\n ) {\r\n this.init();\r\n }\r\n\r\n /**\r\n * Sets SEO tags for page\r\n * @param seoInfo SEO object\r\n */\r\n public setTags(seoInfo: EsolveSeoInfo): void {\r\n seoInfo = this.validateAndSanitizeSeoInfo(seoInfo);\r\n\r\n this.setPageTitleTags(seoInfo.title);\r\n this.setPageDescriptionTags(seoInfo.description);\r\n this.setPageKeywordsTags(seoInfo.keywords);\r\n }\r\n\r\n private init(): void {\r\n if (typeof this.config.title_prefix !== 'undefined') {\r\n this.title_prefix = this.config.title_prefix;\r\n }\r\n\r\n if (typeof this.config.title_suffix !== 'undefined') {\r\n this.title_suffix = this.config.title_suffix;\r\n }\r\n\r\n if (typeof this.config.title_separator !== 'undefined') {\r\n this.title_separator = this.config.title_separator;\r\n }\r\n\r\n if (typeof this.config.default_seo_title !== 'undefined') {\r\n this.default_seo_title = this.config.default_seo_title;\r\n }\r\n\r\n if (typeof this.config.default_seo_description !== 'undefined') {\r\n this.default_seo_description = this.config.default_seo_description;\r\n }\r\n\r\n if (typeof this.config.default_seo_keywords !== 'undefined') {\r\n this.default_seo_keywords = this.config.default_seo_keywords;\r\n }\r\n }\r\n\r\n private setPageTitleTags(title: string): void {\r\n this.title.setTitle(title);\r\n this.meta.updateTag({ property: 'og:title', content: title });\r\n }\r\n\r\n private setPageDescriptionTags(description: string): void {\r\n this.meta.updateTag({ name: 'description', content: description });\r\n this.meta.updateTag({ property: 'og:description', content: description });\r\n }\r\n\r\n private setPageKeywordsTags(keywords: string): void {\r\n this.meta.updateTag({ name: 'keywords', content: keywords });\r\n }\r\n\r\n private validateAndSanitizeSeoInfo(seoInfo: EsolveSeoInfo): EsolveSeoInfo {\r\n const pageSeo = new EsolveSeoInfo(\r\n this.default_seo_title,\r\n this.default_seo_description,\r\n this.default_seo_keywords,\r\n );\r\n\r\n if (seoInfo.description.trim() !== '') {\r\n pageSeo.description = seoInfo.description;\r\n }\r\n\r\n if (seoInfo.title.trim() !== '') {\r\n const titlePartsArray = [];\r\n\r\n if (this.title_prefix !== '') {\r\n titlePartsArray.push(this.title_prefix);\r\n\r\n if (this.title_separator !== '') {\r\n titlePartsArray.push(this.title_separator);\r\n }\r\n }\r\n\r\n titlePartsArray.push(seoInfo.title);\r\n\r\n if (this.title_suffix !== '') {\r\n if (this.title_separator !== '') {\r\n titlePartsArray.push(this.title_separator);\r\n }\r\n\r\n titlePartsArray.push(this.title_suffix);\r\n }\r\n\r\n pageSeo.title = titlePartsArray.join(' ');\r\n\r\n if (seoInfo.keywords.trim() === '') {\r\n const clean_title = seoInfo.title.replace(/[^a-zA-Z0-9\\. ]+/gi, '').trim();\r\n const keywords = clean_title.split(' ');\r\n const clean_keywords: string[] = [];\r\n\r\n for (let keyword of keywords) {\r\n keyword = keyword.trim();\r\n if (keyword.length > 2) {\r\n keyword = keyword.toLocaleLowerCase();\r\n if (!clean_keywords.includes(keyword)) {\r\n clean_keywords.push(keyword);\r\n }\r\n }\r\n }\r\n\r\n seoInfo.keywords = clean_keywords.join(',');\r\n }\r\n }\r\n\r\n if (seoInfo.keywords.trim() !== '') {\r\n pageSeo.keywords = seoInfo.keywords;\r\n }\r\n\r\n return pageSeo;\r\n }\r\n}\r\n","export class EsolveGeocodeAddressResult {\r\n constructor(\r\n public street_number: string,\r\n public street: string,\r\n public suburb: string,\r\n public city: string,\r\n public province: string,\r\n public country: string,\r\n public postal_code: string,\r\n ) { }\r\n}\r\n","export class EsolveGeocodeCoordsResult {\r\n constructor(\r\n public latitude: number,\r\n public longitude: number,\r\n ) { }\r\n}\r\n","import { EsolveGeocodeAddressResult } from './esolve-geocode-address-result.model';\r\nimport { EsolveGeocodeCoordsResult } from './esolve-geocode-coords-result.model';\r\n\r\nexport class EsolveGeocodeResult {\r\n constructor(\r\n public formatted_address: string,\r\n public address: EsolveGeocodeAddressResult,\r\n public coords: EsolveGeocodeCoordsResult,\r\n public status: string,\r\n public checksum: string,\r\n public cached: boolean,\r\n ) { }\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { EsolveConnectConfig } from '../../esolve-connect.config';\r\nimport { ESOLVE_CONNECT_CONFIG } from '../../esolve-connect-config.constant';\r\nimport { EsolveGetResponse } from '../response';\r\n\r\nimport { EsolveGeocodeResultRecord } from './esolve-geocode-result-record.interface';\r\nimport { EsolveGeocodeResult } from './esolve-geocode-result.model';\r\nimport { EsolveGeocodeAddressResult } from './esolve-geocode-address-result.model';\r\nimport { EsolveGeocodeCoordsResult } from './esolve-geocode-coords-result.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class EsolveGeocoderService {\r\n constructor(\r\n @Inject(ESOLVE_CONNECT_CONFIG) private config: EsolveConnectConfig,\r\n private http: HttpClient,\r\n ) { }\r\n\r\n public geocode(\r\n street_number: string,\r\n street: string,\r\n suburb: string,\r\n city: string,\r\n province: string,\r\n country: string,\r\n postal_code: string,\r\n ): Observable<EsolveGeocodeResult> {\r\n return this.http\r\n .get<EsolveGetResponse<EsolveGeocodeResultRecord>>(\r\n `${this.config.api_url}/get-geocode.php`,\r\n {\r\n params: {\r\n street_number,\r\n street,\r\n suburb,\r\n city,\r\n province,\r\n country,\r\n postal_code,\r\n },\r\n },\r\n )\r\n .pipe(\r\n map((response) => {\r\n if (response.records === undefined) {\r\n throw response;\r\n }\r\n\r\n const record = response.records;\r\n\r\n return this.processGeocodeResult(record);\r\n }),\r\n );\r\n }\r\n\r\n public reverseGeocode(latitude: number, longitude: number): Observable<EsolveGeocodeResult> {\r\n return this.http\r\n .get<EsolveGetResponse<EsolveGeocodeResultRecord>>(\r\n `${this.config.api_url}/get-geocode.php`,\r\n {\r\n params: {\r\n latitude: latitude,\r\n longitude: longitude,\r\n },\r\n },\r\n )\r\n .pipe(\r\n map((response) => {\r\n if (response.records === undefined) {\r\n throw response;\r\n }\r\n\r\n const record = response.records;\r\n\r\n return this.processGeocodeResult(record);\r\n }),\r\n );\r\n }\r\n\r\n private processGeocodeResult(record: EsolveGeocodeResultRecord): EsolveGeocodeResult {\r\n const geocode_address = new EsolveGeocodeAddressResult(\r\n record.address.street_number,\r\n record.address.street,\r\n record.address.suburb,\r\n record.address.city,\r\n record.address.province,\r\n record.address.country,\r\n record.address.postal_code,\r\n );\r\n\r\n const geocode_coords = new EsolveGeocodeCoordsResult(\r\n record.latitude,\r\n record.longitude,\r\n );\r\n\r\n const geocode_result = new EsolveGeocodeResult(\r\n record.formatted_address,\r\n geocode_address,\r\n geocode_coords,\r\n record.status,\r\n record.checksum,\r\n record.cached,\r\n );\r\n\r\n return geocode_result;\r\n }\r\n}\r\n","import { EsolveAssetType } from './esolve-asset-type.type';\r\nimport { EsolveLinkedAssetRecord } from './esolve-linked-asset-record.interface';\r\n\r\nexport class EsolveLinkedAsset {\r\n public id: number;\r\n public name: string;\r\n public type: EsolveAssetType;\r\n public description: string;\r\n public src: string;\r\n\r\n constructor(record: EsolveLinkedAssetRecord) {\r\n this.id = +record.id;\r\n this.name = record.name;\r\n this.type = record.type;\r\n this.description = record.description;\r\n this.src = record.src;\r\n }\r\n}\r\n","import { EsolveSeoInfo } from '../shared/seo/esolve-seo-info.model';\r\nimport { EsolveSeoDetails } from '../shared/seo/esolve-seo-details.interface';\r\n\r\nexport class EsolveCategoryTreeItem implements EsolveSeoDetails {\r\n public id = '';\r\n public seo_details: EsolveSeoInfo;\r\n public total_stock?: number;\r\n public children?: EsolveCategoryTreeItem[];\r\n\r\n private image_path = '';\r\n\r\n public get small_image_src(): string {\r\n return this.getImagePath('small');\r\n }\r\n\r\n public get thumbnail_image_src(): string {\r\n return this.getImagePath('thumb');\r\n }\r\n\r\n public get tiny_image_src(): string {\r\n return this.getImagePath('tiny');\r\n }\r\n\r\n constructor(\r\n public type: 'category' | 'subcategory',\r\n public esolve_id: string | number,\r\n public parent_id: string,\r\n public description: string,\r\n public sef_description: string,\r\n public short_description: string,\r\n public sort_priority: number,\r\n public active: boolean,\r\n public display_only: boolean,\r\n private image_name: string,\r\n seo_title: string,\r\n seo_keywords: string,\r\n seo_description: string,\r\n children?: EsolveCategoryTreeItem[],\r\n ) {\r\n if (this.type === 'category') {\r\n this.id = `<<CAT>>${this.esolve_id}`;\r\n\r\n if (children != null) {\r\n this.children = children;\r\n }\r\n\r\n this.image_path = '/images/categories/';\r\n } else {\r\n this.id = `<<SUB>>${this.esolve_id}`;\r\n this.image_path = '/images/subcategories/';\r\n }\r\n\r\n if (seo_title.trim() === '') {\r\n seo_title = this.description;\r\n }\r\n\r\n this.seo_details = new EsolveSeoInfo(seo_title, seo_description, seo_keywords);\r\n }\r\n\r\n public getImagePath(image_size: 'small' | 'thumb' | 'tiny'): string {\r\n if (this.image_name !== '') {\r\n return `${this.image_path}${image_size}/${this.image_name}`;\r\n }\r\n\r\n return '';\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { HttpClient, HttpParams } from '@angular/common/http';\r\n\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { EsolveConnectConfig } from '../esolve-connect.config';\r\nimport { ESOLVE_CONNECT_CONFIG } from '../esolve-connect-config.constant';\r\nimport { EsolveGetResponse } from '../shared/response';\r\n\r\nimport { EsolveCategoryRecord } from './esolve-category-record.interface';\r\nimport { EsolveSubcategoryRecord } from './esolve-subcategory-record.interface';\r\nimport { EsolveCategoryTreeItem } from './esolve-category-tree-item.model';\r\nimport { EsolveCategoryTreeItemRecord } from './esolve-category-tree-item-record.interface';\r\nimport { EsolveCategoryTreeItemOptions } from './esolve-category-tree-item-options.interface';\r\nimport { EsolveCategoryIdentifier } from './esolve-category-identifier.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class EsolveCategoryTreeService {\r\n constructor(\r\n @Inject(ESOLVE_CONNECT_CONFIG) private config: EsolveConnectConfig,\r\n private http: HttpClient,\r\n ) { }\r\n\r\n /**\r\n * Retrieves the category tree from eSolve instance and coverts it to the correct format.\r\n */\r\n public getCategoryTree(identifier?: string): Observable<EsolveCategoryTreeItem[]> {\r\n let params = new HttpParams();\r\n\r\n if (identifier) {\r\n params = params.set('identifier', identifier);\r\n }\r\n\r\n return this.http\r\n .get<EsolveGetResponse<(EsolveCategoryRecord | EsolveSubcategoryRecord)[]>>(\r\n `${this.config.api_url}/get-tree.php`,\r\n { params },\r\n )\r\n .pipe(\r\n map((response) => {\r\n if (response.records === undefined) {\r\n throw response;\r\n }\r\n\r\n return this.processTree(response.records);\r\n }),\r\n );\r\n }\r\n\r\n /**\r\n * Retrieve the special tree structure for a specific special from the eSolve\r\n * instance and converts it into the correct format\r\n *\r\n * @param special_id Id of to special to get tree for\r\n *\r\n * @returns Observable containing special tree data\r\n */\r\n public getSpecialTree(\r\n special_id: number,\r\n ): Observable<EsolveCategoryTreeItem[]>{\r\n let params = new HttpParams();\r\n\r\n params = params.set('special_id', special_id);\r\n\r\n return this.http\r\n .get<EsolveGetResponse<(EsolveCategoryRecord | EsolveSubcategoryRecord)[]>>(\r\n `${this.config.api_url}/get-special-tree.php`,\r\n { params },\r\n )\r\n .pipe(\r\n map((response) => {\r\n if (response.records === undefined) {\r\n throw response;\r\n }\r\n\r\n return this.processTree(response.records);\r\n }),\r\n );\r\n }\r\n\r\n /**\r\n * Retrieve the details of a category tree item from the eSolve instance and\r\n * converts it to the correct format.\r\n *\r\n * @param options Filter options\r\n */\r\n public getCategoryTreeItem(\r\n options: EsolveCategoryTreeItemOptions,\r\n ): Observable<EsolveCategoryTreeItem> {\r\n let type!: 'category' | 'subcategory';\r\n let esolve_id!: number | string;\r\n let sef_description;\r\n\r\n if (options.id) {\r\n const categoryIdentifier = this.processID(options.id);\r\n\r\n if (categoryIdentifier) {\r\n type = categoryIdentifier.type;\r\n esolve_id = categoryIdentifier.esolve_id;\r\n }\r\n } else if (options.type) {\r\n type = options.type;\r\n\r\n if (options.esolve_id) {\r\n esolve_id = options.esolve_id;\r\n } else if (options.sef_description) {\r\n sef_description = options.sef_description;\r\n }\r\n }\r\n\r\n if (type && (esolve_id || sef_description)) {\r\n let params = new HttpParams();\r\n\r\n params = params.set('type', type);\r\n\r\n if (esolve_id) {\r\n params = params.set('id', esolve_id);\r\n }\r\n\r\n if (sef_description) {\r\n params = params.set('sef_description', sef_description);\r\n }\r\n\r\n return this.http\r\n .get<EsolveGetResponse<EsolveCategoryTreeItemRecord[]>>(\r\n `${this.config.api_url}/get-tree-item.php`,\r\n { params },\r\n )\r\n .pipe(\r\n map((response) => {\r\n if (\r\n (response.records === undefined) ||\r\n (response.records.length <= 0)\r\n ) {\r\n throw response;\r\n }\r\n\r\n return this.processTreeItem(response.records[0]);\r\n }),\r\n );\r\n }\r\n\r\n return throwError(() => 'Invalid options');\r\n }\r\n\r\n /**\r\n * Processes the eSolve tree records and converts them into the correct format.\r\n *\r\n * @param tree_records Records to process\r\n */\r\n private processTree(\r\n tree_records: (EsolveCategoryRecord | EsolveSubcategoryRecord)[],\r\n ): EsolveCategoryTreeItem[] {\r\n const tree_items: EsolveCategoryTreeItem[] = [];\r\n\r\n if (tree_records) {\r\n for (const tree_record of tree_records) {\r\n let esolve_id: string | number = '';\r\n let parent_id = '';\r\n let children: EsolveCategoryTreeItem[] = [];\r\n\r\n if (tree_record.type === 'category') {\r\n children = this.processTree(tree_record.children);\r\n esolve_id = tree_record.menu_id;\r\n parent_id = tree_record.owner_menu_id;\r\n } else {\r\n esolve_id = tree_record.id;\r\n parent_id = tree_record.menu_id;\r\n }\r\n\r\n tree_items.push(new EsolveCategoryTreeItem(\r\n tree_record.type,\r\n esolve_id,\r\n parent_id,\r\n tree_record.description,\r\n tree_record.sef_description,\r\n tree_record.seo_description,\r\n tree_record.sort_priority,\r\n tree_record.active,\r\n tree_record.display_only,\r\n tree_record.image,\r\n tree_record.seo_page_title,\r\n tree_record.seo_keywords,\r\n tree_record.short_description,\r\n children,\r\n ));\r\n }\r\n }\r\n\r\n return tree_items;\r\n }\r\n\r\n private processTreeItem(record: EsolveCategoryTreeItemRecord): EsolveCategoryTreeItem {\r\n return new EsolveCategoryTreeItem(\r\n record.type,\r\n record.id,\r\n record.parent_id,\r\n record.description,\r\n record.sef_description,\r\n record.short_description,\r\n record.sort_priority,\r\n record.active,\r\n record.display_only,\r\n record.image,\r\n record.seo_page_title,\r\n record.seo_keywords,\r\n record.seo_description,\r\n );\r\n }\r\n\r\n private processID(id: string): EsolveCategoryIdentifier | null {\r\n let type: 'category' | 'subcategory';\r\n let esolve_id: number | string;\r\n\r\n const type_code_regex = /^\\<\\<(CAT|SUB)\\>\\>/g;\r\n const match_results = id.match(type_code_regex);\r\n\r\n if (match_results) {\r\n const type_code = match_results[0];\r\n\r\n type = (type_code === '<<CAT>>' ? 'category' : 'subcategory');\r\n esolve_id = id.replace(type_code_regex, '');\r\n\r\n return {\r\n type,\r\n esolve_id,\r\n };\r\n }\r\n\r\n return null;\r\n }\r\n}\r\n","import { EsolveSeoInfo } from '../shared/seo/esolve-seo-info.model';\r\nimport { EsolveSeoDetails } from '../shared/seo/esolve-seo-details.interface';\r\n\r\nimport { EsolveManufacturerRecord } from './esolve-manufacturer-record.interface';\r\nimport { EsolveManufacturerImageSize } from './esolve-manufacturer-image-size.type';\r\n\r\nexport class EsolveManufacturer implements EsolveSeoDetails {\r\n public id: number = 0;\r\n public manufacturer: string = '';\r\n public sef_manufacturer: string = '';\r\n public title: string = '';\r\n public article: string = '';\r\n public sort_priority: number = 0;\r\n public is_active: boolean = false;\r\n public featured: boolean = false;\r\n public image_name: string = '';\r\n public seo_details: EsolveSeoInfo;\r\n\r\n public get original_image_src(): string {\r\n return this.getImagePath('original');\r\n }\r\n\r\n public get small_image_src(): string {\r\n return this.getImagePath('small');\r\n }\r\n\r\n public get thumbnail_image_src(): string {\r\n return this.getImagePath('thumb');\r\n }\r\n\r\n public get tiny_image_src(): string {\r\n return this.getImagePath('tiny');\r\n }\r\n\r\n constructor(record?: Partial<EsolveManufacturerRecord>) {\r\n let seo_title: string = '';\r\n let seo_keywords: string = '';\r\n let seo_description: string = '';\r\n\r\n if (record) {\r\n this.id = +(record.id ?? 0);\r\n this.manufacturer = record.manufacturer ?? '';\r\n this.sef_manufacturer = record.sef_manufacturer ?? '';\r\n this.title = record.title ?? '';\r\n this.article = record.article ?? '';\r\n this.sort_priority = +(record.sort_priority ?? 0);\r\n this.image_name = record.image_name ?? '';\r\n\r\n seo_title = record.seo_page_title ?? '';\r\n seo_keywords = record.seo_keywords ?? '';\r\n seo_description = record.seo_description ?? '';\r\n\r\n if (record.is_active) {\r\n this.is_active = !!+record.is_active;\r\n }\r\n\r\n if (record.featured) {\r\n this.featured = !!+record.featured;\r\n }\r\n }\r\n\r\n if (this.title.trim() === '') {\r\n this.title = this.manufacturer;\r\n }\r\n\r\n if (seo_title.trim() === '') {\r\n seo_title = this.title;\r\n }\r\n\r\n this.seo_details = new EsolveSeoInfo(\r\n seo_title,\r\n seo_description,\r\n seo_keywords,\r\n );\r\n }\r\n\r\n public getImagePath(image_size: EsolveManufacturerImageSize): string {\r\n if (this.image_name !== '') {\r\n return `/images/manufacturers/${image_size}/${this.image_name}`;\r\n }\r\n\r\n return '';\r\n }\r\n}\r\n","import { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\n\r\nimport { Observable, of } from 'rxjs';\r\nimport { catchError, map } from 'rxjs/operators';\r\n\r\nimport { EsolveConnectConfig } from '../esolve-connect.config';\r\nimport { ESOLVE_CONNECT_CONFIG } from '../esolve-connect-config.constant';\r\nimport { EsolveGetResponse } from '../shared/response';\r\n\r\nimport { EsolveManufacturer } from './esolve-manufacturer.model';\r\nimport { EsolveManufacturerOptions } from './esolve-manufacturer-options.interface';\r\nimport { EsolveManufacturerRecord } from './esolve-manufacturer-record.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class EsolveManufacturersService {\r\n constructor(\r\n @Inject(ESOLVE_CONNECT_CONFIG) private config: EsolveConnectConfig,\r\n private http: HttpClient,\r\n ) { }\r\n\r\n public getManufacturer(id: number): Observable<EsolveManufacturer> {\r\n const params = new HttpParams({\r\n fromObject: { manufacturers_id: id },\r\n });\r\n\r\n return this.getManufacturerSingle(params);\r\n }\r\n\r\n public getManufacturerFromSEF(sef_manufacturer: string): Observable<EsolveManufacturer> {\r\n const params = new HttpParams({\r\n fromObject: { sef_manufacturer },\r\n });\r\n\r\n return this.getManufacturerSingle(params);\r\n }\r\n\r\n public getManufacturers(options?: EsolveManufacturerOptions): Observable<EsolveManufacturer[]> {\r\n let params = new HttpParams();\r\n\r\n if (options?.featured_only) {\r\n params = params.set('featured_only', options.featured_only);\r\n }\r\n\r\n return this.getManufacturerRecords(params).pipe(\r\n map((records) => {\r\n const manufacturers: EsolveManufacturer[] = [];\r\n\r\n for (const record of records) {\r\n manufacturers.push(this.processManufacturer(record));\r\n }\r\n\r\n return manufacturers;\r\n }),\r\n catchError(() => {\r\n return of<EsolveManufacturer[]>([]);\r\n }),\r\n );\r\n }\r\n\r\n private getManufacturerSingle(params: HttpParams): Observable<EsolveManufacturer> {\r\n return this.getManufacturerRecords(params).pipe(\r\n map((records) => {\r\n const record = records[0];\r\n\r\n return this.processManufacturer(record);\r\n }),\r\n );\r\n }\r\n\r\n private getManufacturerRecords(\r\n params?: HttpParams,\r\n ): Observable<EsolveManufacturerRecord[]> {\r\n return this.http\r\n .get<EsolveGetResponse<EsolveManufacturerRecord[]>>(\r\n `${this.config.api_url}/get-manufacturers.php`,\r\n { params },\r\n )\r\n .pipe(\r\n map((response) => {\r\n if (\r\n (response.records === undefined) ||\r\n (response.records.length <= 0)\r\n ) {\r\n throw response;\r\n }\r\n\r\n return response.records;\r\n }),\r\n );\r\n }\r\n\r\n private processManufacturer(record: EsolveManufacturerRecord): EsolveManufacturer {\r\n return new EsolveManufacturer(record);\r\n }\r\n}\r\n","// Types\r\nexport * from './esolve-manufacturer-image-size.type';\r\n// Interfaces\r\nexport * from './esolve-manufacturer-record.interface';\r\nexport * from './esolve-manufacturer-options.interface';\r\n// Classes\r\nexport * from './esolve-manufacturer.model';\r\n// Service\r\nexport * from './esolve-manufacturers.service';\r\n","import { EsolveSeoInfo } from '../shared/seo/esolve-seo-info.model';\r\nimport { EsolveSeoDetails } from '../shared/seo/esolve-seo-details.interface';\r\n\r\nimport { EsolveRangeRecord } from './esolve-range-record.interface';\r\n\r\nexport class EsolveRange implements EsolveSeoDetails {\r\n public id: number = 0;\r\n public range: string = '';\r\n public sef_range: string = '';\r\n public manufacturers_id: number = 0;\r\n public title: string = '';\r\n public article: string = '';\r\n public is_active: boolean = false;\r\n public featured: boolean = false;\r\n public sort_priority: number = 0;\r\n public image_name: string = '';\r\n public seo_details: EsolveSeoInfo;\r\n\r\n public get image_src(): string {\r\n return this.getImagePath();\r\n }\r\n\r\n constructor(record?: Partial<EsolveRangeRecord>) {\r\n let seo_title: string = '';\r\n let seo_keywords: string = '';\r\n let seo_description: string = '';\r\n\r\n if (record) {\r\n this.id = +(record.id ?? 0);\r\n this.range = record.range ?? '';\r\n this.sef_range = record.sef_range ?? '';\r\n this.manufacturers_id = +(record.manufacturers_id ?? 0);\r\n this.title = record.title ?? '';\r\n this.article = record.article ?? '';\r\n this.sort_priority = +(record.sort_priority ?? 0);\r\n this.image_name = record.image_name ?? '';\r\n\r\n if (record.is_active) {\r\n this.is_active = !!+record.is_active;\r\n }\r\n\r\n if (record.featured) {\r\n this.featured = !!+record.featured;\r\n }\r\n\r\n seo_title = record.seo_page_title ?? '';\r\n seo_keywords = record.seo_keywords ?? '';\r\n seo_description = record.seo_description ?? '';\r\n }\r\n\r\n if (this.title.trim() === '') {\r\n this.title = this.range;\r\n }\r\n\r\n if (seo_title.trim() === '') {\r\n seo_title = this.title;\r\n }\r\n\r\n this.seo_details = new EsolveSeoInfo(\r\n seo_title,\r\n seo_description,\r\n seo_keywords,\r\n );\r\n }\r\n\r\n public getImagePath(): string {\r\n if (this.image_name !== '') {\r\n return `/images/ranges/${this.image_name}`;\r\n }\r\n\r\n return '';\r\n }\r\n}\r\n","import { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\n\r\nimport { Observable, of } from 'rxjs';\r\nimport { catchError, map } from 'rxjs/operators';\r\n\r\nimport { EsolveConnectConfig } from '../esolve-connect.config';\r\nimport { ESOLVE_CONNECT_CONFIG } from '../esolve-connect-config.constant';\r\nimport { EsolveGetResponse } from '../shared/response';\r\n\r\nimport { EsolveRange } from './esolve-range.model';\r\nimport { EsolveRangeOptions } from './esolve-range-options.interface';\r\nimport { EsolveRangeRecord } from './esolve-range-record.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class EsolveRangesService {\r\n constructor(\r\n @Inject(ESOLVE_CONNECT_CONFIG) private config: EsolveConnectConfig,\r\n private http: HttpClient,\r\n ) { }\r\n\r\n public getRange(id: number): Observable<EsolveRange> {\r\n const params = new HttpParams({\r\n fromObject: { ranges_id: id },\r\n });\r\n\r\n return this.getRangeSingle(params);\r\n }\r\n\r\n public getRangeFromSEF(sef_range: string): Observable<EsolveRange> {\r\n const params = new HttpParams({\r\n fromObject: { sef_range },\r\n });\r\n\r\n return this.getRangeSingle(params);\r\n }\r\n\r\n public getRanges(options?: EsolveRangeOptions): Observable<EsolveRange[]> {\r\n let params = new HttpParams();\r\n\r\n if (options?.featured_only) {\r\n params = params.set('featured_only', options.featured_only);\r\n }\r\n\r\n if (options?.manufacturers_id) {\r\n params = params.set('manufacturers_id', options.manufacturers_id);\r\n }\r\n\r\n return this.getRangeRecords(params).pipe(\r\n map((records) => {\r\n const ranges: EsolveRange[] = [];\r\n\r\n for (const record of records) {\r\n ranges.push(this.processRange(record));\r\n }\r\n\r\n return ranges;\r\n }),\r\n catchError(() => {\r\n return of<EsolveRange[]>([]);\r\n }),\r\n );\r\n }\r\n\r\n private getRangeSingle(params: HttpParams): Observable<EsolveRange> {\r\n return this.getRangeRecords(params).pipe(\r\n map((records) => {\r\n const record = records[0];\r\n\r\n return this.processRange(record);\r\n }),\r\n );\r\n }\r\n\r\n private getRangeRecords(\r\n params?: HttpParams,\r\n ): Observable<EsolveRangeRecord[]> {\r\n return this.http\r\n .get<EsolveGetResponse<EsolveRangeRecord[]>>(\r\n `${this.config.api_url}/get-ranges.php`,\r\n { params },\r\n )\r\n .pipe(\r\n map((response) => {\r\n if (\r\n (response.records === undefined) ||\r\n (response.records.length <= 0)\r\n ) {\r\n throw response;\r\n }\r\n\r\n return response.records;\r\n }),\r\n );\r\n }\r\n\r\n private processRange(record: EsolveRangeRecord): EsolveRange {\r\n return new EsolveRange(record);\r\n }\r\n}\r\n","import { EsolveTagRecord } from './esolve-tag-record.interface';\r\n\r\nexport class EsolveTag {\r\n public id: number = 0;\r\n public phrase: string = '';\r\n public weight: number = 0;\r\n public description: string = '';\r\n public image_name: string = '';\r\n\r\n /**\r\n * @deprecated To be removed in the future. Use `EsolveTag.phrase` instead\r\n */\r\n public get tag_phrase(): string {\r\n return this.phrase;\r\n }\r\n\r\n /**\r\n * @deprecated To be removed in the future. Use `EsolveTag.weight` instead\r\n */\r\n public get tag_weight(): number {\r\n return this.weight;\r\n }\r\n\r\n constructor(record?: Partial<EsolveTagRecord>) {\r\n if (record) {\r\n this.id = +(record.id ?? 0);\r\n this.phrase = record.tag_phrase ?? '';\r\n this.weight = +(record.tag_weight ?? 0);\r\n this.description = record.description ?? '';\r\n this.image_name = record.image_name ?? '';\r\n }\r\n }\r\n\r\n public getImagePath(): string {\r\n if (this.image_name !== '') {\r\n return `/images/tags/${this.image_name}`;\r\n }\r\n\r\n return '';\r\n }\r\n}\r\n","import { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\n\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { ESOLVE_CONNECT_CONFIG } from '../esolve-connect-config.constant';\r\nimport { EsolveConnectConfig } from '../esolve-connect.config';\r\nimport { EsolveGetResponse } from '../shared/response';\r\n\r\nimport { EsolveTag } from './esolve-tag.model';\r\nimport { EsolveTagRecord } from './esolve-tag-record.interface';\r\nimport { EsolveTagOptions } from './esolve-tag-options.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class EsolveTagsService {\r\n constructor(\r\n @Inject(ESOLVE_CONNECT_CONFIG) private config: EsolveConnectConfig,\r\n private http: HttpClient,\r\n ) { }\r\n\r\n /**\r\n * Retrieves active topics from the list of topic ID's. Note that inactive or expired\r\n * topics will not be retrieved.\r\n *\r\n * @param options Tag filters\r\n */\r\n public getTags(options?: EsolveTagOptions): Observable<EsolveTag[]> {\r\n const params = this.parseOptions(options);\r\n\r\n return this.http\r\n .get<EsolveGetResponse<EsolveTagRecord[]>>(\r\n `${this.config.api_url}/get-tags.php`,\r\n { params },\r\n )\r\n .pipe(\r\n map((response) => {\r\n if (response.records === undefined) {\r\n throw response;\r\n }\r\n\r\n return this.processTags(response.records);\r\n }),\r\n );\r\n }\r\n\r\n private parseOptions(options?: EsolveTagOptions) {\r\n let params = new HttpParams();\r\n\r\n if (options) {\r\n if (options.tags_id) {\r\n if (Array.isArray(options.tags_id)) {\r\n const tag_list = options.tags_id;\r\n\r\n if (tag_list.length > 0) {\r\n params = params.append('tags_id', tag_list.join(','));\r\n }\r\n } else {\r\n params = params.append('tags_id', options.tags_id);\r\n }\r\n } else {\r\n if (options.phrase && options.phrase !== '') {\r\n params = params.append('phrase', options.phrase);\r\n\r\n const phrase_match_mode = options.phrase_match_mode;\r\n\r\n if (phrase_match_mode) {\r\n params = params.append('phrase_match_mode', phrase_match_mode);\r\n }\r\n }\r\n }\r\n }\r\n\r\n return params;\r\n }\r\n\r\n private processTags(records: EsolveTagRecord[]): EsolveTag[] {\r\n const tags: EsolveTag[] = [];\r\n\r\n if (records) {\r\n for (const record of records) {\r\n const tag = new EsolveTag(record);\r\n\r\n tags.push(tag);\r\n }\r\n }\r\n\r\n return tags;\r\n }\r\n}\r\n","// Types\r\nexport * from './esolve-tag-phrase-match-mode.type';\r\n// Interfaces\r\nexport * from './esolve-tag-record.interface';\r\nexport * from './esolve-tag-options.interface';\r\n// Classes\r\nexport * from './esolve-tag.model';\r\n// Service\r\nexport * from './esolve-tags.service';\r\n","export class EsolveTopic {\r\n public id: number = 0;\r\n public name: string = '';\r\n public short_description: string = '';\r\n public sort_priority: number = 0;\r\n\r\n constructor(record?: Partial<EsolveTopic>) {\r\n if (record) {\r\n this.id = +(record.id ?? 0);\r\n this.name = record.name ?? '';\r\n this.short_description = record.short_description ?? '';\r\n this.sort_priority = +(record.sort_priority ?? 0);\r\n }\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { HttpClient, HttpParams } from '@angular/common/http';\r\n\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { EsolveConnectConfig } from '../esolve-connect.config';\r\nimport { ESOLVE_CONNECT_CONFIG } from '../esolve-connect-config.constant';\r\nimport { EsolveGetResponse } from '../shared/response';\r\nimport { EsolveTopic } from './esolve-topic.model';\r\nimport { EsolveTopicRecord } from './esolve-topic-record.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class EsolveTopicService {\r\n constructor(\r\n @Inject(ESOLVE_CONNECT_CONFIG) private config: EsolveConnectConfig,\r\n private http: HttpClient,\r\n ) { }\r\n\r\n /**\r\n * Retrieves active topics from the list of topic ID's. Note that inactive or expired\r\n * topics will not be retrieved.\r\n *\r\n * @param topic_id_list List of topic ID's that need to be retrieved\r\n */\r\n public getTopics(topic_id_list: readonly number[] = []): Observable<EsolveTopic[]> {\r\n let params = new HttpParams();\r\n\r\n if (topic_id_list.length > 0) {\r\n params = params.append('topic_id', topic_id_list.join(','));\r\n }\r\n\r\n return this.http\r\n .get<EsolveGetResponse<EsolveTopicRecord[]>>(\r\n `${this.config.api_url}/get-topics.php`,\r\n { params },\r\n )\r\n .pipe(\r\n map((response) => {\r\n if (response.records === undefined) {\r\n throw response;\r\n }\r\n\r\n return this.processTopics(response.records);\r\n }),\r\n );\r\n }\r\n\r\n private processTopics(records: EsolveTopicRecord[]): EsolveTopic[] {\r\n const topics: EsolveTopic[] = [];\r\n\r\n if (records) {\r\n for (const record of records) {\r\n const topic = new EsolveTopic(record);\r\n\r\n topics.push(topic);\r\n }\r\n }\r\n\r\n return topics;\r\n }\r\n}\r\n","import { EsolveCategoryTreeItem } from '../../category-tree';\r\nimport { EsolveManufacturer } from '../../manufacturers';\r\nimport { EsolveRange } from '../../ranges';\r\nimport { EsolveTag } from '../../tags';\r\nimport { EsolveTopic } from '../../topics';\r\n\r\nimport { EsolveAssetType } from './esolve-asset-type.type';\r\nimport { EsolveAssetRecord } from './esolve-asset-record.interface';\r\n\r\nexport class EsolveAsset {\r\n public id: number = 0;\r\n public src: string = '';\r\n public name: string = '';\r\n public type?: EsolveAssetType;\r\n public description: string = '';\r\n public document_number: string = '';\r\n public document_type: string = '';\r\n public area_of_application: string = '';\r\n public asset_category: string = '';\r\n public asset_sub_category: string = '';\r\n public sort_priority: number = 0;\r\n public created?: string;\r\n public category?: EsolveCategoryTreeItem;\r\n public subcategory?: EsolveCategoryTreeItem;\r\n public manufacturer?: EsolveManufacturer;\r\n public range?: EsolveRange;\r\n public topics: EsolveTopic[] = [];\r\n public tags: EsolveTag[] = [];\r\n\r\n private image_name: string = '';\r\n\r\n /**\r\n * Shortcut to `getImagePath()`\r\n */\r\n public get image_src(): string {\r\n return this.getImagePath();\r\n }\r\n\r\n constructor(record: EsolveAssetRecord) {\r\n this.id = +record.id;\r\n this.src = record.src;\r\n this.name = record.name;\r\n this.type = record.type;\r\n this.description = record.description;\r\n\r\n this.document_number = record.document_number ?? '';\r\n this.document_type = record.document_type ?? '';\r\n this.area_of_application = record.area_of_application ?? '';\r\n this.asset_category = record.asset_category ?? '';\r\n this.asset_sub_category = record.asset_sub_category ?? '';\r\n this.sort_priority = +(record.sort_priority ?? '');\r\n this.image_name = record.image_name ?? '';\r\n\r\n if (record.created) {\r\n this.created = record.created;\r\n }\r\n\r\n if (record.category) {\r\n this.category = new EsolveCategoryTreeItem(\r\n record.category.type,\r\n record.category.id,\r\n record.category.parent_id,\r\n record.category.description,\r\n record.category.sef_description,\r\n record.category.short_description,\r\n record.category.sort_priority,\r\n record.category.active,\r\n record.category.display_only,\r\n record.category.image,\r\n record.category.seo_page_title,\r\n record.category.seo_keywords,\r\n record.category.seo_description,\r\n );\r\n }\r\n\r\n if (record.subcategory) {\r\n this.subcategory = new EsolveCategoryTreeItem(\r\n record.subcategory.type,\r\n record.subcategory.id,\r\n record.subcategory.parent_id,\r\n record.subcategory.description,\r\n record.subcategory.sef_description,\r\n record.subcategory.short_description,\r\n record.subcategory.sort_priority,\r\n record.subcategory.active,\r\n record.subcategory.display_only,\r\n record.subcategory.image,\r\n record.subcategory.seo_page_title,\r\n record.subcategory.seo_keywords,\r\n record.subcategory.seo_description,\r\n );\r\n }\r\n\r\n\r\n if (record.manufacturer) {\r\n this.manufacturer = new EsolveManufacturer(record.manufacturer);\r\n }\r\n\r\n if (record.range) {\r\n this.range = new EsolveRange(record.range);\r\n }\r\n\r\n if (record.topics && record.topics.length > 0) {\r\n for (const topic of record.topics) {\r\n this.topics.push(new EsolveTopic(topic));\r\n }\r\n }\r\n\r\n if (record.tags && record.tags.length > 0) {\r\n for (const tag of record.tags) {\r\n this.tags.push(new EsolveTag(tag));\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Retrieve image path\r\n *\r\n * @returns Image path on CDN, else empty string if no image exists\r\n */\r\n public getImagePath(): string {\r\n if (this.image_name !== '') {\r\n return `/images/documents/${this.image_name}`;\r\n }\r\n\r\n return '';\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { HttpClient, HttpParams } from '@angular/common/http';\r\n\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { ESOLVE_CONNECT_CONFIG } from '../../esolve-connect-config.constant';\r\nimport { EsolveConnectConfig } from '../../esolve-connect.config';\r\nimport { EsolveGetResponse } from '../response';\r\nimport { EsolveList } from '../esolve-list.model';\r\n\r\nimport { EsolveAssetOptions } from './esolve-asset-options.interface';\r\nimport { EsolveAssetRecord } from './esolve-asset-record.interface';\r\nimport { EsolveAsset } from './esolve-asset.model';\r\nimport { EsolveAssetList } from './esolve-asset-list.type';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class EsolveAssetsService {\r\n\r\n constructor(\r\n @Inject(ESOLVE_CONNECT_CONFIG) private config: EsolveConnectConfig,\r\n private http: HttpClient,\r\n ) { }\r\n\r\n public getAsset(id: number): Observable<EsolveAsset> {\r\n const params = new HttpParams({ fromObject: { assets_id: id }});\r\n\r\n return this.getAssetRecords(params).pipe(\r\n map((response) => {\r\n if (\r\n (response.records === undefined) ||\r\n (response.records.length <= 0)\r\n ) {\r\n throw response;\r\n }\r\n\r\n const record = response.records[0];\r\n\r\n return this.processAsset(record);\r\n }),\r\n );\r\n }\r\n\r\n public getAssets(\r\n options?: EsolveAssetOptions,\r\n ): Observable<EsolveAssetList> {\r\n const params = this.parseOptions(options);\r\n\r\n return this.getAssetRecords(params).pipe(\r\n map((response) => {\r\n if (response.records === undefined) {\r\n throw response;\r\n }\r\n\r\n const assets: EsolveAsset[] = [];\r\n\r\n for (const record of response.records) {\r\n assets.push(this.processAsset(record));\r\n }\r\n\r\n const page = options?.page ?? 0;\r\n const rows = options?.rows ?? 0;\r\n const total = +response.additional_data.total_records;\r\n\r\n return new EsolveList(assets, page, rows, total);\r\n }),\r\n );\r\n }\r\n\r\n private processAsset(record: EsolveAssetRecord): EsolveAsset {\r\n return new EsolveAsset(record);\r\n }\r\n\r\n private getAssetRecords(\r\n params: HttpParams,\r\n ): Observable<EsolveGetResponse<EsolveAssetRecord[]>> {\r\n return this.http.get<EsolveGetResponse<EsolveAssetRecord[]>>(\r\n `${this.config.api_url}/get-assets.php`,\r\n { params },\r\n );\r\n }\r\n\r\n private parseOptions(options?: EsolveAssetOptions): HttpParams {\r\n let params = new HttpParams();\r\n\r\n if (!options) {\r\n return params;\r\n }\r\n\r\n if (options.page) {\r\n params = params.set('page', options.page);\r\n }\r\n\r\n if (options.rows) {\r\n params = params.set('rows', options.rows);\r\n }\r\n\r\n if (options.asset_type) {\r\n params = params.set('asset_type', options.asset_type);\r\n }\r\n\r\n if (options.category_id) {\r\n params = params.set('category_id', options.category_id);\r\n }\r\n\r\n if (options.subcategory_id) {\r\n params = params.set('subcategory_id', options.subcategory_id);\r\n }\r\n\r\n if (options.manufacturers_id) {\r\n params = params.set('manufacturers_id', options.manufacturers_id);\r\n }\r\n\r\n if (options.ranges_id) {\r\n params = params.set('ranges_id', options.ranges_id);\r\n }\r\n\r\n if (options.asset_category) {\r\n params = params.set('asset_category', options.asset_category);\r\n }\r\n\r\n if (options.asset_sub_category) {\r\n params = params.set('asset_sub_category', options.asset_sub_category);\r\n }\r\n\r\n if (options.document_number) {\r\n params = params.set('document_number', options.document_number);\r\n }\r\n\r\n if (options.document_type) {\r\n params = params.set('document_type', options.document_type);\r\n }\r\n\r\n if (options.area_of_application) {\r\n params = params.set('area_of_application', options.area_of_application);\r\n }\r\n\r\n return params;\r\n }\r\n}\r\n","// Types\r\nexport * from './esolve-asset-list.type';\r\nexport * from './esolve-asset-type.type';\r\n// Interfaces\r\nexport * from './esolve-linked-asset-record.interface';\r\nexport * from './esolve-asset-options.interface';\r\nexport * from './esolve-asset-record.interface';\r\n// Classes\r\nexport * from './esolve-linked-asset.model';\r\nexport * from './esolve-asset.model';\r\n// Service\r\nexport * from './esolve-assets.service';\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport {\r\n HttpClient,\r\n HttpParams,\r\n HttpErrorResponse,\r\n HttpHeaders,\r\n} from '@angular/common/http';\r\n\r\nimport { firstValueFrom, Observable, throwError } from 'rxjs';\r\nimport { tap, catchError, map } from 'rxjs/operators';\r\n\r\nimport { EsolveConnectConfig } from '../esolve-connect.config';\r\nimport { ESOLVE_CONNECT_CONFIG } from '../esolve-connect-config.constant';\r\nimport { EsolveCookieService } from '../shared/cookie/esolve-cookie.service';\r\nimport { EsolveErrorHandlerService } from '../shared/errors/esolve-error-handler.service';\r\nimport { EsolveSetResponse } from '../shared/response';\r\n\r\nimport { EsolveSession } from '../session/esolve-session.model';\r\nimport { EsolveSessionService } from '../session/esolve-session.service';\r\n\r\nimport { EsolveLoginPostResponseItem } from './esolve-login-post-response-item.interface';\r\nimport { EsolveAuthGetResponse } from './esolve-auth-get-response.interface';\r\nimport { EsolveAuthCheckResponse } from './esolve-auth-check-response.interface';\r\nimport { EsolveAuthResult } from './esolve-auth-result.type';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class EsolveAuthService {\r\n constructor(\r\n @Inject(ESOLVE_CONNECT_CONFIG) private config: EsolveConnectConfig,\r\n private http: HttpClient,\r\n private session: EsolveSessionService,\r\n private errorHandler: EsolveErrorHandlerService,\r\n private cookieService: EsolveCookieService,\r\n ) { }\r\n\r\n public getAccessToken(\r\n email: string,\r\n password: string,\r\n anonymous: boolean = false,\r\n ): Observable<EsolveAuthGetResponse> {\r\n let params = new HttpParams();\r\n\r\n if (anonymous) {\r\n params = params.set('anonymous', true);\r\n }\r\n\r\n if (email !== '') {\r\n params = params.set('email', email);\r\n }\r\n\r\n if (password !== '') {\r\n params = params.set('password', password);\r\n }\r\n\r\n return this.http\r\n .get<EsolveAuthGetResponse>(\r\n `${this.config.api_url}/get-access-token.php`,\r\n {\r\n params,\r\n headers: new HttpHeaders({\r\n 'Accept-Language': '*',\r\n }),\r\n },\r\n )\r\n .pipe(\r\n tap((responseData) => {\r\n if (\r\n (responseData.type === 'error') ||\r\n (responseData.type === 'exception')\r\n ) {\r\n throw responseData;\r\n }\r\n }),\r\n catchError(this.handleError),\r\n tap((responseData) => {\r\n this.handleAuthentication(responseData.additional_data);\r\n }),\r\n );\r\n }\r\n\r\n public autoLogin(): void {\r\n this.session.restore(\r\n this.handleExpiration(),\r\n () => {\r\n firstValueFrom(this.getAccessToken('', '', true)).then(\r\n () => { },\r\n (error) => {\r\n console.error(error);\r\n },\r\n );\r\n },\r\n );\r\n }\r\n\r\n public login(email: string, password: string): Observable<number> {\r\n const body = {\r\n login: {\r\n email,\r\n password,\r\n },\r\n };\r\n\r\n return this.http\r\n .post<EsolveSetResponse<EsolveLoginPostResponseItem>>(\r\n `${this.config.api_url}/set-login.php`,\r\n body,\r\n {\r\n headers: {\r\n 'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;',\r\n },\r\n responseType: 'json',\r\n observe: 'body',\r\n },\r\n )\r\n .pipe(\r\n map((response) => {\r\n if (\r\n (response.responses === undefined) ||\r\n (response.responses.length <= 0)\r\n ) {\r\n throw response;\r\n }\r\n\r\n const login_response = response.responses[0];\r\n\r\n if (\r\n (login_response.status.state !== 'success') &&\r\n (login_response.status.state !== 'warning')\r\n ) {\r\n throw login_response;\r\n }\r\n\r\n for (const response_log of login_response.log) {\r\n if (\r\n (response_log.type === 'success') &&\r\n (response_log.message_code === 'login_success')\r\n ) {\r\n const session_data = login_response.session_data;\r\n const user_id = +login_response.esolve_id;\r\n const location_id = +session_data.location_id;\r\n\r\n this.session.handleUpdateSession({\r\n user_id: user_id,\r\n location_id: location_id,\r\n });\r\n\r\n return user_id;\r\n }\r\n }\r\n\r\n throw login_response;\r\n }),\r\n catchError((errorRes: HttpErrorResponse | any) => {\r\n return this.errorHandler.handleHttpPostError('set-login', errorRes);\r\n }),\r\n );\r\n }\r\n\r\n public async logout(): Promise<EsolveAuthGetResponse> {\r\n this.session.clearTimer();\r\n this.cookieService.delete('_ws_id');\r\n\r\n const response = await firstValueFrom(this.getAccessToken('', '', true));\r\n\r\n if (response) {\r\n return response;\r\n }\r\n\r\n throw new Error('Invalid response');\r\n }\r\n\r\n private checkAccessToken(session?: EsolveSession): Observable<EsolveAuthResult> {\r\n session = session || this.session.currentSession;\r\n\r\n const token = session?.key ?? '';\r\n\r\n return this.http\r\n .get<EsolveAuthCheckResponse>(\r\n `${this.config.api_url}/get-access-token.php`,\r\n {\r\n params: { key: token },\r\n headers: new HttpHeaders({\r\n 'Accept-Language': '*',\r\n }),\r\n },\r\n )\r\n .pipe(\r\n map((responseData) => {\r\n if (\r\n (responseData.type === 'error') ||\r\n (responseData.type === 'exception') ||\r\n (!responseData.additional_data.key_okay)\r\n ) {\r\n throw responseData;\r\n }\r\n\r\n const additional_data = responseData.additional_data;\r\n\r\n const result: EsolveAuthResult = {\r\n key: token,\r\n expires: additional_data.expires,\r\n expiry_time: additional_data.expiry_time,\r\n location_id: additional_data.location_id,\r\n user_id: additional_data.user_id,\r\n };\r\n\r\n return result;\r\n }),\r\n );\r\n }\r\n\r\n // Handlers\r\n private handleExpiration(): (session?: EsolveSession) => void {\r\n return (session?: EsolveSession) => {\r\n firstValueFrom(this.checkAccessToken(session)).then(\r\n (response) => {\r\n if (response) {\r\n this.handleAuthentication(response);\r\n }\r\n },\r\n () => {\r\n this.logout();\r\n },\r\n );\r\n };\r\n }\r\n\r\n private handleAuthentication(result: EsolveAuthResult): void {\r\n if (!result.key) {\r\n return;\r\n }\r\n\r\n this.session.handleSession(\r\n +result.user_id,\r\n +result.location_id,\r\n result.key,\r\n +result.expiry_time,\r\n +result.expires,\r\n this.handleExpiration(),\r\n );\r\n }\r\n\r\n private handleError(\r\n errorRes: EsolveAuthGetResponse | EsolveAuthCheckResponse,\r\n ): Observable<never> {\r\n const error = {\r\n message: 'An unknown error occurred',\r\n data: {},\r\n };\r\n\r\n if (\r\n (!errorRes.type) ||\r\n (!errorRes.service_type) ||\r\n (!errorRes.message)\r\n ) {\r\n return throwError(() => error);\r\n }\r\n\r\n if (errorRes.message.trim() !== '') {\r\n error.message = errorRes.message;\r\n }\r\n\r\n if (errorRes.additional_data) {\r\n error.data = errorRes.additional_data;\r\n }\r\n\r\n return throwError(() => error);\r\n }\r\n}\r\n","import { EsolveAddressType } from './esolve-address-type.type';\r\n\r\nexport class EsolveAddress {\r\n constructor(\r\n public id: number,\r\n public recipient: string,\r\n public address_type: EsolveAddressType,\r\n public pobox: string,\r\n public place_name: string,\r\n public street_number: string,\r\n public street: string,\r\n public suburb: string,\r\n public city: string,\r\n public province: string,\r\n public country: string,\r\n public postal_code: string,\r\n public latitude: number,\r\n public longitude: number,\r\n ) { }\r\n}\r\n","import { EsolveAddressResponse } from './esolve-address-response.interface';\r\nimport { EsolveGeocodeResult } from '../esolve-geocode-result.interface';\r\nimport { EsolveResponseResult } from '../../shared/response';\r\n\r\nexport class EsolveAddressResult extends EsolveResponseResult {\r\n public id: number;\r\n public address_validated: boolean;\r\n public geocode_status: string;\r\n public geocode_result: EsolveGeocodeResult | null;\r\n\r\n constructor(\r\n response: EsolveAddressResponse,\r\n ) {\r\n super(response);\r\n\r\n this.id = response.esolve_id;\r\n this.address_validated = response.address_validated;\r\n this.geocode_status = response.geocode_status;\r\n this.geocode_result = response.geocode_result;\r\n }\r\n}\r\n","import { EsolveUserAccountRecord } from '../interfaces';\r\n\r\nexport class EsolveUserAccountBusiness {\r\n public name?: string;\r\n public vat_number?: string;\r\n public description?: string;\r\n public type?: string;\r\n\r\n constructor(record?: Partial<EsolveUserAccountRecord>) {\r\n if (record) {\r\n this.name = record.busname ?? '';\r\n this.vat_number = record.vatnum ?? '';\r\n this.description = record.busdescript ?? '';\r\n this.type = record.business_type ?? '';\r\n }\r\n }\r\n}\r\n","import { EsolveUserAccountRecord } from '../interfaces';\r\n\r\nexport class EsolveUserAccountContact {\r\n public tel_number?: string;\r\n public cell_number?: string;\r\n public fax_number?: string;\r\n\r\n constructor(record?: Partial<EsolveUserAccountRecord>) {\r\n if (record) {\r\n this.tel_number = record.telnumber ?? '';\r\n this.cell_number = record.cellnumber ?? '';\r\n this.fax_number = record.fax ?? '';\r\n }\r\n }\r\n}\r\n","import {\r\n EsolvePostResponseItem,\r\n EsolveResponseResult,\r\n} from '../../../shared/response';\r\n\r\nexport class EsolveUserAccountResult extends EsolveResponseResult {\r\n public id = 0;\r\n\r\n constructor(\r\n response: EsolvePostResponseItem,\r\n ) {\r\n super(response);\r\n\r\n this.id = +response.esolve_id;\r\n }\r\n}\r\n","import { EsolveStatementAgeingRecord } from '../interfaces';\r\n\r\nexport class EsolveStatementAgeing {\r\n public days?: number;\r\n public amount?: number;\r\n\r\n constructor(record?: Partial<EsolveStatementAgeingRecord>) {\r\n if (record) {\r\n this.days = +(record.days ?? 0);\r\n this.amount = +(record.amount ?? 0);\r\n }\r\n }\r\n}\r\n","import { EsolveStatementBalancesRecord } from '../interfaces';\r\n\r\nimport { EsolveStatementAgeing } from './esolve-statement-ageing.model';\r\n\r\nexport class EsolveStatementBalances {\r\n public total?: number;\r\n public ageing?: EsolveStatementAgeing[];\r\n\r\n constructor(record?: Partial<EsolveStatementBalancesRecord>) {\r\n if (record) {\r\n this.total = +(record.total ?? 0);\r\n this.ageing = record.ageing?.map((e) => new EsolveStatementAgeing(e)) ?? [];\r\n }\r\n }\r\n}\r\n","import { EsolveStatementTransactionRecord } from '../interfaces';\r\n\r\nexport class EsolveStatementTransaction {\r\n public order_date?: string;\r\n public order_number?: string;\r\n public comment?: string;\r\n public account?: string;\r\n public iq_reference?: string;\r\n public total?: number;\r\n public amount_due?: number;\r\n public is_debit?: boolean;\r\n\r\n constructor (record?: Partial<EsolveStatementTransactionRecord>) {\r\n if (record) {\r\n this.order_date = record.order_date ?? '';\r\n this.order_number = record.order_number ?? '';\r\n this.comment = record.comment ?? '';\r\n this.account = record.account ?? '';\r\n this.iq_reference = record.iq_reference ?? '';\r\n this.total = +(record.total ?? 0);\r\n this.amount_due = +(record.amount_due ?? 0);\r\n this.is_debit = !!+(record.is_debit ?? true);\r\n }\r\n }\r\n}\r\n","import { EsolveStatementRecord } from '../interfaces';\r\n\r\nimport { EsolveStatementBalances } from './esolve-statement-balances.model';\r\nimport { EsolveStatementTransaction } from './esolve-statement-transaction.model';\r\n\r\nexport class EsolveStatement {\r\n public balances?: EsolveStatementBalances;\r\n public transactions?: EsolveStatementTransaction[];\r\n\r\n constructor(record?: Partial<EsolveStatementRecord>) {\r\n if (record) {\r\n this.balances = new EsolveStatementBalances(record.balances);\r\n this.transactions = record.transactions?.map((e) => new EsolveStatementTransaction(e)) ?? [];\r\n }\r\n }\r\n}\r\n","import { EsolveUserClientAccountRecord } from '../interfaces';\r\n\r\nimport { EsolveStatement } from './esolve-statement.model';\r\n\r\nexport class EsolveUserClientAccount {\r\n public account?: string;\r\n public branch_code?: string;\r\n public account_group?: string;\r\n public pricing_group?: string;\r\n public company_name?: string;\r\n public client_contact_person?: string;\r\n public client_firstname?: string;\r\n public client_surname?: string;\r\n public client_email?: string;\r\n public client_contact_number?: string;\r\n public client_fax_number?: string;\r\n public client_cellphone_number?: string;\r\n public client_id_number?: string;\r\n public address_description?: string;\r\n public street?: string;\r\n public suburb?: string;\r\n public city?: string;\r\n public province?: string;\r\n public country?: string;\r\n public postal_code?: string;\r\n public postal_address?: string;\r\n public delivery_address?: string;\r\n public vat_number?: string;\r\n public ageing?: string;\r\n public balance_last_updated?: string;\r\n public client_classification?: string;\r\n public override_stock_listing_identifiers?: string;\r\n public requires_transaction_approval?: string;\r\n public latitude?: number;\r\n public longitude?: number;\r\n public price_list?: number;\r\n public loyalty_classification_id?: number;\r\n public credit_limit?: number;\r\n public pending_invoice_balance?: number;\r\n public external_account_balance?: number;\r\n public default_sellprice?: number;\r\n public is_active?: boolean;\r\n public external_statement?: EsolveStatement;\r\n\r\n constructor(record?: Partial<EsolveUserClientAccountRecord>) {\r\n if (record) {\r\n this.account = record.account ?? '';\r\n this.branch_code = record.branch_code ?? '';\r\n this.account_group = record.account_group ?? '';\r\n this.pricing_group = record.pricing_group ?? '';\r\n this.company_name = record.company_name ?? '';\r\n this.client_contact_person = record.client_contact_person ?? '';\r\n this.client_firstname = record.client_firstname ?? '';\r\n this.client_surname = record.client_surname ?? '';\r\n this.client_email = record.client_email ?? '';\r\n this.client_contact_number = record.client_contact_number ?? '';\r\n this.client_fax_number = record.client_fax_number ?? '';\r\n this.client_cellphone_number = record.client_cellphone_number ?? '';\r\n this.client_id_number = record.client_id_number ?? '';\r\n this.address_description = record.address_description ?? '';\r\n this.street = record.street ?? '';\r\n this.suburb = record.suburb;\r\n this.city = record.city ?? '';\r\n this.province = record.province ?? '';\r\n this.country = record.country ?? '';\r\n this.postal_code = record.postal_code ?? '';\r\n this.postal_address = record.postal_address ?? '';\r\n this.delivery_address = record.delivery_address ?? '';\r\n this.vat_number = record.vat_number ?? '';\r\n this.ageing = record.ageing ?? '';\r\n this.balance_last_updated = record.balance_last_updated ?? '';\r\n this.client_classification = record.client_classification ?? '';\r\n this.override_stock_listing_identifiers = record.override_stock_listing_identifiers ?? '';\r\n this.requires_transaction_approval = record.requires_transaction_approval ?? '';\r\n this.latitude = +(record.latitude ?? 0);\r\n this.longitude = +(record.longitude ?? 0);\r\n this.price_list = +(record.price_list ?? 0);\r\n this.loyalty_classification_id = +(record.loyalty_classification_id ?? 0);\r\n this.credit_limit = +(record.credit_limit ?? 0);\r\n this.pending_invoice_balance = +(record.pending_invoice_balance ?? 0);\r\n this.external_account_balance = +(record.external_account_balance ?? 0);\r\n this.default_sellprice = +(record.default_sellprice ?? 0);\r\n this.is_active = !!+(record.is_active ?? false);\r\n\r\n this.external_statement = new EsolveStatement(record.external_statement);\r\n }\r\n }\r\n}\r\n","import { EsolveUserAccountRecord } from '../interfaces';\r\nimport { EsolveUserAccountBusiness } from './esolve-user-account-business.model';\r\nimport { EsolveUserAccountContact } from './esolve-user-account-contact.model';\r\nimport { EsolveUserClientAccount } from './esolve-user-client-account.model';\r\n\r\nexport class EsolveUserAccount {\r\n public esolve_id?: number;\r\n public email?: string;\r\n public registration_type?: string;\r\n public title?: string;\r\n public first_name?: string;\r\n public last_name?: string;\r\n public initials?: string;\r\n public gender?: string;\r\n public identification_number?: string;\r\n public account_number?: string;\r\n public loyalty_number?: string;\r\n public business_details?: EsolveUserAccountBusiness;\r\n public contact_details?: EsolveUserAccountContact;\r\n public client_details?: EsolveUserClientAccount;\r\n\r\n constructor(record?: Partial<EsolveUserAccountRecord>) {\r\n if (record) {\r\n this.esolve_id = +(record.userid ?? 0);\r\n this.email = record.email ?? '';\r\n this.registration_type = record.registration_type ?? '';\r\n this.title = record.title ?? '';\r\n this.first_name = record.firstname ?? '';\r\n this.last_name = record.surname ?? '';\r\n this.initials = record.initials ?? '';\r\n this.gender = record.gender ?? '';\r\n this.identification_number = record.idnumber ?? '';\r\n\r\n this.contact_details = new EsolveUserAccountContact(record);\r\n this.business_details = new EsolveUserAccountBusiness(record);\r\n\r\n if (record.client_details && (record.client_details.account !== '')) {\r\n this.client_details = new EsolveUserClientAccount(record.client_details);\r\n }\r\n }\r\n }\r\n}\r\n","import { EsolveCartTotals } from '../../../cart';\r\n\r\nexport class EsolveUserClientAccountBalances {\r\n constructor (\r\n public clients_id?: number,\r\n public account?: string,\r\n public cart_totals?: EsolveCartTotals,\r\n public credit_limit?: number,\r\n public external_account_balance?: number,\r\n public external_available_balance?: number,\r\n public new_external_available_balance?: number,\r\n public credit_limit_okay?: boolean,\r\n ) {}\r\n}\r\n","import { EsolveAddressType } from '../address';\r\n\r\nexport class EsolveTransactionAddress {\r\n constructor(\r\n public recipient: string,\r\n public address_type: EsolveAddressType,\r\n public address_description: string,\r\n public street_number: string,\r\n public street: string,\r\n public suburb: string,\r\n public city: string,\r\n public province: string,\r\n public country: string,\r\n public postal_code: string,\r\n public pobox: string,\r\n ) { }\r\n}\r\n","export class EsolveTransactionClient {\r\n constructor(\r\n public id: number,\r\n public account: string,\r\n public company_name: string,\r\n public branch_code: string,\r\n public email: string,\r\n public first_name: string,\r\n public last_name: string,\r\n public contact_number: string,\r\n ) { }\r\n}\r\n","import { EsolveTransactionItemPrice } from './esolve-transaction-item-price.model';\r\n\r\nexport class EsolveTransactionItem {\r\n constructor(\r\n public code: string,\r\n public name: string,\r\n public qty: number,\r\n public discount: number,\r\n public vat_rate: number,\r\n public price: EsolveTransactionItemPrice,\r\n public line_total: EsolveTransactionItemPrice,\r\n ) { }\r\n}\r\n","export class EsolveTransactionItemPrice {\r\n constructor(\r\n /**\r\n * Price without tax\r\n */\r\n public price: number,\r\n /**\r\n * Price with tax\r\n */\r\n public price_with_tax: number,\r\n /**\r\n * Price without tax and with discounts applied if applicable\r\n */\r\n public price_discounted: number,\r\n /**\r\n * Price with tax and with discounts applied if applicable\r\n */\r\n public price_with_tax_discounted: number,\r\n ) { }\r\n}\r\n","export class EsolveLocationAddress {\r\n constructor(\r\n public street: string,\r\n public suburb: string,\r\n public city: string,\r\n public province: string,\r\n public country: string,\r\n public postal_code: string,\r\n public latitude: number,\r\n public longitude: number,\r\n ) { }\r\n}\r\n","export class EsolveLocationContactInfo {\r\n constructor(\r\n public telnumber: string[],\r\n public cellnumber: string,\r\n public email: string,\r\n public fax: string,\r\n ) { }\r\n}\r\n","export class EsolveLocationGEO {\r\n constructor(\r\n public distance: number,\r\n public range: number,\r\n public target_description: string,\r\n ) { }\r\n}\r\n","export class EsolveLocationPOBoxAddress {\r\n constructor(\r\n public pobox: string,\r\n public city: string,\r\n public postal_code: string,\r\n ) { }\r\n}\r\n","export class EsolveLocationTradingDay {\r\n constructor(\r\n public open: string,\r\n public close: string,\r\n ) { }\r\n}\r\n","import { EsolveLocationTradingDay } from './esolve-location-trading-day.model';\r\n\r\nexport class EsolveLocationTradingTimes {\r\n constructor(\r\n public monday: EsolveLocationTradingDay,\r\n public tuesday: EsolveLocationTradingDay,\r\n public wednesday: EsolveLocationTradingDay,\r\n public thursday: EsolveLocationTradingDay,\r\n public friday: EsolveLocationTradingDay,\r\n public saturday: EsolveLocationTradingDay,\r\n public sunday: EsolveLocationTradingDay,\r\n public public_holiday: EsolveLocationTradingDay,\r\n public trading_hours_additional_info: string = '',\r\n ) { }\r\n}\r\n","import { EsolveLocationRecord } from '../interfaces/esolve-location-record.interface';\r\nimport { EsolveLocationAddress } from './esolve-location-address.model';\r\nimport { EsolveLocationContactInfo } from './esolve-location-contact-info.model';\r\nimport { EsolveLocationPOBoxAddress } from './esolve-location-pobox-address.model';\r\nimport { EsolveLocationTradingTimes } from './esolve-location-trading-times.model';\r\nimport { EsolveLocationTradingDay } from './esolve-location-trading-day.model';\r\nimport { EsolveLocationGEO } from './esolve-location-geo.model';\r\n\r\nexport class EsolveLocation {\r\n public id: number;\r\n public identifier: string;\r\n public description: string;\r\n public head_office: boolean;\r\n public default_location_for_payment_methods: boolean;\r\n public external_system_code: string;\r\n public erp_identifier: string;\r\n public userid: number;\r\n public importance: number;\r\n public active: boolean;\r\n public dispatches_stock: boolean;\r\n public include_on_enquiries: boolean;\r\n public include_on_store_locator: boolean;\r\n public website_url: string;\r\n\r\n public address: EsolveLocationAddress;\r\n public pobox_address: EsolveLocationPOBoxAddress;\r\n public contact_info: EsolveLocationContactInfo;\r\n public trading_times: EsolveLocationTradingTimes;\r\n public geo?: EsolveLocationGEO;\r\n\r\n constructor(record: EsolveLocationRecord) {\r\n this.id = +record.id;\r\n this.identifier = record.identifier;\r\n this.description = record.description;\r\n this.head_office = !!+record.head_office;\r\n this.erp_identifier = record.erp_identifier;\r\n this.external_system_code = record.external_system_code;\r\n this.default_location_for_payment_methods = !!+record.default_location_for_payment_methods;\r\n this.userid = +record.userid;\r\n this.importance = +record.importance;\r\n this.active = !!+record.is_active;\r\n this.dispatches_stock = !!+record.dispatches_stock;\r\n this.include_on_enquiries = !!+record.include_on_enquiries;\r\n this.include_on_store_locator = !!+record.include_on_store_locator;\r\n this.website_url = record.website_url;\r\n\r\n this.address = new EsolveLocationAddress(\r\n record.street,\r\n record.suburb,\r\n record.city,\r\n record.province,\r\n record.country,\r\n record.postal_code,\r\n +record.latitude,\r\n +record.longitude,\r\n );\r\n\r\n this.pobox_address = new EsolveLocationPOBoxAddress(\r\n record.pobox,\r\n record.pobox_city,\r\n record.pobox_postal_code,\r\n );\r\n\r\n const telnumbers = [];\r\n\r\n if (record.branch_telnumber.length > 0) {\r\n telnumbers.push(record.branch_telnumber);\r\n }\r\n\r\n if (record.branch_telnumber_2.length > 0) {\r\n telnumbers.push(record.branch_telnumber_2);\r\n }\r\n\r\n if (record.branch_telnumber_3.length > 0) {\r\n telnumbers.push(record.branch_telnumber_3);\r\n }\r\n\r\n this.contact_info = new EsolveLocationContactInfo(\r\n telnumbers,\r\n record.branch_cellnumber,\r\n record.branch_email,\r\n record.branch_fax,\r\n );\r\n\r\n const monday = new EsolveLocationTradingDay(\r\n record.monday_open_time,\r\n record.monday_close_time,\r\n );\r\n\r\n const tuesday = new EsolveLocationTradingDay(\r\n record.tuesday_open_time,\r\n record.tuesday_close_time,\r\n );\r\n\r\n const wednesday = new EsolveLocationTradingDay(\r\n record.wednesday_open_time,\r\n record.wednesday_close_time,\r\n );\r\n\r\n const thursday = new EsolveLocationTradingDay(\r\n record.thursday_open_time,\r\n record.thursday_close_time,\r\n );\r\n\r\n const friday = new EsolveLocationTradingDay(\r\n record.friday_open_time,\r\n record.friday_close_time,\r\n );\r\n\r\n const saturday = new EsolveLocationTradingDay(\r\n record.saturday_open_time,\r\n record.saturday_close_time,\r\n );\r\n\r\n const sunday = new EsolveLocationTradingDay(\r\n record.sunday_open_time,\r\n record.sunday_close_time,\r\n );\r\n\r\n const public_holiday = new EsolveLocationTradingDay(\r\n record.public_holiday_open_time,\r\n record.public_holiday_close_time,\r\n );\r\n\r\n this.trading_times = new EsolveLocationTradingTimes(\r\n monday,\r\n tuesday,\r\n wednesday,\r\n thursday,\r\n friday,\r\n saturday,\r\n sunday,\r\n public_holiday,\r\n record.trading_hours_additional_info,\r\n );\r\n\r\n this.geo = new EsolveLocationGEO(\r\n record.distance,\r\n record.range,\r\n record.target_description,\r\n );\r\n }\r\n}\r\n\r\n\r\n","// Classes\r\nexport * from './esolve-location-address.model';\r\nexport * from './esolve-location-contact-info.model';\r\nexport * from './esolve-location-geo.model';\r\nexport * from './esolve-location-pobox-address.model';\r\nexport * from './esolve-location-trading-day.model';\r\nexport * from './esolve-location-trading-times.model';\r\nexport * from './esolve-location.model';\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\n\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { EsolveConnectConfig } from '../esolve-connect.config';\r\nimport { ESOLVE_CONNECT_CONFIG } from '../esolve-connect-config.constant';\r\nimport { EsolveGetResponse } from '../shared/response';\r\n\r\nimport { EsolveLocation } from './classes/esolve-location.model';\r\nimport { EsolveLocationRecord } from './interfaces/esolve-location-record.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class EsolveLocationsService {\r\n constructor(\r\n @Inject(ESOLVE_CONNECT_CONFIG) private config: EsolveConnectConfig,\r\n private http: HttpClient,\r\n ) { }\r\n\r\n /**\r\n * Retrieves a list of stock locations\r\n *\r\n * @returns An `Observable` with an array of stock locations\r\n */\r\n public getStockLocations(): Observable<EsolveLocation[]> {\r\n return this.http\r\n .get<EsolveGetResponse<EsolveLocationRecord[]>>(\r\n `${this.config.api_url}/get-locations.php`,\r\n )\r\n .pipe(\r\n map((response) => {\r\n if (response.records === undefined) {\r\n throw response;\r\n }\r\n\r\n return this.processStockLocations(response.records);\r\n }),\r\n );\r\n }\r\n\r\n /**\r\n * Retrieves a list of stock locations using the address_id as parameter or the latitude and longitude.\r\n * Set the addresses_id to 0 and the gps coordinates in order to retrieve the locations list when the address isn't\r\n * yet saved.\r\n *\r\n * @param addresses_id if supplied, the latitude and longitude on the address will be used.\r\n * @param latitude if supplied and address_id > 0, the value is ignored.\r\n * @param longitude if supplied and address_id > 0, the value is ignored.\r\n *\r\n * @returns An `Observable` with an array of stock locations\r\n */\r\n public getStockLocationsGeo(\r\n addresses_id: number = 0,\r\n latitude: number = 0,\r\n longitude: number = 0,\r\n ): Observable<EsolveLocation[]> {\r\n return this.http\r\n .get<EsolveGetResponse<EsolveLocationRecord[]>>(\r\n `${this.config.api_url}/get-locations-geo.php`,\r\n {\r\n params: {\r\n addresses_id,\r\n latitude,\r\n longitude,\r\n },\r\n },\r\n )\r\n .pipe(\r\n map((response) => {\r\n if (response.records === undefined) {\r\n throw response;\r\n }\r\n\r\n return this.processStockLocations(response.records);\r\n }),\r\n );\r\n }\r\n\r\n /**\r\n * Processes the eSolve stock location records.\r\n *\r\n * @param records Records to process\r\n * @returns An array of processed stock location records\r\n */\r\n private processStockLocations(records: EsolveLocationRecord[]): EsolveLocation[] {\r\n const stock_locations: EsolveLocation[] = [];\r\n\r\n if (records) {\r\n for (const record of records) {\r\n stock_locations.push(new EsolveLocation(record));\r\n }\r\n }\r\n\r\n return stock_locations;\r\n }\r\n}\r\n","import { EsolveLocation } from '../../locations';\r\n\r\nexport class EsolveTransactionLocation extends EsolveLocation { }\r\n","export class EsolveTransactionPaymentMethod {\r\n constructor(\r\n public id: number,\r\n public name: string,\r\n public description: string,\r\n public integration_type: string,\r\n public service_provider: string,\r\n ) { }\r\n}\r\n","export class EsolveTransactionShippingMethod {\r\n constructor(\r\n public id: number,\r\n public name: string,\r\n public delivery_category: string,\r\n public location: string,\r\n public description: string,\r\n public pricing: string,\r\n public client_to_collect: boolean,\r\n ) { }\r\n}\r\n","export class EsolveTransactionUser {\r\n constructor(\r\n public id: number,\r\n public email: string,\r\n public first_name: string,\r\n public last_name: string,\r\n public tel_number: string,\r\n public cell_number: string,\r\n ) { }\r\n}\r\n","import { EsolveTransactionAddress } from './esolve-transaction-address.model';\r\nimport { EsolveTransactionClient } from './esolve-transaction-client.model';\r\nimport { EsolveTransactionItem } from './esolve-transaction-item.model';\r\nimport { EsolveTransactionItemPrice } from './esolve-transaction-item-price.model';\r\nimport { EsolveTransactionItemRecord } from './esolve-transaction-item-record.interface';\r\nimport { EsolveTransactionLocation } from './esolve-transaction-location.model';\r\nimport { EsolveTransactionPaymentMethod } from './esolve-transaction-payment-method.model';\r\nimport { EsolveTransactionRecord } from './esolve-transaction-record.interface';\r\nimport { EsolveTransactionShippingMethod } from './esolve-transaction-shipping-method.model';\r\nimport { EsolveTransactionType } from './esolve-transaction-type.type';\r\nimport { EsolveTransactionUser } from './esolve-transaction-user.model';\r\n\r\nexport class EsolveTransaction {\r\n public id: number;\r\n public type: EsolveTransactionType;\r\n public status: string;\r\n public loyalty_number: string;\r\n public external_order_number: string;\r\n public external_invoice_number: string;\r\n\r\n // Dates\r\n public date: Date;\r\n public expected_date: Date;\r\n\r\n public client?: EsolveTransactionClient;\r\n public user?: EsolveTransactionUser;\r\n\r\n // Location\r\n public location?: EsolveTransactionLocation;\r\n\r\n // Totals\r\n public invoice_amount: number;\r\n public vat: number;\r\n public discount: number;\r\n public total: number;\r\n public shipping_total: number;\r\n public insurance_total: number;\r\n\r\n // Payment\r\n public payment_method?: EsolveTransactionPaymentMethod;\r\n public payment: number;\r\n public gateway_transaction_id: string;\r\n public payment_reference: string;\r\n public payment_description: string;\r\n\r\n // Shipping\r\n public shipping_method?: EsolveTransactionShippingMethod;\r\n\r\n // Address Details\r\n public address: EsolveTransactionAddress;\r\n\r\n // Transaction Items\r\n public items: EsolveTransactionItem[] = [];\r\n\r\n constructor(record: EsolveTransactionRecord) {\r\n this.id = +record.id;\r\n this.type = record.transaction_type;\r\n this.status = record.status;\r\n this.loyalty_number = record.loyaltynumber;\r\n this.external_order_number = record.external_order_number;\r\n this.external_invoice_number = record.external_invoice_number;\r\n\r\n this.date = new Date(+record.txdate_timestamp * 1000);\r\n this.expected_date = new Date(+record.expected_date_timestamp * 1000);\r\n\r\n this.invoice_amount = +record.invoice_amount;\r\n this.vat = +record.vat;\r\n this.discount = +record.discount;\r\n this.total = +record.total;\r\n this.shipping_total = +record.shipping_total;\r\n this.insurance_total = +record.insurance_total;\r\n\r\n this.payment = +record.payment;\r\n this.payment_reference = record.payment_reference;\r\n this.payment_description = record.payment_description;\r\n this.gateway_transaction_id = record.gateway_transaction_id;\r\n\r\n this.address = new EsolveTransactionAddress(\r\n record.recipient,\r\n record.address_type,\r\n record.address_description,\r\n record.street_number,\r\n record.street,\r\n record.suburb,\r\n record.city,\r\n record.province,\r\n record.country,\r\n record.postal_code,\r\n record.pobox,\r\n );\r\n\r\n if (record.user) {\r\n this.user = new EsolveTransactionUser(\r\n +record.user.id,\r\n record.user.email,\r\n record.user.firstname,\r\n record.user.surname,\r\n record.user.telnumber,\r\n record.user.cellnumber,\r\n );\r\n }\r\n\r\n if (record.client) {\r\n this.client = new EsolveTransactionClient(\r\n +record.client.id,\r\n record.client.account,\r\n record.client.company_name,\r\n record.client.branch_code,\r\n record.client.email,\r\n record.client.firstname,\r\n record.client.surname,\r\n record.client.contact_number,\r\n );\r\n }\r\n\r\n if (record.location_details) {\r\n this.location = new EsolveTransactionLocation(record.location_details);\r\n }\r\n\r\n if (record.payment_method_details) {\r\n this.payment_method = new EsolveTransactionPaymentMethod(\r\n record.payment_method_details.id,\r\n record.payment_method_details.paymethod_name,\r\n record.payment_method_details.description,\r\n record.payment_method_details.integration_type,\r\n record.payment_method_details.service_provider,\r\n );\r\n }\r\n\r\n if (record.shipping_method_details) {\r\n this.shipping_method = new EsolveTransactionShippingMethod(\r\n +record.shipping_method_details.id,\r\n record.shipping_method_details.carrier_name,\r\n record.shipping_method_details.delivery_category,\r\n record.shipping_method_details.location,\r\n record.shipping_method_details.description,\r\n record.shipping_method_details.pricing,\r\n !!record.shipping_method_details.client_to_collect,\r\n );\r\n }\r\n\r\n this.parseTransactionItems(record.transaction_items);\r\n }\r\n\r\n private parseTransactionItems(record_items: EsolveTransactionItemRecord[]): void {\r\n for (const record_item of record_items) {\r\n const price = new EsolveTransactionItemPrice(\r\n +record_item.price_exclusive,\r\n +record_item.price_inclusive,\r\n +record_item.price_exclusive_after_discount,\r\n +record_item.price_inclusive_after_discount,\r\n );\r\n\r\n const line_total = new EsolveTransactionItemPrice(\r\n +record_item.line_total_exclusive,\r\n +record_item.line_total_inclusive,\r\n +record_item.line_total_exclusive_after_discount,\r\n +record_item.line_total_inclusive_after_discount,\r\n );\r\n\r\n const item = new EsolveTransactionItem(\r\n record_item.code,\r\n record_item.name,\r\n +record_item.qty,\r\n +record_item.discount,\r\n +record_item.vat_rate,\r\n price,\r\n line_total,\r\n );\r\n\r\n this.items.push(item);\r\n }\r\n }\r\n}\r\n","import { EsolveList } from '../../shared/esolve-list.model';\r\nimport { EsolveTransaction } from './esolve-transaction.model';\r\n\r\nexport class EsolveTransactionList extends EsolveList<EsolveTransaction> { }\r\n","// Classes\r\nexport * from './esolve-transaction.model';\r\nexport * from './esolve-transaction-address.model';\r\nexport * from './esolve-transaction-client.model';\r\nexport * from './esolve-transaction-item.model';\r\nexport * from './esolve-transaction-list.model';\r\nexport * from './esolve-transaction-item-price.model';\r\nexport * from './esolve-transaction-location.model';\r\nexport * from './esolve-transaction-options.interface';\r\nexport * from './esolve-transaction-payment-method.model';\r\nexport * from './esolve-transaction-shipping-method.model';\r\nexport * from './esolve-transaction-user.model';\r\n// Interfaces\r\nexport * from './esolve-transaction-record.interface';\r\nexport * from './esolve-transaction-client-record.interface';\r\nexport * from './esolve-transaction-item-record.interface';\r\nexport * from './esolve-transaction-location-record.interface';\r\nexport * from './esolve-transaction-payment-method-record.interface';\r\nexport * from './esolve-transaction-shipping-method-record.interface';\r\nexport * from './esolve-transaction-user-record.interface';\r\n// Types\r\nexport * from './esolve-transaction-type.type';\r\n","import {\r\n EsolvePostResponseItem,\r\n EsolveResponseResult,\r\n} from '../../shared/response';\r\n\r\nexport class EsolveChangePasswordResult extends EsolveResponseResult {\r\n public password_updated: boolean;\r\n\r\n constructor(\r\n response: EsolvePostResponseItem,\r\n ) {\r\n super(response);\r\n\r\n this.password_updated = (response.status.state === 'success');\r\n }\r\n}\r\n","import { EsolveResponseResult } from '../../shared/response';\r\nimport { EsolveForgotPasswordResponse } from './esolve-forgot-password-response.interface';\r\n\r\nexport class EsolveResetPasswordResult extends EsolveResponseResult {\r\n public id: number;\r\n public reset_success: boolean;\r\n public password_matches_old: boolean;\r\n public login_required: boolean;\r\n\r\n constructor(\r\n response: EsolveForgotPasswordResponse,\r\n ) {\r\n super(response);\r\n\r\n this.id = response.esolve_id;\r\n this.reset_success = response.reset_success;\r\n this.password_matches_old = response.password_matches_old;\r\n this.login_required = response.login_required;\r\n }\r\n}\r\n","import { EsolveResponseResult } from '../../shared/response';\r\nimport { EsolveRegistrationPostResponseItem } from './esolve-registration-post-response-item.interface';\r\n\r\nexport class EsolveRegistrationResult extends EsolveResponseResult {\r\n public user_id: number;\r\n public guest: boolean;\r\n public authentication_required: boolean;\r\n public auto_login: boolean;\r\n public location_id: number;\r\n\r\n constructor(\r\n response: EsolveRegistrationPostResponseItem,\r\n ) {\r\n super(response);\r\n\r\n this.user_id = response.esolve_id;\r\n this.guest = response.guest;\r\n this.auto_login = response.auto_login;\r\n this.authentication_required = response.authentication_required;\r\n this.location_id = response.session_data.location_id;\r\n }\r\n}\r\n","import { EsolveResponseResult } from '../../shared/response';\r\nimport { EsolveAccountConfirmationPostResponseItem } from './esolve-account-confirmation-post-response-item.interface';\r\n\r\nexport class EsolveAccountConfirmationResult extends EsolveResponseResult {\r\n public user_id: number;\r\n public location_id: number;\r\n public recalculated_cart: boolean;\r\n\r\n constructor(\r\n response: EsolveAccountConfirmationPostResponseItem,\r\n ) {\r\n super(response);\r\n\r\n this.user_id = +response.esolve_id;\r\n this.location_id = +response.location_id;\r\n this.recalculated_cart = !!+response.recalculated_cart;\r\n }\r\n}\r\n","import {\r\n EsolvePostResponseItem,\r\n EsolveResponseResult,\r\n} from '../shared/response';\r\n\r\nexport class EsolveLocationUpdateResult extends EsolveResponseResult {\r\n public location_updated: boolean;\r\n\r\n constructor(\r\n response: EsolvePostResponseItem,\r\n ) {\r\n super(response);\r\n\r\n this.location_updated = (response.esolve_id > 0);\r\n }\r\n}\r\n","import { EsolveResponseResult } from '../../shared/response';\r\n\r\nexport class EsolveEmptyCartResult extends EsolveResponseResult { }\r\n","import { EsolveResponseResult } from '../../shared/response';\r\n\r\nimport { EsolveCheckoutResponse } from '../interfaces';\r\n\r\nexport class EsolveCheckoutResult extends EsolveResponseResult {\r\n public id = 0;\r\n public process_payment: boolean;\r\n\r\n constructor(response: EsolveCheckoutResponse) {\r\n super(response);\r\n\r\n this.id = +response.esolve_id;\r\n this.process_payment = response.process_payment ?? false;\r\n }\r\n}\r\n","import { EsolveCartStockItem } from './esolve-cart-stock-item.model';\r\n\r\nexport class EsolveCartItem {\r\n constructor(\r\n public id: number,\r\n public stock_item: EsolveCartStockItem,\r\n public qty: number,\r\n public delivery_category: string,\r\n public type: string,\r\n\r\n public price: number,\r\n public discount: number,\r\n public discount_interval: number,\r\n public vat_rate: number,\r\n\r\n public allow_quotes: boolean,\r\n public allow_orders: boolean,\r\n public must_collect: boolean,\r\n public requested_assembly: boolean,\r\n\r\n public price_incl: number,\r\n public discount_price: number,\r\n public discount_price_incl: number,\r\n public discount_total: number,\r\n public vat_total: number,\r\n public total: number,\r\n public total_incl: number,\r\n ) { }\r\n}\r\n","export class EsolveCartStockItem {\r\n /**\r\n * Path to tiny stock image\r\n */\r\n public get tiny_image_src(): string {\r\n return this.getImagePath('tiny');\r\n }\r\n\r\n /**\r\n * Path to thumbnail stock image\r\n */\r\n public get thumbnail_image_src(): string {\r\n return this.getImagePath('thumb');\r\n }\r\n\r\n /**\r\n * Path to small stock image\r\n */\r\n public get small_image_src(): string {\r\n return this.getImagePath('small');\r\n }\r\n\r\n /**\r\n * Path to big stock image\r\n */\r\n public get big_image_src(): string {\r\n return this.getImagePath('big');\r\n }\r\n\r\n /**\r\n * Path to original stock image\r\n */\r\n public get original_image_src(): string {\r\n return this.getImagePath('original');\r\n }\r\n\r\n constructor(\r\n public code: string,\r\n public name: string,\r\n public sef_name: string,\r\n public description: string,\r\n public active: boolean,\r\n public items_in_pack: number,\r\n public delivery_category: string,\r\n public onhand: number,\r\n private image_name: string,\r\n ) { }\r\n\r\n public getImagePath(\r\n image_size: 'tiny' | 'thumb' | 'small' | 'big' | 'original',\r\n ): string {\r\n if (this.image_name !== '') {\r\n return `/images/stock/${image_size}/${this.image_name}`;\r\n }\r\n\r\n return '';\r\n }\r\n}\r\n","/**\r\n * Totals in cart\r\n */\r\nexport class EsolveCartTotals {\r\n /**\r\n * Grand total of cart which includes discount and VAT (NOTE: shipping and insurance is not included)\r\n */\r\n public get total(): number {\r\n return this.sub_total + this.vat_total - this.discount_total;\r\n }\r\n\r\n constructor(\r\n /**\r\n * Number of unique records in cart\r\n */\r\n public records: number = 0,\r\n /**\r\n * Total quantity of all items in a cart\r\n */\r\n public items: number = 0,\r\n /**\r\n * Total in cart before discount and VAT is added\r\n */\r\n public sub_total: number = 0,\r\n /**\r\n * Total VAT of all the items in the cart\r\n */\r\n public vat_total: number = 0,\r\n /**\r\n * Total discount of all the item in the cart\r\n */\r\n public discount_total: number = 0,\r\n ) { }\r\n}\r\n","import { EsolveTransactionType } from '../../account';\r\n\r\nimport { EsolveTransactionAnalyticsDataRecord } from '../interfaces';\r\n\r\nexport class EsolveTransactionAnalyticsData<T = any> {\r\n public transaction_id: number = 0;\r\n public transaction_type: EsolveTransactionType = 'order';\r\n /**\r\n * Data generated for analytics\r\n */\r\n public analytics_data?: T;\r\n\r\n constructor(record?: Partial<EsolveTransactionAnalyticsDataRecord<T>>) {\r\n if (record) {\r\n this.transaction_id = +(record.transaction_id ?? 0);\r\n this.transaction_type = record.transaction_type ?? 'order';\r\n\r\n if (record.analytics_data) {\r\n this.analytics_data = record.analytics_data;\r\n }\r\n }\r\n }\r\n}\r\n","import { EsolveCouponRecord } from '../interfaces';\r\n\r\nexport class EsolveCoupon {\r\n public id: number = 0;\r\n public identifier: string = '';\r\n public discount: number = 0;\r\n /**\r\n * Shows either the short code or the coupon key (if short code is not set)\r\n */\r\n public coupon_code: string = '';\r\n /**\r\n * Limit of the number of items it can apply to\r\n */\r\n public apply_on: number = 0;\r\n /**\r\n * Indicates if the discount does not apply to specified products, meaning\r\n * all items get the discount\r\n */\r\n public apply_to_full_cart: boolean = false;\r\n\r\n constructor(record?: EsolveCouponRecord) {\r\n if (record) {\r\n this.id = +record.id;\r\n this.identifier = record.identifier;\r\n this.discount = +record.discount;\r\n this.coupon_code = record.coupon_code;\r\n this.apply_on = +record.apply_on;\r\n this.apply_to_full_cart = record.apply_to_full_cart;\r\n }\r\n }\r\n}\r\n","export interface EsolveCouponValidationResult {\r\n valid: boolean;\r\n id?: number;\r\n};\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\n\r\nimport { BehaviorSubject, firstValueFrom, Observable, of, Subject } from 'rxjs';\r\nimport { catchError, map } from 'rxjs/operators';\r\n\r\nimport { ESOLVE_CONNECT_CONFIG } from '../esolve-connect-config.constant';\r\nimport { EsolveConnectConfig } from '../esolve-connect.config';\r\n\r\nimport { EsolveCookieService } from '../shared/cookie/esolve-cookie.service';\r\nimport { EsolveGetResponse } from '../shared/response';\r\n\r\nimport { EsolveCoupon } from './classes';\r\nimport {\r\n EsolveCouponRecord,\r\n EsolveCouponValidation,\r\n EsolveCouponValidationError,\r\n EsolveCouponValidationResult,\r\n} from './interfaces';\r\nimport { EsolveCouponsCache } from './types';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class EsolveCouponsService {\r\n private storage_key = '_ng_eslv_coupons';\r\n private coupons_cache: EsolveCouponsCache = new Map();\r\n private applied = new BehaviorSubject<void>(undefined);\r\n private validation_error = new Subject<EsolveCouponValidationError | undefined>();\r\n\r\n constructor(\r\n @Inject(ESOLVE_CONNECT_CONFIG) private config: EsolveConnectConfig,\r\n private http: HttpClient,\r\n private cookieService: EsolveCookieService,\r\n ) {\r\n this.setStorageKey();\r\n this.coupons_cache = this.retrieveCache();\r\n }\r\n\r\n public onValidationError(): Observable<EsolveCouponValidationError | undefined> {\r\n return this.validation_error.asObservable();\r\n }\r\n\r\n public onApplied(): Observable<void> {\r\n return this.applied.asObservable();\r\n }\r\n\r\n public validate(coupon_key: string): Observable<EsolveCouponValidationResult> {\r\n return this.http\r\n .get<EsolveGetResponse<EsolveCouponValidation>>(\r\n `${this.config.api_url}/get-validate-coupon.php`,\r\n {\r\n params: {\r\n coupon_key,\r\n },\r\n },\r\n )\r\n .pipe(\r\n map((response) => {\r\n if (response.records === undefined) {\r\n throw response;\r\n }\r\n\r\n const valid = response.records.valid;\r\n\r\n const result: EsolveCouponValidationResult = {\r\n valid,\r\n };\r\n\r\n if (!valid) {\r\n const error = response.records.error;\r\n this.validation_error.next(error);\r\n } else if (valid) {\r\n result.id = response.records.id;\r\n }\r\n\r\n return result;\r\n }),\r\n catchError(() => {\r\n this.validation_error.next(undefined);\r\n\r\n return of({ valid: false });\r\n }),\r\n );\r\n }\r\n\r\n public async applyCoupon(coupon_key: string): Promise<boolean> {\r\n try {\r\n if (coupon_key.trim() === '') {\r\n return false;\r\n }\r\n\r\n const result = await firstValueFrom(this.validate(coupon_key));\r\n\r\n if (result.valid && result.id) {\r\n this.addCoupon(result.id, coupon_key);\r\n }\r\n\r\n return result.valid;\r\n } catch (error) {\r\n return false;\r\n }\r\n }\r\n\r\n public removeCoupon(id: number): void {\r\n this.coupons_cache.delete(id);\r\n\r\n this.cacheCoupons();\r\n this.applied.next();\r\n }\r\n\r\n public getAppliedCouponKeys(): string[] {\r\n return [...this.coupons_cache.values()];\r\n }\r\n\r\n public getAppliedCoupons(): Observable<EsolveCoupon[]> {\r\n const coupon_ids = [...this.coupons_cache.keys()];\r\n\r\n return this.http\r\n .get<EsolveGetResponse<EsolveCouponRecord[]>>(\r\n `${this.config.api_url}/get-applied-coupons.php`,\r\n {\r\n params: {\r\n coupons: coupon_ids.join(','),\r\n },\r\n },\r\n )\r\n .pipe(\r\n map((response) => {\r\n if (response.records === undefined) {\r\n throw response;\r\n }\r\n\r\n return this.processCoupons(response.records);\r\n }),\r\n );\r\n }\r\n\r\n public reset() {\r\n this.deleteCoupons();\r\n }\r\n\r\n private retrieveCache(): EsolveCouponsCache {\r\n if (\r\n this.cookieService.check(this.storage_key) ||\r\n localStorage.getItem(this.storage_key)\r\n ) {\r\n let coupons_json = this.cookieService.get(this.storage_key);\r\n\r\n if (coupons_json === '' && localStorage) {\r\n let local_store_data = localStorage.getItem(this.storage_key);\r\n\r\n if (local_store_data) {\r\n coupons_json = local_store_data;\r\n }\r\n }\r\n\r\n try {\r\n return this.jsonDecodeMap(coupons_json);\r\n } catch (error) {\r\n // soft error\r\n }\r\n }\r\n\r\n return new Map();\r\n }\r\n\r\n private cacheCoupons(): void {\r\n if (this.coupons_cache.size > 0) {\r\n const coupons_json = this.jsonEncodeMap(this.coupons_cache);\r\n\r\n this.cookieService.set(this.storage_key, coupons_json, undefined, '/');\r\n\r\n if (localStorage) {\r\n localStorage.setItem(this.storage_key, coupons_json);\r\n }\r\n } else {\r\n this.deleteCoupons();\r\n }\r\n }\r\n\r\n private deleteCoupons(): void {\r\n this.coupons_cache.clear();\r\n this.cookieService.delete(this.storage_key, '/');\r\n\r\n if (localStorage) {\r\n localStorage.removeItem(this.storage_key);\r\n }\r\n }\r\n\r\n private addCoupon(id: number, key: string): void {\r\n if (!this.coupons_cache.has(id)) {\r\n this.coupons_cache.set(id, key);\r\n this.cacheCoupons();\r\n }\r\n\r\n this.applied.next();\r\n }\r\n\r\n private setStorageKey(): void {\r\n if (\r\n typeof this.config.coupon_storage_key === 'string' &&\r\n this.config.coupon_storage_key !== ''\r\n ) {\r\n this.storage_key = this.config.coupon_storage_key;\r\n }\r\n }\r\n\r\n private jsonEncodeMap(data: EsolveCouponsCache): string {\r\n if (!(data instanceof Map)) {\r\n throw new Error('Invalid map type');\r\n }\r\n\r\n return JSON.stringify(data, (key, value) => {\r\n if (value instanceof Map) {\r\n return {\r\n dataType: 'Map',\r\n value: [...value],\r\n };\r\n } else {\r\n return value;\r\n }\r\n });\r\n }\r\n\r\n private jsonDecodeMap(json_data: string): EsolveCouponsCache {\r\n const data = JSON.parse(json_data, (key, value) => {\r\n if (typeof value === 'object' && value !== null) {\r\n if (value.dataType === 'Map') {\r\n return new Map(value.value);\r\n }\r\n }\r\n\r\n return value;\r\n });\r\n\r\n if (data instanceof Map) {\r\n return data;\r\n }\r\n\r\n throw new Error('Invalid map type');\r\n }\r\n\r\n private processCoupons(records: EsolveCouponRecord[]): EsolveCoupon[] {\r\n const coupons: EsolveCoupon[] = [];\r\n\r\n if (records) {\r\n for (const record of records) {\r\n const coupon = new EsolveCoupon(record);\r\n\r\n coupons.push(coupon);\r\n }\r\n }\r\n\r\n return coupons;\r\n }\r\n}\r\n","// Classes\r\nexport * from './classes';\r\n\r\n// Interfaces\r\nexport * from './interfaces';\r\n\r\n// Types\r\nexport * from './types';\r\n\r\n// Service\r\nexport * from './esolve-coupons.service';\r\n","import { Inject, Injectable } from '@angular/core';\r\n\r\nimport { HttpClient, HttpErrorResponse, HttpParams } from '@angular/common/http';\r\n\r\nimport { iif, Observable, of } from 'rxjs';\r\nimport { catchError, map, switchMap } from 'rxjs/operators';\r\n\r\nimport { EsolveConnectConfig } from '../esolve-connect.config';\r\nimport { ESOLVE_CONNECT_CONFIG } from '../esolve-connect-config.constant';\r\nimport { EsolveErrorHandlerService } from '../shared/errors/esolve-error-handler.service';\r\nimport {\r\n EsolveGetResponse,\r\n EsolveResponseHandlerService,\r\n EsolveSetResponse,\r\n} from '../shared/response';\r\n\r\nimport { EsolveTransactionType } from '../account';\r\nimport { EsolveCouponsService } from '../coupons';\r\n\r\nimport {\r\n EsolveCartItem,\r\n EsolveCartStockItem,\r\n EsolveCartTotals,\r\n EsolveCheckoutResult,\r\n EsolveEmptyCartResult,\r\n EsolveTransactionAnalyticsData,\r\n} from './classes';\r\nimport {\r\n EsolveAdditionalWhere,\r\n EsolveCartEmptyResponse,\r\n EsolveCartItemRecord,\r\n EsolveCartItemResponse,\r\n EsolveCartSetItem,\r\n EsolveCartTotalsRecord,\r\n EsolveCheckoutResponse,\r\n EsolveTrackingCode,\r\n EsolveTransactionAnalyticsDataRecord,\r\n} from './interfaces';\r\nimport { EsolveCart, EsolveCartSetAction } from './types';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class EsolveCartService {\r\n private _cached_tracking = 0;\r\n\r\n constructor(\r\n @Inject(ESOLVE_CONNECT_CONFIG) private config: EsolveConnectConfig,\r\n private http: HttpClient,\r\n private errorHandler: EsolveErrorHandlerService,\r\n private responseHandler: EsolveResponseHandlerService,\r\n private coupons: EsolveCouponsService,\r\n ) {}\r\n\r\n /**\r\n * Retrieves the current cart\r\n *\r\n * @returns An `Observable` with an array of cart items\r\n */\r\n public getCart(): Observable<EsolveCart> {\r\n let params = new HttpParams();\r\n\r\n const coupons = this.coupons.getAppliedCouponKeys();\r\n\r\n if (coupons.length > 0) {\r\n params = params.set('coupons', coupons.join(','));\r\n }\r\n\r\n return this.http\r\n .get<EsolveGetResponse<EsolveCartItemRecord[]>>(\r\n `${this.config.api_url}/get-cart.php`,\r\n { params },\r\n )\r\n .pipe(\r\n map((response) => {\r\n if (response.records === undefined) {\r\n throw response;\r\n }\r\n\r\n return this.processCart(response.records);\r\n }),\r\n );\r\n }\r\n\r\n /**\r\n * Updates the cart by preforming various actions, such as adding, editing or removing items from the cart.\r\n *\r\n * @param items An array of options to update the cart\r\n * @param action The default action to preform\r\n *\r\n * @returns An `Observable` with an array of responses that gives feedback on the requested changes\r\n */\r\n public setCart(\r\n items: EsolveCartSetItem[],\r\n action: EsolveCartSetAction = 'add',\r\n ): Observable<EsolveCartItemResponse[]> {\r\n const body = {\r\n items,\r\n action,\r\n };\r\n\r\n return this.http\r\n .post<EsolveSetResponse<EsolveCartItemResponse>>(\r\n `${this.config.api_url}/set-cart-item.php`,\r\n body,\r\n {\r\n headers: {\r\n 'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;',\r\n },\r\n responseType: 'json',\r\n observe: 'body',\r\n },\r\n )\r\n .pipe(\r\n map((response) => {\r\n if (response.responses === undefined) {\r\n throw response;\r\n }\r\n\r\n return response.responses;\r\n }),\r\n );\r\n }\r\n\r\n public setCartEmpty(\r\n type: EsolveTransactionType,\r\n additional_where: EsolveAdditionalWhere[],\r\n ): Observable<EsolveEmptyCartResult> {\r\n const body = {\r\n type,\r\n additional_where,\r\n };\r\n\r\n return this.http\r\n .post<EsolveSetResponse<EsolveCartEmptyResponse>>(\r\n `${this.config.api_url}/set-cart-empty.php`,\r\n body,\r\n {\r\n headers: {\r\n 'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;',\r\n },\r\n responseType: 'json',\r\n observe: 'body',\r\n },\r\n )\r\n .pipe(\r\n map((http_response) => this.responseHandler.validateSingleHttpResponse(\r\n http_response,\r\n (response) => {\r\n this._cached_tracking = 0;\r\n\r\n return new EsolveEmptyCartResult(response);\r\n },\r\n )),\r\n catchError((errorRes: HttpErrorResponse | any) => {\r\n return this.errorHandler.handleHttpPostError('set-cart-empty', errorRes);\r\n }),\r\n );\r\n }\r\n\r\n /**\r\n * Retrieves the totals of the cart with all the totals calculated\r\n *\r\n * @returns An `Observable` with an object containing cart totals\r\n */\r\n public getTotals(type?: EsolveTransactionType): Observable<EsolveCartTotals> {\r\n return this.http\r\n .get<EsolveGetResponse<EsolveCartTotalsRecord>>(\r\n `${this.config.api_url}/get-cart-totals.php`,\r\n {\r\n params: {\r\n type: type ?? '',\r\n },\r\n },\r\n )\r\n .pipe(\r\n map((response) => {\r\n if (response.records === undefined) {\r\n throw response;\r\n }\r\n\r\n return this.processCartTotals(response.records);\r\n }),\r\n );\r\n }\r\n\r\n /**\r\n * Retrieves a tracking code for the cart\r\n *\r\n * @returns An `Observable` with the cart tracking code\r\n */\r\n public getTrackingCode(): Observable<number> {\r\n return iif(\r\n () => this._cached_tracking > 0,\r\n of(this._cached_tracking),\r\n this.http\r\n .get<EsolveGetResponse<EsolveTrackingCode>>(\r\n `${this.config.api_url}/get-checkout-tracking.php`,\r\n )\r\n .pipe(\r\n map((response) => {\r\n if (response.records === undefined) {\r\n throw response;\r\n }\r\n\r\n this._cached_tracking = response.records.tracking;\r\n\r\n return response.records.tracking;\r\n }),\r\n ),\r\n );\r\n }\r\n\r\n /**\r\n * Get the data of the transaction for the analytics\r\n *\r\n * @param transaction_id ID of the transaction used in eSolve\r\n *\r\n * @returns An `Observable` with the analytics data\r\n */\r\n public getTransactionAnalyticsData<T = any>(\r\n transaction_id: number,\r\n ): Observable<EsolveTransactionAnalyticsData<T>> {\r\n return this.http\r\n .get<EsolveGetResponse<EsolveTransactionAnalyticsDataRecord<T>>>(\r\n `${this.config.api_url}/get-transaction-analytics-data.php`,\r\n {\r\n params: {\r\n transaction_id,\r\n },\r\n },\r\n )\r\n .pipe(\r\n map((response) => {\r\n if (response.records === undefined) {\r\n throw response;\r\n }\r\n\r\n return new EsolveTransactionAnalyticsData<T>(response.records);\r\n }),\r\n );\r\n }\r\n\r\n /**\r\n * Initiates checkout of the cart items\r\n *\r\n * @param type The cart type that needs to be checked out\r\n * @param addresses_id The ID of the delivery address\r\n * @param shipping_id The ID of the shipping method\r\n * @param payment_method_id The ID of the selected payment method\r\n * @param location_id The ID of the selected branch from with shipping needs to be calculated\r\n * @param comments Additional comments on the cart\r\n *\r\n * @returns An `Observable` with the transaction ID\r\n */\r\n public checkout(\r\n type: EsolveTransactionType,\r\n addresses_id: number,\r\n shipping_id: number,\r\n payment_method_id = 0,\r\n location_id = 0,\r\n comments = '',\r\n ): Observable<EsolveCheckoutResult> {\r\n const body = {\r\n type,\r\n addresses_id,\r\n shipping_id,\r\n payment_method_id,\r\n location_id,\r\n comments,\r\n tracking: 0,\r\n };\r\n\r\n return this.getTrackingCode().pipe(\r\n switchMap((tracking) => {\r\n if (tracking <= 0) {\r\n throw tracking;\r\n }\r\n\r\n body.tracking = tracking;\r\n\r\n return this.http\r\n .post<EsolveSetResponse<EsolveCheckoutResponse>>(\r\n `${this.config.api_url}/set-checkout.php`,\r\n body,\r\n {\r\n headers: {\r\n 'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;',\r\n },\r\n responseType: 'json',\r\n observe: 'body',\r\n },\r\n )\r\n .pipe(\r\n map((http_response) => this.responseHandler.validateSingleHttpResponse(\r\n http_response,\r\n (response) => {\r\n this._cached_tracking = 0;\r\n this.coupons.reset();\r\n\r\n return new EsolveCheckoutResult(response);\r\n },\r\n )),\r\n catchError((errorRes: HttpErrorResponse | any) => {\r\n return this.errorHandler.handleHttpPostError('set-checkout', errorRes);\r\n }),\r\n );\r\n }),\r\n );\r\n }\r\n\r\n /**\r\n * Processes the eSolve tree records\r\n *\r\n * @param cart_item_records Records to process\r\n * @returns An array of processed cart items\r\n */\r\n private processCart(cart_item_records: EsolveCartItemRecord[]): EsolveCart {\r\n const cart_items: EsolveCartItem[] = [];\r\n\r\n if (cart_item_records) {\r\n for (const cart_item_record of cart_item_records) {\r\n const cart_stock_item = new EsolveCartStockItem(\r\n cart_item_record.code,\r\n cart_item_record.name,\r\n cart_item_record.sef_name,\r\n cart_item_record.description,\r\n cart_item_record.is_active,\r\n +cart_item_record.items_in_pack,\r\n cart_item_record.delivery_category,\r\n +cart_item_record.onhand,\r\n cart_item_record.image_name,\r\n );\r\n\r\n cart_items.push(new EsolveCartItem(\r\n +cart_item_record.id,\r\n cart_stock_item,\r\n +cart_item_record.qty,\r\n cart_item_record.delivery_category,\r\n cart_item_record.type,\r\n +cart_item_record.price,\r\n +cart_item_record.discount,\r\n +cart_item_record.discount_interval,\r\n cart_item_record.vat_rate,\r\n cart_item_record.allow_quotes,\r\n cart_item_record.allow_orders,\r\n cart_item_record.must_collect,\r\n cart_item_record.requested_assembly,\r\n +cart_item_record.price_incl,\r\n +cart_item_record.discount_price,\r\n +cart_item_record.discount_price_incl,\r\n +cart_item_record.discount_total,\r\n +cart_item_record.vat_total,\r\n +cart_item_record.line_total,\r\n +cart_item_record.line_total_incl,\r\n ));\r\n }\r\n }\r\n\r\n return cart_items;\r\n }\r\n\r\n /**\r\n * Processes the eSolve cart totals\r\n *\r\n * @param record Data to process\r\n * @returns Processed cart totals\r\n */\r\n private processCartTotals(record: EsolveCartTotalsRecord): EsolveCartTotals {\r\n const cart_totals = new EsolveCartTotals(\r\n +record.records,\r\n +record.items,\r\n +record.total,\r\n +record.vat,\r\n +record.discount,\r\n );\r\n\r\n return cart_totals;\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { HttpClient, HttpErrorResponse } from '@angular/common/http';\r\n\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { catchError, map } from 'rxjs/operators';\r\n\r\nimport { EsolveConnectConfig } from '../esolve-connect.config';\r\nimport { ESOLVE_CONNECT_CONFIG } from '../esolve-connect-config.constant';\r\n\r\nimport { EsolveResult } from '../shared/esolve-result.model';\r\nimport { EsolveErrorHandlerService } from '../shared/errors';\r\nimport {\r\n EsolveDeleteResponse,\r\n EsolveSetResponse,\r\n EsolveGetResponse,\r\n EsolveResponseHandlerService,\r\n} from '../shared/response';\r\n\r\nimport { EsolveSessionService } from '../session/esolve-session.service';\r\n\r\nimport { EsolveLocationUpdateResult } from './esolve-location-update-result.model';\r\nimport {\r\n EsolveRegistrationPostResponseItem,\r\n EsolveRegistrationData,\r\n EsolveRegistrationResult,\r\n} from './registration';\r\nimport {\r\n EsolveAddress,\r\n EsolveAddressRecord,\r\n EsolveAddressResult,\r\n EsolveAddressPostData,\r\n EsolveAddressResponse,\r\n} from './address';\r\nimport {\r\n EsolveChangePasswordResult,\r\n EsolveResetPasswordResult,\r\n EsolveForgotPasswordResponse,\r\n EsolveForgotPasswordGetResult,\r\n} from './password';\r\nimport {\r\n EsolveTransactionRecord,\r\n EsolveTransaction,\r\n EsolveTransactionOptions,\r\n EsolveTransactionList,\r\n} from './transaction';\r\nimport {\r\n EsolveUserAccount,\r\n EsolveUserAccountData,\r\n EsolveUserAccountRecord,\r\n EsolveUserAccountResult,\r\n EsolveUserClientAccountBalances,\r\n EsolveUserClientAccountBalancesRecord,\r\n} from './user-account';\r\nimport {\r\n EsolveAccountConfirmationPostResponseItem,\r\n EsolveAccountConfirmationResult,\r\n} from './confirmation';\r\nimport { EsolveCartTotals } from '../cart';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class EsolveAccountService {\r\n private _user_id = 0;\r\n\r\n public get user_id(): number {\r\n return this._user_id;\r\n }\r\n\r\n public set user_id(value: number) {\r\n value = ((value > 0) ? value : 0);\r\n\r\n if (this._user_id !== value) {\r\n this._user_id = value;\r\n }\r\n }\r\n\r\n constructor(\r\n @Inject(ESOLVE_CONNECT_CONFIG) private config: EsolveConnectConfig,\r\n private http: HttpClient,\r\n private sessionService: EsolveSessionService,\r\n private errorHandler: EsolveErrorHandlerService,\r\n private responseHandler: EsolveResponseHandlerService,\r\n ) {\r\n this.sessionService.session.subscribe((session) => {\r\n if (session.key !== '') {\r\n this.user_id = session.id;\r\n }\r\n });\r\n }\r\n\r\n public updateUserAccount(user_account_data: EsolveUserAccountData): Observable<EsolveUserAccountResult> {\r\n const body = {\r\n account: user_account_data,\r\n };\r\n\r\n return this.http\r\n .post<EsolveSetResponse>(\r\n `${this.config.api_url}/set-user-account.php`,\r\n body,\r\n {\r\n headers: {\r\n 'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;',\r\n },\r\n responseType: 'json',\r\n observe: 'body',\r\n },\r\n )\r\n .pipe(\r\n map((http_response) => this.responseHandler.validateSingleHttpResponse(\r\n http_response,\r\n (response) => new EsolveUserAccountResult(response),\r\n )),\r\n catchError((errorRes: HttpErrorResponse | any) => {\r\n return this.errorHandler.handleHttpPostError('set-user-account', errorRes);\r\n }),\r\n );\r\n }\r\n\r\n public getUserAccount(): Observable<EsolveUserAccount> {\r\n return this.http\r\n .get<EsolveGetResponse<EsolveUserAccountRecord[]>>(\r\n `${this.config.api_url}/get-account.php`,\r\n )\r\n .pipe(\r\n map((response) => {\r\n if (\r\n (response.records === undefined) ||\r\n (response.records.length === 0)\r\n ) {\r\n throw response;\r\n }\r\n\r\n const record = response.records[0];\r\n\r\n return this.processUserAccount(record);\r\n }),\r\n );\r\n }\r\n\r\n public deleteUserAccount(): Observable<EsolveResult> {\r\n return this.http\r\n .delete<EsolveDeleteResponse>(\r\n `${this.config.api_url}/delete-account.php`,\r\n {\r\n responseType: 'json',\r\n observe: 'body',\r\n },\r\n )\r\n .pipe(\r\n map((http_response) => {\r\n if (\r\n (http_response.result === undefined) ||\r\n (http_response.result === null) ||\r\n (http_response.result.status !== 'success')\r\n ) {\r\n throw http_response;\r\n }\r\n\r\n return new EsolveResult(\r\n http_response.result.status,\r\n http_response.result.code,\r\n http_response.result.message,\r\n );\r\n }),\r\n catchError((errorRes: HttpErrorResponse | any) => {\r\n return this.errorHandler.handleHttpDeleteError('delete-account', errorRes);\r\n }),\r\n );\r\n }\r\n\r\n public setAddress(address_post_data: EsolveAddressPostData): Observable<EsolveAddressResult> {\r\n const body = {\r\n address: address_post_data,\r\n };\r\n\r\n return this.http\r\n .post<EsolveSetResponse<EsolveAddressResponse>>(\r\n `${this.config.api_url}/set-address.php`,\r\n body,\r\n {\r\n headers: {\r\n 'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;',\r\n },\r\n responseType: 'json',\r\n observe: 'body',\r\n },\r\n )\r\n .pipe(\r\n map((http_response) =>\r\n this.responseHandler.validateSingleHttpResponse(\r\n http_response,\r\n (response) => new EsolveAddressResult(response),\r\n ),\r\n ),\r\n catchError((errorRes: HttpErrorResponse | any) => {\r\n return this.errorHandler.handleHttpPostError('set-registration', errorRes);\r\n }),\r\n );\r\n }\r\n\r\n public getAddresses(): Observable<EsolveAddress[]> {\r\n try {\r\n this.loginGuard();\r\n\r\n return this.http\r\n .get<EsolveGetResponse<EsolveAddressRecord[]>>(\r\n `${this.config.api_url}/get-addresses.php`,\r\n {\r\n params: { user_id: this.user_id },\r\n },\r\n )\r\n .pipe(\r\n map((response) => {\r\n if (response.records === undefined) {\r\n throw response;\r\n }\r\n\r\n return this.processUserAddress(response.records);\r\n }),\r\n );\r\n } catch (error) {\r\n return throwError(() => error);\r\n }\r\n }\r\n\r\n public deleteAddress(id: number): Observable<EsolveResult> {\r\n return this.http\r\n .delete<EsolveDeleteResponse>(\r\n `${this.config.api_url}/delete-address.php`,\r\n {\r\n params: { id },\r\n responseType: 'json',\r\n observe: 'body',\r\n },\r\n )\r\n .pipe(\r\n map((http_response) => {\r\n if (\r\n (http_response.result === undefined) ||\r\n (http_response.result === null) ||\r\n (http_response.result.status !== 'success')\r\n ) {\r\n throw http_response;\r\n }\r\n\r\n return new EsolveResult(\r\n http_response.result.status,\r\n http_response.result.code,\r\n http_response.result.message,\r\n );\r\n }),\r\n catchError((errorRes: HttpErrorResponse | any) => {\r\n return this.errorHandler.handleHttpDeleteError('delete-address', errorRes);\r\n }),\r\n );\r\n }\r\n\r\n public register(user_registration: EsolveRegistrationData): Observable<EsolveRegistrationResult> {\r\n const body = {\r\n user: user_registration,\r\n };\r\n\r\n return this.http\r\n .post<EsolveSetResponse<EsolveRegistrationPostResponseItem>>(\r\n `${this.config.api_url}/set-registration.php`,\r\n body,\r\n {\r\n headers: {\r\n 'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;',\r\n },\r\n responseType: 'json',\r\n observe: 'body',\r\n },\r\n )\r\n .pipe(\r\n map((http_response) => this.responseHandler.validateSingleHttpResponse(\r\n http_response,\r\n (response) => {\r\n if (response.auto_login) {\r\n this.sessionService.handleUpdateSession({\r\n user_id: +response.esolve_id,\r\n location_id: +response.session_data.location_id,\r\n });\r\n }\r\n\r\n return new EsolveRegistrationResult(response);\r\n },\r\n )),\r\n catchError((errorRes: HttpErrorResponse | any) => {\r\n return this.errorHandler.handleHttpPostError('set-registration', errorRes);\r\n }),\r\n );\r\n }\r\n\r\n public changePassword(password: string, confirm_password: string): Observable<EsolveChangePasswordResult> {\r\n const body = {\r\n password,\r\n confirm_password,\r\n };\r\n\r\n return this.http\r\n .post<EsolveSetResponse>(\r\n `${this.config.api_url}/set-change-password.php`,\r\n body,\r\n {\r\n headers: {\r\n 'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;',\r\n },\r\n responseType: 'json',\r\n observe: 'body',\r\n },\r\n )\r\n .pipe(\r\n map((http_response) => this.responseHandler.validateSingleHttpResponse(\r\n http_response,\r\n (response) => {\r\n return new EsolveChangePasswordResult(response);\r\n },\r\n )),\r\n catchError((errorRes: HttpErrorResponse | any) => {\r\n return this.errorHandler.handleHttpPostError('set-change-password', errorRes);\r\n }),\r\n );\r\n }\r\n\r\n /**\r\n * Submits the users confirmation key to the relevant backend server in order to\r\n * confirm the accounts validity. The key was emailed to the user hence if he received\r\n * it and enters the value, the email account can be seen as valid.\r\n *\r\n * @param key The key that was emailed to the registered user's email account.\r\n * @returns An `Observable` that contains the result of the account confirmation request.\r\n */\r\n public accountConfirmationRequest(key: string): Observable<EsolveAccountConfirmationResult> {\r\n const body = {\r\n key,\r\n };\r\n\r\n return this.http\r\n .post<EsolveSetResponse<EsolveAccountConfirmationPostResponseItem>>(\r\n `${this.config.api_url}/set-account-confirmation.php`,\r\n body,\r\n {\r\n headers: {\r\n 'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;',\r\n },\r\n responseType: 'json',\r\n observe: 'body',\r\n },\r\n )\r\n .pipe(\r\n map((http_response) => this.responseHandler.validateSingleHttpResponse(\r\n http_response,\r\n (response) => {\r\n if (response.auto_login) {\r\n this.sessionService.handleUpdateSession({\r\n user_id: +response.esolve_id,\r\n location_id: +response.location_id,\r\n });\r\n }\r\n\r\n return new EsolveAccountConfirmationResult(response);\r\n },\r\n )),\r\n catchError((errorRes: HttpErrorResponse | any) => {\r\n return this.errorHandler.handleHttpPostError('set-account-confirmation', errorRes);\r\n }),\r\n );\r\n }\r\n\r\n public sendForgotPasswordRequest(email: string): Observable<boolean> {\r\n return this.http\r\n .get<EsolveGetResponse<EsolveForgotPasswordGetResult>>(\r\n `${this.config.api_url}/get-forgot-password.php`,\r\n { params: { email } },\r\n )\r\n .pipe(\r\n map((response) => {\r\n if (\r\n (response.records === undefined) ||\r\n !('reset_link_sent' in response.records)\r\n ) {\r\n throw response;\r\n }\r\n\r\n return response.records.reset_link_sent;\r\n }),\r\n );\r\n }\r\n\r\n public resetPassword(\r\n reset_key: string,\r\n password: string,\r\n confirm_password: string,\r\n auto_login = true,\r\n ): Observable<EsolveResetPasswordResult> {\r\n return this.http\r\n .post<EsolveSetResponse<EsolveForgotPasswordResponse>>(\r\n `${this.config.api_url}/set-forgot-password.php`,\r\n {\r\n reset_key,\r\n password,\r\n confirm_password,\r\n auto_login,\r\n },\r\n {\r\n headers: {\r\n 'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;',\r\n },\r\n responseType: 'json',\r\n observe: 'body',\r\n },\r\n )\r\n .pipe(\r\n map((http_response) => this.responseHandler.validateSingleHttpResponse(\r\n http_response,\r\n (response) => {\r\n if (!response.login_required) {\r\n this.sessionService.handleUpdateSession({\r\n user_id: +response.esolve_id,\r\n location_id: +response.session_data.location_id,\r\n });\r\n }\r\n\r\n return new EsolveResetPasswordResult(response);\r\n },\r\n )),\r\n catchError((errorRes: HttpErrorResponse | any) => {\r\n return this.errorHandler.handleHttpPostError('set-forgot-password', errorRes);\r\n }),\r\n );\r\n }\r\n\r\n public updateLocation(location_id: number): Observable<EsolveLocationUpdateResult> {\r\n const body = { location_id };\r\n\r\n return this.http\r\n .post<EsolveSetResponse>(\r\n `${this.config.api_url}/set-session-location.php`,\r\n body,\r\n {\r\n headers: {\r\n 'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;',\r\n },\r\n responseType: 'json',\r\n observe: 'body',\r\n },\r\n )\r\n .pipe(\r\n map((http_response) => this.responseHandler.validateSingleHttpResponse(\r\n http_response,\r\n (response) => {\r\n this.sessionService.handleUpdateSession({ location_id });\r\n\r\n return new EsolveLocationUpdateResult(response);\r\n },\r\n )),\r\n );\r\n }\r\n\r\n public getTransactions(options: EsolveTransactionOptions = {}): Observable<EsolveTransactionList> {\r\n try {\r\n this.loginGuard();\r\n\r\n return this.http\r\n .get<EsolveGetResponse<EsolveTransactionRecord[]>>(\r\n `${this.config.api_url}/get-transactions.php`,\r\n {\r\n params: {\r\n user_id: this.user_id,\r\n ...options,\r\n },\r\n },\r\n )\r\n .pipe(\r\n map((response) => {\r\n if (response.records === undefined) {\r\n throw response;\r\n }\r\n\r\n const items = this.processTransactions(response.records);\r\n const total = +response.additional_data.total_records ?? 0;\r\n const rows = options.rows ?? total;\r\n const page = options.page || 1;\r\n\r\n return new EsolveTransactionList(items, page, rows, total);\r\n }),\r\n );\r\n } catch (error) {\r\n return throwError(() => error);\r\n }\r\n }\r\n\r\n public getTransaction(id: number): Observable<EsolveTransaction> {\r\n try {\r\n this.loginGuard();\r\n\r\n return this.http\r\n .get<EsolveGetResponse<EsolveTransactionRecord[]>>(\r\n `${this.config.api_url}/get-transactions.php`,\r\n {\r\n params: {\r\n user_id: this.user_id,\r\n transaction_id: id,\r\n },\r\n },\r\n )\r\n .pipe(\r\n map((response) => {\r\n if (\r\n (response.records === undefined) ||\r\n (response.records.length <= 0)\r\n ) {\r\n throw response;\r\n }\r\n\r\n const items = this.processTransactions(response.records);\r\n\r\n return items[0];\r\n }),\r\n );\r\n } catch (error) {\r\n return throwError(() => error);\r\n }\r\n }\r\n\r\n public getClientAccountBalances(): Observable<EsolveUserClientAccountBalances | undefined> {\r\n try {\r\n this.loginGuard();\r\n\r\n return this.http\r\n .get<EsolveGetResponse<EsolveUserClientAccountBalancesRecord[]>>(\r\n `${this.config.api_url}/get-client-account-balances.php`,\r\n )\r\n .pipe(\r\n map((response) => {\r\n if (response.records === undefined) {\r\n throw response;\r\n }\r\n\r\n return this.processClientBalances(response.records);\r\n }),\r\n );\r\n } catch (error) {\r\n return throwError(() => error);\r\n }\r\n }\r\n\r\n private processUserAccount(record: EsolveUserAccountRecord): EsolveUserAccount {\r\n if (!record) {\r\n throw new Error('Invalid record');\r\n }\r\n\r\n if (+record.userid !== this._user_id) {\r\n throw new Error('Invalid user account retrieved');\r\n }\r\n\r\n return new EsolveUserAccount(record);\r\n }\r\n\r\n private processUserAddress(records: EsolveAddressRecord[]): EsolveAddress[] {\r\n const user_addresses: EsolveAddress[] = [];\r\n\r\n if (!records || (this._user_id === 0)) {\r\n return user_addresses;\r\n }\r\n\r\n for (const record of records) {\r\n if (+record.userid !== this._user_id) {\r\n continue;\r\n }\r\n\r\n user_addresses.push(new EsolveAddress(\r\n +record.id,\r\n record.recipient,\r\n record.address_type,\r\n record.pobox,\r\n record.place_name,\r\n record.street_number,\r\n record.street,\r\n record.suburb,\r\n record.city,\r\n record.province,\r\n record.country,\r\n record.postal_code,\r\n +record.latitude,\r\n +record.longitude,\r\n ));\r\n }\r\n\r\n return user_addresses;\r\n }\r\n\r\n private processTransactions(records: EsolveTransactionRecord[]): EsolveTransaction[] {\r\n const transactions: EsolveTransaction[] = [];\r\n\r\n if (records) {\r\n for (const record of records) {\r\n const transaction = new EsolveTransaction(record);\r\n\r\n transactions.push(transaction);\r\n }\r\n }\r\n\r\n return transactions;\r\n }\r\n\r\n private processClientBalances(\r\n records: EsolveUserClientAccountBalancesRecord[],\r\n ): EsolveUserClientAccountBalances | undefined {\r\n\r\n for (const record of records) {\r\n if (!(+record.clients_id > 0)) {\r\n return undefined;\r\n }\r\n\r\n const cart_totals = new EsolveCartTotals(\r\n record.cart_totals.records,\r\n +record.cart_totals.items,\r\n +record.cart_totals.total,\r\n +record.cart_totals.vat,\r\n +record.cart_totals.discount,\r\n );\r\n\r\n return new EsolveUserClientAccountBalances (\r\n +record.clients_id,\r\n record.account,\r\n cart_totals,\r\n +record.credit_limit,\r\n +record.external_account_balance,\r\n +record.external_available_balance,\r\n +record.new_external_available_balance,\r\n !!+record.credit_limit_okay,\r\n );\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n private loginGuard(): void {\r\n if (this.user_id <= 0) {\r\n this.errorHandler.throwError('login_required', 'Login is required');\r\n }\r\n }\r\n}\r\n","import { EsolveBannerType } from './esolve-banner-type.type';\r\nimport { EsolveBannerLink } from './esolve-banner-link.interface';\r\nimport { EsolveBannerImage } from './esolve-banner-image.model';\r\nimport { EsolveBannerImageSet } from './esolve-banner-image-set.interface';\r\n\r\nexport class EsolveBanner {\r\n public desktop_images: EsolveBannerImage[] = [];\r\n public mobile_images: EsolveBannerImage[] = [];\r\n public sub_images: EsolveBannerImage[] = [];\r\n\r\n constructor(\r\n public id: number,\r\n public banner_display_container: string,\r\n public identifier: string,\r\n public type: EsolveBannerType,\r\n public title: string,\r\n public article: string,\r\n public sort_priority: number,\r\n public link: EsolveBannerLink,\r\n images: EsolveBannerImageSet,\r\n ) {\r\n if (images.desktop) {\r\n this.desktop_images = images.desktop;\r\n }\r\n\r\n if (images.mobile) {\r\n this.mobile_images = images.mobile;\r\n }\r\n\r\n if (images.sub) {\r\n this.sub_images = images.sub;\r\n }\r\n }\r\n}\r\n","import { EsolveBannerImageType } from './esolve-banner-image-type.type';\r\nimport { EsolveBannerImageHotspot } from './esolve-banner-image-hotspot.model';\r\n\r\nexport class EsolveBannerImage {\r\n constructor(\r\n public id: number,\r\n public image_type: EsolveBannerImageType,\r\n public width: number,\r\n public height: number,\r\n public filename: string,\r\n public hotspots?: EsolveBannerImageHotspot[],\r\n ) { }\r\n\r\n public get src(): string {\r\n return '/images/banners/' + this.filename;\r\n }\r\n}\r\n","import { EsolveUrlTarget } from '../shared/esolve-url-target.type';\r\nimport { EsolveBannerImageHotspotCoords } from './esolve-banner-image-hotspot-coords.interface';\r\n\r\nexport class EsolveBannerImageHotspot {\r\n constructor(\r\n public url: string,\r\n public target: EsolveUrlTarget,\r\n public coords: EsolveBannerImageHotspotCoords[],\r\n public coords_string: string,\r\n ) { }\r\n}\r\n","import { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\n\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { EsolveConnectConfig } from '../esolve-connect.config';\r\nimport { ESOLVE_CONNECT_CONFIG } from '../esolve-connect-config.constant';\r\nimport { EsolveGetResponse } from '../shared/response';\r\n\r\nimport { EsolveBannerType } from './esolve-banner-type.type';\r\nimport { EsolveBanner } from './esolve-banner.model';\r\nimport { EsolveBannerImageSet } from './esolve-banner-image-set.interface';\r\nimport { EsolveBannerImage } from './esolve-banner-image.model';\r\nimport { EsolveBannerImageHotspot } from './esolve-banner-image-hotspot.model';\r\nimport { EsolveBannerRecord } from './esolve-banner-record.interface';\r\nimport { EsolveBannerImageHotspotRecord } from './esolve-banner-image-hotspot-record.interface';\r\nimport { EsolveBannerImageRecord } from './esolve-banner-image-record.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class EsolveBannerService {\r\n constructor(\r\n @Inject(ESOLVE_CONNECT_CONFIG) private config: EsolveConnectConfig,\r\n private http: HttpClient,\r\n ) { }\r\n\r\n /**\r\n * Retrieves banners records from eSolve instance\r\n *\r\n * @returns An observable of eSolve banners.\r\n */\r\n public getBanners(\r\n identifier?: string,\r\n banner_display_container?: string,\r\n enable_date_filter: boolean = false,\r\n ): Observable<EsolveBanner[]> {\r\n let params = new HttpParams({\r\n fromObject: { enable_date_filter },\r\n });\r\n\r\n if (identifier) {\r\n params = params.set('identifier', identifier);\r\n }\r\n\r\n if (banner_display_container) {\r\n params = params.set('banner_display_container', banner_display_container);\r\n }\r\n\r\n return this.http\r\n .get<EsolveGetResponse<EsolveBannerRecord[]>>(\r\n `${this.config.api_url}/get-banners.php`,\r\n { params },\r\n )\r\n .pipe(\r\n map((response) => {\r\n if (response.records === undefined) {\r\n throw response;\r\n }\r\n\r\n return this.processBanners(response.records);\r\n }),\r\n );\r\n }\r\n\r\n private processBannerImageHotspots(\r\n hotspot_records: EsolveBannerImageHotspotRecord[],\r\n ): EsolveBannerImageHotspot[] {\r\n const hotspots: EsolveBannerImageHotspot[] = [];\r\n\r\n if (hotspot_records.length > 0) {\r\n for (const hotspot_record of hotspot_records) {\r\n const hotspot = new EsolveBannerImageHotspot(\r\n hotspot_record.url,\r\n hotspot_record.target,\r\n hotspot_record.coords,\r\n hotspot_record.coords_string,\r\n );\r\n\r\n hotspots.push(hotspot);\r\n }\r\n }\r\n\r\n return hotspots;\r\n }\r\n\r\n private processBannerImages(\r\n image_records: EsolveBannerImageRecord[],\r\n banner_type: EsolveBannerType,\r\n ): EsolveBannerImage[] {\r\n const images: EsolveBannerImage[] = [];\r\n\r\n if (image_records.length > 0) {\r\n for (const image_record of image_records) {\r\n const image = new EsolveBannerImage(\r\n +image_record.id,\r\n image_record.image_type,\r\n +image_record.width,\r\n +image_record.height,\r\n image_record.filename,\r\n );\r\n\r\n if ((banner_type === 'hotspot') && (image_record.hotspots)) {\r\n const hotspots = this.processBannerImageHotspots(image_record.hotspots);\r\n image.hotspots = hotspots;\r\n }\r\n\r\n images.push(image);\r\n }\r\n }\r\n\r\n return images;\r\n }\r\n\r\n /**\r\n * Process banner records into banner objects\r\n * @param records Array of records\r\n * @returns List of banners\r\n */\r\n private processBanners(records: EsolveBannerRecord[]): EsolveBanner[] {\r\n const banners: EsolveBanner[] = [];\r\n\r\n if ((records) && (records.length > 0)) {\r\n for (const record of records) {\r\n const image_sets: EsolveBannerImageSet = {};\r\n\r\n if (record.images.desktop) {\r\n image_sets.desktop = this.processBannerImages(\r\n record.images.desktop,\r\n record.type,\r\n );\r\n }\r\n\r\n if (record.images.mobile) {\r\n image_sets.mobile = this.processBannerImages(\r\n record.images.mobile,\r\n record.type,\r\n );\r\n }\r\n\r\n if (record.images.sub) {\r\n image_sets.sub = this.processBannerImages(\r\n record.images.sub,\r\n record.type,\r\n );\r\n }\r\n\r\n const banner = new EsolveBanner(\r\n +record.id,\r\n record.banner_display_container,\r\n record.identifier,\r\n record.type,\r\n record.title,\r\n record.article,\r\n +record.sort_priority,\r\n {\r\n url: record.link.url,\r\n target: record.link.target,\r\n },\r\n image_sets,\r\n );\r\n\r\n banners.push(banner);\r\n }\r\n }\r\n\r\n return banners;\r\n }\r\n}\r\n","// Types\r\nexport * from './esolve-banner-image-type.type';\r\n\r\n// Classes\r\nexport * from './esolve-banner.model';\r\nexport * from './esolve-banner-image.model';\r\nexport * from './esolve-banner-image-hotspot.model';\r\n\r\n// Interfaces\r\nexport * from './esolve-banner-image-set.interface';\r\nexport * from './esolve-banner-image-record.interface';\r\nexport * from './esolve-banner-image-hotspot-coords.interface';\r\nexport * from './esolve-banner-image-hotspot-record.interface';\r\n\r\n// Service\r\nexport * from './esolve-banner.service';\r\n","export class EsolveMenuItem {\r\n constructor(\r\n public url: string,\r\n public name: string,\r\n public target: string,\r\n public children: EsolveMenuItem[] = [],\r\n ) { }\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { EsolveConnectConfig } from '../esolve-connect.config';\r\nimport { ESOLVE_CONNECT_CONFIG } from '../esolve-connect-config.constant';\r\nimport { EsolveGetResponse } from '../shared/response';\r\n\r\nimport { EsolveMenuTreeRecord } from './esolve-menu-tree-record.interface';\r\nimport { EsolveMenuItem } from './esolve-menu-item.model';\r\nimport { EsolveMenu } from './esolve-menu.type';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class EsolveMenuService {\r\n constructor(\r\n @Inject(ESOLVE_CONNECT_CONFIG) private config: EsolveConnectConfig,\r\n private http: HttpClient,\r\n ) { }\r\n\r\n public getMenuTree(identifier: string): Observable<EsolveMenu> {\r\n return this.http\r\n .get<EsolveGetResponse<EsolveMenuTreeRecord[]>>(\r\n `${this.config.api_url}/get-menu-tree.php`,\r\n { params: { identifier } },\r\n )\r\n .pipe(\r\n map((response) => {\r\n if ((!response) || (response.records === undefined)) {\r\n throw response;\r\n } else if (response.records.length === 0) {\r\n return [];\r\n }\r\n\r\n return this.handleMenu(response.records);\r\n }),\r\n );\r\n }\r\n\r\n private handleMenu(records?: EsolveMenuTreeRecord[]): EsolveMenu {\r\n const menu: EsolveMenu = [];\r\n\r\n if (typeof records !== 'undefined') {\r\n for (const menuTreeRecord of records) {\r\n menu.push(new EsolveMenuItem(\r\n menuTreeRecord.sef_url,\r\n menuTreeRecord.name,\r\n menuTreeRecord.target,\r\n this.handleMenu(menuTreeRecord.children),\r\n ));\r\n }\r\n }\r\n\r\n return menu;\r\n }\r\n}\r\n","export class EsolveNewsGroup {\r\n constructor(\r\n public id: number,\r\n public name: string,\r\n public description: string,\r\n public sef_name: string,\r\n ) { }\r\n}\r\n","export class EsolveNewsArticleAuthor {\r\n constructor(\r\n public userid: number,\r\n public email: string,\r\n public firstname: string,\r\n public surname: string,\r\n ) { }\r\n}\r\n","import { EsolveSeoInfo } from '../shared/seo/esolve-seo-info.model';\r\nimport { EsolveSeoDetails } from '../shared/seo/esolve-seo-details.interface';\r\n\r\nimport { EsolveTag } from '../tags';\r\nimport { EsolveTopic } from '../topics';\r\nimport { EsolveManufacturer } from '../manufacturers';\r\nimport { EsolveRange } from '../ranges';\r\n\r\nimport { EsolveNewsGroup } from './esolve-news-group.model';\r\nimport { EsolveNewsArticleAuthor } from './esolve-news-article-author.model';\r\nimport { EsolveNewsArticleRecord } from './esolve-news-article-record.interface';\r\n\r\nexport class EsolveNewsArticle implements EsolveSeoDetails {\r\n public id: number = 0;\r\n public title: string = '';\r\n public sef_title: string = '';\r\n public article: string = '';\r\n public short_description: string = '';\r\n public txdate: string = '';\r\n public active: boolean = false;\r\n public image: string = '';\r\n public featured: boolean = false;\r\n public topics: EsolveTopic[] = [];\r\n public tags: EsolveTag[] = [];\r\n public author?: EsolveNewsArticleAuthor;\r\n public group?: EsolveNewsGroup;\r\n public manufacturer?: EsolveManufacturer;\r\n public range?: EsolveRange;\r\n public seo_details: EsolveSeoInfo;\r\n\r\n constructor(record?: Partial<EsolveNewsArticleRecord>) {\r\n let seo_title = '';\r\n let seo_description = '';\r\n let seo_keywords = '';\r\n\r\n if (record) {\r\n this.id = +(record.id ?? 0);\r\n this.title = record.title ?? '';\r\n this.sef_title = record.sef_title ?? '';\r\n this.article = record.article ?? '';\r\n this.txdate = record.txdate ?? '';\r\n this.image = record.image ?? '';\r\n this.short_description = record.short_description ?? '';\r\n\r\n if (record.active) {\r\n this.active = !!+record.active;\r\n }\r\n\r\n if (record.featured) {\r\n this.featured = !!+record.featured;\r\n }\r\n\r\n seo_title = record.seo_page_title ?? '';\r\n seo_description = record.short_description ?? '';\r\n seo_keywords = record.seo_keywords ?? '';\r\n\r\n if (record.news_group) {\r\n const group_record = record.news_group;\r\n\r\n this.group = new EsolveNewsGroup(\r\n +group_record.id,\r\n group_record.name,\r\n group_record.description,\r\n group_record.sef_name,\r\n );\r\n }\r\n\r\n if (record.user) {\r\n this.author = new EsolveNewsArticleAuthor(\r\n record.user.userid,\r\n record.user.email,\r\n record.user.firstname,\r\n record.user.surname,\r\n );\r\n }\r\n\r\n if (record.manufacturer) {\r\n this.manufacturer = new EsolveManufacturer(record.manufacturer);\r\n }\r\n\r\n if (record.range) {\r\n this.range = new EsolveRange(record.range);\r\n }\r\n\r\n if (record.topics && record.topics.length > 0) {\r\n const topics = record.topics;\r\n\r\n for (const topic of topics) {\r\n this.topics.push(new EsolveTopic(topic));\r\n }\r\n }\r\n\r\n if (record.tags && record.tags.length > 0) {\r\n const tags = record.tags;\r\n\r\n for (const tag of tags) {\r\n this.tags.push(new EsolveTag(tag));\r\n }\r\n }\r\n }\r\n\r\n if (seo_title.trim() === '') {\r\n seo_title = this.title;\r\n }\r\n\r\n this.seo_details = new EsolveSeoInfo(\r\n seo_title,\r\n seo_description,\r\n seo_keywords,\r\n );\r\n }\r\n}\r\n","import { EsolveNewsArticle } from './esolve-news-article.model';\r\n\r\nexport class EsolveNewsArticleList {\r\n constructor(\r\n public newsArticles: EsolveNewsArticle[],\r\n public total: number,\r\n public page: number,\r\n ) { }\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { HttpClient, HttpParams } from '@angular/common/http';\r\n\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { EsolveConnectConfig } from '../esolve-connect.config';\r\nimport { ESOLVE_CONNECT_CONFIG } from '../esolve-connect-config.constant';\r\nimport { EsolveGetResponse } from '../shared/response';\r\n\r\nimport { EsolveNewsArticle } from './esolve-news-article.model';\r\nimport { EsolveNewsGroup } from './esolve-news-group.model';\r\nimport { EsolveNewsArticleRecord } from './esolve-news-article-record.interface';\r\nimport { EsolveNewsGroupRecord } from './esolve-news-group-record.interface';\r\nimport { EsolveNewsArticleList } from './esolve-news-article-list.model';\r\nimport { EsolveNewsArticleOptions } from './esolve-news-article-options.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class EsolveNewsService {\r\n constructor(\r\n @Inject(ESOLVE_CONNECT_CONFIG) private config: EsolveConnectConfig,\r\n private http: HttpClient,\r\n ) { }\r\n\r\n public getNewsArticle(identifier: string): Observable<EsolveNewsArticle> {\r\n const params = new HttpParams({ fromObject: { sef_title: identifier }});\r\n\r\n return this.getNewsRecords(params).pipe(\r\n map((response) => {\r\n if (\r\n (response.records === undefined) ||\r\n (response.records.length <= 0)\r\n ) {\r\n throw response;\r\n }\r\n\r\n const record = response.records[0];\r\n\r\n if (!record.active) {\r\n throw response;\r\n }\r\n\r\n return this.processNewsArticle(record);\r\n }),\r\n );\r\n }\r\n\r\n public getNewsArticles(\r\n options?: EsolveNewsArticleOptions,\r\n ): Observable<EsolveNewsArticleList> {\r\n const params = this.parseOptions(options);\r\n\r\n return this.getNewsRecords(params).pipe(\r\n map((response) => {\r\n if (response.records === undefined) {\r\n throw response;\r\n }\r\n\r\n const news_articles: EsolveNewsArticle[] = [];\r\n\r\n for (const record of response.records) {\r\n news_articles.push(this.processNewsArticle(record));\r\n }\r\n\r\n const page = options?.page ?? 0;\r\n const total_records = +response.additional_data.total_records;\r\n\r\n return new EsolveNewsArticleList(\r\n news_articles,\r\n total_records,\r\n page,\r\n );\r\n }),\r\n );\r\n }\r\n\r\n public getNewsGroups(): Observable<EsolveNewsGroup[]> {\r\n return this.http\r\n .get<EsolveGetResponse<EsolveNewsGroupRecord[]>>(\r\n `${this.config.api_url}/get-news-groups.php`,\r\n )\r\n .pipe(\r\n map((response) => {\r\n if (response.records === undefined) {\r\n throw response;\r\n }\r\n\r\n const news_groups: EsolveNewsGroup[] = [];\r\n\r\n for (const record of response.records) {\r\n news_groups.push(new EsolveNewsGroup(\r\n record.id,\r\n record.name,\r\n record.description,\r\n record.sef_name,\r\n ));\r\n }\r\n\r\n return news_groups;\r\n }),\r\n );\r\n }\r\n\r\n private processNewsArticle(record: EsolveNewsArticleRecord): EsolveNewsArticle {\r\n return new EsolveNewsArticle(record);\r\n }\r\n\r\n private getNewsRecords(\r\n params: HttpParams,\r\n ): Observable<EsolveGetResponse<EsolveNewsArticleRecord[]>> {\r\n return this.http.get<EsolveGetResponse<EsolveNewsArticleRecord[]>>(\r\n `${this.config.api_url}/get-news.php`,\r\n { params },\r\n );\r\n }\r\n\r\n private parseOptions(options?: EsolveNewsArticleOptions): HttpParams {\r\n let params = new HttpParams();\r\n\r\n if (!options) {\r\n return params;\r\n }\r\n\r\n if (options.news_group_id) {\r\n params = params.set('news_group_id', options.news_group_id);\r\n } else if (options.news_group_sef) {\r\n params = params.set('news_group_sef', options.news_group_sef);\r\n }\r\n\r\n if (options.page) {\r\n params = params.set('page', options.page);\r\n }\r\n\r\n if (options.rows) {\r\n params = params.set('rows', options.rows);\r\n }\r\n\r\n if (options.feature_only) {\r\n params = params.set('feature_only', options.feature_only);\r\n }\r\n\r\n if (options.manufacturers_id) {\r\n params = params.set('manufacturers_id', options.manufacturers_id);\r\n }\r\n\r\n if (options.ranges_id) {\r\n params = params.set('ranges_id', options.ranges_id);\r\n }\r\n\r\n if (options.from_date) {\r\n params = params.set('from_date', options.from_date);\r\n }\r\n\r\n if (options.to_date) {\r\n params = params.set('to_date', options.to_date);\r\n }\r\n\r\n if (options.search_phrase) {\r\n params = params.set('search_phrase', options.search_phrase);\r\n }\r\n\r\n return params;\r\n }\r\n}\r\n","// Types\r\nexport * from './esolve-stock-image-size.type';\r\nexport * from './esolve-media-stock-item-list.type';\r\nexport * from './esolve-stock-unit-of-measure.type';\r\nexport * from './esolve-stock-sort-field.type';\r\nexport * from './esolve-media-stock-sort-field.type';\r\n","import { EsolveColourRecord } from '../interfaces';\r\n\r\nexport class EsolveColour {\r\n public id: number;\r\n public colour: string;\r\n public description: string;\r\n\r\n constructor(record: Partial<EsolveColourRecord>) {\r\n this.id = record.id ?? 0;\r\n this.colour = record.colour ?? '';\r\n this.description = record.description ?? '';\r\n }\r\n}\r\n","export class EsolveStockBadge {\r\n constructor(\r\n public id: number,\r\n public text: string,\r\n public identifier: string,\r\n public font_colour: string,\r\n public badge_colour: string,\r\n public sort_priority: number,\r\n ) { }\r\n}\r\n","/**\r\n * Price of eSolve stock item\r\n */\r\nexport class EsolveStockPrice {\r\n public taxed: boolean;\r\n\r\n /**\r\n * Create stock price instance\r\n *\r\n * @param base_price Price without tax\r\n * @param base_price_with_tax Price with tax\r\n * @param sell_price Price without tax and with discounts applied if applicable\r\n * @param sell_price_with_tax Price with tax and with discounts applied if applicable\r\n * @param tax_rate Tax rate of the item\r\n * @param taxed Whether tax has been applied\r\n */\r\n constructor(\r\n /**\r\n * Price without tax\r\n */\r\n public base_price: number = 0,\r\n\r\n /**\r\n * Price with tax\r\n */\r\n public base_price_with_tax: number = 0,\r\n\r\n /**\r\n * Price without tax and with discounts applied if applicable\r\n */\r\n public sell_price: number = 0,\r\n\r\n /**\r\n * Price with tax and with discounts applied if applicable\r\n */\r\n public sell_price_with_tax: number = 0,\r\n\r\n /**\r\n * Vat Rate for the item\r\n */\r\n public tax_rate: number = 0,\r\n\r\n taxed?: boolean,\r\n ) {\r\n if ((this.base_price === 0) && (this.sell_price > 0)) {\r\n this.base_price = this.sell_price;\r\n this.base_price_with_tax = this.sell_price_with_tax;\r\n } else if ((this.base_price > 0) && (this.sell_price === 0)) {\r\n this.sell_price = this.base_price;\r\n this.sell_price_with_tax = this.base_price_with_tax;\r\n }\r\n\r\n this.taxed = taxed ?? this.base_price !== this.base_price_with_tax;\r\n }\r\n}\r\n","import { EsolveStockLeadTimesRecord } from '../interfaces';\r\n\r\nexport class EsolveStockLeadTimes {\r\n public min: number = 0;\r\n public max: number = 0;\r\n\r\n constructor(lead_times: EsolveStockLeadTimesRecord) {\r\n this.min = lead_times.min;\r\n this.max = lead_times.max;\r\n }\r\n}\r\n","\r\nexport class EsolveStockTransactionHistory {\r\n constructor(\r\n public total_order_qty: number = 0,\r\n public total_quote_qty: number = 0,\r\n ) {}\r\n}\r\n","import { EsolveCustomFields } from '../../shared/custom-fields';\r\nimport { EsolveSeoDetails, EsolveSeoInfo } from '../../shared/seo';\r\n\r\nimport { EsolveCategoryTreeItem } from '../../category-tree';\r\nimport { EsolveManufacturer } from '../../manufacturers';\r\nimport { EsolveRange } from '../../ranges';\r\nimport { EsolveTag } from '../../tags';\r\nimport { EsolveTopic } from '../../topics';\r\n\r\nimport { EsolveStockImageSize, EsolveStockUnitOfMeasure } from '../types';\r\nimport { EsolveStockBaseRecord } from '../interfaces';\r\nimport { EsolveStockBadge } from './esolve-stock-badge.model';\r\nimport { EsolveStockPrice } from './esolve-stock-price.model';\r\nimport { EsolveColour } from './esolve-colour.model';\r\nimport { EsolveStockLeadTimes } from './esolve-stock-lead-times.model';\r\nimport { EsolveStockTransactionHistory } from './esolve-stock-transaction-history.model';\r\n\r\nexport class EsolveStockItemBase<T extends EsolveCustomFields = EsolveCustomFields> implements EsolveSeoDetails {\r\n /**\r\n * eSolve Generated ID\r\n */\r\n public id: number = 0;\r\n /**\r\n * Code identifying the stock item\r\n */\r\n public code: string = '';\r\n /**\r\n * Name of the stock item\r\n */\r\n public name: string = '';\r\n /**\r\n * Search engine friendly name\r\n */\r\n public sef_name: string = '';\r\n /**\r\n * Short description of stock item\r\n */\r\n public description: string = '';\r\n /**\r\n * Full description of stock item\r\n */\r\n public extended_description: string = '';\r\n /**\r\n * Active state\r\n */\r\n public active: boolean = false;\r\n /**\r\n * Featured state\r\n */\r\n public featured: boolean = false;\r\n /**\r\n * Quotable state\r\n */\r\n public allow_quotes: boolean = true;\r\n /**\r\n * Orderable state\r\n */\r\n public allow_orders: boolean = true;\r\n /**\r\n * Item must be collected, not delivery possible\r\n */\r\n public must_collect: boolean = false;\r\n /**\r\n * Item needs to be assembled after purchase\r\n */\r\n public requires_assembly: boolean = false;\r\n /**\r\n * The type of delivery category associated with the item\r\n */\r\n public delivery_category: string = 'regular_item';\r\n /**\r\n * Number of stock available\r\n */\r\n public amount_in_stock: number = 0;\r\n /**\r\n * Total items linked to the item as a recipe\r\n */\r\n public total_recipe_items: number = 0;\r\n /**\r\n * Height measured in meters (m)\r\n */\r\n public height: number = 0;\r\n /**\r\n * Width measured in meters (m)\r\n */\r\n public width: number = 0;\r\n /**\r\n * Length / depth measured in meters (m)\r\n */\r\n public length: number = 0;\r\n /**\r\n * Weight measured in kilograms (kg)\r\n */\r\n public weight: number = 0;\r\n /**\r\n * Units used to measure the quantity\r\n */\r\n public unit_of_measure: EsolveStockUnitOfMeasure = 'unit';\r\n /**\r\n * ID of default category linked to the stock item\r\n *\r\n * @deprecated Use `category.esolve_id` field instead\r\n */\r\n public category_id: string = '';\r\n /**\r\n * Default linked category\r\n */\r\n public category?: EsolveCategoryTreeItem;\r\n /**\r\n * ID of default subcategory linked to the stock item\r\n *\r\n * @deprecated Use `subcategory.esolve_id` field instead\r\n */\r\n public subcategory_id: number = 0;\r\n /**\r\n * Default linked subcategory\r\n */\r\n public subcategory?: EsolveCategoryTreeItem;\r\n /**\r\n * ID of linked manufacturer\r\n *\r\n * @deprecated Use `manufacturer.id` field instead\r\n */\r\n public manufacturers_id: number = 0;\r\n /**\r\n * Linked manufacturer\r\n */\r\n public manufacturer?: EsolveManufacturer;\r\n /**\r\n * ID of linked range\r\n *\r\n * @deprecated Use `range.id` field instead\r\n */\r\n public ranges_id: number = 0;\r\n /**\r\n * Linked range\r\n */\r\n public range?: EsolveRange;\r\n /**\r\n * Default price\r\n */\r\n public price: EsolveStockPrice;\r\n /**\r\n * SEO page details\r\n */\r\n public seo_details: EsolveSeoInfo;\r\n /**\r\n * Linked tags\r\n */\r\n public tags: EsolveTag[] = [];\r\n /**\r\n * Linked topics\r\n */\r\n public topics: EsolveTopic[] = [];\r\n /**\r\n * Stock badges\r\n */\r\n public badges: EsolveStockBadge[] = [];\r\n /**\r\n * Stock item custom fields.\r\n */\r\n public custom_fields?: T;\r\n /**\r\n * Colours\r\n */\r\n public colours: EsolveColour[] = [];\r\n /**\r\n * Stock Item Lead Times for supply\r\n */\r\n public lead_times?: EsolveStockLeadTimes;\r\n /**\r\n * Linked manufacturer\r\n */\r\n public history?: EsolveStockTransactionHistory;\r\n\r\n /**\r\n * Image filename\r\n */\r\n private image_name: string = '';\r\n\r\n /**\r\n * Image Last modified\r\n */\r\n private image_last_modified: string = '';\r\n\r\n /**\r\n * Path to tiny stock image\r\n */\r\n public get tiny_image_src(): string {\r\n return this.getImagePath('tiny');\r\n }\r\n\r\n /**\r\n * Path to thumbnail stock image\r\n */\r\n public get thumbnail_image_src(): string {\r\n return this.getImagePath('thumb');\r\n }\r\n\r\n /**\r\n * Path to small stock image\r\n */\r\n public get small_image_src(): string {\r\n return this.getImagePath('small');\r\n }\r\n\r\n /**\r\n * Path to big stock image\r\n */\r\n public get big_image_src(): string {\r\n return this.getImagePath('big');\r\n }\r\n\r\n /**\r\n * Path to original stock image\r\n */\r\n public get original_image_src(): string {\r\n return this.getImagePath('original');\r\n }\r\n\r\n public get available(): boolean {\r\n return (this.amount_in_stock > 0);\r\n }\r\n\r\n constructor(record: Partial<EsolveStockBaseRecord<T>> = {}) {\r\n let seo_title = '';\r\n let seo_keywords = '';\r\n let base_price = 0;\r\n let base_price_with_tax = 0;\r\n let sell_price = 0;\r\n let sell_price_with_tax = 0;\r\n\r\n if (record) {\r\n this.id = +(record.id ?? 0);\r\n this.code = record.code ?? '';\r\n this.name = record.name ?? '';\r\n this.sef_name = record.sef_name ?? '';\r\n this.description = record.description ?? '';\r\n this.extended_description = record.extended_description ?? '';\r\n this.image_name = record.image_name ?? '';\r\n this.image_last_modified = record.image_last_modified ?? '';\r\n\r\n this.category_id = record.category_id ?? '';\r\n this.subcategory_id = +(record.subcategory_id ?? 0);\r\n this.manufacturers_id = +(record.manufacturers_id ?? 0);\r\n this.ranges_id = +(record.ranges_id ?? 0);\r\n this.delivery_category = record.delivery_category ?? 'regular_item';\r\n\r\n this.must_collect = !!+(record.must_collect ?? false);\r\n this.requires_assembly = !!+(record.requires_assembly ?? false);\r\n this.active = !!+(record.is_active ?? false);\r\n this.featured = !!+(record.is_featured ?? false);\r\n this.allow_quotes = (record.allow_quotes ?? true);\r\n this.allow_orders = (record.allow_orders ?? true);\r\n\r\n this.amount_in_stock = +(record.onhand ?? 0);\r\n this.total_recipe_items = +(record.total_recipe_items ?? 0);\r\n\r\n this.height = +(record.height ?? 0);\r\n this.width = +(record.width ?? 0);\r\n this.length = +(record.length ?? 0);\r\n this.weight = +(record.weight ?? 0);\r\n\r\n if (record.unit_of_measure) {\r\n this.unit_of_measure = record.unit_of_measure;\r\n }\r\n\r\n base_price = +(record.regular_sellprice ?? 0);\r\n base_price_with_tax = +(record.regular_sellprice_inclusive ?? 0);\r\n sell_price = +(record.sellprice ?? 0);\r\n sell_price_with_tax = +(record.sellprice_inclusive ?? 0);\r\n\r\n if ((record.tags) && (record.tags.length > 0)) {\r\n for (const tag of record.tags) {\r\n this.tags.push(new EsolveTag(tag));\r\n }\r\n }\r\n\r\n if ((record.topics) && (record.topics.length > 0)) {\r\n for (const topic of record.topics) {\r\n this.topics.push(new EsolveTopic(topic));\r\n }\r\n }\r\n\r\n if ((record.badges) && (record.badges.length > 0)) {\r\n for (const badge of record.badges) {\r\n this.badges.push(new EsolveStockBadge(\r\n +badge.id,\r\n badge.text,\r\n badge.identifier,\r\n badge.font_colour,\r\n badge.badge_colour,\r\n +badge.sort_priority,\r\n ));\r\n }\r\n }\r\n\r\n if (record.category) {\r\n this.category = new EsolveCategoryTreeItem(\r\n record.category.type,\r\n record.category.id,\r\n record.category.parent_id,\r\n record.category.description,\r\n record.category.sef_description,\r\n record.category.short_description,\r\n record.category.sort_priority,\r\n record.category.active,\r\n record.category.display_only,\r\n record.category.image,\r\n record.category.seo_page_title,\r\n record.category.seo_keywords,\r\n record.category.seo_description,\r\n );\r\n }\r\n\r\n if (record.subcategory) {\r\n this.subcategory = new EsolveCategoryTreeItem(\r\n record.subcategory.type,\r\n record.subcategory.id,\r\n record.subcategory.parent_id,\r\n record.subcategory.description,\r\n record.subcategory.sef_description,\r\n record.subcategory.short_description,\r\n record.subcategory.sort_priority,\r\n record.subcategory.active,\r\n record.subcategory.display_only,\r\n record.subcategory.image,\r\n record.subcategory.seo_page_title,\r\n record.subcategory.seo_keywords,\r\n record.subcategory.seo_description,\r\n );\r\n }\r\n\r\n if (record.manufacturer) {\r\n this.manufacturer = new EsolveManufacturer(record.manufacturer);\r\n }\r\n\r\n if (record.range) {\r\n this.range = new EsolveRange(record.range);\r\n }\r\n\r\n if (record.colours && record.colours.length > 0) {\r\n for (const colour of record.colours) {\r\n this.colours.push(new EsolveColour(colour));\r\n }\r\n }\r\n\r\n if (record.lead_times) {\r\n this.lead_times = new EsolveStockLeadTimes(record.lead_times);\r\n }\r\n\r\n if (record.custom_fields) {\r\n this.custom_fields = record.custom_fields;\r\n }\r\n\r\n if ((record.total_order_qty) || ((record.total_quote_qty))) {\r\n const total_order_qty = +(record.total_order_qty ?? 0);\r\n const total_quote_qty = +(record.total_quote_qty ?? 0);\r\n this.history = new EsolveStockTransactionHistory(total_order_qty, total_quote_qty);\r\n }\r\n\r\n seo_title = record.seo_page_title ?? '';\r\n seo_keywords = record.seo_keywords ?? '';\r\n }\r\n\r\n this.price = new EsolveStockPrice(\r\n base_price,\r\n base_price_with_tax,\r\n sell_price,\r\n sell_price_with_tax,\r\n record.vat_rate,\r\n record.vat_item,\r\n );\r\n\r\n if (seo_title.trim() === '') {\r\n seo_title = this.name;\r\n }\r\n\r\n this.seo_details = new EsolveSeoInfo(\r\n seo_title,\r\n this.description,\r\n seo_keywords,\r\n );\r\n }\r\n\r\n public getImagePath(image_size: EsolveStockImageSize): string {\r\n if (this.image_name !== '') {\r\n let param = '';\r\n\r\n if (this.image_last_modified !== '') {\r\n param = `?t=${this.image_last_modified}`;\r\n }\r\n\r\n return `/images/stock/${image_size}/${this.image_name}${param}`;\r\n }\r\n\r\n return '';\r\n }\r\n}\r\n","\r\nimport { EsolveCustomFields } from '../../shared/custom-fields';\r\n\r\nimport { EsolveDependantItemRecord } from '../interfaces';\r\nimport { EsolveStockItemBase } from './esolve-stock-item-base.model';\r\n\r\nexport class EsolveDependantItem<T extends EsolveCustomFields = EsolveCustomFields> extends EsolveStockItemBase<T> {\r\n public qty: number = 0;\r\n public dependency_description: string = '';\r\n\r\n constructor(record?: Partial<EsolveDependantItemRecord<T>>) {\r\n super(record);\r\n\r\n this.qty = +(record?.qty ?? 0);\r\n this.dependency_description = record?.dependency_description ?? '';\r\n }\r\n}\r\n","import { EsolveCustomFields } from '../../shared/custom-fields';\r\n\r\nimport { EsolveStockGroupItemRecord } from '../interfaces';\r\nimport { EsolveStockItemBase } from './esolve-stock-item-base.model';\r\n\r\nexport class EsolveStockGroupItem<T extends EsolveCustomFields = EsolveCustomFields> extends EsolveStockItemBase<T> {\r\n constructor(record?: Partial<EsolveStockGroupItemRecord<T>>) {\r\n super(record);\r\n }\r\n}\r\n","import { EsolveCustomFields } from '../../shared/custom-fields';\r\n\r\nimport { EsolveStockGroupItemRecord } from '../interfaces';\r\nimport { EsolveStockGroupItem } from './esolve-stock-group-item.model';\r\n\r\nexport class EsolveStockGroup<T extends EsolveCustomFields = EsolveCustomFields> {\r\n public items: EsolveStockGroupItem<T>[] = [];\r\n\r\n constructor(\r\n public group: string,\r\n records: EsolveStockGroupItemRecord<T>[] = [],\r\n ) {\r\n if (records.length > 0) {\r\n for (const record of records) {\r\n this.items.push(new EsolveStockGroupItem(record));\r\n }\r\n }\r\n }\r\n}\r\n","import { EsolveCustomFields } from '../../shared/custom-fields';\r\n\r\nimport { EsolveStockRecord } from '../interfaces';\r\nimport { EsolveStockItemBase } from './esolve-stock-item-base.model';\r\nimport { EsolveDependantItem } from './esolve-dependant-item.model';\r\nimport { EsolveStockGroup } from './esolve-stock-group.model';\r\n\r\n/**\r\n * Stock Item object. It can be a service or a product (physical and/or digital).\r\n */\r\nexport class EsolveStockItem<T extends EsolveCustomFields = EsolveCustomFields> extends EsolveStockItemBase<T> {\r\n public group?: EsolveStockGroup<T>;\r\n public dependencies?: EsolveDependantItem<T>[];\r\n\r\n /**\r\n * Constructs an instance of EsolveStockItem\r\n */\r\n constructor(record?: Partial<EsolveStockRecord<T>>) {\r\n super(record);\r\n\r\n if (record?.group && record.grouped_items) {\r\n this.group = new EsolveStockGroup(\r\n record.group,\r\n record.grouped_items,\r\n );\r\n }\r\n\r\n if (record?.dependencies) {\r\n this.dependencies = [];\r\n\r\n for (const dependant of record.dependencies) {\r\n this.dependencies.push(new EsolveDependantItem(dependant));\r\n }\r\n }\r\n }\r\n}\r\n","import { EsolveCustomFields } from '../../shared/custom-fields';\r\n\r\nimport { EsolveStockItem } from './esolve-stock-item.model';\r\n\r\n/**\r\n * Stock item object list\r\n */\r\nexport class EsolveStockItemList<T extends EsolveCustomFields = EsolveCustomFields> {\r\n constructor(\r\n public stock_items: EsolveStockItem<T>[],\r\n public total: number,\r\n public page: number,\r\n ) { }\r\n}\r\n","import { EsolveCustomFields } from '../../shared/custom-fields';\r\n\r\nimport { EsolveRecipeItemRecord } from '../interfaces';\r\nimport { EsolveStockItemBase } from './esolve-stock-item-base.model';\r\n\r\nexport class EsolveRecipeStockItem<T extends EsolveCustomFields = EsolveCustomFields> extends EsolveStockItemBase<T> {\r\n public qty: number = 0;\r\n\r\n constructor(record?: Partial<EsolveRecipeItemRecord<T>>) {\r\n super(record);\r\n\r\n this.qty = +(record?.qty ?? 0);\r\n }\r\n}\r\n","import { EsolveCustomFields } from '../../shared/custom-fields';\r\n\r\nimport { EsolveLinkedStockRecord } from '../interfaces';\r\nimport { EsolveStockItemBase } from './esolve-stock-item-base.model';\r\n\r\nexport class EsolveLinkedStockItem<T extends EsolveCustomFields = EsolveCustomFields> extends EsolveStockItemBase<T> {\r\n public qty: number = 0;\r\n\r\n constructor(record?: Partial<EsolveLinkedStockRecord<T>>) {\r\n super(record);\r\n\r\n this.qty = +(record?.qty ?? 0);\r\n }\r\n}\r\n","import { EsolveCustomFields } from '../../shared/custom-fields';\r\n\r\nimport { EsolveMediaStockItemRecord } from '../interfaces';\r\nimport { EsolveStockItemBase } from './esolve-stock-item-base.model';\r\n\r\nexport class EsolveMediaStockItem<\r\n T extends EsolveCustomFields = EsolveCustomFields,\r\n> extends EsolveStockItemBase<T> {\r\n constructor(record?: Partial<EsolveMediaStockItemRecord<T>>) {\r\n super(record);\r\n }\r\n}\r\n","import { EsolveStockImageSize } from '../types';\r\n\r\nexport class EsolveStockImage {\r\n /**\r\n * Path to tiny stock image\r\n */\r\n public get tiny_src(): string {\r\n return this.getImagePath('tiny');\r\n }\r\n\r\n /**\r\n * Path to thumbnail stock image\r\n */\r\n public get thumbnail_src(): string {\r\n return this.getImagePath('thumb');\r\n }\r\n\r\n /**\r\n * Path to small stock image\r\n */\r\n public get small_src(): string {\r\n return this.getImagePath('small');\r\n }\r\n\r\n /**\r\n * Path to big stock image\r\n */\r\n public get big_src(): string {\r\n return this.getImagePath('big');\r\n }\r\n\r\n /**\r\n * Path to original stock image\r\n */\r\n public get original_src(): string {\r\n return this.getImagePath('original');\r\n }\r\n\r\n constructor(\r\n private image_name: string,\r\n private last_modified: string = '',\r\n ) {\r\n if (this.image_name === 'no_image.jpg') {\r\n this.image_name = '';\r\n }\r\n }\r\n\r\n public getImagePath(image_size: EsolveStockImageSize): string {\r\n if (this.image_name !== '') {\r\n let param = '';\r\n\r\n if (this.last_modified !== '') {\r\n param = `?t=${this.last_modified}`;\r\n }\r\n\r\n return `/images/stock/${image_size}/${this.image_name}${param}`;\r\n }\r\n\r\n return '';\r\n }\r\n}\r\n","import { EsolveAdditionalStockImageRecord } from '../interfaces';\r\n\r\nexport class EsolveAdditionalStockImage {\r\n public id: number = 0;\r\n public type: string = '';\r\n public url: string = '';\r\n public name: string = '';\r\n public etag?: string;\r\n public key?: string;\r\n\r\n constructor(record?: Partial<EsolveAdditionalStockImageRecord>) {\r\n if (record) {\r\n this.id = record.id ?? 0;\r\n this.type = record.type ?? '';\r\n this.url = record.url ?? '';\r\n this.name = record.name ?? '';\r\n\r\n if (record.etag) {\r\n this.etag = record.etag;\r\n }\r\n\r\n if (record.key) {\r\n this.key = record.key;\r\n }\r\n }\r\n }\r\n}\r\n","import { EsolveStockImageCollectionRecord } from '../interfaces';\r\nimport { EsolveAdditionalStockImage } from './esolve-additional-stock-image.model';\r\nimport { EsolveStockImage } from './esolve-stock-image.model';\r\n\r\nexport class EsolveStockImageCollection {\r\n public default_image: EsolveStockImage;\r\n public alt_images: EsolveStockImage[] = [];\r\n public additional_images: EsolveAdditionalStockImage[] = [];\r\n\r\n constructor(record?: Partial<EsolveStockImageCollectionRecord>) {\r\n this.default_image = new EsolveStockImage(\r\n record?.default_image ?? '',\r\n record?.default_image_last_modified ?? '',\r\n );\r\n\r\n if (!record) {\r\n return;\r\n }\r\n\r\n if (record.alt_images && record.alt_images.length > 0) {\r\n for (const alt_image_name of record.alt_images) {\r\n const alt_image = new EsolveStockImage(alt_image_name);\r\n\r\n this.alt_images.push(alt_image);\r\n }\r\n }\r\n\r\n if (record.additional_images && record.additional_images.length > 0) {\r\n for (const additional_image_record of record.additional_images) {\r\n const additional_image = new EsolveAdditionalStockImage(\r\n additional_image_record,\r\n );\r\n\r\n this.additional_images.push(additional_image);\r\n }\r\n }\r\n }\r\n};\r\n","// Classes\r\nexport * from './esolve-colour.model';\r\nexport * from './esolve-stock-item.model';\r\nexport * from './esolve-stock-price.model';\r\nexport * from './esolve-stock-badge.model';\r\nexport * from './esolve-stock-group.model';\r\nexport * from './esolve-stock-item-base.model';\r\nexport * from './esolve-stock-item-list.model';\r\nexport * from './esolve-stock-group-item.model';\r\nexport * from './esolve-recipe-stock-item.model';\r\nexport * from './esolve-linked-stock-item.model';\r\nexport * from './esolve-dependant-item.model';\r\nexport * from './esolve-stock-lead-times.model';\r\nexport * from './esolve-media-stock-item.model';\r\nexport * from './esolve-stock-image.model';\r\nexport * from './esolve-stock-image-collection.model';\r\nexport * from './esolve-additional-stock-image.model';\r\n","import { EsolveAdditionalStockImageRecord } from './esolve-additional-stock-image-record.interface';\r\n\r\nexport interface EsolveStockImageCollectionRecord {\r\n default_image: string;\r\n default_image_last_modified: string;\r\n alt_images: string[];\r\n additional_images: EsolveAdditionalStockImageRecord[];\r\n};\r\n","// Interfaces\r\nexport * from './esolve-stock-record.interface';\r\nexport * from './esolve-colour-record.interface';\r\nexport * from './esolve-stock-base-record.interface';\r\nexport * from './esolve-stock-item-options.interface';\r\nexport * from './esolve-stock-badge-record.interface';\r\nexport * from './esolve-recipe-item-record.interface';\r\nexport * from './esolve-stock-filter-options.interface';\r\nexport * from './esolve-recipe-stock-options.interface';\r\nexport * from './esolve-linked-stock-record.interface';\r\nexport * from './esolve-stock-group-item-record.interface';\r\nexport * from './esolve-stock-linked-category-record.interface';\r\nexport * from './esolve-stock-lead-times-record.interface';\r\nexport * from './esolve-stock-image-collection-record.interface';\r\nexport * from './esolve-additional-stock-image-record.interface';\r\nexport * from './esolve-media-stock-item-record.interface';\r\nexport * from './esolve-media-stock-item-options.interface';\r\nexport * from './esolve-dependant-item-record.interface';\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { HttpClient, HttpParams } from '@angular/common/http';\r\n\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { EsolveConnectConfig } from '../esolve-connect.config';\r\nimport { ESOLVE_CONNECT_CONFIG } from '../esolve-connect-config.constant';\r\n\r\nimport { EsolveList } from '../shared/esolve-list.model';\r\nimport { EsolveGetResponse } from '../shared/response';\r\nimport { EsolveCustomFields } from '../shared/custom-fields';\r\nimport {\r\n EsolveFilterFactory,\r\n EsolveFilterList,\r\n EsolveFilterRecordList,\r\n EsolveMultipleSelectFilter,\r\n EsolveRangeFilter,\r\n EsolveSingleSelectFilter,\r\n} from '../shared/filters';\r\n\r\nimport { EsolveMediaStockItemList } from './types';\r\nimport {\r\n EsolveStockRecord,\r\n EsolveStockItemOptions,\r\n EsolveRecipeItemRecord,\r\n EsolveLinkedStockRecord,\r\n EsolveRecipeStockOptions,\r\n EsolveMediaStockItemRecord,\r\n EsolveMediaStockItemOptions,\r\n EsolveStockImageCollectionRecord,\r\n EsolveStockFilterOptions,\r\n} from './interfaces';\r\nimport {\r\n EsolveStockItem,\r\n EsolveStockItemList,\r\n EsolveMediaStockItem,\r\n EsolveRecipeStockItem,\r\n EsolveLinkedStockItem,\r\n EsolveStockImageCollection,\r\n} from './classes';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class EsolveStockService<T extends EsolveCustomFields = EsolveCustomFields> {\r\n constructor(\r\n @Inject(ESOLVE_CONNECT_CONFIG) private config: EsolveConnectConfig,\r\n private http: HttpClient,\r\n ) { }\r\n\r\n /**\r\n * Retrieves the stock record from the eSolve instance using the code.\r\n *\r\n * @param code eSolve stock code\r\n */\r\n public getStockItem(code: string): Observable<EsolveStockItem<T>> {\r\n const params = new HttpParams({\r\n fromObject: {\r\n code,\r\n },\r\n });\r\n\r\n return this.getStockRecords(params).pipe(\r\n map((response) => {\r\n if (\r\n (response.records === undefined) ||\r\n (response.records.length <= 0)\r\n ) {\r\n throw response;\r\n }\r\n\r\n const stockRecord = response.records[0];\r\n\r\n return this.processStockItem(stockRecord);\r\n }),\r\n );\r\n }\r\n\r\n /**\r\n * Retrieves the stock record from the eSolve instance using the SEF name.\r\n *\r\n * @param sef_name SEF name of the stock item\r\n */\r\n public getStockItemFromSEF(sef_name: string): Observable<EsolveStockItem<T>> {\r\n const params = new HttpParams({\r\n fromObject: {\r\n sef_name,\r\n },\r\n });\r\n\r\n return this.getStockRecords(params).pipe(\r\n map((response) => {\r\n if (\r\n (response.records === undefined) ||\r\n (response.records.length <= 0)\r\n ) {\r\n throw response;\r\n }\r\n\r\n const stockRecord = response.records[0];\r\n\r\n return this.processStockItem(stockRecord);\r\n }),\r\n );\r\n }\r\n\r\n /**\r\n * Retrieves list of stock from the eSolve instance using info provided\r\n *\r\n * @param options Stock filter options\r\n */\r\n public getStockItems(\r\n options: EsolveStockItemOptions,\r\n ): Observable<EsolveStockItemList<T>> {\r\n let params = new HttpParams();\r\n\r\n if (options.page) {\r\n params = params.set('page', options.page);\r\n }\r\n\r\n if (options.rows) {\r\n params = params.set('rows', options.rows);\r\n }\r\n\r\n if (options.sort) {\r\n const sort = options.sort;\r\n\r\n if (sort.field) {\r\n params = params.set('sort', sort.field);\r\n }\r\n\r\n if (sort.order) {\r\n params = params.set('order', sort.order);\r\n }\r\n }\r\n\r\n if (options.search_phrase) {\r\n params = params.set('search_phrase', options.search_phrase);\r\n }\r\n\r\n if (options.display_only) {\r\n params = params.set('display_only', options.display_only);\r\n }\r\n\r\n if (options.is_active) {\r\n params = params.set('is_active', options.is_active);\r\n }\r\n\r\n if (options.category_id) {\r\n params = params.set('category_id', options.category_id);\r\n }\r\n\r\n if (options.subcategory_id) {\r\n params = params.set('subcategory_id', options.subcategory_id);\r\n }\r\n\r\n if (options.manufacturers_id) {\r\n params = params.set('manufacturers_id', options.manufacturers_id);\r\n }\r\n\r\n if (options.ranges_id) {\r\n params = params.set('ranges_id', options.ranges_id);\r\n }\r\n\r\n if (options.specials_id) {\r\n params = params.set('specials_id', options.specials_id);\r\n }\r\n\r\n if (options.tag_id_list && options.tag_id_list.length > 0) {\r\n params = params.set('tag_id', options.tag_id_list.join(','));\r\n }\r\n\r\n if (options.topic_id_list && options.topic_id_list.length > 0) {\r\n params = params.set('topic_id', options.topic_id_list.join(','));\r\n }\r\n\r\n if (options.filters) {\r\n let filters = options.filters;\r\n\r\n if (!Array.isArray(filters)) {\r\n filters = EsolveFilterFactory.covertFromObj(filters);\r\n }\r\n\r\n params = EsolveFilterFactory.convertToHttpParams(filters, params);\r\n }\r\n\r\n return this.getStockRecords(params).pipe(\r\n map((response) => {\r\n if (\r\n (response.records === undefined) ||\r\n (response.records.length <= 0)\r\n ) {\r\n throw response;\r\n }\r\n\r\n const stockItems: EsolveStockItem<T>[] = [];\r\n\r\n response.records.forEach((stockRecord) => {\r\n stockItems.push(this.processStockItem(stockRecord));\r\n });\r\n\r\n return new EsolveStockItemList(\r\n stockItems,\r\n +response.additional_data.total_records,\r\n options.page ?? 0,\r\n );\r\n }),\r\n );\r\n }\r\n\r\n /**\r\n * Retrieves list of stock from the eSolve instance using info provided\r\n *\r\n * @param options Stock filter options\r\n */\r\n public getStockItemsTransactionHistory(\r\n options: EsolveStockItemOptions,\r\n ): Observable<EsolveStockItemList<T>> {\r\n let params = new HttpParams();\r\n\r\n if (options.page) {\r\n params = params.set('page', options.page);\r\n }\r\n\r\n if (options.rows) {\r\n params = params.set('rows', options.rows);\r\n }\r\n\r\n if (options.sort) {\r\n const sort = options.sort;\r\n\r\n if (sort.field) {\r\n params = params.set('sort', sort.field);\r\n }\r\n\r\n if (sort.order) {\r\n params = params.set('order', sort.order);\r\n }\r\n }\r\n\r\n if (options.search_phrase) {\r\n params = params.set('search_phrase', options.search_phrase);\r\n }\r\n\r\n if (options.display_only) {\r\n params = params.set('display_only', options.display_only);\r\n }\r\n\r\n if (options.is_active) {\r\n params = params.set('is_active', options.is_active);\r\n }\r\n\r\n if (options.category_id) {\r\n params = params.set('category_id', options.category_id);\r\n }\r\n\r\n if (options.subcategory_id) {\r\n params = params.set('subcategory_id', options.subcategory_id);\r\n }\r\n\r\n if (options.manufacturers_id) {\r\n params = params.set('manufacturers_id', options.manufacturers_id);\r\n }\r\n\r\n if (options.ranges_id) {\r\n params = params.set('ranges_id', options.ranges_id);\r\n }\r\n\r\n if (options.specials_id) {\r\n params = params.set('specials_id', options.specials_id);\r\n }\r\n\r\n if (options.tag_id_list && options.tag_id_list.length > 0) {\r\n params = params.set('tag_id', options.tag_id_list.join(','));\r\n }\r\n\r\n if (options.topic_id_list && options.topic_id_list.length > 0) {\r\n params = params.set('topic_id', options.topic_id_list.join(','));\r\n }\r\n\r\n if (options.filters) {\r\n let filters = options.filters;\r\n\r\n if (!Array.isArray(filters)) {\r\n filters = EsolveFilterFactory.covertFromObj(filters);\r\n }\r\n\r\n params = EsolveFilterFactory.convertToHttpParams(filters, params);\r\n }\r\n\r\n return this.getStockHistoryRecords(params).pipe(\r\n map((response) => {\r\n if (\r\n (response.records === undefined) ||\r\n (response.records.length <= 0)\r\n ) {\r\n throw response;\r\n }\r\n\r\n const stockItems: EsolveStockItem<T>[] = [];\r\n\r\n response.records.forEach((stockRecord) => {\r\n stockItems.push(this.processStockItem(stockRecord));\r\n });\r\n\r\n return new EsolveStockItemList(\r\n stockItems,\r\n +response.additional_data.total_records,\r\n options.page ?? 0,\r\n );\r\n }),\r\n );\r\n }\r\n\r\n /**\r\n * Retrieve list of stock items linked to a stock item from the eSolve API\r\n *\r\n * @param code Stock item code\r\n */\r\n public getLinkedItems(\r\n code: string,\r\n ): Observable<EsolveLinkedStockItem<T>[]> {\r\n return this.http\r\n .get<EsolveGetResponse<EsolveLinkedStockRecord<T>[]>>(\r\n `${this.config.api_url}/get-linked-items.php`,\r\n { params: { code } },\r\n )\r\n .pipe(\r\n map((response) => {\r\n if (\r\n (response.records === undefined) ||\r\n (response.records.length <= 0)\r\n ) {\r\n throw response;\r\n }\r\n\r\n return this.processLinkedItems(response.records);\r\n }),\r\n );\r\n }\r\n\r\n /**\r\n * Retrieve list of stock items on a recipe from the eSolve API\r\n *\r\n * @param code Stock item code\r\n */\r\n public getRecipeItems(\r\n code: string,\r\n options?: EsolveRecipeStockOptions,\r\n ): Observable<EsolveRecipeStockItem<T>[]> {\r\n let params = new HttpParams().set('code', code);\r\n\r\n if (options) {\r\n if (options.page) {\r\n params = params.set('page', options.page);\r\n }\r\n\r\n if (options.rows) {\r\n params = params.set('rows', options.rows);\r\n }\r\n\r\n if (options.sort) {\r\n const sort = options.sort;\r\n\r\n if (sort.field) {\r\n params = params.set('sort', sort.field);\r\n }\r\n\r\n if (sort.order) {\r\n params = params.set('order', sort.order);\r\n }\r\n }\r\n }\r\n\r\n return this.http\r\n .get<EsolveGetResponse<EsolveRecipeItemRecord<T>[]>>(\r\n `${this.config.api_url}/get-recipe-items.php`,\r\n { params },\r\n )\r\n .pipe(\r\n map((response) => {\r\n if (\r\n (response.records === undefined) ||\r\n (response.records.length <= 0)\r\n ) {\r\n throw response;\r\n }\r\n\r\n return this.processRecipeItems(response.records);\r\n }),\r\n );\r\n }\r\n\r\n /**\r\n * Retrieve list of stock items linked to a stock item from the eSolve API\r\n *\r\n * @param options Filter options\r\n */\r\n public getMediaLinkedItems(\r\n options: EsolveMediaStockItemOptions,\r\n ): Observable<EsolveMediaStockItemList<T>> {\r\n let params = new HttpParams({\r\n fromObject: {\r\n rows: options.rows ?? 0,\r\n page: options.page ?? 0,\r\n ranges_id: options.ranges_id ?? 0,\r\n manufacturers_id: options.manufacturers_id ?? 0,\r\n display_only: options.display_only ?? false,\r\n is_active: options.is_active ?? true,\r\n },\r\n });\r\n\r\n if (options.sort) {\r\n const sort = options.sort;\r\n\r\n if (sort.field) {\r\n params = params.set('sort', sort.field);\r\n }\r\n\r\n if (sort.order) {\r\n params = params.set('order', sort.order);\r\n }\r\n }\r\n\r\n if (options.media_identifier) {\r\n params = params.append('media_identifier', options.media_identifier);\r\n }\r\n\r\n if (options.media_id) {\r\n params = params.append('media_id', options.media_id);\r\n }\r\n\r\n return this.http\r\n .get<EsolveGetResponse<EsolveMediaStockItemRecord<T>[]>>(\r\n `${this.config.api_url}/get-media-linked-items.php`,\r\n { params },\r\n )\r\n .pipe(\r\n map((response) => {\r\n if (\r\n (response.records === undefined) ||\r\n (response.records.length <= 0)\r\n ) {\r\n throw response;\r\n }\r\n\r\n const items = this.processMediaStockItems(response.records);\r\n\r\n return new EsolveList(\r\n items,\r\n options.page,\r\n options.rows,\r\n +response.additional_data.total_records,\r\n );\r\n }),\r\n );\r\n }\r\n\r\n /**\r\n * Retrieves the full image collection of a stock item\r\n *\r\n * @param code Stock item code\r\n */\r\n public getStockImageCollection(code: string): Observable<EsolveStockImageCollection> {\r\n return this.http\r\n .get<EsolveGetResponse<EsolveStockImageCollectionRecord>>(\r\n `${this.config.api_url}/get-item-image-collection.php`,\r\n { params: { code } },\r\n )\r\n .pipe(\r\n map((response) => {\r\n if (response.records === undefined) {\r\n throw response;\r\n }\r\n\r\n const collection = new EsolveStockImageCollection(\r\n response.records,\r\n );\r\n\r\n return collection;\r\n }),\r\n );\r\n }\r\n\r\n public getStockFilters(options: EsolveStockFilterOptions): Observable<EsolveFilterList> {\r\n let params = new HttpParams({\r\n fromObject: {\r\n category_id: options.category_id ?? '',\r\n subcategory_id: options.subcategory_id ?? 0,\r\n ranges_id: options.ranges_id ?? 0,\r\n manufacturers_id: options.manufacturers_id ?? 0,\r\n fields: options.fields.join(','),\r\n },\r\n });\r\n\r\n return this.http\r\n .get<EsolveGetResponse<EsolveFilterRecordList>>(\r\n `${this.config.api_url}/get-item-filters.php`,\r\n { params },\r\n )\r\n .pipe(\r\n map((response) => {\r\n if (response.records === undefined) {\r\n throw response;\r\n }\r\n\r\n const filters = [];\r\n\r\n for (const record of response.records) {\r\n let filter = null;\r\n\r\n if (record.type === 'range') {\r\n filter = new EsolveRangeFilter(record.field, +record.min, +record.max);\r\n } else if (record.type === 'single') {\r\n filter = new EsolveSingleSelectFilter(record.field, record.values);\r\n } else if (record.type === 'multiple') {\r\n filter = new EsolveMultipleSelectFilter(record.field, record.values);\r\n }\r\n\r\n if (filter) {\r\n filters.push(filter);\r\n }\r\n }\r\n\r\n return filters;\r\n }),\r\n );\r\n }\r\n\r\n /**\r\n * Processes the eSolve stock item record and converts it to an object.\r\n *\r\n * @param record eSolve stock item record\r\n */\r\n private processStockItem(record: EsolveStockRecord<T>): EsolveStockItem<T> {\r\n return new EsolveStockItem<T>(record);\r\n }\r\n\r\n /**\r\n * Processes the linked eSolve stock item records and converts them to objects.\r\n *\r\n * @param records Linked eSolve stock item records\r\n */\r\n private processLinkedItems(\r\n records: EsolveLinkedStockRecord<T>[],\r\n ): EsolveLinkedStockItem<T>[] {\r\n const items: EsolveLinkedStockItem<T>[] = [];\r\n\r\n if (records.length > 0) {\r\n for (const record of records) {\r\n items.push(new EsolveLinkedStockItem<T>(record));\r\n }\r\n }\r\n\r\n return items;\r\n }\r\n\r\n /**\r\n * Processes the recipe eSolve stock item records and converts them to objects.\r\n *\r\n * @param records Recipe eSolve stock item records\r\n */\r\n private processRecipeItems(\r\n records: EsolveRecipeItemRecord<T>[],\r\n ): EsolveRecipeStockItem<T>[] {\r\n const items: EsolveRecipeStockItem<T>[] = [];\r\n\r\n if (records.length > 0) {\r\n for (const record of records) {\r\n items.push(new EsolveRecipeStockItem<T>(record));\r\n }\r\n }\r\n\r\n return items;\r\n }\r\n\r\n /**\r\n * Processes the linked eSolve stock item records and converts them to objects.\r\n *\r\n * @param records Linked eSolve stock item records\r\n */\r\n private processMediaStockItems(\r\n records: EsolveMediaStockItemRecord<T>[],\r\n ): EsolveMediaStockItem<T>[] {\r\n const items: EsolveMediaStockItem<T>[] = [];\r\n\r\n if (records.length > 0) {\r\n for (const record of records) {\r\n items.push(new EsolveMediaStockItem<T>(record));\r\n }\r\n }\r\n\r\n return items;\r\n }\r\n\r\n /**\r\n * Retrieves stock records from HTTP params.\r\n * @param params HTTP client parameters\r\n */\r\n private getStockRecords(\r\n params: HttpParams,\r\n ): Observable<EsolveGetResponse<EsolveStockRecord<T>[]>> {\r\n return this.http.get<EsolveGetResponse<EsolveStockRecord<T>[]>>(\r\n `${this.config.api_url}/get-items.php`,\r\n { params },\r\n );\r\n }\r\n\r\n /**\r\n * Retrieves stock transaction history records from HTTP params.\r\n * @param params HTTP client parameters\r\n */\r\n private getStockHistoryRecords(\r\n params: HttpParams,\r\n ): Observable<EsolveGetResponse<EsolveStockRecord<T>[]>> {\r\n return this.http.get<EsolveGetResponse<EsolveStockRecord<T>[]>>(\r\n `${this.config.api_url}/get-items-transaction-history.php`,\r\n { params },\r\n );\r\n }\r\n\r\n\r\n}\r\n","import { EsolveSpecialImageRecord } from './esolve-special-image-record.interface';\r\n\r\nexport class EsolveSpecialImage {\r\n public id: number;\r\n public width: number;\r\n public height: number;\r\n public src: string;\r\n\r\n constructor(record: EsolveSpecialImageRecord) {\r\n this.id = +record.id;\r\n this.width = +record.width;\r\n this.height = +record.height;\r\n this.src = record.src;\r\n }\r\n}\r\n","import { EsolveSpecialImage } from './esolve-special-image.model';\r\nimport { EsolveSpecialImageCollectionRecord } from './esolve-special-image-collection-record.interface';\r\n\r\nexport class EsolveSpecialImageCollection {\r\n public thumb?: EsolveSpecialImage[];\r\n public banner?: EsolveSpecialImage[];\r\n public banner_mobile?: EsolveSpecialImage[];\r\n\r\n constructor(\r\n public image_container: string,\r\n images: EsolveSpecialImageCollectionRecord,\r\n ) {\r\n if (images.thumb && images.thumb.length > 0) {\r\n this.thumb = [];\r\n\r\n for (const image_record of images.thumb) {\r\n this.thumb.push(new EsolveSpecialImage(image_record));\r\n }\r\n }\r\n\r\n if (images.banner && images.banner.length > 0) {\r\n this.banner = [];\r\n\r\n for (const image_record of images.banner) {\r\n this.banner.push(new EsolveSpecialImage(image_record));\r\n }\r\n }\r\n\r\n if (images.banner_mobile && images.banner_mobile.length > 0) {\r\n this.banner_mobile = [];\r\n\r\n for (const image_record of images.banner_mobile) {\r\n this.banner_mobile.push(new EsolveSpecialImage(image_record));\r\n }\r\n }\r\n }\r\n}\r\n","export class EsolveSpecialDates {\r\n constructor(\r\n public start: Date,\r\n public end: Date,\r\n ) { }\r\n}\r\n","import { EsolveLinkedAsset } from '../shared/assets';\r\nimport { EsolveSeoInfo } from '../shared/seo/esolve-seo-info.model';\r\nimport { EsolveSeoDetails } from '../shared/seo/esolve-seo-details.interface';\r\nimport { EsolveSpecialImageCollection } from './esolve-special-image-collection.model';\r\nimport { EsolveSpecialRecord } from './esolve-special-record.interface';\r\nimport { EsolveSpecialDates } from './esolve-special-dates.model';\r\n\r\nexport class EsolveSpecial implements EsolveSeoDetails {\r\n public id: number;\r\n public identifier: string;\r\n public sort_priority: number;\r\n public name: string;\r\n public description: string;\r\n public discount_type: number;\r\n public special_type: string;\r\n public location_id: number;\r\n public active: boolean;\r\n public featured: boolean;\r\n public assets: EsolveLinkedAsset[];\r\n public seo_details: EsolveSeoInfo;\r\n public images?: EsolveSpecialImageCollection;\r\n public dates?: EsolveSpecialDates;\r\n\r\n constructor(record: EsolveSpecialRecord) {\r\n this.id = +record.id;\r\n this.identifier = record.identifier;\r\n this.sort_priority = +record.sort_priority;\r\n this.name = record.name;\r\n this.description = record.description;\r\n this.discount_type = +record.discount_type;\r\n this.special_type = record.special_type;\r\n this.location_id = +record.location_id;\r\n this.active = !!+record.active;\r\n this.featured = !!+record.featured;\r\n this.assets = [];\r\n\r\n if (record.assets.length > 0) {\r\n for (const asset_record of record.assets) {\r\n this.assets.push(new EsolveLinkedAsset(asset_record));\r\n }\r\n }\r\n\r\n if (\r\n record.images &&\r\n (\r\n (\r\n record.images.thumb &&\r\n record.images.thumb.length > 0\r\n ) ||\r\n (\r\n record.images.banner &&\r\n record.images.banner.length > 0\r\n ) ||\r\n (\r\n record.images.banner_mobile &&\r\n record.images.banner_mobile.length > 0\r\n )\r\n ) &&\r\n record.image_container.trim() !== ''\r\n ) {\r\n this.images = new EsolveSpecialImageCollection(\r\n record.image_container,\r\n record.images,\r\n );\r\n }\r\n\r\n const start_date = new Date(+record.from_date_timestamp * 1000);\r\n const end_date = new Date(+record.to_date_timestamp * 1000);\r\n\r\n this.dates = new EsolveSpecialDates(start_date, end_date);\r\n\r\n if (record.seo_page_title.trim() === '') {\r\n record.seo_page_title = this.name;\r\n }\r\n\r\n this.seo_details = new EsolveSeoInfo(\r\n record.seo_page_title,\r\n record.seo_description,\r\n record.seo_keywords,\r\n );\r\n }\r\n}\r\n","import { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\n\r\nimport { Observable, of } from 'rxjs';\r\nimport { catchError, map } from 'rxjs/operators';\r\n\r\nimport { EsolveConnectConfig } from '../esolve-connect.config';\r\nimport { ESOLVE_CONNECT_CONFIG } from '../esolve-connect-config.constant';\r\nimport { EsolveGetResponse } from '../shared/response';\r\n\r\nimport { EsolveSpecial } from './esolve-special.model';\r\nimport { EsolveSpecialOptions } from './esolve-special-options.interface';\r\nimport { EsolveSpecialRecord } from './esolve-special-record.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class EsolveSpecialsService {\r\n constructor(\r\n @Inject(ESOLVE_CONNECT_CONFIG) private config: EsolveConnectConfig,\r\n private http: HttpClient,\r\n ) { }\r\n\r\n public getSpecial(specials_id: number): Observable<EsolveSpecial> {\r\n const params = new HttpParams({\r\n fromObject: { specials_id },\r\n });\r\n\r\n return this.getSpecialSingle(params);\r\n }\r\n\r\n public getSpecialFromIdentifier(identifier: string): Observable<EsolveSpecial> {\r\n const params = new HttpParams({\r\n fromObject: { identifier },\r\n });\r\n\r\n return this.getSpecialSingle(params);\r\n }\r\n\r\n public getSpecials(options?: EsolveSpecialOptions): Observable<EsolveSpecial[]> {\r\n let params = new HttpParams();\r\n\r\n if (options?.featured_only) {\r\n params = params.set('featured_only', options.featured_only);\r\n }\r\n\r\n if (options?.image_container) {\r\n params = params.set('image_container', options.image_container);\r\n }\r\n\r\n if (options?.location_id) {\r\n params = params.set('location_id', options.location_id);\r\n }\r\n\r\n if (options?.special_type) {\r\n params = params.set('special_type', options.special_type);\r\n }\r\n\r\n return this.getSpecialRecords(params).pipe(\r\n map((records) => {\r\n const specials: EsolveSpecial[] = [];\r\n\r\n for (const record of records) {\r\n specials.push(this.processSpecial(record));\r\n }\r\n\r\n return specials;\r\n }),\r\n catchError(() => {\r\n return of<EsolveSpecial[]>([]);\r\n }),\r\n );\r\n }\r\n\r\n private getSpecialSingle(params: HttpParams): Observable<EsolveSpecial> {\r\n return this.getSpecialRecords(params).pipe(\r\n map((records) => {\r\n const record = records[0];\r\n\r\n return this.processSpecial(record);\r\n }),\r\n );\r\n }\r\n\r\n private getSpecialRecords(params?: HttpParams): Observable<EsolveSpecialRecord[]> {\r\n return this.http\r\n .get<EsolveGetResponse<EsolveSpecialRecord[]>>(\r\n `${this.config.api_url}/get-specials.php`,\r\n { params },\r\n )\r\n .pipe(\r\n map((response) => {\r\n if (\r\n (response.records === undefined) ||\r\n (response.records.length <= 0)\r\n ) {\r\n throw response;\r\n }\r\n\r\n return response.records;\r\n }),\r\n );\r\n }\r\n\r\n private processSpecial(record: EsolveSpecialRecord): EsolveSpecial {\r\n return new EsolveSpecial(record);\r\n }\r\n}\r\n","// Only export the types that are accessible to the public API\r\nexport * from './esolve-card-data.interface';\r\nexport * from './esolve-payment-form-input.interface';\r\nexport * from './esolve-vault-response.interface';\r\nexport * from './esolve-vault-record.interface';\r\nexport * from './esolve-payment-response.interface';\r\nexport * from './esolve-payment-method-options.interface';\r\nexport * from './esolve-payment-method-record.interface';\r\nexport * from './esolve-payment-redirect-links.interface';\r\n","export class EsolveBankingDetails {\r\n constructor(\r\n public bank_name: string,\r\n public account_holder: string,\r\n public account: string,\r\n public account_type: string,\r\n public swift_number: string,\r\n public branch_code: string,\r\n ) { }\r\n}\r\n","import { EsolveIntegrationType } from '../types';\r\nimport { EsolvePaymentMethodRecord } from '../interfaces';\r\nimport { EsolveBankingDetails } from './esolve-banking-details.model';\r\n\r\nexport class EsolvePaymentMethod {\r\n public id: number;\r\n public location_id: number;\r\n public paymethod_name: string;\r\n public description: string;\r\n public display_banking_details: boolean;\r\n public currency_code: string;\r\n public merchant_id: string;\r\n public application_id: string;\r\n public api_signature: string;\r\n public is_gateway: boolean;\r\n public must_store_card_details: boolean;\r\n public allow_budget: boolean;\r\n public integration_type: EsolveIntegrationType;\r\n public bank_gateway_id: string;\r\n public accepted_card_types: string[];\r\n public post_transactions_to_gateway: boolean;\r\n public three_d_secure_url: string;\r\n public gateway_url: string;\r\n public generate_token_url: string;\r\n public widget_url: string;\r\n public successful_url: string;\r\n public failed_url: string;\r\n public enable_callback: boolean;\r\n public live: boolean;\r\n public default_module_id: number;\r\n public service_provider: string;\r\n public on_account: boolean;\r\n public sort_priority: number;\r\n public image_url: string;\r\n\r\n public banking_details: EsolveBankingDetails;\r\n\r\n constructor(record: EsolvePaymentMethodRecord) {\r\n this.id = +record.id;\r\n this.location_id = +record.location_id;\r\n this.paymethod_name = record.paymethod_name;\r\n this.description = record.description;\r\n this.display_banking_details = !!+record.display_banking_details;\r\n this.currency_code = record.currency_code;\r\n this.merchant_id = record.merchant_id;\r\n this.application_id = record.application_id;\r\n this.api_signature = record.api_signature;\r\n this.is_gateway = !!+record.is_gateway;\r\n this.must_store_card_details = !!+record.must_store_card_details;\r\n this.allow_budget = !!+record.allow_budget;\r\n this.integration_type = record.integration_type;\r\n this.bank_gateway_id = record.bank_gateway_id;\r\n this.accepted_card_types = record.accepted_card_types;\r\n this.post_transactions_to_gateway = !!+record.post_transactions_to_gateway;\r\n this.three_d_secure_url = record.three_d_secure_url;\r\n this.gateway_url = record.gateway_url;\r\n this.generate_token_url = record.generate_token_url;\r\n this.widget_url = record.widget_url;\r\n this.successful_url = record.successful_url;\r\n this.failed_url = record.failed_url;\r\n this.enable_callback = !!+record.enable_callback;\r\n this.live = !!+record.live;\r\n this.default_module_id = +record.default_module_id;\r\n this.service_provider = record.service_provider;\r\n this.on_account = !!+record.on_account;\r\n this.sort_priority = +record.sort_priority;\r\n this.image_url = record.image_url;\r\n\r\n this.banking_details = new EsolveBankingDetails(\r\n record.bank_name,\r\n record.account_holder,\r\n record.account,\r\n record.account_type,\r\n record.swift_number,\r\n record.branch_code,\r\n );\r\n }\r\n}\r\n","import { EsolveResponseResult } from '../../shared/response';\r\n\r\nimport { EsolveServiceProvider } from '../types';\r\nimport { EsolvePaymentResponse, EsolvePaymentFormInput } from '../interfaces';\r\n\r\nexport class EsolvePaymentResult extends EsolveResponseResult {\r\n public gateway_error_message: string;\r\n public redirect_required: boolean = false;\r\n public service_provider?: EsolveServiceProvider;\r\n public redirect_url?: string;\r\n /**\r\n * Form post variables\r\n *\r\n * Not available to SnapScan\r\n */\r\n public form_inputs?: EsolvePaymentFormInput[];\r\n /**\r\n * Form post content type\r\n *\r\n * Not available to SnapScan\r\n */\r\n public form_enctype?: string;\r\n /**\r\n * QR code image url\r\n *\r\n * Only available to SnapScan integrations\r\n */\r\n public qr_code_url?: string;\r\n\r\n constructor(response: EsolvePaymentResponse) {\r\n super(response);\r\n\r\n if (typeof response.service_provider !== 'undefined') {\r\n this.service_provider = response.service_provider;\r\n }\r\n\r\n if (typeof response.redirect_required !== 'undefined') {\r\n this.redirect_required = response.redirect_required;\r\n }\r\n\r\n this.gateway_error_message = response.gateway_error_message ?? '';\r\n\r\n // Check if redirect settings need to be set\r\n if (this.redirect_required && this.service_provider) {\r\n if (typeof response.redirect_url !== 'undefined') {\r\n this.redirect_url = response.redirect_url;\r\n }\r\n\r\n // Check integration specific settings\r\n if (this.service_provider === 'snapscan') {\r\n // QR code scan is required\r\n if (typeof response.qr_code_url !== 'undefined') {\r\n this.qr_code_url = response.qr_code_url;\r\n }\r\n } else {\r\n // Normal form posting redirect\r\n if (typeof response.form_inputs !== 'undefined') {\r\n this.form_inputs = response.form_inputs;\r\n }\r\n\r\n if (typeof response.form_enctype !== 'undefined') {\r\n this.form_enctype = response.form_enctype;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","import { EsolveResponseResult } from '../../shared/response';\r\n\r\nimport { EsolveVaultResponse } from '../interfaces';\r\n\r\nexport class EsolveVaultItemResult extends EsolveResponseResult {\r\n public id: number;\r\n public token?: string;\r\n public card_valid?: boolean;\r\n public card_details_validated?: boolean;\r\n public gateway_error_message?: string;\r\n\r\n constructor(response: EsolveVaultResponse) {\r\n super(response);\r\n\r\n this.id = +response.esolve_id;\r\n\r\n if (typeof response.token !== 'undefined') {\r\n this.token = response.token;\r\n }\r\n\r\n if (typeof response.card_valid !== 'undefined') {\r\n this.card_valid = response.card_valid;\r\n }\r\n\r\n if (typeof response.card_details_validated !== 'undefined') {\r\n this.card_details_validated = response.card_details_validated;\r\n }\r\n\r\n if (typeof response.gateway_error_message !== 'undefined') {\r\n this.gateway_error_message = response.gateway_error_message;\r\n }\r\n }\r\n}\r\n","export class EsolveVaultItem {\r\n private expiry: Date;\r\n\r\n public get expiry_month(): string {\r\n const month = this.expiry.getMonth() + 1;\r\n\r\n return month.toString().padStart(2, '0');\r\n }\r\n\r\n public get expiry_year(): number {\r\n return this.expiry.getFullYear();\r\n }\r\n\r\n public get masked_number(): string {\r\n return this.last4.padStart(19, '**** ');\r\n }\r\n\r\n constructor(\r\n public id: number,\r\n public payment_methods_id: number,\r\n public last4: string,\r\n public brand: string,\r\n expiry_timestamp: number,\r\n ) {\r\n this.expiry = new Date(expiry_timestamp * 1000);\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { HttpClient, HttpErrorResponse, HttpParams } from '@angular/common/http';\r\n\r\nimport { Observable } from 'rxjs';\r\nimport { catchError, map } from 'rxjs/operators';\r\n\r\nimport { ESOLVE_CONNECT_CONFIG } from '../esolve-connect-config.constant';\r\nimport { EsolveConnectConfig } from '../esolve-connect.config';\r\nimport { EsolveErrorHandlerService } from '../shared/errors/esolve-error-handler.service';\r\nimport { EsolveResult } from '../shared/esolve-result.model';\r\nimport {\r\n EsolveDeleteResponse,\r\n EsolveGetResponse,\r\n EsolveResponseHandlerService,\r\n EsolveSetResponse,\r\n} from '../shared/response';\r\n\r\nimport {\r\n EsolvePaymentMethod,\r\n EsolvePaymentResult,\r\n EsolveVaultItem,\r\n EsolveVaultItemResult,\r\n} from './classes';\r\nimport {\r\n EsolveCardData,\r\n EsolvePaymentMethodOptions,\r\n EsolvePaymentMethodRecord,\r\n EsolvePaymentRedirectLinks,\r\n EsolvePaymentResponse,\r\n EsolveVaultRecord,\r\n EsolveVaultResponse,\r\n} from './interfaces';\r\nimport { EsolvePaymentSetBody } from './interfaces/esolve-payment-set-body.interface';\r\nimport { EsolvePaymentStatus } from './interfaces/esolve-payment-status.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class EsolvePaymentService {\r\n constructor(\r\n @Inject(ESOLVE_CONNECT_CONFIG) private config: EsolveConnectConfig,\r\n private http: HttpClient,\r\n private errorHandler: EsolveErrorHandlerService,\r\n private responseHandler: EsolveResponseHandlerService,\r\n ) { }\r\n\r\n /**\r\n * Retrieves a list of payment methods.\r\n *\r\n * @param options Filter options\r\n *\r\n * @returns An `Observable` with an array of payment methods\r\n */\r\n public getPaymentMethods(options?: EsolvePaymentMethodOptions): Observable<EsolvePaymentMethod[]> {\r\n return this.http\r\n .get<EsolveGetResponse<EsolvePaymentMethodRecord[]>>(\r\n `${this.config.api_url}/get-payment-methods.php`,\r\n { params: { ...options } },\r\n )\r\n .pipe(\r\n map((response) => {\r\n if (response.records === undefined) {\r\n throw response;\r\n }\r\n\r\n return this.processPaymentMethods(response.records);\r\n }),\r\n );\r\n }\r\n\r\n /**\r\n * Retrieve the payment status of the specified transaction\r\n *\r\n * @param transaction_id ID of the transaction\r\n *\r\n * @returns An `Observable` with the success status of the payment\r\n */\r\n public getPaymentStatus(transaction_id: number): Observable<boolean> {\r\n return this.http\r\n .get<EsolveGetResponse<EsolvePaymentStatus>>(\r\n `${this.config.api_url}/get-payment-status.php`,\r\n { params: { cart_id: transaction_id } },\r\n )\r\n .pipe(\r\n map((response) => {\r\n if (response.records === undefined) {\r\n throw response;\r\n }\r\n\r\n return response.records.success;\r\n }),\r\n );\r\n }\r\n\r\n /**\r\n * Retrieves a list of saved cards from the vault.\r\n *\r\n * @param payment_methods_id eSolve ID of a payment method\r\n *\r\n * @returns An `Observable` with an array of saved bank cards\r\n */\r\n public getVault(payment_methods_id?: number): Observable<EsolveVaultItem[]> {\r\n let params = new HttpParams();\r\n\r\n if (typeof payment_methods_id !== 'undefined') {\r\n params = params.set('payment_methods_id', payment_methods_id);\r\n }\r\n\r\n return this.http\r\n .get<EsolveGetResponse<EsolveVaultRecord[]>>(\r\n `${this.config.api_url}/get-vault.php`,\r\n { params },\r\n )\r\n .pipe(\r\n map((response) => {\r\n if (response.records === undefined) {\r\n throw response;\r\n }\r\n\r\n return this.processVaultItems(response.records);\r\n }),\r\n );\r\n }\r\n\r\n /**\r\n * Sets a new card in the vault OR updates an existing one.\r\n *\r\n * @param payment_methods_id Selected payment method\r\n * @param card_data Information of bank card\r\n *\r\n * @returns An `Observable` with the result of the vault set.\r\n */\r\n public setVaultItem(\r\n payment_methods_id: number,\r\n card_data: EsolveCardData,\r\n ): Observable<EsolveVaultItemResult> {\r\n const body = {\r\n vault: {\r\n payment_methods_id,\r\n card_number: card_data.card_number,\r\n card_name: card_data.name,\r\n card_cvv: card_data.cvv,\r\n card_expiry: this.generateExpiry(card_data),\r\n },\r\n };\r\n\r\n return this.http\r\n .post<EsolveSetResponse<EsolveVaultResponse>>(\r\n `${this.config.api_url}/set-vault.php`,\r\n body,\r\n {\r\n headers: {\r\n 'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;',\r\n },\r\n responseType: 'json',\r\n observe: 'body',\r\n },\r\n )\r\n .pipe(\r\n map((http_response) => this.responseHandler.validateSingleHttpResponse(\r\n http_response,\r\n (response) => new EsolveVaultItemResult(response),\r\n )),\r\n catchError((errorRes: HttpErrorResponse | any) => {\r\n return this.errorHandler.handleHttpPostError('set-vault', errorRes);\r\n }),\r\n );\r\n }\r\n\r\n /**\r\n * Delete a card in the vault\r\n *\r\n * @param id ID of the vault item\r\n *\r\n * @returns An `Observable` with the result of the vault delete.\r\n */\r\n public deleteVaultItem(id: number): Observable<EsolveResult> {\r\n return this.http\r\n .delete<EsolveDeleteResponse>(\r\n `${this.config.api_url}/delete-vault.php`,\r\n {\r\n params: { id },\r\n responseType: 'json',\r\n observe: 'body',\r\n },\r\n )\r\n .pipe(\r\n map((http_response) => {\r\n if (\r\n (http_response.result === undefined) ||\r\n (http_response.result === null) ||\r\n (http_response.result.status !== 'success')\r\n ) {\r\n throw http_response;\r\n }\r\n\r\n return new EsolveResult(\r\n http_response.result.status,\r\n http_response.result.code,\r\n http_response.result.message,\r\n );\r\n }),\r\n catchError((errorRes: HttpErrorResponse | any) => {\r\n return this.errorHandler.handleHttpDeleteError(\r\n 'delete-vault',\r\n errorRes,\r\n );\r\n }),\r\n );\r\n }\r\n\r\n /**\r\n * Sets the payment for the specified transaction using selected payment\r\n * method.\r\n *\r\n * @param transaction_id eSolve ID to the transaction\r\n * @param payment_methods_id eSolve ID to the selected payment method\r\n * @param card ID of selected card from the vault or information to a brand new card\r\n *\r\n * @returns An `Observable` with the result of the payment\r\n */\r\n public setPayment(\r\n transaction_id: number,\r\n payment_methods_id: number,\r\n card?: EsolveCardData | number,\r\n links?: EsolvePaymentRedirectLinks,\r\n ): Observable<EsolvePaymentResult> {\r\n const body: EsolvePaymentSetBody = {\r\n payment: {\r\n cart_id: transaction_id,\r\n payment_methods_id,\r\n },\r\n };\r\n\r\n if (card) {\r\n if (typeof card === 'number') {\r\n body.payment.user_vault_id = card;\r\n } else {\r\n body.card = {\r\n card_number: card.card_number,\r\n card_name: card.name,\r\n card_cvv: card.cvv,\r\n card_expiry: this.generateExpiry(card),\r\n };\r\n }\r\n }\r\n\r\n if (links) {\r\n body.links = links;\r\n }\r\n\r\n return this.http\r\n .post<EsolveSetResponse<EsolvePaymentResponse>>(\r\n `${this.config.api_url}/set-payment.php`,\r\n body,\r\n {\r\n headers: {\r\n 'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;',\r\n },\r\n responseType: 'json',\r\n observe: 'body',\r\n },\r\n )\r\n .pipe(\r\n map((http_response) => this.responseHandler.validateSingleHttpResponse(\r\n http_response,\r\n (response) => new EsolvePaymentResult(response),\r\n )),\r\n catchError((errorRes: HttpErrorResponse | any) => {\r\n return this.errorHandler.handleHttpPostError('set-payment', errorRes);\r\n }),\r\n );\r\n }\r\n\r\n /**\r\n * Processes the eSolve payment method records.\r\n *\r\n * @param records Records to process\r\n *\r\n * @returns An array of processed payment methods.\r\n */\r\n private processPaymentMethods(records: EsolvePaymentMethodRecord[]): EsolvePaymentMethod[] {\r\n const payment_methods: EsolvePaymentMethod[] = [];\r\n\r\n if (records) {\r\n for (const record of records) {\r\n const payment_method = new EsolvePaymentMethod(record);\r\n\r\n payment_methods.push(payment_method);\r\n }\r\n }\r\n\r\n return payment_methods;\r\n }\r\n\r\n /**\r\n * Processes the eSolve vault records.\r\n *\r\n * @param records Records to process\r\n *\r\n * @returns An array of processed vault items (a.k.a. cards)\r\n */\r\n private processVaultItems(records: EsolveVaultRecord[]): EsolveVaultItem[] {\r\n const vault: EsolveVaultItem[] = [];\r\n\r\n if (records) {\r\n for (const record of records) {\r\n const vault_item = new EsolveVaultItem(\r\n +record.id,\r\n +record.payment_methods_id,\r\n record.last4,\r\n record.brand,\r\n record.expiry_timestamp,\r\n );\r\n\r\n vault.push(vault_item);\r\n }\r\n }\r\n\r\n return vault;\r\n }\r\n\r\n /**\r\n * Generate a concatenated string with the expiry month and year\r\n *\r\n * @param card_data Credit card data\r\n *\r\n * @returns Expiry string\r\n */\r\n private generateExpiry(card_data: EsolveCardData): string {\r\n const month_string = card_data.expiry_month.padStart(2, '0');\r\n const year_string = card_data.expiry_year.padStart(4, '0');\r\n\r\n return `${month_string}${year_string}`;\r\n }\r\n}\r\n","import { EsolveShippingLocation } from './esolve-shipping-location.type';\r\nimport { EsolveShippingCalculationMethod } from './esolve-shipping-calculation-method.type';\r\nimport { EsolveInsuranceCalculationMethod } from './esolve-insurance-calculation-method.type';\r\n\r\nexport class EsolveShippingMethod {\r\n constructor(\r\n public id: number,\r\n public carrier_name: string,\r\n public delivery_category: string,\r\n public description: string,\r\n public location: EsolveShippingLocation,\r\n public pricing: string,\r\n public link_to_carrier_website: string,\r\n public days_to_deliver: number,\r\n public shipping_cost_calculation_method: EsolveShippingCalculationMethod,\r\n public insurance_cost_calculation_method: EsolveInsuranceCalculationMethod,\r\n public insurance_cost_percentage: number,\r\n public metric_factor: number,\r\n public allow_immediate_payment_processing: boolean,\r\n public allow_postal_address: boolean,\r\n public allow_physical_address: boolean,\r\n public client_to_collect: boolean,\r\n public is_default: boolean,\r\n public location_id: number,\r\n public use_zones: boolean,\r\n public min_distance: number,\r\n public max_distance: number,\r\n public shipping_surge_condition: number,\r\n public shipping_surge_percentage: number,\r\n public sort_priority: number,\r\n public shipping_group: string,\r\n public shipping_slot_identifier: string,\r\n public shipping_slot_delay_hours: number,\r\n public image_url: string,\r\n ) { }\r\n}\r\n","export class EsolveShippingTotals {\r\n constructor(\r\n public total: number,\r\n public vat: number,\r\n public savings: number,\r\n ) { }\r\n}\r\n","import { EsolveShippingTotals } from './esolve-shipping-totals.model';\r\n\r\nexport class EsolveShippingCost {\r\n public shipping: EsolveShippingTotals;\r\n public insurance: EsolveShippingTotals;\r\n\r\n constructor(\r\n // Shipping\r\n shipping_total: number = 0,\r\n shipping_vat: number = 0,\r\n shipping_total_savings: number = 0,\r\n // Insurance\r\n insurance_total: number = 0,\r\n insurance_vat: number = 0,\r\n insurance_total_savings: number = 0,\r\n ) {\r\n this.shipping = new EsolveShippingTotals(\r\n shipping_total,\r\n shipping_vat,\r\n shipping_total_savings,\r\n );\r\n\r\n this.insurance = new EsolveShippingTotals(\r\n insurance_total,\r\n insurance_vat,\r\n insurance_total_savings,\r\n );\r\n }\r\n}\r\n","import { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\n\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { EsolveConnectConfig } from '../esolve-connect.config';\r\nimport { ESOLVE_CONNECT_CONFIG } from '../esolve-connect-config.constant';\r\nimport { EsolveGetResponse } from '../shared/response';\r\n\r\nimport { EsolveShippingCost } from './esolve-shipping-cost.model';\r\nimport { EsolveShippingCostRecord } from './esolve-shipping-cost-record.interface';\r\nimport { EsolveShippingMethod } from './esolve-shipping-method.model';\r\nimport { EsolveShippingMethodRecord } from './esolve-shipping-method-record.interface';\r\nimport { EsolveShippingMethodOptions } from './esolve-shipping-method-options.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class EsolveShippingService {\r\n constructor(\r\n @Inject(ESOLVE_CONNECT_CONFIG) private config: EsolveConnectConfig,\r\n private http: HttpClient,\r\n ) { }\r\n\r\n /**\r\n * Retrieves a list of shipping methods\r\n *\r\n * @param options Filter options\r\n *\r\n * @returns An `Observable` with an array of shipping methods\r\n */\r\n public getShippingMethods(options?: EsolveShippingMethodOptions): Observable<EsolveShippingMethod[]> {\r\n let params = new HttpParams();\r\n\r\n if (options) {\r\n if (typeof options.addresses_id !== 'undefined') {\r\n params = params.set('addresses_id', options.addresses_id);\r\n }\r\n\r\n if (typeof options.location_id !== 'undefined') {\r\n params = params.set('location_id', options.location_id);\r\n }\r\n }\r\n\r\n return this.http\r\n .get<EsolveGetResponse<EsolveShippingMethodRecord[]>>(\r\n `${this.config.api_url}/get-shipping-methods.php`,\r\n { params },\r\n )\r\n .pipe(\r\n map((response) => {\r\n if (response.records === undefined) {\r\n throw response;\r\n }\r\n\r\n return this.processShippingMethods(response.records);\r\n }),\r\n );\r\n }\r\n\r\n /**\r\n * Retrieves the shipping costs\r\n *\r\n * @param shipping_id\r\n * @param addresses_id\r\n * @param location_id\r\n *\r\n * @returns An `Observable` with the shipping costs\r\n */\r\n public getShippingCost(\r\n shipping_id: number,\r\n addresses_id: number,\r\n location_id?: number,\r\n ): Observable<EsolveShippingCost> {\r\n try {\r\n let params = new HttpParams();\r\n\r\n if (typeof shipping_id === 'undefined') {\r\n throw new Error('Shipping ID is required');\r\n } else {\r\n params = params.set('shipping_id', shipping_id);\r\n }\r\n\r\n if (typeof addresses_id === 'undefined') {\r\n throw new Error('Address ID is required');\r\n } else {\r\n params = params.set('addresses_id', addresses_id);\r\n }\r\n\r\n if (typeof location_id !== 'undefined') {\r\n params = params.set('location_id', location_id);\r\n }\r\n\r\n return this.http\r\n .get<EsolveGetResponse<EsolveShippingCostRecord[]>>(\r\n `${this.config.api_url}/get-shipping-cost.php`,\r\n { params },\r\n )\r\n .pipe(\r\n map((response) => {\r\n if (response.records === undefined) {\r\n throw response;\r\n }\r\n\r\n return this.processShippingCost(response.records[0]);\r\n }),\r\n );\r\n } catch (err) {\r\n return throwError(() => err);\r\n }\r\n }\r\n\r\n /**\r\n * Processes the eSolve shipping method records.\r\n *\r\n * @param records Records to process\r\n *\r\n * @returns An array of processed shipping methods\r\n */\r\n private processShippingMethods(records: EsolveShippingMethodRecord[]): EsolveShippingMethod[] {\r\n const shipping_methods: EsolveShippingMethod[] = [];\r\n\r\n if (records) {\r\n for (const record of records) {\r\n const shipping_method = new EsolveShippingMethod(\r\n +record.id,\r\n record.carrier_name,\r\n record.delivery_category,\r\n record.description,\r\n record.location,\r\n record.pricing,\r\n record.link_to_carrier_website,\r\n +record.days_to_deliver,\r\n record.shipping_cost_calculation_method,\r\n record.insurance_cost_calculation_method,\r\n +record.insurance_cost_percentage,\r\n +record.metric_factor,\r\n record.allow_immediate_payment_processing,\r\n record.allow_postal_address,\r\n record.allow_physical_address,\r\n record.client_to_collect,\r\n record.is_default_shipping_method,\r\n +record.location_id,\r\n record.use_zones,\r\n +record.min_distance,\r\n +record.max_distance,\r\n +record.shipping_surge_condition,\r\n +record.shipping_surge_percentage,\r\n +record.sort_priority,\r\n record.shipping_group,\r\n record.shipping_slot_identifier,\r\n +record.shipping_slot_delay_hours,\r\n record.image_url,\r\n );\r\n\r\n shipping_methods.push(shipping_method);\r\n }\r\n }\r\n\r\n return shipping_methods;\r\n }\r\n\r\n /**\r\n * Processes the eSolve shipping costs record.+\r\n *\r\n * @param record Data to process\r\n *\r\n * @returns Processed shipping costs\r\n */\r\n private processShippingCost(record: EsolveShippingCostRecord): EsolveShippingCost {\r\n const shipping_cost = new EsolveShippingCost(\r\n +record.shipping_total,\r\n +record.vat_on_shipping,\r\n +record.total_saving_on_shipping,\r\n +record.insurance_total,\r\n +record.vat_on_insurance,\r\n +record.total_saving_on_insurance,\r\n );\r\n\r\n return shipping_cost;\r\n }\r\n}\r\n","import { EsolveResponseResult } from '../shared/response';\r\n\r\nimport { EsolveEnquiryResponse } from './esolve-enquiry-response.interface';\r\n\r\nexport class EsolveEnquiryResult extends EsolveResponseResult {\r\n public id = 0;\r\n\r\n constructor(response: EsolveEnquiryResponse) {\r\n super(response);\r\n\r\n this.id = +response.esolve_id;\r\n }\r\n}\r\n","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\n\r\nimport { Observable } from 'rxjs';\r\nimport { catchError, map } from 'rxjs/operators';\r\n\r\nimport { ESOLVE_CONNECT_CONFIG } from '../esolve-connect-config.constant';\r\nimport { EsolveConnectConfig } from '../esolve-connect.config';\r\nimport { EsolveErrorHandlerService } from '../shared/errors';\r\nimport { EsolveResponseHandlerService, EsolveSetResponse } from '../shared/response';\r\n\r\nimport { EsolveEnquiryResult } from './esolve-enquiry-result.model';\r\nimport { EsolveEnquiryResponse } from './esolve-enquiry-response.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class EsolveEnquiryService {\r\n constructor(\r\n @Inject(ESOLVE_CONNECT_CONFIG) private config: EsolveConnectConfig,\r\n private http: HttpClient,\r\n private errorHandler: EsolveErrorHandlerService,\r\n private responseHandler: EsolveResponseHandlerService,\r\n ) { }\r\n\r\n public send(form_data: FormData): Observable<EsolveEnquiryResult> {\r\n if (!form_data.has('email')) {\r\n return this.errorHandler.emitError('email_required', 'Email is required');\r\n }\r\n\r\n return this.http\r\n .post<EsolveSetResponse<EsolveEnquiryResponse>>(\r\n `${this.config.api_url}/set-enquiry.php`,\r\n form_data,\r\n {\r\n responseType: 'json',\r\n observe: 'body',\r\n },\r\n )\r\n .pipe(\r\n map((http_response) => this.responseHandler.validateSingleHttpResponse(\r\n http_response,\r\n (response) => new EsolveEnquiryResult(response),\r\n )),\r\n catchError((errorRes: HttpErrorResponse | any) => {\r\n return this.errorHandler.handleHttpPostError('set-enquiry', errorRes);\r\n }),\r\n );\r\n }\r\n}\r\n","import { EsolveStockItem } from '../../stock';\r\n\r\nexport class EsolveWishlistItem {\r\n constructor(\r\n public id: number,\r\n public qty: number,\r\n public vat_rate: number,\r\n public price: number,\r\n public price_incl: number,\r\n public vat_total: number,\r\n public total: number,\r\n public total_incl: number,\r\n public stock_item?: EsolveStockItem,\r\n ) { }\r\n}\r\n","import { EsolveResponseResult } from '../../shared/response';\r\n\r\nexport class EsolveEmptyWishlistResult extends EsolveResponseResult { }\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { HttpClient, HttpErrorResponse, HttpParams } from '@angular/common/http';\r\n\r\nimport { Observable } from 'rxjs';\r\nimport { catchError, map } from 'rxjs/operators';\r\n\r\nimport { EsolveConnectConfig } from '../esolve-connect.config';\r\nimport { ESOLVE_CONNECT_CONFIG } from '../esolve-connect-config.constant';\r\nimport {\r\n EsolveSetResponse,\r\n EsolveGetResponse,\r\n EsolveResponseHandlerService,\r\n} from '../shared/response';\r\nimport { EsolveErrorHandlerService } from '../shared/errors';\r\nimport { EsolveStockItem } from '../stock';\r\n\r\nimport { EsolveWishlistSetItem } from './interfaces';\r\nimport { EsolveWishlist, EsolveWishlistSetAction } from './types';\r\nimport { EsolveWishlistItem, EsolveEmptyWishlistResult } from './classes';\r\nimport { EsolveWishlistItemRecord, EsolveWishlistItemResponse } from './interfaces';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class EsolveWishlistService {\r\n constructor(\r\n @Inject(ESOLVE_CONNECT_CONFIG) private config: EsolveConnectConfig,\r\n private http: HttpClient,\r\n private errorHandler: EsolveErrorHandlerService,\r\n private responseHandler: EsolveResponseHandlerService,\r\n ) { }\r\n\r\n /**\r\n * Retrieves the current wishlist\r\n *\r\n * @returns An `Observable` with an array of cart items\r\n */\r\n public getWishlist(): Observable<EsolveWishlist> {\r\n return this.getWishlistRecords().pipe(\r\n map((response) => {\r\n if (response.records === undefined) {\r\n throw response;\r\n }\r\n\r\n return this.processWishlist(response.records);\r\n }),\r\n );\r\n }\r\n\r\n /**\r\n * Updates the wishlist by preforming various actions, such as adding, editing or removing items from the list.\r\n *\r\n * @param items An array of options to update the wishlist\r\n * @param default_action The default action to preform\r\n *\r\n * @returns An `Observable` with an array of responses that gives feedback on the requested changes\r\n */\r\n public setWishlist(\r\n items: EsolveWishlistSetItem[],\r\n default_action: EsolveWishlistSetAction = 'add',\r\n ): Observable<EsolveWishlistItemResponse[]> {\r\n const body = {\r\n items,\r\n default_action,\r\n };\r\n\r\n return this.http\r\n .post<EsolveSetResponse<EsolveWishlistItemResponse>>(\r\n `${this.config.api_url}/set-wishlist-item.php`,\r\n body,\r\n {\r\n headers: {\r\n 'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;',\r\n },\r\n responseType: 'json',\r\n observe: 'body',\r\n },\r\n )\r\n .pipe(\r\n map((response) => {\r\n if (response.responses === undefined) {\r\n throw response;\r\n }\r\n\r\n return response.responses;\r\n }),\r\n );\r\n }\r\n\r\n /**\r\n * Empties the wishlist for the logged in user.\r\n *\r\n * @returns Observable of type EsolveEmptyWishlistResult\r\n */\r\n public setWishlistEmpty(): Observable<EsolveEmptyWishlistResult> {\r\n return this.http\r\n .post<EsolveSetResponse<EsolveWishlistItemResponse>>(\r\n `${this.config.api_url}/set-wishlist-empty.php`,\r\n { empty: true },\r\n {\r\n headers: {\r\n 'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;',\r\n },\r\n responseType: 'json',\r\n observe: 'body',\r\n },\r\n )\r\n .pipe(\r\n map((http_response) => this.responseHandler.validateSingleHttpResponse(\r\n http_response,\r\n (response) => {\r\n return new EsolveEmptyWishlistResult(response);\r\n },\r\n )),\r\n catchError((errorRes: HttpErrorResponse | any) => {\r\n return this.errorHandler.handleHttpPostError('set-wishlist-empty', errorRes);\r\n }),\r\n );\r\n }\r\n\r\n /**\r\n * Processes the eSolve wishlist records\r\n *\r\n * @param wishlist_item_records Records to process\r\n *\r\n * @returns An array of processed cart items\r\n */\r\n private processWishlist(wishlist_item_records: EsolveWishlistItemRecord[]): EsolveWishlist {\r\n const wishlist_items: EsolveWishlist = [];\r\n\r\n if (wishlist_item_records) {\r\n for (const item of wishlist_item_records) {\r\n\r\n const stock_item = new EsolveStockItem(item.stock_item);\r\n\r\n const wishlist_item = new EsolveWishlistItem(\r\n +item.id,\r\n +item.qty,\r\n +item.vat_rate,\r\n +item.price,\r\n +item.price_incl,\r\n +item.vat_total,\r\n +item.line_total,\r\n +item.line_total_incl,\r\n stock_item,\r\n );\r\n\r\n wishlist_items.push(wishlist_item);\r\n }\r\n }\r\n\r\n return wishlist_items;\r\n }\r\n\r\n /**\r\n * Retrieves stock records from HTTP params.\r\n *\r\n * @param params HTTP client parameters\r\n */\r\n private getWishlistRecords(\r\n params?: HttpParams,\r\n ): Observable<EsolveGetResponse<EsolveWishlistItemRecord[]>> {\r\n return this.http.get<EsolveGetResponse<EsolveWishlistItemRecord[]>>(\r\n `${this.config.api_url}/get-wishlist.php`,\r\n { params },\r\n );\r\n }\r\n}\r\n","import { EsolveSupplierRecord } from '../interfaces';\r\n\r\nexport class EsolveSupplier {\r\n public id?: number;\r\n public internal_account?: string;\r\n public external_account?: string;\r\n public company_name: string;\r\n public owner_firstname: string;\r\n public owner_surname: string;\r\n public owner_email: string;\r\n public owner_contact_number: string;\r\n public rep_firstname: string;\r\n public rep_surname: string;\r\n public rep_email: string;\r\n public rep_contact_number: string;\r\n public street: string;\r\n public suburb: string;\r\n public city: string;\r\n public province: string;\r\n public country: string;\r\n public postal_code: string;\r\n public catalogue_ref_1: string;\r\n public catalogue_ref_2: string;\r\n public is_active?: boolean;\r\n public industry_type: string;\r\n\r\n constructor(record?: Partial<EsolveSupplierRecord>) {\r\n this.id = record?.id;\r\n this.internal_account = record?.internal_account;\r\n this.external_account = record?.external_account;\r\n this.company_name = record?.company_name ?? '';\r\n this.owner_firstname = record?.owner_firstname ?? '';\r\n this.owner_surname = record?.owner_surname ?? '';\r\n this.owner_email = record?.owner_email ?? '';\r\n this.owner_contact_number = record?.owner_contact_number ?? '';\r\n this.rep_firstname = record?.rep_firstname ?? '';\r\n this.rep_surname = record?.rep_surname ?? '';\r\n this.rep_email = record?.rep_email ?? '';\r\n this.rep_contact_number = record?.rep_contact_number ?? '';\r\n this.street = record?.street ?? '';\r\n this.suburb = record?.suburb ?? '';\r\n this.city = record?.city ?? '';\r\n this.province = record?.province ?? '';\r\n this.country = record?.country ?? '';\r\n this.postal_code = record?.postal_code ?? '';\r\n this.catalogue_ref_1 = record?.catalogue_ref_1 ?? '';\r\n this.catalogue_ref_2 = record?.catalogue_ref_2 ?? '';\r\n this.is_active = record?.is_active;\r\n this.industry_type = record?.industry_type ?? '';\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { HttpClient, HttpParams } from '@angular/common/http';\r\n\r\nimport { Observable, of } from 'rxjs';\r\nimport { catchError, map } from 'rxjs/operators';\r\n\r\nimport { EsolveConnectConfig } from '../esolve-connect.config';\r\nimport { ESOLVE_CONNECT_CONFIG } from '../esolve-connect-config.constant';\r\nimport { EsolveGetResponse } from '../shared/response';\r\n\r\nimport { EsolveSupplier } from './classes';\r\nimport { EsolveSupplierRecord, EsolveSupplierOptions } from './interfaces';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class EsolveSuppliersService {\r\n\r\n constructor(\r\n @Inject(ESOLVE_CONNECT_CONFIG) private config: EsolveConnectConfig,\r\n private http: HttpClient,\r\n ) { }\r\n\r\n public getSuppliers(options?: EsolveSupplierOptions): Observable<EsolveSupplier[]> {\r\n let params = new HttpParams();\r\n\r\n if (options?.industry_type) {\r\n params = params.set('industry_type', options.industry_type);\r\n }\r\n if (options?.internal_account) {\r\n params = params.set('internal_account', options.internal_account);\r\n }\r\n\r\n return this.getSupplierRecords(params).pipe(\r\n map((records) => {\r\n const suppliers: EsolveSupplier[] = [];\r\n\r\n for (const record of records) {\r\n suppliers.push(this.processSuppliers(record));\r\n }\r\n\r\n return suppliers;\r\n }),\r\n catchError(() => {\r\n return of<EsolveSupplier[]>([]);\r\n }),\r\n );\r\n }\r\n\r\n private getSupplierRecords(params: HttpParams): Observable<EsolveSupplierRecord[]> {\r\n return this.http\r\n .get<EsolveGetResponse<EsolveSupplierRecord[]>>(\r\n `${this.config.api_url}/get-suppliers.php`,\r\n { params },\r\n )\r\n .pipe(\r\n map((response) => {\r\n if (\r\n (response.records === undefined) ||\r\n (response.records.length === 0)\r\n ) {\r\n throw response;\r\n }\r\n\r\n return response.records;;\r\n }),\r\n );\r\n }\r\n\r\n private processSuppliers(record: EsolveSupplierRecord): EsolveSupplier {\r\n return new EsolveSupplier(record);\r\n }\r\n\r\n}\r\n","/*\r\n * Public API Surface of ng-esolve-connect\r\n */\r\n\r\nexport * from './lib/ng-esolve-connect.module';\r\nexport * from './lib/esolve-connect.config';\r\nexport * from './lib/esolve-connect-config.constant';\r\n\r\nexport * from './lib/shared/esolve-list.model';\r\nexport * from './lib/shared/esolve-result.model';\r\nexport * from './lib/shared/esolve-url-target.type';\r\nexport * from './lib/shared/custom-fields';\r\nexport * from './lib/shared/filters';\r\nexport * from './lib/shared/response';\r\nexport * from './lib/shared/errors';\r\nexport * from './lib/shared/cookie/esolve-cookie.service';\r\nexport * from './lib/shared/sort';\r\n\r\n// SEO\r\nexport * from './lib/shared/seo';\r\n\r\n// Geocoder\r\nexport * from './lib/shared/geocoder';\r\n\r\n// Assets\r\nexport * from './lib/shared/assets';\r\n\r\n// Session\r\nexport * from './lib/session';\r\n\r\n// Auth\r\nexport * from './lib/auth';\r\n\r\n// Account\r\nexport * from './lib/account';\r\n\r\n// Banners\r\nexport * from './lib/banners';\r\n\r\n// Menu\r\nexport * from './lib/menu';\r\n\r\n// News\r\nexport * from './lib/news';\r\n\r\n// Topics\r\nexport * from './lib/topics';\r\n\r\n// Tags\r\nexport * from './lib/tags';\r\n\r\n// Stock\r\nexport * from './lib/stock';\r\n\r\n// Category Tree\r\nexport * from './lib/category-tree';\r\n\r\n// Manufacturers\r\nexport * from './lib/manufacturers';\r\n\r\n// Ranges\r\nexport * from './lib/ranges';\r\n\r\n// Specials\r\nexport * from './lib/specials';\r\n\r\n// Cart\r\nexport * from './lib/cart';\r\n\r\n// Payment\r\nexport * from './lib/payment';\r\n\r\n// Shipping\r\nexport * from './lib/shipping';\r\n\r\n// Locations\r\nexport * from './lib/locations';\r\n\r\n// Enquiry\r\nexport * from './lib/enquiry';\r\n\r\n// Wishlist\r\nexport * from './lib/wishlist';\r\n\r\n// Suppliers\r\nexport * from './lib/suppliers';\r\n\r\n// Coupons\r\nexport * from './lib/coupons';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.EsolveCookieService","i1.EsolveSessionService","i1","i2.EsolveSessionService","i3.EsolveErrorHandlerService","i4.EsolveCookieService","i2.EsolveCookieService","i2.EsolveErrorHandlerService","i3.EsolveResponseHandlerService","i4.EsolveCouponsService","i4.EsolveResponseHandlerService"],"mappings":"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"}
1
+ {"version":3,"file":"esolve-ng-esolve-connect.mjs","sources":["../esm2020/lib/esolve-connect-config.constant.mjs","../esm2020/lib/session/esolve-session.model.mjs","../esm2020/lib/shared/cookie/esolve-cookie.service.mjs","../esm2020/lib/session/esolve-session.service.mjs","../esm2020/lib/auth/esolve-auth-interceptor.service.mjs","../esm2020/lib/ng-esolve-connect.module.mjs","../esm2020/lib/shared/esolve-list.model.mjs","../esm2020/lib/shared/esolve-result.model.mjs","../esm2020/lib/shared/filters/classes/esolve-multiple-select-filter.model.mjs","../esm2020/lib/shared/filters/classes/esolve-range-filter.model.mjs","../esm2020/lib/shared/filters/classes/esolve-single-select-filter.model.mjs","../esm2020/lib/shared/filters/classes/index.mjs","../esm2020/lib/shared/filters/interfaces/index.mjs","../esm2020/lib/shared/filters/types/index.mjs","../esm2020/lib/shared/filters/esolve-filter-factory.mjs","../esm2020/lib/shared/response/esolve-response-result.model.mjs","../esm2020/lib/shared/response/esolve-response-handler.service.mjs","../esm2020/lib/shared/errors/esolve-http-error.model.mjs","../esm2020/lib/shared/errors/esolve-error-handler.service.mjs","../esm2020/lib/shared/sort/index.mjs","../esm2020/lib/shared/seo/esolve-seo-info.model.mjs","../esm2020/lib/shared/seo/esolve-seo.service.mjs","../esm2020/lib/shared/geocoder/esolve-geocode-address-result.model.mjs","../esm2020/lib/shared/geocoder/esolve-geocode-coords-result.model.mjs","../esm2020/lib/shared/geocoder/esolve-geocode-result.model.mjs","../esm2020/lib/shared/geocoder/esolve-geocoder.service.mjs","../esm2020/lib/shared/assets/esolve-linked-asset.model.mjs","../esm2020/lib/category-tree/esolve-category-tree-item.model.mjs","../esm2020/lib/category-tree/esolve-category-tree.service.mjs","../esm2020/lib/manufacturers/esolve-manufacturer.model.mjs","../esm2020/lib/manufacturers/esolve-manufacturers.service.mjs","../esm2020/lib/manufacturers/index.mjs","../esm2020/lib/ranges/esolve-range.model.mjs","../esm2020/lib/ranges/esolve-ranges.service.mjs","../esm2020/lib/tags/esolve-tag.model.mjs","../esm2020/lib/tags/esolve-tags.service.mjs","../esm2020/lib/tags/index.mjs","../esm2020/lib/topics/esolve-topic.model.mjs","../esm2020/lib/topics/esolve-topic.service.mjs","../esm2020/lib/shared/assets/esolve-asset.model.mjs","../esm2020/lib/shared/assets/esolve-assets.service.mjs","../esm2020/lib/shared/assets/index.mjs","../esm2020/lib/auth/esolve-auth.service.mjs","../esm2020/lib/account/address/esolve-address.model.mjs","../esm2020/lib/account/address/esolve-address-result.model.mjs","../esm2020/lib/account/user-account/classes/esolve-user-account-business.model.mjs","../esm2020/lib/account/user-account/classes/esolve-user-account-contact.model.mjs","../esm2020/lib/account/user-account/classes/esolve-user-account-result.model.mjs","../esm2020/lib/account/user-account/classes/esolve-statement-ageing.model.mjs","../esm2020/lib/account/user-account/classes/esolve-statement-balances.model.mjs","../esm2020/lib/account/user-account/classes/esolve-statement-transaction.model.mjs","../esm2020/lib/account/user-account/classes/esolve-statement.model.mjs","../esm2020/lib/account/user-account/classes/esolve-user-client-account.model.mjs","../esm2020/lib/account/user-account/classes/esolve-user-account.model.mjs","../esm2020/lib/account/user-account/classes/esolve-user-client-account-balances.model.mjs","../esm2020/lib/account/transaction/esolve-transaction-address.model.mjs","../esm2020/lib/account/transaction/esolve-transaction-client.model.mjs","../esm2020/lib/account/transaction/esolve-transaction-item.model.mjs","../esm2020/lib/account/transaction/esolve-transaction-item-price.model.mjs","../esm2020/lib/locations/classes/esolve-location-address.model.mjs","../esm2020/lib/locations/classes/esolve-location-contact-info.model.mjs","../esm2020/lib/locations/classes/esolve-location-geo.model.mjs","../esm2020/lib/locations/classes/esolve-location-pobox-address.model.mjs","../esm2020/lib/locations/classes/esolve-location-trading-day.model.mjs","../esm2020/lib/locations/classes/esolve-location-trading-times.model.mjs","../esm2020/lib/locations/classes/esolve-location.model.mjs","../esm2020/lib/locations/classes/index.mjs","../esm2020/lib/locations/esolve-locations.service.mjs","../esm2020/lib/account/transaction/esolve-transaction-location.model.mjs","../esm2020/lib/account/transaction/esolve-transaction-payment-method.model.mjs","../esm2020/lib/account/transaction/esolve-transaction-shipping-method.model.mjs","../esm2020/lib/account/transaction/esolve-transaction-user.model.mjs","../esm2020/lib/account/transaction/esolve-transaction.model.mjs","../esm2020/lib/account/transaction/esolve-transaction-list.model.mjs","../esm2020/lib/account/transaction/index.mjs","../esm2020/lib/account/password/esolve-change-password-result.model.mjs","../esm2020/lib/account/password/esolve-reset-password-result.model.mjs","../esm2020/lib/account/registration/esolve-registration-result.model.mjs","../esm2020/lib/account/confirmation/esolve-account-confirmation-result.model.mjs","../esm2020/lib/account/esolve-location-update-result.model.mjs","../esm2020/lib/cart/classes/esolve-empty-cart-result.model.mjs","../esm2020/lib/cart/classes/esolve-checkout-result.model.mjs","../esm2020/lib/cart/classes/esolve-cart-item.model.mjs","../esm2020/lib/cart/classes/esolve-cart-stock-item.model.mjs","../esm2020/lib/cart/classes/esolve-cart-totals.model.mjs","../esm2020/lib/cart/classes/esolve-transaction-analytics-data.model.mjs","../esm2020/lib/coupons/classes/esolve-coupon.model.mjs","../esm2020/lib/coupons/interfaces/esolve-coupon-validation-result.interface.mjs","../esm2020/lib/coupons/esolve-coupons.service.mjs","../esm2020/lib/coupons/index.mjs","../esm2020/lib/cart/esolve-cart.service.mjs","../esm2020/lib/account/esolve-account.service.mjs","../esm2020/lib/banners/esolve-banner.model.mjs","../esm2020/lib/banners/esolve-banner-image.model.mjs","../esm2020/lib/banners/esolve-banner-image-hotspot.model.mjs","../esm2020/lib/banners/esolve-banner.service.mjs","../esm2020/lib/banners/index.mjs","../esm2020/lib/menu/esolve-menu-item.model.mjs","../esm2020/lib/menu/esolve-menu.service.mjs","../esm2020/lib/news/esolve-news-group.model.mjs","../esm2020/lib/news/esolve-news-article-author.model.mjs","../esm2020/lib/news/esolve-news-article.model.mjs","../esm2020/lib/news/esolve-news-article-list.model.mjs","../esm2020/lib/news/esolve-news.service.mjs","../esm2020/lib/stock/types/index.mjs","../esm2020/lib/stock/classes/esolve-colour.model.mjs","../esm2020/lib/stock/classes/esolve-stock-badge.model.mjs","../esm2020/lib/stock/classes/esolve-stock-price.model.mjs","../esm2020/lib/stock/classes/esolve-stock-lead-times.model.mjs","../esm2020/lib/stock/classes/esolve-stock-transaction-history.model.mjs","../esm2020/lib/stock/classes/esolve-stock-item-base.model.mjs","../esm2020/lib/stock/classes/esolve-dependant-item.model.mjs","../esm2020/lib/stock/classes/esolve-stock-group-item.model.mjs","../esm2020/lib/stock/classes/esolve-stock-group.model.mjs","../esm2020/lib/stock/classes/esolve-stock-item.model.mjs","../esm2020/lib/stock/classes/esolve-stock-item-list.model.mjs","../esm2020/lib/stock/classes/esolve-recipe-stock-item.model.mjs","../esm2020/lib/stock/classes/esolve-linked-stock-item.model.mjs","../esm2020/lib/stock/classes/esolve-media-stock-item.model.mjs","../esm2020/lib/stock/classes/esolve-stock-image.model.mjs","../esm2020/lib/stock/classes/esolve-additional-stock-image.model.mjs","../esm2020/lib/stock/classes/esolve-stock-image-collection.model.mjs","../esm2020/lib/stock/classes/index.mjs","../esm2020/lib/stock/interfaces/esolve-stock-image-collection-record.interface.mjs","../esm2020/lib/stock/interfaces/index.mjs","../esm2020/lib/stock/esolve-stock.service.mjs","../esm2020/lib/specials/esolve-special-image.model.mjs","../esm2020/lib/specials/esolve-special-image-collection.model.mjs","../esm2020/lib/specials/esolve-special-dates.model.mjs","../esm2020/lib/specials/esolve-special.model.mjs","../esm2020/lib/specials/esolve-specials.service.mjs","../esm2020/lib/payment/interfaces/index.mjs","../esm2020/lib/payment/classes/esolve-banking-details.model.mjs","../esm2020/lib/payment/classes/esolve-payment-method.model.mjs","../esm2020/lib/payment/classes/esolve-payment-result.model.mjs","../esm2020/lib/payment/classes/esolve-vault-item-result.model.mjs","../esm2020/lib/payment/classes/esolve-vault-item.model.mjs","../esm2020/lib/payment/esolve-payment.service.mjs","../esm2020/lib/shipping/esolve-shipping-method.model.mjs","../esm2020/lib/shipping/esolve-shipping-totals.model.mjs","../esm2020/lib/shipping/esolve-shipping-cost.model.mjs","../esm2020/lib/shipping/esolve-shipping.service.mjs","../esm2020/lib/enquiry/esolve-enquiry-result.model.mjs","../esm2020/lib/enquiry/esolve-enquiry.service.mjs","../esm2020/lib/wishlist/classes/esolve-wishlist-item.model.mjs","../esm2020/lib/wishlist/classes/esolve-empty-wishlist-result.model.mjs","../esm2020/lib/wishlist/esolve-wishlist.service.mjs","../esm2020/lib/suppliers/classes/esolve-supplier.model.mjs","../esm2020/lib/suppliers/esolve-suppliers.service.mjs","../esm2020/index.mjs","../esm2020/esolve-ng-esolve-connect.mjs"],"sourcesContent":["import { InjectionToken } from '@angular/core';\r\nexport const ESOLVE_CONNECT_CONFIG = new InjectionToken('esolve.connect.config');\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWNvbm5lY3QtY29uZmlnLmNvbnN0YW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL2Vzb2x2ZS1jb25uZWN0LWNvbmZpZy5jb25zdGFudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSS9DLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLElBQUksY0FBYyxDQUFzQix1QkFBdUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IEVzb2x2ZUNvbm5lY3RDb25maWcgfSBmcm9tICcuL2Vzb2x2ZS1jb25uZWN0LmNvbmZpZyc7XHJcblxyXG5leHBvcnQgY29uc3QgRVNPTFZFX0NPTk5FQ1RfQ09ORklHID0gbmV3IEluamVjdGlvblRva2VuPEVzb2x2ZUNvbm5lY3RDb25maWc+KCdlc29sdmUuY29ubmVjdC5jb25maWcnKTtcclxuIl19","export class EsolveSession {\r\n constructor(id = -1, location_id = 0, key = '', expiration_date) {\r\n this.id = id;\r\n this.location_id = location_id;\r\n this.key = key;\r\n this.expiration_date = expiration_date;\r\n }\r\n get expired() {\r\n const current_date = new Date();\r\n return ((this.expiration_date === undefined) ||\r\n (current_date >= this.expiration_date));\r\n }\r\n get authenticated() {\r\n return (this.id > 0);\r\n }\r\n get valid() {\r\n return ((this.key !== '') &&\r\n (this.expiration_date !== undefined) &&\r\n (this.id >= 0));\r\n }\r\n updateUser(user_id) {\r\n this.id = user_id;\r\n }\r\n updateLocation(location_id) {\r\n this.location_id = location_id;\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXNlc3Npb24ubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvc2Vzc2lvbi9lc29sdmUtc2Vzc2lvbi5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sYUFBYTtJQUN0QixZQUNXLEtBQWEsQ0FBQyxDQUFDLEVBQ2YsY0FBc0IsQ0FBQyxFQUNkLE1BQWMsRUFBRSxFQUNoQixlQUFzQjtRQUgvQixPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQ2YsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFDZCxRQUFHLEdBQUgsR0FBRyxDQUFhO1FBQ2hCLG9CQUFlLEdBQWYsZUFBZSxDQUFPO0lBQ3RDLENBQUM7SUFFTCxJQUFXLE9BQU87UUFDZCxNQUFNLFlBQVksR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBRWhDLE9BQU8sQ0FDSCxDQUFDLElBQUksQ0FBQyxlQUFlLEtBQUssU0FBUyxDQUFDO1lBQ3BDLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FDekMsQ0FBQztJQUNOLENBQUM7SUFFRCxJQUFXLGFBQWE7UUFDcEIsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVELElBQVcsS0FBSztRQUNaLE9BQU8sQ0FDSCxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssRUFBRSxDQUFDO1lBQ2pCLENBQUMsSUFBSSxDQUFDLGVBQWUsS0FBSyxTQUFTLENBQUM7WUFDcEMsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUNqQixDQUFDO0lBQ04sQ0FBQztJQUVNLFVBQVUsQ0FBQyxPQUFlO1FBQzdCLElBQUksQ0FBQyxFQUFFLEdBQUcsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFTSxjQUFjLENBQUMsV0FBbUI7UUFDckMsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7SUFDbkMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXNvbHZlU2Vzc2lvbkRhdGEgfSBmcm9tICcuL2Vzb2x2ZS1zZXNzaW9uLWRhdGEuaW50ZXJmYWNlJztcclxuXHJcbmV4cG9ydCBjbGFzcyBFc29sdmVTZXNzaW9uIGltcGxlbWVudHMgRXNvbHZlU2Vzc2lvbkRhdGEge1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHVibGljIGlkOiBudW1iZXIgPSAtMSxcclxuICAgICAgICBwdWJsaWMgbG9jYXRpb25faWQ6IG51bWJlciA9IDAsXHJcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IGtleTogc3RyaW5nID0gJycsXHJcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IGV4cGlyYXRpb25fZGF0ZT86IERhdGUsXHJcbiAgICApIHsgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgZXhwaXJlZCgpOiBib29sZWFuIHtcclxuICAgICAgICBjb25zdCBjdXJyZW50X2RhdGUgPSBuZXcgRGF0ZSgpO1xyXG5cclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAodGhpcy5leHBpcmF0aW9uX2RhdGUgPT09IHVuZGVmaW5lZCkgfHxcclxuICAgICAgICAgICAgKGN1cnJlbnRfZGF0ZSA+PSB0aGlzLmV4cGlyYXRpb25fZGF0ZSlcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgYXV0aGVudGljYXRlZCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gKHRoaXMuaWQgPiAwKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IHZhbGlkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICh0aGlzLmtleSAhPT0gJycpICYmXHJcbiAgICAgICAgICAgICh0aGlzLmV4cGlyYXRpb25fZGF0ZSAhPT0gdW5kZWZpbmVkKSAmJlxyXG4gICAgICAgICAgICAodGhpcy5pZCA+PSAwKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHVwZGF0ZVVzZXIodXNlcl9pZDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5pZCA9IHVzZXJfaWQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHVwZGF0ZUxvY2F0aW9uKGxvY2F0aW9uX2lkOiBudW1iZXIpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmxvY2F0aW9uX2lkID0gbG9jYXRpb25faWQ7XHJcbiAgICB9XHJcbn1cclxuIl19","import { isPlatformBrowser } from '@angular/common';\r\nimport { Inject, Injectable, Optional, PLATFORM_ID } from '@angular/core';\r\nimport { CookieService } from 'ngx-cookie-service';\r\nimport * as i0 from \"@angular/core\";\r\nimport * as i1 from \"ngx-cookie-service\";\r\nexport class EsolveCookieService {\r\n constructor(ngxCookies, platformId, request, response) {\r\n this.ngxCookies = ngxCookies;\r\n this.platformId = platformId;\r\n this.request = request;\r\n this.response = response;\r\n this.is_browser = isPlatformBrowser(this.platformId);\r\n }\r\n check(name) {\r\n if (this.is_browser) {\r\n return this.ngxCookies.check(name);\r\n }\r\n const server_cookies = this.request.headers.cookie;\r\n if (!server_cookies) {\r\n return false;\r\n }\r\n name = encodeURIComponent(name);\r\n const regExp = this.getCookieRegExp(name);\r\n return regExp.test(server_cookies);\r\n }\r\n get(name) {\r\n if (this.is_browser) {\r\n return this.ngxCookies.get(name);\r\n }\r\n if (!this.check(name)) {\r\n return '';\r\n }\r\n const server_cookies = this.request.headers.cookie ?? '';\r\n const regExp = this.getCookieRegExp(name);\r\n const result = regExp.exec(server_cookies);\r\n return result && result[1] ? this.safeDecodeURIComponent(result[1]) : '';\r\n }\r\n set(name, value, expires, path, domain, secure) {\r\n if (this.is_browser) {\r\n this.ngxCookies.set(name, value, expires, path, domain, secure);\r\n return;\r\n }\r\n this.response.cookie(name, value, { domain, path, expires, secure });\r\n }\r\n delete(name, path, domain, secure) {\r\n if (this.is_browser) {\r\n this.ngxCookies.delete(name, path, domain, secure);\r\n return;\r\n }\r\n this.response.clearCookie(name, { path, domain, secure });\r\n }\r\n /*\r\n * Following functions come from ngx-cookie-service project since they are primarily the same\r\n */\r\n /**\r\n * Get cookie Regular Expression\r\n *\r\n * @param name Cookie name\r\n * @returns property RegExp\r\n *\r\n * @link https://github.com/stevermeister/ngx-cookie-service/blob/bcb6ac203487c487fcd126896bffaa14981c709c/projects/ngx-cookie-service/src/lib/cookie.service.ts#L31\r\n */\r\n getCookieRegExp(name) {\r\n const escapedName = name.replace(/([\\[\\]\\{\\}\\(\\)\\|\\=\\;\\+\\?\\,\\.\\*\\^\\$])/gi, '\\\\$1');\r\n return new RegExp('(?:^' + escapedName + '|;\\\\s*' + escapedName + ')=(.*?)(?:;|$)', 'g');\r\n }\r\n /**\r\n * Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).\r\n *\r\n * @param encodedURIComponent A value representing an encoded URI component.\r\n *\r\n * @returns The unencoded version of an encoded component of a Uniform Resource Identifier (URI).\r\n *\r\n * @link https://github.com/stevermeister/ngx-cookie-service/blob/bcb6ac203487c487fcd126896bffaa14981c709c/projects/ngx-cookie-service/src/lib/cookie.service.ts#L47\r\n */\r\n safeDecodeURIComponent(encodedURIComponent) {\r\n try {\r\n return decodeURIComponent(encodedURIComponent);\r\n }\r\n catch {\r\n // probably it is not uri encoded. return as is\r\n return encodedURIComponent;\r\n }\r\n }\r\n}\r\nEsolveCookieService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveCookieService, deps: [{ token: i1.CookieService }, { token: PLATFORM_ID }, { token: 'REQUEST', optional: true }, { token: 'RESPONSE', optional: true }], target: i0.ɵɵFactoryTarget.Injectable });\r\nEsolveCookieService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveCookieService, providedIn: 'root' });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveCookieService, decorators: [{\r\n type: Injectable,\r\n args: [{\r\n providedIn: 'root',\r\n }]\r\n }], ctorParameters: function () { return [{ type: i1.CookieService }, { type: Object, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }, { type: undefined, decorators: [{\r\n type: Optional\r\n }, {\r\n type: Inject,\r\n args: ['REQUEST']\r\n }] }, { type: undefined, decorators: [{\r\n type: Optional\r\n }, {\r\n type: Inject,\r\n args: ['RESPONSE']\r\n }] }]; } });\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWNvb2tpZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL3NoYXJlZC9jb29raWUvZXNvbHZlLWNvb2tpZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJMUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7QUFLbkQsTUFBTSxPQUFPLG1CQUFtQjtJQUc1QixZQUNZLFVBQXlCLEVBQ0osVUFBa0IsRUFDUixPQUFnQixFQUNmLFFBQWtCO1FBSGxELGVBQVUsR0FBVixVQUFVLENBQWU7UUFDSixlQUFVLEdBQVYsVUFBVSxDQUFRO1FBQ1IsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUNmLGFBQVEsR0FBUixRQUFRLENBQVU7UUFOdEQsZUFBVSxHQUFZLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQU83RCxDQUFDO0lBRUUsS0FBSyxDQUFDLElBQVk7UUFDckIsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ2pCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDdEM7UUFFRCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFFbkQsSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUNqQixPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUVELElBQUksR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLElB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QUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIE9wdGlvbmFsLCBQTEFURk9STV9JRCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgUmVxdWVzdCwgUmVzcG9uc2UgfSBmcm9tICdleHByZXNzJztcclxuXHJcbmltcG9ydCB7IENvb2tpZVNlcnZpY2UgfSBmcm9tICduZ3gtY29va2llLXNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRXNvbHZlQ29va2llU2VydmljZSB7XHJcbiAgICBwcml2YXRlIGlzX2Jyb3dzZXI6IGJvb2xlYW4gPSBpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgbmd4Q29va2llczogQ29va2llU2VydmljZSxcclxuICAgICAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHBsYXRmb3JtSWQ6IE9iamVjdCxcclxuICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KCdSRVFVRVNUJykgcHJpdmF0ZSByZXF1ZXN0OiBSZXF1ZXN0LFxyXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoJ1JFU1BPTlNFJykgcHJpdmF0ZSByZXNwb25zZTogUmVzcG9uc2UsXHJcbiAgICApIHsgfVxyXG5cclxuICAgIHB1YmxpYyBjaGVjayhuYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAodGhpcy5pc19icm93c2VyKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5neENvb2tpZXMuY2hlY2sobmFtZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBzZXJ2ZXJfY29va2llcyA9IHRoaXMucmVxdWVzdC5oZWFkZXJzLmNvb2tpZTtcclxuXHJcbiAgICAgICAgaWYgKCFzZXJ2ZXJfY29va2llcykge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KG5hbWUpO1xyXG4gICAgICAgIGNvbnN0IHJlZ0V4cCA9IHRoaXMuZ2V0Q29va2llUmVnRXhwKG5hbWUpO1xyXG4gICAgICAgIHJldHVybiByZWdFeHAudGVzdChzZXJ2ZXJfY29va2llcyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldChuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIGlmICh0aGlzLmlzX2Jyb3dzZXIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmd4Q29va2llcy5nZXQobmFtZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIXRoaXMuY2hlY2sobmFtZSkpIHtcclxuICAgICAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3Qgc2VydmVyX2Nvb2tpZXMgPSB0aGlzLnJlcXVlc3QuaGVhZGVycy5jb29raWUgPz8gJyc7XHJcblxyXG4gICAgICAgIGNvbnN0IHJlZ0V4cCA9IHRoaXMuZ2V0Q29va2llUmVnRXhwKG5hbWUpO1xyXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHJlZ0V4cC5leGVjKHNlcnZlcl9jb29raWVzKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdCAmJiByZXN1bHRbMV0gPyB0aGlzLnNhZmVEZWNvZGVVUklDb21wb25lbnQocmVzdWx0WzFdKSA6ICcnO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXQoXHJcbiAgICAgICAgbmFtZTogc3RyaW5nLFxyXG4gICAgICAgIHZhbHVlOiBzdHJpbmcsXHJcbiAgICAgICAgZXhwaXJlcz86IERhdGUsXHJcbiAgICAgICAgcGF0aD86IHN0cmluZyxcclxuICAgICAgICBkb21haW4/OiBzdHJpbmcsXHJcbiAgICAgICAgc2VjdXJlPzogYm9vbGVhbixcclxuICAgICk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmlzX2Jyb3dzZXIpIHtcclxuICAgICAgICAgICAgdGhpcy5uZ3hDb29raWVzLnNldChuYW1lLCB2YWx1ZSwgZXhwaXJlcywgcGF0aCwgZG9tYWluLCBzZWN1cmUpO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5yZXNwb25zZS5jb29raWUobmFtZSwgdmFsdWUsIHsgZG9tYWluLCBwYXRoLCBleHBpcmVzLCBzZWN1cmUgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGRlbGV0ZShcclxuICAgICAgICBuYW1lOiBzdHJpbmcsXHJcbiAgICAgICAgcGF0aD86IHN0cmluZyxcclxuICAgICAgICBkb21haW4/OiBzdHJpbmcsXHJcbiAgICAgICAgc2VjdXJlPzogYm9vbGVhbixcclxuICAgICk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmlzX2Jyb3dzZXIpIHtcclxuICAgICAgICAgICAgdGhpcy5uZ3hDb29raWVzLmRlbGV0ZShuYW1lLCBwYXRoLCBkb21haW4sIHNlY3VyZSk7XHJcblxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnJlc3BvbnNlLmNsZWFyQ29va2llKG5hbWUsIHsgcGF0aCwgZG9tYWluLCBzZWN1cmUgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLypcclxuICAgICAqIEZvbGxvd2luZyBmdW5jdGlvbnMgY29tZSBmcm9tIG5neC1jb29raWUtc2VydmljZSBwcm9qZWN0IHNpbmNlIHRoZXkgYXJlIHByaW1hcmlseSB0aGUgc2FtZVxyXG4gICAgICovXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXQgY29va2llIFJlZ3VsYXIgRXhwcmVzc2lvblxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBuYW1lIENvb2tpZSBuYW1lXHJcbiAgICAgKiBAcmV0dXJucyBwcm9wZXJ0eSBSZWdFeHBcclxuICAgICAqXHJcbiAgICAgKiBAbGluayBodHRwczovL2dpdGh1Yi5jb20vc3RldmVybWVpc3Rlci9uZ3gtY29va2llLXNlcnZpY2UvYmxvYi9iY2I2YWMyMDM0ODdjNDg3ZmNkMTI2ODk2YmZmYWExNDk4MWM3MDljL3Byb2plY3RzL25neC1jb29raWUtc2VydmljZS9zcmMvbGliL2Nvb2tpZS5zZXJ2aWNlLnRzI0wzMVxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGdldENvb2tpZVJlZ0V4cChuYW1lOiBzdHJpbmcpOiBSZWdFeHAge1xyXG4gICAgICAgIGNvbnN0IGVzY2FwZWROYW1lOiBzdHJpbmcgPSBuYW1lLnJlcGxhY2UoLyhbXFxbXFxdXFx7XFx9XFwoXFwpXFx8XFw9XFw7XFwrXFw/XFwsXFwuXFwqXFxeXFwkXSkvZ2ksICdcXFxcJDEnKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIG5ldyBSZWdFeHAoJyg/Ol4nICsgZXNjYXBlZE5hbWUgKyAnfDtcXFxccyonICsgZXNjYXBlZE5hbWUgKyAnKT0oLio/KSg/Ojt8JCknLCAnZycpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyB0aGUgdW5lbmNvZGVkIHZlcnNpb24gb2YgYW4gZW5jb2RlZCBjb21wb25lbnQgb2YgYSBVbmlmb3JtIFJlc291cmNlIElkZW50aWZpZXIgKFVSSSkuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGVuY29kZWRVUklDb21wb25lbnQgQSB2YWx1ZSByZXByZXNlbnRpbmcgYW4gZW5jb2RlZCBVUkkgY29tcG9uZW50LlxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIFRoZSB1bmVuY29kZWQgdmVyc2lvbiBvZiBhbiBlbmNvZGVkIGNvbXBvbmVudCBvZiBhIFVuaWZvcm0gUmVzb3VyY2UgSWRlbnRpZmllciAoVVJJKS5cclxuICAgICAqXHJcbiAgICAgKiBAbGluayBodHRwczovL2dpdGh1Yi5jb20vc3RldmVybWVpc3Rlci9uZ3gtY29va2llLXNlcnZpY2UvYmxvYi9iY2I2YWMyMDM0ODdjNDg3ZmNkMTI2ODk2YmZmYWExNDk4MWM3MDljL3Byb2plY3RzL25neC1jb29raWUtc2VydmljZS9zcmMvbGliL2Nvb2tpZS5zZXJ2aWNlLnRzI0w0N1xyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHNhZmVEZWNvZGVVUklDb21wb25lbnQoZW5jb2RlZFVSSUNvbXBvbmVudDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICByZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KGVuY29kZWRVUklDb21wb25lbnQpO1xyXG4gICAgICAgIH0gY2F0Y2gge1xyXG4gICAgICAgICAgICAvLyBwcm9iYWJseSBpdCBpcyBub3QgdXJpIGVuY29kZWQuIHJldHVybiBhcyBpc1xyXG4gICAgICAgICAgICByZXR1cm4gZW5jb2RlZFVSSUNvbXBvbmVudDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19","import { Inject, Injectable, PLATFORM_ID } from '@angular/core';\r\nimport { isPlatformBrowser } from '@angular/common';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { EsolveCookieService } from '../shared/cookie/esolve-cookie.service';\r\nimport { ESOLVE_CONNECT_CONFIG } from '../esolve-connect-config.constant';\r\nimport { EsolveSession } from './esolve-session.model';\r\nimport * as i0 from \"@angular/core\";\r\nimport * as i1 from \"../shared/cookie/esolve-cookie.service\";\r\nexport class EsolveSessionService {\r\n constructor(platformId, config, cookieService) {\r\n this.platformId = platformId;\r\n this.config = config;\r\n this.cookieService = cookieService;\r\n this.storage_key = 'ngEslvUserSession';\r\n this.setStorageKey();\r\n this._session = new BehaviorSubject(new EsolveSession());\r\n this.session = this._session.asObservable();\r\n this.is_browser = isPlatformBrowser(this.platformId);\r\n }\r\n get currentSession() {\r\n return this._session.value;\r\n }\r\n clearTimer() {\r\n if (this.key_expiration_timer) {\r\n clearTimeout(this.key_expiration_timer);\r\n }\r\n }\r\n restore(expirationCallback, invalidSessionCallback) {\r\n if (this.currentSession.valid) {\r\n return;\r\n }\r\n let json_data = this.cookieService.get(this.storage_key);\r\n if (json_data === '' && localStorage) {\r\n let local_store_data = localStorage.getItem(this.storage_key);\r\n if (local_store_data) {\r\n json_data = local_store_data;\r\n }\r\n }\r\n const stored_session = (json_data ? JSON.parse(json_data) : null);\r\n if (!stored_session) {\r\n invalidSessionCallback();\r\n return;\r\n }\r\n const expiration_date = new Date(stored_session.expiration_date);\r\n const loaded_session = new EsolveSession(stored_session.id, stored_session.location_id, stored_session.key, expiration_date);\r\n if (!loaded_session.expired) {\r\n this._session.next(loaded_session);\r\n const expiration_duration = expiration_date.getTime() - new Date().getTime();\r\n this.startTimer(expirationCallback, expiration_duration);\r\n }\r\n else {\r\n expirationCallback(loaded_session);\r\n }\r\n }\r\n handleSession(user_id, location_id, key, expiry_time, expires, expirationCallback) {\r\n const expiration_date = new Date(expiry_time * 1000);\r\n const session = new EsolveSession(user_id, location_id, key, expiration_date);\r\n const json_data = JSON.stringify(session);\r\n this.cookieService.set(this.storage_key, json_data, expiration_date, '/');\r\n if (localStorage) {\r\n localStorage.setItem(this.storage_key, json_data);\r\n }\r\n this._session.next(session);\r\n this.startTimer(expirationCallback, expires * 1000);\r\n }\r\n handleUpdateSession({ user_id, location_id, }, callback) {\r\n const current_session = this.currentSession;\r\n if (typeof user_id !== 'undefined') {\r\n current_session.updateUser(user_id);\r\n }\r\n if (typeof location_id !== 'undefined') {\r\n current_session.updateLocation(location_id);\r\n }\r\n const json_data = JSON.stringify(current_session);\r\n this.cookieService.set(this.storage_key, json_data, current_session.expiration_date, '/');\r\n if (localStorage) {\r\n localStorage.setItem(this.storage_key, json_data);\r\n }\r\n this._session.next(current_session);\r\n if (typeof callback === 'function') {\r\n callback();\r\n }\r\n }\r\n setStorageKey() {\r\n if ((typeof this.config.user_session_storage_key === 'string') &&\r\n (this.config.user_session_storage_key !== '')) {\r\n this.storage_key = this.config.user_session_storage_key;\r\n }\r\n }\r\n startTimer(callback, duration) {\r\n if (this.is_browser) {\r\n this.key_expiration_timer = setTimeout(callback, duration);\r\n }\r\n }\r\n}\r\nEsolveSessionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveSessionService, deps: [{ token: PLATFORM_ID }, { token: ESOLVE_CONNECT_CONFIG }, { token: i1.EsolveCookieService }], target: i0.ɵɵFactoryTarget.Injectable });\r\nEsolveSessionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveSessionService, providedIn: 'root' });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveSessionService, decorators: [{\r\n type: Injectable,\r\n args: [{\r\n providedIn: 'root',\r\n }]\r\n }], ctorParameters: function () { return [{ type: Object, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [ESOLVE_CONNECT_CONFIG]\r\n }] }, { type: i1.EsolveCookieService }]; } });\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXNlc3Npb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9zZXNzaW9uL2Vzb2x2ZS1zZXNzaW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXBELE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFFbkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFN0UsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFMUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7QUFZdkQsTUFBTSxPQUFPLG9CQUFvQjtJQVk3QixZQUNpQyxVQUFrQixFQUNSLE1BQTJCLEVBQzFELGFBQWtDO1FBRmIsZUFBVSxHQUFWLFVBQVUsQ0FBUTtRQUNSLFdBQU0sR0FBTixNQUFNLENBQXFCO1FBQzFELGtCQUFhLEdBQWIsYUFBYSxDQUFxQjtRQVZ0QyxnQkFBVyxHQUFHLG1CQUFtQixDQUFDO1FBWXRDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksZUFBZSxDQUFnQixJQUFJLGFBQWEsRUFBRSxDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzVDLElBQUksQ0FBQyxVQUFVLEdBQUcsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFiRCxJQUFXLGNBQWM7UUFDckIsT0FBTyxJQUFJ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cUhBZHhCLG9CQUFvQixjQUZqQixNQUFNOzJGQUVULG9CQUFvQjtrQkFIaEMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7OzBCQWNRLE1BQU07MkJBQUMsV0FBVzs7MEJBQ2xCLE1BQU07MkJBQUMscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBQTEFURk9STV9JRCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IEVzb2x2ZUNvb2tpZVNlcnZpY2UgfSBmcm9tICcuLi9zaGFyZWQvY29va2llL2Vzb2x2ZS1jb29raWUuc2VydmljZSc7XHJcbmltcG9ydCB7IEVzb2x2ZUNvbm5lY3RDb25maWcgfSBmcm9tICcuLi9lc29sdmUtY29ubmVjdC5jb25maWcnO1xyXG5pbXBvcnQgeyBFU09MVkVfQ09OTkVDVF9DT05GSUcgfSBmcm9tICcuLi9lc29sdmUtY29ubmVjdC1jb25maWcuY29uc3RhbnQnO1xyXG5pbXBvcnQgeyBFc29sdmVTdG9yZWRTZXNzaW9uIH0gZnJvbSAnLi9lc29sdmUtc3RvcmVkLXNlc3Npb24uaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgRXNvbHZlU2Vzc2lvbiB9IGZyb20gJy4vZXNvbHZlLXNlc3Npb24ubW9kZWwnO1xyXG5cclxuLy8gVE9ETzogUmV3cml0ZSBzZXNzaW9uIG1hbmFnZXIgdG8gdXNlIGEgcHVyZSByeGpzIHNvbHV0aW9uLlxyXG5cclxuaW50ZXJmYWNlIFNlc3Npb25VcGRhdGVPcHRpb25zIHtcclxuICAgIHVzZXJfaWQ/OiBudW1iZXI7XHJcbiAgICBsb2NhdGlvbl9pZD86IG51bWJlcjtcclxufVxyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRXNvbHZlU2Vzc2lvblNlcnZpY2Uge1xyXG4gICAgcHVibGljIHNlc3Npb246IE9ic2VydmFibGU8RXNvbHZlU2Vzc2lvbj47XHJcblxyXG4gICAgcHJpdmF0ZSBfc2Vzc2lvbjogQmVoYXZpb3JTdWJqZWN0PEVzb2x2ZVNlc3Npb24+O1xyXG4gICAgcHJpdmF0ZSBrZXlfZXhwaXJhdGlvbl90aW1lcjogYW55O1xyXG4gICAgcHJpdmF0ZSBzdG9yYWdlX2tleSA9ICduZ0VzbHZVc2VyU2Vzc2lvbic7XHJcbiAgICBwcml2YXRlIGlzX2Jyb3dzZXI6IGJvb2xlYW47XHJcblxyXG4gICAgcHVibGljIGdldCBjdXJyZW50U2Vzc2lvbigpOiBFc29sdmVTZXNzaW9uIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fc2Vzc2lvbi52YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHBsYXRmb3JtSWQ6IE9iamVjdCxcclxuICAgICAgICBASW5qZWN0KEVTT0xWRV9DT05ORUNUX0NPTkZJRykgcHJpdmF0ZSBjb25maWc6IEVzb2x2ZUNvbm5lY3RDb25maWcsXHJcbiAgICAgICAgcHJpdmF0ZSBjb29raWVTZXJ2aWNlOiBFc29sdmVDb29raWVTZXJ2aWNlLFxyXG4gICAgKSB7XHJcbiAgICAgICAgdGhpcy5zZXRTdG9yYWdlS2V5KCk7XHJcbiAgICAgICAgdGhpcy5fc2Vzc2lvbiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RXNvbHZlU2Vzc2lvbj4obmV3IEVzb2x2ZVNlc3Npb24oKSk7XHJcbiAgICAgICAgdGhpcy5zZXNzaW9uID0gdGhpcy5fc2Vzc2lvbi5hc09ic2VydmFibGUoKTtcclxuICAgICAgICB0aGlzLmlzX2Jyb3dzZXIgPSBpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBjbGVhclRpbWVyKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmtleV9leHBpcmF0aW9uX3RpbWVyKSB7XHJcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLmtleV9leHBpcmF0aW9uX3RpbWVyKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHJlc3RvcmUoXHJcbiAgICAgICAgZXhwaXJhdGlvbkNhbGxiYWNrOiAoc2Vzc2lvbj86IEVzb2x2ZVNlc3Npb24pID0+IHZvaWQsXHJcbiAgICAgICAgaW52YWxpZFNlc3Npb25DYWxsYmFjazogKCkgPT4gdm9pZCxcclxuICAgICk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnRTZXNzaW9uLnZhbGlkKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBqc29uX2RhdGEgPSB0aGlzLmNvb2tpZVNlcnZpY2UuZ2V0KHRoaXMuc3RvcmFnZV9rZXkpO1xyXG5cclxuICAgICAgICBpZiAoanNvbl9kYXRhID09PSAnJyAmJiBsb2NhbFN0b3JhZ2UpIHtcclxuICAgICAgICAgICAgbGV0IGxvY2FsX3N0b3JlX2RhdGEgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0b3JhZ2Vfa2V5KTtcclxuXHJcbiAgICAgICAgICAgIGlmIChsb2NhbF9zdG9yZV9kYXRhKSB7XHJcbiAgICAgICAgICAgICAgICBqc29uX2RhdGEgPSBsb2NhbF9zdG9yZV9kYXRhO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBzdG9yZWRfc2Vzc2lvbjogRXNvbHZlU3RvcmVkU2Vzc2lvbiB8IG51bGwgPSAoanNvbl9kYXRhID8gSlNPTi5wYXJzZShqc29uX2RhdGEpIDogbnVsbCk7XHJcblxyXG4gICAgICAgIGlmICghc3RvcmVkX3Nlc3Npb24pIHtcclxuICAgICAgICAgICAgaW52YWxpZFNlc3Npb25DYWxsYmFjaygpO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgZXhwaXJhdGlvbl9kYXRlID0gbmV3IERhdGUoc3RvcmVkX3Nlc3Npb24uZXhwaXJhdGlvbl9kYXRlKTtcclxuXHJcbiAgICAgICAgY29uc3QgbG9hZGVkX3Nlc3Npb24gPSBuZXcgRXNvbHZlU2Vzc2lvbihcclxuICAgICAgICAgICAgc3RvcmVkX3Nlc3Npb24uaWQsXHJcbiAgICAgICAgICAgIHN0b3JlZF9zZXNzaW9uLmxvY2F0aW9uX2lkLFxyXG4gICAgICAgICAgICBzdG9yZWRfc2Vzc2lvbi5rZXksXHJcbiAgICAgICAgICAgIGV4cGlyYXRpb25fZGF0ZSxcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICBpZiAoIWxvYWRlZF9zZXNzaW9uLmV4cGlyZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5fc2Vzc2lvbi5uZXh0KGxvYWRlZF9zZXNzaW9uKTtcclxuICAgICAgICAgICAgY29uc3QgZXhwaXJhdGlvbl9kdXJhdGlvbiA9IGV4cGlyYXRpb25fZGF0ZS5nZXRUaW1lKCkgLSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcclxuICAgICAgICAgICAgdGhpcy5zdGFydFRpbWVyKGV4cGlyYXRpb25DYWxsYmFjaywgZXhwaXJhdGlvbl9kdXJhdGlvbik7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZXhwaXJhdGlvbkNhbGxiYWNrKGxvYWRlZF9zZXNzaW9uKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGhhbmRsZVNlc3Npb24oXHJcbiAgICAgICAgdXNlcl9pZDogbnVtYmVyLFxyXG4gICAgICAgIGxvY2F0aW9uX2lkOiBudW1iZXIsXHJcbiAgICAgICAga2V5OiBzdHJpbmcsXHJcbiAgICAgICAgZXhwaXJ5X3RpbWU6IG51bWJlcixcclxuICAgICAgICBleHBpcmVzOiBudW1iZXIsXHJcbiAgICAgICAgZXhwaXJhdGlvbkNhbGxiYWNrOiAoKSA9PiB2b2lkLFxyXG4gICAgKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgZXhwaXJhdGlvbl9kYXRlID0gbmV3IERhdGUoZXhwaXJ5X3RpbWUgKiAxMDAwKTtcclxuICAgICAgICBjb25zdCBzZXNzaW9uID0gbmV3IEVzb2x2ZVNlc3Npb24oXHJcbiAgICAgICAgICAgIHVzZXJfaWQsXHJcbiAgICAgICAgICAgIGxvY2F0aW9uX2lkLFxyXG4gICAgICAgICAgICBrZXksXHJcbiAgICAgICAgICAgIGV4cGlyYXRpb25fZGF0ZSxcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICBjb25zdCBqc29uX2RhdGEgPSBKU09OLnN0cmluZ2lmeShzZXNzaW9uKTtcclxuXHJcbiAgICAgICAgdGhpcy5jb29raWVTZXJ2aWNlLnNldChcclxuICAgICAgICAgICAgdGhpcy5zdG9yYWdlX2tleSxcclxuICAgICAgICAgICAganNvbl9kYXRhLFxyXG4gICAgICAgICAgICBleHBpcmF0aW9uX2RhdGUsXHJcbiAgICAgICAgICAgICcvJyxcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICBpZiAobG9jYWxTdG9yYWdlKSB7XHJcbiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RvcmFnZV9rZXksIGpzb25fZGF0YSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLl9zZXNzaW9uLm5leHQoc2Vzc2lvbik7XHJcbiAgICAgICAgdGhpcy5zdGFydFRpbWVyKGV4cGlyYXRpb25DYWxsYmFjaywgZXhwaXJlcyAqIDEwMDApO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBoYW5kbGVVcGRhdGVTZXNzaW9uKFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdXNlcl9pZCxcclxuICAgICAgICAgICAgbG9jYXRpb25faWQsXHJcbiAgICAgICAgfTogU2Vzc2lvblVwZGF0ZU9wdGlvbnMsXHJcbiAgICAgICAgY2FsbGJhY2s/OiAoKSA9PiB2b2lkLFxyXG4gICAgKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgY3VycmVudF9zZXNzaW9uID0gdGhpcy5jdXJyZW50U2Vzc2lvbjtcclxuXHJcbiAgICAgICAgaWYgKHR5cGVvZiB1c2VyX2lkICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICAgICAgICBjdXJyZW50X3Nlc3Npb24udXBkYXRlVXNlcih1c2VyX2lkKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgbG9jYXRpb25faWQgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgICAgIGN1cnJlbnRfc2Vzc2lvbi51cGRhdGVMb2NhdGlvbihsb2NhdGlvbl9pZCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBqc29uX2RhdGEgPSBKU09OLnN0cmluZ2lmeShjdXJyZW50X3Nlc3Npb24pO1xyXG5cclxuICAgICAgICB0aGlzLmNvb2tpZVNlcnZpY2Uuc2V0KFxyXG4gICAgICAgICAgICB0aGlzLnN0b3JhZ2Vfa2V5LFxyXG4gICAgICAgICAgICBqc29uX2RhdGEsXHJcbiAgICAgICAgICAgIGN1cnJlbnRfc2Vzc2lvbi5leHBpcmF0aW9uX2RhdGUsXHJcbiAgICAgICAgICAgICcvJyxcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICBpZiAobG9jYWxTdG9yYWdlKSB7XHJcbiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RvcmFnZV9rZXksIGpzb25fZGF0YSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLl9zZXNzaW9uLm5leHQoY3VycmVudF9zZXNzaW9uKTtcclxuXHJcbiAgICAgICAgaWYgKHR5cGVvZiBjYWxsYmFjayA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgICAgICBjYWxsYmFjaygpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHNldFN0b3JhZ2VLZXkoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAodHlwZW9mIHRoaXMuY29uZmlnLnVzZXJfc2Vzc2lvbl9zdG9yYWdlX2tleSA9PT0gJ3N0cmluZycpICYmXHJcbiAgICAgICAgICAgICh0aGlzLmNvbmZpZy51c2VyX3Nlc3Npb25fc3RvcmFnZV9rZXkgIT09ICcnKVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgICB0aGlzLnN0b3JhZ2Vfa2V5ID0gdGhpcy5jb25maWcudXNlcl9zZXNzaW9uX3N0b3JhZ2Vfa2V5O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHN0YXJ0VGltZXIoY2FsbGJhY2s6ICgpID0+IHZvaWQsIGR1cmF0aW9uOiBudW1iZXIpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5pc19icm93c2VyKSB7XHJcbiAgICAgICAgICAgIHRoaXMua2V5X2V4cGlyYXRpb25fdGltZXIgPSBzZXRUaW1lb3V0KGNhbGxiYWNrLCBkdXJhdGlvbik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==","import { Inject, Injectable } from '@angular/core';\r\nimport { ESOLVE_CONNECT_CONFIG } from '../esolve-connect-config.constant';\r\nimport { EsolveSessionService } from '../session/esolve-session.service';\r\nimport * as i0 from \"@angular/core\";\r\nimport * as i1 from \"../session/esolve-session.service\";\r\nexport class EsolveAuthInterceptorService {\r\n constructor(config, session) {\r\n this.config = config;\r\n this.session = session;\r\n }\r\n intercept(req, next) {\r\n if (req.url.startsWith(`${this.config.api_url}/`)) {\r\n const service_identifier = req.url.replace(`${this.config.api_url}/`, '');\r\n const modified_url = req.url;\r\n let params = req.params;\r\n let headers = req.headers;\r\n const session = this.session.currentSession;\r\n if (session.valid) {\r\n if (service_identifier !== 'get-access-token.php') {\r\n params = params.set('key', session.key);\r\n }\r\n }\r\n params = params.set('ws_id', this.config.wsid);\r\n if (this.config.native && this.config.device_designation) {\r\n headers = headers.set('X-Device-Designation', this.config.device_designation);\r\n }\r\n const modified_req = req.clone({\r\n url: modified_url,\r\n params,\r\n headers,\r\n });\r\n return next.handle(modified_req);\r\n }\r\n return next.handle(req);\r\n }\r\n}\r\nEsolveAuthInterceptorService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveAuthInterceptorService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1.EsolveSessionService }], target: i0.ɵɵFactoryTarget.Injectable });\r\nEsolveAuthInterceptorService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveAuthInterceptorService });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveAuthInterceptorService, decorators: [{\r\n type: Injectable\r\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\r\n type: Inject,\r\n args: [ESOLVE_CONNECT_CONFIG]\r\n }] }, { type: i1.EsolveSessionService }]; } });\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWF1dGgtaW50ZXJjZXB0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9hdXRoL2Vzb2x2ZS1hdXRoLWludGVyY2VwdG9yLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFXbkQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDMUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7OztBQUd6RSxNQUFNLE9BQU8sNEJBQTRCO0lBQ3JDLFlBQzJDLE1BQTJCLEVBQzFELE9BQTZCO1FBREUsV0FBTSxHQUFOLE1BQU0sQ0FBcUI7UUFDMUQsWUFBTyxHQUFQLE9BQU8sQ0FBc0I7SUFDckMsQ0FBQztJQUVFLFNBQVMsQ0FBQyxHQUFxQixFQUFFLElBQWlCO1FBQ3JELElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxDQUFDLEVBQUU7WUFDL0MsTUFBTSxrQkFBa0IsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFFMUUsTUFBTSxZQUFZLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQztZQUM3QixJQUFJLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDO1lBQ3hCLElBQUksT0FBTyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUM7WUFFMUIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUM7WUFFNUMsSUFBSSxPQUFPLENBQUMsS0FBSyxFQUFFO2dCQUNmLElBQUksa0JBQWtCLEtBQUssc0JBQXNCLEVBQUU7b0JBQy9DLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7aUJBQzNDO2FBQ0o7WUFFRCxNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUUvQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsa0JBQWtCLEVBQUU7Z0JBQ3RELE9BQU8sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLHNCQUFzQixFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQzthQUNqRjtZQUVELE1BQU0sWUFBWSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUM7Z0JBQzNCLEdBQUcsRUFBRSxZQUFZO2dCQUNqQixNQUFNO2dCQUNOLE9BQU87YUFDVixDQUFDLENBQUM7WUFFSCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDcEM7UUFFRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDNUIsQ0FBQzs7eUhBdENRLDRCQUE0QixrQkFFekIscUJBQXFCOzZIQUZ4Qiw0QkFBNEI7MkZBQTVCLDRCQUE0QjtrQkFEeEMsVUFBVTs7MEJBR0YsTUFBTTsyQkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICAgIEh0dHBJbnRlcmNlcHRvcixcclxuICAgIEh0dHBSZXF1ZXN0LFxyXG4gICAgSHR0cEhhbmRsZXIsXHJcbiAgICBIdHRwRXZlbnQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5cclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgRXNvbHZlQ29ubmVjdENvbmZpZyB9IGZyb20gJy4uL2Vzb2x2ZS1jb25uZWN0LmNvbmZpZyc7XHJcbmltcG9ydCB7IEVTT0xWRV9DT05ORUNUX0NPTkZJRyB9IGZyb20gJy4uL2Vzb2x2ZS1jb25uZWN0LWNvbmZpZy5jb25zdGFudCc7XHJcbmltcG9ydCB7IEVzb2x2ZVNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi4vc2Vzc2lvbi9lc29sdmUtc2Vzc2lvbi5zZXJ2aWNlJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEVzb2x2ZUF1dGhJbnRlcmNlcHRvclNlcnZpY2UgaW1wbGVtZW50cyBIdHRwSW50ZXJjZXB0b3Ige1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgQEluamVjdChFU09MVkVfQ09OTkVDVF9DT05GSUcpIHByaXZhdGUgY29uZmlnOiBFc29sdmVDb25uZWN0Q29uZmlnLFxyXG4gICAgICAgIHByaXZhdGUgc2Vzc2lvbjogRXNvbHZlU2Vzc2lvblNlcnZpY2UsXHJcbiAgICApIHsgfVxyXG5cclxuICAgIHB1YmxpYyBpbnRlcmNlcHQocmVxOiBIdHRwUmVxdWVzdDxhbnk+LCBuZXh0OiBIdHRwSGFuZGxlcik6IE9ic2VydmFibGU8SHR0cEV2ZW50PGFueT4+IHtcclxuICAgICAgICBpZiAocmVxLnVybC5zdGFydHNXaXRoKGAke3RoaXMuY29uZmlnLmFwaV91cmx9L2ApKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHNlcnZpY2VfaWRlbnRpZmllciA9IHJlcS51cmwucmVwbGFjZShgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9gLCAnJyk7XHJcblxyXG4gICAgICAgICAgICBjb25zdCBtb2RpZmllZF91cmwgPSByZXEudXJsO1xyXG4gICAgICAgICAgICBsZXQgcGFyYW1zID0gcmVxLnBhcmFtcztcclxuICAgICAgICAgICAgbGV0IGhlYWRlcnMgPSByZXEuaGVhZGVycztcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IHNlc3Npb24gPSB0aGlzLnNlc3Npb24uY3VycmVudFNlc3Npb247XHJcblxyXG4gICAgICAgICAgICBpZiAoc2Vzc2lvbi52YWxpZCkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHNlcnZpY2VfaWRlbnRpZmllciAhPT0gJ2dldC1hY2Nlc3MtdG9rZW4ucGhwJykge1xyXG4gICAgICAgICAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ2tleScsIHNlc3Npb24ua2V5KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnd3NfaWQnLCB0aGlzLmNvbmZpZy53c2lkKTtcclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLmNvbmZpZy5uYXRpdmUgJiYgdGhpcy5jb25maWcuZGV2aWNlX2Rlc2lnbmF0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ1gtRGV2aWNlLURlc2lnbmF0aW9uJywgdGhpcy5jb25maWcuZGV2aWNlX2Rlc2lnbmF0aW9uKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgY29uc3QgbW9kaWZpZWRfcmVxID0gcmVxLmNsb25lKHtcclxuICAgICAgICAgICAgICAgIHVybDogbW9kaWZpZWRfdXJsLFxyXG4gICAgICAgICAgICAgICAgcGFyYW1zLFxyXG4gICAgICAgICAgICAgICAgaGVhZGVycyxcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gbmV4dC5oYW5kbGUobW9kaWZpZWRfcmVxKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXEpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { CookieService } from 'ngx-cookie-service';\r\nimport { ESOLVE_CONNECT_CONFIG } from './esolve-connect-config.constant';\r\nimport { EsolveAuthInterceptorService } from './auth/esolve-auth-interceptor.service';\r\nimport * as i0 from \"@angular/core\";\r\nexport class NgEsolveConnectModule {\r\n static forRoot(config) {\r\n return {\r\n ngModule: NgEsolveConnectModule,\r\n providers: [\r\n {\r\n provide: ESOLVE_CONNECT_CONFIG,\r\n useValue: config,\r\n },\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: EsolveAuthInterceptorService,\r\n multi: true,\r\n },\r\n ],\r\n };\r\n }\r\n}\r\nNgEsolveConnectModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: NgEsolveConnectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\r\nNgEsolveConnectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"15.0.3\", ngImport: i0, type: NgEsolveConnectModule, imports: [CommonModule,\r\n HttpClientModule] });\r\nNgEsolveConnectModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: NgEsolveConnectModule, providers: [CookieService], imports: [CommonModule,\r\n HttpClientModule] });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: NgEsolveConnectModule, decorators: [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [],\r\n imports: [\r\n CommonModule,\r\n HttpClientModule,\r\n ],\r\n providers: [CookieService],\r\n exports: [],\r\n }]\r\n }] });\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctZXNvbHZlLWNvbm5lY3QubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL25nLWVzb2x2ZS1jb25uZWN0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFM0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBR25ELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRXpFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOztBQVd0RixNQUFNLE9BQU8scUJBQXFCO0lBQ3ZCLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBMkI7UUFDN0MsT0FBTztZQUNILFFBQVEsRUFBRSxxQkFBcUI7WUFDL0IsU0FBUyxFQUFFO2dCQUNQO29CQUNJLE9BQU8sRUFBRSxxQkFBcUI7b0JBQzlCLFFBQVEsRUFBRSxNQUFNO2lCQUNuQjtnQkFDRDtvQkFDSSxPQUFPLEVBQUUsaUJBQWlCO29CQUMxQixRQUFRLEVBQUUsNEJBQTRCO29CQUN0QyxLQUFLLEVBQUUsSUFBSTtpQkFDZDthQUNKO1NBQ0osQ0FBQztJQUNOLENBQUM7O2tIQWhCUSxxQkFBcUI7bUhBQXJCLHFCQUFxQixZQU4xQixZQUFZO1FBQ1osZ0JBQWdCO21IQUtYLHFCQUFxQixhQUhuQixDQUFDLGFBQWEsQ0FBQyxZQUh0QixZQUFZO1FBQ1osZ0JBQWdCOzJGQUtYLHFCQUFxQjtrQkFUakMsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUUsRUFBRTtvQkFDaEIsT0FBTyxFQUFFO3dCQUNMLFlBQVk7d0JBQ1osZ0JBQWdCO3FCQUNuQjtvQkFDRCxTQUFTLEVBQUUsQ0FBQyxhQUFhLENBQUM7b0JBQzFCLE9BQU8sRUFBRSxFQUFFO2lCQUNkIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSHR0cENsaWVudE1vZHVsZSwgSFRUUF9JTlRFUkNFUFRPUlMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcblxyXG5pbXBvcnQgeyBDb29raWVTZXJ2aWNlIH0gZnJvbSAnbmd4LWNvb2tpZS1zZXJ2aWNlJztcclxuXHJcbmltcG9ydCB7IEVzb2x2ZUNvbm5lY3RDb25maWcgfSBmcm9tICcuL2Vzb2x2ZS1jb25uZWN0LmNvbmZpZyc7XHJcbmltcG9ydCB7IEVTT0xWRV9DT05ORUNUX0NPTkZJRyB9IGZyb20gJy4vZXNvbHZlLWNvbm5lY3QtY29uZmlnLmNvbnN0YW50JztcclxuXHJcbmltcG9ydCB7IEVzb2x2ZUF1dGhJbnRlcmNlcHRvclNlcnZpY2UgfSBmcm9tICcuL2F1dGgvZXNvbHZlLWF1dGgtaW50ZXJjZXB0b3Iuc2VydmljZSc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gICAgZGVjbGFyYXRpb25zOiBbXSxcclxuICAgIGltcG9ydHM6IFtcclxuICAgICAgICBDb21tb25Nb2R1bGUsXHJcbiAgICAgICAgSHR0cENsaWVudE1vZHVsZSxcclxuICAgIF0sXHJcbiAgICBwcm92aWRlcnM6IFtDb29raWVTZXJ2aWNlXSxcclxuICAgIGV4cG9ydHM6IFtdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmdFc29sdmVDb25uZWN0TW9kdWxlIHtcclxuICAgIHB1YmxpYyBzdGF0aWMgZm9yUm9vdChjb25maWc6IEVzb2x2ZUNvbm5lY3RDb25maWcpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPE5nRXNvbHZlQ29ubmVjdE1vZHVsZT4ge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIG5nTW9kdWxlOiBOZ0Vzb2x2ZUNvbm5lY3RNb2R1bGUsXHJcbiAgICAgICAgICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IEVTT0xWRV9DT05ORUNUX0NPTkZJRyxcclxuICAgICAgICAgICAgICAgICAgICB1c2VWYWx1ZTogY29uZmlnLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBIVFRQX0lOVEVSQ0VQVE9SUyxcclxuICAgICAgICAgICAgICAgICAgICB1c2VDbGFzczogRXNvbHZlQXV0aEludGVyY2VwdG9yU2VydmljZSxcclxuICAgICAgICAgICAgICAgICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIF0sXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxufVxyXG4iXX0=","export class EsolveList {\r\n constructor(items = [], page = 0, rows = 0, total = 0) {\r\n this.items = items;\r\n this.page = page;\r\n this.rows = rows;\r\n this.total = total;\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWxpc3QubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvc2hhcmVkL2Vzb2x2ZS1saXN0Lm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxVQUFVO0lBQ25CLFlBQ1csUUFBYSxFQUFFLEVBQ2YsT0FBZSxDQUFDLEVBQ2hCLE9BQWUsQ0FBQyxFQUNoQixRQUFnQixDQUFDO1FBSGpCLFVBQUssR0FBTCxLQUFLLENBQVU7UUFDZixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsVUFBSyxHQUFMLEtBQUssQ0FBWTtJQUN4QixDQUFDO0NBQ1IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgRXNvbHZlTGlzdDxUPiB7XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwdWJsaWMgaXRlbXM6IFRbXSA9IFtdLFxyXG4gICAgICAgIHB1YmxpYyBwYWdlOiBudW1iZXIgPSAwLFxyXG4gICAgICAgIHB1YmxpYyByb3dzOiBudW1iZXIgPSAwLFxyXG4gICAgICAgIHB1YmxpYyB0b3RhbDogbnVtYmVyID0gMCxcclxuICAgICkgeyB9XHJcbn1cclxuIl19","export class EsolveResult {\r\n constructor(status, code, message) {\r\n this.status = status;\r\n this.code = code;\r\n this.message = message;\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXJlc3VsdC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9zaGFyZWQvZXNvbHZlLXJlc3VsdC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sWUFBWTtJQUNyQixZQUNXLE1BQWMsRUFDZCxJQUFZLEVBQ1osT0FBZTtRQUZmLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxTQUFJLEdBQUosSUFBSSxDQUFRO1FBQ1osWUFBTyxHQUFQLE9BQU8sQ0FBUTtJQUN0QixDQUFDO0NBQ1IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgRXNvbHZlUmVzdWx0IHtcclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHB1YmxpYyBzdGF0dXM6IHN0cmluZyxcclxuICAgICAgICBwdWJsaWMgY29kZTogc3RyaW5nLFxyXG4gICAgICAgIHB1YmxpYyBtZXNzYWdlOiBzdHJpbmcsXHJcbiAgICApIHsgfVxyXG59XHJcbiJdfQ==","export class EsolveMultipleSelectFilter {\r\n constructor(field, options) {\r\n this.field = field;\r\n this.type = 'multiple';\r\n this.options = [];\r\n if (options) {\r\n this.options = options;\r\n }\r\n }\r\n setValue(values) {\r\n this.values = values;\r\n }\r\n toHttpParams(http_params) {\r\n if (!this.values) {\r\n throw new Error('No values set');\r\n }\r\n const base_property = `filter[${this.field}]`;\r\n const type_property = base_property + '[type]';\r\n const values_property = base_property + '[values][]';\r\n const params = {\r\n [type_property]: this.type,\r\n [values_property]: this.values,\r\n };\r\n if (http_params) {\r\n return http_params.appendAll(params);\r\n }\r\n return params;\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLW11bHRpcGxlLXNlbGVjdC1maWx0ZXIubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvc2hhcmVkL2ZpbHRlcnMvY2xhc3Nlcy9lc29sdmUtbXVsdGlwbGUtc2VsZWN0LWZpbHRlci5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxNQUFNLE9BQU8sMEJBQTBCO0lBTW5DLFlBQ1csS0FBYSxFQUNwQixPQUE2QjtRQUR0QixVQUFLLEdBQUwsS0FBSyxDQUFRO1FBTlIsU0FBSSxHQUFHLFVBQVUsQ0FBQztRQUMzQixZQUFPLEdBQXdCLEVBQUUsQ0FBQztRQVFyQyxJQUFJLE9BQU8sRUFBRTtZQUNULElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1NBQzFCO0lBQ0wsQ0FBQztJQUVNLFFBQVEsQ0FBQyxNQUEyQjtRQUN2QyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN6QixDQUFDO0lBSU0sWUFBWSxDQUNmLFdBQXdCO1FBRXhCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2QsTUFBTSxJQUFJLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztTQUNwQztRQUVELE1BQU0sYUFBYSxHQUFHLFVBQVUsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDO1FBQzlDLE1BQU0sYUFBYSxHQUFHLGFBQWEsR0FBRyxRQUFRLENBQUM7UUFDL0MsTUFBTSxlQUFlLEdBQUcsYUFBYSxHQUFHLFlBQVksQ0FBQztRQUVyRCxNQUFNLE1BQU0sR0FBRztZQUNYLENBQUMsYUFBYSxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDMUIsQ0FBQyxlQUFlLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTTtTQUNqQyxDQUFDO1FBRUYsSUFBSSxXQUFXLEVBQUU7WUFDYixPQUFPLFdBQVcsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDeEM7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5cclxuaW1wb3J0IHsgRXNvbHZlU2VsZWN0RmlsdGVyIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XHJcblxyXG5leHBvcnQgY2xhc3MgRXNvbHZlTXVsdGlwbGVTZWxlY3RGaWx0ZXIgaW1wbGVtZW50cyBFc29sdmVTZWxlY3RGaWx0ZXIge1xyXG4gICAgcHVibGljIHJlYWRvbmx5IHR5cGUgPSAnbXVsdGlwbGUnO1xyXG4gICAgcHVibGljIG9wdGlvbnM6IChzdHJpbmcgfCBudW1iZXIpW10gPSBbXTtcclxuXHJcbiAgICBwcml2YXRlIHZhbHVlcz86IChzdHJpbmcgfCBudW1iZXIpW107XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHVibGljIGZpZWxkOiBzdHJpbmcsXHJcbiAgICAgICAgb3B0aW9ucz86IChzdHJpbmcgfCBudW1iZXIpW10sXHJcbiAgICApIHtcclxuICAgICAgICBpZiAob3B0aW9ucykge1xyXG4gICAgICAgICAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2V0VmFsdWUodmFsdWVzOiAoc3RyaW5nIHwgbnVtYmVyKVtdKSB7XHJcbiAgICAgICAgdGhpcy52YWx1ZXMgPSB2YWx1ZXM7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHRvSHR0cFBhcmFtcygpOiB7IFt4OiBzdHJpbmddOiBzdHJpbmcgfCAoc3RyaW5nIHwgbnVtYmVyKVtdOyB9O1xyXG4gICAgcHVibGljIHRvSHR0cFBhcmFtcyhodHRwX3BhcmFtczogSHR0cFBhcmFtcyk6IEh0dHBQYXJhbXM7XHJcbiAgICBwdWJsaWMgdG9IdHRwUGFyYW1zKFxyXG4gICAgICAgIGh0dHBfcGFyYW1zPzogSHR0cFBhcmFtcyxcclxuICAgICk6IEh0dHBQYXJhbXMgfCB7IFt4OiBzdHJpbmddOiBzdHJpbmcgfCAoc3RyaW5nIHwgbnVtYmVyKVtdOyB9IHtcclxuICAgICAgICBpZiAoIXRoaXMudmFsdWVzKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignTm8gdmFsdWVzIHNldCcpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgYmFzZV9wcm9wZXJ0eSA9IGBmaWx0ZXJbJHt0aGlzLmZpZWxkfV1gO1xyXG4gICAgICAgIGNvbnN0IHR5cGVfcHJvcGVydHkgPSBiYXNlX3Byb3BlcnR5ICsgJ1t0eXBlXSc7XHJcbiAgICAgICAgY29uc3QgdmFsdWVzX3Byb3BlcnR5ID0gYmFzZV9wcm9wZXJ0eSArICdbdmFsdWVzXVtdJztcclxuXHJcbiAgICAgICAgY29uc3QgcGFyYW1zID0ge1xyXG4gICAgICAgICAgICBbdHlwZV9wcm9wZXJ0eV06IHRoaXMudHlwZSxcclxuICAgICAgICAgICAgW3ZhbHVlc19wcm9wZXJ0eV06IHRoaXMudmFsdWVzLFxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIGlmIChodHRwX3BhcmFtcykge1xyXG4gICAgICAgICAgICByZXR1cm4gaHR0cF9wYXJhbXMuYXBwZW5kQWxsKHBhcmFtcyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gcGFyYW1zO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==","export class EsolveRangeFilter {\r\n constructor(field, min = 0, max = 0) {\r\n this.field = field;\r\n this.type = 'range';\r\n this.min = 0;\r\n this.max = 0;\r\n this.options = {\r\n min: 0,\r\n max: 0,\r\n };\r\n this.options.min = min;\r\n this.options.max = max;\r\n if ((max > 0) && (min > max)) {\r\n this.options.min = max;\r\n this.options.max = min;\r\n }\r\n }\r\n setValue(min, max) {\r\n this.min = min;\r\n this.max = max;\r\n if ((max > 0) && (min > max)) {\r\n this.min = max;\r\n this.max = min;\r\n }\r\n }\r\n toHttpParams(http_params) {\r\n if (this.min <= 0 && this.max <= 0) {\r\n throw new Error('No values set');\r\n }\r\n const base_property = `filter[${this.field}]`;\r\n const type_property = base_property + '[type]';\r\n const min_property = base_property + '[min]';\r\n const max_property = base_property + '[max]';\r\n const params = {\r\n [type_property]: this.type,\r\n [min_property]: this.min,\r\n [max_property]: this.max,\r\n };\r\n if (http_params) {\r\n return http_params.appendAll(params);\r\n }\r\n return params;\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXJhbmdlLWZpbHRlci5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9zaGFyZWQvZmlsdGVycy9jbGFzc2VzL2Vzb2x2ZS1yYW5nZS1maWx0ZXIubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxPQUFPLGlCQUFpQjtJQVMxQixZQUNXLEtBQWEsRUFDcEIsTUFBYyxDQUFDLEVBQ2YsTUFBYyxDQUFDO1FBRlIsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQVRSLFNBQUksR0FBRyxPQUFPLENBQUM7UUFDeEIsUUFBRyxHQUFXLENBQUMsQ0FBQztRQUNoQixRQUFHLEdBQVcsQ0FBQyxDQUFDO1FBQ2hCLFlBQU8sR0FBRztZQUNiLEdBQUcsRUFBRSxDQUFDO1lBQ04sR0FBRyxFQUFFLENBQUM7U0FDVCxDQUFDO1FBT0UsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUV2QixJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFO1lBQzFCLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztZQUN2QixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7U0FDMUI7SUFDTCxDQUFDO0lBRU0sUUFBUSxDQUFDLEdBQVcsRUFBRSxHQUFXO1FBQ3BDLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ2YsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFFZixJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxFQUFFO1lBQzFCLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1lBQ2YsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7U0FDbEI7SUFDTCxDQUFDO0lBSU0sWUFBWSxDQUNmLFdBQXdCO1FBRXhCLElBQUksSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLEVBQUU7WUFDaEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztTQUNwQztRQUVELE1BQU0sYUFBYSxHQUFHLFVBQVUsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDO1FBQzlDLE1BQU0sYUFBYSxHQUFHLGFBQWEsR0FBRyxRQUFRLENBQUM7UUFDL0MsTUFBTSxZQUFZLEdBQUcsYUFBYSxHQUFHLE9BQU8sQ0FBQztRQUM3QyxNQUFNLFlBQVksR0FBRyxhQUFhLEdBQUcsT0FBTyxDQUFDO1FBRTdDLE1BQU0sTUFBTSxHQUFHO1lBQ1gsQ0FBQyxhQUFhLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSTtZQUMxQixDQUFDLFlBQVksQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHO1lBQ3hCLENBQUMsWUFBWSxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUc7U0FDM0IsQ0FBQztRQUVGLElBQUksV0FBVyxFQUFFO1lBQ2IsT0FBTyxXQUFXLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ3hDO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgRXNvbHZlRmlsdGVyIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XHJcblxyXG5leHBvcnQgY2xhc3MgRXNvbHZlUmFuZ2VGaWx0ZXIgaW1wbGVtZW50cyBFc29sdmVGaWx0ZXIge1xyXG4gICAgcHVibGljIHJlYWRvbmx5IHR5cGUgPSAncmFuZ2UnO1xyXG4gICAgcHVibGljIG1pbjogbnVtYmVyID0gMDtcclxuICAgIHB1YmxpYyBtYXg6IG51bWJlciA9IDA7XHJcbiAgICBwdWJsaWMgb3B0aW9ucyA9IHtcclxuICAgICAgICBtaW46IDAsXHJcbiAgICAgICAgbWF4OiAwLFxyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwdWJsaWMgZmllbGQ6IHN0cmluZyxcclxuICAgICAgICBtaW46IG51bWJlciA9IDAsXHJcbiAgICAgICAgbWF4OiBudW1iZXIgPSAwLFxyXG4gICAgKSB7XHJcbiAgICAgICAgdGhpcy5vcHRpb25zLm1pbiA9IG1pbjtcclxuICAgICAgICB0aGlzLm9wdGlvbnMubWF4ID0gbWF4O1xyXG5cclxuICAgICAgICBpZiAoKG1heCA+IDApICYmIChtaW4gPiBtYXgpKSB7XHJcbiAgICAgICAgICAgIHRoaXMub3B0aW9ucy5taW4gPSBtYXg7XHJcbiAgICAgICAgICAgIHRoaXMub3B0aW9ucy5tYXggPSBtaW47XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXRWYWx1ZShtaW46IG51bWJlciwgbWF4OiBudW1iZXIpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm1pbiA9IG1pbjtcclxuICAgICAgICB0aGlzLm1heCA9IG1heDtcclxuXHJcbiAgICAgICAgaWYgKChtYXggPiAwKSAmJiAobWluID4gbWF4KSkge1xyXG4gICAgICAgICAgICB0aGlzLm1pbiA9IG1heDtcclxuICAgICAgICAgICAgdGhpcy5tYXggPSBtaW47XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB0b0h0dHBQYXJhbXMoKTogeyBbeDogc3RyaW5nXTogc3RyaW5nIHwgbnVtYmVyOyB9O1xyXG4gICAgcHVibGljIHRvSHR0cFBhcmFtcyhodHRwX3BhcmFtczogSHR0cFBhcmFtcyk6IEh0dHBQYXJhbXM7XHJcbiAgICBwdWJsaWMgdG9IdHRwUGFyYW1zKFxyXG4gICAgICAgIGh0dHBfcGFyYW1zPzogSHR0cFBhcmFtcyxcclxuICAgICk6IEh0dHBQYXJhbXMgfCB7IFt4OiBzdHJpbmddOiBzdHJpbmcgfCBudW1iZXI7IH0ge1xyXG4gICAgICAgIGlmICh0aGlzLm1pbiA8PSAwICYmIHRoaXMubWF4IDw9IDApIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyB2YWx1ZXMgc2V0Jyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBiYXNlX3Byb3BlcnR5ID0gYGZpbHRlclske3RoaXMuZmllbGR9XWA7XHJcbiAgICAgICAgY29uc3QgdHlwZV9wcm9wZXJ0eSA9IGJhc2VfcHJvcGVydHkgKyAnW3R5cGVdJztcclxuICAgICAgICBjb25zdCBtaW5fcHJvcGVydHkgPSBiYXNlX3Byb3BlcnR5ICsgJ1ttaW5dJztcclxuICAgICAgICBjb25zdCBtYXhfcHJvcGVydHkgPSBiYXNlX3Byb3BlcnR5ICsgJ1ttYXhdJztcclxuXHJcbiAgICAgICAgY29uc3QgcGFyYW1zID0ge1xyXG4gICAgICAgICAgICBbdHlwZV9wcm9wZXJ0eV06IHRoaXMudHlwZSxcclxuICAgICAgICAgICAgW21pbl9wcm9wZXJ0eV06IHRoaXMubWluLFxyXG4gICAgICAgICAgICBbbWF4X3Byb3BlcnR5XTogdGhpcy5tYXgsXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgaWYgKGh0dHBfcGFyYW1zKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBodHRwX3BhcmFtcy5hcHBlbmRBbGwocGFyYW1zKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBwYXJhbXM7XHJcbiAgICB9XHJcbn1cclxuIl19","export class EsolveSingleSelectFilter {\r\n constructor(field, options_or_value) {\r\n this.field = field;\r\n this.type = 'single';\r\n this.options = [];\r\n if (Array.isArray(options_or_value)) {\r\n this.options = options_or_value;\r\n }\r\n else {\r\n this.setValue(options_or_value);\r\n }\r\n }\r\n setValue(value) {\r\n this.value = value;\r\n }\r\n toHttpParams(http_params) {\r\n if (!this.value) {\r\n throw new Error('No values set');\r\n }\r\n const base_property = `filter[${this.field}]`;\r\n const type_property = base_property + '[type]';\r\n const values_property = base_property + '[value]';\r\n const params = {\r\n [type_property]: this.type,\r\n [values_property]: this.value,\r\n };\r\n if (http_params) {\r\n return http_params.appendAll(params);\r\n }\r\n return params;\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXNpbmdsZS1zZWxlY3QtZmlsdGVyLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL3NoYXJlZC9maWx0ZXJzL2NsYXNzZXMvZXNvbHZlLXNpbmdsZS1zZWxlY3QtZmlsdGVyLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE1BQU0sT0FBTyx3QkFBd0I7SUFRakMsWUFDVyxLQUFhLEVBQ3BCLGdCQUF1RDtRQURoRCxVQUFLLEdBQUwsS0FBSyxDQUFRO1FBUlIsU0FBSSxHQUFHLFFBQVEsQ0FBQztRQUN6QixZQUFPLEdBQXdCLEVBQUUsQ0FBQztRQVVyQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsRUFBRTtZQUNqQyxJQUFJLENBQUMsT0FBTyxHQUFHLGdCQUFnQixDQUFDO1NBQ25DO2FBQU07WUFDSCxJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLENBQUM7U0FDbkM7SUFDTCxDQUFDO0lBRU0sUUFBUSxDQUFDLEtBQXNCO1FBQ2xDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLENBQUM7SUFJTSxZQUFZLENBQ2YsV0FBd0I7UUFFeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDYixNQUFNLElBQUksS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1NBQ3BDO1FBRUQsTUFBTSxhQUFhLEdBQUcsVUFBVSxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUM7UUFDOUMsTUFBTSxhQUFhLEdBQUcsYUFBYSxHQUFHLFFBQVEsQ0FBQztRQUMvQyxNQUFNLGVBQWUsR0FBRyxhQUFhLEdBQUcsU0FBUyxDQUFDO1FBRWxELE1BQU0sTUFBTSxHQUFHO1lBQ1gsQ0FBQyxhQUFhLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSTtZQUMxQixDQUFDLGVBQWUsQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLO1NBQ2hDLENBQUM7UUFFRixJQUFJLFdBQVcsRUFBRTtZQUNiLE9BQU8sV0FBVyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUN4QztRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcblxyXG5pbXBvcnQgeyBFc29sdmVTZWxlY3RGaWx0ZXIgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcclxuXHJcbmV4cG9ydCBjbGFzcyBFc29sdmVTaW5nbGVTZWxlY3RGaWx0ZXIgaW1wbGVtZW50cyBFc29sdmVTZWxlY3RGaWx0ZXIge1xyXG4gICAgcHVibGljIHJlYWRvbmx5IHR5cGUgPSAnc2luZ2xlJztcclxuICAgIHB1YmxpYyBvcHRpb25zOiAoc3RyaW5nIHwgbnVtYmVyKVtdID0gW107XHJcblxyXG4gICAgcHJpdmF0ZSB2YWx1ZT86IHN0cmluZyB8IG51bWJlcjtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihmaWVsZDogc3RyaW5nLCBvcHRpb25zOiAoc3RyaW5nIHwgbnVtYmVyKVtdKTtcclxuICAgIGNvbnN0cnVjdG9yKGZpZWxkOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcgfCBudW1iZXIpO1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHVibGljIGZpZWxkOiBzdHJpbmcsXHJcbiAgICAgICAgb3B0aW9uc19vcl92YWx1ZTogc3RyaW5nIHwgbnVtYmVyIHwgKHN0cmluZyB8IG51bWJlcilbXSxcclxuICAgICkge1xyXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KG9wdGlvbnNfb3JfdmFsdWUpKSB7XHJcbiAgICAgICAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnNfb3JfdmFsdWU7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5zZXRWYWx1ZShvcHRpb25zX29yX3ZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldFZhbHVlKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIpIHtcclxuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHRvSHR0cFBhcmFtcygpOiB7IFt4OiBzdHJpbmddOiBzdHJpbmcgfCBudW1iZXI7IH07XHJcbiAgICBwdWJsaWMgdG9IdHRwUGFyYW1zKGh0dHBfcGFyYW1zOiBIdHRwUGFyYW1zKTogSHR0cFBhcmFtcztcclxuICAgIHB1YmxpYyB0b0h0dHBQYXJhbXMoXHJcbiAgICAgICAgaHR0cF9wYXJhbXM/OiBIdHRwUGFyYW1zLFxyXG4gICAgKTogSHR0cFBhcmFtcyB8IHsgW3g6IHN0cmluZ106IHN0cmluZyB8IG51bWJlcjsgfSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnZhbHVlKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignTm8gdmFsdWVzIHNldCcpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgYmFzZV9wcm9wZXJ0eSA9IGBmaWx0ZXJbJHt0aGlzLmZpZWxkfV1gO1xyXG4gICAgICAgIGNvbnN0IHR5cGVfcHJvcGVydHkgPSBiYXNlX3Byb3BlcnR5ICsgJ1t0eXBlXSc7XHJcbiAgICAgICAgY29uc3QgdmFsdWVzX3Byb3BlcnR5ID0gYmFzZV9wcm9wZXJ0eSArICdbdmFsdWVdJztcclxuXHJcbiAgICAgICAgY29uc3QgcGFyYW1zID0ge1xyXG4gICAgICAgICAgICBbdHlwZV9wcm9wZXJ0eV06IHRoaXMudHlwZSxcclxuICAgICAgICAgICAgW3ZhbHVlc19wcm9wZXJ0eV06IHRoaXMudmFsdWUsXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgaWYgKGh0dHBfcGFyYW1zKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBodHRwX3BhcmFtcy5hcHBlbmRBbGwocGFyYW1zKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBwYXJhbXM7XHJcbiAgICB9XHJcbn1cclxuIl19","// Classes\r\nexport * from './esolve-multiple-select-filter.model';\r\nexport * from './esolve-range-filter.model';\r\nexport * from './esolve-single-select-filter.model';\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvc2hhcmVkL2ZpbHRlcnMvY2xhc3Nlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxVQUFVO0FBQ1YsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMscUNBQXFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDbGFzc2VzXHJcbmV4cG9ydCAqIGZyb20gJy4vZXNvbHZlLW11bHRpcGxlLXNlbGVjdC1maWx0ZXIubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS1yYW5nZS1maWx0ZXIubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS1zaW5nbGUtc2VsZWN0LWZpbHRlci5tb2RlbCc7XHJcbiJdfQ==","// Interfaces\r\nexport * from './esolve-filter-definitions.interface';\r\nexport * from './esolve-filter-record.interface';\r\nexport * from './esolve-filter.interface';\r\nexport * from './esolve-range-filter-record.interface';\r\nexport * from './esolve-select-filter-record.interface';\r\nexport * from './esolve-select-filter.interface';\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvc2hhcmVkL2ZpbHRlcnMvaW50ZXJmYWNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxhQUFhO0FBQ2IsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsa0NBQWtDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBJbnRlcmZhY2VzXHJcbmV4cG9ydCAqIGZyb20gJy4vZXNvbHZlLWZpbHRlci1kZWZpbml0aW9ucy5pbnRlcmZhY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS1maWx0ZXItcmVjb3JkLmludGVyZmFjZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZXNvbHZlLWZpbHRlci5pbnRlcmZhY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS1yYW5nZS1maWx0ZXItcmVjb3JkLmludGVyZmFjZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZXNvbHZlLXNlbGVjdC1maWx0ZXItcmVjb3JkLmludGVyZmFjZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZXNvbHZlLXNlbGVjdC1maWx0ZXIuaW50ZXJmYWNlJztcclxuIl19","// Types\r\nexport * from './esolve-filter-list.type';\r\nexport * from './esolve-filter-record-list.type';\r\nexport * from './esolve-filter-type.type';\r\nexport * from './esolve-range-filter-type.type';\r\nexport * from './esolve-select-filter-type.type';\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvc2hhcmVkL2ZpbHRlcnMvdHlwZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsUUFBUTtBQUNSLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxrQ0FBa0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIFR5cGVzXHJcbmV4cG9ydCAqIGZyb20gJy4vZXNvbHZlLWZpbHRlci1saXN0LnR5cGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS1maWx0ZXItcmVjb3JkLWxpc3QudHlwZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZXNvbHZlLWZpbHRlci10eXBlLnR5cGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS1yYW5nZS1maWx0ZXItdHlwZS50eXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9lc29sdmUtc2VsZWN0LWZpbHRlci10eXBlLnR5cGUnO1xyXG4iXX0=","import { EsolveMultipleSelectFilter, EsolveRangeFilter, EsolveSingleSelectFilter, } from './classes';\r\nexport var EsolveFilterFactory;\r\n(function (EsolveFilterFactory) {\r\n function createRangeWithValue(field, min = 0, max = 0) {\r\n const filter = new EsolveRangeFilter(field);\r\n filter.setValue(min, max);\r\n return filter;\r\n }\r\n EsolveFilterFactory.createRangeWithValue = createRangeWithValue;\r\n function createSingleSelectWithValue(field, value) {\r\n const filter = new EsolveSingleSelectFilter(field, value);\r\n return filter;\r\n }\r\n EsolveFilterFactory.createSingleSelectWithValue = createSingleSelectWithValue;\r\n function createMultipleSelectWithValue(field, value) {\r\n const filter = new EsolveMultipleSelectFilter(field);\r\n filter.setValue(value);\r\n return filter;\r\n }\r\n EsolveFilterFactory.createMultipleSelectWithValue = createMultipleSelectWithValue;\r\n function covertFromObj(obj) {\r\n const filters = [];\r\n for (const field in obj) {\r\n const value = obj[field];\r\n let filter = null;\r\n if (Array.isArray(value)) {\r\n filter = createMultipleSelectWithValue(field, value);\r\n }\r\n else if (typeof value === 'object') {\r\n filter = createRangeWithValue(field, value.min, value.max);\r\n }\r\n else {\r\n filter = createSingleSelectWithValue(field, value);\r\n }\r\n if (filter) {\r\n filters.push(filter);\r\n }\r\n }\r\n return filters;\r\n }\r\n EsolveFilterFactory.covertFromObj = covertFromObj;\r\n function convertToHttpParams(filters, http_params) {\r\n if (http_params) {\r\n for (const filter of filters) {\r\n http_params = filter.toHttpParams(http_params);\r\n }\r\n return http_params;\r\n }\r\n let params = {};\r\n for (const filter of filters) {\r\n params = {\r\n ...params,\r\n ...filter.toHttpParams(),\r\n };\r\n }\r\n return params;\r\n }\r\n EsolveFilterFactory.convertToHttpParams = convertToHttpParams;\r\n})(EsolveFilterFactory || (EsolveFilterFactory = {}));\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWZpbHRlci1mYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL3NoYXJlZC9maWx0ZXJzL2Vzb2x2ZS1maWx0ZXItZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQ0gsMEJBQTBCLEVBQzFCLGlCQUFpQixFQUNqQix3QkFBd0IsR0FDM0IsTUFBTSxXQUFXLENBQUM7QUFHbkIsTUFBTSxLQUFXLG1CQUFtQixDQXNGbkM7QUF0RkQsV0FBaUIsbUJBQW1CO0lBQ2hDLFNBQWdCLG9CQUFvQixDQUNoQyxLQUFhLEVBQ2IsTUFBYyxDQUFDLEVBQ2YsTUFBYyxDQUFDO1FBRWYsTUFBTSxNQUFNLEdBQUcsSUFBSSxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1QyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUUxQixPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBVGUsd0NBQW9CLHVCQVNuQyxDQUFBO0lBRUQsU0FBZ0IsMkJBQTJCLENBQ3ZDLEtBQWEsRUFDYixLQUFzQjtRQUV0QixNQUFNLE1BQU0sR0FBRyxJQUFJLHdCQUF3QixDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztRQUUxRCxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBUGUsK0NBQTJCLDhCQU8xQyxDQUFBO0lBRUQsU0FBZ0IsNkJBQTZCLENBQ3pDLEtBQWEsRUFDYixLQUEwQjtRQUUxQixNQUFNLE1BQU0sR0FBRyxJQUFJLDBCQUEwQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JELE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFdkIsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztJQVJlLGlEQUE2QixnQ0FRNUMsQ0FBQTtJQUVELFNBQWdCLGFBQWEsQ0FBQyxHQUE0QjtRQUN0RCxNQUFNLE9BQU8sR0FBbUIsRUFBRSxDQUFDO1FBRW5DLEtBQUssTUFBTSxLQUFLLElBQUksR0FBRyxFQUFFO1lBQ3JCLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN6QixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFFbEIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUN0QixNQUFNLEdBQUcsNkJBQTZCLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO2FBQ3hEO2lCQUFNLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO2dCQUNsQyxNQUFNLEdBQUcsb0JBQW9CLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQzlEO2lCQUFNO2dCQUNILE1BQU0sR0FBRywyQkFBMkIsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7YUFDdEQ7WUFFRCxJQUFJLE1BQU0sRUFBRTtnQkFDUixPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQ3hCO1NBQ0o7UUFFRCxPQUFPLE9BQU8sQ0FBQztJQUNuQixDQUFDO0lBckJlLGlDQUFhLGdCQXFCNUIsQ0FBQTtJQVdELFNBQWdCLG1CQUFtQixDQUMvQixPQUF1QixFQUN2QixXQUF3QjtRQUV4QixJQUFJLFdBQVcsRUFBRTtZQUNiLEtBQUssTUFBTSxNQUFNLElBQUksT0FBTyxFQUFFO2dCQUMxQixXQUFXLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUNsRDtZQUVELE9BQU8sV0FBVyxDQUFDO1NBQ3RCO1FBRUQsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBRWhCLEtBQUssTUFBTSxNQUFNLElBQUksT0FBTyxFQUFFO1lBQzFCLE1BQU0sR0FBRztnQkFDTCxHQUFHLE1BQU07Z0JBQ1QsR0FBRyxNQUFNLENBQUMsWUFBWSxFQUFFO2FBQzNCLENBQUM7U0FDTDtRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7SUF0QmUsdUNBQW1CLHNCQXNCbEMsQ0FBQTtBQUNMLENBQUMsRUF0RmdCLG1CQUFtQixLQUFuQixtQkFBbUIsUUFzRm5DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuXHJcbmltcG9ydCB7XHJcbiAgICBFc29sdmVNdWx0aXBsZVNlbGVjdEZpbHRlcixcclxuICAgIEVzb2x2ZVJhbmdlRmlsdGVyLFxyXG4gICAgRXNvbHZlU2luZ2xlU2VsZWN0RmlsdGVyLFxyXG59IGZyb20gJy4vY2xhc3Nlcyc7XHJcbmltcG9ydCB7IEVzb2x2ZUZpbHRlciwgRXNvbHZlRmlsdGVyRGVmaW5pdGlvbnMgfSBmcm9tICcuL2ludGVyZmFjZXMnO1xyXG5cclxuZXhwb3J0IG5hbWVzcGFjZSBFc29sdmVGaWx0ZXJGYWN0b3J5IHtcclxuICAgIGV4cG9ydCBmdW5jdGlvbiBjcmVhdGVSYW5nZVdpdGhWYWx1ZShcclxuICAgICAgICBmaWVsZDogc3RyaW5nLFxyXG4gICAgICAgIG1pbjogbnVtYmVyID0gMCxcclxuICAgICAgICBtYXg6IG51bWJlciA9IDAsXHJcbiAgICApOiBFc29sdmVSYW5nZUZpbHRlciB7XHJcbiAgICAgICAgY29uc3QgZmlsdGVyID0gbmV3IEVzb2x2ZVJhbmdlRmlsdGVyKGZpZWxkKTtcclxuICAgICAgICBmaWx0ZXIuc2V0VmFsdWUobWluLCBtYXgpO1xyXG5cclxuICAgICAgICByZXR1cm4gZmlsdGVyO1xyXG4gICAgfVxyXG5cclxuICAgIGV4cG9ydCBmdW5jdGlvbiBjcmVhdGVTaW5nbGVTZWxlY3RXaXRoVmFsdWUoXHJcbiAgICAgICAgZmllbGQ6IHN0cmluZyxcclxuICAgICAgICB2YWx1ZTogc3RyaW5nIHwgbnVtYmVyLFxyXG4gICAgKTogRXNvbHZlU2luZ2xlU2VsZWN0RmlsdGVyIHtcclxuICAgICAgICBjb25zdCBmaWx0ZXIgPSBuZXcgRXNvbHZlU2luZ2xlU2VsZWN0RmlsdGVyKGZpZWxkLCB2YWx1ZSk7XHJcblxyXG4gICAgICAgIHJldHVybiBmaWx0ZXI7XHJcbiAgICB9XHJcblxyXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZU11bHRpcGxlU2VsZWN0V2l0aFZhbHVlKFxyXG4gICAgICAgIGZpZWxkOiBzdHJpbmcsXHJcbiAgICAgICAgdmFsdWU6IChzdHJpbmcgfCBudW1iZXIpW10sXHJcbiAgICApOiBFc29sdmVNdWx0aXBsZVNlbGVjdEZpbHRlciB7XHJcbiAgICAgICAgY29uc3QgZmlsdGVyID0gbmV3IEVzb2x2ZU11bHRpcGxlU2VsZWN0RmlsdGVyKGZpZWxkKTtcclxuICAgICAgICBmaWx0ZXIuc2V0VmFsdWUodmFsdWUpO1xyXG5cclxuICAgICAgICByZXR1cm4gZmlsdGVyO1xyXG4gICAgfVxyXG5cclxuICAgIGV4cG9ydCBmdW5jdGlvbiBjb3ZlcnRGcm9tT2JqKG9iajogRXNvbHZlRmlsdGVyRGVmaW5pdGlvbnMpOiBFc29sdmVGaWx0ZXJbXSB7XHJcbiAgICAgICAgY29uc3QgZmlsdGVyczogRXNvbHZlRmlsdGVyW10gPSBbXTtcclxuXHJcbiAgICAgICAgZm9yIChjb25zdCBmaWVsZCBpbiBvYmopIHtcclxuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBvYmpbZmllbGRdO1xyXG4gICAgICAgICAgICBsZXQgZmlsdGVyID0gbnVsbDtcclxuXHJcbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xyXG4gICAgICAgICAgICAgICAgZmlsdGVyID0gY3JlYXRlTXVsdGlwbGVTZWxlY3RXaXRoVmFsdWUoZmllbGQsIHZhbHVlKTtcclxuICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XHJcbiAgICAgICAgICAgICAgICBmaWx0ZXIgPSBjcmVhdGVSYW5nZVdpdGhWYWx1ZShmaWVsZCwgdmFsdWUubWluLCB2YWx1ZS5tYXgpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgZmlsdGVyID0gY3JlYXRlU2luZ2xlU2VsZWN0V2l0aFZhbHVlKGZpZWxkLCB2YWx1ZSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChmaWx0ZXIpIHtcclxuICAgICAgICAgICAgICAgIGZpbHRlcnMucHVzaChmaWx0ZXIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gZmlsdGVycztcclxuICAgIH1cclxuXHJcbiAgICBleHBvcnQgZnVuY3Rpb24gY29udmVydFRvSHR0cFBhcmFtcyhcclxuICAgICAgICBmaWx0ZXJzOiBFc29sdmVGaWx0ZXJbXSxcclxuICAgICk6IHsgW3g6IHN0cmluZ106IHN0cmluZyB8IG51bWJlciB8IChzdHJpbmcgfCBudW1iZXIpW107IH07XHJcblxyXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRUb0h0dHBQYXJhbXMoXHJcbiAgICAgICAgZmlsdGVyczogRXNvbHZlRmlsdGVyW10sXHJcbiAgICAgICAgaHR0cF9wYXJhbXM6IEh0dHBQYXJhbXMsXHJcbiAgICApOiBIdHRwUGFyYW1zO1xyXG5cclxuICAgIGV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0VG9IdHRwUGFyYW1zKFxyXG4gICAgICAgIGZpbHRlcnM6IEVzb2x2ZUZpbHRlcltdLFxyXG4gICAgICAgIGh0dHBfcGFyYW1zPzogSHR0cFBhcmFtcyxcclxuICAgICk6IEh0dHBQYXJhbXMgfCB7IFt4OiBzdHJpbmddOiBzdHJpbmcgfCBudW1iZXIgfCAoc3RyaW5nIHwgbnVtYmVyKVtdOyB9IHtcclxuICAgICAgICBpZiAoaHR0cF9wYXJhbXMpIHtcclxuICAgICAgICAgICAgZm9yIChjb25zdCBmaWx0ZXIgb2YgZmlsdGVycykge1xyXG4gICAgICAgICAgICAgICAgaHR0cF9wYXJhbXMgPSBmaWx0ZXIudG9IdHRwUGFyYW1zKGh0dHBfcGFyYW1zKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgcmV0dXJuIGh0dHBfcGFyYW1zO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IHBhcmFtcyA9IHt9O1xyXG5cclxuICAgICAgICBmb3IgKGNvbnN0IGZpbHRlciBvZiBmaWx0ZXJzKSB7XHJcbiAgICAgICAgICAgIHBhcmFtcyA9IHtcclxuICAgICAgICAgICAgICAgIC4uLnBhcmFtcyxcclxuICAgICAgICAgICAgICAgIC4uLmZpbHRlci50b0h0dHBQYXJhbXMoKSxcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBwYXJhbXM7XHJcbiAgICB9XHJcbn1cclxuIl19","export class EsolveResponseResult {\r\n constructor(response) {\r\n this.success_log = [];\r\n this.error_log = [];\r\n this.error_log.push(...response.log.filter((log_item) => log_item.type === 'error'));\r\n this.success_log.push(...response.log.filter((log_item) => log_item.type === 'success'));\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXJlc3BvbnNlLXJlc3VsdC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9zaGFyZWQvcmVzcG9uc2UvZXNvbHZlLXJlc3BvbnNlLXJlc3VsdC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLE9BQU8sb0JBQW9CO0lBSTdCLFlBQVksUUFBZ0M7UUFIckMsZ0JBQVcsR0FBNEIsRUFBRSxDQUFDO1FBQzFDLGNBQVMsR0FBNEIsRUFBRSxDQUFDO1FBRzNDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQztRQUNyRixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDN0YsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXNvbHZlUmVzcG9uc2VMb2dJdGVtIH0gZnJvbSAnLi9lc29sdmUtcmVzcG9uc2UtbG9nLWl0ZW0uaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgRXNvbHZlUG9zdFJlc3BvbnNlSXRlbSB9IGZyb20gJy4vZXNvbHZlLXBvc3QtcmVzcG9uc2UtaXRlbS5pbnRlcmZhY2UnO1xyXG5cclxuZXhwb3J0IGNsYXNzIEVzb2x2ZVJlc3BvbnNlUmVzdWx0IHtcclxuICAgIHB1YmxpYyBzdWNjZXNzX2xvZzogRXNvbHZlUmVzcG9uc2VMb2dJdGVtW10gPSBbXTtcclxuICAgIHB1YmxpYyBlcnJvcl9sb2c6IEVzb2x2ZVJlc3BvbnNlTG9nSXRlbVtdID0gW107XHJcblxyXG4gICAgY29uc3RydWN0b3IocmVzcG9uc2U6IEVzb2x2ZVBvc3RSZXNwb25zZUl0ZW0pIHtcclxuICAgICAgICB0aGlzLmVycm9yX2xvZy5wdXNoKC4uLnJlc3BvbnNlLmxvZy5maWx0ZXIoKGxvZ19pdGVtKSA9PiBsb2dfaXRlbS50eXBlID09PSAnZXJyb3InKSk7XHJcbiAgICAgICAgdGhpcy5zdWNjZXNzX2xvZy5wdXNoKC4uLnJlc3BvbnNlLmxvZy5maWx0ZXIoKGxvZ19pdGVtKSA9PiBsb2dfaXRlbS50eXBlID09PSAnc3VjY2VzcycpKTtcclxuICAgIH1cclxufVxyXG4iXX0=","import { Injectable } from '@angular/core';\r\nimport * as i0 from \"@angular/core\";\r\nexport class EsolveResponseHandlerService {\r\n constructor() { }\r\n /**\r\n * Parse single HTTP response\r\n *\r\n * @param http_response HTTP Response to eSolve service\r\n * @param resultHandler Function to parse response to a result\r\n *\r\n * @returns Parsed result of response\r\n */\r\n validateSingleHttpResponse(http_response, resultHandler) {\r\n if ((http_response.responses === undefined) ||\r\n (http_response.responses.length <= 0)) {\r\n throw http_response;\r\n }\r\n const response = http_response.responses[0];\r\n if ((response.status.state === 'error') ||\r\n (response.status.state === 'none')) {\r\n throw response;\r\n }\r\n return resultHandler(response);\r\n }\r\n}\r\nEsolveResponseHandlerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveResponseHandlerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\r\nEsolveResponseHandlerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveResponseHandlerService, providedIn: 'root' });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveResponseHandlerService, decorators: [{\r\n type: Injectable,\r\n args: [{\r\n providedIn: 'root',\r\n }]\r\n }], ctorParameters: function () { return []; } });\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXJlc3BvbnNlLWhhbmRsZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9zaGFyZWQvcmVzcG9uc2UvZXNvbHZlLXJlc3BvbnNlLWhhbmRsZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVMzQyxNQUFNLE9BQU8sNEJBQTRCO0lBQ3JDLGdCQUFnQixDQUFDO0lBRWpCOzs7Ozs7O09BT0c7SUFDSSwwQkFBMEIsQ0FDN0IsYUFBbUMsRUFDbkMsYUFBaUM7UUFFakMsSUFDSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUFDO1lBQ3ZDLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLEVBQ3ZDO1lBQ0UsTUFBTSxhQUFhLENBQUM7U0FDdkI7UUFFRCxNQUFNLFFBQVEsR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTVDLElBQ0ksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssS0FBSyxPQUFPLENBQUM7WUFDbkMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssS0FBSyxNQUFNLENBQUMsRUFDcEM7WUFDRSxNQUFNLFFBQVEsQ0FBQztTQUNsQjtRQUVELE9BQU8sYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ25DLENBQUM7O3lIQWhDUSw0QkFBNEI7NkhBQTVCLDRCQUE0QixjQUZ6QixNQUFNOzJGQUVULDRCQUE0QjtrQkFIeEMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBFc29sdmVQb3N0UmVzcG9uc2VJdGVtIH0gZnJvbSAnLi9lc29sdmUtcG9zdC1yZXNwb25zZS1pdGVtLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IEVzb2x2ZVNldFJlc3BvbnNlIH0gZnJvbSAnLi9lc29sdmUtc2V0LXJlc3BvbnNlLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IEVzb2x2ZVJlc3BvbnNlUmVzdWx0IH0gZnJvbSAnLi9lc29sdmUtcmVzcG9uc2UtcmVzdWx0Lm1vZGVsJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEVzb2x2ZVJlc3BvbnNlSGFuZGxlclNlcnZpY2Uge1xyXG4gICAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFBhcnNlIHNpbmdsZSBIVFRQIHJlc3BvbnNlXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGh0dHBfcmVzcG9uc2UgSFRUUCBSZXNwb25zZSB0byBlU29sdmUgc2VydmljZVxyXG4gICAgICogQHBhcmFtIHJlc3VsdEhhbmRsZXIgRnVuY3Rpb24gdG8gcGFyc2UgcmVzcG9uc2UgdG8gYSByZXN1bHRcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyBQYXJzZWQgcmVzdWx0IG9mIHJlc3BvbnNlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB2YWxpZGF0ZVNpbmdsZUh0dHBSZXNwb25zZTxSIGV4dGVuZHMgRXNvbHZlUmVzcG9uc2VSZXN1bHQsIFQgZXh0ZW5kcyBFc29sdmVQb3N0UmVzcG9uc2VJdGVtPihcclxuICAgICAgICBodHRwX3Jlc3BvbnNlOiBFc29sdmVTZXRSZXNwb25zZTxUPixcclxuICAgICAgICByZXN1bHRIYW5kbGVyOiAocmVzcG9uc2U6IFQpID0+IFIsXHJcbiAgICApOiBSIHtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgIChodHRwX3Jlc3BvbnNlLnJlc3BvbnNlcyA9PT0gdW5kZWZpbmVkKSB8fFxyXG4gICAgICAgICAgICAoaHR0cF9yZXNwb25zZS5yZXNwb25zZXMubGVuZ3RoIDw9IDApXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIHRocm93IGh0dHBfcmVzcG9uc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCByZXNwb25zZSA9IGh0dHBfcmVzcG9uc2UucmVzcG9uc2VzWzBdO1xyXG5cclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgIChyZXNwb25zZS5zdGF0dXMuc3RhdGUgPT09ICdlcnJvcicpIHx8XHJcbiAgICAgICAgICAgIChyZXNwb25zZS5zdGF0dXMuc3RhdGUgPT09ICdub25lJylcclxuICAgICAgICApIHtcclxuICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gcmVzdWx0SGFuZGxlcihyZXNwb25zZSk7XHJcbiAgICB9XHJcbn1cclxuIl19","export class EsolveHttpError extends Error {\r\n constructor(type, code, message, ...params) {\r\n // Pass remaining arguments (including vendor specific ones) to parent constructor\r\n super(...[message, ...params]);\r\n this.http_error = true;\r\n // Maintains proper stack trace for where our error was thrown (only available on V8)\r\n if (Error.captureStackTrace) {\r\n Error.captureStackTrace(this, EsolveHttpError);\r\n }\r\n this.name = 'EsolveHttpError';\r\n this.type = type;\r\n this.error_code = code;\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWh0dHAtZXJyb3IubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvc2hhcmVkL2Vycm9ycy9lc29sdmUtaHR0cC1lcnJvci5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxLQUFLO0lBS3RDLFlBQVksSUFBMkIsRUFBRSxJQUFZLEVBQUUsT0FBZSxFQUFFLEdBQUcsTUFBYTtRQUNwRixrRkFBa0Y7UUFDbEYsS0FBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBTm5CLGVBQVUsR0FBRyxJQUFJLENBQUM7UUFROUIscUZBQXFGO1FBQ3JGLElBQUksS0FBSyxDQUFDLGlCQUFpQixFQUFFO1lBQ3pCLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsZUFBZSxDQUFDLENBQUM7U0FDbEQ7UUFFRCxJQUFJLENBQUMsSUFBSSxHQUFHLGlCQUFpQixDQUFDO1FBQzlCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO0lBQzNCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBFc29sdmVIdHRwRXJyb3IgZXh0ZW5kcyBFcnJvciB7XHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgaHR0cF9lcnJvciA9IHRydWU7XHJcbiAgICBwdWJsaWMgdHlwZTogJ2Vycm9yJyB8ICdleGNlcHRpb24nO1xyXG4gICAgcHVibGljIGVycm9yX2NvZGU6IHN0cmluZztcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcih0eXBlOiAnZXJyb3InIHwgJ2V4Y2VwdGlvbicsIGNvZGU6IHN0cmluZywgbWVzc2FnZTogc3RyaW5nLCAuLi5wYXJhbXM6IGFueVtdKSB7XHJcbiAgICAgICAgLy8gUGFzcyByZW1haW5pbmcgYXJndW1lbnRzIChpbmNsdWRpbmcgdmVuZG9yIHNwZWNpZmljIG9uZXMpIHRvIHBhcmVudCBjb25zdHJ1Y3RvclxyXG4gICAgICAgIHN1cGVyKC4uLlttZXNzYWdlLCAuLi5wYXJhbXNdKTtcclxuXHJcbiAgICAgICAgLy8gTWFpbnRhaW5zIHByb3BlciBzdGFjayB0cmFjZSBmb3Igd2hlcmUgb3VyIGVycm9yIHdhcyB0aHJvd24gKG9ubHkgYXZhaWxhYmxlIG9uIFY4KVxyXG4gICAgICAgIGlmIChFcnJvci5jYXB0dXJlU3RhY2tUcmFjZSkge1xyXG4gICAgICAgICAgICBFcnJvci5jYXB0dXJlU3RhY2tUcmFjZSh0aGlzLCBFc29sdmVIdHRwRXJyb3IpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5uYW1lID0gJ0Vzb2x2ZUh0dHBFcnJvcic7XHJcbiAgICAgICAgdGhpcy50eXBlID0gdHlwZTtcclxuICAgICAgICB0aGlzLmVycm9yX2NvZGUgPSBjb2RlO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==","import { HttpErrorResponse } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { throwError } from 'rxjs';\r\nimport { EsolveHttpError } from './esolve-http-error.model';\r\nimport * as i0 from \"@angular/core\";\r\nexport class EsolveErrorHandlerService {\r\n constructor() { }\r\n throwError(code, message) {\r\n throw new EsolveHttpError('error', message, code);\r\n }\r\n emitError(code, message) {\r\n return throwError(() => new EsolveHttpError('error', message, code));\r\n }\r\n handleHttpPostError(service_type, errorRes) {\r\n if (!(errorRes instanceof HttpErrorResponse) &&\r\n !('service_type' in errorRes) &&\r\n (('id' in errorRes) &&\r\n ('esolve_id' in errorRes) &&\r\n ('transaction_type' in errorRes) &&\r\n ('status' in errorRes) &&\r\n ('log' in errorRes))) {\r\n return throwError(() => this.parsePostErrors(errorRes));\r\n }\r\n return this.handleHttpError(service_type, errorRes);\r\n }\r\n handleHttpDeleteError(service_type, errorRes) {\r\n const is_not_base = (!(errorRes instanceof HttpErrorResponse) &&\r\n !('service_type' in errorRes) &&\r\n (('id' in errorRes) &&\r\n ('status' in errorRes) &&\r\n ('message' in errorRes) &&\r\n ('code' in errorRes)));\r\n if (is_not_base) {\r\n return throwError(() => this.parseDeleteError(errorRes));\r\n }\r\n return this.handleHttpError(service_type, errorRes);\r\n }\r\n handleHttpError(service_type, error_response) {\r\n if (error_response instanceof HttpErrorResponse) {\r\n if (error_response.status === 500) {\r\n const server_error = error_response.error;\r\n if (('service_type' in server_error) &&\r\n (server_error.service_type === service_type)) {\r\n return throwError(() => this.parseException(server_error));\r\n }\r\n }\r\n }\r\n else {\r\n if (('service_type' in error_response) &&\r\n (error_response.service_type === service_type)) {\r\n if (error_response.type === 'exception') {\r\n return throwError(() => this.parseException(error_response));\r\n }\r\n else if (error_response.type === 'error') {\r\n return throwError(() => this.parseResponseError(error_response));\r\n }\r\n }\r\n }\r\n return throwError(() => error_response);\r\n }\r\n parseException(exception) {\r\n const error = new EsolveHttpError('exception', exception.message || 'Unknown exception has occurred', exception.additional_data.exception_type || 'unknown');\r\n return error;\r\n }\r\n parseResponseError(exception) {\r\n const error = new EsolveHttpError('error', exception.message || 'Unknown error has occurred', exception.code || 'unknown');\r\n return error;\r\n }\r\n parsePostErrors(response) {\r\n let error_code = 'unknown';\r\n let message = 'Unknown error has occurred';\r\n if ((response.status.state === 'none') && (response.log.length > 0)) {\r\n error_code = 'no_response';\r\n message = 'Response was provided';\r\n }\r\n else if (response.status.state === 'error') {\r\n const login_error_log = response.log[0];\r\n error_code = login_error_log.message_code;\r\n message = login_error_log.message;\r\n }\r\n return new EsolveHttpError('error', error_code, message);\r\n }\r\n parseDeleteError(result) {\r\n return new EsolveHttpError('error', result.message, result.code);\r\n }\r\n}\r\nEsolveErrorHandlerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveErrorHandlerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\r\nEsolveErrorHandlerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveErrorHandlerService, providedIn: 'root' });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveErrorHandlerService, decorators: [{\r\n type: Injectable,\r\n args: [{\r\n providedIn: 'root',\r\n }]\r\n }], ctorParameters: function () { return []; } });\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWVycm9yLWhhbmRsZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9zaGFyZWQvZXJyb3JzL2Vzb2x2ZS1lcnJvci1oYW5kbGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQWMsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBUzlDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7QUFLNUQsTUFBTSxPQUFPLHlCQUF5QjtJQUNsQyxnQkFBZ0IsQ0FBQztJQUVWLFVBQVUsQ0FBQyxJQUFZLEVBQUUsT0FBZTtRQUMzQyxNQUFNLElBQUksZUFBZSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVNLFNBQVMsQ0FBQyxJQUFZLEVBQUUsT0FBZTtRQUMxQyxPQUFPLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLGVBQWUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVNLG1CQUFtQixDQUN0QixZQUFvQixFQUNwQixRQUF3RTtRQUV4RSxJQUNJLENBQUMsQ0FBQyxRQUFRLFlBQVksaUJBQWlCLENBQUM7WUFDeEMsQ0FBQyxDQUFDLGNBQWMsSUFBSSxRQUFRLENBQUM7WUFDN0IsQ0FDSSxDQUFDLElBQUksSUFBSSxRQUFRLENBQUM7Z0JBQ2xCLENBQUMsV0FBVyxJQUFJLFFBQVEsQ0FBQztnQkFDekIsQ0FBQyxrQkFBa0IsSUFBSSxRQUFRLENBQUM7Z0JBQ2hDLENBQUMsUUFBUSxJQUFJLFFBQVEsQ0FBQztn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QUE0QixDQUFDO1FBRzNDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssS0FBSyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxFQUFFO1lBQ2pFLFVBQVUsR0FBRyxhQUFhLENBQUM7WUFDM0IsT0FBTyxHQUFHLHVCQUF1QixDQUFDO1NBQ3JDO2FBQU0sSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssS0FBSyxPQUFPLEVBQUU7WUFDMUMsTUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUV4QyxVQUFVLEdBQUcsZUFBZSxDQUFDLFlBQVksQ0FBQztZQUMxQyxPQUFPLEdBQUcsZUFBZSxDQUFDLE9BQU8sQ0FBQztTQUNyQztRQUVELE9BQU8sSUFBSSxlQUFlLENBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRU8sZ0JBQWdCLENBQUMsTUFBMEI7UUFDL0MsT0FBTyxJQUFJLGVBQWUsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckUsQ0FBQzs7c0hBN0hRLHlCQUF5QjswSEFBekIseUJBQXlCLGNBRnRCLE1BQU07MkZBRVQseUJBQXlCO2tCQUhyQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQge1xyXG4gICAgRXNvbHZlUmVzcG9uc2UsXHJcbiAgICBFc29sdmVEZWxldGVSZXN1bHQsXHJcbiAgICBFc29sdmVQb3N0UmVzcG9uc2VJdGVtLFxyXG4gICAgRXNvbHZlRGVsZXRlUmVzcG9uc2UsXHJcbiAgICBFc29sdmVTZXRSZXNwb25zZSxcclxufSBmcm9tICcuLi9yZXNwb25zZSc7XHJcbmltcG9ydCB7IEVzb2x2ZUh0dHBFcnJvciB9IGZyb20gJy4vZXNvbHZlLWh0dHAtZXJyb3IubW9kZWwnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRXNvbHZlRXJyb3JIYW5kbGVyU2VydmljZSB7XHJcbiAgICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICAgIHB1YmxpYyB0aHJvd0Vycm9yKGNvZGU6IHN0cmluZywgbWVzc2FnZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVzb2x2ZUh0dHBFcnJvcignZXJyb3InLCBtZXNzYWdlLCBjb2RlKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZW1pdEVycm9yKGNvZGU6IHN0cmluZywgbWVzc2FnZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxuZXZlcj4ge1xyXG4gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IG5ldyBFc29sdmVIdHRwRXJyb3IoJ2Vycm9yJywgbWVzc2FnZSwgY29kZSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBoYW5kbGVIdHRwUG9zdEVycm9yKFxyXG4gICAgICAgIHNlcnZpY2VfdHlwZTogc3RyaW5nLFxyXG4gICAgICAgIGVycm9yUmVzOiBIdHRwRXJyb3JSZXNwb25zZSB8IEVzb2x2ZVNldFJlc3BvbnNlIHwgRXNvbHZlUG9zdFJlc3BvbnNlSXRlbSxcclxuICAgICk6IE9ic2VydmFibGU8bmV2ZXI+IHtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICEoZXJyb3JSZXMgaW5zdGFuY2VvZiBIdHRwRXJyb3JSZXNwb25zZSkgJiZcclxuICAgICAgICAgICAgISgnc2VydmljZV90eXBlJyBpbiBlcnJvclJlcykgJiZcclxuICAgICAgICAgICAgKFxyXG4gICAgICAgICAgICAgICAgKCdpZCcgaW4gZXJyb3JSZXMpICYmXHJcbiAgICAgICAgICAgICAgICAoJ2Vzb2x2ZV9pZCcgaW4gZXJyb3JSZXMpICYmXHJcbiAgICAgICAgICAgICAgICAoJ3RyYW5zYWN0aW9uX3R5cGUnIGluIGVycm9yUmVzKSAmJlxyXG4gICAgICAgICAgICAgICAgKCdzdGF0dXMnIGluIGVycm9yUmVzKSAmJlxyXG4gICAgICAgICAgICAgICAgKCdsb2cnIGluIGVycm9yUmVzKVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IHRoaXMucGFyc2VQb3N0RXJyb3JzKGVycm9yUmVzKSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5oYW5kbGVIdHRwRXJyb3Ioc2VydmljZV90eXBlLCBlcnJvclJlcyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGhhbmRsZUh0dHBEZWxldGVFcnJvcihcclxuICAgICAgICBzZXJ2aWNlX3R5cGU6IHN0cmluZyxcclxuICAgICAgICBlcnJvclJlczogSHR0cEVycm9yUmVzcG9uc2UgfCBFc29sdmVEZWxldGVSZXNwb25zZSB8IEVzb2x2ZURlbGV0ZVJlc3VsdCxcclxuICAgICk6IE9ic2VydmFibGU8bmV2ZXI+IHtcclxuICAgICAgICBjb25zdCBpc19ub3RfYmFzZSA9IChcclxuICAgICAgICAgICAgIShlcnJvclJlcyBpbnN0YW5jZW9mIEh0dHBFcnJvclJlc3BvbnNlKSAmJlxyXG4gICAgICAgICAgICAhKCdzZXJ2aWNlX3R5cGUnIGluIGVycm9yUmVzKSAmJlxyXG4gICAgICAgICAgICAoXHJcbiAgICAgICAgICAgICAgICAoJ2lkJyBpbiBlcnJvclJlcykgJiZcclxuICAgICAgICAgICAgICAgICgnc3RhdHVzJyBpbiBlcnJvclJlcykgJiZcclxuICAgICAgICAgICAgICAgICgnbWVzc2FnZScgaW4gZXJyb3JSZXMpICYmXHJcbiAgICAgICAgICAgICAgICAoJ2NvZGUnIGluIGVycm9yUmVzKVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgaWYgKGlzX25vdF9iYXNlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IHRoaXMucGFyc2VEZWxldGVFcnJvcihlcnJvclJlcykpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlSHR0cEVycm9yKHNlcnZpY2VfdHlwZSwgZXJyb3JSZXMpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaGFuZGxlSHR0cEVycm9yKFxyXG4gICAgICAgIHNlcnZpY2VfdHlwZTogc3RyaW5nLFxyXG4gICAgICAgIGVycm9yX3Jlc3BvbnNlOiBIdHRwRXJyb3JSZXNwb25zZSB8IEVzb2x2ZVJlc3BvbnNlLFxyXG4gICAgKTogT2JzZXJ2YWJsZTxuZXZlcj4ge1xyXG4gICAgICAgIGlmIChlcnJvcl9yZXNwb25zZSBpbnN0YW5jZW9mIEh0dHBFcnJvclJlc3BvbnNlKSB7XHJcbiAgICAgICAgICAgIGlmIChlcnJvcl9yZXNwb25zZS5zdGF0dXMgPT09IDUwMCkge1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgc2VydmVyX2Vycm9yID0gZXJyb3JfcmVzcG9uc2UuZXJyb3I7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICAgICgnc2VydmljZV90eXBlJyBpbiBzZXJ2ZXJfZXJyb3IpICYmXHJcbiAgICAgICAgICAgICAgICAgICAgKHNlcnZlcl9lcnJvci5zZXJ2aWNlX3R5cGUgPT09IHNlcnZpY2VfdHlwZSlcclxuICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IHRoaXMucGFyc2VFeGNlcHRpb24oc2VydmVyX2Vycm9yIGFzIEVzb2x2ZVJlc3BvbnNlKSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAoJ3NlcnZpY2VfdHlwZScgaW4gZXJyb3JfcmVzcG9uc2UpICYmXHJcbiAgICAgICAgICAgICAgICAoZXJyb3JfcmVzcG9uc2Uuc2VydmljZV90eXBlID09PSBzZXJ2aWNlX3R5cGUpXHJcbiAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgaWYgKGVycm9yX3Jlc3BvbnNlLnR5cGUgPT09ICdleGNlcHRpb24nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gdGhpcy5wYXJzZUV4Y2VwdGlvbihlcnJvcl9yZXNwb25zZSkpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChlcnJvcl9yZXNwb25zZS50eXBlID09PSAnZXJyb3InKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gdGhpcy5wYXJzZVJlc3BvbnNlRXJyb3IoZXJyb3JfcmVzcG9uc2UpKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZXJyb3JfcmVzcG9uc2UpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgcGFyc2VFeGNlcHRpb24oZXhjZXB0aW9uOiBFc29sdmVSZXNwb25zZSk6IEVzb2x2ZUh0dHBFcnJvciB7XHJcbiAgICAgICAgY29uc3QgZXJyb3IgPSBuZXcgRXNvbHZlSHR0cEVycm9yKFxyXG4gICAgICAgICAgICAnZXhjZXB0aW9uJyxcclxuICAgICAgICAgICAgZXhjZXB0aW9uLm1lc3NhZ2UgfHwgJ1Vua25vd24gZXhjZXB0aW9uIGhhcyBvY2N1cnJlZCcsXHJcbiAgICAgICAgICAgIGV4Y2VwdGlvbi5hZGRpdGlvbmFsX2RhdGEuZXhjZXB0aW9uX3R5cGUgfHwgJ3Vua25vd24nLFxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIHJldHVybiBlcnJvcjtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHBhcnNlUmVzcG9uc2VFcnJvcihleGNlcHRpb246IEVzb2x2ZVJlc3BvbnNlKTogRXNvbHZlSHR0cEVycm9yIHtcclxuICAgICAgICBjb25zdCBlcnJvciA9IG5ldyBFc29sdmVIdHRwRXJyb3IoXHJcbiAgICAgICAgICAgICdlcnJvcicsXHJcbiAgICAgICAgICAgIGV4Y2VwdGlvbi5tZXNzYWdlIHx8ICdVbmtub3duIGVycm9yIGhhcyBvY2N1cnJlZCcsXHJcbiAgICAgICAgICAgIGV4Y2VwdGlvbi5jb2RlIHx8ICd1bmtub3duJyxcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICByZXR1cm4gZXJyb3I7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBwYXJzZVBvc3RFcnJvcnMocmVzcG9uc2U6IEVzb2x2ZVBvc3RSZXNwb25zZUl0ZW0pOiBFc29sdmVIdHRwRXJyb3Ige1xyXG4gICAgICAgIGxldCBlcnJvcl9jb2RlID0gJ3Vua25vd24nO1xyXG4gICAgICAgIGxldCBtZXNzYWdlID0gJ1Vua25vd24gZXJyb3IgaGFzIG9jY3VycmVkJztcclxuXHJcblxyXG4gICAgICAgIGlmICgocmVzcG9uc2Uuc3RhdHVzLnN0YXRlID09PSAnbm9uZScpICYmIChyZXNwb25zZS5sb2cubGVuZ3RoID4gMCkpIHtcclxuICAgICAgICAgICAgZXJyb3JfY29kZSA9ICdub19yZXNwb25zZSc7XHJcbiAgICAgICAgICAgIG1lc3NhZ2UgPSAnUmVzcG9uc2Ugd2FzIHByb3ZpZGVkJztcclxuICAgICAgICB9IGVsc2UgaWYgKHJlc3BvbnNlLnN0YXR1cy5zdGF0ZSA9PT0gJ2Vycm9yJykge1xyXG4gICAgICAgICAgICBjb25zdCBsb2dpbl9lcnJvcl9sb2cgPSByZXNwb25zZS5sb2dbMF07XHJcblxyXG4gICAgICAgICAgICBlcnJvcl9jb2RlID0gbG9naW5fZXJyb3JfbG9nLm1lc3NhZ2VfY29kZTtcclxuICAgICAgICAgICAgbWVzc2FnZSA9IGxvZ2luX2Vycm9yX2xvZy5tZXNzYWdlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIG5ldyBFc29sdmVIdHRwRXJyb3IoJ2Vycm9yJywgZXJyb3JfY29kZSwgbWVzc2FnZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBwYXJzZURlbGV0ZUVycm9yKHJlc3VsdDogRXNvbHZlRGVsZXRlUmVzdWx0KTogRXNvbHZlSHR0cEVycm9yIHtcclxuICAgICAgICByZXR1cm4gbmV3IEVzb2x2ZUh0dHBFcnJvcignZXJyb3InLCByZXN1bHQubWVzc2FnZSwgcmVzdWx0LmNvZGUpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==","// Types\r\nexport * from './esolve-sort-order.type';\r\n// Interfaces\r\nexport * from './esolve-sort.interface';\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvc2hhcmVkL3NvcnQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsUUFBUTtBQUNSLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsYUFBYTtBQUNiLGNBQWMseUJBQXlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUeXBlc1xyXG5leHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS1zb3J0LW9yZGVyLnR5cGUnO1xyXG4vLyBJbnRlcmZhY2VzXHJcbmV4cG9ydCAqIGZyb20gJy4vZXNvbHZlLXNvcnQuaW50ZXJmYWNlJztcclxuIl19","/**\r\n * Search Engine Optimization information.\r\n */\r\nexport class EsolveSeoInfo {\r\n constructor(title = '', description = '', keywords = '') {\r\n this.title = title;\r\n this.description = description;\r\n this.keywords = keywords;\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXNlby1pbmZvLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL3NoYXJlZC9zZW8vZXNvbHZlLXNlby1pbmZvLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGFBQWE7SUFDdEIsWUFDVyxRQUFnQixFQUFFLEVBQ2xCLGNBQXNCLEVBQUUsRUFDeEIsV0FBbUIsRUFBRTtRQUZyQixVQUFLLEdBQUwsS0FBSyxDQUFhO1FBQ2xCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLGFBQVEsR0FBUixRQUFRLENBQWE7SUFDNUIsQ0FBQztDQUNSIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIFNlYXJjaCBFbmdpbmUgT3B0aW1pemF0aW9uIGluZm9ybWF0aW9uLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEVzb2x2ZVNlb0luZm8ge1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHVibGljIHRpdGxlOiBzdHJpbmcgPSAnJyxcclxuICAgICAgICBwdWJsaWMgZGVzY3JpcHRpb246IHN0cmluZyA9ICcnLFxyXG4gICAgICAgIHB1YmxpYyBrZXl3b3Jkczogc3RyaW5nID0gJycsXHJcbiAgICApIHsgfVxyXG59XHJcbiJdfQ==","import { Inject, Injectable } from '@angular/core';\r\nimport { Meta, Title } from '@angular/platform-browser';\r\nimport { ESOLVE_CONNECT_CONFIG } from '../../esolve-connect-config.constant';\r\nimport { EsolveSeoInfo } from './esolve-seo-info.model';\r\nimport * as i0 from \"@angular/core\";\r\nimport * as i1 from \"@angular/platform-browser\";\r\nexport class EsolveSeoService {\r\n constructor(config, title, meta) {\r\n this.config = config;\r\n this.title = title;\r\n this.meta = meta;\r\n this.title_prefix = '';\r\n this.title_suffix = '';\r\n this.title_separator = '|';\r\n this.default_seo_title = '';\r\n this.default_seo_description = '';\r\n this.default_seo_keywords = '';\r\n this.init();\r\n }\r\n /**\r\n * Sets SEO tags for page\r\n * @param seoInfo SEO object\r\n */\r\n setTags(seoInfo) {\r\n seoInfo = this.validateAndSanitizeSeoInfo(seoInfo);\r\n this.setPageTitleTags(seoInfo.title);\r\n this.setPageDescriptionTags(seoInfo.description);\r\n this.setPageKeywordsTags(seoInfo.keywords);\r\n }\r\n init() {\r\n if (typeof this.config.title_prefix !== 'undefined') {\r\n this.title_prefix = this.config.title_prefix;\r\n }\r\n if (typeof this.config.title_suffix !== 'undefined') {\r\n this.title_suffix = this.config.title_suffix;\r\n }\r\n if (typeof this.config.title_separator !== 'undefined') {\r\n this.title_separator = this.config.title_separator;\r\n }\r\n if (typeof this.config.default_seo_title !== 'undefined') {\r\n this.default_seo_title = this.config.default_seo_title;\r\n }\r\n if (typeof this.config.default_seo_description !== 'undefined') {\r\n this.default_seo_description = this.config.default_seo_description;\r\n }\r\n if (typeof this.config.default_seo_keywords !== 'undefined') {\r\n this.default_seo_keywords = this.config.default_seo_keywords;\r\n }\r\n }\r\n setPageTitleTags(title) {\r\n this.title.setTitle(title);\r\n this.meta.updateTag({ property: 'og:title', content: title });\r\n }\r\n setPageDescriptionTags(description) {\r\n this.meta.updateTag({ name: 'description', content: description });\r\n this.meta.updateTag({ property: 'og:description', content: description });\r\n }\r\n setPageKeywordsTags(keywords) {\r\n this.meta.updateTag({ name: 'keywords', content: keywords });\r\n }\r\n validateAndSanitizeSeoInfo(seoInfo) {\r\n const pageSeo = new EsolveSeoInfo(this.default_seo_title, this.default_seo_description, this.default_seo_keywords);\r\n if (seoInfo.description.trim() !== '') {\r\n pageSeo.description = seoInfo.description;\r\n }\r\n if (seoInfo.title.trim() !== '') {\r\n const titlePartsArray = [];\r\n if (this.title_prefix !== '') {\r\n titlePartsArray.push(this.title_prefix);\r\n if (this.title_separator !== '') {\r\n titlePartsArray.push(this.title_separator);\r\n }\r\n }\r\n titlePartsArray.push(seoInfo.title);\r\n if (this.title_suffix !== '') {\r\n if (this.title_separator !== '') {\r\n titlePartsArray.push(this.title_separator);\r\n }\r\n titlePartsArray.push(this.title_suffix);\r\n }\r\n pageSeo.title = titlePartsArray.join(' ');\r\n if (seoInfo.keywords.trim() === '') {\r\n const clean_title = seoInfo.title.replace(/[^a-zA-Z0-9\\. ]+/gi, '').trim();\r\n const keywords = clean_title.split(' ');\r\n const clean_keywords = [];\r\n for (let keyword of keywords) {\r\n keyword = keyword.trim();\r\n if (keyword.length > 2) {\r\n keyword = keyword.toLocaleLowerCase();\r\n if (!clean_keywords.includes(keyword)) {\r\n clean_keywords.push(keyword);\r\n }\r\n }\r\n }\r\n seoInfo.keywords = clean_keywords.join(',');\r\n }\r\n }\r\n if (seoInfo.keywords.trim() !== '') {\r\n pageSeo.keywords = seoInfo.keywords;\r\n }\r\n return pageSeo;\r\n }\r\n}\r\nEsolveSeoService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveSeoService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1.Title }, { token: i1.Meta }], target: i0.ɵɵFactoryTarget.Injectable });\r\nEsolveSeoService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveSeoService, providedIn: 'root' });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveSeoService, decorators: [{\r\n type: Injectable,\r\n args: [{\r\n providedIn: 'root',\r\n }]\r\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\r\n type: Inject,\r\n args: [ESOLVE_CONNECT_CONFIG]\r\n }] }, { type: i1.Title }, { type: i1.Meta }]; } });\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXNlby5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL3NoYXJlZC9zZW8vZXNvbHZlLXNlby5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFHeEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFFN0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7QUFLeEQsTUFBTSxPQUFPLGdCQUFnQjtJQVN6QixZQUMyQyxNQUEyQixFQUMxRCxLQUFZLEVBQ1osSUFBVTtRQUZxQixXQUFNLEdBQU4sTUFBTSxDQUFxQjtRQUMxRCxVQUFLLEdBQUwsS0FBSyxDQUFPO1FBQ1osU0FBSSxHQUFKLElBQUksQ0FBTTtRQVhkLGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLG9CQUFlLEdBQUcsR0FBRyxDQUFDO1FBRXRCLHNCQUFpQixHQUFHLEVBQUUsQ0FBQztRQUN2Qiw0QkFBdUIsR0FBRyxFQUFFLENBQUM7UUFDN0IseUJBQW9CLEdBQUcsRUFBRSxDQUFDO1FBTzlCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNoQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssT0FBTyxDQUFDLE9BQXNCO1FBQ2xDLE9BQU8sR0FBRyxJQUFJLENBQUMsMEJBQTBCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFbkQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsT0FBTyxDQUFDLFdB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QUMsUUFBUSxHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDL0M7U0FDSjtRQUVELElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDaEMsT0FBTyxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDO1NBQ3ZDO1FBRUQsT0FBTyxPQUFPLENBQUM7SUFDbkIsQ0FBQzs7NkdBL0hRLGdCQUFnQixrQkFVYixxQkFBcUI7aUhBVnhCLGdCQUFnQixjQUZiLE1BQU07MkZBRVQsZ0JBQWdCO2tCQUg1QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7MEJBV1EsTUFBTTsyQkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWV0YSwgVGl0bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuXHJcbmltcG9ydCB7IEVzb2x2ZUNvbm5lY3RDb25maWcgfSBmcm9tICcuLi8uLi9lc29sdmUtY29ubmVjdC5jb25maWcnO1xyXG5pbXBvcnQgeyBFU09MVkVfQ09OTkVDVF9DT05GSUcgfSBmcm9tICcuLi8uLi9lc29sdmUtY29ubmVjdC1jb25maWcuY29uc3RhbnQnO1xyXG5cclxuaW1wb3J0IHsgRXNvbHZlU2VvSW5mbyB9IGZyb20gJy4vZXNvbHZlLXNlby1pbmZvLm1vZGVsJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEVzb2x2ZVNlb1NlcnZpY2Uge1xyXG4gICAgcHJpdmF0ZSB0aXRsZV9wcmVmaXggPSAnJztcclxuICAgIHByaXZhdGUgdGl0bGVfc3VmZml4ID0gJyc7XHJcbiAgICBwcml2YXRlIHRpdGxlX3NlcGFyYXRvciA9ICd8JztcclxuXHJcbiAgICBwcml2YXRlIGRlZmF1bHRfc2VvX3RpdGxlID0gJyc7XHJcbiAgICBwcml2YXRlIGRlZmF1bHRfc2VvX2Rlc2NyaXB0aW9uID0gJyc7XHJcbiAgICBwcml2YXRlIGRlZmF1bHRfc2VvX2tleXdvcmRzID0gJyc7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgQEluamVjdChFU09MVkVfQ09OTkVDVF9DT05GSUcpIHByaXZhdGUgY29uZmlnOiBFc29sdmVDb25uZWN0Q29uZmlnLFxyXG4gICAgICAgIHByaXZhdGUgdGl0bGU6IFRpdGxlLFxyXG4gICAgICAgIHByaXZhdGUgbWV0YTogTWV0YSxcclxuICAgICkge1xyXG4gICAgICAgIHRoaXMuaW5pdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyBTRU8gdGFncyBmb3IgcGFnZVxyXG4gICAgICogQHBhcmFtIHNlb0luZm8gU0VPIG9iamVjdFxyXG4gICAgICovXHJcbiAgICAgcHVibGljIHNldFRhZ3Moc2VvSW5mbzogRXNvbHZlU2VvSW5mbyk6IHZvaWQge1xyXG4gICAgICAgIHNlb0luZm8gPSB0aGlzLnZhbGlkYXRlQW5kU2FuaXRpemVTZW9JbmZvKHNlb0luZm8pO1xyXG5cclxuICAgICAgICB0aGlzLnNldFBhZ2VUaXRsZVRhZ3Moc2VvSW5mby50aXRsZSk7XHJcbiAgICAgICAgdGhpcy5zZXRQYWdlRGVzY3JpcHRpb25UYWdzKHNlb0luZm8uZGVzY3JpcHRpb24pO1xyXG4gICAgICAgIHRoaXMuc2V0UGFnZUtleXdvcmRzVGFncyhzZW9JbmZvLmtleXdvcmRzKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmNvbmZpZy50aXRsZV9wcmVmaXggIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgICAgIHRoaXMudGl0bGVfcHJlZml4ID0gdGhpcy5jb25maWcudGl0bGVfcHJlZml4O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmNvbmZpZy50aXRsZV9zdWZmaXggIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgICAgIHRoaXMudGl0bGVfc3VmZml4ID0gdGhpcy5jb25maWcudGl0bGVfc3VmZml4O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmNvbmZpZy50aXRsZV9zZXBhcmF0b3IgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgICAgIHRoaXMudGl0bGVfc2VwYXJhdG9yID0gdGhpcy5jb25maWcudGl0bGVfc2VwYXJhdG9yO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmNvbmZpZy5kZWZhdWx0X3Nlb190aXRsZSAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgICAgICAgdGhpcy5kZWZhdWx0X3Nlb190aXRsZSA9IHRoaXMuY29uZmlnLmRlZmF1bHRfc2VvX3RpdGxlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmNvbmZpZy5kZWZhdWx0X3Nlb19kZXNjcmlwdGlvbiAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgICAgICAgdGhpcy5kZWZhdWx0X3Nlb19kZXNjcmlwdGlvbiA9IHRoaXMuY29uZmlnLmRlZmF1bHRfc2VvX2Rlc2NyaXB0aW9uO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmNvbmZpZy5kZWZhdWx0X3Nlb19rZXl3b3JkcyAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgICAgICAgdGhpcy5kZWZhdWx0X3Nlb19rZXl3b3JkcyA9IHRoaXMuY29uZmlnLmRlZmF1bHRfc2VvX2tleXdvcmRzO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHNldFBhZ2VUaXRsZVRhZ3ModGl0bGU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMudGl0bGUuc2V0VGl0bGUodGl0bGUpO1xyXG4gICAgICAgIHRoaXMubWV0YS51cGRhdGVUYWcoeyBwcm9wZXJ0eTogJ29nOnRpdGxlJywgY29udGVudDogdGl0bGUgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzZXRQYWdlRGVzY3JpcHRpb25UYWdzKGRlc2NyaXB0aW9uOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm1ldGEudXBkYXRlVGFnKHsgbmFtZTogJ2Rlc2NyaXB0aW9uJywgY29udGVudDogZGVzY3JpcHRpb24gfSk7XHJcbiAgICAgICAgdGhpcy5tZXRhLnVwZGF0ZVRhZyh7IHByb3BlcnR5OiAnb2c6ZGVzY3JpcHRpb24nLCBjb250ZW50OiBkZXNjcmlwdGlvbiB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHNldFBhZ2VLZXl3b3Jkc1RhZ3Moa2V5d29yZHM6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMubWV0YS51cGRhdGVUYWcoeyBuYW1lOiAna2V5d29yZHMnLCBjb250ZW50OiBrZXl3b3JkcyB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHZhbGlkYXRlQW5kU2FuaXRpemVTZW9JbmZvKHNlb0luZm86IEVzb2x2ZVNlb0luZm8pOiBFc29sdmVTZW9JbmZvIHtcclxuICAgICAgICBjb25zdCBwYWdlU2VvID0gbmV3IEVzb2x2ZVNlb0luZm8oXHJcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdF9zZW9fdGl0bGUsXHJcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdF9zZW9fZGVzY3JpcHRpb24sXHJcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdF9zZW9fa2V5d29yZHMsXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgaWYgKHNlb0luZm8uZGVzY3JpcHRpb24udHJpbSgpICE9PSAnJykge1xyXG4gICAgICAgICAgICBwYWdlU2VvLmRlc2NyaXB0aW9uID0gc2VvSW5mby5kZXNjcmlwdGlvbjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChzZW9JbmZvLnRpdGxlLnRyaW0oKSAhPT0gJycpIHtcclxuICAgICAgICAgICAgY29uc3QgdGl0bGVQYXJ0c0FycmF5ID0gW107XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy50aXRsZV9wcmVmaXggIT09ICcnKSB7XHJcbiAgICAgICAgICAgICAgICB0aXRsZVBhcnRzQXJyYXkucHVzaCh0aGlzLnRpdGxlX3ByZWZpeCk7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMudGl0bGVfc2VwYXJhdG9yICE9PSAnJykge1xyXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlUGFydHNBcnJheS5wdXNoKHRoaXMudGl0bGVfc2VwYXJhdG9yKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGl0bGVQYXJ0c0FycmF5LnB1c2goc2VvSW5mby50aXRsZSk7XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy50aXRsZV9zdWZmaXggIT09ICcnKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy50aXRsZV9zZXBhcmF0b3IgIT09ICcnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGl0bGVQYXJ0c0FycmF5LnB1c2godGhpcy50aXRsZV9zZXBhcmF0b3IpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHRpdGxlUGFydHNBcnJheS5wdXNoKHRoaXMudGl0bGVfc3VmZml4KTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgcGFnZVNlby50aXRsZSA9IHRpdGxlUGFydHNBcnJheS5qb2luKCcgJyk7XHJcblxyXG4gICAgICAgICAgICBpZiAoc2VvSW5mby5rZXl3b3Jkcy50cmltKCkgPT09ICcnKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjbGVhbl90aXRsZSA9IHNlb0luZm8udGl0bGUucmVwbGFjZSgvW15hLXpBLVowLTlcXC4gXSsvZ2ksICcnKS50cmltKCk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBrZXl3b3JkcyA9IGNsZWFuX3RpdGxlLnNwbGl0KCcgJyk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjbGVhbl9rZXl3b3Jkczogc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBrZXl3b3JkIG9mIGtleXdvcmRzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAga2V5d29yZCA9IGtleXdvcmQudHJpbSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChrZXl3b3JkLmxlbmd0aCA+IDIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAga2V5d29yZCA9IGtleXdvcmQudG9Mb2NhbGVMb3dlckNhc2UoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFjbGVhbl9rZXl3b3Jkcy5pbmNsdWRlcyhrZXl3b3JkKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xlYW5fa2V5d29yZHMucHVzaChrZXl3b3JkKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBzZW9JbmZvLmtleXdvcmRzID0gY2xlYW5fa2V5d29yZHMuam9pbignLCcpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoc2VvSW5mby5rZXl3b3Jkcy50cmltKCkgIT09ICcnKSB7XHJcbiAgICAgICAgICAgIHBhZ2VTZW8ua2V5d29yZHMgPSBzZW9JbmZvLmtleXdvcmRzO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHBhZ2VTZW87XHJcbiAgICB9XHJcbn1cclxuIl19","export class EsolveGeocodeAddressResult {\r\n constructor(street_number, street, suburb, city, province, country, postal_code) {\r\n this.street_number = street_number;\r\n this.street = street;\r\n this.suburb = suburb;\r\n this.city = city;\r\n this.province = province;\r\n this.country = country;\r\n this.postal_code = postal_code;\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWdlb2NvZGUtYWRkcmVzcy1yZXN1bHQubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvc2hhcmVkL2dlb2NvZGVyL2Vzb2x2ZS1nZW9jb2RlLWFkZHJlc3MtcmVzdWx0Lm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTywwQkFBMEI7SUFDbkMsWUFDVyxhQUFxQixFQUNyQixNQUFjLEVBQ2QsTUFBYyxFQUNkLElBQVksRUFDWixRQUFnQixFQUNoQixPQUFlLEVBQ2YsV0FBbUI7UUFObkIsa0JBQWEsR0FBYixhQUFhLENBQVE7UUFDckIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxTQUFJLEdBQUosSUFBSSxDQUFRO1FBQ1osYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUNoQixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ2YsZ0JBQVcsR0FBWCxXQUFXLENBQVE7SUFDMUIsQ0FBQztDQUNSIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIEVzb2x2ZUdlb2NvZGVBZGRyZXNzUmVzdWx0IHtcclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHB1YmxpYyBzdHJlZXRfbnVtYmVyOiBzdHJpbmcsXHJcbiAgICAgICAgcHVibGljIHN0cmVldDogc3RyaW5nLFxyXG4gICAgICAgIHB1YmxpYyBzdWJ1cmI6IHN0cmluZyxcclxuICAgICAgICBwdWJsaWMgY2l0eTogc3RyaW5nLFxyXG4gICAgICAgIHB1YmxpYyBwcm92aW5jZTogc3RyaW5nLFxyXG4gICAgICAgIHB1YmxpYyBjb3VudHJ5OiBzdHJpbmcsXHJcbiAgICAgICAgcHVibGljIHBvc3RhbF9jb2RlOiBzdHJpbmcsXHJcbiAgICApIHsgfVxyXG59XHJcbiJdfQ==","export class EsolveGeocodeCoordsResult {\r\n constructor(latitude, longitude) {\r\n this.latitude = latitude;\r\n this.longitude = longitude;\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWdlb2NvZGUtY29vcmRzLXJlc3VsdC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9zaGFyZWQvZ2VvY29kZXIvZXNvbHZlLWdlb2NvZGUtY29vcmRzLXJlc3VsdC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8seUJBQXlCO0lBQ2xDLFlBQ1csUUFBZ0IsRUFDaEIsU0FBaUI7UUFEakIsYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUNoQixjQUFTLEdBQVQsU0FBUyxDQUFRO0lBQ3hCLENBQUM7Q0FDUiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBFc29sdmVHZW9jb2RlQ29vcmRzUmVzdWx0IHtcclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHB1YmxpYyBsYXRpdHVkZTogbnVtYmVyLFxyXG4gICAgICAgIHB1YmxpYyBsb25naXR1ZGU6IG51bWJlcixcclxuICAgICkgeyB9XHJcbn1cclxuIl19","export class EsolveGeocodeResult {\r\n constructor(formatted_address, address, coords, status, checksum, cached) {\r\n this.formatted_address = formatted_address;\r\n this.address = address;\r\n this.coords = coords;\r\n this.status = status;\r\n this.checksum = checksum;\r\n this.cached = cached;\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWdlb2NvZGUtcmVzdWx0Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL3NoYXJlZC9nZW9jb2Rlci9lc29sdmUtZ2VvY29kZS1yZXN1bHQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxPQUFPLG1CQUFtQjtJQUM1QixZQUNXLGlCQUF5QixFQUN6QixPQUFtQyxFQUNuQyxNQUFpQyxFQUNqQyxNQUFjLEVBQ2QsUUFBZ0IsRUFDaEIsTUFBZTtRQUxmLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBUTtRQUN6QixZQUFPLEdBQVAsT0FBTyxDQUE0QjtRQUNuQyxXQUFNLEdBQU4sTUFBTSxDQUEyQjtRQUNqQyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUNoQixXQUFNLEdBQU4sTUFBTSxDQUFTO0lBQ3RCLENBQUM7Q0FDUiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVzb2x2ZUdlb2NvZGVBZGRyZXNzUmVzdWx0IH0gZnJvbSAnLi9lc29sdmUtZ2VvY29kZS1hZGRyZXNzLXJlc3VsdC5tb2RlbCc7XHJcbmltcG9ydCB7IEVzb2x2ZUdlb2NvZGVDb29yZHNSZXN1bHQgfSBmcm9tICcuL2Vzb2x2ZS1nZW9jb2RlLWNvb3Jkcy1yZXN1bHQubW9kZWwnO1xyXG5cclxuZXhwb3J0IGNsYXNzIEVzb2x2ZUdlb2NvZGVSZXN1bHQge1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHVibGljIGZvcm1hdHRlZF9hZGRyZXNzOiBzdHJpbmcsXHJcbiAgICAgICAgcHVibGljIGFkZHJlc3M6IEVzb2x2ZUdlb2NvZGVBZGRyZXNzUmVzdWx0LFxyXG4gICAgICAgIHB1YmxpYyBjb29yZHM6IEVzb2x2ZUdlb2NvZGVDb29yZHNSZXN1bHQsXHJcbiAgICAgICAgcHVibGljIHN0YXR1czogc3RyaW5nLFxyXG4gICAgICAgIHB1YmxpYyBjaGVja3N1bTogc3RyaW5nLFxyXG4gICAgICAgIHB1YmxpYyBjYWNoZWQ6IGJvb2xlYW4sXHJcbiAgICApIHsgfVxyXG59XHJcbiJdfQ==","import { Inject, Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { map } from 'rxjs/operators';\r\nimport { ESOLVE_CONNECT_CONFIG } from '../../esolve-connect-config.constant';\r\nimport { EsolveGeocodeResult } from './esolve-geocode-result.model';\r\nimport { EsolveGeocodeAddressResult } from './esolve-geocode-address-result.model';\r\nimport { EsolveGeocodeCoordsResult } from './esolve-geocode-coords-result.model';\r\nimport * as i0 from \"@angular/core\";\r\nimport * as i1 from \"@angular/common/http\";\r\nexport class EsolveGeocoderService {\r\n constructor(config, http) {\r\n this.config = config;\r\n this.http = http;\r\n }\r\n geocode(street_number, street, suburb, city, province, country, postal_code) {\r\n return this.http\r\n .get(`${this.config.api_url}/get-geocode.php`, {\r\n params: {\r\n street_number,\r\n street,\r\n suburb,\r\n city,\r\n province,\r\n country,\r\n postal_code,\r\n },\r\n })\r\n .pipe(map((response) => {\r\n if (response.records === undefined) {\r\n throw response;\r\n }\r\n const record = response.records;\r\n return this.processGeocodeResult(record);\r\n }));\r\n }\r\n reverseGeocode(latitude, longitude) {\r\n return this.http\r\n .get(`${this.config.api_url}/get-geocode.php`, {\r\n params: {\r\n latitude: latitude,\r\n longitude: longitude,\r\n },\r\n })\r\n .pipe(map((response) => {\r\n if (response.records === undefined) {\r\n throw response;\r\n }\r\n const record = response.records;\r\n return this.processGeocodeResult(record);\r\n }));\r\n }\r\n processGeocodeResult(record) {\r\n const geocode_address = new EsolveGeocodeAddressResult(record.address.street_number, record.address.street, record.address.suburb, record.address.city, record.address.province, record.address.country, record.address.postal_code);\r\n const geocode_coords = new EsolveGeocodeCoordsResult(record.latitude, record.longitude);\r\n const geocode_result = new EsolveGeocodeResult(record.formatted_address, geocode_address, geocode_coords, record.status, record.checksum, record.cached);\r\n return geocode_result;\r\n }\r\n}\r\nEsolveGeocoderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveGeocoderService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });\r\nEsolveGeocoderService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveGeocoderService, providedIn: 'root' });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveGeocoderService, decorators: [{\r\n type: Injectable,\r\n args: [{\r\n providedIn: 'root',\r\n }]\r\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\r\n type: Inject,\r\n args: [ESOLVE_CONNECT_CONFIG]\r\n }] }, { type: i1.HttpClient }]; } });\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWdlb2NvZGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvc2hhcmVkL2dlb2NvZGVyL2Vzb2x2ZS1nZW9jb2Rlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUdsRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHckMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFJN0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDcEUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDbkYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7OztBQUtqRixNQUFNLE9BQU8scUJBQXFCO0lBQzlCLFlBQzJDLE1BQTJCLEVBQzFELElBQWdCO1FBRGUsV0FBTSxHQUFOLE1BQU0sQ0FBcUI7UUFDMUQsU0FBSSxHQUFKLElBQUksQ0FBWTtJQUN4QixDQUFDO0lBRUUsT0FBTyxDQUNWLGFBQXFCLEVBQ3JCLE1BQWMsRUFDZCxNQUFjLEVBQ2QsSUFBWSxFQUNaLFFBQWdCLEVBQ2hCLE9BQWUsRUFDZixXQUFtQjtRQUVuQixPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ1gsR0FBRyxDQUNBLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLGtCQUFrQixFQUN4QztZQUNJLE1BQU0sRUFBRTtnQkFDSixhQUFhO2dCQUNiLE1BQU07Z0JBQ04sTUFBTTtnQkFDTixJQUFJO2dCQUNKLFFBQVE7Z0JBQ1IsT0FBTztnQkFDUCxXQUFXO2FBQ2Q7U0FDSixDQUNKO2FBQ0EsSUFBSSxDQUNELEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ2IsSUFBSSxRQUFRLENBQUMsT0FBTyxLQUFLLFNBQVMsRUFBRTtnQkFDaEMsTUFBTSxRQUFRLENBQUM7YUFDbEI7WUFFRCxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDO1lBRWhDLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdDLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDVixDQUFDO0lBRU0sY0FBYyxDQUFDLFFBQWdCLEVBQUUsU0FBaUI7UUFDckQsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNYLEdBQUcsQ0FDQSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxrQkFBa0IsRUFDeEM7WUFDSSxNQUFNLEVBQUU7Z0JBQ0osUUFBUSxFQUFFLFFBQVE7Z0JBQ2xCLFNBQVMsRUFBRSxTQUFTO2FBQ3ZCO1NBQ0osQ0FDSjthQUNBLElBQUksQ0FDRCxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUNiLElBQUksUUFBUSxDQUFDLE9BQU8sS0FBSyxTQUFTLEVBQUU7Z0JBQ2hDLE1BQU0sUUFBUSxDQUFDO2FBQ2xCO1lBRUQsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQztZQUVoQyxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3QyxDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ1YsQ0FBQztJQUVPLG9CQUFvQixDQUFDLE1BQWlDO1FBQzFELE1BQU0sZUFBZSxHQUFHLElBQUksMEJBQTBCLENBQ2xELE1BQU0sQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUM1QixNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFDckIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQ3JCLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUNuQixNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFDdkIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQ3RCLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUM3QixDQUFDO1FBRUYsTUFBTSxjQUFjLEdBQUcsSUFBSSx5QkFBeUIsQ0FDaEQsTUFBTSxDQUFDLFFBQVEsRUFDZixNQUFNLENBQUMsU0FBUyxDQUNuQixDQUFDO1FBRUYsTUFBTSxjQUFjLEdBQUcsSUFBSSxtQkFBbUIsQ0FDMUMsTUFBTSxDQUFDLGlCQUFpQixFQUN4QixlQUFlLEVBQ2YsY0FBYyxFQUNkLE1BQU0sQ0FBQyxNQUFNLEVBQ2IsTUFBTSxDQUFDLFFBQVEsRUFDZixNQUFNLENBQUMsTUFBTSxDQUNoQixDQUFDO1FBRUYsT0FBTyxjQUFjLENBQUM7SUFDMUIsQ0FBQzs7a0hBN0ZRLHFCQUFxQixrQkFFbEIscUJBQXFCO3NIQUZ4QixxQkFBcUIsY0FGbEIsTUFBTTsyRkFFVCxxQkFBcUI7a0JBSGpDLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCOzswQkFHUSxNQUFNOzJCQUFDLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5cclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBFc29sdmVDb25uZWN0Q29uZmlnIH0gZnJvbSAnLi4vLi4vZXNvbHZlLWNvbm5lY3QuY29uZmlnJztcclxuaW1wb3J0IHsgRVNPTFZFX0NPTk5FQ1RfQ09ORklHIH0gZnJvbSAnLi4vLi4vZXNvbHZlLWNvbm5lY3QtY29uZmlnLmNvbnN0YW50JztcclxuaW1wb3J0IHsgRXNvbHZlR2V0UmVzcG9uc2UgfSBmcm9tICcuLi9yZXNwb25zZSc7XHJcblxyXG5pbXBvcnQgeyBFc29sdmVHZW9jb2RlUmVzdWx0UmVjb3JkIH0gZnJvbSAnLi9lc29sdmUtZ2VvY29kZS1yZXN1bHQtcmVjb3JkLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IEVzb2x2ZUdlb2NvZGVSZXN1bHQgfSBmcm9tICcuL2Vzb2x2ZS1nZW9jb2RlLXJlc3VsdC5tb2RlbCc7XHJcbmltcG9ydCB7IEVzb2x2ZUdlb2NvZGVBZGRyZXNzUmVzdWx0IH0gZnJvbSAnLi9lc29sdmUtZ2VvY29kZS1hZGRyZXNzLXJlc3VsdC5tb2RlbCc7XHJcbmltcG9ydCB7IEVzb2x2ZUdlb2NvZGVDb29yZHNSZXN1bHQgfSBmcm9tICcuL2Vzb2x2ZS1nZW9jb2RlLWNvb3Jkcy1yZXN1bHQubW9kZWwnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRXNvbHZlR2VvY29kZXJTZXJ2aWNlIHtcclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIEBJbmplY3QoRVNPTFZFX0NPTk5FQ1RfQ09ORklHKSBwcml2YXRlIGNvbmZpZzogRXNvbHZlQ29ubmVjdENvbmZpZyxcclxuICAgICAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICApIHsgfVxyXG5cclxuICAgIHB1YmxpYyBnZW9jb2RlKFxyXG4gICAgICAgIHN0cmVldF9udW1iZXI6IHN0cmluZyxcclxuICAgICAgICBzdHJlZXQ6IHN0cmluZyxcclxuICAgICAgICBzdWJ1cmI6IHN0cmluZyxcclxuICAgICAgICBjaXR5OiBzdHJpbmcsXHJcbiAgICAgICAgcHJvdmluY2U6IHN0cmluZyxcclxuICAgICAgICBjb3VudHJ5OiBzdHJpbmcsXHJcbiAgICAgICAgcG9zdGFsX2NvZGU6IHN0cmluZyxcclxuICAgICk6IE9ic2VydmFibGU8RXNvbHZlR2VvY29kZVJlc3VsdD4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgICAgICAgLmdldDxFc29sdmVHZXRSZXNwb25zZTxFc29sdmVHZW9jb2RlUmVzdWx0UmVjb3JkPj4oXHJcbiAgICAgICAgICAgICAgICBgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9nZXQtZ2VvY29kZS5waHBgLFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHBhcmFtczoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJlZXRfbnVtYmVyLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJlZXQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1YnVyYixcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2l0eSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmluY2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50cnksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc3RhbF9jb2RlLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5yZWNvcmRzID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICBjb25zdCByZWNvcmQgPSByZXNwb25zZS5yZWNvcmRzO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzR2VvY29kZVJlc3VsdChyZWNvcmQpO1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHJldmVyc2VHZW9jb2RlKGxhdGl0dWRlOiBudW1iZXIsIGxvbmdpdHVkZTogbnVtYmVyKTogT2JzZXJ2YWJsZTxFc29sdmVHZW9jb2RlUmVzdWx0PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAgICAgICAuZ2V0PEVzb2x2ZUdldFJlc3BvbnNlPEVzb2x2ZUdlb2NvZGVSZXN1bHRSZWNvcmQ+PihcclxuICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L2dldC1nZW9jb2RlLnBocGAsXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFyYW1zOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhdGl0dWRlOiBsYXRpdHVkZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgbG9uZ2l0dWRlOiBsb25naXR1ZGUsXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnJlY29yZHMgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyByZXNwb25zZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlY29yZCA9IHJlc3BvbnNlLnJlY29yZHM7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NHZW9jb2RlUmVzdWx0KHJlY29yZCk7XHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHByb2Nlc3NHZW9jb2RlUmVzdWx0KHJlY29yZDogRXNvbHZlR2VvY29kZVJlc3VsdFJlY29yZCk6IEVzb2x2ZUdlb2NvZGVSZXN1bHQge1xyXG4gICAgICAgIGNvbnN0IGdlb2NvZGVfYWRkcmVzcyA9IG5ldyBFc29sdmVHZW9jb2RlQWRkcmVzc1Jlc3VsdChcclxuICAgICAgICAgICAgcmVjb3JkLmFkZHJlc3Muc3RyZWV0X251bWJlcixcclxuICAgICAgICAgICAgcmVjb3JkLmFkZHJlc3Muc3RyZWV0LFxyXG4gICAgICAgICAgICByZWNvcmQuYWRkcmVzcy5zdWJ1cmIsXHJcbiAgICAgICAgICAgIHJlY29yZC5hZGRyZXNzLmNpdHksXHJcbiAgICAgICAgICAgIHJlY29yZC5hZGRyZXNzLnByb3ZpbmNlLFxyXG4gICAgICAgICAgICByZWNvcmQuYWRkcmVzcy5jb3VudHJ5LFxyXG4gICAgICAgICAgICByZWNvcmQuYWRkcmVzcy5wb3N0YWxfY29kZSxcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICBjb25zdCBnZW9jb2RlX2Nvb3JkcyA9IG5ldyBFc29sdmVHZW9jb2RlQ29vcmRzUmVzdWx0KFxyXG4gICAgICAgICAgICByZWNvcmQubGF0aXR1ZGUsXHJcbiAgICAgICAgICAgIHJlY29yZC5sb25naXR1ZGUsXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgY29uc3QgZ2VvY29kZV9yZXN1bHQgPSBuZXcgRXNvbHZlR2VvY29kZVJlc3VsdChcclxuICAgICAgICAgICAgcmVjb3JkLmZvcm1hdHRlZF9hZGRyZXNzLFxyXG4gICAgICAgICAgICBnZW9jb2RlX2FkZHJlc3MsXHJcbiAgICAgICAgICAgIGdlb2NvZGVfY29vcmRzLFxyXG4gICAgICAgICAgICByZWNvcmQuc3RhdHVzLFxyXG4gICAgICAgICAgICByZWNvcmQuY2hlY2tzdW0sXHJcbiAgICAgICAgICAgIHJlY29yZC5jYWNoZWQsXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGdlb2NvZGVfcmVzdWx0O1xyXG4gICAgfVxyXG59XHJcbiJdfQ==","export class EsolveLinkedAsset {\r\n constructor(record) {\r\n this.id = +record.id;\r\n this.name = record.name;\r\n this.type = record.type;\r\n this.description = record.description;\r\n this.src = record.src;\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWxpbmtlZC1hc3NldC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9zaGFyZWQvYXNzZXRzL2Vzb2x2ZS1saW5rZWQtYXNzZXQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxPQUFPLGlCQUFpQjtJQU8xQixZQUFZLE1BQStCO1FBQ3ZDLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztRQUN4QixJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7UUFDeEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQztJQUMxQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFc29sdmVBc3NldFR5cGUgfSBmcm9tICcuL2Vzb2x2ZS1hc3NldC10eXBlLnR5cGUnO1xyXG5pbXBvcnQgeyBFc29sdmVMaW5rZWRBc3NldFJlY29yZCB9IGZyb20gJy4vZXNvbHZlLWxpbmtlZC1hc3NldC1yZWNvcmQuaW50ZXJmYWNlJztcclxuXHJcbmV4cG9ydCBjbGFzcyBFc29sdmVMaW5rZWRBc3NldCB7XHJcbiAgICBwdWJsaWMgaWQ6IG51bWJlcjtcclxuICAgIHB1YmxpYyBuYW1lOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgdHlwZTogRXNvbHZlQXNzZXRUeXBlO1xyXG4gICAgcHVibGljIGRlc2NyaXB0aW9uOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgc3JjOiBzdHJpbmc7XHJcblxyXG4gICAgY29uc3RydWN0b3IocmVjb3JkOiBFc29sdmVMaW5rZWRBc3NldFJlY29yZCkge1xyXG4gICAgICAgIHRoaXMuaWQgPSArcmVjb3JkLmlkO1xyXG4gICAgICAgIHRoaXMubmFtZSA9IHJlY29yZC5uYW1lO1xyXG4gICAgICAgIHRoaXMudHlwZSA9IHJlY29yZC50eXBlO1xyXG4gICAgICAgIHRoaXMuZGVzY3JpcHRpb24gPSByZWNvcmQuZGVzY3JpcHRpb247XHJcbiAgICAgICAgdGhpcy5zcmMgPSByZWNvcmQuc3JjO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==","import { EsolveSeoInfo } from '../shared/seo/esolve-seo-info.model';\r\nexport class EsolveCategoryTreeItem {\r\n constructor(type, esolve_id, parent_id, description, sef_description, short_description, sort_priority, active, display_only, image_name, seo_title, seo_keywords, seo_description, children) {\r\n this.type = type;\r\n this.esolve_id = esolve_id;\r\n this.parent_id = parent_id;\r\n this.description = description;\r\n this.sef_description = sef_description;\r\n this.short_description = short_description;\r\n this.sort_priority = sort_priority;\r\n this.active = active;\r\n this.display_only = display_only;\r\n this.image_name = image_name;\r\n this.id = '';\r\n this.image_path = '';\r\n if (this.type === 'category') {\r\n this.id = `<<CAT>>${this.esolve_id}`;\r\n if (children != null) {\r\n this.children = children;\r\n }\r\n this.image_path = '/images/categories/';\r\n }\r\n else {\r\n this.id = `<<SUB>>${this.esolve_id}`;\r\n this.image_path = '/images/subcategories/';\r\n }\r\n if (seo_title.trim() === '') {\r\n seo_title = this.description;\r\n }\r\n this.seo_details = new EsolveSeoInfo(seo_title, seo_description, seo_keywords);\r\n }\r\n get small_image_src() {\r\n return this.getImagePath('small');\r\n }\r\n get thumbnail_image_src() {\r\n return this.getImagePath('thumb');\r\n }\r\n get tiny_image_src() {\r\n return this.getImagePath('tiny');\r\n }\r\n getImagePath(image_size) {\r\n if (this.image_name !== '') {\r\n return `${this.image_path}${image_size}/${this.image_name}`;\r\n }\r\n return '';\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWNhdGVnb3J5LXRyZWUtaXRlbS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9jYXRlZ29yeS10cmVlL2Vzb2x2ZS1jYXRlZ29yeS10cmVlLWl0ZW0ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBR3BFLE1BQU0sT0FBTyxzQkFBc0I7SUFvQi9CLFlBQ1csSUFBZ0MsRUFDaEMsU0FBMEIsRUFDMUIsU0FBaUIsRUFDakIsV0FBbUIsRUFDbkIsZUFBdUIsRUFDdkIsaUJBQXlCLEVBQ3pCLGFBQXFCLEVBQ3JCLE1BQWUsRUFDZixZQUFxQixFQUNwQixVQUFrQixFQUMxQixTQUFpQixFQUNqQixZQUFvQixFQUNwQixlQUF1QixFQUN2QixRQUFtQztRQWI1QixTQUFJLEdBQUosSUFBSSxDQUE0QjtRQUNoQyxjQUFTLEdBQVQsU0FBUyxDQUFpQjtRQUMxQixjQUFTLEdBQVQsU0FBUyxDQUFRO1FBQ2pCLGdCQUFXLEdBQVgsV0FBVyxDQUFRO1FBQ25CLG9CQUFlLEdBQWYsZUFBZSxDQUFRO1FBQ3ZCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBUTtRQUN6QixrQkFBYSxHQUFiLGFBQWEsQ0FBUTtRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUFTO1FBQ2YsaUJBQVksR0FBWixZQUFZLENBQVM7UUFDcEIsZUFBVSxHQUFWLFVBQVUsQ0FBUTtRQTdCdkIsT0FBRSxHQUFHLEVBQUUsQ0FBQztRQUtQLGVBQVUsR0FBRyxFQUFFLENBQUM7UUE4QnBCLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxVQUFVLEVBQUU7WUFDMUIsSUFBSSxDQUFDLEVBQUUsR0FBRyxVQUFVLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUVyQyxJQUFJLFFBQVEsSUFBSSxJQUFJLEVBQUU7Z0JBQ2xCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO2FBQzVCO1lBRUQsSUFBSSxDQUFDLFVBQVUsR0FBRyxxQkFBcUIsQ0FBQztTQUMzQzthQUFNO1lBQ0gsSUFBSSxDQUFDLEVBQUUsR0FBRyxVQUFVLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNyQyxJQUFJLENBQUMsVUFBVSxHQUFHLHdCQUF3QixDQUFDO1NBQzlDO1FBRUQsSUFBSSxTQUFTLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ3pCLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1NBQ2hDO1FBRUQsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLGFBQWEsQ0FBQyxTQUFTLEVBQUUsZUFBZSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUE5Q0QsSUFBVyxlQUFlO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsSUFBVyxtQkFBbUI7UUFDMUIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxJQUFXLGNBQWM7UUFDckIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFzQ00sWUFBWSxDQUFDLFVBQXNDO1FBQ3RELElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxFQUFFLEVBQUU7WUFDeEIsT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztTQUMvRDtRQUVELE9BQU8sRUFBRSxDQUFDO0lBQ2QsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXNvbHZlU2VvSW5mbyB9IGZyb20gJy4uL3NoYXJlZC9zZW8vZXNvbHZlLXNlby1pbmZvLm1vZGVsJztcclxuaW1wb3J0IHsgRXNvbHZlU2VvRGV0YWlscyB9IGZyb20gJy4uL3NoYXJlZC9zZW8vZXNvbHZlLXNlby1kZXRhaWxzLmludGVyZmFjZSc7XHJcblxyXG5leHBvcnQgY2xhc3MgRXNvbHZlQ2F0ZWdvcnlUcmVlSXRlbSBpbXBsZW1lbnRzIEVzb2x2ZVNlb0RldGFpbHMge1xyXG4gICAgcHVibGljIGlkID0gJyc7XHJcbiAgICBwdWJsaWMgc2VvX2RldGFpbHM6IEVzb2x2ZVNlb0luZm87XHJcbiAgICBwdWJsaWMgdG90YWxfc3RvY2s/OiBudW1iZXI7XHJcbiAgICBwdWJsaWMgY2hpbGRyZW4/OiBFc29sdmVDYXRlZ29yeVRyZWVJdGVtW107XHJcblxyXG4gICAgcHJpdmF0ZSBpbWFnZV9wYXRoID0gJyc7XHJcblxyXG4gICAgcHVibGljIGdldCBzbWFsbF9pbWFnZV9zcmMoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRJbWFnZVBhdGgoJ3NtYWxsJyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCB0aHVtYm5haWxfaW1hZ2Vfc3JjKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0SW1hZ2VQYXRoKCd0aHVtYicpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgdGlueV9pbWFnZV9zcmMoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRJbWFnZVBhdGgoJ3RpbnknKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwdWJsaWMgdHlwZTogJ2NhdGVnb3J5JyB8ICdzdWJjYXRlZ29yeScsXHJcbiAgICAgICAgcHVibGljIGVzb2x2ZV9pZDogc3RyaW5nIHwgbnVtYmVyLFxyXG4gICAgICAgIHB1YmxpYyBwYXJlbnRfaWQ6IHN0cmluZyxcclxuICAgICAgICBwdWJsaWMgZGVzY3JpcHRpb246IHN0cmluZyxcclxuICAgICAgICBwdWJsaWMgc2VmX2Rlc2NyaXB0aW9uOiBzdHJpbmcsXHJcbiAgICAgICAgcHVibGljIHNob3J0X2Rlc2NyaXB0aW9uOiBzdHJpbmcsXHJcbiAgICAgICAgcHVibGljIHNvcnRfcHJpb3JpdHk6IG51bWJlcixcclxuICAgICAgICBwdWJsaWMgYWN0aXZlOiBib29sZWFuLFxyXG4gICAgICAgIHB1YmxpYyBkaXNwbGF5X29ubHk6IGJvb2xlYW4sXHJcbiAgICAgICAgcHJpdmF0ZSBpbWFnZV9uYW1lOiBzdHJpbmcsXHJcbiAgICAgICAgc2VvX3RpdGxlOiBzdHJpbmcsXHJcbiAgICAgICAgc2VvX2tleXdvcmRzOiBzdHJpbmcsXHJcbiAgICAgICAgc2VvX2Rlc2NyaXB0aW9uOiBzdHJpbmcsXHJcbiAgICAgICAgY2hpbGRyZW4/OiBFc29sdmVDYXRlZ29yeVRyZWVJdGVtW10sXHJcbiAgICApIHtcclxuICAgICAgICBpZiAodGhpcy50eXBlID09PSAnY2F0ZWdvcnknKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaWQgPSBgPDxDQVQ+PiR7dGhpcy5lc29sdmVfaWR9YDtcclxuXHJcbiAgICAgICAgICAgIGlmIChjaGlsZHJlbiAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNoaWxkcmVuID0gY2hpbGRyZW47XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMuaW1hZ2VfcGF0aCA9ICcvaW1hZ2VzL2NhdGVnb3JpZXMvJztcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmlkID0gYDw8U1VCPj4ke3RoaXMuZXNvbHZlX2lkfWA7XHJcbiAgICAgICAgICAgIHRoaXMuaW1hZ2VfcGF0aCA9ICcvaW1hZ2VzL3N1YmNhdGVnb3JpZXMvJztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChzZW9fdGl0bGUudHJpbSgpID09PSAnJykge1xyXG4gICAgICAgICAgICBzZW9fdGl0bGUgPSB0aGlzLmRlc2NyaXB0aW9uO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5zZW9fZGV0YWlscyA9IG5ldyBFc29sdmVTZW9JbmZvKHNlb190aXRsZSwgc2VvX2Rlc2NyaXB0aW9uLCBzZW9fa2V5d29yZHMpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXRJbWFnZVBhdGgoaW1hZ2Vfc2l6ZTogJ3NtYWxsJyB8ICd0aHVtYicgfCAndGlueScpOiBzdHJpbmcge1xyXG4gICAgICAgIGlmICh0aGlzLmltYWdlX25hbWUgIT09ICcnKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBgJHt0aGlzLmltYWdlX3BhdGh9JHtpbWFnZV9zaXplfS8ke3RoaXMuaW1hZ2VfbmFtZX1gO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==","import { Inject, Injectable } from '@angular/core';\r\nimport { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { throwError } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { ESOLVE_CONNECT_CONFIG } from '../esolve-connect-config.constant';\r\nimport { EsolveCategoryTreeItem } from './esolve-category-tree-item.model';\r\nimport * as i0 from \"@angular/core\";\r\nimport * as i1 from \"@angular/common/http\";\r\nexport class EsolveCategoryTreeService {\r\n constructor(config, http) {\r\n this.config = config;\r\n this.http = http;\r\n }\r\n /**\r\n * Retrieves the category tree from eSolve instance and coverts it to the correct format.\r\n */\r\n getCategoryTree(identifier) {\r\n let params = new HttpParams();\r\n if (identifier) {\r\n params = params.set('identifier', identifier);\r\n }\r\n return this.http\r\n .get(`${this.config.api_url}/get-tree.php`, { params })\r\n .pipe(map((response) => {\r\n if (response.records === undefined) {\r\n throw response;\r\n }\r\n return this.processTree(response.records);\r\n }));\r\n }\r\n /**\r\n * Retrieve the special tree structure for a specific special from the eSolve\r\n * instance and converts it into the correct format\r\n *\r\n * @param special_id Id of to special to get tree for\r\n *\r\n * @returns Observable containing special tree data\r\n */\r\n getSpecialTree(special_id) {\r\n let params = new HttpParams();\r\n params = params.set('special_id', special_id);\r\n return this.http\r\n .get(`${this.config.api_url}/get-special-tree.php`, { params })\r\n .pipe(map((response) => {\r\n if (response.records === undefined) {\r\n throw response;\r\n }\r\n return this.processTree(response.records);\r\n }));\r\n }\r\n /**\r\n * Retrieve the details of a category tree item from the eSolve instance and\r\n * converts it to the correct format.\r\n *\r\n * @param options Filter options\r\n */\r\n getCategoryTreeItem(options) {\r\n let type;\r\n let esolve_id;\r\n let sef_description;\r\n if (options.id) {\r\n const categoryIdentifier = this.processID(options.id);\r\n if (categoryIdentifier) {\r\n type = categoryIdentifier.type;\r\n esolve_id = categoryIdentifier.esolve_id;\r\n }\r\n }\r\n else if (options.type) {\r\n type = options.type;\r\n if (options.esolve_id) {\r\n esolve_id = options.esolve_id;\r\n }\r\n else if (options.sef_description) {\r\n sef_description = options.sef_description;\r\n }\r\n }\r\n if (type && (esolve_id || sef_description)) {\r\n let params = new HttpParams();\r\n params = params.set('type', type);\r\n if (esolve_id) {\r\n params = params.set('id', esolve_id);\r\n }\r\n if (sef_description) {\r\n params = params.set('sef_description', sef_description);\r\n }\r\n return this.http\r\n .get(`${this.config.api_url}/get-tree-item.php`, { params })\r\n .pipe(map((response) => {\r\n if ((response.records === undefined) ||\r\n (response.records.length <= 0)) {\r\n throw response;\r\n }\r\n return this.processTreeItem(response.records[0]);\r\n }));\r\n }\r\n return throwError(() => 'Invalid options');\r\n }\r\n /**\r\n * Processes the eSolve tree records and converts them into the correct format.\r\n *\r\n * @param tree_records Records to process\r\n */\r\n processTree(tree_records) {\r\n const tree_items = [];\r\n if (tree_records) {\r\n for (const tree_record of tree_records) {\r\n let esolve_id = '';\r\n let parent_id = '';\r\n let children = [];\r\n if (tree_record.type === 'category') {\r\n children = this.processTree(tree_record.children);\r\n esolve_id = tree_record.menu_id;\r\n parent_id = tree_record.owner_menu_id;\r\n }\r\n else {\r\n esolve_id = tree_record.id;\r\n parent_id = tree_record.menu_id;\r\n }\r\n tree_items.push(new EsolveCategoryTreeItem(tree_record.type, esolve_id, parent_id, tree_record.description, tree_record.sef_description, tree_record.seo_description, tree_record.sort_priority, tree_record.active, tree_record.display_only, tree_record.image, tree_record.seo_page_title, tree_record.seo_keywords, tree_record.short_description, children));\r\n }\r\n }\r\n return tree_items;\r\n }\r\n processTreeItem(record) {\r\n return new EsolveCategoryTreeItem(record.type, record.id, record.parent_id, record.description, record.sef_description, record.short_description, record.sort_priority, record.active, record.display_only, record.image, record.seo_page_title, record.seo_keywords, record.seo_description);\r\n }\r\n processID(id) {\r\n let type;\r\n let esolve_id;\r\n const type_code_regex = /^\\<\\<(CAT|SUB)\\>\\>/g;\r\n const match_results = id.match(type_code_regex);\r\n if (match_results) {\r\n const type_code = match_results[0];\r\n type = (type_code === '<<CAT>>' ? 'category' : 'subcategory');\r\n esolve_id = id.replace(type_code_regex, '');\r\n return {\r\n type,\r\n esolve_id,\r\n };\r\n }\r\n return null;\r\n }\r\n}\r\nEsolveCategoryTreeService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveCategoryTreeService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });\r\nEsolveCategoryTreeService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveCategoryTreeService, providedIn: 'root' });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveCategoryTreeService, decorators: [{\r\n type: Injectable,\r\n args: [{\r\n providedIn: 'root',\r\n }]\r\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\r\n type: Inject,\r\n args: [ESOLVE_CONNECT_CONFIG]\r\n }] }, { type: i1.HttpClient }]; } });\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWNhdGVnb3J5LXRyZWUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9jYXRlZ29yeS10cmVlL2Vzb2x2ZS1jYXRlZ29yeS10cmVlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUU5RCxPQUFPLEVBQWMsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdyQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUsxRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7O0FBUTNFLE1BQU0sT0FBTyx5QkFBeUI7SUFDbEMsWUFDMkMsTUFBMkIsRUFDMUQsSUFBZ0I7UUFEZSxXQUFNLEdBQU4sTUFBTSxDQUFxQjtRQUMxRCxTQUFJLEdBQUosSUFBSSxDQUFZO0lBQ3hCLENBQUM7SUFFTDs7T0FFRztJQUNJLGVBQWUsQ0FBQyxVQUFtQjtRQUN0QyxJQUFJLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBRTlCLElBQUksVUFBVSxFQUFFO1lBQ1osTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1NBQ2pEO1FBRUQsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNYLEdBQUcsQ0FDQSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxlQUFlLEVBQ3JDLEVBQUUsTUFBTSxFQUFFLENBQ2I7YUFDQSxJQUFJLENBQ0QsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVB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QU07MkZBRVQseUJBQXlCO2tCQUhyQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7MEJBR1EsTUFBTTsyQkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuXHJcbmltcG9ydCB7IE9ic2VydmFibGUsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgRXNvbHZlQ29ubmVjdENvbmZpZyB9IGZyb20gJy4uL2Vzb2x2ZS1jb25uZWN0LmNvbmZpZyc7XHJcbmltcG9ydCB7IEVTT0xWRV9DT05ORUNUX0NPTkZJRyB9IGZyb20gJy4uL2Vzb2x2ZS1jb25uZWN0LWNvbmZpZy5jb25zdGFudCc7XHJcbmltcG9ydCB7IEVzb2x2ZUdldFJlc3BvbnNlIH0gZnJvbSAnLi4vc2hhcmVkL3Jlc3BvbnNlJztcclxuXHJcbmltcG9ydCB7IEVzb2x2ZUNhdGVnb3J5UmVjb3JkIH0gZnJvbSAnLi9lc29sdmUtY2F0ZWdvcnktcmVjb3JkLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IEVzb2x2ZVN1YmNhdGVnb3J5UmVjb3JkIH0gZnJvbSAnLi9lc29sdmUtc3ViY2F0ZWdvcnktcmVjb3JkLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IEVzb2x2ZUNhdGVnb3J5VHJlZUl0ZW0gfSBmcm9tICcuL2Vzb2x2ZS1jYXRlZ29yeS10cmVlLWl0ZW0ubW9kZWwnO1xyXG5pbXBvcnQgeyBFc29sdmVDYXRlZ29yeVRyZWVJdGVtUmVjb3JkIH0gZnJvbSAnLi9lc29sdmUtY2F0ZWdvcnktdHJlZS1pdGVtLXJlY29yZC5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBFc29sdmVDYXRlZ29yeVRyZWVJdGVtT3B0aW9ucyB9IGZyb20gJy4vZXNvbHZlLWNhdGVnb3J5LXRyZWUtaXRlbS1vcHRpb25zLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IEVzb2x2ZUNhdGVnb3J5SWRlbnRpZmllciB9IGZyb20gJy4vZXNvbHZlLWNhdGVnb3J5LWlkZW50aWZpZXIuaW50ZXJmYWNlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEVzb2x2ZUNhdGVnb3J5VHJlZVNlcnZpY2Uge1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgQEluamVjdChFU09MVkVfQ09OTkVDVF9DT05GSUcpIHByaXZhdGUgY29uZmlnOiBFc29sdmVDb25uZWN0Q29uZmlnLFxyXG4gICAgICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgICkgeyB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXRyaWV2ZXMgdGhlIGNhdGVnb3J5IHRyZWUgZnJvbSBlU29sdmUgaW5zdGFuY2UgYW5kIGNvdmVydHMgaXQgdG8gdGhlIGNvcnJlY3QgZm9ybWF0LlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0Q2F0ZWdvcnlUcmVlKGlkZW50aWZpZXI/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPEVzb2x2ZUNhdGVnb3J5VHJlZUl0ZW1bXT4ge1xyXG4gICAgICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xyXG5cclxuICAgICAgICBpZiAoaWRlbnRpZmllcikge1xyXG4gICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdpZGVudGlmaWVyJywgaWRlbnRpZmllcik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgICAgICAgIC5nZXQ8RXNvbHZlR2V0UmVzcG9uc2U8KEVzb2x2ZUNhdGVnb3J5UmVjb3JkIHwgRXNvbHZlU3ViY2F0ZWdvcnlSZWNvcmQpW10+PihcclxuICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L2dldC10cmVlLnBocGAsXHJcbiAgICAgICAgICAgICAgICB7IHBhcmFtcyB9LFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5yZWNvcmRzID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzVHJlZShyZXNwb25zZS5yZWNvcmRzKTtcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0cmlldmUgdGhlIHNwZWNpYWwgdHJlZSBzdHJ1Y3R1cmUgZm9yIGEgc3BlY2lmaWMgc3BlY2lhbCBmcm9tIHRoZSBlU29sdmVcclxuICAgICAqIGluc3RhbmNlIGFuZCBjb252ZXJ0cyBpdCBpbnRvIHRoZSBjb3JyZWN0IGZvcm1hdFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBzcGVjaWFsX2lkIElkIG9mIHRvIHNwZWNpYWwgdG8gZ2V0IHRyZWUgZm9yXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZSBjb250YWluaW5nIHNwZWNpYWwgdHJlZSBkYXRhXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRTcGVjaWFsVHJlZShcclxuICAgICAgICBzcGVjaWFsX2lkOiBudW1iZXIsXHJcbiAgICApOiBPYnNlcnZhYmxlPEVzb2x2ZUNhdGVnb3J5VHJlZUl0ZW1bXT57XHJcbiAgICAgICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCk7XHJcblxyXG4gICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ3NwZWNpYWxfaWQnLCBzcGVjaWFsX2lkKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAgICAgICAuZ2V0PEVzb2x2ZUdldFJlc3BvbnNlPChFc29sdmVDYXRlZ29yeVJlY29yZCB8IEVzb2x2ZVN1YmNhdGVnb3J5UmVjb3JkKVtdPj4oXHJcbiAgICAgICAgICAgICAgICBgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9nZXQtc3BlY2lhbC10cmVlLnBocGAsXHJcbiAgICAgICAgICAgICAgICB7IHBhcmFtcyB9LFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5yZWNvcmRzID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzVHJlZShyZXNwb25zZS5yZWNvcmRzKTtcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0cmlldmUgdGhlIGRldGFpbHMgb2YgYSBjYXRlZ29yeSB0cmVlIGl0ZW0gZnJvbSB0aGUgZVNvbHZlIGluc3RhbmNlIGFuZFxyXG4gICAgICogY29udmVydHMgaXQgdG8gdGhlIGNvcnJlY3QgZm9ybWF0LlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBvcHRpb25zIEZpbHRlciBvcHRpb25zXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRDYXRlZ29yeVRyZWVJdGVtKFxyXG4gICAgICAgIG9wdGlvbnM6IEVzb2x2ZUNhdGVnb3J5VHJlZUl0ZW1PcHRpb25zLFxyXG4gICAgKTogT2JzZXJ2YWJsZTxFc29sdmVDYXRlZ29yeVRyZWVJdGVtPiB7XHJcbiAgICAgICAgbGV0IHR5cGUhOiAnY2F0ZWdvcnknIHwgJ3N1YmNhdGVnb3J5JztcclxuICAgICAgICBsZXQgZXNvbHZlX2lkITogbnVtYmVyIHwgc3RyaW5nO1xyXG4gICAgICAgIGxldCBzZWZfZGVzY3JpcHRpb247XHJcblxyXG4gICAgICAgIGlmIChvcHRpb25zLmlkKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGNhdGVnb3J5SWRlbnRpZmllciA9IHRoaXMucHJvY2Vzc0lEKG9wdGlvbnMuaWQpO1xyXG5cclxuICAgICAgICAgICAgaWYgKGNhdGVnb3J5SWRlbnRpZmllcikge1xyXG4gICAgICAgICAgICAgICAgdHlwZSA9IGNhdGVnb3J5SWRlbnRpZmllci50eXBlO1xyXG4gICAgICAgICAgICAgICAgZXNvbHZlX2lkID0gY2F0ZWdvcnlJZGVudGlmaWVyLmVzb2x2ZV9pZDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSBpZiAob3B0aW9ucy50eXBlKSB7XHJcbiAgICAgICAgICAgIHR5cGUgPSBvcHRpb25zLnR5cGU7XHJcblxyXG4gICAgICAgICAgICBpZiAob3B0aW9ucy5lc29sdmVfaWQpIHtcclxuICAgICAgICAgICAgICAgIGVzb2x2ZV9pZCA9IG9wdGlvbnMuZXNvbHZlX2lkO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKG9wdGlvbnMuc2VmX2Rlc2NyaXB0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICBzZWZfZGVzY3JpcHRpb24gPSBvcHRpb25zLnNlZl9kZXNjcmlwdGlvbjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHR5cGUgJiYgKGVzb2x2ZV9pZCB8fCBzZWZfZGVzY3JpcHRpb24pKSB7XHJcbiAgICAgICAgICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xyXG5cclxuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgndHlwZScsIHR5cGUpO1xyXG5cclxuICAgICAgICAgICAgaWYgKGVzb2x2ZV9pZCkge1xyXG4gICAgICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnaWQnLCBlc29sdmVfaWQpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoc2VmX2Rlc2NyaXB0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdzZWZfZGVzY3JpcHRpb24nLCBzZWZfZGVzY3JpcHRpb24pO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgICAgICAgICAgICAuZ2V0PEVzb2x2ZUdldFJlc3BvbnNlPEVzb2x2ZUNhdGVnb3J5VHJlZUl0ZW1SZWNvcmRbXT4+KFxyXG4gICAgICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L2dldC10cmVlLWl0ZW0ucGhwYCxcclxuICAgICAgICAgICAgICAgICAgICB7IHBhcmFtcyB9LFxyXG4gICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVzcG9uc2UucmVjb3JkcyA9PT0gdW5kZWZpbmVkKSB8fFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlc3BvbnNlLnJlY29yZHMubGVuZ3RoIDw9IDApXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NUcmVlSXRlbShyZXNwb25zZS5yZWNvcmRzWzBdKTtcclxuICAgICAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiAnSW52YWxpZCBvcHRpb25zJyk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQcm9jZXNzZXMgdGhlIGVTb2x2ZSB0cmVlIHJlY29yZHMgYW5kIGNvbnZlcnRzIHRoZW0gaW50byB0aGUgY29ycmVjdCBmb3JtYXQuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHRyZWVfcmVjb3JkcyBSZWNvcmRzIHRvIHByb2Nlc3NcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBwcm9jZXNzVHJlZShcclxuICAgICAgICB0cmVlX3JlY29yZHM6IChFc29sdmVDYXRlZ29yeVJlY29yZCB8IEVzb2x2ZVN1YmNhdGVnb3J5UmVjb3JkKVtdLFxyXG4gICAgKTogRXNvbHZlQ2F0ZWdvcnlUcmVlSXRlbVtdIHtcclxuICAgICAgICBjb25zdCB0cmVlX2l0ZW1zOiBFc29sdmVDYXRlZ29yeVRyZWVJdGVtW10gPSBbXTtcclxuXHJcbiAgICAgICAgaWYgKHRyZWVfcmVjb3Jkcykge1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IHRyZWVfcmVjb3JkIG9mIHRyZWVfcmVjb3Jkcykge1xyXG4gICAgICAgICAgICAgICAgbGV0IGVzb2x2ZV9pZDogc3RyaW5nIHwgbnVtYmVyID0gJyc7XHJcbiAgICAgICAgICAgICAgICBsZXQgcGFyZW50X2lkID0gJyc7XHJcbiAgICAgICAgICAgICAgICBsZXQgY2hpbGRyZW46IEVzb2x2ZUNhdGVnb3J5VHJlZUl0ZW1bXSA9IFtdO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmICh0cmVlX3JlY29yZC50eXBlID09PSAnY2F0ZWdvcnknKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW4gPSB0aGlzLnByb2Nlc3NUcmVlKHRyZWVfcmVjb3JkLmNoaWxkcmVuKTtcclxuICAgICAgICAgICAgICAgICAgICBlc29sdmVfaWQgPSB0cmVlX3JlY29yZC5tZW51X2lkO1xyXG4gICAgICAgICAgICAgICAgICAgIHBhcmVudF9pZCA9IHRyZWVfcmVjb3JkLm93bmVyX21lbnVfaWQ7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGVzb2x2ZV9pZCA9IHRyZWVfcmVjb3JkLmlkO1xyXG4gICAgICAgICAgICAgICAgICAgIHBhcmVudF9pZCA9IHRyZWVfcmVjb3JkLm1lbnVfaWQ7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgdHJlZV9pdGVtcy5wdXNoKG5ldyBFc29sdmVDYXRlZ29yeVRyZWVJdGVtKFxyXG4gICAgICAgICAgICAgICAgICAgIHRyZWVfcmVjb3JkLnR5cGUsXHJcbiAgICAgICAgICAgICAgICAgICAgZXNvbHZlX2lkLFxyXG4gICAgICAgICAgICAgICAgICAgIHBhcmVudF9pZCxcclxuICAgICAgICAgICAgICAgICAgICB0cmVlX3JlY29yZC5kZXNjcmlwdGlvbixcclxuICAgICAgICAgICAgICAgICAgICB0cmVlX3JlY29yZC5zZWZfZGVzY3JpcHRpb24sXHJcbiAgICAgICAgICAgICAgICAgICAgdHJlZV9yZWNvcmQuc2VvX2Rlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgICAgICAgICAgIHRyZWVfcmVjb3JkLnNvcnRfcHJpb3JpdHksXHJcbiAgICAgICAgICAgICAgICAgICAgdHJlZV9yZWNvcmQuYWN0aXZlLFxyXG4gICAgICAgICAgICAgICAgICAgIHRyZWVfcmVjb3JkLmRpc3BsYXlfb25seSxcclxuICAgICAgICAgICAgICAgICAgICB0cmVlX3JlY29yZC5pbWFnZSxcclxuICAgICAgICAgICAgICAgICAgICB0cmVlX3JlY29yZC5zZW9fcGFnZV90aXRsZSxcclxuICAgICAgICAgICAgICAgICAgICB0cmVlX3JlY29yZC5zZW9fa2V5d29yZHMsXHJcbiAgICAgICAgICAgICAgICAgICAgdHJlZV9yZWNvcmQuc2hvcnRfZGVzY3JpcHRpb24sXHJcbiAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW4sXHJcbiAgICAgICAgICAgICAgICApKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRyZWVfaXRlbXM7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBwcm9jZXNzVHJlZUl0ZW0ocmVjb3JkOiBFc29sdmVDYXRlZ29yeVRyZWVJdGVtUmVjb3JkKTogRXNvbHZlQ2F0ZWdvcnlUcmVlSXRlbSB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBFc29sdmVDYXRlZ29yeVRyZWVJdGVtKFxyXG4gICAgICAgICAgICByZWNvcmQudHlwZSxcclxuICAgICAgICAgICAgcmVjb3JkLmlkLFxyXG4gICAgICAgICAgICByZWNvcmQucGFyZW50X2lkLFxyXG4gICAgICAgICAgICByZWNvcmQuZGVzY3JpcHRpb24sXHJcbiAgICAgICAgICAgIHJlY29yZC5zZWZfZGVzY3JpcHRpb24sXHJcbiAgICAgICAgICAgIHJlY29yZC5zaG9ydF9kZXNjcmlwdGlvbixcclxuICAgICAgICAgICAgcmVjb3JkLnNvcnRfcHJpb3JpdHksXHJcbiAgICAgICAgICAgIHJlY29yZC5hY3RpdmUsXHJcbiAgICAgICAgICAgIHJlY29yZC5kaXNwbGF5X29ubHksXHJcbiAgICAgICAgICAgIHJlY29yZC5pbWFnZSxcclxuICAgICAgICAgICAgcmVjb3JkLnNlb19wYWdlX3RpdGxlLFxyXG4gICAgICAgICAgICByZWNvcmQuc2VvX2tleXdvcmRzLFxyXG4gICAgICAgICAgICByZWNvcmQuc2VvX2Rlc2NyaXB0aW9uLFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBwcm9jZXNzSUQoaWQ6IHN0cmluZyk6IEVzb2x2ZUNhdGVnb3J5SWRlbnRpZmllciB8IG51bGwge1xyXG4gICAgICAgIGxldCB0eXBlOiAnY2F0ZWdvcnknIHwgJ3N1YmNhdGVnb3J5JztcclxuICAgICAgICBsZXQgZXNvbHZlX2lkOiBudW1iZXIgfCBzdHJpbmc7XHJcblxyXG4gICAgICAgIGNvbnN0IHR5cGVfY29kZV9yZWdleCA9IC9eXFw8XFw8KENBVHxTVUIpXFw+XFw+L2c7XHJcbiAgICAgICAgY29uc3QgbWF0Y2hfcmVzdWx0cyA9IGlkLm1hdGNoKHR5cGVfY29kZV9yZWdleCk7XHJcblxyXG4gICAgICAgIGlmIChtYXRjaF9yZXN1bHRzKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHR5cGVfY29kZSA9IG1hdGNoX3Jlc3VsdHNbMF07XHJcblxyXG4gICAgICAgICAgICB0eXBlID0gKHR5cGVfY29kZSA9PT0gJzw8Q0FUPj4nID8gJ2NhdGVnb3J5JyA6ICdzdWJjYXRlZ29yeScpO1xyXG4gICAgICAgICAgICBlc29sdmVfaWQgPSBpZC5yZXBsYWNlKHR5cGVfY29kZV9yZWdleCwgJycpO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgIHR5cGUsXHJcbiAgICAgICAgICAgICAgICBlc29sdmVfaWQsXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxufVxyXG4iXX0=","import { EsolveSeoInfo } from '../shared/seo/esolve-seo-info.model';\r\nexport class EsolveManufacturer {\r\n constructor(record) {\r\n this.id = 0;\r\n this.manufacturer = '';\r\n this.sef_manufacturer = '';\r\n this.title = '';\r\n this.article = '';\r\n this.sort_priority = 0;\r\n this.is_active = false;\r\n this.featured = false;\r\n this.image_name = '';\r\n let seo_title = '';\r\n let seo_keywords = '';\r\n let seo_description = '';\r\n if (record) {\r\n this.id = +(record.id ?? 0);\r\n this.manufacturer = record.manufacturer ?? '';\r\n this.sef_manufacturer = record.sef_manufacturer ?? '';\r\n this.title = record.title ?? '';\r\n this.article = record.article ?? '';\r\n this.sort_priority = +(record.sort_priority ?? 0);\r\n this.image_name = record.image_name ?? '';\r\n seo_title = record.seo_page_title ?? '';\r\n seo_keywords = record.seo_keywords ?? '';\r\n seo_description = record.seo_description ?? '';\r\n if (record.is_active) {\r\n this.is_active = !!+record.is_active;\r\n }\r\n if (record.featured) {\r\n this.featured = !!+record.featured;\r\n }\r\n }\r\n if (this.title.trim() === '') {\r\n this.title = this.manufacturer;\r\n }\r\n if (seo_title.trim() === '') {\r\n seo_title = this.title;\r\n }\r\n this.seo_details = new EsolveSeoInfo(seo_title, seo_description, seo_keywords);\r\n }\r\n get original_image_src() {\r\n return this.getImagePath('original');\r\n }\r\n get small_image_src() {\r\n return this.getImagePath('small');\r\n }\r\n get thumbnail_image_src() {\r\n return this.getImagePath('thumb');\r\n }\r\n get tiny_image_src() {\r\n return this.getImagePath('tiny');\r\n }\r\n getImagePath(image_size) {\r\n if (this.image_name !== '') {\r\n return `/images/manufacturers/${image_size}/${this.image_name}`;\r\n }\r\n return '';\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLW1hbnVmYWN0dXJlci5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9tYW51ZmFjdHVyZXJzL2Vzb2x2ZS1tYW51ZmFjdHVyZXIubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBTXBFLE1BQU0sT0FBTyxrQkFBa0I7SUE0QjNCLFlBQVksTUFBMEM7UUEzQi9DLE9BQUUsR0FBVyxDQUFDLENBQUM7UUFDZixpQkFBWSxHQUFXLEVBQUUsQ0FBQztRQUMxQixxQkFBZ0IsR0FBVyxFQUFFLENBQUM7UUFDOUIsVUFBSyxHQUFXLEVBQUUsQ0FBQztRQUNuQixZQUFPLEdBQVcsRUFBRSxDQUFDO1FBQ3JCLGtCQUFhLEdBQVcsQ0FBQyxDQUFDO1FBQzFCLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFDM0IsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUMxQixlQUFVLEdBQVcsRUFBRSxDQUFDO1FBb0IzQixJQUFJLFNBQVMsR0FBVyxFQUFFLENBQUM7UUFDM0IsSUFBSSxZQUFZLEdBQVcsRUFBRSxDQUFDO1FBQzlCLElBQUksZUFBZSxHQUFXLEVBQUUsQ0FBQztRQUVqQyxJQUFJLE1BQU0sRUFBRTtZQUNSLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDNUIsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQztZQUM5QyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixJQUFJLEVBQUUsQ0FBQztZQUN0RCxJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLGFBQWEsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNsRCxJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDO1lBRTFDLFNBQVMsR0FBRyxNQUFNLENBQUMsY0FBYyxJQUFJLEVBQUUsQ0FBQztZQUN4QyxZQUFZLEdBQUcsTUFBTSxDQUFDLFlBQVksSUFBSSxFQUFFLENBQUM7WUFDekMsZUFBZSxHQUFHLE1BQU0sQ0FBQyxlQUFlLElBQUksRUFBRSxDQUFDO1lBRS9DLElBQUksTUFBTSxDQUFDLFNBQVMsRUFBRTtnQkFDbEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDO2FBQ3hDO1lBRUQsSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFO2dCQUNqQixJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7YUFDdEM7U0FDSjtRQUVELElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDMUIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1NBQ2xDO1FBRUQsSUFBSSxTQUFTLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ3pCLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1NBQzFCO1FBRUQsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLGFBQWEsQ0FDaEMsU0FBUyxFQUNULGVBQWUsRUFDZixZQUFZLENBQ2YsQ0FBQztJQUNOLENBQUM7SUF4REQsSUFBVyxrQkFBa0I7UUFDekIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxJQUFXLGVBQWU7UUFDdEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxJQUFXLG1CQUFtQjtRQUMxQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELElBQVcsY0FBYztRQUNyQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQTRDTSxZQUFZLENBQUMsVUFBdUM7UUFDdkQsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLEVBQUUsRUFBRTtZQUN4QixPQUFPLHlCQUF5QixVQUFVLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1NBQ25FO1FBRUQsT0FBTyxFQUFFLENBQUM7SUFDZCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFc29sdmVTZW9JbmZvIH0gZnJvbSAnLi4vc2hhcmVkL3Nlby9lc29sdmUtc2VvLWluZm8ubW9kZWwnO1xyXG5pbXBvcnQgeyBFc29sdmVTZW9EZXRhaWxzIH0gZnJvbSAnLi4vc2hhcmVkL3Nlby9lc29sdmUtc2VvLWRldGFpbHMuaW50ZXJmYWNlJztcclxuXHJcbmltcG9ydCB7IEVzb2x2ZU1hbnVmYWN0dXJlclJlY29yZCB9IGZyb20gJy4vZXNvbHZlLW1hbnVmYWN0dXJlci1yZWNvcmQuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgRXNvbHZlTWFudWZhY3R1cmVySW1hZ2VTaXplIH0gZnJvbSAnLi9lc29sdmUtbWFudWZhY3R1cmVyLWltYWdlLXNpemUudHlwZSc7XHJcblxyXG5leHBvcnQgY2xhc3MgRXNvbHZlTWFudWZhY3R1cmVyIGltcGxlbWVudHMgRXNvbHZlU2VvRGV0YWlscyB7XHJcbiAgICBwdWJsaWMgaWQ6IG51bWJlciA9IDA7XHJcbiAgICBwdWJsaWMgbWFudWZhY3R1cmVyOiBzdHJpbmcgPSAnJztcclxuICAgIHB1YmxpYyBzZWZfbWFudWZhY3R1cmVyOiBzdHJpbmcgPSAnJztcclxuICAgIHB1YmxpYyB0aXRsZTogc3RyaW5nID0gJyc7XHJcbiAgICBwdWJsaWMgYXJ0aWNsZTogc3RyaW5nID0gJyc7XHJcbiAgICBwdWJsaWMgc29ydF9wcmlvcml0eTogbnVtYmVyID0gMDtcclxuICAgIHB1YmxpYyBpc19hY3RpdmU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHB1YmxpYyBmZWF0dXJlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHVibGljIGltYWdlX25hbWU6IHN0cmluZyA9ICcnO1xyXG4gICAgcHVibGljIHNlb19kZXRhaWxzOiBFc29sdmVTZW9JbmZvO1xyXG5cclxuICAgIHB1YmxpYyBnZXQgb3JpZ2luYWxfaW1hZ2Vfc3JjKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0SW1hZ2VQYXRoKCdvcmlnaW5hbCcpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgc21hbGxfaW1hZ2Vfc3JjKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0SW1hZ2VQYXRoKCdzbWFsbCcpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgdGh1bWJuYWlsX2ltYWdlX3NyYygpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldEltYWdlUGF0aCgndGh1bWInKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IHRpbnlfaW1hZ2Vfc3JjKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0SW1hZ2VQYXRoKCd0aW55Jyk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3RydWN0b3IocmVjb3JkPzogUGFydGlhbDxFc29sdmVNYW51ZmFjdHVyZXJSZWNvcmQ+KSB7XHJcbiAgICAgICAgbGV0IHNlb190aXRsZTogc3RyaW5nID0gJyc7XHJcbiAgICAgICAgbGV0IHNlb19rZXl3b3Jkczogc3RyaW5nID0gJyc7XHJcbiAgICAgICAgbGV0IHNlb19kZXNjcmlwdGlvbjogc3RyaW5nID0gJyc7XHJcblxyXG4gICAgICAgIGlmIChyZWNvcmQpIHtcclxuICAgICAgICAgICAgdGhpcy5pZCA9ICsocmVjb3JkLmlkID8/IDApO1xyXG4gICAgICAgICAgICB0aGlzLm1hbnVmYWN0dXJlciA9IHJlY29yZC5tYW51ZmFjdHVyZXIgPz8gJyc7XHJcbiAgICAgICAgICAgIHRoaXMuc2VmX21hbnVmYWN0dXJlciA9IHJlY29yZC5zZWZfbWFudWZhY3R1cmVyID8/ICcnO1xyXG4gICAgICAgICAgICB0aGlzLnRpdGxlID0gcmVjb3JkLnRpdGxlID8/ICcnO1xyXG4gICAgICAgICAgICB0aGlzLmFydGljbGUgPSByZWNvcmQuYXJ0aWNsZSA/PyAnJztcclxuICAgICAgICAgICAgdGhpcy5zb3J0X3ByaW9yaXR5ID0gKyhyZWNvcmQuc29ydF9wcmlvcml0eSA/PyAwKTtcclxuICAgICAgICAgICAgdGhpcy5pbWFnZV9uYW1lID0gcmVjb3JkLmltYWdlX25hbWUgPz8gJyc7XHJcblxyXG4gICAgICAgICAgICBzZW9fdGl0bGUgPSByZWNvcmQuc2VvX3BhZ2VfdGl0bGUgPz8gJyc7XHJcbiAgICAgICAgICAgIHNlb19rZXl3b3JkcyA9IHJlY29yZC5zZW9fa2V5d29yZHMgPz8gJyc7XHJcbiAgICAgICAgICAgIHNlb19kZXNjcmlwdGlvbiA9IHJlY29yZC5zZW9fZGVzY3JpcHRpb24gPz8gJyc7XHJcblxyXG4gICAgICAgICAgICBpZiAocmVjb3JkLmlzX2FjdGl2ZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pc19hY3RpdmUgPSAhIStyZWNvcmQuaXNfYWN0aXZlO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAocmVjb3JkLmZlYXR1cmVkKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmZlYXR1cmVkID0gISErcmVjb3JkLmZlYXR1cmVkO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy50aXRsZS50cmltKCkgPT09ICcnKSB7XHJcbiAgICAgICAgICAgIHRoaXMudGl0bGUgPSB0aGlzLm1hbnVmYWN0dXJlcjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChzZW9fdGl0bGUudHJpbSgpID09PSAnJykge1xyXG4gICAgICAgICAgICBzZW9fdGl0bGUgPSB0aGlzLnRpdGxlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5zZW9fZGV0YWlscyA9IG5ldyBFc29sdmVTZW9JbmZvKFxyXG4gICAgICAgICAgICBzZW9fdGl0bGUsXHJcbiAgICAgICAgICAgIHNlb19kZXNjcmlwdGlvbixcclxuICAgICAgICAgICAgc2VvX2tleXdvcmRzLFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldEltYWdlUGF0aChpbWFnZV9zaXplOiBFc29sdmVNYW51ZmFjdHVyZXJJbWFnZVNpemUpOiBzdHJpbmcge1xyXG4gICAgICAgIGlmICh0aGlzLmltYWdlX25hbWUgIT09ICcnKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBgL2ltYWdlcy9tYW51ZmFjdHVyZXJzLyR7aW1hZ2Vfc2l6ZX0vJHt0aGlzLmltYWdlX25hbWV9YDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiAnJztcclxuICAgIH1cclxufVxyXG4iXX0=","import { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { of } from 'rxjs';\r\nimport { catchError, map } from 'rxjs/operators';\r\nimport { ESOLVE_CONNECT_CONFIG } from '../esolve-connect-config.constant';\r\nimport { EsolveManufacturer } from './esolve-manufacturer.model';\r\nimport * as i0 from \"@angular/core\";\r\nimport * as i1 from \"@angular/common/http\";\r\nexport class EsolveManufacturersService {\r\n constructor(config, http) {\r\n this.config = config;\r\n this.http = http;\r\n }\r\n getManufacturer(id) {\r\n const params = new HttpParams({\r\n fromObject: { manufacturers_id: id },\r\n });\r\n return this.getManufacturerSingle(params);\r\n }\r\n getManufacturerFromSEF(sef_manufacturer) {\r\n const params = new HttpParams({\r\n fromObject: { sef_manufacturer },\r\n });\r\n return this.getManufacturerSingle(params);\r\n }\r\n getManufacturers(options) {\r\n let params = new HttpParams();\r\n if (options?.featured_only) {\r\n params = params.set('featured_only', options.featured_only);\r\n }\r\n return this.getManufacturerRecords(params).pipe(map((records) => {\r\n const manufacturers = [];\r\n for (const record of records) {\r\n manufacturers.push(this.processManufacturer(record));\r\n }\r\n return manufacturers;\r\n }), catchError(() => {\r\n return of([]);\r\n }));\r\n }\r\n getManufacturerSingle(params) {\r\n return this.getManufacturerRecords(params).pipe(map((records) => {\r\n const record = records[0];\r\n return this.processManufacturer(record);\r\n }));\r\n }\r\n getManufacturerRecords(params) {\r\n return this.http\r\n .get(`${this.config.api_url}/get-manufacturers.php`, { params })\r\n .pipe(map((response) => {\r\n if ((response.records === undefined) ||\r\n (response.records.length <= 0)) {\r\n throw response;\r\n }\r\n return response.records;\r\n }));\r\n }\r\n processManufacturer(record) {\r\n return new EsolveManufacturer(record);\r\n }\r\n}\r\nEsolveManufacturersService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveManufacturersService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });\r\nEsolveManufacturersService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveManufacturersService, providedIn: 'root' });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveManufacturersService, decorators: [{\r\n type: Injectable,\r\n args: [{\r\n providedIn: 'root',\r\n }]\r\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\r\n type: Inject,\r\n args: [ESOLVE_CONNECT_CONFIG]\r\n }] }, { type: i1.HttpClient }]; } });\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLW1hbnVmYWN0dXJlcnMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9tYW51ZmFjdHVyZXJzL2Vzb2x2ZS1tYW51ZmFjdHVyZXJzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHakQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFHMUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7OztBQU9qRSxNQUFNLE9BQU8sMEJBQTBCO0lBQ25DLFlBQzJDLE1BQTJCLEVBQzFELElBQWdCO1FBRGUsV0FBTSxHQUFOLE1BQU0sQ0FBcUI7UUFDMUQsU0FBSSxHQUFKLElBQUksQ0FBWTtJQUN4QixDQUFDO0lBRUUsZUFBZSxDQUFDLEVBQVU7UUFDN0IsTUFBTSxNQUFNLEdBQUcsSUFBSSxVQUFVLENBQUM7WUFDMUIsVUFBVSxFQUFFLEVBQUUsZ0JBQWdCLEVBQUUsRUFBRSxFQUFFO1NBQ3ZDLENBQUMsQ0FBQztRQUVILE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFTSxzQkFBc0IsQ0FBQyxnQkFBd0I7UUFDbEQsTUFBTSxNQUFNLEdBQUcsSUFBSSxVQUFVLENBQUM7WUFDMUIsVUFBVSxFQUFFLEVBQUUsZ0JBQWdCLEVBQUU7U0FDbkMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVNLGdCQUFnQixDQUFDLE9BQW1DO1FBQ3ZELElBQUksTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7UUFFOUIsSUFBSSxPQUFPLEVBQUUsYUFBYSxFQUFFO1lBQ3hCLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDL0Q7UUFFRCxPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQzNDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ1osTUFBTSxhQUFhLEdBQXlCLEVBQUUsQ0FBQztZQUUvQyxLQUFLLE1BQU0sTUFBTSxJQUFJLE9BQU8sRUFBRTtnQkFDMUIsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQzthQUN4RDtZQUVELE9BQU8sYUFBYSxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxFQUNGLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDWixPQUFPLEVBQUUsQ0FBdUIsRUFBRSxDQUFDLENBQUM7UUFDeEMsQ0FBQyxDQUFDLENBQ0wsQ0FBQztJQUNOLENBQUM7SUFFTyxxQkFBcUIsQ0FBQyxNQUFrQjtRQUM1QyxPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQzNDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ1osTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRTFCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVDLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDTixDQUFDO0lBRU8sc0JBQXNCLENBQzFCLE1BQW1CO1FBRW5CLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDWCxHQUFHLENBQ0EsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sd0JBQXdCLEVBQzlDLEVBQUUsTUFBTSxFQUFFLENBQ2I7YUFDQSxJQUFJLENBQ0QsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDYixJQUNJLENBQUMsUUFBUSxDQUFDLE9BQU8sS0FBSyxTQUFTLENBQUM7Z0JBQ2hDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLEVBQ2hDO2dCQUNFLE1BQU0sUUFBUSxDQUFDO2FBQ2xCO1lBRUQsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQzVCLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDVixDQUFDO0lBRU8sbUJBQW1CLENBQUMsTUFBZ0M7UUFDeEQsT0FBTyxJQUFJLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzFDLENBQUM7O3VIQS9FUSwwQkFBMEIsa0JBRXZCLHFCQUFxQjsySEFGeEIsMEJBQTBCLGNBRnZCLE1BQU07MkZBRVQsMEJBQTBCO2tCQUh0QyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7MEJBR1EsTUFBTTsyQkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IEVzb2x2ZUNvbm5lY3RDb25maWcgfSBmcm9tICcuLi9lc29sdmUtY29ubmVjdC5jb25maWcnO1xyXG5pbXBvcnQgeyBFU09MVkVfQ09OTkVDVF9DT05GSUcgfSBmcm9tICcuLi9lc29sdmUtY29ubmVjdC1jb25maWcuY29uc3RhbnQnO1xyXG5pbXBvcnQgeyBFc29sdmVHZXRSZXNwb25zZSB9IGZyb20gJy4uL3NoYXJlZC9yZXNwb25zZSc7XHJcblxyXG5pbXBvcnQgeyBFc29sdmVNYW51ZmFjdHVyZXIgfSBmcm9tICcuL2Vzb2x2ZS1tYW51ZmFjdHVyZXIubW9kZWwnO1xyXG5pbXBvcnQgeyBFc29sdmVNYW51ZmFjdHVyZXJPcHRpb25zIH0gZnJvbSAnLi9lc29sdmUtbWFudWZhY3R1cmVyLW9wdGlvbnMuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgRXNvbHZlTWFudWZhY3R1cmVyUmVjb3JkIH0gZnJvbSAnLi9lc29sdmUtbWFudWZhY3R1cmVyLXJlY29yZC5pbnRlcmZhY2UnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRXNvbHZlTWFudWZhY3R1cmVyc1NlcnZpY2Uge1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgQEluamVjdChFU09MVkVfQ09OTkVDVF9DT05GSUcpIHByaXZhdGUgY29uZmlnOiBFc29sdmVDb25uZWN0Q29uZmlnLFxyXG4gICAgICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgICkgeyB9XHJcblxyXG4gICAgcHVibGljIGdldE1hbnVmYWN0dXJlcihpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxFc29sdmVNYW51ZmFjdHVyZXI+IHtcclxuICAgICAgICBjb25zdCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcyh7XHJcbiAgICAgICAgICAgIGZyb21PYmplY3Q6IHsgbWFudWZhY3R1cmVyc19pZDogaWQgfSxcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0TWFudWZhY3R1cmVyU2luZ2xlKHBhcmFtcyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldE1hbnVmYWN0dXJlckZyb21TRUYoc2VmX21hbnVmYWN0dXJlcjogc3RyaW5nKTogT2JzZXJ2YWJsZTxFc29sdmVNYW51ZmFjdHVyZXI+IHtcclxuICAgICAgICBjb25zdCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcyh7XHJcbiAgICAgICAgICAgIGZyb21PYmplY3Q6IHsgc2VmX21hbnVmYWN0dXJlciB9LFxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRNYW51ZmFjdHVyZXJTaW5nbGUocGFyYW1zKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0TWFudWZhY3R1cmVycyhvcHRpb25zPzogRXNvbHZlTWFudWZhY3R1cmVyT3B0aW9ucyk6IE9ic2VydmFibGU8RXNvbHZlTWFudWZhY3R1cmVyW10+IHtcclxuICAgICAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKTtcclxuXHJcbiAgICAgICAgaWYgKG9wdGlvbnM/LmZlYXR1cmVkX29ubHkpIHtcclxuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnZmVhdHVyZWRfb25seScsIG9wdGlvbnMuZmVhdHVyZWRfb25seSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRNYW51ZmFjdHVyZXJSZWNvcmRzKHBhcmFtcykucGlwZShcclxuICAgICAgICAgICAgbWFwKChyZWNvcmRzKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBtYW51ZmFjdHVyZXJzOiBFc29sdmVNYW51ZmFjdHVyZXJbXSA9IFtdO1xyXG5cclxuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcmVjb3JkIG9mIHJlY29yZHMpIHtcclxuICAgICAgICAgICAgICAgICAgICBtYW51ZmFjdHVyZXJzLnB1c2godGhpcy5wcm9jZXNzTWFudWZhY3R1cmVyKHJlY29yZCkpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybiBtYW51ZmFjdHVyZXJzO1xyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gb2Y8RXNvbHZlTWFudWZhY3R1cmVyW10+KFtdKTtcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldE1hbnVmYWN0dXJlclNpbmdsZShwYXJhbXM6IEh0dHBQYXJhbXMpOiBPYnNlcnZhYmxlPEVzb2x2ZU1hbnVmYWN0dXJlcj4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldE1hbnVmYWN0dXJlclJlY29yZHMocGFyYW1zKS5waXBlKFxyXG4gICAgICAgICAgICBtYXAoKHJlY29yZHMpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHJlY29yZCA9IHJlY29yZHNbMF07XHJcblxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc01hbnVmYWN0dXJlcihyZWNvcmQpO1xyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0TWFudWZhY3R1cmVyUmVjb3JkcyhcclxuICAgICAgICBwYXJhbXM/OiBIdHRwUGFyYW1zLFxyXG4gICAgKTogT2JzZXJ2YWJsZTxFc29sdmVNYW51ZmFjdHVyZXJSZWNvcmRbXT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgICAgICAgLmdldDxFc29sdmVHZXRSZXNwb25zZTxFc29sdmVNYW51ZmFjdHVyZXJSZWNvcmRbXT4+KFxyXG4gICAgICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vZ2V0LW1hbnVmYWN0dXJlcnMucGhwYCxcclxuICAgICAgICAgICAgICAgIHsgcGFyYW1zIH0sXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAocmVzcG9uc2UucmVjb3JkcyA9PT0gdW5kZWZpbmVkKSB8fFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAocmVzcG9uc2UucmVjb3Jkcy5sZW5ndGggPD0gMClcclxuICAgICAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UucmVjb3JkcztcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgcHJvY2Vzc01hbnVmYWN0dXJlcihyZWNvcmQ6IEVzb2x2ZU1hbnVmYWN0dXJlclJlY29yZCk6IEVzb2x2ZU1hbnVmYWN0dXJlciB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBFc29sdmVNYW51ZmFjdHVyZXIocmVjb3JkKTtcclxuICAgIH1cclxufVxyXG4iXX0=","// Types\r\nexport * from './esolve-manufacturer-image-size.type';\r\n// Interfaces\r\nexport * from './esolve-manufacturer-record.interface';\r\nexport * from './esolve-manufacturer-options.interface';\r\n// Classes\r\nexport * from './esolve-manufacturer.model';\r\n// Service\r\nexport * from './esolve-manufacturers.service';\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvbWFudWZhY3R1cmVycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxRQUFRO0FBQ1IsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxhQUFhO0FBQ2IsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELFVBQVU7QUFDVixjQUFjLDZCQUE2QixDQUFDO0FBQzVDLFVBQVU7QUFDVixjQUFjLGdDQUFnQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gVHlwZXNcclxuZXhwb3J0ICogZnJvbSAnLi9lc29sdmUtbWFudWZhY3R1cmVyLWltYWdlLXNpemUudHlwZSc7XHJcbi8vIEludGVyZmFjZXNcclxuZXhwb3J0ICogZnJvbSAnLi9lc29sdmUtbWFudWZhY3R1cmVyLXJlY29yZC5pbnRlcmZhY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS1tYW51ZmFjdHVyZXItb3B0aW9ucy5pbnRlcmZhY2UnO1xyXG4vLyBDbGFzc2VzXHJcbmV4cG9ydCAqIGZyb20gJy4vZXNvbHZlLW1hbnVmYWN0dXJlci5tb2RlbCc7XHJcbi8vIFNlcnZpY2VcclxuZXhwb3J0ICogZnJvbSAnLi9lc29sdmUtbWFudWZhY3R1cmVycy5zZXJ2aWNlJztcclxuIl19","import { EsolveSeoInfo } from '../shared/seo/esolve-seo-info.model';\r\nexport class EsolveRange {\r\n constructor(record) {\r\n this.id = 0;\r\n this.range = '';\r\n this.sef_range = '';\r\n this.manufacturers_id = 0;\r\n this.title = '';\r\n this.article = '';\r\n this.is_active = false;\r\n this.featured = false;\r\n this.sort_priority = 0;\r\n this.image_name = '';\r\n let seo_title = '';\r\n let seo_keywords = '';\r\n let seo_description = '';\r\n if (record) {\r\n this.id = +(record.id ?? 0);\r\n this.range = record.range ?? '';\r\n this.sef_range = record.sef_range ?? '';\r\n this.manufacturers_id = +(record.manufacturers_id ?? 0);\r\n this.title = record.title ?? '';\r\n this.article = record.article ?? '';\r\n this.sort_priority = +(record.sort_priority ?? 0);\r\n this.image_name = record.image_name ?? '';\r\n if (record.is_active) {\r\n this.is_active = !!+record.is_active;\r\n }\r\n if (record.featured) {\r\n this.featured = !!+record.featured;\r\n }\r\n seo_title = record.seo_page_title ?? '';\r\n seo_keywords = record.seo_keywords ?? '';\r\n seo_description = record.seo_description ?? '';\r\n }\r\n if (this.title.trim() === '') {\r\n this.title = this.range;\r\n }\r\n if (seo_title.trim() === '') {\r\n seo_title = this.title;\r\n }\r\n this.seo_details = new EsolveSeoInfo(seo_title, seo_description, seo_keywords);\r\n }\r\n get image_src() {\r\n return this.getImagePath();\r\n }\r\n getImagePath() {\r\n if (this.image_name !== '') {\r\n return `/images/ranges/${this.image_name}`;\r\n }\r\n return '';\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXJhbmdlLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL3Jhbmdlcy9lc29sdmUtcmFuZ2UubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBS3BFLE1BQU0sT0FBTyxXQUFXO0lBaUJwQixZQUFZLE1BQW1DO1FBaEJ4QyxPQUFFLEdBQVcsQ0FBQyxDQUFDO1FBQ2YsVUFBSyxHQUFXLEVBQUUsQ0FBQztRQUNuQixjQUFTLEdBQVcsRUFBRSxDQUFDO1FBQ3ZCLHFCQUFnQixHQUFXLENBQUMsQ0FBQztRQUM3QixVQUFLLEdBQVcsRUFBRSxDQUFDO1FBQ25CLFlBQU8sR0FBVyxFQUFFLENBQUM7UUFDckIsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUMzQixhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLGtCQUFhLEdBQVcsQ0FBQyxDQUFDO1FBQzFCLGVBQVUsR0FBVyxFQUFFLENBQUM7UUFRM0IsSUFBSSxTQUFTLEdBQVcsRUFBRSxDQUFDO1FBQzNCLElBQUksWUFBWSxHQUFXLEVBQUUsQ0FBQztRQUM5QixJQUFJLGVBQWUsR0FBVyxFQUFFLENBQUM7UUFFakMsSUFBSSxNQUFNLEVBQUU7WUFDUixJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQzVCLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDaEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQztZQUN4QyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUN4RCxJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLGFBQWEsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNsRCxJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDO1lBRTFDLElBQUksTUFBTSxDQUFDLFNBQVMsRUFBRTtnQkFDbEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDO2FBQ3hDO1lBRUQsSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFO2dCQUNqQixJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7YUFDdEM7WUFFRCxTQUFTLEdBQUcsTUFBTSxDQUFDLGNBQWMsSUFBSSxFQUFFLENBQUM7WUFDeEMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLElBQUksRUFBRSxDQUFDO1lBQ3pDLGVBQWUsR0FBRyxNQUFNLENBQUMsZUFBZSxJQUFJLEVBQUUsQ0FBQztTQUNsRDtRQUVELElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDMUIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1NBQzNCO1FBRUQsSUFBSSxTQUFTLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ3pCLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1NBQzFCO1FBRUQsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLGFBQWEsQ0FDaEMsU0FBUyxFQUNULGVBQWUsRUFDZixZQUFZLENBQ2YsQ0FBQztJQUNOLENBQUM7SUE3Q0QsSUFBVyxTQUFTO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQy9CLENBQUM7SUE2Q00sWUFBWTtRQUNmLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxFQUFFLEVBQUU7WUFDeEIsT0FBTyxrQkFBa0IsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1NBQzlDO1FBRUQsT0FBTyxFQUFFLENBQUM7SUFDZCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFc29sdmVTZW9JbmZvIH0gZnJvbSAnLi4vc2hhcmVkL3Nlby9lc29sdmUtc2VvLWluZm8ubW9kZWwnO1xyXG5pbXBvcnQgeyBFc29sdmVTZW9EZXRhaWxzIH0gZnJvbSAnLi4vc2hhcmVkL3Nlby9lc29sdmUtc2VvLWRldGFpbHMuaW50ZXJmYWNlJztcclxuXHJcbmltcG9ydCB7IEVzb2x2ZVJhbmdlUmVjb3JkIH0gZnJvbSAnLi9lc29sdmUtcmFuZ2UtcmVjb3JkLmludGVyZmFjZSc7XHJcblxyXG5leHBvcnQgY2xhc3MgRXNvbHZlUmFuZ2UgaW1wbGVtZW50cyBFc29sdmVTZW9EZXRhaWxzIHtcclxuICAgIHB1YmxpYyBpZDogbnVtYmVyID0gMDtcclxuICAgIHB1YmxpYyByYW5nZTogc3RyaW5nID0gJyc7XHJcbiAgICBwdWJsaWMgc2VmX3JhbmdlOiBzdHJpbmcgPSAnJztcclxuICAgIHB1YmxpYyBtYW51ZmFjdHVyZXJzX2lkOiBudW1iZXIgPSAwO1xyXG4gICAgcHVibGljIHRpdGxlOiBzdHJpbmcgPSAnJztcclxuICAgIHB1YmxpYyBhcnRpY2xlOiBzdHJpbmcgPSAnJztcclxuICAgIHB1YmxpYyBpc19hY3RpdmU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHB1YmxpYyBmZWF0dXJlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHVibGljIHNvcnRfcHJpb3JpdHk6IG51bWJlciA9IDA7XHJcbiAgICBwdWJsaWMgaW1hZ2VfbmFtZTogc3RyaW5nID0gJyc7XHJcbiAgICBwdWJsaWMgc2VvX2RldGFpbHM6IEVzb2x2ZVNlb0luZm87XHJcblxyXG4gICAgcHVibGljIGdldCBpbWFnZV9zcmMoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRJbWFnZVBhdGgoKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdHJ1Y3RvcihyZWNvcmQ/OiBQYXJ0aWFsPEVzb2x2ZVJhbmdlUmVjb3JkPikge1xyXG4gICAgICAgIGxldCBzZW9fdGl0bGU6IHN0cmluZyA9ICcnO1xyXG4gICAgICAgIGxldCBzZW9fa2V5d29yZHM6IHN0cmluZyA9ICcnO1xyXG4gICAgICAgIGxldCBzZW9fZGVzY3JpcHRpb246IHN0cmluZyA9ICcnO1xyXG5cclxuICAgICAgICBpZiAocmVjb3JkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaWQgPSArKHJlY29yZC5pZCA/PyAwKTtcclxuICAgICAgICAgICAgdGhpcy5yYW5nZSA9IHJlY29yZC5yYW5nZSA/PyAnJztcclxuICAgICAgICAgICAgdGhpcy5zZWZfcmFuZ2UgPSByZWNvcmQuc2VmX3JhbmdlID8/ICcnO1xyXG4gICAgICAgICAgICB0aGlzLm1hbnVmYWN0dXJlcnNfaWQgPSArKHJlY29yZC5tYW51ZmFjdHVyZXJzX2lkID8/IDApO1xyXG4gICAgICAgICAgICB0aGlzLnRpdGxlID0gcmVjb3JkLnRpdGxlID8/ICcnO1xyXG4gICAgICAgICAgICB0aGlzLmFydGljbGUgPSByZWNvcmQuYXJ0aWNsZSA/PyAnJztcclxuICAgICAgICAgICAgdGhpcy5zb3J0X3ByaW9yaXR5ID0gKyhyZWNvcmQuc29ydF9wcmlvcml0eSA/PyAwKTtcclxuICAgICAgICAgICAgdGhpcy5pbWFnZV9uYW1lID0gcmVjb3JkLmltYWdlX25hbWUgPz8gJyc7XHJcblxyXG4gICAgICAgICAgICBpZiAocmVjb3JkLmlzX2FjdGl2ZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pc19hY3RpdmUgPSAhIStyZWNvcmQuaXNfYWN0aXZlO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAocmVjb3JkLmZlYXR1cmVkKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmZlYXR1cmVkID0gISErcmVjb3JkLmZlYXR1cmVkO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBzZW9fdGl0bGUgPSByZWNvcmQuc2VvX3BhZ2VfdGl0bGUgPz8gJyc7XHJcbiAgICAgICAgICAgIHNlb19rZXl3b3JkcyA9IHJlY29yZC5zZW9fa2V5d29yZHMgPz8gJyc7XHJcbiAgICAgICAgICAgIHNlb19kZXNjcmlwdGlvbiA9IHJlY29yZC5zZW9fZGVzY3JpcHRpb24gPz8gJyc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy50aXRsZS50cmltKCkgPT09ICcnKSB7XHJcbiAgICAgICAgICAgIHRoaXMudGl0bGUgPSB0aGlzLnJhbmdlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHNlb190aXRsZS50cmltKCkgPT09ICcnKSB7XHJcbiAgICAgICAgICAgIHNlb190aXRsZSA9IHRoaXMudGl0bGU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnNlb19kZXRhaWxzID0gbmV3IEVzb2x2ZVNlb0luZm8oXHJcbiAgICAgICAgICAgIHNlb190aXRsZSxcclxuICAgICAgICAgICAgc2VvX2Rlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgICBzZW9fa2V5d29yZHMsXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0SW1hZ2VQYXRoKCk6IHN0cmluZyB7XHJcbiAgICAgICAgaWYgKHRoaXMuaW1hZ2VfbmFtZSAhPT0gJycpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGAvaW1hZ2VzL3Jhbmdlcy8ke3RoaXMuaW1hZ2VfbmFtZX1gO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==","import { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { of } from 'rxjs';\r\nimport { catchError, map } from 'rxjs/operators';\r\nimport { ESOLVE_CONNECT_CONFIG } from '../esolve-connect-config.constant';\r\nimport { EsolveRange } from './esolve-range.model';\r\nimport * as i0 from \"@angular/core\";\r\nimport * as i1 from \"@angular/common/http\";\r\nexport class EsolveRangesService {\r\n constructor(config, http) {\r\n this.config = config;\r\n this.http = http;\r\n }\r\n getRange(id) {\r\n const params = new HttpParams({\r\n fromObject: { ranges_id: id },\r\n });\r\n return this.getRangeSingle(params);\r\n }\r\n getRangeFromSEF(sef_range) {\r\n const params = new HttpParams({\r\n fromObject: { sef_range },\r\n });\r\n return this.getRangeSingle(params);\r\n }\r\n getRanges(options) {\r\n let params = new HttpParams();\r\n if (options?.featured_only) {\r\n params = params.set('featured_only', options.featured_only);\r\n }\r\n if (options?.manufacturers_id) {\r\n params = params.set('manufacturers_id', options.manufacturers_id);\r\n }\r\n return this.getRangeRecords(params).pipe(map((records) => {\r\n const ranges = [];\r\n for (const record of records) {\r\n ranges.push(this.processRange(record));\r\n }\r\n return ranges;\r\n }), catchError(() => {\r\n return of([]);\r\n }));\r\n }\r\n getRangeSingle(params) {\r\n return this.getRangeRecords(params).pipe(map((records) => {\r\n const record = records[0];\r\n return this.processRange(record);\r\n }));\r\n }\r\n getRangeRecords(params) {\r\n return this.http\r\n .get(`${this.config.api_url}/get-ranges.php`, { params })\r\n .pipe(map((response) => {\r\n if ((response.records === undefined) ||\r\n (response.records.length <= 0)) {\r\n throw response;\r\n }\r\n return response.records;\r\n }));\r\n }\r\n processRange(record) {\r\n return new EsolveRange(record);\r\n }\r\n}\r\nEsolveRangesService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveRangesService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });\r\nEsolveRangesService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveRangesService, providedIn: 'root' });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveRangesService, decorators: [{\r\n type: Injectable,\r\n args: [{\r\n providedIn: 'root',\r\n }]\r\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\r\n type: Inject,\r\n args: [ESOLVE_CONNECT_CONFIG]\r\n }] }, { type: i1.HttpClient }]; } });\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXJhbmdlcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL3Jhbmdlcy9lc29sdmUtcmFuZ2VzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHakQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFHMUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7QUFPbkQsTUFBTSxPQUFPLG1CQUFtQjtJQUM1QixZQUMyQyxNQUEyQixFQUMxRCxJQUFnQjtRQURlLFdBQU0sR0FBTixNQUFNLENBQXFCO1FBQzFELFNBQUksR0FBSixJQUFJLENBQVk7SUFDeEIsQ0FBQztJQUVFLFFBQVEsQ0FBQyxFQUFVO1FBQ3RCLE1BQU0sTUFBTSxHQUFHLElBQUksVUFBVSxDQUFDO1lBQzFCLFVBQVUsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUU7U0FDaEMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFTSxlQUFlLENBQUMsU0FBaUI7UUFDcEMsTUFBTSxNQUFNLEdBQUcsSUFBSSxVQUFVLENBQUM7WUFDMUIsVUFBVSxFQUFFLEVBQUUsU0FBUyxFQUFFO1NBQzVCLENBQUMsQ0FBQztRQUVILE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRU0sU0FBUyxDQUFDLE9BQTRCO1FBQ3pDLElBQUksTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7UUFFOUIsSUFBSSxPQUFPLEVBQUUsYUFBYSxFQUFFO1lBQ3hCLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDL0Q7UUFFRCxJQUFJLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRTtZQUMzQixNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsRUFBRSxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztTQUNyRTtRQUVELE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQ3BDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ1osTUFBTSxNQUFNLEdBQWtCLEVBQUUsQ0FBQztZQUVqQyxLQUFLLE1BQU0sTUFBTSxJQUFJLE9BQU8sRUFBRTtnQkFDMUIsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7YUFDMUM7WUFFRCxPQUFPLE1BQU0sQ0FBQztRQUNsQixDQUFDLENBQUMsRUFDRixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ1osT0FBTyxFQUFFLENBQWdCLEVBQUUsQ0FBQyxDQUFDO1FBQ2pDLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDTixDQUFDO0lBRU8sY0FBYyxDQUFDLE1BQWtCO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQ3BDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ1osTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRTFCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNyQyxDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ04sQ0FBQztJQUVPLGVBQWUsQ0FDbkIsTUFBbUI7UUFFbkIsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNYLEdBQUcsQ0FDQSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxpQkFBaUIsRUFDdkMsRUFBRSxNQUFNLEVBQUUsQ0FDYjthQUNBLElBQUksQ0FDRCxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUNiLElBQ0ksQ0FBQyxRQUFRLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQztnQkFDaEMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsRUFDaEM7Z0JBQ0UsTUFBTSxRQUFRLENBQUM7YUFDbEI7WUFFRCxPQUFPLFFBQVEsQ0FBQyxPQUFPLENBQUM7UUFDNUIsQ0FBQyxDQUFDLENBQ0wsQ0FBQztJQUNWLENBQUM7SUFFTyxZQUFZLENBQUMsTUFBeUI7UUFDMUMsT0FBTyxJQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNuQyxDQUFDOztnSEFuRlEsbUJBQW1CLGtCQUVoQixxQkFBcUI7b0hBRnhCLG1CQUFtQixjQUZoQixNQUFNOzJGQUVULG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7OzBCQUdRLE1BQU07MkJBQUMscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBFc29sdmVDb25uZWN0Q29uZmlnIH0gZnJvbSAnLi4vZXNvbHZlLWNvbm5lY3QuY29uZmlnJztcclxuaW1wb3J0IHsgRVNPTFZFX0NPTk5FQ1RfQ09ORklHIH0gZnJvbSAnLi4vZXNvbHZlLWNvbm5lY3QtY29uZmlnLmNvbnN0YW50JztcclxuaW1wb3J0IHsgRXNvbHZlR2V0UmVzcG9uc2UgfSBmcm9tICcuLi9zaGFyZWQvcmVzcG9uc2UnO1xyXG5cclxuaW1wb3J0IHsgRXNvbHZlUmFuZ2UgfSBmcm9tICcuL2Vzb2x2ZS1yYW5nZS5tb2RlbCc7XHJcbmltcG9ydCB7IEVzb2x2ZVJhbmdlT3B0aW9ucyB9IGZyb20gJy4vZXNvbHZlLXJhbmdlLW9wdGlvbnMuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgRXNvbHZlUmFuZ2VSZWNvcmQgfSBmcm9tICcuL2Vzb2x2ZS1yYW5nZS1yZWNvcmQuaW50ZXJmYWNlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEVzb2x2ZVJhbmdlc1NlcnZpY2Uge1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgQEluamVjdChFU09MVkVfQ09OTkVDVF9DT05GSUcpIHByaXZhdGUgY29uZmlnOiBFc29sdmVDb25uZWN0Q29uZmlnLFxyXG4gICAgICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgICkgeyB9XHJcblxyXG4gICAgcHVibGljIGdldFJhbmdlKGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPEVzb2x2ZVJhbmdlPiB7XHJcbiAgICAgICAgY29uc3QgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoe1xyXG4gICAgICAgICAgICBmcm9tT2JqZWN0OiB7IHJhbmdlc19pZDogaWQgfSxcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0UmFuZ2VTaW5nbGUocGFyYW1zKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0UmFuZ2VGcm9tU0VGKHNlZl9yYW5nZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxFc29sdmVSYW5nZT4ge1xyXG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKHtcclxuICAgICAgICAgICAgZnJvbU9iamVjdDogeyBzZWZfcmFuZ2UgfSxcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0UmFuZ2VTaW5nbGUocGFyYW1zKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0UmFuZ2VzKG9wdGlvbnM/OiBFc29sdmVSYW5nZU9wdGlvbnMpOiBPYnNlcnZhYmxlPEVzb2x2ZVJhbmdlW10+IHtcclxuICAgICAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKTtcclxuXHJcbiAgICAgICAgaWYgKG9wdGlvbnM/LmZlYXR1cmVkX29ubHkpIHtcclxuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnZmVhdHVyZWRfb25seScsIG9wdGlvbnMuZmVhdHVyZWRfb25seSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAob3B0aW9ucz8ubWFudWZhY3R1cmVyc19pZCkge1xyXG4gICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdtYW51ZmFjdHVyZXJzX2lkJywgb3B0aW9ucy5tYW51ZmFjdHVyZXJzX2lkKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmdldFJhbmdlUmVjb3JkcyhwYXJhbXMpLnBpcGUoXHJcbiAgICAgICAgICAgIG1hcCgocmVjb3JkcykgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcmFuZ2VzOiBFc29sdmVSYW5nZVtdID0gW107XHJcblxyXG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCByZWNvcmQgb2YgcmVjb3Jkcykge1xyXG4gICAgICAgICAgICAgICAgICAgIHJhbmdlcy5wdXNoKHRoaXMucHJvY2Vzc1JhbmdlKHJlY29yZCkpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybiByYW5nZXM7XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBjYXRjaEVycm9yKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBvZjxFc29sdmVSYW5nZVtdPihbXSk7XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRSYW5nZVNpbmdsZShwYXJhbXM6IEh0dHBQYXJhbXMpOiBPYnNlcnZhYmxlPEVzb2x2ZVJhbmdlPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0UmFuZ2VSZWNvcmRzKHBhcmFtcykucGlwZShcclxuICAgICAgICAgICAgbWFwKChyZWNvcmRzKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCByZWNvcmQgPSByZWNvcmRzWzBdO1xyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NSYW5nZShyZWNvcmQpO1xyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0UmFuZ2VSZWNvcmRzKFxyXG4gICAgICAgIHBhcmFtcz86IEh0dHBQYXJhbXMsXHJcbiAgICApOiBPYnNlcnZhYmxlPEVzb2x2ZVJhbmdlUmVjb3JkW10+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgICAgICAgIC5nZXQ8RXNvbHZlR2V0UmVzcG9uc2U8RXNvbHZlUmFuZ2VSZWNvcmRbXT4+KFxyXG4gICAgICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vZ2V0LXJhbmdlcy5waHBgLFxyXG4gICAgICAgICAgICAgICAgeyBwYXJhbXMgfSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChyZXNwb25zZS5yZWNvcmRzID09PSB1bmRlZmluZWQpIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChyZXNwb25zZS5yZWNvcmRzLmxlbmd0aCA8PSAwKVxyXG4gICAgICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyByZXNwb25zZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZS5yZWNvcmRzO1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBwcm9jZXNzUmFuZ2UocmVjb3JkOiBFc29sdmVSYW5nZVJlY29yZCk6IEVzb2x2ZVJhbmdlIHtcclxuICAgICAgICByZXR1cm4gbmV3IEVzb2x2ZVJhbmdlKHJlY29yZCk7XHJcbiAgICB9XHJcbn1cclxuIl19","export class EsolveTag {\r\n constructor(record) {\r\n this.id = 0;\r\n this.phrase = '';\r\n this.weight = 0;\r\n this.description = '';\r\n this.image_name = '';\r\n if (record) {\r\n this.id = +(record.id ?? 0);\r\n this.phrase = record.tag_phrase ?? '';\r\n this.weight = +(record.tag_weight ?? 0);\r\n this.description = record.description ?? '';\r\n this.image_name = record.image_name ?? '';\r\n }\r\n }\r\n /**\r\n * @deprecated To be removed in the future. Use `EsolveTag.phrase` instead\r\n */\r\n get tag_phrase() {\r\n return this.phrase;\r\n }\r\n /**\r\n * @deprecated To be removed in the future. Use `EsolveTag.weight` instead\r\n */\r\n get tag_weight() {\r\n return this.weight;\r\n }\r\n getImagePath() {\r\n if (this.image_name !== '') {\r\n return `/images/tags/${this.image_name}`;\r\n }\r\n return '';\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXRhZy5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi90YWdzL2Vzb2x2ZS10YWcubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLFNBQVM7SUFxQmxCLFlBQVksTUFBaUM7UUFwQnRDLE9BQUUsR0FBVyxDQUFDLENBQUM7UUFDZixXQUFNLEdBQVcsRUFBRSxDQUFDO1FBQ3BCLFdBQU0sR0FBVyxDQUFDLENBQUM7UUFDbkIsZ0JBQVcsR0FBVyxFQUFFLENBQUM7UUFDekIsZUFBVSxHQUFXLEVBQUUsQ0FBQztRQWlCM0IsSUFBSSxNQUFNLEVBQUU7WUFDUixJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQzVCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLFVBQVUsSUFBSSxFQUFFLENBQUM7WUFDdEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUN4QyxJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDO1lBQzVDLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsSUFBSSxFQUFFLENBQUM7U0FDN0M7SUFDTCxDQUFDO0lBdEJEOztPQUVHO0lBQ0gsSUFBVyxVQUFVO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLFVBQVU7UUFDakIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFZTSxZQUFZO1FBQ2YsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLEVBQUUsRUFBRTtZQUN4QixPQUFPLGdCQUFnQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7U0FDNUM7UUFFRCxPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVzb2x2ZVRhZ1JlY29yZCB9IGZyb20gJy4vZXNvbHZlLXRhZy1yZWNvcmQuaW50ZXJmYWNlJztcclxuXHJcbmV4cG9ydCBjbGFzcyBFc29sdmVUYWcge1xyXG4gICAgcHVibGljIGlkOiBudW1iZXIgPSAwO1xyXG4gICAgcHVibGljIHBocmFzZTogc3RyaW5nID0gJyc7XHJcbiAgICBwdWJsaWMgd2VpZ2h0OiBudW1iZXIgPSAwO1xyXG4gICAgcHVibGljIGRlc2NyaXB0aW9uOiBzdHJpbmcgPSAnJztcclxuICAgIHB1YmxpYyBpbWFnZV9uYW1lOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgICAvKipcclxuICAgICAqIEBkZXByZWNhdGVkIFRvIGJlIHJlbW92ZWQgaW4gdGhlIGZ1dHVyZS4gVXNlIGBFc29sdmVUYWcucGhyYXNlYCBpbnN0ZWFkXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgdGFnX3BocmFzZSgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnBocmFzZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEBkZXByZWNhdGVkIFRvIGJlIHJlbW92ZWQgaW4gdGhlIGZ1dHVyZS4gVXNlIGBFc29sdmVUYWcud2VpZ2h0YCBpbnN0ZWFkXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgdGFnX3dlaWdodCgpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLndlaWdodDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdHJ1Y3RvcihyZWNvcmQ/OiBQYXJ0aWFsPEVzb2x2ZVRhZ1JlY29yZD4pIHtcclxuICAgICAgICBpZiAocmVjb3JkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaWQgPSArKHJlY29yZC5pZCA/PyAwKTtcclxuICAgICAgICAgICAgdGhpcy5waHJhc2UgPSByZWNvcmQudGFnX3BocmFzZSA/PyAnJztcclxuICAgICAgICAgICAgdGhpcy53ZWlnaHQgPSArKHJlY29yZC50YWdfd2VpZ2h0ID8/IDApO1xyXG4gICAgICAgICAgICB0aGlzLmRlc2NyaXB0aW9uID0gcmVjb3JkLmRlc2NyaXB0aW9uID8/ICcnO1xyXG4gICAgICAgICAgICB0aGlzLmltYWdlX25hbWUgPSByZWNvcmQuaW1hZ2VfbmFtZSA/PyAnJztcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldEltYWdlUGF0aCgpOiBzdHJpbmcge1xyXG4gICAgICAgIGlmICh0aGlzLmltYWdlX25hbWUgIT09ICcnKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBgL2ltYWdlcy90YWdzLyR7dGhpcy5pbWFnZV9uYW1lfWA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gJyc7XHJcbiAgICB9XHJcbn1cclxuIl19","import { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { map } from 'rxjs/operators';\r\nimport { ESOLVE_CONNECT_CONFIG } from '../esolve-connect-config.constant';\r\nimport { EsolveTag } from './esolve-tag.model';\r\nimport * as i0 from \"@angular/core\";\r\nimport * as i1 from \"@angular/common/http\";\r\nexport class EsolveTagsService {\r\n constructor(config, http) {\r\n this.config = config;\r\n this.http = http;\r\n }\r\n /**\r\n * Retrieves active topics from the list of topic ID's. Note that inactive or expired\r\n * topics will not be retrieved.\r\n *\r\n * @param options Tag filters\r\n */\r\n getTags(options) {\r\n const params = this.parseOptions(options);\r\n return this.http\r\n .get(`${this.config.api_url}/get-tags.php`, { params })\r\n .pipe(map((response) => {\r\n if (response.records === undefined) {\r\n throw response;\r\n }\r\n return this.processTags(response.records);\r\n }));\r\n }\r\n parseOptions(options) {\r\n let params = new HttpParams();\r\n if (options) {\r\n if (options.tags_id) {\r\n if (Array.isArray(options.tags_id)) {\r\n const tag_list = options.tags_id;\r\n if (tag_list.length > 0) {\r\n params = params.append('tags_id', tag_list.join(','));\r\n }\r\n }\r\n else {\r\n params = params.append('tags_id', options.tags_id);\r\n }\r\n }\r\n else {\r\n if (options.phrase && options.phrase !== '') {\r\n params = params.append('phrase', options.phrase);\r\n const phrase_match_mode = options.phrase_match_mode;\r\n if (phrase_match_mode) {\r\n params = params.append('phrase_match_mode', phrase_match_mode);\r\n }\r\n }\r\n }\r\n }\r\n return params;\r\n }\r\n processTags(records) {\r\n const tags = [];\r\n if (records) {\r\n for (const record of records) {\r\n const tag = new EsolveTag(record);\r\n tags.push(tag);\r\n }\r\n }\r\n return tags;\r\n }\r\n}\r\nEsolveTagsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveTagsService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });\r\nEsolveTagsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveTagsService, providedIn: 'root' });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveTagsService, decorators: [{\r\n type: Injectable,\r\n args: [{\r\n providedIn: 'root',\r\n }]\r\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\r\n type: Inject,\r\n args: [ESOLVE_CONNECT_CONFIG]\r\n }] }, { type: i1.HttpClient }]; } });\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXRhZ3Muc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi90YWdzL2Vzb2x2ZS10YWdzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUduRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFJMUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7QUFPL0MsTUFBTSxPQUFPLGlCQUFpQjtJQUMxQixZQUMyQyxNQUEyQixFQUMxRCxJQUFnQjtRQURlLFdBQU0sR0FBTixNQUFNLENBQXFCO1FBQzFELFNBQUksR0FBSixJQUFJLENBQVk7SUFDeEIsQ0FBQztJQUVMOzs7OztPQUtHO0lBQ0ksT0FBTyxDQUFDLE9BQTBCO1FBQ3JDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFMUMsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNYLEdBQUcsQ0FDQSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxlQUFlLEVBQ3JDLEVBQUUsTUFBTSxFQUFFLENBQ2I7YUFDQSxJQUFJLENBQ0QsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDYixJQUFJLFFBQVEsQ0FBQyxPQUFPLEtBQUssU0FBUyxFQUFFO2dCQUNoQyxNQUFNLFFBQVEsQ0FBQzthQUNsQjtZQUVELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDOUMsQ0FBQyxDQUFDLENBQ0wsQ0FBQztJQUNWLENBQUM7SUFFTyxZQUFZLENBQUMsT0FBMEI7UUFDM0MsSUFBSSxNQUFNLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUU5QixJQUFJLE9BQU8sRUFBRTtZQUNULElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRTtnQkFDakIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtvQkFDaEMsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQztvQkFFakMsSUFBSSxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTt3QkFDckIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztxQkFDekQ7aUJBQ0o7cUJBQU07b0JBQ0gsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztpQkFDdEQ7YUFDSjtpQkFBTTtnQkFDSCxJQUFJLE9BQU8sQ0FBQyxNQUFNLElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxFQUFFLEVBQUU7b0JBQ3pDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBRWpELE1BQU0saUJBQWlCLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDO29CQUVwRCxJQUFJLGlCQUFpQixFQUFFO3dCQUNuQixNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO3FCQUNsRTtpQkFDSjthQUNKO1NBQ0o7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBRU8sV0FBVyxDQUFDLE9BQTBCO1FBQzFDLE1BQU0sSUFBSSxHQUFnQixFQUFFLENBQUM7UUFFN0IsSUFBSSxPQUFPLEVBQUU7WUFDVCxLQUFLLE1BQU0sTUFBTSxJQUFJLE9BQU8sRUFBRTtnQkFDMUIsTUFBTSxHQUFHLEdBQUcsSUFBSSxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBRWxDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDbEI7U0FDSjtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7OzhHQXpFUSxpQkFBaUIsa0JBRWQscUJBQXFCO2tIQUZ4QixpQkFBaUIsY0FGZCxNQUFNOzJGQUVULGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7OzBCQUdRLE1BQU07MkJBQUMscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IEVTT0xWRV9DT05ORUNUX0NPTkZJRyB9IGZyb20gJy4uL2Vzb2x2ZS1jb25uZWN0LWNvbmZpZy5jb25zdGFudCc7XHJcbmltcG9ydCB7IEVzb2x2ZUNvbm5lY3RDb25maWcgfSBmcm9tICcuLi9lc29sdmUtY29ubmVjdC5jb25maWcnO1xyXG5pbXBvcnQgeyBFc29sdmVHZXRSZXNwb25zZSB9IGZyb20gJy4uL3NoYXJlZC9yZXNwb25zZSc7XHJcblxyXG5pbXBvcnQgeyBFc29sdmVUYWcgfSBmcm9tICcuL2Vzb2x2ZS10YWcubW9kZWwnO1xyXG5pbXBvcnQgeyBFc29sdmVUYWdSZWNvcmQgfSBmcm9tICcuL2Vzb2x2ZS10YWctcmVjb3JkLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IEVzb2x2ZVRhZ09wdGlvbnMgfSBmcm9tICcuL2Vzb2x2ZS10YWctb3B0aW9ucy5pbnRlcmZhY2UnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRXNvbHZlVGFnc1NlcnZpY2Uge1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgQEluamVjdChFU09MVkVfQ09OTkVDVF9DT05GSUcpIHByaXZhdGUgY29uZmlnOiBFc29sdmVDb25uZWN0Q29uZmlnLFxyXG4gICAgICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgICkgeyB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXRyaWV2ZXMgYWN0aXZlIHRvcGljcyBmcm9tIHRoZSBsaXN0IG9mIHRvcGljIElEJ3MuIE5vdGUgdGhhdCBpbmFjdGl2ZSBvciBleHBpcmVkXHJcbiAgICAgKiB0b3BpY3Mgd2lsbCBub3QgYmUgcmV0cmlldmVkLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBvcHRpb25zIFRhZyBmaWx0ZXJzXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRUYWdzKG9wdGlvbnM/OiBFc29sdmVUYWdPcHRpb25zKTogT2JzZXJ2YWJsZTxFc29sdmVUYWdbXT4ge1xyXG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IHRoaXMucGFyc2VPcHRpb25zKG9wdGlvbnMpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgICAgICAgIC5nZXQ8RXNvbHZlR2V0UmVzcG9uc2U8RXNvbHZlVGFnUmVjb3JkW10+PihcclxuICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L2dldC10YWdzLnBocGAsXHJcbiAgICAgICAgICAgICAgICB7IHBhcmFtcyB9LFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5yZWNvcmRzID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzVGFncyhyZXNwb25zZS5yZWNvcmRzKTtcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgcGFyc2VPcHRpb25zKG9wdGlvbnM/OiBFc29sdmVUYWdPcHRpb25zKSB7XHJcbiAgICAgICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCk7XHJcblxyXG4gICAgICAgIGlmIChvcHRpb25zKSB7XHJcbiAgICAgICAgICAgIGlmIChvcHRpb25zLnRhZ3NfaWQpIHtcclxuICAgICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KG9wdGlvbnMudGFnc19pZCkpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCB0YWdfbGlzdCA9IG9wdGlvbnMudGFnc19pZDtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRhZ19saXN0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZCgndGFnc19pZCcsIHRhZ19saXN0LmpvaW4oJywnKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKCd0YWdzX2lkJywgb3B0aW9ucy50YWdzX2lkKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGlmIChvcHRpb25zLnBocmFzZSAmJiBvcHRpb25zLnBocmFzZSAhPT0gJycpIHtcclxuICAgICAgICAgICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKCdwaHJhc2UnLCBvcHRpb25zLnBocmFzZSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBocmFzZV9tYXRjaF9tb2RlID0gb3B0aW9ucy5waHJhc2VfbWF0Y2hfbW9kZTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHBocmFzZV9tYXRjaF9tb2RlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoJ3BocmFzZV9tYXRjaF9tb2RlJywgcGhyYXNlX21hdGNoX21vZGUpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHBhcmFtcztcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHByb2Nlc3NUYWdzKHJlY29yZHM6IEVzb2x2ZVRhZ1JlY29yZFtdKTogRXNvbHZlVGFnW10ge1xyXG4gICAgICAgIGNvbnN0IHRhZ3M6IEVzb2x2ZVRhZ1tdID0gW107XHJcblxyXG4gICAgICAgIGlmIChyZWNvcmRzKSB7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgcmVjb3JkIG9mIHJlY29yZHMpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHRhZyA9IG5ldyBFc29sdmVUYWcocmVjb3JkKTtcclxuXHJcbiAgICAgICAgICAgICAgICB0YWdzLnB1c2godGFnKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRhZ3M7XHJcbiAgICB9XHJcbn1cclxuIl19","// Types\r\nexport * from './esolve-tag-phrase-match-mode.type';\r\n// Interfaces\r\nexport * from './esolve-tag-record.interface';\r\nexport * from './esolve-tag-options.interface';\r\n// Classes\r\nexport * from './esolve-tag.model';\r\n// Service\r\nexport * from './esolve-tags.service';\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvdGFncy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxRQUFRO0FBQ1IsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxhQUFhO0FBQ2IsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLFVBQVU7QUFDVixjQUFjLG9CQUFvQixDQUFDO0FBQ25DLFVBQVU7QUFDVixjQUFjLHVCQUF1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gVHlwZXNcclxuZXhwb3J0ICogZnJvbSAnLi9lc29sdmUtdGFnLXBocmFzZS1tYXRjaC1tb2RlLnR5cGUnO1xyXG4vLyBJbnRlcmZhY2VzXHJcbmV4cG9ydCAqIGZyb20gJy4vZXNvbHZlLXRhZy1yZWNvcmQuaW50ZXJmYWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9lc29sdmUtdGFnLW9wdGlvbnMuaW50ZXJmYWNlJztcclxuLy8gQ2xhc3Nlc1xyXG5leHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS10YWcubW9kZWwnO1xyXG4vLyBTZXJ2aWNlXHJcbmV4cG9ydCAqIGZyb20gJy4vZXNvbHZlLXRhZ3Muc2VydmljZSc7XHJcbiJdfQ==","export class EsolveTopic {\r\n constructor(record) {\r\n this.id = 0;\r\n this.name = '';\r\n this.short_description = '';\r\n this.sort_priority = 0;\r\n if (record) {\r\n this.id = +(record.id ?? 0);\r\n this.name = record.name ?? '';\r\n this.short_description = record.short_description ?? '';\r\n this.sort_priority = +(record.sort_priority ?? 0);\r\n }\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXRvcGljLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL3RvcGljcy9lc29sdmUtdG9waWMubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLFdBQVc7SUFNcEIsWUFBWSxNQUE2QjtRQUxsQyxPQUFFLEdBQVcsQ0FBQyxDQUFDO1FBQ2YsU0FBSSxHQUFXLEVBQUUsQ0FBQztRQUNsQixzQkFBaUIsR0FBVyxFQUFFLENBQUM7UUFDL0Isa0JBQWEsR0FBVyxDQUFDLENBQUM7UUFHN0IsSUFBSSxNQUFNLEVBQUU7WUFDUixJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQzVCLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7WUFDOUIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsSUFBSSxFQUFFLENBQUM7WUFDeEQsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLGFBQWEsSUFBSSxDQUFDLENBQUMsQ0FBQztTQUNyRDtJQUNMLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBFc29sdmVUb3BpYyB7XHJcbiAgICBwdWJsaWMgaWQ6IG51bWJlciA9IDA7XHJcbiAgICBwdWJsaWMgbmFtZTogc3RyaW5nID0gJyc7XHJcbiAgICBwdWJsaWMgc2hvcnRfZGVzY3JpcHRpb246IHN0cmluZyA9ICcnO1xyXG4gICAgcHVibGljIHNvcnRfcHJpb3JpdHk6IG51bWJlciA9IDA7XHJcblxyXG4gICAgY29uc3RydWN0b3IocmVjb3JkPzogUGFydGlhbDxFc29sdmVUb3BpYz4pIHtcclxuICAgICAgICBpZiAocmVjb3JkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaWQgPSArKHJlY29yZC5pZCA/PyAwKTtcclxuICAgICAgICAgICAgdGhpcy5uYW1lID0gcmVjb3JkLm5hbWUgPz8gJyc7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvcnRfZGVzY3JpcHRpb24gPSByZWNvcmQuc2hvcnRfZGVzY3JpcHRpb24gPz8gJyc7XHJcbiAgICAgICAgICAgIHRoaXMuc29ydF9wcmlvcml0eSA9ICsocmVjb3JkLnNvcnRfcHJpb3JpdHkgPz8gMCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==","import { Inject, Injectable } from '@angular/core';\r\nimport { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { map } from 'rxjs/operators';\r\nimport { ESOLVE_CONNECT_CONFIG } from '../esolve-connect-config.constant';\r\nimport { EsolveTopic } from './esolve-topic.model';\r\nimport * as i0 from \"@angular/core\";\r\nimport * as i1 from \"@angular/common/http\";\r\nexport class EsolveTopicService {\r\n constructor(config, http) {\r\n this.config = config;\r\n this.http = http;\r\n }\r\n /**\r\n * Retrieves active topics from the list of topic ID's. Note that inactive or expired\r\n * topics will not be retrieved.\r\n *\r\n * @param topic_id_list List of topic ID's that need to be retrieved\r\n */\r\n getTopics(topic_id_list = []) {\r\n let params = new HttpParams();\r\n if (topic_id_list.length > 0) {\r\n params = params.append('topic_id', topic_id_list.join(','));\r\n }\r\n return this.http\r\n .get(`${this.config.api_url}/get-topics.php`, { params })\r\n .pipe(map((response) => {\r\n if (response.records === undefined) {\r\n throw response;\r\n }\r\n return this.processTopics(response.records);\r\n }));\r\n }\r\n processTopics(records) {\r\n const topics = [];\r\n if (records) {\r\n for (const record of records) {\r\n const topic = new EsolveTopic(record);\r\n topics.push(topic);\r\n }\r\n }\r\n return topics;\r\n }\r\n}\r\nEsolveTopicService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveTopicService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });\r\nEsolveTopicService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveTopicService, providedIn: 'root' });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveTopicService, decorators: [{\r\n type: Injectable,\r\n args: [{\r\n providedIn: 'root',\r\n }]\r\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\r\n type: Inject,\r\n args: [ESOLVE_CONNECT_CONFIG]\r\n }] }, { type: i1.HttpClient }]; } });\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXRvcGljLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvdG9waWNzL2Vzb2x2ZS10b3BpYy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFHOUQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3JDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRTFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7O0FBTW5ELE1BQU0sT0FBTyxrQkFBa0I7SUFDM0IsWUFDMkMsTUFBMkIsRUFDMUQsSUFBZ0I7UUFEZSxXQUFNLEdBQU4sTUFBTSxDQUFxQjtRQUMxRCxTQUFJLEdBQUosSUFBSSxDQUFZO0lBQ3hCLENBQUM7SUFFTDs7Ozs7T0FLRztJQUNJLFNBQVMsQ0FBQyxnQkFBbUMsRUFBRTtRQUNsRCxJQUFJLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBRTlCLElBQUksYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDMUIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLGFBQWEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztTQUMvRDtRQUVELE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDWCxHQUFHLENBQ0EsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8saUJBQWlCLEVBQ3ZDLEVBQUUsTUFBTSxFQUFFLENBQ2I7YUFDQSxJQUFJLENBQ0QsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDYixJQUFJLFFBQVEsQ0FBQyxPQUFPLEtBQUssU0FBUyxFQUFFO2dCQUNoQyxNQUFNLFFBQVEsQ0FBQzthQUNsQjtZQUVELE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDaEQsQ0FBQyxDQUFDLENBQ0wsQ0FBQztJQUNWLENBQUM7SUFFTyxhQUFhLENBQUMsT0FBNEI7UUFDOUMsTUFBTSxNQUFNLEdBQWtCLEVBQUUsQ0FBQztRQUVqQyxJQUFJLE9BQU8sRUFBRTtZQUNULEtBQUssTUFBTSxNQUFNLElBQUksT0FBTyxFQUFFO2dCQUMxQixNQUFNLEtBQUssR0FBRyxJQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFFdEMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUN0QjtTQUNKO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQzs7K0dBL0NRLGtCQUFrQixrQkFFZixxQkFBcUI7bUhBRnhCLGtCQUFrQixjQUZmLE1BQU07MkZBRVQsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7MEJBR1EsTUFBTTsyQkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuXHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgRXNvbHZlQ29ubmVjdENvbmZpZyB9IGZyb20gJy4uL2Vzb2x2ZS1jb25uZWN0LmNvbmZpZyc7XHJcbmltcG9ydCB7IEVTT0xWRV9DT05ORUNUX0NPTkZJRyB9IGZyb20gJy4uL2Vzb2x2ZS1jb25uZWN0LWNvbmZpZy5jb25zdGFudCc7XHJcbmltcG9ydCB7IEVzb2x2ZUdldFJlc3BvbnNlIH0gZnJvbSAnLi4vc2hhcmVkL3Jlc3BvbnNlJztcclxuaW1wb3J0IHsgRXNvbHZlVG9waWMgfSBmcm9tICcuL2Vzb2x2ZS10b3BpYy5tb2RlbCc7XHJcbmltcG9ydCB7IEVzb2x2ZVRvcGljUmVjb3JkIH0gZnJvbSAnLi9lc29sdmUtdG9waWMtcmVjb3JkLmludGVyZmFjZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFc29sdmVUb3BpY1NlcnZpY2Uge1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgQEluamVjdChFU09MVkVfQ09OTkVDVF9DT05GSUcpIHByaXZhdGUgY29uZmlnOiBFc29sdmVDb25uZWN0Q29uZmlnLFxyXG4gICAgICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgICkgeyB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXRyaWV2ZXMgYWN0aXZlIHRvcGljcyBmcm9tIHRoZSBsaXN0IG9mIHRvcGljIElEJ3MuIE5vdGUgdGhhdCBpbmFjdGl2ZSBvciBleHBpcmVkXHJcbiAgICAgKiB0b3BpY3Mgd2lsbCBub3QgYmUgcmV0cmlldmVkLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB0b3BpY19pZF9saXN0IExpc3Qgb2YgdG9waWMgSUQncyB0aGF0IG5lZWQgdG8gYmUgcmV0cmlldmVkXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRUb3BpY3ModG9waWNfaWRfbGlzdDogcmVhZG9ubHkgbnVtYmVyW10gPSBbXSk6IE9ic2VydmFibGU8RXNvbHZlVG9waWNbXT4ge1xyXG4gICAgICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xyXG5cclxuICAgICAgICBpZiAodG9waWNfaWRfbGlzdC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoJ3RvcGljX2lkJywgdG9waWNfaWRfbGlzdC5qb2luKCcsJykpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAgICAgICAuZ2V0PEVzb2x2ZUdldFJlc3BvbnNlPEVzb2x2ZVRvcGljUmVjb3JkW10+PihcclxuICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L2dldC10b3BpY3MucGhwYCxcclxuICAgICAgICAgICAgICAgIHsgcGFyYW1zIH0sXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnJlY29yZHMgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyByZXNwb25zZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NUb3BpY3MocmVzcG9uc2UucmVjb3Jkcyk7XHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHByb2Nlc3NUb3BpY3MocmVjb3JkczogRXNvbHZlVG9waWNSZWNvcmRbXSk6IEVzb2x2ZVRvcGljW10ge1xyXG4gICAgICAgIGNvbnN0IHRvcGljczogRXNvbHZlVG9waWNbXSA9IFtdO1xyXG5cclxuICAgICAgICBpZiAocmVjb3Jkcykge1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IHJlY29yZCBvZiByZWNvcmRzKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB0b3BpYyA9IG5ldyBFc29sdmVUb3BpYyhyZWNvcmQpO1xyXG5cclxuICAgICAgICAgICAgICAgIHRvcGljcy5wdXNoKHRvcGljKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRvcGljcztcclxuICAgIH1cclxufVxyXG4iXX0=","import { EsolveCategoryTreeItem } from '../../category-tree';\r\nimport { EsolveManufacturer } from '../../manufacturers';\r\nimport { EsolveRange } from '../../ranges';\r\nimport { EsolveTag } from '../../tags';\r\nimport { EsolveTopic } from '../../topics';\r\nexport class EsolveAsset {\r\n constructor(record) {\r\n this.id = 0;\r\n this.src = '';\r\n this.name = '';\r\n this.description = '';\r\n this.document_number = '';\r\n this.document_type = '';\r\n this.area_of_application = '';\r\n this.asset_category = '';\r\n this.asset_sub_category = '';\r\n this.sort_priority = 0;\r\n this.topics = [];\r\n this.tags = [];\r\n this.image_name = '';\r\n this.id = +record.id;\r\n this.src = record.src;\r\n this.name = record.name;\r\n this.type = record.type;\r\n this.description = record.description;\r\n this.document_number = record.document_number ?? '';\r\n this.document_type = record.document_type ?? '';\r\n this.area_of_application = record.area_of_application ?? '';\r\n this.asset_category = record.asset_category ?? '';\r\n this.asset_sub_category = record.asset_sub_category ?? '';\r\n this.sort_priority = +(record.sort_priority ?? '');\r\n this.image_name = record.image_name ?? '';\r\n if (record.created) {\r\n this.created = record.created;\r\n }\r\n if (record.category) {\r\n this.category = new EsolveCategoryTreeItem(record.category.type, record.category.id, record.category.parent_id, record.category.description, record.category.sef_description, record.category.short_description, record.category.sort_priority, record.category.active, record.category.display_only, record.category.image, record.category.seo_page_title, record.category.seo_keywords, record.category.seo_description);\r\n }\r\n if (record.subcategory) {\r\n this.subcategory = new EsolveCategoryTreeItem(record.subcategory.type, record.subcategory.id, record.subcategory.parent_id, record.subcategory.description, record.subcategory.sef_description, record.subcategory.short_description, record.subcategory.sort_priority, record.subcategory.active, record.subcategory.display_only, record.subcategory.image, record.subcategory.seo_page_title, record.subcategory.seo_keywords, record.subcategory.seo_description);\r\n }\r\n if (record.manufacturer) {\r\n this.manufacturer = new EsolveManufacturer(record.manufacturer);\r\n }\r\n if (record.range) {\r\n this.range = new EsolveRange(record.range);\r\n }\r\n if (record.topics && record.topics.length > 0) {\r\n for (const topic of record.topics) {\r\n this.topics.push(new EsolveTopic(topic));\r\n }\r\n }\r\n if (record.tags && record.tags.length > 0) {\r\n for (const tag of record.tags) {\r\n this.tags.push(new EsolveTag(tag));\r\n }\r\n }\r\n }\r\n /**\r\n * Shortcut to `getImagePath()`\r\n */\r\n get image_src() {\r\n return this.getImagePath();\r\n }\r\n /**\r\n * Retrieve image path\r\n *\r\n * @returns Image path on CDN, else empty string if no image exists\r\n */\r\n getImagePath() {\r\n if (this.image_name !== '') {\r\n return `/images/documents/${this.image_name}`;\r\n }\r\n return '';\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWFzc2V0Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL3NoYXJlZC9hc3NldHMvZXNvbHZlLWFzc2V0Lm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzdELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN2QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBSzNDLE1BQU0sT0FBTyxXQUFXO0lBNkJwQixZQUFZLE1BQXlCO1FBNUI5QixPQUFFLEdBQVcsQ0FBQyxDQUFDO1FBQ2YsUUFBRyxHQUFXLEVBQUUsQ0FBQztRQUNqQixTQUFJLEdBQVcsRUFBRSxDQUFDO1FBRWxCLGdCQUFXLEdBQVcsRUFBRSxDQUFDO1FBQ3pCLG9CQUFlLEdBQVcsRUFBRSxDQUFDO1FBQzdCLGtCQUFhLEdBQVcsRUFBRSxDQUFDO1FBQzNCLHdCQUFtQixHQUFXLEVBQUUsQ0FBQztRQUNqQyxtQkFBYyxHQUFXLEVBQUUsQ0FBQztRQUM1Qix1QkFBa0IsR0FBVyxFQUFFLENBQUM7UUFDaEMsa0JBQWEsR0FBVyxDQUFDLENBQUM7UUFNMUIsV0FBTSxHQUFrQixFQUFFLENBQUM7UUFDM0IsU0FBSSxHQUFnQixFQUFFLENBQUM7UUFFdEIsZUFBVSxHQUFXLEVBQUUsQ0FBQztRQVU1QixJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUM7UUFDdEIsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztRQUN4QixJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUM7UUFFdEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxNQUFNLENBQUMsZUFBZSxJQUFJLEVBQUUsQ0FBQztRQUNwRCxJQUFJLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQyxhQUFhLElBQUksRUFBRSxDQUFDO1FBQ2hELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxNQUFNLENBQUMsbUJBQW1CLElBQUksRUFBRSxDQUFDO1FBQzVELElBQUksQ0FBQyxjQUFjLEdBQUcsTUFBTSxDQUFDLGNBQWMsSUFBSSxFQUFFLENBQUM7UUFDbEQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsSUFBSSxFQUFFLENBQUM7UUFDMUQsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLGFBQWEsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDO1FBRTFDLElBQUksTUFBTSxDQUFDLE9BQU8sRUFBRTtZQUNoQixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7U0FDakM7UUFFRCxJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUU7WUFDakIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLHNCQUFzQixDQUN0QyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksRUFDcEIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQ2xCLE1BQU0sQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUN6QixNQUFNLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFDM0IsTUFBTSxDQUFDLFFBQVEsQ0FBQyxlQUFlLEVBQy9CLE1BQU0sQ0FBQyxRQUFRLENBQUMsaUJBQWlCLEVBQ2pDLE1BQU0sQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUM3QixNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFDdEIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQzVCLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUNyQixNQUFNLENBQUMsUUFBUSxDQUFDLGNBQWMsRUFDOUIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQzVCLE1BQU0sQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUNsQyxDQUFDO1NBQ0w7UUFFRCxJQUFJLE1BQU0sQ0FBQyxXQUFXLEVBQUU7WUFDcEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLHNCQUFzQixDQUN6QyxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksRUFDdkIsTUFBTSxDQUFDLFdBQVcsQ0FBQyxFQUFFLEVBQ3JCLE1BQU0sQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUM1QixNQUFNLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFDOUIsTUFBTSxDQUFDLFdBQVcsQ0FBQyxlQUFlLEVBQ2xDLE1BQU0sQ0FBQyxXQUFXLENBQUMsaUJBQWlCLEVBQ3BDLE1BQU0sQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUNoQyxNQUFNLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFDekIsTUFBTSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQy9CLE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUN4QixNQUFNLENBQUMsV0FBVyxDQUFDLGNBQWMsRUFDakMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQy9CLE1BQU0sQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUNyQyxDQUFDO1NBQ0w7UUFHRCxJQUFJLE1BQU0sQ0FBQyxZQUFZLEVBQUU7WUFDckIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUNuRTtRQUVELElBQUksTUFBTSxDQUFDLEtBQUssRUFBRTtZQUNkLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxXQUFXLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzlDO1FBRUQsSUFBSSxNQUFNLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUMzQyxLQUFLLE1BQU0sS0FBSyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUU7Z0JBQy9CLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7YUFDNUM7U0FDSjtRQUVELElBQUksTUFBTSxDQUFDLElBQUksSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDdkMsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxFQUFFO2dCQUMzQixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2FBQ3RDO1NBQ0o7SUFDTCxDQUFDO0lBbEZEOztPQUVHO0lBQ0gsSUFBVyxTQUFTO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQy9CLENBQUM7SUErRUQ7Ozs7T0FJRztJQUNJLFlBQVk7UUFDZixJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssRUFBRSxFQUFFO1lBQ3hCLE9BQU8scUJBQXFCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztTQUNqRDtRQUVELE9BQU8sRUFBRSxDQUFDO0lBQ2QsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXNvbHZlQ2F0ZWdvcnlUcmVlSXRlbSB9IGZyb20gJy4uLy4uL2NhdGVnb3J5LXRyZWUnO1xyXG5pbXBvcnQgeyBFc29sdmVNYW51ZmFjdHVyZXIgfSBmcm9tICcuLi8uLi9tYW51ZmFjdHVyZXJzJztcclxuaW1wb3J0IHsgRXNvbHZlUmFuZ2UgfSBmcm9tICcuLi8uLi9yYW5nZXMnO1xyXG5pbXBvcnQgeyBFc29sdmVUYWcgfSBmcm9tICcuLi8uLi90YWdzJztcclxuaW1wb3J0IHsgRXNvbHZlVG9waWMgfSBmcm9tICcuLi8uLi90b3BpY3MnO1xyXG5cclxuaW1wb3J0IHsgRXNvbHZlQXNzZXRUeXBlIH0gZnJvbSAnLi9lc29sdmUtYXNzZXQtdHlwZS50eXBlJztcclxuaW1wb3J0IHsgRXNvbHZlQXNzZXRSZWNvcmQgfSBmcm9tICcuL2Vzb2x2ZS1hc3NldC1yZWNvcmQuaW50ZXJmYWNlJztcclxuXHJcbmV4cG9ydCBjbGFzcyBFc29sdmVBc3NldCB7XHJcbiAgICBwdWJsaWMgaWQ6IG51bWJlciA9IDA7XHJcbiAgICBwdWJsaWMgc3JjOiBzdHJpbmcgPSAnJztcclxuICAgIHB1YmxpYyBuYW1lOiBzdHJpbmcgPSAnJztcclxuICAgIHB1YmxpYyB0eXBlPzogRXNvbHZlQXNzZXRUeXBlO1xyXG4gICAgcHVibGljIGRlc2NyaXB0aW9uOiBzdHJpbmcgPSAnJztcclxuICAgIHB1YmxpYyBkb2N1bWVudF9udW1iZXI6IHN0cmluZyA9ICcnO1xyXG4gICAgcHVibGljIGRvY3VtZW50X3R5cGU6IHN0cmluZyA9ICcnO1xyXG4gICAgcHVibGljIGFyZWFfb2ZfYXBwbGljYXRpb246IHN0cmluZyA9ICcnO1xyXG4gICAgcHVibGljIGFzc2V0X2NhdGVnb3J5OiBzdHJpbmcgPSAnJztcclxuICAgIHB1YmxpYyBhc3NldF9zdWJfY2F0ZWdvcnk6IHN0cmluZyA9ICcnO1xyXG4gICAgcHVibGljIHNvcnRfcHJpb3JpdHk6IG51bWJlciA9IDA7XHJcbiAgICBwdWJsaWMgY3JlYXRlZD86IHN0cmluZztcclxuICAgIHB1YmxpYyBjYXRlZ29yeT86IEVzb2x2ZUNhdGVnb3J5VHJlZUl0ZW07XHJcbiAgICBwdWJsaWMgc3ViY2F0ZWdvcnk/OiBFc29sdmVDYXRlZ29yeVRyZWVJdGVtO1xyXG4gICAgcHVibGljIG1hbnVmYWN0dXJlcj86IEVzb2x2ZU1hbnVmYWN0dXJlcjtcclxuICAgIHB1YmxpYyByYW5nZT86IEVzb2x2ZVJhbmdlO1xyXG4gICAgcHVibGljIHRvcGljczogRXNvbHZlVG9waWNbXSA9IFtdO1xyXG4gICAgcHVibGljIHRhZ3M6IEVzb2x2ZVRhZ1tdID0gW107XHJcblxyXG4gICAgcHJpdmF0ZSBpbWFnZV9uYW1lOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNob3J0Y3V0IHRvIGBnZXRJbWFnZVBhdGgoKWBcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCBpbWFnZV9zcmMoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRJbWFnZVBhdGgoKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdHJ1Y3RvcihyZWNvcmQ6IEVzb2x2ZUFzc2V0UmVjb3JkKSB7XHJcbiAgICAgICAgdGhpcy5pZCA9ICtyZWNvcmQuaWQ7XHJcbiAgICAgICAgdGhpcy5zcmMgPSByZWNvcmQuc3JjO1xyXG4gICAgICAgIHRoaXMubmFtZSA9IHJlY29yZC5uYW1lO1xyXG4gICAgICAgIHRoaXMudHlwZSA9IHJlY29yZC50eXBlO1xyXG4gICAgICAgIHRoaXMuZGVzY3JpcHRpb24gPSByZWNvcmQuZGVzY3JpcHRpb247XHJcblxyXG4gICAgICAgIHRoaXMuZG9jdW1lbnRfbnVtYmVyID0gcmVjb3JkLmRvY3VtZW50X251bWJlciA/PyAnJztcclxuICAgICAgICB0aGlzLmRvY3VtZW50X3R5cGUgPSByZWNvcmQuZG9jdW1lbnRfdHlwZSA/PyAnJztcclxuICAgICAgICB0aGlzLmFyZWFfb2ZfYXBwbGljYXRpb24gPSByZWNvcmQuYXJlYV9vZl9hcHBsaWNhdGlvbiA/PyAnJztcclxuICAgICAgICB0aGlzLmFzc2V0X2NhdGVnb3J5ID0gcmVjb3JkLmFzc2V0X2NhdGVnb3J5ID8/ICcnO1xyXG4gICAgICAgIHRoaXMuYXNzZXRfc3ViX2NhdGVnb3J5ID0gcmVjb3JkLmFzc2V0X3N1Yl9jYXRlZ29yeSA/PyAnJztcclxuICAgICAgICB0aGlzLnNvcnRfcHJpb3JpdHkgPSArKHJlY29yZC5zb3J0X3ByaW9yaXR5ID8/ICcnKTtcclxuICAgICAgICB0aGlzLmltYWdlX25hbWUgPSByZWNvcmQuaW1hZ2VfbmFtZSA/PyAnJztcclxuXHJcbiAgICAgICAgaWYgKHJlY29yZC5jcmVhdGVkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlZCA9IHJlY29yZC5jcmVhdGVkO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHJlY29yZC5jYXRlZ29yeSkge1xyXG4gICAgICAgICAgICB0aGlzLmNhdGVnb3J5ID0gbmV3IEVzb2x2ZUNhdGVnb3J5VHJlZUl0ZW0oXHJcbiAgICAgICAgICAgICAgICByZWNvcmQuY2F0ZWdvcnkudHlwZSxcclxuICAgICAgICAgICAgICAgIHJlY29yZC5jYXRlZ29yeS5pZCxcclxuICAgICAgICAgICAgICAgIHJlY29yZC5jYXRlZ29yeS5wYXJlbnRfaWQsXHJcbiAgICAgICAgICAgICAgICByZWNvcmQuY2F0ZWdvcnkuZGVzY3JpcHRpb24sXHJcbiAgICAgICAgICAgICAgICByZWNvcmQuY2F0ZWdvcnkuc2VmX2Rlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgICAgICAgcmVjb3JkLmNhdGVnb3J5LnNob3J0X2Rlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgICAgICAgcmVjb3JkLmNhdGVnb3J5LnNvcnRfcHJpb3JpdHksXHJcbiAgICAgICAgICAgICAgICByZWNvcmQuY2F0ZWdvcnkuYWN0aXZlLFxyXG4gICAgICAgICAgICAgICAgcmVjb3JkLmNhdGVnb3J5LmRpc3BsYXlfb25seSxcclxuICAgICAgICAgICAgICAgIHJlY29yZC5jYXRlZ29yeS5pbWFnZSxcclxuICAgICAgICAgICAgICAgIHJlY29yZC5jYXRlZ29yeS5zZW9fcGFnZV90aXRsZSxcclxuICAgICAgICAgICAgICAgIHJlY29yZC5jYXRlZ29yeS5zZW9fa2V5d29yZHMsXHJcbiAgICAgICAgICAgICAgICByZWNvcmQuY2F0ZWdvcnkuc2VvX2Rlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHJlY29yZC5zdWJjYXRlZ29yeSkge1xyXG4gICAgICAgICAgICB0aGlzLnN1YmNhdGVnb3J5ID0gbmV3IEVzb2x2ZUNhdGVnb3J5VHJlZUl0ZW0oXHJcbiAgICAgICAgICAgICAgICByZWNvcmQuc3ViY2F0ZWdvcnkudHlwZSxcclxuICAgICAgICAgICAgICAgIHJlY29yZC5zdWJjYXRlZ29yeS5pZCxcclxuICAgICAgICAgICAgICAgIHJlY29yZC5zdWJjYXRlZ29yeS5wYXJlbnRfaWQsXHJcbiAgICAgICAgICAgICAgICByZWNvcmQuc3ViY2F0ZWdvcnkuZGVzY3JpcHRpb24sXHJcbiAgICAgICAgICAgICAgICByZWNvcmQuc3ViY2F0ZWdvcnkuc2VmX2Rlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgICAgICAgcmVjb3JkLnN1YmNhdGVnb3J5LnNob3J0X2Rlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgICAgICAgcmVjb3JkLnN1YmNhdGVnb3J5LnNvcnRfcHJpb3JpdHksXHJcbiAgICAgICAgICAgICAgICByZWNvcmQuc3ViY2F0ZWdvcnkuYWN0aXZlLFxyXG4gICAgICAgICAgICAgICAgcmVjb3JkLnN1YmNhdGVnb3J5LmRpc3BsYXlfb25seSxcclxuICAgICAgICAgICAgICAgIHJlY29yZC5zdWJjYXRlZ29yeS5pbWFnZSxcclxuICAgICAgICAgICAgICAgIHJlY29yZC5zdWJjYXRlZ29yeS5zZW9fcGFnZV90aXRsZSxcclxuICAgICAgICAgICAgICAgIHJlY29yZC5zdWJjYXRlZ29yeS5zZW9fa2V5d29yZHMsXHJcbiAgICAgICAgICAgICAgICByZWNvcmQuc3ViY2F0ZWdvcnkuc2VvX2Rlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuXHJcblxyXG4gICAgICAgIGlmIChyZWNvcmQubWFudWZhY3R1cmVyKSB7XHJcbiAgICAgICAgICAgIHRoaXMubWFudWZhY3R1cmVyID0gbmV3IEVzb2x2ZU1hbnVmYWN0dXJlcihyZWNvcmQubWFudWZhY3R1cmVyKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChyZWNvcmQucmFuZ2UpIHtcclxuICAgICAgICAgICAgdGhpcy5yYW5nZSA9IG5ldyBFc29sdmVSYW5nZShyZWNvcmQucmFuZ2UpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHJlY29yZC50b3BpY3MgJiYgcmVjb3JkLnRvcGljcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgdG9waWMgb2YgcmVjb3JkLnRvcGljcykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy50b3BpY3MucHVzaChuZXcgRXNvbHZlVG9waWModG9waWMpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHJlY29yZC50YWdzICYmIHJlY29yZC50YWdzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgZm9yIChjb25zdCB0YWcgb2YgcmVjb3JkLnRhZ3MpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudGFncy5wdXNoKG5ldyBFc29sdmVUYWcodGFnKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXRyaWV2ZSBpbWFnZSBwYXRoXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybnMgSW1hZ2UgcGF0aCBvbiBDRE4sIGVsc2UgZW1wdHkgc3RyaW5nIGlmIG5vIGltYWdlIGV4aXN0c1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0SW1hZ2VQYXRoKCk6IHN0cmluZyB7XHJcbiAgICAgICAgaWYgKHRoaXMuaW1hZ2VfbmFtZSAhPT0gJycpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGAvaW1hZ2VzL2RvY3VtZW50cy8ke3RoaXMuaW1hZ2VfbmFtZX1gO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==","import { Inject, Injectable } from '@angular/core';\r\nimport { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { map } from 'rxjs/operators';\r\nimport { ESOLVE_CONNECT_CONFIG } from '../../esolve-connect-config.constant';\r\nimport { EsolveList } from '../esolve-list.model';\r\nimport { EsolveAsset } from './esolve-asset.model';\r\nimport * as i0 from \"@angular/core\";\r\nimport * as i1 from \"@angular/common/http\";\r\nexport class EsolveAssetsService {\r\n constructor(config, http) {\r\n this.config = config;\r\n this.http = http;\r\n }\r\n getAsset(id) {\r\n const params = new HttpParams({ fromObject: { assets_id: id } });\r\n return this.getAssetRecords(params).pipe(map((response) => {\r\n if ((response.records === undefined) ||\r\n (response.records.length <= 0)) {\r\n throw response;\r\n }\r\n const record = response.records[0];\r\n return this.processAsset(record);\r\n }));\r\n }\r\n getAssets(options) {\r\n const params = this.parseOptions(options);\r\n return this.getAssetRecords(params).pipe(map((response) => {\r\n if (response.records === undefined) {\r\n throw response;\r\n }\r\n const assets = [];\r\n for (const record of response.records) {\r\n assets.push(this.processAsset(record));\r\n }\r\n const page = options?.page ?? 0;\r\n const rows = options?.rows ?? 0;\r\n const total = +response.additional_data.total_records;\r\n return new EsolveList(assets, page, rows, total);\r\n }));\r\n }\r\n processAsset(record) {\r\n return new EsolveAsset(record);\r\n }\r\n getAssetRecords(params) {\r\n return this.http.get(`${this.config.api_url}/get-assets.php`, { params });\r\n }\r\n parseOptions(options) {\r\n let params = new HttpParams();\r\n if (!options) {\r\n return params;\r\n }\r\n if (options.page) {\r\n params = params.set('page', options.page);\r\n }\r\n if (options.rows) {\r\n params = params.set('rows', options.rows);\r\n }\r\n if (options.asset_type) {\r\n params = params.set('asset_type', options.asset_type);\r\n }\r\n if (options.category_id) {\r\n params = params.set('category_id', options.category_id);\r\n }\r\n if (options.subcategory_id) {\r\n params = params.set('subcategory_id', options.subcategory_id);\r\n }\r\n if (options.manufacturers_id) {\r\n params = params.set('manufacturers_id', options.manufacturers_id);\r\n }\r\n if (options.ranges_id) {\r\n params = params.set('ranges_id', options.ranges_id);\r\n }\r\n if (options.asset_category) {\r\n params = params.set('asset_category', options.asset_category);\r\n }\r\n if (options.asset_sub_category) {\r\n params = params.set('asset_sub_category', options.asset_sub_category);\r\n }\r\n if (options.document_number) {\r\n params = params.set('document_number', options.document_number);\r\n }\r\n if (options.document_type) {\r\n params = params.set('document_type', options.document_type);\r\n }\r\n if (options.area_of_application) {\r\n params = params.set('area_of_application', options.area_of_application);\r\n }\r\n return params;\r\n }\r\n}\r\nEsolveAssetsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveAssetsService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });\r\nEsolveAssetsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveAssetsService, providedIn: 'root' });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveAssetsService, decorators: [{\r\n type: Injectable,\r\n args: [{\r\n providedIn: 'root',\r\n }]\r\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\r\n type: Inject,\r\n args: [ESOLVE_CONNECT_CONFIG]\r\n }] }, { type: i1.HttpClient }]; } });\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWFzc2V0cy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL3NoYXJlZC9hc3NldHMvZXNvbHZlLWFzc2V0cy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFHOUQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRzdFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUlsRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7OztBQU1uRCxNQUFNLE9BQU8sbUJBQW1CO0lBRTVCLFlBQzJDLE1BQTJCLEVBQzFELElBQWdCO1FBRGUsV0FBTSxHQUFOLE1BQU0sQ0FBcUI7UUFDMUQsU0FBSSxHQUFKLElBQUksQ0FBWTtJQUN4QixDQUFDO0lBRUUsUUFBUSxDQUFDLEVBQVU7UUFDdEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxVQUFVLENBQUMsRUFBRSxVQUFVLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLEVBQUMsQ0FBQyxDQUFDO1FBRWhFLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQ3BDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ2IsSUFDSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEtBQUssU0FBUyxDQUFDO2dCQUNoQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxFQUNoQztnQkFDRSxNQUFNLFFB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QUFFO1lBQ25CLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDdkQ7UUFFRCxJQUFJLE9BQU8sQ0FBQyxjQUFjLEVBQUU7WUFDeEIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1NBQ2pFO1FBRUQsSUFBSSxPQUFPLENBQUMsa0JBQWtCLEVBQUU7WUFDNUIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsb0JBQW9CLEVBQUUsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUM7U0FDekU7UUFFRCxJQUFJLE9BQU8sQ0FBQyxlQUFlLEVBQUU7WUFDekIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLEVBQUUsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1NBQ25FO1FBRUQsSUFBSSxPQUFPLENBQUMsYUFBYSxFQUFFO1lBQ3ZCLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDL0Q7UUFFRCxJQUFJLE9BQU8sQ0FBQyxtQkFBbUIsRUFBRTtZQUM3QixNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsRUFBRSxPQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FBQztTQUMzRTtRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7O2dIQXpIUSxtQkFBbUIsa0JBR2hCLHFCQUFxQjtvSEFIeEIsbUJBQW1CLGNBRmhCLE1BQU07MkZBRVQsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7MEJBSVEsTUFBTTsyQkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuXHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgRVNPTFZFX0NPTk5FQ1RfQ09ORklHIH0gZnJvbSAnLi4vLi4vZXNvbHZlLWNvbm5lY3QtY29uZmlnLmNvbnN0YW50JztcclxuaW1wb3J0IHsgRXNvbHZlQ29ubmVjdENvbmZpZyB9IGZyb20gJy4uLy4uL2Vzb2x2ZS1jb25uZWN0LmNvbmZpZyc7XHJcbmltcG9ydCB7IEVzb2x2ZUdldFJlc3BvbnNlIH0gZnJvbSAnLi4vcmVzcG9uc2UnO1xyXG5pbXBvcnQgeyBFc29sdmVMaXN0IH0gZnJvbSAnLi4vZXNvbHZlLWxpc3QubW9kZWwnO1xyXG5cclxuaW1wb3J0IHsgRXNvbHZlQXNzZXRPcHRpb25zIH0gZnJvbSAnLi9lc29sdmUtYXNzZXQtb3B0aW9ucy5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBFc29sdmVBc3NldFJlY29yZCB9IGZyb20gJy4vZXNvbHZlLWFzc2V0LXJlY29yZC5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBFc29sdmVBc3NldCB9IGZyb20gJy4vZXNvbHZlLWFzc2V0Lm1vZGVsJztcclxuaW1wb3J0IHsgRXNvbHZlQXNzZXRMaXN0IH0gZnJvbSAnLi9lc29sdmUtYXNzZXQtbGlzdC50eXBlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEVzb2x2ZUFzc2V0c1NlcnZpY2Uge1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIEBJbmplY3QoRVNPTFZFX0NPTk5FQ1RfQ09ORklHKSBwcml2YXRlIGNvbmZpZzogRXNvbHZlQ29ubmVjdENvbmZpZyxcclxuICAgICAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICApIHsgfVxyXG5cclxuICAgIHB1YmxpYyBnZXRBc3NldChpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxFc29sdmVBc3NldD4ge1xyXG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKHsgZnJvbU9iamVjdDogeyBhc3NldHNfaWQ6IGlkIH19KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0QXNzZXRSZWNvcmRzKHBhcmFtcykucGlwZShcclxuICAgICAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICAgIChyZXNwb25zZS5yZWNvcmRzID09PSB1bmRlZmluZWQpIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgKHJlc3BvbnNlLnJlY29yZHMubGVuZ3RoIDw9IDApXHJcbiAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgICB0aHJvdyByZXNwb25zZTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBjb25zdCByZWNvcmQgPSByZXNwb25zZS5yZWNvcmRzWzBdO1xyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NBc3NldChyZWNvcmQpO1xyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXRBc3NldHMoXHJcbiAgICAgICAgb3B0aW9ucz86IEVzb2x2ZUFzc2V0T3B0aW9ucyxcclxuICAgICk6IE9ic2VydmFibGU8RXNvbHZlQXNzZXRMaXN0PiB7XHJcbiAgICAgICAgY29uc3QgcGFyYW1zID0gdGhpcy5wYXJzZU9wdGlvbnMob3B0aW9ucyk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmdldEFzc2V0UmVjb3JkcyhwYXJhbXMpLnBpcGUoXHJcbiAgICAgICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5yZWNvcmRzID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aHJvdyByZXNwb25zZTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBjb25zdCBhc3NldHM6IEVzb2x2ZUFzc2V0W10gPSBbXTtcclxuXHJcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHJlY29yZCBvZiByZXNwb25zZS5yZWNvcmRzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYXNzZXRzLnB1c2godGhpcy5wcm9jZXNzQXNzZXQocmVjb3JkKSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgY29uc3QgcGFnZSA9IG9wdGlvbnM/LnBhZ2UgPz8gMDtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHJvd3MgPSBvcHRpb25zPy5yb3dzID8/IDA7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB0b3RhbCA9ICtyZXNwb25zZS5hZGRpdGlvbmFsX2RhdGEudG90YWxfcmVjb3JkcztcclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEVzb2x2ZUxpc3QoYXNzZXRzLCBwYWdlLCByb3dzLCB0b3RhbCk7XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBwcm9jZXNzQXNzZXQocmVjb3JkOiBFc29sdmVBc3NldFJlY29yZCk6IEVzb2x2ZUFzc2V0IHtcclxuICAgICAgICByZXR1cm4gbmV3IEVzb2x2ZUFzc2V0KHJlY29yZCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRBc3NldFJlY29yZHMoXHJcbiAgICAgICAgcGFyYW1zOiBIdHRwUGFyYW1zLFxyXG4gICAgKTogT2JzZXJ2YWJsZTxFc29sdmVHZXRSZXNwb25zZTxFc29sdmVBc3NldFJlY29yZFtdPj4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEVzb2x2ZUdldFJlc3BvbnNlPEVzb2x2ZUFzc2V0UmVjb3JkW10+PihcclxuICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vZ2V0LWFzc2V0cy5waHBgLFxyXG4gICAgICAgICAgICB7IHBhcmFtcyB9LFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBwYXJzZU9wdGlvbnMob3B0aW9ucz86IEVzb2x2ZUFzc2V0T3B0aW9ucyk6IEh0dHBQYXJhbXMge1xyXG4gICAgICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xyXG5cclxuICAgICAgICBpZiAoIW9wdGlvbnMpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHBhcmFtcztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChvcHRpb25zLnBhZ2UpIHtcclxuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgncGFnZScsIG9wdGlvbnMucGFnZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAob3B0aW9ucy5yb3dzKSB7XHJcbiAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ3Jvd3MnLCBvcHRpb25zLnJvd3MpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKG9wdGlvbnMuYXNzZXRfdHlwZSkge1xyXG4gICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdhc3NldF90eXBlJywgb3B0aW9ucy5hc3NldF90eXBlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChvcHRpb25zLmNhdGVnb3J5X2lkKSB7XHJcbiAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ2NhdGVnb3J5X2lkJywgb3B0aW9ucy5jYXRlZ29yeV9pZCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAob3B0aW9ucy5zdWJjYXRlZ29yeV9pZCkge1xyXG4gICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdzdWJjYXRlZ29yeV9pZCcsIG9wdGlvbnMuc3ViY2F0ZWdvcnlfaWQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKG9wdGlvbnMubWFudWZhY3R1cmVyc19pZCkge1xyXG4gICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdtYW51ZmFjdHVyZXJzX2lkJywgb3B0aW9ucy5tYW51ZmFjdHVyZXJzX2lkKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChvcHRpb25zLnJhbmdlc19pZCkge1xyXG4gICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdyYW5nZXNfaWQnLCBvcHRpb25zLnJhbmdlc19pZCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAob3B0aW9ucy5hc3NldF9jYXRlZ29yeSkge1xyXG4gICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdhc3NldF9jYXRlZ29yeScsIG9wdGlvbnMuYXNzZXRfY2F0ZWdvcnkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKG9wdGlvbnMuYXNzZXRfc3ViX2NhdGVnb3J5KSB7XHJcbiAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ2Fzc2V0X3N1Yl9jYXRlZ29yeScsIG9wdGlvbnMuYXNzZXRfc3ViX2NhdGVnb3J5KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChvcHRpb25zLmRvY3VtZW50X251bWJlcikge1xyXG4gICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdkb2N1bWVudF9udW1iZXInLCBvcHRpb25zLmRvY3VtZW50X251bWJlcik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAob3B0aW9ucy5kb2N1bWVudF90eXBlKSB7XHJcbiAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ2RvY3VtZW50X3R5cGUnLCBvcHRpb25zLmRvY3VtZW50X3R5cGUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKG9wdGlvbnMuYXJlYV9vZl9hcHBsaWNhdGlvbikge1xyXG4gICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdhcmVhX29mX2FwcGxpY2F0aW9uJywgb3B0aW9ucy5hcmVhX29mX2FwcGxpY2F0aW9uKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBwYXJhbXM7XHJcbiAgICB9XHJcbn1cclxuIl19","// Types\r\nexport * from './esolve-asset-list.type';\r\nexport * from './esolve-asset-type.type';\r\n// Interfaces\r\nexport * from './esolve-linked-asset-record.interface';\r\nexport * from './esolve-asset-options.interface';\r\nexport * from './esolve-asset-record.interface';\r\n// Classes\r\nexport * from './esolve-linked-asset.model';\r\nexport * from './esolve-asset.model';\r\n// Service\r\nexport * from './esolve-assets.service';\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvc2hhcmVkL2Fzc2V0cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxRQUFRO0FBQ1IsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGFBQWE7QUFDYixjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxVQUFVO0FBQ1YsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLFVBQVU7QUFDVixjQUFjLHlCQUF5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gVHlwZXNcclxuZXhwb3J0ICogZnJvbSAnLi9lc29sdmUtYXNzZXQtbGlzdC50eXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9lc29sdmUtYXNzZXQtdHlwZS50eXBlJztcclxuLy8gSW50ZXJmYWNlc1xyXG5leHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS1saW5rZWQtYXNzZXQtcmVjb3JkLmludGVyZmFjZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZXNvbHZlLWFzc2V0LW9wdGlvbnMuaW50ZXJmYWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9lc29sdmUtYXNzZXQtcmVjb3JkLmludGVyZmFjZSc7XHJcbi8vIENsYXNzZXNcclxuZXhwb3J0ICogZnJvbSAnLi9lc29sdmUtbGlua2VkLWFzc2V0Lm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9lc29sdmUtYXNzZXQubW9kZWwnO1xyXG4vLyBTZXJ2aWNlXHJcbmV4cG9ydCAqIGZyb20gJy4vZXNvbHZlLWFzc2V0cy5zZXJ2aWNlJztcclxuIl19","import { Inject, Injectable } from '@angular/core';\r\nimport { HttpClient, HttpParams, HttpHeaders, } from '@angular/common/http';\r\nimport { firstValueFrom, throwError } from 'rxjs';\r\nimport { tap, catchError, map } from 'rxjs/operators';\r\nimport { ESOLVE_CONNECT_CONFIG } from '../esolve-connect-config.constant';\r\nimport { EsolveCookieService } from '../shared/cookie/esolve-cookie.service';\r\nimport { EsolveErrorHandlerService } from '../shared/errors/esolve-error-handler.service';\r\nimport { EsolveSessionService } from '../session/esolve-session.service';\r\nimport * as i0 from \"@angular/core\";\r\nimport * as i1 from \"@angular/common/http\";\r\nimport * as i2 from \"../session/esolve-session.service\";\r\nimport * as i3 from \"../shared/errors/esolve-error-handler.service\";\r\nimport * as i4 from \"../shared/cookie/esolve-cookie.service\";\r\nexport class EsolveAuthService {\r\n constructor(config, http, session, errorHandler, cookieService) {\r\n this.config = config;\r\n this.http = http;\r\n this.session = session;\r\n this.errorHandler = errorHandler;\r\n this.cookieService = cookieService;\r\n }\r\n getAccessToken(email, password, anonymous = false) {\r\n let params = new HttpParams();\r\n if (anonymous) {\r\n params = params.set('anonymous', true);\r\n }\r\n if (email !== '') {\r\n params = params.set('email', email);\r\n }\r\n if (password !== '') {\r\n params = params.set('password', password);\r\n }\r\n return this.http\r\n .get(`${this.config.api_url}/get-access-token.php`, {\r\n params,\r\n headers: new HttpHeaders({\r\n 'Accept-Language': '*',\r\n }),\r\n })\r\n .pipe(tap((responseData) => {\r\n if ((responseData.type === 'error') ||\r\n (responseData.type === 'exception')) {\r\n throw responseData;\r\n }\r\n }), catchError(this.handleError), tap((responseData) => {\r\n this.handleAuthentication(responseData.additional_data);\r\n }));\r\n }\r\n autoLogin() {\r\n this.session.restore(this.handleExpiration(), () => {\r\n firstValueFrom(this.getAccessToken('', '', true)).then(() => { }, (error) => {\r\n console.error(error);\r\n });\r\n });\r\n }\r\n login(email, password) {\r\n const body = {\r\n login: {\r\n email,\r\n password,\r\n },\r\n };\r\n return this.http\r\n .post(`${this.config.api_url}/set-login.php`, body, {\r\n headers: {\r\n 'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;',\r\n },\r\n responseType: 'json',\r\n observe: 'body',\r\n })\r\n .pipe(map((response) => {\r\n if ((response.responses === undefined) ||\r\n (response.responses.length <= 0)) {\r\n throw response;\r\n }\r\n const login_response = response.responses[0];\r\n if ((login_response.status.state !== 'success') &&\r\n (login_response.status.state !== 'warning')) {\r\n throw login_response;\r\n }\r\n for (const response_log of login_response.log) {\r\n if ((response_log.type === 'success') &&\r\n (response_log.message_code === 'login_success')) {\r\n const session_data = login_response.session_data;\r\n const user_id = +login_response.esolve_id;\r\n const location_id = +session_data.location_id;\r\n this.session.handleUpdateSession({\r\n user_id: user_id,\r\n location_id: location_id,\r\n });\r\n return user_id;\r\n }\r\n }\r\n throw login_response;\r\n }), catchError((errorRes) => {\r\n return this.errorHandler.handleHttpPostError('set-login', errorRes);\r\n }));\r\n }\r\n async logout() {\r\n this.session.clearTimer();\r\n this.cookieService.delete('_ws_id');\r\n const response = await firstValueFrom(this.getAccessToken('', '', true));\r\n if (response) {\r\n return response;\r\n }\r\n throw new Error('Invalid response');\r\n }\r\n checkAccessToken(session) {\r\n session = session || this.session.currentSession;\r\n const token = session?.key ?? '';\r\n return this.http\r\n .get(`${this.config.api_url}/get-access-token.php`, {\r\n params: { key: token },\r\n headers: new HttpHeaders({\r\n 'Accept-Language': '*',\r\n }),\r\n })\r\n .pipe(map((responseData) => {\r\n if ((responseData.type === 'error') ||\r\n (responseData.type === 'exception') ||\r\n (!responseData.additional_data.key_okay)) {\r\n throw responseData;\r\n }\r\n const additional_data = responseData.additional_data;\r\n const result = {\r\n key: token,\r\n expires: additional_data.expires,\r\n expiry_time: additional_data.expiry_time,\r\n location_id: additional_data.location_id,\r\n user_id: additional_data.user_id,\r\n };\r\n return result;\r\n }));\r\n }\r\n // Handlers\r\n handleExpiration() {\r\n return (session) => {\r\n firstValueFrom(this.checkAccessToken(session)).then((response) => {\r\n if (response) {\r\n this.handleAuthentication(response);\r\n }\r\n }, () => {\r\n this.logout();\r\n });\r\n };\r\n }\r\n handleAuthentication(result) {\r\n if (!result.key) {\r\n return;\r\n }\r\n this.session.handleSession(+result.user_id, +result.location_id, result.key, +result.expiry_time, +result.expires, this.handleExpiration());\r\n }\r\n handleError(errorRes) {\r\n const error = {\r\n message: 'An unknown error occurred',\r\n data: {},\r\n };\r\n if ((!errorRes.type) ||\r\n (!errorRes.service_type) ||\r\n (!errorRes.message)) {\r\n return throwError(() => error);\r\n }\r\n if (errorRes.message.trim() !== '') {\r\n error.message = errorRes.message;\r\n }\r\n if (errorRes.additional_data) {\r\n error.data = errorRes.additional_data;\r\n }\r\n return throwError(() => error);\r\n }\r\n}\r\nEsolveAuthService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveAuthService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1.HttpClient }, { token: i2.EsolveSessionService }, { token: i3.EsolveErrorHandlerService }, { token: i4.EsolveCookieService }], target: i0.ɵɵFactoryTarget.Injectable });\r\nEsolveAuthService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveAuthService, providedIn: 'root' });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveAuthService, decorators: [{\r\n type: Injectable,\r\n args: [{\r\n providedIn: 'root',\r\n }]\r\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\r\n type: Inject,\r\n args: [ESOLVE_CONNECT_CONFIG]\r\n }] }, { type: i1.HttpClient }, { type: i2.EsolveSessionService }, { type: i3.EsolveErrorHandlerService }, { type: i4.EsolveCookieService }]; } });\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWF1dGguc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9hdXRoL2Vzb2x2ZS1hdXRoLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUNILFVBQVUsRUFDVixVQUFVLEVBRVYsV0FBVyxHQUNkLE1BQU0sc0JBQXNCLENBQUM7QUFFOUIsT0FBTyxFQUFFLGNBQWMsRUFBYyxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUQsT0FBTyxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHdEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDMUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDN0UsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFJMUYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7Ozs7OztBQVV6RSxNQUFNLE9BQU8saUJBQWlCO0lBQzFCLFlBQzJDLE1BQTJCLEVBQzFELElBQWdCLEVBQ2hCLE9BQTZCLEVBQzdCLFlBQXVDLEVBQ3ZDLGFBQWtDO1FBSkgsV0FBTSxHQUFOLE1BQU0sQ0FBcUI7UUFDMUQsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixZQUFPLEdBQVAsT0FBTyxDQUFzQjtRQUM3QixpQkFBWSxHQUFaLFlBQVksQ0FBMkI7UUFDdkMsa0JBQWEsR0FBYixhQUFhLENBQXFCO0lBQzFDLENBQUM7SUFFRSxjQUFjLENBQ2pCLEtBQWEsRUFDYixRQUFnQixFQUNoQixZQUFxQixLQUFLO1FBRTFCLElBQUksTUFBTSxHQUFHLElBQUksVUFB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SSxHQUFHLFFBQVEsQ0FBQyxlQUFlLENBQUM7U0FDekM7UUFFRCxPQUFPLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuQyxDQUFDOzs4R0FqUFEsaUJBQWlCLGtCQUVkLHFCQUFxQjtrSEFGeEIsaUJBQWlCLGNBRmQsTUFBTTsyRkFFVCxpQkFBaUI7a0JBSDdCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCOzswQkFHUSxNQUFNOzJCQUFDLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gICAgSHR0cENsaWVudCxcclxuICAgIEh0dHBQYXJhbXMsXHJcbiAgICBIdHRwRXJyb3JSZXNwb25zZSxcclxuICAgIEh0dHBIZWFkZXJzLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuXHJcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tLCBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHRhcCwgY2F0Y2hFcnJvciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgRXNvbHZlQ29ubmVjdENvbmZpZyB9IGZyb20gJy4uL2Vzb2x2ZS1jb25uZWN0LmNvbmZpZyc7XHJcbmltcG9ydCB7IEVTT0xWRV9DT05ORUNUX0NPTkZJRyB9IGZyb20gJy4uL2Vzb2x2ZS1jb25uZWN0LWNvbmZpZy5jb25zdGFudCc7XHJcbmltcG9ydCB7IEVzb2x2ZUNvb2tpZVNlcnZpY2UgfSBmcm9tICcuLi9zaGFyZWQvY29va2llL2Vzb2x2ZS1jb29raWUuc2VydmljZSc7XHJcbmltcG9ydCB7IEVzb2x2ZUVycm9ySGFuZGxlclNlcnZpY2UgfSBmcm9tICcuLi9zaGFyZWQvZXJyb3JzL2Vzb2x2ZS1lcnJvci1oYW5kbGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBFc29sdmVTZXRSZXNwb25zZSB9IGZyb20gJy4uL3NoYXJlZC9yZXNwb25zZSc7XHJcblxyXG5pbXBvcnQgeyBFc29sdmVTZXNzaW9uIH0gZnJvbSAnLi4vc2Vzc2lvbi9lc29sdmUtc2Vzc2lvbi5tb2RlbCc7XHJcbmltcG9ydCB7IEVzb2x2ZVNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi4vc2Vzc2lvbi9lc29sdmUtc2Vzc2lvbi5zZXJ2aWNlJztcclxuXHJcbmltcG9ydCB7IEVzb2x2ZUxvZ2luUG9zdFJlc3BvbnNlSXRlbSB9IGZyb20gJy4vZXNvbHZlLWxvZ2luLXBvc3QtcmVzcG9uc2UtaXRlbS5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBFc29sdmVBdXRoR2V0UmVzcG9uc2UgfSBmcm9tICcuL2Vzb2x2ZS1hdXRoLWdldC1yZXNwb25zZS5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBFc29sdmVBdXRoQ2hlY2tSZXNwb25zZSB9IGZyb20gJy4vZXNvbHZlLWF1dGgtY2hlY2stcmVzcG9uc2UuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgRXNvbHZlQXV0aFJlc3VsdCB9IGZyb20gJy4vZXNvbHZlLWF1dGgtcmVzdWx0LnR5cGUnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRXNvbHZlQXV0aFNlcnZpY2Uge1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgQEluamVjdChFU09MVkVfQ09OTkVDVF9DT05GSUcpIHByaXZhdGUgY29uZmlnOiBFc29sdmVDb25uZWN0Q29uZmlnLFxyXG4gICAgICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgICAgICBwcml2YXRlIHNlc3Npb246IEVzb2x2ZVNlc3Npb25TZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgZXJyb3JIYW5kbGVyOiBFc29sdmVFcnJvckhhbmRsZXJTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgY29va2llU2VydmljZTogRXNvbHZlQ29va2llU2VydmljZSxcclxuICAgICkgeyB9XHJcblxyXG4gICAgcHVibGljIGdldEFjY2Vzc1Rva2VuKFxyXG4gICAgICAgIGVtYWlsOiBzdHJpbmcsXHJcbiAgICAgICAgcGFzc3dvcmQ6IHN0cmluZyxcclxuICAgICAgICBhbm9ueW1vdXM6IGJvb2xlYW4gPSBmYWxzZSxcclxuICAgICk6IE9ic2VydmFibGU8RXNvbHZlQXV0aEdldFJlc3BvbnNlPiB7XHJcbiAgICAgICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCk7XHJcblxyXG4gICAgICAgIGlmIChhbm9ueW1vdXMpIHtcclxuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnYW5vbnltb3VzJywgdHJ1ZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoZW1haWwgIT09ICcnKSB7XHJcbiAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ2VtYWlsJywgZW1haWwpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHBhc3N3b3JkICE9PSAnJykge1xyXG4gICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdwYXNzd29yZCcsIHBhc3N3b3JkKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgICAgICAgLmdldDxFc29sdmVBdXRoR2V0UmVzcG9uc2U+KFxyXG4gICAgICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vZ2V0LWFjY2Vzcy10b2tlbi5waHBgLFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHBhcmFtcyxcclxuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAnQWNjZXB0LUxhbmd1YWdlJzogJyonLFxyXG4gICAgICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIHRhcCgocmVzcG9uc2VEYXRhKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAocmVzcG9uc2VEYXRhLnR5cGUgPT09ICdlcnJvcicpIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChyZXNwb25zZURhdGEudHlwZSA9PT0gJ2V4Y2VwdGlvbicpXHJcbiAgICAgICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlRGF0YTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvciksXHJcbiAgICAgICAgICAgICAgICB0YXAoKHJlc3BvbnNlRGF0YSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlQXV0aGVudGljYXRpb24ocmVzcG9uc2VEYXRhLmFkZGl0aW9uYWxfZGF0YSk7XHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXV0b0xvZ2luKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc2Vzc2lvbi5yZXN0b3JlKFxyXG4gICAgICAgICAgICB0aGlzLmhhbmRsZUV4cGlyYXRpb24oKSxcclxuICAgICAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgZmlyc3RWYWx1ZUZyb20odGhpcy5nZXRBY2Nlc3NUb2tlbignJywgJycsIHRydWUpKS50aGVuKFxyXG4gICAgICAgICAgICAgICAgICAgICgpID0+IHsgfSxcclxuICAgICAgICAgICAgICAgICAgICAoZXJyb3IpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbG9naW4oZW1haWw6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZyk6IE9ic2VydmFibGU8bnVtYmVyPiB7XHJcbiAgICAgICAgY29uc3QgYm9keSA9IHtcclxuICAgICAgICAgICAgbG9naW46IHtcclxuICAgICAgICAgICAgICAgIGVtYWlsLFxyXG4gICAgICAgICAgICAgICAgcGFzc3dvcmQsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAgICAgICAucG9zdDxFc29sdmVTZXRSZXNwb25zZTxFc29sdmVMb2dpblBvc3RSZXNwb25zZUl0ZW0+PihcclxuICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L3NldC1sb2dpbi5waHBgLFxyXG4gICAgICAgICAgICAgICAgYm9keSxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9dXRmLTg7JyxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlVHlwZTogJ2pzb24nLFxyXG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmU6ICdib2R5JyxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAocmVzcG9uc2UucmVzcG9uc2VzID09PSB1bmRlZmluZWQpIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChyZXNwb25zZS5yZXNwb25zZXMubGVuZ3RoIDw9IDApXHJcbiAgICAgICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbG9naW5fcmVzcG9uc2UgPSByZXNwb25zZS5yZXNwb25zZXNbMF07XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGxvZ2luX3Jlc3BvbnNlLnN0YXR1cy5zdGF0ZSAhPT0gJ3N1Y2Nlc3MnKSAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAobG9naW5fcmVzcG9uc2Uuc3RhdHVzLnN0YXRlICE9PSAnd2FybmluZycpXHJcbiAgICAgICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IGxvZ2luX3Jlc3BvbnNlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCByZXNwb25zZV9sb2cgb2YgbG9naW5fcmVzcG9uc2UubG9nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZXNwb25zZV9sb2cudHlwZSA9PT0gJ3N1Y2Nlc3MnKSAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlc3BvbnNlX2xvZy5tZXNzYWdlX2NvZGUgPT09ICdsb2dpbl9zdWNjZXNzJylcclxuICAgICAgICAgICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzZXNzaW9uX2RhdGEgPSBsb2dpbl9yZXNwb25zZS5zZXNzaW9uX2RhdGE7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1c2VyX2lkID0gK2xvZ2luX3Jlc3BvbnNlLmVzb2x2ZV9pZDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxvY2F0aW9uX2lkID0gK3Nlc3Npb25fZGF0YS5sb2NhdGlvbl9pZDtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlc3Npb24uaGFuZGxlVXBkYXRlU2Vzc2lvbih7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcl9pZDogdXNlcl9pZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbl9pZDogbG9jYXRpb25faWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdXNlcl9pZDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbG9naW5fcmVzcG9uc2U7XHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yUmVzOiBIdHRwRXJyb3JSZXNwb25zZSB8IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmVycm9ySGFuZGxlci5oYW5kbGVIdHRwUG9zdEVycm9yKCdzZXQtbG9naW4nLCBlcnJvclJlcyk7XHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXN5bmMgbG9nb3V0KCk6IFByb21pc2U8RXNvbHZlQXV0aEdldFJlc3BvbnNlPiB7XHJcbiAgICAgICAgdGhpcy5zZXNzaW9uLmNsZWFyVGltZXIoKTtcclxuICAgICAgICB0aGlzLmNvb2tpZVNlcnZpY2UuZGVsZXRlKCdfd3NfaWQnKTtcclxuXHJcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLmdldEFjY2Vzc1Rva2VuKCcnLCAnJywgdHJ1ZSkpO1xyXG5cclxuICAgICAgICBpZiAocmVzcG9uc2UpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHJlc3BvbnNlJyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjaGVja0FjY2Vzc1Rva2VuKHNlc3Npb24/OiBFc29sdmVTZXNzaW9uKTogT2JzZXJ2YWJsZTxFc29sdmVBdXRoUmVzdWx0PiB7XHJcbiAgICAgICAgc2Vzc2lvbiA9IHNlc3Npb24gfHwgdGhpcy5zZXNzaW9uLmN1cnJlbnRTZXNzaW9uO1xyXG5cclxuICAgICAgICBjb25zdCB0b2tlbiA9IHNlc3Npb24/LmtleSA/PyAnJztcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAgICAgICAuZ2V0PEVzb2x2ZUF1dGhDaGVja1Jlc3BvbnNlPihcclxuICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L2dldC1hY2Nlc3MtdG9rZW4ucGhwYCxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBwYXJhbXM6IHsga2V5OiB0b2tlbiB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICdBY2NlcHQtTGFuZ3VhZ2UnOiAnKicsXHJcbiAgICAgICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZURhdGEpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChyZXNwb25zZURhdGEudHlwZSA9PT0gJ2Vycm9yJykgfHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgKHJlc3BvbnNlRGF0YS50eXBlID09PSAnZXhjZXB0aW9uJykgfHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgKCFyZXNwb25zZURhdGEuYWRkaXRpb25hbF9kYXRhLmtleV9va2F5KVxyXG4gICAgICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyByZXNwb25zZURhdGE7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBhZGRpdGlvbmFsX2RhdGEgPSByZXNwb25zZURhdGEuYWRkaXRpb25hbF9kYXRhO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQ6IEVzb2x2ZUF1dGhSZXN1bHQgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleTogdG9rZW4sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4cGlyZXM6IGFkZGl0aW9uYWxfZGF0YS5leHBpcmVzLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBleHBpcnlfdGltZTogYWRkaXRpb25hbF9kYXRhLmV4cGlyeV90aW1lLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbl9pZDogYWRkaXRpb25hbF9kYXRhLmxvY2F0aW9uX2lkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB1c2VyX2lkOiBhZGRpdGlvbmFsX2RhdGEudXNlcl9pZCxcclxuICAgICAgICAgICAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gSGFuZGxlcnNcclxuICAgIHByaXZhdGUgaGFuZGxlRXhwaXJhdGlvbigpOiAoc2Vzc2lvbj86IEVzb2x2ZVNlc3Npb24pID0+IHZvaWQge1xyXG4gICAgICAgIHJldHVybiAoc2Vzc2lvbj86IEVzb2x2ZVNlc3Npb24pID0+IHtcclxuICAgICAgICAgICAgZmlyc3RWYWx1ZUZyb20odGhpcy5jaGVja0FjY2Vzc1Rva2VuKHNlc3Npb24pKS50aGVuKFxyXG4gICAgICAgICAgICAgICAgKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlQXV0aGVudGljYXRpb24ocmVzcG9uc2UpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2dvdXQoKTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGhhbmRsZUF1dGhlbnRpY2F0aW9uKHJlc3VsdDogRXNvbHZlQXV0aFJlc3VsdCk6IHZvaWQge1xyXG4gICAgICAgIGlmICghcmVzdWx0LmtleSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnNlc3Npb24uaGFuZGxlU2Vzc2lvbihcclxuICAgICAgICAgICAgK3Jlc3VsdC51c2VyX2lkLFxyXG4gICAgICAgICAgICArcmVzdWx0LmxvY2F0aW9uX2lkLFxyXG4gICAgICAgICAgICByZXN1bHQua2V5LFxyXG4gICAgICAgICAgICArcmVzdWx0LmV4cGlyeV90aW1lLFxyXG4gICAgICAgICAgICArcmVzdWx0LmV4cGlyZXMsXHJcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlRXhwaXJhdGlvbigpLFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBoYW5kbGVFcnJvcihcclxuICAgICAgICBlcnJvclJlczogRXNvbHZlQXV0aEdldFJlc3BvbnNlIHwgRXNvbHZlQXV0aENoZWNrUmVzcG9uc2UsXHJcbiAgICApOiBPYnNlcnZhYmxlPG5ldmVyPiB7XHJcbiAgICAgICAgY29uc3QgZXJyb3IgPSB7XHJcbiAgICAgICAgICAgIG1lc3NhZ2U6ICdBbiB1bmtub3duIGVycm9yIG9jY3VycmVkJyxcclxuICAgICAgICAgICAgZGF0YToge30sXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAoIWVycm9yUmVzLnR5cGUpIHx8XHJcbiAgICAgICAgICAgICghZXJyb3JSZXMuc2VydmljZV90eXBlKSB8fFxyXG4gICAgICAgICAgICAoIWVycm9yUmVzLm1lc3NhZ2UpXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IGVycm9yKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChlcnJvclJlcy5tZXNzYWdlLnRyaW0oKSAhPT0gJycpIHtcclxuICAgICAgICAgICAgZXJyb3IubWVzc2FnZSA9IGVycm9yUmVzLm1lc3NhZ2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoZXJyb3JSZXMuYWRkaXRpb25hbF9kYXRhKSB7XHJcbiAgICAgICAgICAgIGVycm9yLmRhdGEgPSBlcnJvclJlcy5hZGRpdGlvbmFsX2RhdGE7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBlcnJvcik7XHJcbiAgICB9XHJcbn1cclxuIl19","export class EsolveAddress {\r\n constructor(id, recipient, address_type, pobox, place_name, street_number, street, suburb, city, province, country, postal_code, latitude, longitude) {\r\n this.id = id;\r\n this.recipient = recipient;\r\n this.address_type = address_type;\r\n this.pobox = pobox;\r\n this.place_name = place_name;\r\n this.street_number = street_number;\r\n this.street = street;\r\n this.suburb = suburb;\r\n this.city = city;\r\n this.province = province;\r\n this.country = country;\r\n this.postal_code = postal_code;\r\n this.latitude = latitude;\r\n this.longitude = longitude;\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWFkZHJlc3MubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvYWNjb3VudC9hZGRyZXNzL2Vzb2x2ZS1hZGRyZXNzLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxhQUFhO0lBQ3RCLFlBQ1csRUFBVSxFQUNWLFNBQWlCLEVBQ2pCLFlBQStCLEVBQy9CLEtBQWEsRUFDYixVQUFrQixFQUNsQixhQUFxQixFQUNyQixNQUFjLEVBQ2QsTUFBYyxFQUNkLElBQVksRUFDWixRQUFnQixFQUNoQixPQUFlLEVBQ2YsV0FBbUIsRUFDbkIsUUFBZ0IsRUFDaEIsU0FBaUI7UUFiakIsT0FBRSxHQUFGLEVBQUUsQ0FBUTtRQUNWLGNBQVMsR0FBVCxTQUFTLENBQVE7UUFDakIsaUJBQVksR0FBWixZQUFZLENBQW1CO1FBQy9CLFVBQUssR0FBTCxLQUFLLENBQVE7UUFDYixlQUFVLEdBQVYsVUFBVSxDQUFRO1FBQ2xCLGtCQUFhLEdBQWIsYUFBYSxDQUFRO1FBQ3JCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUNaLGFBQVEsR0FBUixRQUFRLENBQVE7UUFDaEIsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNmLGdCQUFXLEdBQVgsV0FBVyxDQUFRO1FBQ25CLGFBQVEsR0FBUixRQUFRLENBQVE7UUFDaEIsY0FBUyxHQUFULFNBQVMsQ0FBUTtJQUN4QixDQUFDO0NBQ1IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFc29sdmVBZGRyZXNzVHlwZSB9IGZyb20gJy4vZXNvbHZlLWFkZHJlc3MtdHlwZS50eXBlJztcclxuXHJcbmV4cG9ydCBjbGFzcyBFc29sdmVBZGRyZXNzIHtcclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHB1YmxpYyBpZDogbnVtYmVyLFxyXG4gICAgICAgIHB1YmxpYyByZWNpcGllbnQ6IHN0cmluZyxcclxuICAgICAgICBwdWJsaWMgYWRkcmVzc190eXBlOiBFc29sdmVBZGRyZXNzVHlwZSxcclxuICAgICAgICBwdWJsaWMgcG9ib3g6IHN0cmluZyxcclxuICAgICAgICBwdWJsaWMgcGxhY2VfbmFtZTogc3RyaW5nLFxyXG4gICAgICAgIHB1YmxpYyBzdHJlZXRfbnVtYmVyOiBzdHJpbmcsXHJcbiAgICAgICAgcHVibGljIHN0cmVldDogc3RyaW5nLFxyXG4gICAgICAgIHB1YmxpYyBzdWJ1cmI6IHN0cmluZyxcclxuICAgICAgICBwdWJsaWMgY2l0eTogc3RyaW5nLFxyXG4gICAgICAgIHB1YmxpYyBwcm92aW5jZTogc3RyaW5nLFxyXG4gICAgICAgIHB1YmxpYyBjb3VudHJ5OiBzdHJpbmcsXHJcbiAgICAgICAgcHVibGljIHBvc3RhbF9jb2RlOiBzdHJpbmcsXHJcbiAgICAgICAgcHVibGljIGxhdGl0dWRlOiBudW1iZXIsXHJcbiAgICAgICAgcHVibGljIGxvbmdpdHVkZTogbnVtYmVyLFxyXG4gICAgKSB7IH1cclxufVxyXG4iXX0=","import { EsolveResponseResult } from '../../shared/response';\r\nexport class EsolveAddressResult extends EsolveResponseResult {\r\n constructor(response) {\r\n super(response);\r\n this.id = response.esolve_id;\r\n this.address_validated = response.address_validated;\r\n this.geocode_status = response.geocode_status;\r\n this.geocode_result = response.geocode_result;\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWFkZHJlc3MtcmVzdWx0Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL2FjY291bnQvYWRkcmVzcy9lc29sdmUtYWRkcmVzcy1yZXN1bHQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFN0QsTUFBTSxPQUFPLG1CQUFvQixTQUFRLG9CQUFvQjtJQU16RCxZQUNJLFFBQStCO1FBRS9CLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUVoQixJQUFJLENBQUMsRUFBRSxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUM7UUFDN0IsSUFBSSxDQUFDLGlCQUFpQixHQUFHLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQztRQUNwRCxJQUFJLENBQUMsY0FBYyxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUM7UUFDOUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDO0lBQ2xELENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVzb2x2ZUFkZHJlc3NSZXNwb25zZSB9IGZyb20gJy4vZXNvbHZlLWFkZHJlc3MtcmVzcG9uc2UuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgRXNvbHZlR2VvY29kZVJlc3VsdCB9IGZyb20gJy4uL2Vzb2x2ZS1nZW9jb2RlLXJlc3VsdC5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBFc29sdmVSZXNwb25zZVJlc3VsdCB9IGZyb20gJy4uLy4uL3NoYXJlZC9yZXNwb25zZSc7XHJcblxyXG5leHBvcnQgY2xhc3MgRXNvbHZlQWRkcmVzc1Jlc3VsdCBleHRlbmRzIEVzb2x2ZVJlc3BvbnNlUmVzdWx0IHtcclxuICAgIHB1YmxpYyBpZDogbnVtYmVyO1xyXG4gICAgcHVibGljIGFkZHJlc3NfdmFsaWRhdGVkOiBib29sZWFuO1xyXG4gICAgcHVibGljIGdlb2NvZGVfc3RhdHVzOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgZ2VvY29kZV9yZXN1bHQ6IEVzb2x2ZUdlb2NvZGVSZXN1bHQgfCBudWxsO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHJlc3BvbnNlOiBFc29sdmVBZGRyZXNzUmVzcG9uc2UsXHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcihyZXNwb25zZSk7XHJcblxyXG4gICAgICAgIHRoaXMuaWQgPSByZXNwb25zZS5lc29sdmVfaWQ7XHJcbiAgICAgICAgdGhpcy5hZGRyZXNzX3ZhbGlkYXRlZCA9IHJlc3BvbnNlLmFkZHJlc3NfdmFsaWRhdGVkO1xyXG4gICAgICAgIHRoaXMuZ2VvY29kZV9zdGF0dXMgPSByZXNwb25zZS5nZW9jb2RlX3N0YXR1cztcclxuICAgICAgICB0aGlzLmdlb2NvZGVfcmVzdWx0ID0gcmVzcG9uc2UuZ2VvY29kZV9yZXN1bHQ7XHJcbiAgICB9XHJcbn1cclxuIl19","export class EsolveUserAccountBusiness {\r\n constructor(record) {\r\n if (record) {\r\n this.name = record.busname ?? '';\r\n this.vat_number = record.vatnum ?? '';\r\n this.description = record.busdescript ?? '';\r\n this.type = record.business_type ?? '';\r\n }\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXVzZXItYWNjb3VudC1idXNpbmVzcy5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9hY2NvdW50L3VzZXItYWNjb3VudC9jbGFzc2VzL2Vzb2x2ZS11c2VyLWFjY291bnQtYnVzaW5lc3MubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLHlCQUF5QjtJQU1sQyxZQUFZLE1BQXlDO1FBQ2pELElBQUksTUFBTSxFQUFFO1lBQ1IsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztZQUNqQyxJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDO1lBQ3RDLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUM7WUFDNUMsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsYUFBYSxJQUFJLEVBQUUsQ0FBQztTQUMxQztJQUNMLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVzb2x2ZVVzZXJBY2NvdW50UmVjb3JkIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XHJcblxyXG5leHBvcnQgY2xhc3MgRXNvbHZlVXNlckFjY291bnRCdXNpbmVzcyB7XHJcbiAgICBwdWJsaWMgbmFtZT86IHN0cmluZztcclxuICAgIHB1YmxpYyB2YXRfbnVtYmVyPzogc3RyaW5nO1xyXG4gICAgcHVibGljIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xyXG4gICAgcHVibGljIHR5cGU/OiBzdHJpbmc7XHJcblxyXG4gICAgY29uc3RydWN0b3IocmVjb3JkPzogUGFydGlhbDxFc29sdmVVc2VyQWNjb3VudFJlY29yZD4pIHtcclxuICAgICAgICBpZiAocmVjb3JkKSB7XHJcbiAgICAgICAgICAgIHRoaXMubmFtZSA9IHJlY29yZC5idXNuYW1lID8/ICcnO1xyXG4gICAgICAgICAgICB0aGlzLnZhdF9udW1iZXIgPSByZWNvcmQudmF0bnVtID8/ICcnO1xyXG4gICAgICAgICAgICB0aGlzLmRlc2NyaXB0aW9uID0gcmVjb3JkLmJ1c2Rlc2NyaXB0ID8/ICcnO1xyXG4gICAgICAgICAgICB0aGlzLnR5cGUgPSByZWNvcmQuYnVzaW5lc3NfdHlwZSA/PyAnJztcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19","export class EsolveUserAccountContact {\r\n constructor(record) {\r\n if (record) {\r\n this.tel_number = record.telnumber ?? '';\r\n this.cell_number = record.cellnumber ?? '';\r\n this.fax_number = record.fax ?? '';\r\n }\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXVzZXItYWNjb3VudC1jb250YWN0Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL2FjY291bnQvdXNlci1hY2NvdW50L2NsYXNzZXMvZXNvbHZlLXVzZXItYWNjb3VudC1jb250YWN0Lm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyx3QkFBd0I7SUFLakMsWUFBWSxNQUF5QztRQUNqRCxJQUFJLE1BQU0sRUFBRTtZQUNSLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUM7WUFDekMsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQztZQUMzQyxJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDO1NBQ3RDO0lBQ0wsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXNvbHZlVXNlckFjY291bnRSZWNvcmQgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcclxuXHJcbmV4cG9ydCBjbGFzcyBFc29sdmVVc2VyQWNjb3VudENvbnRhY3Qge1xyXG4gICAgcHVibGljIHRlbF9udW1iZXI/OiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgY2VsbF9udW1iZXI/OiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgZmF4X251bWJlcj86IHN0cmluZztcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihyZWNvcmQ/OiBQYXJ0aWFsPEVzb2x2ZVVzZXJBY2NvdW50UmVjb3JkPikge1xyXG4gICAgICAgIGlmIChyZWNvcmQpIHtcclxuICAgICAgICAgICAgdGhpcy50ZWxfbnVtYmVyID0gcmVjb3JkLnRlbG51bWJlciA/PyAnJztcclxuICAgICAgICAgICAgdGhpcy5jZWxsX251bWJlciA9IHJlY29yZC5jZWxsbnVtYmVyID8/ICcnO1xyXG4gICAgICAgICAgICB0aGlzLmZheF9udW1iZXIgPSByZWNvcmQuZmF4ID8/ICcnO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=","import { EsolveResponseResult, } from '../../../shared/response';\r\nexport class EsolveUserAccountResult extends EsolveResponseResult {\r\n constructor(response) {\r\n super(response);\r\n this.id = 0;\r\n this.id = +response.esolve_id;\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXVzZXItYWNjb3VudC1yZXN1bHQubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvYWNjb3VudC91c2VyLWFjY291bnQvY2xhc3Nlcy9lc29sdmUtdXNlci1hY2NvdW50LXJlc3VsdC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsb0JBQW9CLEdBQ3ZCLE1BQU0sMEJBQTBCLENBQUM7QUFFbEMsTUFBTSxPQUFPLHVCQUF3QixTQUFRLG9CQUFvQjtJQUc3RCxZQUNJLFFBQWdDO1FBRWhDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUxiLE9BQUUsR0FBRyxDQUFDLENBQUM7UUFPVixJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQztJQUNsQyxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgRXNvbHZlUG9zdFJlc3BvbnNlSXRlbSxcclxuICAgIEVzb2x2ZVJlc3BvbnNlUmVzdWx0LFxyXG59IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9yZXNwb25zZSc7XHJcblxyXG5leHBvcnQgY2xhc3MgRXNvbHZlVXNlckFjY291bnRSZXN1bHQgZXh0ZW5kcyBFc29sdmVSZXNwb25zZVJlc3VsdCB7XHJcbiAgICBwdWJsaWMgaWQgPSAwO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHJlc3BvbnNlOiBFc29sdmVQb3N0UmVzcG9uc2VJdGVtLFxyXG4gICAgKSB7XHJcbiAgICAgICAgc3VwZXIocmVzcG9uc2UpO1xyXG5cclxuICAgICAgICB0aGlzLmlkID0gK3Jlc3BvbnNlLmVzb2x2ZV9pZDtcclxuICAgIH1cclxufVxyXG4iXX0=","export class EsolveStatementAgeing {\r\n constructor(record) {\r\n if (record) {\r\n this.days = +(record.days ?? 0);\r\n this.amount = +(record.amount ?? 0);\r\n }\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXN0YXRlbWVudC1hZ2VpbmcubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvYWNjb3VudC91c2VyLWFjY291bnQvY2xhc3Nlcy9lc29sdmUtc3RhdGVtZW50LWFnZWluZy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8scUJBQXFCO0lBSTlCLFlBQVksTUFBNkM7UUFDckQsSUFBSSxNQUFNLEVBQUU7WUFDUixJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ2hDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLENBQUM7U0FDdkM7SUFDTCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFc29sdmVTdGF0ZW1lbnRBZ2VpbmdSZWNvcmQgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcclxuXHJcbmV4cG9ydCBjbGFzcyBFc29sdmVTdGF0ZW1lbnRBZ2Vpbmcge1xyXG4gICAgcHVibGljIGRheXM/OiBudW1iZXI7XHJcbiAgICBwdWJsaWMgYW1vdW50PzogbnVtYmVyO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHJlY29yZD86IFBhcnRpYWw8RXNvbHZlU3RhdGVtZW50QWdlaW5nUmVjb3JkPikge1xyXG4gICAgICAgIGlmIChyZWNvcmQpIHtcclxuICAgICAgICAgICAgdGhpcy5kYXlzID0gKyhyZWNvcmQuZGF5cyA/PyAwKTtcclxuICAgICAgICAgICAgdGhpcy5hbW91bnQgPSArKHJlY29yZC5hbW91bnQgPz8gMCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==","import { EsolveStatementAgeing } from './esolve-statement-ageing.model';\r\nexport class EsolveStatementBalances {\r\n constructor(record) {\r\n if (record) {\r\n this.total = +(record.total ?? 0);\r\n this.ageing = record.ageing?.map((e) => new EsolveStatementAgeing(e)) ?? [];\r\n }\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXN0YXRlbWVudC1iYWxhbmNlcy5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9hY2NvdW50L3VzZXItYWNjb3VudC9jbGFzc2VzL2Vzb2x2ZS1zdGF0ZW1lbnQtYmFsYW5jZXMubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFeEUsTUFBTSxPQUFPLHVCQUF1QjtJQUloQyxZQUFZLE1BQStDO1FBQ3ZELElBQUksTUFBTSxFQUFFO1lBQ1IsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNsQyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1NBQy9FO0lBQ0wsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXNvbHZlU3RhdGVtZW50QmFsYW5jZXNSZWNvcmQgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcclxuXHJcbmltcG9ydCB7IEVzb2x2ZVN0YXRlbWVudEFnZWluZyB9IGZyb20gJy4vZXNvbHZlLXN0YXRlbWVudC1hZ2VpbmcubW9kZWwnO1xyXG5cclxuZXhwb3J0IGNsYXNzIEVzb2x2ZVN0YXRlbWVudEJhbGFuY2VzIHtcclxuICAgIHB1YmxpYyB0b3RhbD86IG51bWJlcjtcclxuICAgIHB1YmxpYyBhZ2Vpbmc/OiBFc29sdmVTdGF0ZW1lbnRBZ2VpbmdbXTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihyZWNvcmQ/OiBQYXJ0aWFsPEVzb2x2ZVN0YXRlbWVudEJhbGFuY2VzUmVjb3JkPikge1xyXG4gICAgICAgIGlmIChyZWNvcmQpIHtcclxuICAgICAgICAgICAgdGhpcy50b3RhbCA9ICsocmVjb3JkLnRvdGFsID8/IDApO1xyXG4gICAgICAgICAgICB0aGlzLmFnZWluZyA9IHJlY29yZC5hZ2Vpbmc/Lm1hcCgoZSkgPT4gbmV3IEVzb2x2ZVN0YXRlbWVudEFnZWluZyhlKSkgPz8gW107XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==","export class EsolveStatementTransaction {\r\n constructor(record) {\r\n if (record) {\r\n this.order_date = record.order_date ?? '';\r\n this.order_number = record.order_number ?? '';\r\n this.comment = record.comment ?? '';\r\n this.account = record.account ?? '';\r\n this.iq_reference = record.iq_reference ?? '';\r\n this.total = +(record.total ?? 0);\r\n this.amount_due = +(record.amount_due ?? 0);\r\n this.is_debit = !!+(record.is_debit ?? true);\r\n }\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXN0YXRlbWVudC10cmFuc2FjdGlvbi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9hY2NvdW50L3VzZXItYWNjb3VudC9jbGFzc2VzL2Vzb2x2ZS1zdGF0ZW1lbnQtdHJhbnNhY3Rpb24ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLDBCQUEwQjtJQVVuQyxZQUFhLE1BQWtEO1FBQzNELElBQUksTUFBTSxFQUFFO1lBQ1IsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQztZQUMxQyxJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLElBQUksRUFBRSxDQUFDO1lBQzlDLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLElBQUksRUFBRSxDQUFDO1lBQzlDLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDbEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUM1QyxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsQ0FBQztTQUNoRDtJQUNMLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVzb2x2ZVN0YXRlbWVudFRyYW5zYWN0aW9uUmVjb3JkIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XHJcblxyXG5leHBvcnQgY2xhc3MgRXNvbHZlU3RhdGVtZW50VHJhbnNhY3Rpb24ge1xyXG4gICAgcHVibGljIG9yZGVyX2RhdGU/OiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgb3JkZXJfbnVtYmVyPzogc3RyaW5nO1xyXG4gICAgcHVibGljIGNvbW1lbnQ/OiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgYWNjb3VudD86IHN0cmluZztcclxuICAgIHB1YmxpYyBpcV9yZWZlcmVuY2U/OiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgdG90YWw/OiBudW1iZXI7XHJcbiAgICBwdWJsaWMgYW1vdW50X2R1ZT86IG51bWJlcjtcclxuICAgIHB1YmxpYyBpc19kZWJpdD86IGJvb2xlYW47XHJcblxyXG4gICAgY29uc3RydWN0b3IgKHJlY29yZD86IFBhcnRpYWw8RXNvbHZlU3RhdGVtZW50VHJhbnNhY3Rpb25SZWNvcmQ+KSB7XHJcbiAgICAgICAgaWYgKHJlY29yZCkge1xyXG4gICAgICAgICAgICB0aGlzLm9yZGVyX2RhdGUgPSByZWNvcmQub3JkZXJfZGF0ZSA/PyAnJztcclxuICAgICAgICAgICAgdGhpcy5vcmRlcl9udW1iZXIgPSByZWNvcmQub3JkZXJfbnVtYmVyID8/ICcnO1xyXG4gICAgICAgICAgICB0aGlzLmNvbW1lbnQgPSByZWNvcmQuY29tbWVudCA/PyAnJztcclxuICAgICAgICAgICAgdGhpcy5hY2NvdW50ID0gcmVjb3JkLmFjY291bnQgPz8gJyc7XHJcbiAgICAgICAgICAgIHRoaXMuaXFfcmVmZXJlbmNlID0gcmVjb3JkLmlxX3JlZmVyZW5jZSA/PyAnJztcclxuICAgICAgICAgICAgdGhpcy50b3RhbCA9ICsocmVjb3JkLnRvdGFsID8/IDApO1xyXG4gICAgICAgICAgICB0aGlzLmFtb3VudF9kdWUgPSArKHJlY29yZC5hbW91bnRfZHVlID8/IDApO1xyXG4gICAgICAgICAgICB0aGlzLmlzX2RlYml0ID0gISErKHJlY29yZC5pc19kZWJpdCA/PyB0cnVlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19","import { EsolveStatementBalances } from './esolve-statement-balances.model';\r\nimport { EsolveStatementTransaction } from './esolve-statement-transaction.model';\r\nexport class EsolveStatement {\r\n constructor(record) {\r\n if (record) {\r\n this.balances = new EsolveStatementBalances(record.balances);\r\n this.transactions = record.transactions?.map((e) => new EsolveStatementTransaction(e)) ?? [];\r\n }\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXN0YXRlbWVudC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9hY2NvdW50L3VzZXItYWNjb3VudC9jbGFzc2VzL2Vzb2x2ZS1zdGF0ZW1lbnQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDNUUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFFbEYsTUFBTSxPQUFPLGVBQWU7SUFJeEIsWUFBWSxNQUF1QztRQUMvQyxJQUFJLE1BQU0sRUFBRTtZQUNSLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSx1QkFBdUIsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDN0QsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsWUFBWSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSwwQkFBMEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUNoRztJQUNMLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVzb2x2ZVN0YXRlbWVudFJlY29yZCB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xyXG5cclxuaW1wb3J0IHsgRXNvbHZlU3RhdGVtZW50QmFsYW5jZXMgfSBmcm9tICcuL2Vzb2x2ZS1zdGF0ZW1lbnQtYmFsYW5jZXMubW9kZWwnO1xyXG5pbXBvcnQgeyBFc29sdmVTdGF0ZW1lbnRUcmFuc2FjdGlvbiB9IGZyb20gJy4vZXNvbHZlLXN0YXRlbWVudC10cmFuc2FjdGlvbi5tb2RlbCc7XHJcblxyXG5leHBvcnQgY2xhc3MgRXNvbHZlU3RhdGVtZW50IHtcclxuICAgIHB1YmxpYyBiYWxhbmNlcz86IEVzb2x2ZVN0YXRlbWVudEJhbGFuY2VzO1xyXG4gICAgcHVibGljIHRyYW5zYWN0aW9ucz86IEVzb2x2ZVN0YXRlbWVudFRyYW5zYWN0aW9uW107XHJcblxyXG4gICAgY29uc3RydWN0b3IocmVjb3JkPzogUGFydGlhbDxFc29sdmVTdGF0ZW1lbnRSZWNvcmQ+KSB7XHJcbiAgICAgICAgaWYgKHJlY29yZCkge1xyXG4gICAgICAgICAgICB0aGlzLmJhbGFuY2VzID0gbmV3IEVzb2x2ZVN0YXRlbWVudEJhbGFuY2VzKHJlY29yZC5iYWxhbmNlcyk7XHJcbiAgICAgICAgICAgIHRoaXMudHJhbnNhY3Rpb25zID0gcmVjb3JkLnRyYW5zYWN0aW9ucz8ubWFwKChlKSA9PiBuZXcgRXNvbHZlU3RhdGVtZW50VHJhbnNhY3Rpb24oZSkpID8/IFtdO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=","import { EsolveStatement } from './esolve-statement.model';\r\nexport class EsolveUserClientAccount {\r\n constructor(record) {\r\n if (record) {\r\n this.account = record.account ?? '';\r\n this.branch_code = record.branch_code ?? '';\r\n this.account_group = record.account_group ?? '';\r\n this.pricing_group = record.pricing_group ?? '';\r\n this.company_name = record.company_name ?? '';\r\n this.client_contact_person = record.client_contact_person ?? '';\r\n this.client_firstname = record.client_firstname ?? '';\r\n this.client_surname = record.client_surname ?? '';\r\n this.client_email = record.client_email ?? '';\r\n this.client_contact_number = record.client_contact_number ?? '';\r\n this.client_fax_number = record.client_fax_number ?? '';\r\n this.client_cellphone_number = record.client_cellphone_number ?? '';\r\n this.client_id_number = record.client_id_number ?? '';\r\n this.address_description = record.address_description ?? '';\r\n this.street = record.street ?? '';\r\n this.suburb = record.suburb;\r\n this.city = record.city ?? '';\r\n this.province = record.province ?? '';\r\n this.country = record.country ?? '';\r\n this.postal_code = record.postal_code ?? '';\r\n this.postal_address = record.postal_address ?? '';\r\n this.delivery_address = record.delivery_address ?? '';\r\n this.vat_number = record.vat_number ?? '';\r\n this.ageing = record.ageing ?? '';\r\n this.balance_last_updated = record.balance_last_updated ?? '';\r\n this.client_classification = record.client_classification ?? '';\r\n this.override_stock_listing_identifiers = record.override_stock_listing_identifiers ?? '';\r\n this.requires_transaction_approval = record.requires_transaction_approval ?? '';\r\n this.latitude = +(record.latitude ?? 0);\r\n this.longitude = +(record.longitude ?? 0);\r\n this.price_list = +(record.price_list ?? 0);\r\n this.loyalty_classification_id = +(record.loyalty_classification_id ?? 0);\r\n this.credit_limit = +(record.credit_limit ?? 0);\r\n this.pending_invoice_balance = +(record.pending_invoice_balance ?? 0);\r\n this.external_account_balance = +(record.external_account_balance ?? 0);\r\n this.default_sellprice = +(record.default_sellprice ?? 0);\r\n this.is_active = !!+(record.is_active ?? false);\r\n this.external_statement = new EsolveStatement(record.external_statement);\r\n }\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXVzZXItY2xpZW50LWFjY291bnQubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvYWNjb3VudC91c2VyLWFjY291bnQvY2xhc3Nlcy9lc29sdmUtdXNlci1jbGllbnQtYWNjb3VudC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFM0QsTUFBTSxPQUFPLHVCQUF1QjtJQXdDaEMsWUFBWSxNQUErQztRQUN2RCxJQUFJLE1BQU0sRUFBRTtZQUNSLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQztZQUM1QyxJQUFJLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQyxhQUFhLElBQUksRUFBRSxDQUFDO1lBQ2hELElBQUksQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDLGFBQWEsSUFBSSxFQUFFLENBQUM7WUFDaEQsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQztZQUM5QyxJQUFJLENBQUMscUJBQXFCLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixJQUFJLEVBQUUsQ0FBQztZQUNoRSxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixJQUFJLEVBQUUsQ0FBQztZQUN0RCxJQUFJLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQyxjQUFjLElBQUksRUFBRSxDQUFDO1lBQ2xELElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLFlBQVksSUFBSSxFQUFFLENBQUM7WUFDOUMsSUFBSSxDQUFDLHFCQUFxQixHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsSUFBSSxFQUFF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dXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVzb2x2ZVVzZXJDbGllbnRBY2NvdW50UmVjb3JkIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XHJcblxyXG5pbXBvcnQgeyBFc29sdmVTdGF0ZW1lbnQgfSBmcm9tICcuL2Vzb2x2ZS1zdGF0ZW1lbnQubW9kZWwnO1xyXG5cclxuZXhwb3J0IGNsYXNzIEVzb2x2ZVVzZXJDbGllbnRBY2NvdW50IHtcclxuICAgIHB1YmxpYyBhY2NvdW50Pzogc3RyaW5nO1xyXG4gICAgcHVibGljIGJyYW5jaF9jb2RlPzogc3RyaW5nO1xyXG4gICAgcHVibGljIGFjY291bnRfZ3JvdXA/OiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgcHJpY2luZ19ncm91cD86IHN0cmluZztcclxuICAgIHB1YmxpYyBjb21wYW55X25hbWU/OiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgY2xpZW50X2NvbnRhY3RfcGVyc29uPzogc3RyaW5nO1xyXG4gICAgcHVibGljIGNsaWVudF9maXJzdG5hbWU/OiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgY2xpZW50X3N1cm5hbWU/OiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgY2xpZW50X2VtYWlsPzogc3RyaW5nO1xyXG4gICAgcHVibGljIGNsaWVudF9jb250YWN0X251bWJlcj86IHN0cmluZztcclxuICAgIHB1YmxpYyBjbGllbnRfZmF4X251bWJlcj86IHN0cmluZztcclxuICAgIHB1YmxpYyBjbGllbnRfY2VsbHBob25lX251bWJlcj86IHN0cmluZztcclxuICAgIHB1YmxpYyBjbGllbnRfaWRfbnVtYmVyPzogc3RyaW5nO1xyXG4gICAgcHVibGljIGFkZHJlc3NfZGVzY3JpcHRpb24/OiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgc3RyZWV0Pzogc3RyaW5nO1xyXG4gICAgcHVibGljIHN1YnVyYj86IHN0cmluZztcclxuICAgIHB1YmxpYyBjaXR5Pzogc3RyaW5nO1xyXG4gICAgcHVibGljIHByb3ZpbmNlPzogc3RyaW5nO1xyXG4gICAgcHVibGljIGNvdW50cnk/OiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgcG9zdGFsX2NvZGU/OiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgcG9zdGFsX2FkZHJlc3M/OiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgZGVsaXZlcnlfYWRkcmVzcz86IHN0cmluZztcclxuICAgIHB1YmxpYyB2YXRfbnVtYmVyPzogc3RyaW5nO1xyXG4gICAgcHVibGljIGFnZWluZz86IHN0cmluZztcclxuICAgIHB1YmxpYyBiYWxhbmNlX2xhc3RfdXBkYXRlZD86IHN0cmluZztcclxuICAgIHB1YmxpYyBjbGllbnRfY2xhc3NpZmljYXRpb24/OiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgb3ZlcnJpZGVfc3RvY2tfbGlzdGluZ19pZGVudGlmaWVycz86IHN0cmluZztcclxuICAgIHB1YmxpYyByZXF1aXJlc190cmFuc2FjdGlvbl9hcHByb3ZhbD86IHN0cmluZztcclxuICAgIHB1YmxpYyBsYXRpdHVkZT86IG51bWJlcjtcclxuICAgIHB1YmxpYyBsb25naXR1ZGU/OiBudW1iZXI7XHJcbiAgICBwdWJsaWMgcHJpY2VfbGlzdD86IG51bWJlcjtcclxuICAgIHB1YmxpYyBsb3lhbHR5X2NsYXNzaWZpY2F0aW9uX2lkPzogbnVtYmVyO1xyXG4gICAgcHVibGljIGNyZWRpdF9saW1pdD86IG51bWJlcjtcclxuICAgIHB1YmxpYyBwZW5kaW5nX2ludm9pY2VfYmFsYW5jZT86IG51bWJlcjtcclxuICAgIHB1YmxpYyBleHRlcm5hbF9hY2NvdW50X2JhbGFuY2U/OiBudW1iZXI7XHJcbiAgICBwdWJsaWMgZGVmYXVsdF9zZWxscHJpY2U/OiBudW1iZXI7XHJcbiAgICBwdWJsaWMgaXNfYWN0aXZlPzogYm9vbGVhbjtcclxuICAgIHB1YmxpYyBleHRlcm5hbF9zdGF0ZW1lbnQ/OiBFc29sdmVTdGF0ZW1lbnQ7XHJcblxyXG4gICAgY29uc3RydWN0b3IocmVjb3JkPzogUGFydGlhbDxFc29sdmVVc2VyQ2xpZW50QWNjb3VudFJlY29yZD4pIHtcclxuICAgICAgICBpZiAocmVjb3JkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYWNjb3VudCA9IHJlY29yZC5hY2NvdW50ID8/ICcnO1xyXG4gICAgICAgICAgICB0aGlzLmJyYW5jaF9jb2RlID0gcmVjb3JkLmJyYW5jaF9jb2RlID8/ICcnO1xyXG4gICAgICAgICAgICB0aGlzLmFjY291bnRfZ3JvdXAgPSByZWNvcmQuYWNjb3VudF9ncm91cCA/PyAnJztcclxuICAgICAgICAgICAgdGhpcy5wcmljaW5nX2dyb3VwID0gcmVjb3JkLnByaWNpbmdfZ3JvdXAgPz8gJyc7XHJcbiAgICAgICAgICAgIHRoaXMuY29tcGFueV9uYW1lID0gcmVjb3JkLmNvbXBhbnlfbmFtZSA/PyAnJztcclxuICAgICAgICAgICAgdGhpcy5jbGllbnRfY29udGFjdF9wZXJzb24gPSByZWNvcmQuY2xpZW50X2NvbnRhY3RfcGVyc29uID8/ICcnO1xyXG4gICAgICAgICAgICB0aGlzLmNsaWVudF9maXJzdG5hbWUgPSByZWNvcmQuY2xpZW50X2ZpcnN0bmFtZSA/PyAnJztcclxuICAgICAgICAgICAgdGhpcy5jbGllbnRfc3VybmFtZSA9IHJlY29yZC5jbGllbnRfc3VybmFtZSA/PyAnJztcclxuICAgICAgICAgICAgdGhpcy5jbGllbnRfZW1haWwgPSByZWNvcmQuY2xpZW50X2VtYWlsID8/ICcnO1xyXG4gICAgICAgICAgICB0aGlzLmNsaWVudF9jb250YWN0X251bWJlciA9IHJlY29yZC5jbGllbnRfY29udGFjdF9udW1iZXIgPz8gJyc7XHJcbiAgICAgICAgICAgIHRoaXMuY2xpZW50X2ZheF9udW1iZXIgPSByZWNvcmQuY2xpZW50X2ZheF9udW1iZXIgPz8gJyc7XHJcbiAgICAgICAgICAgIHRoaXMuY2xpZW50X2NlbGxwaG9uZV9udW1iZXIgPSByZWNvcmQuY2xpZW50X2NlbGxwaG9uZV9udW1iZXIgPz8gJyc7XHJcbiAgICAgICAgICAgIHRoaXMuY2xpZW50X2lkX251bWJlciA9IHJlY29yZC5jbGllbnRfaWRfbnVtYmVyID8/ICcnO1xyXG4gICAgICAgICAgICB0aGlzLmFkZHJlc3NfZGVzY3JpcHRpb24gPSByZWNvcmQuYWRkcmVzc19kZXNjcmlwdGlvbiA/PyAnJztcclxuICAgICAgICAgICAgdGhpcy5zdHJlZXQgPSByZWNvcmQuc3RyZWV0ID8/ICcnO1xyXG4gICAgICAgICAgICB0aGlzLnN1YnVyYiA9IHJlY29yZC5zdWJ1cmI7XHJcbiAgICAgICAgICAgIHRoaXMuY2l0eSA9IHJlY29yZC5jaXR5ID8/ICcnO1xyXG4gICAgICAgICAgICB0aGlzLnByb3ZpbmNlID0gcmVjb3JkLnByb3ZpbmNlID8/ICcnO1xyXG4gICAgICAgICAgICB0aGlzLmNvdW50cnkgPSByZWNvcmQuY291bnRyeSA/PyAnJztcclxuICAgICAgICAgICAgdGhpcy5wb3N0YWxfY29kZSA9IHJlY29yZC5wb3N0YWxfY29kZSA/PyAnJztcclxuICAgICAgICAgICAgdGhpcy5wb3N0YWxfYWRkcmVzcyA9IHJlY29yZC5wb3N0YWxfYWRkcmVzcyA/PyAnJztcclxuICAgICAgICAgICAgdGhpcy5kZWxpdmVyeV9hZGRyZXNzID0gcmVjb3JkLmRlbGl2ZXJ5X2FkZHJlc3MgPz8gJyc7XHJcbiAgICAgICAgICAgIHRoaXMudmF0X251bWJlciA9IHJlY29yZC52YXRfbnVtYmVyID8/ICcnO1xyXG4gICAgICAgICAgICB0aGlzLmFnZWluZyA9IHJlY29yZC5hZ2VpbmcgPz8gJyc7XHJcbiAgICAgICAgICAgIHRoaXMuYmFsYW5jZV9sYXN0X3VwZGF0ZWQgPSByZWNvcmQuYmFsYW5jZV9sYXN0X3VwZGF0ZWQgPz8gJyc7XHJcbiAgICAgICAgICAgIHRoaXMuY2xpZW50X2NsYXNzaWZpY2F0aW9uID0gcmVjb3JkLmNsaWVudF9jbGFzc2lmaWNhdGlvbiA/PyAnJztcclxuICAgICAgICAgICAgdGhpcy5vdmVycmlkZV9zdG9ja19saXN0aW5nX2lkZW50aWZpZXJzID0gcmVjb3JkLm92ZXJyaWRlX3N0b2NrX2xpc3RpbmdfaWRlbnRpZmllcnMgPz8gJyc7XHJcbiAgICAgICAgICAgIHRoaXMucmVxdWlyZXNfdHJhbnNhY3Rpb25fYXBwcm92YWwgPSByZWNvcmQucmVxdWlyZXNfdHJhbnNhY3Rpb25fYXBwcm92YWwgPz8gJyc7XHJcbiAgICAgICAgICAgIHRoaXMubGF0aXR1ZGUgPSArKHJlY29yZC5sYXRpdHVkZSA/PyAwKTtcclxuICAgICAgICAgICAgdGhpcy5sb25naXR1ZGUgPSArKHJlY29yZC5sb25naXR1ZGUgPz8gMCk7XHJcbiAgICAgICAgICAgIHRoaXMucHJpY2VfbGlzdCA9ICsocmVjb3JkLnByaWNlX2xpc3QgPz8gMCk7XHJcbiAgICAgICAgICAgIHRoaXMubG95YWx0eV9jbGFzc2lmaWNhdGlvbl9pZCA9ICsocmVjb3JkLmxveWFsdHlfY2xhc3NpZmljYXRpb25faWQgPz8gMCk7XHJcbiAgICAgICAgICAgIHRoaXMuY3JlZGl0X2xpbWl0ID0gKyhyZWNvcmQuY3JlZGl0X2xpbWl0ID8/IDApO1xyXG4gICAgICAgICAgICB0aGlzLnBlbmRpbmdfaW52b2ljZV9iYWxhbmNlID0gKyhyZWNvcmQucGVuZGluZ19pbnZvaWNlX2JhbGFuY2UgPz8gMCk7XHJcbiAgICAgICAgICAgIHRoaXMuZXh0ZXJuYWxfYWNjb3VudF9iYWxhbmNlID0gKyhyZWNvcmQuZXh0ZXJuYWxfYWNjb3VudF9iYWxhbmNlID8/IDApO1xyXG4gICAgICAgICAgICB0aGlzLmRlZmF1bHRfc2VsbHByaWNlID0gKyhyZWNvcmQuZGVmYXVsdF9zZWxscHJpY2UgPz8gMCk7XHJcbiAgICAgICAgICAgIHRoaXMuaXNfYWN0aXZlID0gISErKHJlY29yZC5pc19hY3RpdmUgPz8gZmFsc2UpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5leHRlcm5hbF9zdGF0ZW1lbnQgPSBuZXcgRXNvbHZlU3RhdGVtZW50KHJlY29yZC5leHRlcm5hbF9zdGF0ZW1lbnQpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=","import { EsolveUserAccountBusiness } from './esolve-user-account-business.model';\r\nimport { EsolveUserAccountContact } from './esolve-user-account-contact.model';\r\nimport { EsolveUserClientAccount } from './esolve-user-client-account.model';\r\nexport class EsolveUserAccount {\r\n constructor(record) {\r\n if (record) {\r\n this.esolve_id = +(record.userid ?? 0);\r\n this.email = record.email ?? '';\r\n this.registration_type = record.registration_type ?? '';\r\n this.title = record.title ?? '';\r\n this.first_name = record.firstname ?? '';\r\n this.last_name = record.surname ?? '';\r\n this.initials = record.initials ?? '';\r\n this.gender = record.gender ?? '';\r\n this.identification_number = record.idnumber ?? '';\r\n this.contact_details = new EsolveUserAccountContact(record);\r\n this.business_details = new EsolveUserAccountBusiness(record);\r\n if (record.client_details && (record.client_details.account !== '')) {\r\n this.client_details = new EsolveUserClientAccount(record.client_details);\r\n }\r\n }\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXVzZXItYWNjb3VudC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9hY2NvdW50L3VzZXItYWNjb3VudC9jbGFzc2VzL2Vzb2x2ZS11c2VyLWFjY291bnQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDakYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDL0UsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFN0UsTUFBTSxPQUFPLGlCQUFpQjtJQWdCMUIsWUFBWSxNQUF5QztRQUNqRCxJQUFJLE1BQU0sRUFBRTtZQUNSLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDdkMsSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUNoQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixJQUFJLEVBQUUsQ0FBQztZQUN4RCxJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUM7WUFDekMsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztZQUN0QyxJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDO1lBQ3RDLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7WUFDbEMsSUFBSSxDQUFDLHFCQUFxQixHQUFHLE1BQU0sQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDO1lBRW5ELElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSx3QkFBd0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM1RCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSx5QkFBeUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUU5RCxJQUFJLE1BQU0sQ0FBQyxjQUFjLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLE9BQU8sS0FBSyxFQUFFLENBQUMsRUFBRTtnQkFDakUsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQzthQUM1RTtTQUNKO0lBQ0wsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXNvbHZlVXNlckFjY291bnRSZWNvcmQgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgRXNvbHZlVXNlckFjY291bnRCdXNpbmVzcyB9IGZyb20gJy4vZXNvbHZlLXVzZXItYWNjb3VudC1idXNpbmVzcy5tb2RlbCc7XHJcbmltcG9ydCB7IEVzb2x2ZVVzZXJBY2NvdW50Q29udGFjdCB9IGZyb20gJy4vZXNvbHZlLXVzZXItYWNjb3VudC1jb250YWN0Lm1vZGVsJztcclxuaW1wb3J0IHsgRXNvbHZlVXNlckNsaWVudEFjY291bnQgfSBmcm9tICcuL2Vzb2x2ZS11c2VyLWNsaWVudC1hY2NvdW50Lm1vZGVsJztcclxuXHJcbmV4cG9ydCBjbGFzcyBFc29sdmVVc2VyQWNjb3VudCB7XHJcbiAgICBwdWJsaWMgZXNvbHZlX2lkPzogbnVtYmVyO1xyXG4gICAgcHVibGljIGVtYWlsPzogc3RyaW5nO1xyXG4gICAgcHVibGljIHJlZ2lzdHJhdGlvbl90eXBlPzogc3RyaW5nO1xyXG4gICAgcHVibGljIHRpdGxlPzogc3RyaW5nO1xyXG4gICAgcHVibGljIGZpcnN0X25hbWU/OiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgbGFzdF9uYW1lPzogc3RyaW5nO1xyXG4gICAgcHVibGljIGluaXRpYWxzPzogc3RyaW5nO1xyXG4gICAgcHVibGljIGdlbmRlcj86IHN0cmluZztcclxuICAgIHB1YmxpYyBpZGVudGlmaWNhdGlvbl9udW1iZXI/OiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgYWNjb3VudF9udW1iZXI/OiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgbG95YWx0eV9udW1iZXI/OiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgYnVzaW5lc3NfZGV0YWlscz86IEVzb2x2ZVVzZXJBY2NvdW50QnVzaW5lc3M7XHJcbiAgICBwdWJsaWMgY29udGFjdF9kZXRhaWxzPzogRXNvbHZlVXNlckFjY291bnRDb250YWN0O1xyXG4gICAgcHVibGljIGNsaWVudF9kZXRhaWxzPzogRXNvbHZlVXNlckNsaWVudEFjY291bnQ7XHJcblxyXG4gICAgY29uc3RydWN0b3IocmVjb3JkPzogUGFydGlhbDxFc29sdmVVc2VyQWNjb3VudFJlY29yZD4pIHtcclxuICAgICAgICBpZiAocmVjb3JkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZXNvbHZlX2lkID0gKyhyZWNvcmQudXNlcmlkID8/IDApO1xyXG4gICAgICAgICAgICB0aGlzLmVtYWlsID0gcmVjb3JkLmVtYWlsID8/ICcnO1xyXG4gICAgICAgICAgICB0aGlzLnJlZ2lzdHJhdGlvbl90eXBlID0gcmVjb3JkLnJlZ2lzdHJhdGlvbl90eXBlID8/ICcnO1xyXG4gICAgICAgICAgICB0aGlzLnRpdGxlID0gcmVjb3JkLnRpdGxlID8/ICcnO1xyXG4gICAgICAgICAgICB0aGlzLmZpcnN0X25hbWUgPSByZWNvcmQuZmlyc3RuYW1lID8/ICcnO1xyXG4gICAgICAgICAgICB0aGlzLmxhc3RfbmFtZSA9IHJlY29yZC5zdXJuYW1lID8/ICcnO1xyXG4gICAgICAgICAgICB0aGlzLmluaXRpYWxzID0gcmVjb3JkLmluaXRpYWxzID8/ICcnO1xyXG4gICAgICAgICAgICB0aGlzLmdlbmRlciA9IHJlY29yZC5nZW5kZXIgPz8gJyc7XHJcbiAgICAgICAgICAgIHRoaXMuaWRlbnRpZmljYXRpb25fbnVtYmVyID0gcmVjb3JkLmlkbnVtYmVyID8/ICcnO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5jb250YWN0X2RldGFpbHMgPSBuZXcgRXNvbHZlVXNlckFjY291bnRDb250YWN0KHJlY29yZCk7XHJcbiAgICAgICAgICAgIHRoaXMuYnVzaW5lc3NfZGV0YWlscyA9IG5ldyBFc29sdmVVc2VyQWNjb3VudEJ1c2luZXNzKHJlY29yZCk7XHJcblxyXG4gICAgICAgICAgICBpZiAocmVjb3JkLmNsaWVudF9kZXRhaWxzICYmIChyZWNvcmQuY2xpZW50X2RldGFpbHMuYWNjb3VudCAhPT0gJycpKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNsaWVudF9kZXRhaWxzID0gbmV3IEVzb2x2ZVVzZXJDbGllbnRBY2NvdW50KHJlY29yZC5jbGllbnRfZGV0YWlscyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19","export class EsolveUserClientAccountBalances {\r\n constructor(clients_id, account, cart_totals, credit_limit, external_account_balance, external_available_balance, new_external_available_balance, credit_limit_okay) {\r\n this.clients_id = clients_id;\r\n this.account = account;\r\n this.cart_totals = cart_totals;\r\n this.credit_limit = credit_limit;\r\n this.external_account_balance = external_account_balance;\r\n this.external_available_balance = external_available_balance;\r\n this.new_external_available_balance = new_external_available_balance;\r\n this.credit_limit_okay = credit_limit_okay;\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXVzZXItY2xpZW50LWFjY291bnQtYmFsYW5jZXMubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvYWNjb3VudC91c2VyLWFjY291bnQvY2xhc3Nlcy9lc29sdmUtdXNlci1jbGllbnQtYWNjb3VudC1iYWxhbmNlcy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sK0JBQStCO0lBQ3hDLFlBQ1csVUFBbUIsRUFDbkIsT0FBZ0IsRUFDaEIsV0FBOEIsRUFDOUIsWUFBcUIsRUFDckIsd0JBQWlDLEVBQ2pDLDBCQUFtQyxFQUNuQyw4QkFBdUMsRUFDdkMsaUJBQTJCO1FBUDNCLGVBQVUsR0FBVixVQUFVLENBQVM7UUFDbkIsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUNoQixnQkFBVyxHQUFYLFdBQVcsQ0FBbUI7UUFDOUIsaUJBQVksR0FBWixZQUFZLENBQVM7UUFDckIsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUFTO1FBQ2pDLCtCQUEwQixHQUExQiwwQkFBMEIsQ0FBUztRQUNuQyxtQ0FBOEIsR0FBOUIsOEJBQThCLENBQVM7UUFDdkMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFVO0lBQ25DLENBQUM7Q0FDUCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVzb2x2ZUNhcnRUb3RhbHMgfSBmcm9tICcuLi8uLi8uLi9jYXJ0JztcclxuXHJcbmV4cG9ydCBjbGFzcyBFc29sdmVVc2VyQ2xpZW50QWNjb3VudEJhbGFuY2VzIHtcclxuICAgIGNvbnN0cnVjdG9yIChcclxuICAgICAgICBwdWJsaWMgY2xpZW50c19pZD86IG51bWJlcixcclxuICAgICAgICBwdWJsaWMgYWNjb3VudD86IHN0cmluZyxcclxuICAgICAgICBwdWJsaWMgY2FydF90b3RhbHM/OiBFc29sdmVDYXJ0VG90YWxzLFxyXG4gICAgICAgIHB1YmxpYyBjcmVkaXRfbGltaXQ/OiBudW1iZXIsXHJcbiAgICAgICAgcHVibGljIGV4dGVybmFsX2FjY291bnRfYmFsYW5jZT86IG51bWJlcixcclxuICAgICAgICBwdWJsaWMgZXh0ZXJuYWxfYXZhaWxhYmxlX2JhbGFuY2U/OiBudW1iZXIsXHJcbiAgICAgICAgcHVibGljIG5ld19leHRlcm5hbF9hdmFpbGFibGVfYmFsYW5jZT86IG51bWJlcixcclxuICAgICAgICBwdWJsaWMgY3JlZGl0X2xpbWl0X29rYXk/OiBib29sZWFuLFxyXG4gICAgKSB7fVxyXG59XHJcbiJdfQ==","export class EsolveTransactionAddress {\r\n constructor(recipient, address_type, address_description, street_number, street, suburb, city, province, country, postal_code, pobox) {\r\n this.recipient = recipient;\r\n this.address_type = address_type;\r\n this.address_description = address_description;\r\n this.street_number = street_number;\r\n this.street = street;\r\n this.suburb = suburb;\r\n this.city = city;\r\n this.province = province;\r\n this.country = country;\r\n this.postal_code = postal_code;\r\n this.pobox = pobox;\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXRyYW5zYWN0aW9uLWFkZHJlc3MubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvYWNjb3VudC90cmFuc2FjdGlvbi9lc29sdmUtdHJhbnNhY3Rpb24tYWRkcmVzcy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sd0JBQXdCO0lBQ2pDLFlBQ1csU0FBaUIsRUFDakIsWUFBK0IsRUFDL0IsbUJBQTJCLEVBQzNCLGFBQXFCLEVBQ3JCLE1BQWMsRUFDZCxNQUFjLEVBQ2QsSUFBWSxFQUNaLFFBQWdCLEVBQ2hCLE9BQWUsRUFDZixXQUFtQixFQUNuQixLQUFhO1FBVmIsY0FBUyxHQUFULFNBQVMsQ0FBUTtRQUNqQixpQkFBWSxHQUFaLFlBQVksQ0FBbUI7UUFDL0Isd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFRO1FBQzNCLGtCQUFhLEdBQWIsYUFBYSxDQUFRO1FBQ3JCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUNaLGFBQVEsR0FBUixRQUFRLENBQVE7UUFDaEIsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNmLGdCQUFXLEdBQVgsV0FBVyxDQUFRO1FBQ25CLFVBQUssR0FBTCxLQUFLLENBQVE7SUFDcEIsQ0FBQztDQUNSIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXNvbHZlQWRkcmVzc1R5cGUgfSBmcm9tICcuLi9hZGRyZXNzJztcclxuXHJcbmV4cG9ydCBjbGFzcyBFc29sdmVUcmFuc2FjdGlvbkFkZHJlc3Mge1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHVibGljIHJlY2lwaWVudDogc3RyaW5nLFxyXG4gICAgICAgIHB1YmxpYyBhZGRyZXNzX3R5cGU6IEVzb2x2ZUFkZHJlc3NUeXBlLFxyXG4gICAgICAgIHB1YmxpYyBhZGRyZXNzX2Rlc2NyaXB0aW9uOiBzdHJpbmcsXHJcbiAgICAgICAgcHVibGljIHN0cmVldF9udW1iZXI6IHN0cmluZyxcclxuICAgICAgICBwdWJsaWMgc3RyZWV0OiBzdHJpbmcsXHJcbiAgICAgICAgcHVibGljIHN1YnVyYjogc3RyaW5nLFxyXG4gICAgICAgIHB1YmxpYyBjaXR5OiBzdHJpbmcsXHJcbiAgICAgICAgcHVibGljIHByb3ZpbmNlOiBzdHJpbmcsXHJcbiAgICAgICAgcHVibGljIGNvdW50cnk6IHN0cmluZyxcclxuICAgICAgICBwdWJsaWMgcG9zdGFsX2NvZGU6IHN0cmluZyxcclxuICAgICAgICBwdWJsaWMgcG9ib3g6IHN0cmluZyxcclxuICAgICkgeyB9XHJcbn1cclxuIl19","export class EsolveTransactionClient {\r\n constructor(id, account, company_name, branch_code, email, first_name, last_name, contact_number) {\r\n this.id = id;\r\n this.account = account;\r\n this.company_name = company_name;\r\n this.branch_code = branch_code;\r\n this.email = email;\r\n this.first_name = first_name;\r\n this.last_name = last_name;\r\n this.contact_number = contact_number;\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXRyYW5zYWN0aW9uLWNsaWVudC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9hY2NvdW50L3RyYW5zYWN0aW9uL2Vzb2x2ZS10cmFuc2FjdGlvbi1jbGllbnQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLHVCQUF1QjtJQUNoQyxZQUNXLEVBQVUsRUFDVixPQUFlLEVBQ2YsWUFBb0IsRUFDcEIsV0FBbUIsRUFDbkIsS0FBYSxFQUNiLFVBQWtCLEVBQ2xCLFNBQWlCLEVBQ2pCLGNBQXNCO1FBUHRCLE9BQUUsR0FBRixFQUFFLENBQVE7UUFDVixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ2YsaUJBQVksR0FBWixZQUFZLENBQVE7UUFDcEIsZ0JBQVcsR0FBWCxXQUFXLENBQVE7UUFDbkIsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUNiLGVBQVUsR0FBVixVQUFVLENBQVE7UUFDbEIsY0FBUyxHQUFULFNBQVMsQ0FBUTtRQUNqQixtQkFBYyxHQUFkLGNBQWMsQ0FBUTtJQUM3QixDQUFDO0NBQ1IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgRXNvbHZlVHJhbnNhY3Rpb25DbGllbnQge1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHVibGljIGlkOiBudW1iZXIsXHJcbiAgICAgICAgcHVibGljIGFjY291bnQ6IHN0cmluZyxcclxuICAgICAgICBwdWJsaWMgY29tcGFueV9uYW1lOiBzdHJpbmcsXHJcbiAgICAgICAgcHVibGljIGJyYW5jaF9jb2RlOiBzdHJpbmcsXHJcbiAgICAgICAgcHVibGljIGVtYWlsOiBzdHJpbmcsXHJcbiAgICAgICAgcHVibGljIGZpcnN0X25hbWU6IHN0cmluZyxcclxuICAgICAgICBwdWJsaWMgbGFzdF9uYW1lOiBzdHJpbmcsXHJcbiAgICAgICAgcHVibGljIGNvbnRhY3RfbnVtYmVyOiBzdHJpbmcsXHJcbiAgICApIHsgfVxyXG59XHJcbiJdfQ==","export class EsolveTransactionItem {\r\n constructor(code, name, qty, discount, vat_rate, price, line_total) {\r\n this.code = code;\r\n this.name = name;\r\n this.qty = qty;\r\n this.discount = discount;\r\n this.vat_rate = vat_rate;\r\n this.price = price;\r\n this.line_total = line_total;\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXRyYW5zYWN0aW9uLWl0ZW0ubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvYWNjb3VudC90cmFuc2FjdGlvbi9lc29sdmUtdHJhbnNhY3Rpb24taXRlbS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8scUJBQXFCO0lBQzlCLFlBQ1csSUFBWSxFQUNaLElBQVksRUFDWixHQUFXLEVBQ1gsUUFBZ0IsRUFDaEIsUUFBZ0IsRUFDaEIsS0FBaUMsRUFDakMsVUFBc0M7UUFOdEMsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUNaLFNBQUksR0FBSixJQUFJLENBQVE7UUFDWixRQUFHLEdBQUgsR0FBRyxDQUFRO1FBQ1gsYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUNoQixhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQ2hCLFVBQUssR0FBTCxLQUFLLENBQTRCO1FBQ2pDLGVBQVUsR0FBVixVQUFVLENBQTRCO0lBQzdDLENBQUM7Q0FDUiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVzb2x2ZVRyYW5zYWN0aW9uSXRlbVByaWNlIH0gZnJvbSAnLi9lc29sdmUtdHJhbnNhY3Rpb24taXRlbS1wcmljZS5tb2RlbCc7XHJcblxyXG5leHBvcnQgY2xhc3MgRXNvbHZlVHJhbnNhY3Rpb25JdGVtIHtcclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHB1YmxpYyBjb2RlOiBzdHJpbmcsXHJcbiAgICAgICAgcHVibGljIG5hbWU6IHN0cmluZyxcclxuICAgICAgICBwdWJsaWMgcXR5OiBudW1iZXIsXHJcbiAgICAgICAgcHVibGljIGRpc2NvdW50OiBudW1iZXIsXHJcbiAgICAgICAgcHVibGljIHZhdF9yYXRlOiBudW1iZXIsXHJcbiAgICAgICAgcHVibGljIHByaWNlOiBFc29sdmVUcmFuc2FjdGlvbkl0ZW1QcmljZSxcclxuICAgICAgICBwdWJsaWMgbGluZV90b3RhbDogRXNvbHZlVHJhbnNhY3Rpb25JdGVtUHJpY2UsXHJcbiAgICApIHsgfVxyXG59XHJcbiJdfQ==","export class EsolveTransactionItemPrice {\r\n constructor(\r\n /**\r\n * Price without tax\r\n */\r\n price, \r\n /**\r\n * Price with tax\r\n */\r\n price_with_tax, \r\n /**\r\n * Price without tax and with discounts applied if applicable\r\n */\r\n price_discounted, \r\n /**\r\n * Price with tax and with discounts applied if applicable\r\n */\r\n price_with_tax_discounted) {\r\n this.price = price;\r\n this.price_with_tax = price_with_tax;\r\n this.price_discounted = price_discounted;\r\n this.price_with_tax_discounted = price_with_tax_discounted;\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXRyYW5zYWN0aW9uLWl0ZW0tcHJpY2UubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvYWNjb3VudC90cmFuc2FjdGlvbi9lc29sdmUtdHJhbnNhY3Rpb24taXRlbS1wcmljZS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sMEJBQTBCO0lBQ25DO0lBQ0k7O09BRUc7SUFDSSxLQUFhO0lBQ3BCOztPQUVHO0lBQ0ksY0FBc0I7SUFDN0I7O09BRUc7SUFDSSxnQkFBd0I7SUFDL0I7O09BRUc7SUFDSSx5QkFBaUM7UUFaakMsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUliLG1CQUFjLEdBQWQsY0FBYyxDQUFRO1FBSXRCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBUTtRQUl4Qiw4QkFBeUIsR0FBekIseUJBQXlCLENBQVE7SUFDeEMsQ0FBQztDQUNSIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIEVzb2x2ZVRyYW5zYWN0aW9uSXRlbVByaWNlIHtcclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFByaWNlIHdpdGhvdXQgdGF4XHJcbiAgICAgICAgICovXHJcbiAgICAgICAgcHVibGljIHByaWNlOiBudW1iZXIsXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogUHJpY2Ugd2l0aCB0YXhcclxuICAgICAgICAgKi9cclxuICAgICAgICBwdWJsaWMgcHJpY2Vfd2l0aF90YXg6IG51bWJlcixcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBQcmljZSB3aXRob3V0IHRheCBhbmQgd2l0aCBkaXNjb3VudHMgYXBwbGllZCBpZiBhcHBsaWNhYmxlXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgcHVibGljIHByaWNlX2Rpc2NvdW50ZWQ6IG51bWJlcixcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBQcmljZSB3aXRoIHRheCBhbmQgd2l0aCBkaXNjb3VudHMgYXBwbGllZCBpZiBhcHBsaWNhYmxlXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgcHVibGljIHByaWNlX3dpdGhfdGF4X2Rpc2NvdW50ZWQ6IG51bWJlcixcclxuICAgICkgeyB9XHJcbn1cclxuIl19","export class EsolveLocationAddress {\r\n constructor(street, suburb, city, province, country, postal_code, latitude, longitude) {\r\n this.street = street;\r\n this.suburb = suburb;\r\n this.city = city;\r\n this.province = province;\r\n this.country = country;\r\n this.postal_code = postal_code;\r\n this.latitude = latitude;\r\n this.longitude = longitude;\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWxvY2F0aW9uLWFkZHJlc3MubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvbG9jYXRpb25zL2NsYXNzZXMvZXNvbHZlLWxvY2F0aW9uLWFkZHJlc3MubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLHFCQUFxQjtJQUM5QixZQUNXLE1BQWMsRUFDZCxNQUFjLEVBQ2QsSUFBWSxFQUNaLFFBQWdCLEVBQ2hCLE9BQWUsRUFDZixXQUFtQixFQUNuQixRQUFnQixFQUNoQixTQUFpQjtRQVBqQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFNBQUksR0FBSixJQUFJLENBQVE7UUFDWixhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQ2hCLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFDZixnQkFBVyxHQUFYLFdBQVcsQ0FBUTtRQUNuQixhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQ2hCLGNBQVMsR0FBVCxTQUFTLENBQVE7SUFDeEIsQ0FBQztDQUNSIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIEVzb2x2ZUxvY2F0aW9uQWRkcmVzcyB7XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwdWJsaWMgc3RyZWV0OiBzdHJpbmcsXHJcbiAgICAgICAgcHVibGljIHN1YnVyYjogc3RyaW5nLFxyXG4gICAgICAgIHB1YmxpYyBjaXR5OiBzdHJpbmcsXHJcbiAgICAgICAgcHVibGljIHByb3ZpbmNlOiBzdHJpbmcsXHJcbiAgICAgICAgcHVibGljIGNvdW50cnk6IHN0cmluZyxcclxuICAgICAgICBwdWJsaWMgcG9zdGFsX2NvZGU6IHN0cmluZyxcclxuICAgICAgICBwdWJsaWMgbGF0aXR1ZGU6IG51bWJlcixcclxuICAgICAgICBwdWJsaWMgbG9uZ2l0dWRlOiBudW1iZXIsXHJcbiAgICApIHsgfVxyXG59XHJcbiJdfQ==","export class EsolveLocationContactInfo {\r\n constructor(telnumber, cellnumber, email, fax) {\r\n this.telnumber = telnumber;\r\n this.cellnumber = cellnumber;\r\n this.email = email;\r\n this.fax = fax;\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWxvY2F0aW9uLWNvbnRhY3QtaW5mby5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9sb2NhdGlvbnMvY2xhc3Nlcy9lc29sdmUtbG9jYXRpb24tY29udGFjdC1pbmZvLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyx5QkFBeUI7SUFDbEMsWUFDVyxTQUFtQixFQUNuQixVQUFrQixFQUNsQixLQUFhLEVBQ2IsR0FBVztRQUhYLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFDbkIsZUFBVSxHQUFWLFVBQVUsQ0FBUTtRQUNsQixVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQ2IsUUFBRyxHQUFILEdBQUcsQ0FBUTtJQUNsQixDQUFDO0NBQ1IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgRXNvbHZlTG9jYXRpb25Db250YWN0SW5mbyB7XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwdWJsaWMgdGVsbnVtYmVyOiBzdHJpbmdbXSxcclxuICAgICAgICBwdWJsaWMgY2VsbG51bWJlcjogc3RyaW5nLFxyXG4gICAgICAgIHB1YmxpYyBlbWFpbDogc3RyaW5nLFxyXG4gICAgICAgIHB1YmxpYyBmYXg6IHN0cmluZyxcclxuICAgICkgeyB9XHJcbn1cclxuIl19","export class EsolveLocationGEO {\r\n constructor(distance, range, target_description) {\r\n this.distance = distance;\r\n this.range = range;\r\n this.target_description = target_description;\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWxvY2F0aW9uLWdlby5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9sb2NhdGlvbnMvY2xhc3Nlcy9lc29sdmUtbG9jYXRpb24tZ2VvLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxpQkFBaUI7SUFDMUIsWUFDVyxRQUFnQixFQUNoQixLQUFhLEVBQ2Isa0JBQTBCO1FBRjFCLGFBQVEsR0FBUixRQUFRLENBQVE7UUFDaEIsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUNiLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBUTtJQUNqQyxDQUFDO0NBQ1IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgRXNvbHZlTG9jYXRpb25HRU8ge1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHVibGljIGRpc3RhbmNlOiBudW1iZXIsXHJcbiAgICAgICAgcHVibGljIHJhbmdlOiBudW1iZXIsXHJcbiAgICAgICAgcHVibGljIHRhcmdldF9kZXNjcmlwdGlvbjogc3RyaW5nLFxyXG4gICAgKSB7IH1cclxufVxyXG4iXX0=","export class EsolveLocationPOBoxAddress {\r\n constructor(pobox, city, postal_code) {\r\n this.pobox = pobox;\r\n this.city = city;\r\n this.postal_code = postal_code;\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWxvY2F0aW9uLXBvYm94LWFkZHJlc3MubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvbG9jYXRpb25zL2NsYXNzZXMvZXNvbHZlLWxvY2F0aW9uLXBvYm94LWFkZHJlc3MubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLDBCQUEwQjtJQUNuQyxZQUNXLEtBQWEsRUFDYixJQUFZLEVBQ1osV0FBbUI7UUFGbkIsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUNiLFNBQUksR0FBSixJQUFJLENBQVE7UUFDWixnQkFBVyxHQUFYLFdBQVcsQ0FBUTtJQUMxQixDQUFDO0NBQ1IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgRXNvbHZlTG9jYXRpb25QT0JveEFkZHJlc3Mge1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHVibGljIHBvYm94OiBzdHJpbmcsXHJcbiAgICAgICAgcHVibGljIGNpdHk6IHN0cmluZyxcclxuICAgICAgICBwdWJsaWMgcG9zdGFsX2NvZGU6IHN0cmluZyxcclxuICAgICkgeyB9XHJcbn1cclxuIl19","export class EsolveLocationTradingDay {\r\n constructor(open, close) {\r\n this.open = open;\r\n this.close = close;\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWxvY2F0aW9uLXRyYWRpbmctZGF5Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL2xvY2F0aW9ucy9jbGFzc2VzL2Vzb2x2ZS1sb2NhdGlvbi10cmFkaW5nLWRheS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sd0JBQXdCO0lBQ2pDLFlBQ1csSUFBWSxFQUNaLEtBQWE7UUFEYixTQUFJLEdBQUosSUFBSSxDQUFRO1FBQ1osVUFBSyxHQUFMLEtBQUssQ0FBUTtJQUNwQixDQUFDO0NBQ1IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgRXNvbHZlTG9jYXRpb25UcmFkaW5nRGF5IHtcclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHB1YmxpYyBvcGVuOiBzdHJpbmcsXHJcbiAgICAgICAgcHVibGljIGNsb3NlOiBzdHJpbmcsXHJcbiAgICApIHsgfVxyXG59XHJcbiJdfQ==","export class EsolveLocationTradingTimes {\r\n constructor(monday, tuesday, wednesday, thursday, friday, saturday, sunday, public_holiday, trading_hours_additional_info = '') {\r\n this.monday = monday;\r\n this.tuesday = tuesday;\r\n this.wednesday = wednesday;\r\n this.thursday = thursday;\r\n this.friday = friday;\r\n this.saturday = saturday;\r\n this.sunday = sunday;\r\n this.public_holiday = public_holiday;\r\n this.trading_hours_additional_info = trading_hours_additional_info;\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWxvY2F0aW9uLXRyYWRpbmctdGltZXMubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvbG9jYXRpb25zL2NsYXNzZXMvZXNvbHZlLWxvY2F0aW9uLXRyYWRpbmctdGltZXMubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLDBCQUEwQjtJQUNuQyxZQUNXLE1BQWdDLEVBQ2hDLE9BQWlDLEVBQ2pDLFNBQW1DLEVBQ25DLFFBQWtDLEVBQ2xDLE1BQWdDLEVBQ2hDLFFBQWtDLEVBQ2xDLE1BQWdDLEVBQ2hDLGNBQXdDLEVBQ3hDLGdDQUF3QyxFQUFFO1FBUjFDLFdBQU0sR0FBTixNQUFNLENBQTBCO1FBQ2hDLFlBQU8sR0FBUCxPQUFPLENBQTBCO1FBQ2pDLGNBQVMsR0FBVCxTQUFTLENBQTBCO1FBQ25DLGFBQVEsR0FBUixRQUFRLENBQTBCO1FBQ2xDLFdBQU0sR0FBTixNQUFNLENBQTBCO1FBQ2hDLGFBQVEsR0FBUixRQUFRLENBQTBCO1FBQ2xDLFdBQU0sR0FBTixNQUFNLENBQTBCO1FBQ2hDLG1CQUFjLEdBQWQsY0FBYyxDQUEwQjtRQUN4QyxrQ0FBNkIsR0FBN0IsNkJBQTZCLENBQWE7SUFDakQsQ0FBQztDQUNSIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXNvbHZlTG9jYXRpb25UcmFkaW5nRGF5IH0gZnJvbSAnLi9lc29sdmUtbG9jYXRpb24tdHJhZGluZy1kYXkubW9kZWwnO1xyXG5cclxuZXhwb3J0IGNsYXNzIEVzb2x2ZUxvY2F0aW9uVHJhZGluZ1RpbWVzIHtcclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHB1YmxpYyBtb25kYXk6IEVzb2x2ZUxvY2F0aW9uVHJhZGluZ0RheSxcclxuICAgICAgICBwdWJsaWMgdHVlc2RheTogRXNvbHZlTG9jYXRpb25UcmFkaW5nRGF5LFxyXG4gICAgICAgIHB1YmxpYyB3ZWRuZXNkYXk6IEVzb2x2ZUxvY2F0aW9uVHJhZGluZ0RheSxcclxuICAgICAgICBwdWJsaWMgdGh1cnNkYXk6IEVzb2x2ZUxvY2F0aW9uVHJhZGluZ0RheSxcclxuICAgICAgICBwdWJsaWMgZnJpZGF5OiBFc29sdmVMb2NhdGlvblRyYWRpbmdEYXksXHJcbiAgICAgICAgcHVibGljIHNhdHVyZGF5OiBFc29sdmVMb2NhdGlvblRyYWRpbmdEYXksXHJcbiAgICAgICAgcHVibGljIHN1bmRheTogRXNvbHZlTG9jYXRpb25UcmFkaW5nRGF5LFxyXG4gICAgICAgIHB1YmxpYyBwdWJsaWNfaG9saWRheTogRXNvbHZlTG9jYXRpb25UcmFkaW5nRGF5LFxyXG4gICAgICAgIHB1YmxpYyB0cmFkaW5nX2hvdXJzX2FkZGl0aW9uYWxfaW5mbzogc3RyaW5nID0gJycsXHJcbiAgICApIHsgfVxyXG59XHJcbiJdfQ==","import { EsolveLocationAddress } from './esolve-location-address.model';\r\nimport { EsolveLocationContactInfo } from './esolve-location-contact-info.model';\r\nimport { EsolveLocationPOBoxAddress } from './esolve-location-pobox-address.model';\r\nimport { EsolveLocationTradingTimes } from './esolve-location-trading-times.model';\r\nimport { EsolveLocationTradingDay } from './esolve-location-trading-day.model';\r\nimport { EsolveLocationGEO } from './esolve-location-geo.model';\r\nexport class EsolveLocation {\r\n constructor(record) {\r\n this.id = +record.id;\r\n this.identifier = record.identifier;\r\n this.description = record.description;\r\n this.head_office = !!+record.head_office;\r\n this.erp_identifier = record.erp_identifier;\r\n this.external_system_code = record.external_system_code;\r\n this.default_location_for_payment_methods = !!+record.default_location_for_payment_methods;\r\n this.userid = +record.userid;\r\n this.importance = +record.importance;\r\n this.active = !!+record.is_active;\r\n this.dispatches_stock = !!+record.dispatches_stock;\r\n this.include_on_enquiries = !!+record.include_on_enquiries;\r\n this.include_on_store_locator = !!+record.include_on_store_locator;\r\n this.website_url = record.website_url;\r\n this.address = new EsolveLocationAddress(record.street, record.suburb, record.city, record.province, record.country, record.postal_code, +record.latitude, +record.longitude);\r\n this.pobox_address = new EsolveLocationPOBoxAddress(record.pobox, record.pobox_city, record.pobox_postal_code);\r\n const telnumbers = [];\r\n if (record.branch_telnumber.length > 0) {\r\n telnumbers.push(record.branch_telnumber);\r\n }\r\n if (record.branch_telnumber_2.length > 0) {\r\n telnumbers.push(record.branch_telnumber_2);\r\n }\r\n if (record.branch_telnumber_3.length > 0) {\r\n telnumbers.push(record.branch_telnumber_3);\r\n }\r\n this.contact_info = new EsolveLocationContactInfo(telnumbers, record.branch_cellnumber, record.branch_email, record.branch_fax);\r\n const monday = new EsolveLocationTradingDay(record.monday_open_time, record.monday_close_time);\r\n const tuesday = new EsolveLocationTradingDay(record.tuesday_open_time, record.tuesday_close_time);\r\n const wednesday = new EsolveLocationTradingDay(record.wednesday_open_time, record.wednesday_close_time);\r\n const thursday = new EsolveLocationTradingDay(record.thursday_open_time, record.thursday_close_time);\r\n const friday = new EsolveLocationTradingDay(record.friday_open_time, record.friday_close_time);\r\n const saturday = new EsolveLocationTradingDay(record.saturday_open_time, record.saturday_close_time);\r\n const sunday = new EsolveLocationTradingDay(record.sunday_open_time, record.sunday_close_time);\r\n const public_holiday = new EsolveLocationTradingDay(record.public_holiday_open_time, record.public_holiday_close_time);\r\n this.trading_times = new EsolveLocationTradingTimes(monday, tuesday, wednesday, thursday, friday, saturday, sunday, public_holiday, record.trading_hours_additional_info);\r\n this.geo = new EsolveLocationGEO(record.distance, record.range, record.target_description);\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWxvY2F0aW9uLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL2xvY2F0aW9ucy9jbGFzc2VzL2Vzb2x2ZS1sb2NhdGlvbi5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNqRixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNuRixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNuRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUVoRSxNQUFNLE9BQU8sY0FBYztJQXNCdkIsWUFBWSxNQUE0QjtRQUNwQyxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUM7UUFDcEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQztRQUN6QyxJQUFJLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUM7UUFDNUMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQztRQUN4RCxJQUFJLENBQUMsb0NBQW9DLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLG9DQUFvQyxDQUFDO1FBQzNGLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO1FBQzdCLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQztRQUNsQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDO1FBQ25ELElBQUksQ0FBQyxvQkFBb0IsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsb0JBQW9CLENBQUM7UUFDM0QsSUFBSSxDQUFDLHdCQUF3QixHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQztRQUNuRSxJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUM7UUFFdEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLHFCQUFxQixDQUNwQyxNQUFNLENBQUMsTUFBTSxFQUNiLE1BQU0sQ0FBQyxNQUFNLEVBQ2IsTUFBTSxDQUFDLElBQUksRUFDWCxNQUFNLENBQUMsUUFBUSxFQUNmLE1BQU0sQ0FBQyxPQUFPLEVBQ2QsTUFBTSxDQUFDLFdBQVcsRUFDbEIsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUNoQixDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQ3BCLENBQUM7UUFFRixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksMEJBQTBCLENBQy9DLE1BQU0sQ0FBQyxLQUFLLEVBQ1osTUFBTSxDQUFDLFVBQVUsRUFDakIsTUFBTSxDQUFDLGlCQUFpQixDQUMzQixDQUFDO1FBRUYsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBRXRCLElBQUksTUFBTSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDcEMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztTQUM1QztRQUVELElBQUksTUFBTSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDdEMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztTQUM5QztRQUVELElBQUksTUFBTSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDdEMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztTQUM5QztRQUVELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSx5QkFBeUIsQ0FDN0MsVUFBVSxFQUNWLE1BQU0sQ0FBQyxpQkFBaUIsRUFDeEIsTUFBTSxDQUFDLFlBQVksRUFDbkIsTUFBTSxDQUFDLFVBQVUsQ0FDcEIsQ0FBQztRQUVGLE1BQU0sTUFBTSxHQUFHLElBQUksd0JBQXdCLENBQ3ZDLE1BQU0sQ0FBQyxnQkFBZ0IsRUFDdkIsTUFBTSxDQUFDLGlCQUFpQixDQUMzQixDQUFDO1FBRUYsTUFBTSxPQUFPLEdBQUcsSUFBSSx3QkFBd0IsQ0FDeEMsTUFBTSxDQUFDLGlCQUFpQixFQUN4QixNQUFNLENBQUMsa0JBQWtCLENBQzVCLENBQUM7UUFFRixNQUFNLFNBQVMsR0FBRyxJQUFJLHdCQUF3QixDQUMxQyxNQUFNLENBQUMsbUJBQW1CLEVBQzFCLE1BQU0sQ0FBQyxvQkFBb0IsQ0FDOUIsQ0FBQztRQUVGLE1BQU0sUUFBUSxHQUFHLElBQUksd0JBQXdCLENBQ3pDLE1BQU0sQ0FBQyxrQkFBa0IsRUFDekIsTUFBTSxDQUFDLG1CQUFtQixDQUM3QixDQUFDO1FBRUYsTUFBTSxNQUFNLEdBQUcsSUFBSSx3QkFBd0IsQ0FDdkMsTUFBTSxDQUFDLGdCQUFnQixFQUN2QixNQUFNLENBQUMsaUJBQWlCLENBQzNCLENBQUM7UUFFRixNQUFNLFFBQVEsR0FBRyxJQUFJLHdCQUF3QixDQUN6QyxNQUFNLENBQUMsa0JBQWtCLEVBQ3pCLE1BQU0sQ0FBQyxtQkFBbUIsQ0FDN0IsQ0FBQztRQUVGLE1BQU0sTUFBTSxHQUFHLElBQUksd0JBQXdCLENBQ3ZDLE1BQU0sQ0FBQyxnQkFBZ0IsRUFDdkIsTUFBTSxDQUFDLGlCQUFpQixDQUMzQixDQUFDO1FBRUYsTUFBTSxjQUFjLEdBQUcsSUFBSSx3QkFBd0IsQ0FDL0MsTUFBTSxDQUFDLHdCQUF3QixFQUMvQixNQUFNLENBQUMseUJBQXlCLENBQ25DLENBQUM7UUFFRixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksMEJBQTBCLENBQy9DLE1BQU0sRUFDTixPQUFPLEVBQ1AsU0FBUyxFQUNULFFBQVEsRUFDUixNQUFNLEVBQ04sUUFBUSxFQUNSLE1BQU0sRUFDTixjQUFjLEVBQ2QsTUFBTSxDQUFDLDZCQUE2QixDQUN2QyxDQUFDO1FBRUYsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLGlCQUFpQixDQUM1QixNQUFNLENBQUMsUUFBUSxFQUNmLE1BQU0sQ0FBQyxLQUFLLEVBQ1osTUFBTSxDQUFDLGtCQUFrQixDQUM1QixDQUFDO0lBQ04sQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXNvbHZlTG9jYXRpb25SZWNvcmQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2Vzb2x2ZS1sb2NhdGlvbi1yZWNvcmQuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgRXNvbHZlTG9jYXRpb25BZGRyZXNzIH0gZnJvbSAnLi9lc29sdmUtbG9jYXRpb24tYWRkcmVzcy5tb2RlbCc7XHJcbmltcG9ydCB7IEVzb2x2ZUxvY2F0aW9uQ29udGFjdEluZm8gfSBmcm9tICcuL2Vzb2x2ZS1sb2NhdGlvbi1jb250YWN0LWluZm8ubW9kZWwnO1xyXG5pbXBvcnQgeyBFc29sdmVMb2NhdGlvblBPQm94QWRkcmVzcyB9IGZyb20gJy4vZXNvbHZlLWxvY2F0aW9uLXBvYm94LWFkZHJlc3MubW9kZWwnO1xyXG5pbXBvcnQgeyBFc29sdmVMb2NhdGlvblRyYWRpbmdUaW1lcyB9IGZyb20gJy4vZXNvbHZlLWxvY2F0aW9uLXRyYWRpbmctdGltZXMubW9kZWwnO1xyXG5pbXBvcnQgeyBFc29sdmVMb2NhdGlvblRyYWRpbmdEYXkgfSBmcm9tICcuL2Vzb2x2ZS1sb2NhdGlvbi10cmFkaW5nLWRheS5tb2RlbCc7XHJcbmltcG9ydCB7IEVzb2x2ZUxvY2F0aW9uR0VPIH0gZnJvbSAnLi9lc29sdmUtbG9jYXRpb24tZ2VvLm1vZGVsJztcclxuXHJcbmV4cG9ydCBjbGFzcyBFc29sdmVMb2NhdGlvbiB7XHJcbiAgICBwdWJsaWMgaWQ6IG51bWJlcjtcclxuICAgIHB1YmxpYyBpZGVudGlmaWVyOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgZGVzY3JpcHRpb246IHN0cmluZztcclxuICAgIHB1YmxpYyBoZWFkX29mZmljZTogYm9vbGVhbjtcclxuICAgIHB1YmxpYyBkZWZhdWx0X2xvY2F0aW9uX2Zvcl9wYXltZW50X21ldGhvZHM6IGJvb2xlYW47XHJcbiAgICBwdWJsaWMgZXh0ZXJuYWxfc3lzdGVtX2NvZGU6IHN0cmluZztcclxuICAgIHB1YmxpYyBlcnBfaWRlbnRpZmllcjogc3RyaW5nO1xyXG4gICAgcHVibGljIHVzZXJpZDogbnVtYmVyO1xyXG4gICAgcHVibGljIGltcG9ydGFuY2U6IG51bWJlcjtcclxuICAgIHB1YmxpYyBhY3RpdmU6IGJvb2xlYW47XHJcbiAgICBwdWJsaWMgZGlzcGF0Y2hlc19zdG9jazogYm9vbGVhbjtcclxuICAgIHB1YmxpYyBpbmNsdWRlX29uX2VucXVpcmllczogYm9vbGVhbjtcclxuICAgIHB1YmxpYyBpbmNsdWRlX29uX3N0b3JlX2xvY2F0b3I6IGJvb2xlYW47XHJcbiAgICBwdWJsaWMgd2Vic2l0ZV91cmw6IHN0cmluZztcclxuXHJcbiAgICBwdWJsaWMgYWRkcmVzczogRXNvbHZlTG9jYXRpb25BZGRyZXNzO1xyXG4gICAgcHVibGljIHBvYm94X2FkZHJlc3M6IEVzb2x2ZUxvY2F0aW9uUE9Cb3hBZGRyZXNzO1xyXG4gICAgcHVibGljIGNvbnRhY3RfaW5mbzogRXNvbHZlTG9jYXRpb25Db250YWN0SW5mbztcclxuICAgIHB1YmxpYyB0cmFkaW5nX3RpbWVzOiBFc29sdmVMb2NhdGlvblRyYWRpbmdUaW1lcztcclxuICAgIHB1YmxpYyBnZW8/OiBFc29sdmVMb2NhdGlvbkdFTztcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihyZWNvcmQ6IEVzb2x2ZUxvY2F0aW9uUmVjb3JkKSB7XHJcbiAgICAgICAgdGhpcy5pZCA9ICtyZWNvcmQuaWQ7XHJcbiAgICAgICAgdGhpcy5pZGVudGlmaWVyID0gcmVjb3JkLmlkZW50aWZpZXI7XHJcbiAgICAgICAgdGhpcy5kZXNjcmlwdGlvbiA9IHJlY29yZC5kZXNjcmlwdGlvbjtcclxuICAgICAgICB0aGlzLmhlYWRfb2ZmaWNlID0gISErcmVjb3JkLmhlYWRfb2ZmaWNlO1xyXG4gICAgICAgIHRoaXMuZXJwX2lkZW50aWZpZXIgPSByZWNvcmQuZXJwX2lkZW50aWZpZXI7XHJcbiAgICAgICAgdGhpcy5leHRlcm5hbF9zeXN0ZW1fY29kZSA9IHJlY29yZC5leHRlcm5hbF9zeXN0ZW1fY29kZTtcclxuICAgICAgICB0aGlzLmRlZmF1bHRfbG9jYXRpb25fZm9yX3BheW1lbnRfbWV0aG9kcyA9ICEhK3JlY29yZC5kZWZhdWx0X2xvY2F0aW9uX2Zvcl9wYXltZW50X21ldGhvZHM7XHJcbiAgICAgICAgdGhpcy51c2VyaWQgPSArcmVjb3JkLnVzZXJpZDtcclxuICAgICAgICB0aGlzLmltcG9ydGFuY2UgPSArcmVjb3JkLmltcG9ydGFuY2U7XHJcbiAgICAgICAgdGhpcy5hY3RpdmUgPSAhIStyZWNvcmQuaXNfYWN0aXZlO1xyXG4gICAgICAgIHRoaXMuZGlzcGF0Y2hlc19zdG9jayA9ICEhK3JlY29yZC5kaXNwYXRjaGVzX3N0b2NrO1xyXG4gICAgICAgIHRoaXMuaW5jbHVkZV9vbl9lbnF1aXJpZXMgPSAhIStyZWNvcmQuaW5jbHVkZV9vbl9lbnF1aXJpZXM7XHJcbiAgICAgICAgdGhpcy5pbmNsdWRlX29uX3N0b3JlX2xvY2F0b3IgPSAhIStyZWNvcmQuaW5jbHVkZV9vbl9zdG9yZV9sb2NhdG9yO1xyXG4gICAgICAgIHRoaXMud2Vic2l0ZV91cmwgPSByZWNvcmQud2Vic2l0ZV91cmw7XHJcblxyXG4gICAgICAgIHRoaXMuYWRkcmVzcyA9IG5ldyBFc29sdmVMb2NhdGlvbkFkZHJlc3MoXHJcbiAgICAgICAgICAgIHJlY29yZC5zdHJlZXQsXHJcbiAgICAgICAgICAgIHJlY29yZC5zdWJ1cmIsXHJcbiAgICAgICAgICAgIHJlY29yZC5jaXR5LFxyXG4gICAgICAgICAgICByZWNvcmQucHJvdmluY2UsXHJcbiAgICAgICAgICAgIHJlY29yZC5jb3VudHJ5LFxyXG4gICAgICAgICAgICByZWNvcmQucG9zdGFsX2NvZGUsXHJcbiAgICAgICAgICAgICtyZWNvcmQubGF0aXR1ZGUsXHJcbiAgICAgICAgICAgICtyZWNvcmQubG9uZ2l0dWRlLFxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIHRoaXMucG9ib3hfYWRkcmVzcyA9IG5ldyBFc29sdmVMb2NhdGlvblBPQm94QWRkcmVzcyhcclxuICAgICAgICAgICAgcmVjb3JkLnBvYm94LFxyXG4gICAgICAgICAgICByZWNvcmQucG9ib3hfY2l0eSxcclxuICAgICAgICAgICAgcmVjb3JkLnBvYm94X3Bvc3RhbF9jb2RlLFxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIGNvbnN0IHRlbG51bWJlcnMgPSBbXTtcclxuXHJcbiAgICAgICAgaWYgKHJlY29yZC5icmFuY2hfdGVsbnVtYmVyLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgdGVsbnVtYmVycy5wdXNoKHJlY29yZC5icmFuY2hfdGVsbnVtYmVyKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChyZWNvcmQuYnJhbmNoX3RlbG51bWJlcl8yLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgdGVsbnVtYmVycy5wdXNoKHJlY29yZC5icmFuY2hfdGVsbnVtYmVyXzIpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHJlY29yZC5icmFuY2hfdGVsbnVtYmVyXzMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICB0ZWxudW1iZXJzLnB1c2gocmVjb3JkLmJyYW5jaF90ZWxudW1iZXJfMyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmNvbnRhY3RfaW5mbyA9IG5ldyBFc29sdmVMb2NhdGlvbkNvbnRhY3RJbmZvKFxyXG4gICAgICAgICAgICB0ZWxudW1iZXJzLFxyXG4gICAgICAgICAgICByZWNvcmQuYnJhbmNoX2NlbGxudW1iZXIsXHJcbiAgICAgICAgICAgIHJlY29yZC5icmFuY2hfZW1haWwsXHJcbiAgICAgICAgICAgIHJlY29yZC5icmFuY2hfZmF4LFxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIGNvbnN0IG1vbmRheSA9IG5ldyBFc29sdmVMb2NhdGlvblRyYWRpbmdEYXkoXHJcbiAgICAgICAgICAgIHJlY29yZC5tb25kYXlfb3Blbl90aW1lLFxyXG4gICAgICAgICAgICByZWNvcmQubW9uZGF5X2Nsb3NlX3RpbWUsXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgY29uc3QgdHVlc2RheSA9IG5ldyBFc29sdmVMb2NhdGlvblRyYWRpbmdEYXkoXHJcbiAgICAgICAgICAgIHJlY29yZC50dWVzZGF5X29wZW5fdGltZSxcclxuICAgICAgICAgICAgcmVjb3JkLnR1ZXNkYXlfY2xvc2VfdGltZSxcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICBjb25zdCB3ZWRuZXNkYXkgPSBuZXcgRXNvbHZlTG9jYXRpb25UcmFkaW5nRGF5KFxyXG4gICAgICAgICAgICByZWNvcmQud2VkbmVzZGF5X29wZW5fdGltZSxcclxuICAgICAgICAgICAgcmVjb3JkLndlZG5lc2RheV9jbG9zZV90aW1lLFxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIGNvbnN0IHRodXJzZGF5ID0gbmV3IEVzb2x2ZUxvY2F0aW9uVHJhZGluZ0RheShcclxuICAgICAgICAgICAgcmVjb3JkLnRodXJzZGF5X29wZW5fdGltZSxcclxuICAgICAgICAgICAgcmVjb3JkLnRodXJzZGF5X2Nsb3NlX3RpbWUsXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgY29uc3QgZnJpZGF5ID0gbmV3IEVzb2x2ZUxvY2F0aW9uVHJhZGluZ0RheShcclxuICAgICAgICAgICAgcmVjb3JkLmZyaWRheV9vcGVuX3RpbWUsXHJcbiAgICAgICAgICAgIHJlY29yZC5mcmlkYXlfY2xvc2VfdGltZSxcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICBjb25zdCBzYXR1cmRheSA9IG5ldyBFc29sdmVMb2NhdGlvblRyYWRpbmdEYXkoXHJcbiAgICAgICAgICAgIHJlY29yZC5zYXR1cmRheV9vcGVuX3RpbWUsXHJcbiAgICAgICAgICAgIHJlY29yZC5zYXR1cmRheV9jbG9zZV90aW1lLFxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIGNvbnN0IHN1bmRheSA9IG5ldyBFc29sdmVMb2NhdGlvblRyYWRpbmdEYXkoXHJcbiAgICAgICAgICAgIHJlY29yZC5zdW5kYXlfb3Blbl90aW1lLFxyXG4gICAgICAgICAgICByZWNvcmQuc3VuZGF5X2Nsb3NlX3RpbWUsXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgY29uc3QgcHVibGljX2hvbGlkYXkgPSBuZXcgRXNvbHZlTG9jYXRpb25UcmFkaW5nRGF5KFxyXG4gICAgICAgICAgICByZWNvcmQucHVibGljX2hvbGlkYXlfb3Blbl90aW1lLFxyXG4gICAgICAgICAgICByZWNvcmQucHVibGljX2hvbGlkYXlfY2xvc2VfdGltZSxcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICB0aGlzLnRyYWRpbmdfdGltZXMgPSBuZXcgRXNvbHZlTG9jYXRpb25UcmFkaW5nVGltZXMoXHJcbiAgICAgICAgICAgIG1vbmRheSxcclxuICAgICAgICAgICAgdHVlc2RheSxcclxuICAgICAgICAgICAgd2VkbmVzZGF5LFxyXG4gICAgICAgICAgICB0aHVyc2RheSxcclxuICAgICAgICAgICAgZnJpZGF5LFxyXG4gICAgICAgICAgICBzYXR1cmRheSxcclxuICAgICAgICAgICAgc3VuZGF5LFxyXG4gICAgICAgICAgICBwdWJsaWNfaG9saWRheSxcclxuICAgICAgICAgICAgcmVjb3JkLnRyYWRpbmdfaG91cnNfYWRkaXRpb25hbF9pbmZvLFxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIHRoaXMuZ2VvID0gbmV3IEVzb2x2ZUxvY2F0aW9uR0VPKFxyXG4gICAgICAgICAgICByZWNvcmQuZGlzdGFuY2UsXHJcbiAgICAgICAgICAgIHJlY29yZC5yYW5nZSxcclxuICAgICAgICAgICAgcmVjb3JkLnRhcmdldF9kZXNjcmlwdGlvbixcclxuICAgICAgICApO1xyXG4gICAgfVxyXG59XHJcblxyXG5cclxuIl19","// Classes\r\nexport * from './esolve-location-address.model';\r\nexport * from './esolve-location-contact-info.model';\r\nexport * from './esolve-location-geo.model';\r\nexport * from './esolve-location-pobox-address.model';\r\nexport * from './esolve-location-trading-day.model';\r\nexport * from './esolve-location-trading-times.model';\r\nexport * from './esolve-location.model';\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvbG9jYXRpb25zL2NsYXNzZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsVUFBVTtBQUNWLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMseUJBQXlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDbGFzc2VzXHJcbmV4cG9ydCAqIGZyb20gJy4vZXNvbHZlLWxvY2F0aW9uLWFkZHJlc3MubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS1sb2NhdGlvbi1jb250YWN0LWluZm8ubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS1sb2NhdGlvbi1nZW8ubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS1sb2NhdGlvbi1wb2JveC1hZGRyZXNzLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9lc29sdmUtbG9jYXRpb24tdHJhZGluZy1kYXkubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS1sb2NhdGlvbi10cmFkaW5nLXRpbWVzLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9lc29sdmUtbG9jYXRpb24ubW9kZWwnO1xyXG4iXX0=","import { HttpClient } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { map } from 'rxjs/operators';\r\nimport { ESOLVE_CONNECT_CONFIG } from '../esolve-connect-config.constant';\r\nimport { EsolveLocation } from './classes/esolve-location.model';\r\nimport * as i0 from \"@angular/core\";\r\nimport * as i1 from \"@angular/common/http\";\r\nexport class EsolveLocationsService {\r\n constructor(config, http) {\r\n this.config = config;\r\n this.http = http;\r\n }\r\n /**\r\n * Retrieves a list of stock locations\r\n *\r\n * @returns An `Observable` with an array of stock locations\r\n */\r\n getStockLocations() {\r\n return this.http\r\n .get(`${this.config.api_url}/get-locations.php`)\r\n .pipe(map((response) => {\r\n if (response.records === undefined) {\r\n throw response;\r\n }\r\n return this.processStockLocations(response.records);\r\n }));\r\n }\r\n /**\r\n * Retrieves a list of stock locations using the address_id as parameter or the latitude and longitude.\r\n * Set the addresses_id to 0 and the gps coordinates in order to retrieve the locations list when the address isn't\r\n * yet saved.\r\n *\r\n * @param addresses_id if supplied, the latitude and longitude on the address will be used.\r\n * @param latitude if supplied and address_id > 0, the value is ignored.\r\n * @param longitude if supplied and address_id > 0, the value is ignored.\r\n *\r\n * @returns An `Observable` with an array of stock locations\r\n */\r\n getStockLocationsGeo(addresses_id = 0, latitude = 0, longitude = 0) {\r\n return this.http\r\n .get(`${this.config.api_url}/get-locations-geo.php`, {\r\n params: {\r\n addresses_id,\r\n latitude,\r\n longitude,\r\n },\r\n })\r\n .pipe(map((response) => {\r\n if (response.records === undefined) {\r\n throw response;\r\n }\r\n return this.processStockLocations(response.records);\r\n }));\r\n }\r\n /**\r\n * Processes the eSolve stock location records.\r\n *\r\n * @param records Records to process\r\n * @returns An array of processed stock location records\r\n */\r\n processStockLocations(records) {\r\n const stock_locations = [];\r\n if (records) {\r\n for (const record of records) {\r\n stock_locations.push(new EsolveLocation(record));\r\n }\r\n }\r\n return stock_locations;\r\n }\r\n}\r\nEsolveLocationsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveLocationsService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });\r\nEsolveLocationsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveLocationsService, providedIn: 'root' });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveLocationsService, decorators: [{\r\n type: Injectable,\r\n args: [{\r\n providedIn: 'root',\r\n }]\r\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\r\n type: Inject,\r\n args: [ESOLVE_CONNECT_CONFIG]\r\n }] }, { type: i1.HttpClient }]; } });\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWxvY2F0aW9ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL2xvY2F0aW9ucy9lc29sdmUtbG9jYXRpb25zLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR25ELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdyQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUcxRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUNBQWlDLENBQUM7OztBQU1qRSxNQUFNLE9BQU8sc0JBQXNCO0lBQy9CLFlBQzJDLE1BQTJCLEVBQzFELElBQWdCO1FBRGUsV0FBTSxHQUFOLE1BQU0sQ0FBcUI7UUFDMUQsU0FBSSxHQUFKLElBQUksQ0FBWTtJQUN4QixDQUFDO0lBRUw7Ozs7T0FJRztJQUNJLGlCQUFpQjtRQUNwQixPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ1gsR0FBRyxDQUNBLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLG9CQUFvQixDQUM3QzthQUNBLElBQUksQ0FDRCxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUNiLElBQUksUUFBUSxDQUFDLE9BQU8sS0FBSyxTQUFTLEVBQUU7Z0JBQ2hDLE1BQU0sUUFBUSxDQUFDO2FBQ2xCO1lBRUQsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3hELENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDVixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNJLG9CQUFvQixDQUN2QixlQUF1QixDQUFDLEVBQ3hCLFdBQW1CLENBQUMsRUFDcEIsWUFBb0IsQ0FBQztRQUVyQixPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ1gsR0FBRyxDQUNBLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLHdCQUF3QixFQUM5QztZQUNJLE1BQU0sRUFBRTtnQkFDTCxZQUFZO2dCQUNaLFFBQVE7Z0JBQ1IsU0FBUzthQUNYO1NBQ0osQ0FDSjthQUNBLElBQUksQ0FDRCxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUNiLElBQUksUUFBUSxDQUFDLE9BQU8sS0FBSyxTQUFTLEVBQUU7Z0JBQ2hDLE1BQU0sUUFBUSxDQUFDO2FBQ2xCO1lBRUQsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3hELENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDVixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSyxxQkFBcUIsQ0FBQyxPQUErQjtRQUN6RCxNQUFNLGVBQWUsR0FBcUIsRUFBRSxDQUFDO1FBRTdDLElBQUksT0FBTyxFQUFFO1lBQ1QsS0FBSyxNQUFNLE1BQU0sSUFBSSxPQUFPLEVBQUU7Z0JBQzFCLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQzthQUNwRDtTQUNKO1FBRUQsT0FBTyxlQUFlLENBQUM7SUFDM0IsQ0FBQzs7bUhBakZRLHNCQUFzQixrQkFFbkIscUJBQXFCO3VIQUZ4QixzQkFBc0IsY0FGbkIsTUFBTTsyRkFFVCxzQkFBc0I7a0JBSGxDLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCOzswQkFHUSxNQUFNOzJCQUFDLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBFc29sdmVDb25uZWN0Q29uZmlnIH0gZnJvbSAnLi4vZXNvbHZlLWNvbm5lY3QuY29uZmlnJztcclxuaW1wb3J0IHsgRVNPTFZFX0NPTk5FQ1RfQ09ORklHIH0gZnJvbSAnLi4vZXNvbHZlLWNvbm5lY3QtY29uZmlnLmNvbnN0YW50JztcclxuaW1wb3J0IHsgRXNvbHZlR2V0UmVzcG9uc2UgfSBmcm9tICcuLi9zaGFyZWQvcmVzcG9uc2UnO1xyXG5cclxuaW1wb3J0IHsgRXNvbHZlTG9jYXRpb24gfSBmcm9tICcuL2NsYXNzZXMvZXNvbHZlLWxvY2F0aW9uLm1vZGVsJztcclxuaW1wb3J0IHsgRXNvbHZlTG9jYXRpb25SZWNvcmQgfSBmcm9tICcuL2ludGVyZmFjZXMvZXNvbHZlLWxvY2F0aW9uLXJlY29yZC5pbnRlcmZhY2UnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRXNvbHZlTG9jYXRpb25zU2VydmljZSB7XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBASW5qZWN0KEVTT0xWRV9DT05ORUNUX0NPTkZJRykgcHJpdmF0ZSBjb25maWc6IEVzb2x2ZUNvbm5lY3RDb25maWcsXHJcbiAgICAgICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgKSB7IH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHJpZXZlcyBhIGxpc3Qgb2Ygc3RvY2sgbG9jYXRpb25zXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybnMgQW4gYE9ic2VydmFibGVgIHdpdGggYW4gYXJyYXkgb2Ygc3RvY2sgbG9jYXRpb25zXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRTdG9ja0xvY2F0aW9ucygpOiBPYnNlcnZhYmxlPEVzb2x2ZUxvY2F0aW9uW10+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgICAgICAgIC5nZXQ8RXNvbHZlR2V0UmVzcG9uc2U8RXNvbHZlTG9jYXRpb25SZWNvcmRbXT4+KFxyXG4gICAgICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vZ2V0LWxvY2F0aW9ucy5waHBgLFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5yZWNvcmRzID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzU3RvY2tMb2NhdGlvbnMocmVzcG9uc2UucmVjb3Jkcyk7XHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHJpZXZlcyBhIGxpc3Qgb2Ygc3RvY2sgbG9jYXRpb25zIHVzaW5nIHRoZSBhZGRyZXNzX2lkIGFzIHBhcmFtZXRlciBvciB0aGUgbGF0aXR1ZGUgYW5kIGxvbmdpdHVkZS5cclxuICAgICAqIFNldCB0aGUgYWRkcmVzc2VzX2lkIHRvIDAgYW5kIHRoZSBncHMgY29vcmRpbmF0ZXMgaW4gb3JkZXIgdG8gcmV0cmlldmUgdGhlIGxvY2F0aW9ucyBsaXN0IHdoZW4gdGhlIGFkZHJlc3MgaXNuJ3RcclxuICAgICAqIHlldCBzYXZlZC5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gYWRkcmVzc2VzX2lkIGlmIHN1cHBsaWVkLCB0aGUgbGF0aXR1ZGUgYW5kIGxvbmdpdHVkZSBvbiB0aGUgYWRkcmVzcyB3aWxsIGJlIHVzZWQuXHJcbiAgICAgKiBAcGFyYW0gbGF0aXR1ZGUgaWYgc3VwcGxpZWQgYW5kIGFkZHJlc3NfaWQgPiAwLCB0aGUgdmFsdWUgaXMgaWdub3JlZC5cclxuICAgICAqIEBwYXJhbSBsb25naXR1ZGUgaWYgc3VwcGxpZWQgYW5kIGFkZHJlc3NfaWQgPiAwLCB0aGUgdmFsdWUgaXMgaWdub3JlZC5cclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyBBbiBgT2JzZXJ2YWJsZWAgd2l0aCBhbiBhcnJheSBvZiBzdG9jayBsb2NhdGlvbnNcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldFN0b2NrTG9jYXRpb25zR2VvKFxyXG4gICAgICAgIGFkZHJlc3Nlc19pZDogbnVtYmVyID0gMCxcclxuICAgICAgICBsYXRpdHVkZTogbnVtYmVyID0gMCxcclxuICAgICAgICBsb25naXR1ZGU6IG51bWJlciA9IDAsXHJcbiAgICApOiBPYnNlcnZhYmxlPEVzb2x2ZUxvY2F0aW9uW10+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgICAgICAgIC5nZXQ8RXNvbHZlR2V0UmVzcG9uc2U8RXNvbHZlTG9jYXRpb25SZWNvcmRbXT4+KFxyXG4gICAgICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vZ2V0LWxvY2F0aW9ucy1nZW8ucGhwYCxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBwYXJhbXM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICBhZGRyZXNzZXNfaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgbGF0aXR1ZGUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgbG9uZ2l0dWRlLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5yZWNvcmRzID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzU3RvY2tMb2NhdGlvbnMocmVzcG9uc2UucmVjb3Jkcyk7XHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFByb2Nlc3NlcyB0aGUgZVNvbHZlIHN0b2NrIGxvY2F0aW9uIHJlY29yZHMuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHJlY29yZHMgUmVjb3JkcyB0byBwcm9jZXNzXHJcbiAgICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiBwcm9jZXNzZWQgc3RvY2sgbG9jYXRpb24gcmVjb3Jkc1xyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHByb2Nlc3NTdG9ja0xvY2F0aW9ucyhyZWNvcmRzOiBFc29sdmVMb2NhdGlvblJlY29yZFtdKTogRXNvbHZlTG9jYXRpb25bXSB7XHJcbiAgICAgICAgY29uc3Qgc3RvY2tfbG9jYXRpb25zOiBFc29sdmVMb2NhdGlvbltdID0gW107XHJcblxyXG4gICAgICAgIGlmIChyZWNvcmRzKSB7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgcmVjb3JkIG9mIHJlY29yZHMpIHtcclxuICAgICAgICAgICAgICAgIHN0b2NrX2xvY2F0aW9ucy5wdXNoKG5ldyBFc29sdmVMb2NhdGlvbihyZWNvcmQpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHN0b2NrX2xvY2F0aW9ucztcclxuICAgIH1cclxufVxyXG4iXX0=","import { EsolveLocation } from '../../locations';\r\nexport class EsolveTransactionLocation extends EsolveLocation {\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXRyYW5zYWN0aW9uLWxvY2F0aW9uLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL2FjY291bnQvdHJhbnNhY3Rpb24vZXNvbHZlLXRyYW5zYWN0aW9uLWxvY2F0aW9uLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVqRCxNQUFNLE9BQU8seUJBQTBCLFNBQVEsY0FBYztDQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXNvbHZlTG9jYXRpb24gfSBmcm9tICcuLi8uLi9sb2NhdGlvbnMnO1xyXG5cclxuZXhwb3J0IGNsYXNzIEVzb2x2ZVRyYW5zYWN0aW9uTG9jYXRpb24gZXh0ZW5kcyBFc29sdmVMb2NhdGlvbiB7IH1cclxuIl19","export class EsolveTransactionPaymentMethod {\r\n constructor(id, name, description, integration_type, service_provider) {\r\n this.id = id;\r\n this.name = name;\r\n this.description = description;\r\n this.integration_type = integration_type;\r\n this.service_provider = service_provider;\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXRyYW5zYWN0aW9uLXBheW1lbnQtbWV0aG9kLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL2FjY291bnQvdHJhbnNhY3Rpb24vZXNvbHZlLXRyYW5zYWN0aW9uLXBheW1lbnQtbWV0aG9kLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyw4QkFBOEI7SUFDdkMsWUFDVyxFQUFVLEVBQ1YsSUFBWSxFQUNaLFdBQW1CLEVBQ25CLGdCQUF3QixFQUN4QixnQkFBd0I7UUFKeEIsT0FBRSxHQUFGLEVBQUUsQ0FBUTtRQUNWLFNBQUksR0FBSixJQUFJLENBQVE7UUFDWixnQkFBVyxHQUFYLFdBQVcsQ0FBUTtRQUNuQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQVE7UUFDeEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFRO0lBQy9CLENBQUM7Q0FDUiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBFc29sdmVUcmFuc2FjdGlvblBheW1lbnRNZXRob2Qge1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHVibGljIGlkOiBudW1iZXIsXHJcbiAgICAgICAgcHVibGljIG5hbWU6IHN0cmluZyxcclxuICAgICAgICBwdWJsaWMgZGVzY3JpcHRpb246IHN0cmluZyxcclxuICAgICAgICBwdWJsaWMgaW50ZWdyYXRpb25fdHlwZTogc3RyaW5nLFxyXG4gICAgICAgIHB1YmxpYyBzZXJ2aWNlX3Byb3ZpZGVyOiBzdHJpbmcsXHJcbiAgICApIHsgfVxyXG59XHJcbiJdfQ==","export class EsolveTransactionShippingMethod {\r\n constructor(id, name, delivery_category, location, description, pricing, client_to_collect) {\r\n this.id = id;\r\n this.name = name;\r\n this.delivery_category = delivery_category;\r\n this.location = location;\r\n this.description = description;\r\n this.pricing = pricing;\r\n this.client_to_collect = client_to_collect;\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXRyYW5zYWN0aW9uLXNoaXBwaW5nLW1ldGhvZC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9hY2NvdW50L3RyYW5zYWN0aW9uL2Vzb2x2ZS10cmFuc2FjdGlvbi1zaGlwcGluZy1tZXRob2QubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLCtCQUErQjtJQUN4QyxZQUNXLEVBQVUsRUFDVixJQUFZLEVBQ1osaUJBQXlCLEVBQ3pCLFFBQWdCLEVBQ2hCLFdBQW1CLEVBQ25CLE9BQWUsRUFDZixpQkFBMEI7UUFOMUIsT0FBRSxHQUFGLEVBQUUsQ0FBUTtRQUNWLFNBQUksR0FBSixJQUFJLENBQVE7UUFDWixzQkFBaUIsR0FBakIsaUJBQWlCLENBQVE7UUFDekIsYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUNoQixnQkFBVyxHQUFYLFdBQVcsQ0FBUTtRQUNuQixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ2Ysc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFTO0lBQ2pDLENBQUM7Q0FDUiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBFc29sdmVUcmFuc2FjdGlvblNoaXBwaW5nTWV0aG9kIHtcclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHB1YmxpYyBpZDogbnVtYmVyLFxyXG4gICAgICAgIHB1YmxpYyBuYW1lOiBzdHJpbmcsXHJcbiAgICAgICAgcHVibGljIGRlbGl2ZXJ5X2NhdGVnb3J5OiBzdHJpbmcsXHJcbiAgICAgICAgcHVibGljIGxvY2F0aW9uOiBzdHJpbmcsXHJcbiAgICAgICAgcHVibGljIGRlc2NyaXB0aW9uOiBzdHJpbmcsXHJcbiAgICAgICAgcHVibGljIHByaWNpbmc6IHN0cmluZyxcclxuICAgICAgICBwdWJsaWMgY2xpZW50X3RvX2NvbGxlY3Q6IGJvb2xlYW4sXHJcbiAgICApIHsgfVxyXG59XHJcbiJdfQ==","export class EsolveTransactionUser {\r\n constructor(id, email, first_name, last_name, tel_number, cell_number) {\r\n this.id = id;\r\n this.email = email;\r\n this.first_name = first_name;\r\n this.last_name = last_name;\r\n this.tel_number = tel_number;\r\n this.cell_number = cell_number;\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXRyYW5zYWN0aW9uLXVzZXIubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvYWNjb3VudC90cmFuc2FjdGlvbi9lc29sdmUtdHJhbnNhY3Rpb24tdXNlci5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8scUJBQXFCO0lBQzlCLFlBQ1csRUFBVSxFQUNWLEtBQWEsRUFDYixVQUFrQixFQUNsQixTQUFpQixFQUNqQixVQUFrQixFQUNsQixXQUFtQjtRQUxuQixPQUFFLEdBQUYsRUFBRSxDQUFRO1FBQ1YsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUNiLGVBQVUsR0FBVixVQUFVLENBQVE7UUFDbEIsY0FBUyxHQUFULFNBQVMsQ0FBUTtRQUNqQixlQUFVLEdBQVYsVUFBVSxDQUFRO1FBQ2xCLGdCQUFXLEdBQVgsV0FBVyxDQUFRO0lBQzFCLENBQUM7Q0FDUiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBFc29sdmVUcmFuc2FjdGlvblVzZXIge1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHVibGljIGlkOiBudW1iZXIsXHJcbiAgICAgICAgcHVibGljIGVtYWlsOiBzdHJpbmcsXHJcbiAgICAgICAgcHVibGljIGZpcnN0X25hbWU6IHN0cmluZyxcclxuICAgICAgICBwdWJsaWMgbGFzdF9uYW1lOiBzdHJpbmcsXHJcbiAgICAgICAgcHVibGljIHRlbF9udW1iZXI6IHN0cmluZyxcclxuICAgICAgICBwdWJsaWMgY2VsbF9udW1iZXI6IHN0cmluZyxcclxuICAgICkgeyB9XHJcbn1cclxuIl19","import { EsolveTransactionAddress } from './esolve-transaction-address.model';\r\nimport { EsolveTransactionClient } from './esolve-transaction-client.model';\r\nimport { EsolveTransactionItem } from './esolve-transaction-item.model';\r\nimport { EsolveTransactionItemPrice } from './esolve-transaction-item-price.model';\r\nimport { EsolveTransactionLocation } from './esolve-transaction-location.model';\r\nimport { EsolveTransactionPaymentMethod } from './esolve-transaction-payment-method.model';\r\nimport { EsolveTransactionShippingMethod } from './esolve-transaction-shipping-method.model';\r\nimport { EsolveTransactionUser } from './esolve-transaction-user.model';\r\nexport class EsolveTransaction {\r\n constructor(record) {\r\n // Transaction Items\r\n this.items = [];\r\n this.id = +record.id;\r\n this.type = record.transaction_type;\r\n this.status = record.status;\r\n this.loyalty_number = record.loyaltynumber;\r\n this.external_order_number = record.external_order_number;\r\n this.external_invoice_number = record.external_invoice_number;\r\n this.date = new Date(+record.txdate_timestamp * 1000);\r\n this.expected_date = new Date(+record.expected_date_timestamp * 1000);\r\n this.invoice_amount = +record.invoice_amount;\r\n this.vat = +record.vat;\r\n this.discount = +record.discount;\r\n this.total = +record.total;\r\n this.shipping_total = +record.shipping_total;\r\n this.insurance_total = +record.insurance_total;\r\n this.payment = +record.payment;\r\n this.payment_reference = record.payment_reference;\r\n this.payment_description = record.payment_description;\r\n this.gateway_transaction_id = record.gateway_transaction_id;\r\n this.address = new EsolveTransactionAddress(record.recipient, record.address_type, record.address_description, record.street_number, record.street, record.suburb, record.city, record.province, record.country, record.postal_code, record.pobox);\r\n if (record.user) {\r\n this.user = new EsolveTransactionUser(+record.user.id, record.user.email, record.user.firstname, record.user.surname, record.user.telnumber, record.user.cellnumber);\r\n }\r\n if (record.client) {\r\n this.client = new EsolveTransactionClient(+record.client.id, record.client.account, record.client.company_name, record.client.branch_code, record.client.email, record.client.firstname, record.client.surname, record.client.contact_number);\r\n }\r\n if (record.location_details) {\r\n this.location = new EsolveTransactionLocation(record.location_details);\r\n }\r\n if (record.payment_method_details) {\r\n this.payment_method = new EsolveTransactionPaymentMethod(record.payment_method_details.id, record.payment_method_details.paymethod_name, record.payment_method_details.description, record.payment_method_details.integration_type, record.payment_method_details.service_provider);\r\n }\r\n if (record.shipping_method_details) {\r\n this.shipping_method = new EsolveTransactionShippingMethod(+record.shipping_method_details.id, record.shipping_method_details.carrier_name, record.shipping_method_details.delivery_category, record.shipping_method_details.location, record.shipping_method_details.description, record.shipping_method_details.pricing, !!record.shipping_method_details.client_to_collect);\r\n }\r\n this.parseTransactionItems(record.transaction_items);\r\n }\r\n parseTransactionItems(record_items) {\r\n for (const record_item of record_items) {\r\n const price = new EsolveTransactionItemPrice(+record_item.price_exclusive, +record_item.price_inclusive, +record_item.price_exclusive_after_discount, +record_item.price_inclusive_after_discount);\r\n const line_total = new EsolveTransactionItemPrice(+record_item.line_total_exclusive, +record_item.line_total_inclusive, +record_item.line_total_exclusive_after_discount, +record_item.line_total_inclusive_after_discount);\r\n const item = new EsolveTransactionItem(record_item.code, record_item.name, +record_item.qty, +record_item.discount, +record_item.vat_rate, price, line_total);\r\n this.items.push(item);\r\n }\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXRyYW5zYWN0aW9uLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL2FjY291bnQvdHJhbnNhY3Rpb24vZXNvbHZlLXRyYW5zYWN0aW9uLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRW5GLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBRTNGLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBRTdGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRXhFLE1BQU0sT0FBTyxpQkFBaUI7SUEwQzFCLFlBQVksTUFBK0I7UUFIM0Msb0JBQW9CO1FBQ2IsVUFBSyxHQUE0QixFQUFFLENBQUM7UUFHdkMsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUM7UUFDcEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO1FBQzVCLElBQUksQ0FBQyxjQUFjLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQztRQUMzQyxJQUFJLENBQUMscUJBQXFCLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDO1FBQzFELElBQUksQ0FBQyx1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QUMsbUNBQW1DLENBQ25ELENBQUM7WUFFRixNQUFNLElBQUksR0FBRyxJQUFJLHFCQUFxQixDQUNsQyxXQUFXLENBQUMsSUFBSSxFQUNoQixXQUFXLENBQUMsSUFBSSxFQUNoQixDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQ2hCLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFDckIsQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUNyQixLQUFLLEVBQ0wsVUFBVSxDQUNiLENBQUM7WUFFRixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN6QjtJQUNMLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVzb2x2ZVRyYW5zYWN0aW9uQWRkcmVzcyB9IGZyb20gJy4vZXNvbHZlLXRyYW5zYWN0aW9uLWFkZHJlc3MubW9kZWwnO1xyXG5pbXBvcnQgeyBFc29sdmVUcmFuc2FjdGlvbkNsaWVudCB9IGZyb20gJy4vZXNvbHZlLXRyYW5zYWN0aW9uLWNsaWVudC5tb2RlbCc7XHJcbmltcG9ydCB7IEVzb2x2ZVRyYW5zYWN0aW9uSXRlbSB9IGZyb20gJy4vZXNvbHZlLXRyYW5zYWN0aW9uLWl0ZW0ubW9kZWwnO1xyXG5pbXBvcnQgeyBFc29sdmVUcmFuc2FjdGlvbkl0ZW1QcmljZSB9IGZyb20gJy4vZXNvbHZlLXRyYW5zYWN0aW9uLWl0ZW0tcHJpY2UubW9kZWwnO1xyXG5pbXBvcnQgeyBFc29sdmVUcmFuc2FjdGlvbkl0ZW1SZWNvcmQgfSBmcm9tICcuL2Vzb2x2ZS10cmFuc2FjdGlvbi1pdGVtLXJlY29yZC5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBFc29sdmVUcmFuc2FjdGlvbkxvY2F0aW9uIH0gZnJvbSAnLi9lc29sdmUtdHJhbnNhY3Rpb24tbG9jYXRpb24ubW9kZWwnO1xyXG5pbXBvcnQgeyBFc29sdmVUcmFuc2FjdGlvblBheW1lbnRNZXRob2QgfSBmcm9tICcuL2Vzb2x2ZS10cmFuc2FjdGlvbi1wYXltZW50LW1ldGhvZC5tb2RlbCc7XHJcbmltcG9ydCB7IEVzb2x2ZVRyYW5zYWN0aW9uUmVjb3JkIH0gZnJvbSAnLi9lc29sdmUtdHJhbnNhY3Rpb24tcmVjb3JkLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IEVzb2x2ZVRyYW5zYWN0aW9uU2hpcHBpbmdNZXRob2QgfSBmcm9tICcuL2Vzb2x2ZS10cmFuc2FjdGlvbi1zaGlwcGluZy1tZXRob2QubW9kZWwnO1xyXG5pbXBvcnQgeyBFc29sdmVUcmFuc2FjdGlvblR5cGUgfSBmcm9tICcuL2Vzb2x2ZS10cmFuc2FjdGlvbi10eXBlLnR5cGUnO1xyXG5pbXBvcnQgeyBFc29sdmVUcmFuc2FjdGlvblVzZXIgfSBmcm9tICcuL2Vzb2x2ZS10cmFuc2FjdGlvbi11c2VyLm1vZGVsJztcclxuXHJcbmV4cG9ydCBjbGFzcyBFc29sdmVUcmFuc2FjdGlvbiB7XHJcbiAgICBwdWJsaWMgaWQ6IG51bWJlcjtcclxuICAgIHB1YmxpYyB0eXBlOiBFc29sdmVUcmFuc2FjdGlvblR5cGU7XHJcbiAgICBwdWJsaWMgc3RhdHVzOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgbG95YWx0eV9udW1iZXI6IHN0cmluZztcclxuICAgIHB1YmxpYyBleHRlcm5hbF9vcmRlcl9udW1iZXI6IHN0cmluZztcclxuICAgIHB1YmxpYyBleHRlcm5hbF9pbnZvaWNlX251bWJlcjogc3RyaW5nO1xyXG5cclxuICAgIC8vIERhdGVzXHJcbiAgICBwdWJsaWMgZGF0ZTogRGF0ZTtcclxuICAgIHB1YmxpYyBleHBlY3RlZF9kYXRlOiBEYXRlO1xyXG5cclxuICAgIHB1YmxpYyBjbGllbnQ/OiBFc29sdmVUcmFuc2FjdGlvbkNsaWVudDtcclxuICAgIHB1YmxpYyB1c2VyPzogRXNvbHZlVHJhbnNhY3Rpb25Vc2VyO1xyXG5cclxuICAgIC8vIExvY2F0aW9uXHJcbiAgICBwdWJsaWMgbG9jYXRpb24/OiBFc29sdmVUcmFuc2FjdGlvbkxvY2F0aW9uO1xyXG5cclxuICAgIC8vIFRvdGFsc1xyXG4gICAgcHVibGljIGludm9pY2VfYW1vdW50OiBudW1iZXI7XHJcbiAgICBwdWJsaWMgdmF0OiBudW1iZXI7XHJcbiAgICBwdWJsaWMgZGlzY291bnQ6IG51bWJlcjtcclxuICAgIHB1YmxpYyB0b3RhbDogbnVtYmVyO1xyXG4gICAgcHVibGljIHNoaXBwaW5nX3RvdGFsOiBudW1iZXI7XHJcbiAgICBwdWJsaWMgaW5zdXJhbmNlX3RvdGFsOiBudW1iZXI7XHJcblxyXG4gICAgLy8gUGF5bWVudFxyXG4gICAgcHVibGljIHBheW1lbnRfbWV0aG9kPzogRXNvbHZlVHJhbnNhY3Rpb25QYXltZW50TWV0aG9kO1xyXG4gICAgcHVibGljIHBheW1lbnQ6IG51bWJlcjtcclxuICAgIHB1YmxpYyBnYXRld2F5X3RyYW5zYWN0aW9uX2lkOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgcGF5bWVudF9yZWZlcmVuY2U6IHN0cmluZztcclxuICAgIHB1YmxpYyBwYXltZW50X2Rlc2NyaXB0aW9uOiBzdHJpbmc7XHJcblxyXG4gICAgLy8gU2hpcHBpbmdcclxuICAgIHB1YmxpYyBzaGlwcGluZ19tZXRob2Q/OiBFc29sdmVUcmFuc2FjdGlvblNoaXBwaW5nTWV0aG9kO1xyXG5cclxuICAgIC8vIEFkZHJlc3MgRGV0YWlsc1xyXG4gICAgcHVibGljIGFkZHJlc3M6IEVzb2x2ZVRyYW5zYWN0aW9uQWRkcmVzcztcclxuXHJcbiAgICAvLyBUcmFuc2FjdGlvbiBJdGVtc1xyXG4gICAgcHVibGljIGl0ZW1zOiBFc29sdmVUcmFuc2FjdGlvbkl0ZW1bXSA9IFtdO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHJlY29yZDogRXNvbHZlVHJhbnNhY3Rpb25SZWNvcmQpIHtcclxuICAgICAgICB0aGlzLmlkID0gK3JlY29yZC5pZDtcclxuICAgICAgICB0aGlzLnR5cGUgPSByZWNvcmQudHJhbnNhY3Rpb25fdHlwZTtcclxuICAgICAgICB0aGlzLnN0YXR1cyA9IHJlY29yZC5zdGF0dXM7XHJcbiAgICAgICAgdGhpcy5sb3lhbHR5X251bWJlciA9IHJlY29yZC5sb3lhbHR5bnVtYmVyO1xyXG4gICAgICAgIHRoaXMuZXh0ZXJuYWxfb3JkZXJfbnVtYmVyID0gcmVjb3JkLmV4dGVybmFsX29yZGVyX251bWJlcjtcclxuICAgICAgICB0aGlzLmV4dGVybmFsX2ludm9pY2VfbnVtYmVyID0gcmVjb3JkLmV4dGVybmFsX2ludm9pY2VfbnVtYmVyO1xyXG5cclxuICAgICAgICB0aGlzLmRhdGUgPSBuZXcgRGF0ZSgrcmVjb3JkLnR4ZGF0ZV90aW1lc3RhbXAgKiAxMDAwKTtcclxuICAgICAgICB0aGlzLmV4cGVjdGVkX2RhdGUgPSBuZXcgRGF0ZSgrcmVjb3JkLmV4cGVjdGVkX2RhdGVfdGltZXN0YW1wICogMTAwMCk7XHJcblxyXG4gICAgICAgIHRoaXMuaW52b2ljZV9hbW91bnQgPSArcmVjb3JkLmludm9pY2VfYW1vdW50O1xyXG4gICAgICAgIHRoaXMudmF0ID0gK3JlY29yZC52YXQ7XHJcbiAgICAgICAgdGhpcy5kaXNjb3VudCA9ICtyZWNvcmQuZGlzY291bnQ7XHJcbiAgICAgICAgdGhpcy50b3RhbCA9ICtyZWNvcmQudG90YWw7XHJcbiAgICAgICAgdGhpcy5zaGlwcGluZ190b3RhbCA9ICtyZWNvcmQuc2hpcHBpbmdfdG90YWw7XHJcbiAgICAgICAgdGhpcy5pbnN1cmFuY2VfdG90YWwgPSArcmVjb3JkLmluc3VyYW5jZV90b3RhbDtcclxuXHJcbiAgICAgICAgdGhpcy5wYXltZW50ID0gK3JlY29yZC5wYXltZW50O1xyXG4gICAgICAgIHRoaXMucGF5bWVudF9yZWZlcmVuY2UgPSByZWNvcmQucGF5bWVudF9yZWZlcmVuY2U7XHJcbiAgICAgICAgdGhpcy5wYXltZW50X2Rlc2NyaXB0aW9uID0gcmVjb3JkLnBheW1lbnRfZGVzY3JpcHRpb247XHJcbiAgICAgICAgdGhpcy5nYXRld2F5X3RyYW5zYWN0aW9uX2lkID0gcmVjb3JkLmdhdGV3YXlfdHJhbnNhY3Rpb25faWQ7XHJcblxyXG4gICAgICAgIHRoaXMuYWRkcmVzcyA9IG5ldyBFc29sdmVUcmFuc2FjdGlvbkFkZHJlc3MoXHJcbiAgICAgICAgICAgIHJlY29yZC5yZWNpcGllbnQsXHJcbiAgICAgICAgICAgIHJlY29yZC5hZGRyZXNzX3R5cGUsXHJcbiAgICAgICAgICAgIHJlY29yZC5hZGRyZXNzX2Rlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgICByZWNvcmQuc3RyZWV0X251bWJlcixcclxuICAgICAgICAgICAgcmVjb3JkLnN0cmVldCxcclxuICAgICAgICAgICAgcmVjb3JkLnN1YnVyYixcclxuICAgICAgICAgICAgcmVjb3JkLmNpdHksXHJcbiAgICAgICAgICAgIHJlY29yZC5wcm92aW5jZSxcclxuICAgICAgICAgICAgcmVjb3JkLmNvdW50cnksXHJcbiAgICAgICAgICAgIHJlY29yZC5wb3N0YWxfY29kZSxcclxuICAgICAgICAgICAgcmVjb3JkLnBvYm94LFxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIGlmIChyZWNvcmQudXNlcikge1xyXG4gICAgICAgICAgICB0aGlzLnVzZXIgPSBuZXcgRXNvbHZlVHJhbnNhY3Rpb25Vc2VyKFxyXG4gICAgICAgICAgICAgICAgK3JlY29yZC51c2VyLmlkLFxyXG4gICAgICAgICAgICAgICAgcmVjb3JkLnVzZXIuZW1haWwsXHJcbiAgICAgICAgICAgICAgICByZWNvcmQudXNlci5maXJzdG5hbWUsXHJcbiAgICAgICAgICAgICAgICByZWNvcmQudXNlci5zdXJuYW1lLFxyXG4gICAgICAgICAgICAgICAgcmVjb3JkLnVzZXIudGVsbnVtYmVyLFxyXG4gICAgICAgICAgICAgICAgcmVjb3JkLnVzZXIuY2VsbG51bWJlcixcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChyZWNvcmQuY2xpZW50KSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2xpZW50ID0gbmV3IEVzb2x2ZVRyYW5zYWN0aW9uQ2xpZW50KFxyXG4gICAgICAgICAgICAgICAgK3JlY29yZC5jbGllbnQuaWQsXHJcbiAgICAgICAgICAgICAgICByZWNvcmQuY2xpZW50LmFjY291bnQsXHJcbiAgICAgICAgICAgICAgICByZWNvcmQuY2xpZW50LmNvbXBhbnlfbmFtZSxcclxuICAgICAgICAgICAgICAgIHJlY29yZC5jbGllbnQuYnJhbmNoX2NvZGUsXHJcbiAgICAgICAgICAgICAgICByZWNvcmQuY2xpZW50LmVtYWlsLFxyXG4gICAgICAgICAgICAgICAgcmVjb3JkLmNsaWVudC5maXJzdG5hbWUsXHJcbiAgICAgICAgICAgICAgICByZWNvcmQuY2xpZW50LnN1cm5hbWUsXHJcbiAgICAgICAgICAgICAgICByZWNvcmQuY2xpZW50LmNvbnRhY3RfbnVtYmVyLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHJlY29yZC5sb2NhdGlvbl9kZXRhaWxzKSB7XHJcbiAgICAgICAgICAgIHRoaXMubG9jYXRpb24gPSBuZXcgRXNvbHZlVHJhbnNhY3Rpb25Mb2NhdGlvbihyZWNvcmQubG9jYXRpb25fZGV0YWlscyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAocmVjb3JkLnBheW1lbnRfbWV0aG9kX2RldGFpbHMpIHtcclxuICAgICAgICAgICAgdGhpcy5wYXltZW50X21ldGhvZCA9IG5ldyBFc29sdmVUcmFuc2FjdGlvblBheW1lbnRNZXRob2QoXHJcbiAgICAgICAgICAgICAgICByZWNvcmQucGF5bWVudF9tZXRob2RfZGV0YWlscy5pZCxcclxuICAgICAgICAgICAgICAgIHJlY29yZC5wYXltZW50X21ldGhvZF9kZXRhaWxzLnBheW1ldGhvZF9uYW1lLFxyXG4gICAgICAgICAgICAgICAgcmVjb3JkLnBheW1lbnRfbWV0aG9kX2RldGFpbHMuZGVzY3JpcHRpb24sXHJcbiAgICAgICAgICAgICAgICByZWNvcmQucGF5bWVudF9tZXRob2RfZGV0YWlscy5pbnRlZ3JhdGlvbl90eXBlLFxyXG4gICAgICAgICAgICAgICAgcmVjb3JkLnBheW1lbnRfbWV0aG9kX2RldGFpbHMuc2VydmljZV9wcm92aWRlcixcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChyZWNvcmQuc2hpcHBpbmdfbWV0aG9kX2RldGFpbHMpIHtcclxuICAgICAgICAgICAgdGhpcy5zaGlwcGluZ19tZXRob2QgPSBuZXcgRXNvbHZlVHJhbnNhY3Rpb25TaGlwcGluZ01ldGhvZChcclxuICAgICAgICAgICAgICAgICtyZWNvcmQuc2hpcHBpbmdfbWV0aG9kX2RldGFpbHMuaWQsXHJcbiAgICAgICAgICAgICAgICByZWNvcmQuc2hpcHBpbmdfbWV0aG9kX2RldGFpbHMuY2Fycmllcl9uYW1lLFxyXG4gICAgICAgICAgICAgICAgcmVjb3JkLnNoaXBwaW5nX21ldGhvZF9kZXRhaWxzLmRlbGl2ZXJ5X2NhdGVnb3J5LFxyXG4gICAgICAgICAgICAgICAgcmVjb3JkLnNoaXBwaW5nX21ldGhvZF9kZXRhaWxzLmxvY2F0aW9uLFxyXG4gICAgICAgICAgICAgICAgcmVjb3JkLnNoaXBwaW5nX21ldGhvZF9kZXRhaWxzLmRlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgICAgICAgcmVjb3JkLnNoaXBwaW5nX21ldGhvZF9kZXRhaWxzLnByaWNpbmcsXHJcbiAgICAgICAgICAgICAgICAhIXJlY29yZC5zaGlwcGluZ19tZXRob2RfZGV0YWlscy5jbGllbnRfdG9fY29sbGVjdCxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMucGFyc2VUcmFuc2FjdGlvbkl0ZW1zKHJlY29yZC50cmFuc2FjdGlvbl9pdGVtcyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBwYXJzZVRyYW5zYWN0aW9uSXRlbXMocmVjb3JkX2l0ZW1zOiBFc29sdmVUcmFuc2FjdGlvbkl0ZW1SZWNvcmRbXSk6IHZvaWQge1xyXG4gICAgICAgIGZvciAoY29uc3QgcmVjb3JkX2l0ZW0gb2YgcmVjb3JkX2l0ZW1zKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHByaWNlID0gbmV3IEVzb2x2ZVRyYW5zYWN0aW9uSXRlbVByaWNlKFxyXG4gICAgICAgICAgICAgICAgK3JlY29yZF9pdGVtLnByaWNlX2V4Y2x1c2l2ZSxcclxuICAgICAgICAgICAgICAgICtyZWNvcmRfaXRlbS5wcmljZV9pbmNsdXNpdmUsXHJcbiAgICAgICAgICAgICAgICArcmVjb3JkX2l0ZW0ucHJpY2VfZXhjbHVzaXZlX2FmdGVyX2Rpc2NvdW50LFxyXG4gICAgICAgICAgICAgICAgK3JlY29yZF9pdGVtLnByaWNlX2luY2x1c2l2ZV9hZnRlcl9kaXNjb3VudCxcclxuICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IGxpbmVfdG90YWwgPSBuZXcgRXNvbHZlVHJhbnNhY3Rpb25JdGVtUHJpY2UoXHJcbiAgICAgICAgICAgICAgICArcmVjb3JkX2l0ZW0ubGluZV90b3RhbF9leGNsdXNpdmUsXHJcbiAgICAgICAgICAgICAgICArcmVjb3JkX2l0ZW0ubGluZV90b3RhbF9pbmNsdXNpdmUsXHJcbiAgICAgICAgICAgICAgICArcmVjb3JkX2l0ZW0ubGluZV90b3RhbF9leGNsdXNpdmVfYWZ0ZXJfZGlzY291bnQsXHJcbiAgICAgICAgICAgICAgICArcmVjb3JkX2l0ZW0ubGluZV90b3RhbF9pbmNsdXNpdmVfYWZ0ZXJfZGlzY291bnQsXHJcbiAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgICBjb25zdCBpdGVtID0gbmV3IEVzb2x2ZVRyYW5zYWN0aW9uSXRlbShcclxuICAgICAgICAgICAgICAgIHJlY29yZF9pdGVtLmNvZGUsXHJcbiAgICAgICAgICAgICAgICByZWNvcmRfaXRlbS5uYW1lLFxyXG4gICAgICAgICAgICAgICAgK3JlY29yZF9pdGVtLnF0eSxcclxuICAgICAgICAgICAgICAgICtyZWNvcmRfaXRlbS5kaXNjb3VudCxcclxuICAgICAgICAgICAgICAgICtyZWNvcmRfaXRlbS52YXRfcmF0ZSxcclxuICAgICAgICAgICAgICAgIHByaWNlLFxyXG4gICAgICAgICAgICAgICAgbGluZV90b3RhbCxcclxuICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuaXRlbXMucHVzaChpdGVtKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19","import { EsolveList } from '../../shared/esolve-list.model';\r\nexport class EsolveTransactionList extends EsolveList {\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXRyYW5zYWN0aW9uLWxpc3QubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvYWNjb3VudC90cmFuc2FjdGlvbi9lc29sdmUtdHJhbnNhY3Rpb24tbGlzdC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFHNUQsTUFBTSxPQUFPLHFCQUFzQixTQUFRLFVBQTZCO0NBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFc29sdmVMaXN0IH0gZnJvbSAnLi4vLi4vc2hhcmVkL2Vzb2x2ZS1saXN0Lm1vZGVsJztcclxuaW1wb3J0IHsgRXNvbHZlVHJhbnNhY3Rpb24gfSBmcm9tICcuL2Vzb2x2ZS10cmFuc2FjdGlvbi5tb2RlbCc7XHJcblxyXG5leHBvcnQgY2xhc3MgRXNvbHZlVHJhbnNhY3Rpb25MaXN0IGV4dGVuZHMgRXNvbHZlTGlzdDxFc29sdmVUcmFuc2FjdGlvbj4geyB9XHJcbiJdfQ==","// Classes\r\nexport * from './esolve-transaction.model';\r\nexport * from './esolve-transaction-address.model';\r\nexport * from './esolve-transaction-client.model';\r\nexport * from './esolve-transaction-item.model';\r\nexport * from './esolve-transaction-list.model';\r\nexport * from './esolve-transaction-item-price.model';\r\nexport * from './esolve-transaction-location.model';\r\nexport * from './esolve-transaction-options.interface';\r\nexport * from './esolve-transaction-payment-method.model';\r\nexport * from './esolve-transaction-shipping-method.model';\r\nexport * from './esolve-transaction-user.model';\r\n// Interfaces\r\nexport * from './esolve-transaction-record.interface';\r\nexport * from './esolve-transaction-client-record.interface';\r\nexport * from './esolve-transaction-item-record.interface';\r\nexport * from './esolve-transaction-location-record.interface';\r\nexport * from './esolve-transaction-payment-method-record.interface';\r\nexport * from './esolve-transaction-shipping-method-record.interface';\r\nexport * from './esolve-transaction-user-record.interface';\r\n// Types\r\nexport * from './esolve-transaction-type.type';\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvYWNjb3VudC90cmFuc2FjdGlvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxVQUFVO0FBQ1YsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGFBQWE7QUFDYixjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsc0RBQXNELENBQUM7QUFDckUsY0FBYyx1REFBdUQsQ0FBQztBQUN0RSxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELFFBQVE7QUFDUixjQUFjLGdDQUFnQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ2xhc3Nlc1xyXG5leHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS10cmFuc2FjdGlvbi5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZXNvbHZlLXRyYW5zYWN0aW9uLWFkZHJlc3MubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS10cmFuc2FjdGlvbi1jbGllbnQubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS10cmFuc2FjdGlvbi1pdGVtLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9lc29sdmUtdHJhbnNhY3Rpb24tbGlzdC5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZXNvbHZlLXRyYW5zYWN0aW9uLWl0ZW0tcHJpY2UubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS10cmFuc2FjdGlvbi1sb2NhdGlvbi5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZXNvbHZlLXRyYW5zYWN0aW9uLW9wdGlvbnMuaW50ZXJmYWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9lc29sdmUtdHJhbnNhY3Rpb24tcGF5bWVudC1tZXRob2QubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS10cmFuc2FjdGlvbi1zaGlwcGluZy1tZXRob2QubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS10cmFuc2FjdGlvbi11c2VyLm1vZGVsJztcclxuLy8gSW50ZXJmYWNlc1xyXG5leHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS10cmFuc2FjdGlvbi1yZWNvcmQuaW50ZXJmYWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9lc29sdmUtdHJhbnNhY3Rpb24tY2xpZW50LXJlY29yZC5pbnRlcmZhY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS10cmFuc2FjdGlvbi1pdGVtLXJlY29yZC5pbnRlcmZhY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS10cmFuc2FjdGlvbi1sb2NhdGlvbi1yZWNvcmQuaW50ZXJmYWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9lc29sdmUtdHJhbnNhY3Rpb24tcGF5bWVudC1tZXRob2QtcmVjb3JkLmludGVyZmFjZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZXNvbHZlLXRyYW5zYWN0aW9uLXNoaXBwaW5nLW1ldGhvZC1yZWNvcmQuaW50ZXJmYWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9lc29sdmUtdHJhbnNhY3Rpb24tdXNlci1yZWNvcmQuaW50ZXJmYWNlJztcclxuLy8gVHlwZXNcclxuZXhwb3J0ICogZnJvbSAnLi9lc29sdmUtdHJhbnNhY3Rpb24tdHlwZS50eXBlJztcclxuIl19","import { EsolveResponseResult, } from '../../shared/response';\r\nexport class EsolveChangePasswordResult extends EsolveResponseResult {\r\n constructor(response) {\r\n super(response);\r\n this.password_updated = (response.status.state === 'success');\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWNoYW5nZS1wYXNzd29yZC1yZXN1bHQubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvYWNjb3VudC9wYXNzd29yZC9lc29sdmUtY2hhbmdlLXBhc3N3b3JkLXJlc3VsdC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsb0JBQW9CLEdBQ3ZCLE1BQU0sdUJBQXVCLENBQUM7QUFFL0IsTUFBTSxPQUFPLDBCQUEyQixTQUFRLG9CQUFvQjtJQUdoRSxZQUNJLFFBQWdDO1FBRWhDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUVoQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssS0FBSyxTQUFTLENBQUMsQ0FBQztJQUNsRSxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgRXNvbHZlUG9zdFJlc3BvbnNlSXRlbSxcclxuICAgIEVzb2x2ZVJlc3BvbnNlUmVzdWx0LFxyXG59IGZyb20gJy4uLy4uL3NoYXJlZC9yZXNwb25zZSc7XHJcblxyXG5leHBvcnQgY2xhc3MgRXNvbHZlQ2hhbmdlUGFzc3dvcmRSZXN1bHQgZXh0ZW5kcyBFc29sdmVSZXNwb25zZVJlc3VsdCB7XHJcbiAgICBwdWJsaWMgcGFzc3dvcmRfdXBkYXRlZDogYm9vbGVhbjtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICByZXNwb25zZTogRXNvbHZlUG9zdFJlc3BvbnNlSXRlbSxcclxuICAgICkge1xyXG4gICAgICAgIHN1cGVyKHJlc3BvbnNlKTtcclxuXHJcbiAgICAgICAgdGhpcy5wYXNzd29yZF91cGRhdGVkID0gKHJlc3BvbnNlLnN0YXR1cy5zdGF0ZSA9PT0gJ3N1Y2Nlc3MnKTtcclxuICAgIH1cclxufVxyXG4iXX0=","import { EsolveResponseResult } from '../../shared/response';\r\nexport class EsolveResetPasswordResult extends EsolveResponseResult {\r\n constructor(response) {\r\n super(response);\r\n this.id = response.esolve_id;\r\n this.reset_success = response.reset_success;\r\n this.password_matches_old = response.password_matches_old;\r\n this.login_required = response.login_required;\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXJlc2V0LXBhc3N3b3JkLXJlc3VsdC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9hY2NvdW50L3Bhc3N3b3JkL2Vzb2x2ZS1yZXNldC1wYXNzd29yZC1yZXN1bHQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHN0QsTUFBTSxPQUFPLHlCQUEwQixTQUFRLG9CQUFvQjtJQU0vRCxZQUNJLFFBQXNDO1FBRXRDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUVoQixJQUFJLENBQUMsRUFBRSxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUM7UUFDN0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDO1FBQzVDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxRQUFRLENBQUMsb0JBQW9CLENBQUM7UUFDMUQsSUFBSSxDQUFDLGNBQWMsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDO0lBQ2xELENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVzb2x2ZVJlc3BvbnNlUmVzdWx0IH0gZnJvbSAnLi4vLi4vc2hhcmVkL3Jlc3BvbnNlJztcclxuaW1wb3J0IHsgRXNvbHZlRm9yZ290UGFzc3dvcmRSZXNwb25zZSB9IGZyb20gJy4vZXNvbHZlLWZvcmdvdC1wYXNzd29yZC1yZXNwb25zZS5pbnRlcmZhY2UnO1xyXG5cclxuZXhwb3J0IGNsYXNzIEVzb2x2ZVJlc2V0UGFzc3dvcmRSZXN1bHQgZXh0ZW5kcyBFc29sdmVSZXNwb25zZVJlc3VsdCB7XHJcbiAgICBwdWJsaWMgaWQ6IG51bWJlcjtcclxuICAgIHB1YmxpYyByZXNldF9zdWNjZXNzOiBib29sZWFuO1xyXG4gICAgcHVibGljIHBhc3N3b3JkX21hdGNoZXNfb2xkOiBib29sZWFuO1xyXG4gICAgcHVibGljIGxvZ2luX3JlcXVpcmVkOiBib29sZWFuO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHJlc3BvbnNlOiBFc29sdmVGb3Jnb3RQYXNzd29yZFJlc3BvbnNlLFxyXG4gICAgKSB7XHJcbiAgICAgICAgc3VwZXIocmVzcG9uc2UpO1xyXG5cclxuICAgICAgICB0aGlzLmlkID0gcmVzcG9uc2UuZXNvbHZlX2lkO1xyXG4gICAgICAgIHRoaXMucmVzZXRfc3VjY2VzcyA9IHJlc3BvbnNlLnJlc2V0X3N1Y2Nlc3M7XHJcbiAgICAgICAgdGhpcy5wYXNzd29yZF9tYXRjaGVzX29sZCA9IHJlc3BvbnNlLnBhc3N3b3JkX21hdGNoZXNfb2xkO1xyXG4gICAgICAgIHRoaXMubG9naW5fcmVxdWlyZWQgPSByZXNwb25zZS5sb2dpbl9yZXF1aXJlZDtcclxuICAgIH1cclxufVxyXG4iXX0=","import { EsolveResponseResult } from '../../shared/response';\r\nexport class EsolveRegistrationResult extends EsolveResponseResult {\r\n constructor(response) {\r\n super(response);\r\n this.user_id = response.esolve_id;\r\n this.guest = response.guest;\r\n this.auto_login = response.auto_login;\r\n this.authentication_required = response.authentication_required;\r\n this.location_id = response.session_data.location_id;\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXJlZ2lzdHJhdGlvbi1yZXN1bHQubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvYWNjb3VudC9yZWdpc3RyYXRpb24vZXNvbHZlLXJlZ2lzdHJhdGlvbi1yZXN1bHQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHN0QsTUFBTSxPQUFPLHdCQUF5QixTQUFRLG9CQUFvQjtJQU85RCxZQUNJLFFBQTRDO1FBRTVDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUVoQixJQUFJLENBQUMsT0FBTyxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUM7UUFDbEMsSUFBSSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDO1FBQzVCLElBQUksQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQztRQUN0QyxJQUFJLENBQUMsdUJBQXVCLEdBQUcsUUFBUSxDQUFDLHVCQUF1QixDQUFDO1FBQ2hFLElBQUksQ0FBQyxXQUFXLEdBQUcsUUFBUSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUM7SUFDekQsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXNvbHZlUmVzcG9uc2VSZXN1bHQgfSBmcm9tICcuLi8uLi9zaGFyZWQvcmVzcG9uc2UnO1xyXG5pbXBvcnQgeyBFc29sdmVSZWdpc3RyYXRpb25Qb3N0UmVzcG9uc2VJdGVtIH0gZnJvbSAnLi9lc29sdmUtcmVnaXN0cmF0aW9uLXBvc3QtcmVzcG9uc2UtaXRlbS5pbnRlcmZhY2UnO1xyXG5cclxuZXhwb3J0IGNsYXNzIEVzb2x2ZVJlZ2lzdHJhdGlvblJlc3VsdCBleHRlbmRzIEVzb2x2ZVJlc3BvbnNlUmVzdWx0IHtcclxuICAgIHB1YmxpYyB1c2VyX2lkOiBudW1iZXI7XHJcbiAgICBwdWJsaWMgZ3Vlc3Q6IGJvb2xlYW47XHJcbiAgICBwdWJsaWMgYXV0aGVudGljYXRpb25fcmVxdWlyZWQ6IGJvb2xlYW47XHJcbiAgICBwdWJsaWMgYXV0b19sb2dpbjogYm9vbGVhbjtcclxuICAgIHB1YmxpYyBsb2NhdGlvbl9pZDogbnVtYmVyO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHJlc3BvbnNlOiBFc29sdmVSZWdpc3RyYXRpb25Qb3N0UmVzcG9uc2VJdGVtLFxyXG4gICAgKSB7XHJcbiAgICAgICAgc3VwZXIocmVzcG9uc2UpO1xyXG5cclxuICAgICAgICB0aGlzLnVzZXJfaWQgPSByZXNwb25zZS5lc29sdmVfaWQ7XHJcbiAgICAgICAgdGhpcy5ndWVzdCA9IHJlc3BvbnNlLmd1ZXN0O1xyXG4gICAgICAgIHRoaXMuYXV0b19sb2dpbiA9IHJlc3BvbnNlLmF1dG9fbG9naW47XHJcbiAgICAgICAgdGhpcy5hdXRoZW50aWNhdGlvbl9yZXF1aXJlZCA9IHJlc3BvbnNlLmF1dGhlbnRpY2F0aW9uX3JlcXVpcmVkO1xyXG4gICAgICAgIHRoaXMubG9jYXRpb25faWQgPSByZXNwb25zZS5zZXNzaW9uX2RhdGEubG9jYXRpb25faWQ7XHJcbiAgICB9XHJcbn1cclxuIl19","import { EsolveResponseResult } from '../../shared/response';\r\nexport class EsolveAccountConfirmationResult extends EsolveResponseResult {\r\n constructor(response) {\r\n super(response);\r\n this.user_id = +response.esolve_id;\r\n this.location_id = +response.location_id;\r\n this.recalculated_cart = !!+response.recalculated_cart;\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWFjY291bnQtY29uZmlybWF0aW9uLXJlc3VsdC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9hY2NvdW50L2NvbmZpcm1hdGlvbi9lc29sdmUtYWNjb3VudC1jb25maXJtYXRpb24tcmVzdWx0Lm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRzdELE1BQU0sT0FBTywrQkFBZ0MsU0FBUSxvQkFBb0I7SUFLckUsWUFDSSxRQUFtRDtRQUVuRCxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFaEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUM7UUFDbkMsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUM7UUFDekMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQztJQUMzRCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFc29sdmVSZXNwb25zZVJlc3VsdCB9IGZyb20gJy4uLy4uL3NoYXJlZC9yZXNwb25zZSc7XHJcbmltcG9ydCB7IEVzb2x2ZUFjY291bnRDb25maXJtYXRpb25Qb3N0UmVzcG9uc2VJdGVtIH0gZnJvbSAnLi9lc29sdmUtYWNjb3VudC1jb25maXJtYXRpb24tcG9zdC1yZXNwb25zZS1pdGVtLmludGVyZmFjZSc7XHJcblxyXG5leHBvcnQgY2xhc3MgRXNvbHZlQWNjb3VudENvbmZpcm1hdGlvblJlc3VsdCBleHRlbmRzIEVzb2x2ZVJlc3BvbnNlUmVzdWx0IHtcclxuICAgIHB1YmxpYyB1c2VyX2lkOiBudW1iZXI7XHJcbiAgICBwdWJsaWMgbG9jYXRpb25faWQ6IG51bWJlcjtcclxuICAgIHB1YmxpYyByZWNhbGN1bGF0ZWRfY2FydDogYm9vbGVhbjtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICByZXNwb25zZTogRXNvbHZlQWNjb3VudENvbmZpcm1hdGlvblBvc3RSZXNwb25zZUl0ZW0sXHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcihyZXNwb25zZSk7XHJcblxyXG4gICAgICAgIHRoaXMudXNlcl9pZCA9ICtyZXNwb25zZS5lc29sdmVfaWQ7XHJcbiAgICAgICAgdGhpcy5sb2NhdGlvbl9pZCA9ICtyZXNwb25zZS5sb2NhdGlvbl9pZDtcclxuICAgICAgICB0aGlzLnJlY2FsY3VsYXRlZF9jYXJ0ID0gISErcmVzcG9uc2UucmVjYWxjdWxhdGVkX2NhcnQ7XHJcbiAgICB9XHJcbn1cclxuIl19","import { EsolveResponseResult, } from '../shared/response';\r\nexport class EsolveLocationUpdateResult extends EsolveResponseResult {\r\n constructor(response) {\r\n super(response);\r\n this.location_updated = (response.esolve_id > 0);\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWxvY2F0aW9uLXVwZGF0ZS1yZXN1bHQubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvYWNjb3VudC9lc29sdmUtbG9jYXRpb24tdXBkYXRlLXJlc3VsdC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsb0JBQW9CLEdBQ3ZCLE1BQU0sb0JBQW9CLENBQUM7QUFFNUIsTUFBTSxPQUFPLDBCQUEyQixTQUFRLG9CQUFvQjtJQUdoRSxZQUNJLFFBQWdDO1FBRWhDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUVoQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxRQUFRLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3JELENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBFc29sdmVQb3N0UmVzcG9uc2VJdGVtLFxyXG4gICAgRXNvbHZlUmVzcG9uc2VSZXN1bHQsXHJcbn0gZnJvbSAnLi4vc2hhcmVkL3Jlc3BvbnNlJztcclxuXHJcbmV4cG9ydCBjbGFzcyBFc29sdmVMb2NhdGlvblVwZGF0ZVJlc3VsdCBleHRlbmRzIEVzb2x2ZVJlc3BvbnNlUmVzdWx0IHtcclxuICAgIHB1YmxpYyBsb2NhdGlvbl91cGRhdGVkOiBib29sZWFuO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHJlc3BvbnNlOiBFc29sdmVQb3N0UmVzcG9uc2VJdGVtLFxyXG4gICAgKSB7XHJcbiAgICAgICAgc3VwZXIocmVzcG9uc2UpO1xyXG5cclxuICAgICAgICB0aGlzLmxvY2F0aW9uX3VwZGF0ZWQgPSAocmVzcG9uc2UuZXNvbHZlX2lkID4gMCk7XHJcbiAgICB9XHJcbn1cclxuIl19","import { EsolveResponseResult } from '../../shared/response';\r\nexport class EsolveEmptyCartResult extends EsolveResponseResult {\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWVtcHR5LWNhcnQtcmVzdWx0Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL2NhcnQvY2xhc3Nlcy9lc29sdmUtZW1wdHktY2FydC1yZXN1bHQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFN0QsTUFBTSxPQUFPLHFCQUFzQixTQUFRLG9CQUFvQjtDQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXNvbHZlUmVzcG9uc2VSZXN1bHQgfSBmcm9tICcuLi8uLi9zaGFyZWQvcmVzcG9uc2UnO1xyXG5cclxuZXhwb3J0IGNsYXNzIEVzb2x2ZUVtcHR5Q2FydFJlc3VsdCBleHRlbmRzIEVzb2x2ZVJlc3BvbnNlUmVzdWx0IHsgfVxyXG4iXX0=","import { EsolveResponseResult } from '../../shared/response';\r\nexport class EsolveCheckoutResult extends EsolveResponseResult {\r\n constructor(response) {\r\n super(response);\r\n this.id = 0;\r\n this.id = +response.esolve_id;\r\n this.process_payment = response.process_payment ?? false;\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWNoZWNrb3V0LXJlc3VsdC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9jYXJ0L2NsYXNzZXMvZXNvbHZlLWNoZWNrb3V0LXJlc3VsdC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUk3RCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsb0JBQW9CO0lBSTFELFlBQVksUUFBZ0M7UUFDeEMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBSmIsT0FBRSxHQUFHLENBQUMsQ0FBQztRQU1WLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDO1FBQzlCLElBQUksQ0FBQyxlQUFlLEdBQUcsUUFBUSxDQUFDLGVBQWUsSUFBSSxLQUFLLENBQUM7SUFDN0QsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXNvbHZlUmVzcG9uc2VSZXN1bHQgfSBmcm9tICcuLi8uLi9zaGFyZWQvcmVzcG9uc2UnO1xyXG5cclxuaW1wb3J0IHsgRXNvbHZlQ2hlY2tvdXRSZXNwb25zZSB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xyXG5cclxuZXhwb3J0IGNsYXNzIEVzb2x2ZUNoZWNrb3V0UmVzdWx0IGV4dGVuZHMgRXNvbHZlUmVzcG9uc2VSZXN1bHQge1xyXG4gICAgcHVibGljIGlkID0gMDtcclxuICAgIHB1YmxpYyBwcm9jZXNzX3BheW1lbnQ6IGJvb2xlYW47XHJcblxyXG4gICAgY29uc3RydWN0b3IocmVzcG9uc2U6IEVzb2x2ZUNoZWNrb3V0UmVzcG9uc2UpIHtcclxuICAgICAgICBzdXBlcihyZXNwb25zZSk7XHJcblxyXG4gICAgICAgIHRoaXMuaWQgPSArcmVzcG9uc2UuZXNvbHZlX2lkO1xyXG4gICAgICAgIHRoaXMucHJvY2Vzc19wYXltZW50ID0gcmVzcG9uc2UucHJvY2Vzc19wYXltZW50ID8/IGZhbHNlO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==","export class EsolveCartItem {\r\n constructor(id, stock_item, qty, delivery_category, type, price, discount, discount_interval, vat_rate, allow_quotes, allow_orders, must_collect, requested_assembly, price_incl, discount_price, discount_price_incl, discount_total, vat_total, total, total_incl) {\r\n this.id = id;\r\n this.stock_item = stock_item;\r\n this.qty = qty;\r\n this.delivery_category = delivery_category;\r\n this.type = type;\r\n this.price = price;\r\n this.discount = discount;\r\n this.discount_interval = discount_interval;\r\n this.vat_rate = vat_rate;\r\n this.allow_quotes = allow_quotes;\r\n this.allow_orders = allow_orders;\r\n this.must_collect = must_collect;\r\n this.requested_assembly = requested_assembly;\r\n this.price_incl = price_incl;\r\n this.discount_price = discount_price;\r\n this.discount_price_incl = discount_price_incl;\r\n this.discount_total = discount_total;\r\n this.vat_total = vat_total;\r\n this.total = total;\r\n this.total_incl = total_incl;\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWNhcnQtaXRlbS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9jYXJ0L2NsYXNzZXMvZXNvbHZlLWNhcnQtaXRlbS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sY0FBYztJQUN2QixZQUNXLEVBQVUsRUFDVixVQUErQixFQUMvQixHQUFXLEVBQ1gsaUJBQXlCLEVBQ3pCLElBQVksRUFFWixLQUFhLEVBQ2IsUUFBZ0IsRUFDaEIsaUJBQXlCLEVBQ3pCLFFBQWdCLEVBRWhCLFlBQXFCLEVBQ3JCLFlBQXFCLEVBQ3JCLFlBQXFCLEVBQ3JCLGtCQUEyQixFQUUzQixVQUFrQixFQUNsQixjQUFzQixFQUN0QixtQkFBMkIsRUFDM0IsY0FBc0IsRUFDdEIsU0FBaUIsRUFDakIsS0FBYSxFQUNiLFVBQWtCO1FBdEJsQixPQUFFLEdBQUYsRUFBRSxDQUFRO1FBQ1YsZUFBVSxHQUFWLFVBQVUsQ0FBcUI7UUFDL0IsUUFBRyxHQUFILEdBQUcsQ0FBUTtRQUNYLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBUTtRQUN6QixTQUFJLEdBQUosSUFBSSxDQUFRO1FBRVosVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUNiLGFBQVEsR0FBUixRQUFRLENBQVE7UUFDaEIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFRO1FBQ3pCLGFBQVEsR0FBUixRQUFRLENBQVE7UUFFaEIsaUJBQVksR0FBWixZQUFZLENBQVM7UUFDckIsaUJBQVksR0FBWixZQUFZLENBQVM7UUFDckIsaUJBQVksR0FBWixZQUFZLENBQVM7UUFDckIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFTO1FBRTNCLGVBQVUsR0FBVixVQUFVLENBQVE7UUFDbEIsbUJBQWMsR0FBZCxjQUFjLENBQVE7UUFDdEIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFRO1FBQzNCLG1CQUFjLEdBQWQsY0FBYyxDQUFRO1FBQ3RCLGNBQVMsR0FBVCxTQUFTLENBQVE7UUFDakIsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUNiLGVBQVUsR0FBVixVQUFVLENBQVE7SUFDekIsQ0FBQztDQUNSIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXNvbHZlQ2FydFN0b2NrSXRlbSB9IGZyb20gJy4vZXNvbHZlLWNhcnQtc3RvY2staXRlbS5tb2RlbCc7XHJcblxyXG5leHBvcnQgY2xhc3MgRXNvbHZlQ2FydEl0ZW0ge1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHVibGljIGlkOiBudW1iZXIsXHJcbiAgICAgICAgcHVibGljIHN0b2NrX2l0ZW06IEVzb2x2ZUNhcnRTdG9ja0l0ZW0sXHJcbiAgICAgICAgcHVibGljIHF0eTogbnVtYmVyLFxyXG4gICAgICAgIHB1YmxpYyBkZWxpdmVyeV9jYXRlZ29yeTogc3RyaW5nLFxyXG4gICAgICAgIHB1YmxpYyB0eXBlOiBzdHJpbmcsXHJcblxyXG4gICAgICAgIHB1YmxpYyBwcmljZTogbnVtYmVyLFxyXG4gICAgICAgIHB1YmxpYyBkaXNjb3VudDogbnVtYmVyLFxyXG4gICAgICAgIHB1YmxpYyBkaXNjb3VudF9pbnRlcnZhbDogbnVtYmVyLFxyXG4gICAgICAgIHB1YmxpYyB2YXRfcmF0ZTogbnVtYmVyLFxyXG5cclxuICAgICAgICBwdWJsaWMgYWxsb3dfcXVvdGVzOiBib29sZWFuLFxyXG4gICAgICAgIHB1YmxpYyBhbGxvd19vcmRlcnM6IGJvb2xlYW4sXHJcbiAgICAgICAgcHVibGljIG11c3RfY29sbGVjdDogYm9vbGVhbixcclxuICAgICAgICBwdWJsaWMgcmVxdWVzdGVkX2Fzc2VtYmx5OiBib29sZWFuLFxyXG5cclxuICAgICAgICBwdWJsaWMgcHJpY2VfaW5jbDogbnVtYmVyLFxyXG4gICAgICAgIHB1YmxpYyBkaXNjb3VudF9wcmljZTogbnVtYmVyLFxyXG4gICAgICAgIHB1YmxpYyBkaXNjb3VudF9wcmljZV9pbmNsOiBudW1iZXIsXHJcbiAgICAgICAgcHVibGljIGRpc2NvdW50X3RvdGFsOiBudW1iZXIsXHJcbiAgICAgICAgcHVibGljIHZhdF90b3RhbDogbnVtYmVyLFxyXG4gICAgICAgIHB1YmxpYyB0b3RhbDogbnVtYmVyLFxyXG4gICAgICAgIHB1YmxpYyB0b3RhbF9pbmNsOiBudW1iZXIsXHJcbiAgICApIHsgfVxyXG59XHJcbiJdfQ==","export class EsolveCartStockItem {\r\n constructor(code, name, sef_name, description, active, items_in_pack, delivery_category, onhand, image_name) {\r\n this.code = code;\r\n this.name = name;\r\n this.sef_name = sef_name;\r\n this.description = description;\r\n this.active = active;\r\n this.items_in_pack = items_in_pack;\r\n this.delivery_category = delivery_category;\r\n this.onhand = onhand;\r\n this.image_name = image_name;\r\n }\r\n /**\r\n * Path to tiny stock image\r\n */\r\n get tiny_image_src() {\r\n return this.getImagePath('tiny');\r\n }\r\n /**\r\n * Path to thumbnail stock image\r\n */\r\n get thumbnail_image_src() {\r\n return this.getImagePath('thumb');\r\n }\r\n /**\r\n * Path to small stock image\r\n */\r\n get small_image_src() {\r\n return this.getImagePath('small');\r\n }\r\n /**\r\n * Path to big stock image\r\n */\r\n get big_image_src() {\r\n return this.getImagePath('big');\r\n }\r\n /**\r\n * Path to original stock image\r\n */\r\n get original_image_src() {\r\n return this.getImagePath('original');\r\n }\r\n getImagePath(image_size) {\r\n if (this.image_name !== '') {\r\n return `/images/stock/${image_size}/${this.image_name}`;\r\n }\r\n return '';\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWNhcnQtc3RvY2staXRlbS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9jYXJ0L2NsYXNzZXMvZXNvbHZlLWNhcnQtc3RvY2staXRlbS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sbUJBQW1CO0lBb0M1QixZQUNXLElBQVksRUFDWixJQUFZLEVBQ1osUUFBZ0IsRUFDaEIsV0FBbUIsRUFDbkIsTUFBZSxFQUNmLGFBQXFCLEVBQ3JCLGlCQUF5QixFQUN6QixNQUFjLEVBQ2IsVUFBa0I7UUFSbkIsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUNaLFNBQUksR0FBSixJQUFJLENBQVE7UUFDWixhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQ2hCLGdCQUFXLEdBQVgsV0FBVyxDQUFRO1FBQ25CLFdBQU0sR0FBTixNQUFNLENBQVM7UUFDZixrQkFBYSxHQUFiLGFBQWEsQ0FBUTtRQUNyQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQVE7UUFDekIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNiLGVBQVUsR0FBVixVQUFVLENBQVE7SUFDMUIsQ0FBQztJQTdDTDs7T0FFRztJQUNILElBQVcsY0FBYztRQUNyQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxtQkFBbUI7UUFDMUIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsZUFBZTtRQUN0QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxhQUFhO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLGtCQUFrQjtRQUN6QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQWNNLFlBQVksQ0FDZixVQUEyRDtRQUUzRCxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssRUFBRSxFQUFFO1lBQ3hCLE9BQU8saUJBQWlCLFVBQVUsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7U0FDM0Q7UUFFRCxPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBFc29sdmVDYXJ0U3RvY2tJdGVtIHtcclxuICAgIC8qKlxyXG4gICAgICogUGF0aCB0byB0aW55IHN0b2NrIGltYWdlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgdGlueV9pbWFnZV9zcmMoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRJbWFnZVBhdGgoJ3RpbnknKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFBhdGggdG8gdGh1bWJuYWlsIHN0b2NrIGltYWdlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgdGh1bWJuYWlsX2ltYWdlX3NyYygpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldEltYWdlUGF0aCgndGh1bWInKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFBhdGggdG8gc21hbGwgc3RvY2sgaW1hZ2VcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCBzbWFsbF9pbWFnZV9zcmMoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRJbWFnZVBhdGgoJ3NtYWxsJyk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQYXRoIHRvIGJpZyBzdG9jayBpbWFnZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IGJpZ19pbWFnZV9zcmMoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRJbWFnZVBhdGgoJ2JpZycpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUGF0aCB0byBvcmlnaW5hbCBzdG9jayBpbWFnZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IG9yaWdpbmFsX2ltYWdlX3NyYygpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldEltYWdlUGF0aCgnb3JpZ2luYWwnKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwdWJsaWMgY29kZTogc3RyaW5nLFxyXG4gICAgICAgIHB1YmxpYyBuYW1lOiBzdHJpbmcsXHJcbiAgICAgICAgcHVibGljIHNlZl9uYW1lOiBzdHJpbmcsXHJcbiAgICAgICAgcHVibGljIGRlc2NyaXB0aW9uOiBzdHJpbmcsXHJcbiAgICAgICAgcHVibGljIGFjdGl2ZTogYm9vbGVhbixcclxuICAgICAgICBwdWJsaWMgaXRlbXNfaW5fcGFjazogbnVtYmVyLFxyXG4gICAgICAgIHB1YmxpYyBkZWxpdmVyeV9jYXRlZ29yeTogc3RyaW5nLFxyXG4gICAgICAgIHB1YmxpYyBvbmhhbmQ6IG51bWJlcixcclxuICAgICAgICBwcml2YXRlIGltYWdlX25hbWU6IHN0cmluZyxcclxuICAgICkgeyB9XHJcblxyXG4gICAgcHVibGljIGdldEltYWdlUGF0aChcclxuICAgICAgICBpbWFnZV9zaXplOiAndGlueScgfCAndGh1bWInIHwgJ3NtYWxsJyB8ICdiaWcnIHwgJ29yaWdpbmFsJyxcclxuICAgICk6IHN0cmluZyB7XHJcbiAgICAgICAgaWYgKHRoaXMuaW1hZ2VfbmFtZSAhPT0gJycpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGAvaW1hZ2VzL3N0b2NrLyR7aW1hZ2Vfc2l6ZX0vJHt0aGlzLmltYWdlX25hbWV9YDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiAnJztcclxuICAgIH1cclxufVxyXG4iXX0=","/**\r\n * Totals in cart\r\n */\r\nexport class EsolveCartTotals {\r\n constructor(\r\n /**\r\n * Number of unique records in cart\r\n */\r\n records = 0, \r\n /**\r\n * Total quantity of all items in a cart\r\n */\r\n items = 0, \r\n /**\r\n * Total in cart before discount and VAT is added\r\n */\r\n sub_total = 0, \r\n /**\r\n * Total VAT of all the items in the cart\r\n */\r\n vat_total = 0, \r\n /**\r\n * Total discount of all the item in the cart\r\n */\r\n discount_total = 0) {\r\n this.records = records;\r\n this.items = items;\r\n this.sub_total = sub_total;\r\n this.vat_total = vat_total;\r\n this.discount_total = discount_total;\r\n }\r\n /**\r\n * Grand total of cart which includes discount and VAT (NOTE: shipping and insurance is not included)\r\n */\r\n get total() {\r\n return this.sub_total + this.vat_total - this.discount_total;\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWNhcnQtdG90YWxzLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL2NhcnQvY2xhc3Nlcy9lc29sdmUtY2FydC10b3RhbHMubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxNQUFNLE9BQU8sZ0JBQWdCO0lBUXpCO0lBQ0k7O09BRUc7SUFDSSxVQUFrQixDQUFDO0lBQzFCOztPQUVHO0lBQ0ksUUFBZ0IsQ0FBQztJQUN4Qjs7T0FFRztJQUNJLFlBQW9CLENBQUM7SUFDNUI7O09BRUc7SUFDSSxZQUFvQixDQUFDO0lBQzVCOztPQUVHO0lBQ0ksaUJBQXlCLENBQUM7UUFoQjFCLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFJbkIsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQUlqQixjQUFTLEdBQVQsU0FBUyxDQUFZO1FBSXJCLGNBQVMsR0FBVCxTQUFTLENBQVk7UUFJckIsbUJBQWMsR0FBZCxjQUFjLENBQVk7SUFDakMsQ0FBQztJQTVCTDs7T0FFRztJQUNILElBQVcsS0FBSztRQUNaLE9BQU8sSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDakUsQ0FBQztDQXdCSiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBUb3RhbHMgaW4gY2FydFxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEVzb2x2ZUNhcnRUb3RhbHMge1xyXG4gICAgLyoqXHJcbiAgICAgKiBHcmFuZCB0b3RhbCBvZiBjYXJ0IHdoaWNoIGluY2x1ZGVzIGRpc2NvdW50IGFuZCBWQVQgKE5PVEU6IHNoaXBwaW5nIGFuZCBpbnN1cmFuY2UgaXMgbm90IGluY2x1ZGVkKVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IHRvdGFsKCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc3ViX3RvdGFsICsgdGhpcy52YXRfdG90YWwgLSB0aGlzLmRpc2NvdW50X3RvdGFsO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIE51bWJlciBvZiB1bmlxdWUgcmVjb3JkcyBpbiBjYXJ0XHJcbiAgICAgICAgICovXHJcbiAgICAgICAgcHVibGljIHJlY29yZHM6IG51bWJlciA9IDAsXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVG90YWwgcXVhbnRpdHkgb2YgYWxsIGl0ZW1zIGluIGEgY2FydFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHB1YmxpYyBpdGVtczogbnVtYmVyID0gMCxcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUb3RhbCBpbiBjYXJ0IGJlZm9yZSBkaXNjb3VudCBhbmQgVkFUIGlzIGFkZGVkXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgcHVibGljIHN1Yl90b3RhbDogbnVtYmVyID0gMCxcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUb3RhbCBWQVQgb2YgYWxsIHRoZSBpdGVtcyBpbiB0aGUgY2FydFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHB1YmxpYyB2YXRfdG90YWw6IG51bWJlciA9IDAsXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVG90YWwgZGlzY291bnQgb2YgYWxsIHRoZSBpdGVtIGluIHRoZSBjYXJ0XHJcbiAgICAgICAgICovXHJcbiAgICAgICAgcHVibGljIGRpc2NvdW50X3RvdGFsOiBudW1iZXIgPSAwLFxyXG4gICAgKSB7IH1cclxufVxyXG4iXX0=","export class EsolveTransactionAnalyticsData {\r\n constructor(record) {\r\n this.transaction_id = 0;\r\n this.transaction_type = 'order';\r\n if (record) {\r\n this.transaction_id = +(record.transaction_id ?? 0);\r\n this.transaction_type = record.transaction_type ?? 'order';\r\n if (record.analytics_data) {\r\n this.analytics_data = record.analytics_data;\r\n }\r\n }\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXRyYW5zYWN0aW9uLWFuYWx5dGljcy1kYXRhLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL2NhcnQvY2xhc3Nlcy9lc29sdmUtdHJhbnNhY3Rpb24tYW5hbHl0aWNzLWRhdGEubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTSxPQUFPLDhCQUE4QjtJQVF2QyxZQUFZLE1BQXlEO1FBUDlELG1CQUFjLEdBQVcsQ0FBQyxDQUFDO1FBQzNCLHFCQUFnQixHQUEwQixPQUFPLENBQUM7UUFPckQsSUFBSSxNQUFNLEVBQUU7WUFDUixJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsY0FBYyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ3BELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLElBQUksT0FBTyxDQUFDO1lBRTNELElBQUksTUFBTSxDQUFDLGNBQWMsRUFBRTtnQkFDdkIsSUFBSSxDQUFDLGNBQWMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDO2FBQy9DO1NBQ0o7SUFDTCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFc29sdmVUcmFuc2FjdGlvblR5cGUgfSBmcm9tICcuLi8uLi9hY2NvdW50JztcclxuXHJcbmltcG9ydCB7IEVzb2x2ZVRyYW5zYWN0aW9uQW5hbHl0aWNzRGF0YVJlY29yZCB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xyXG5cclxuZXhwb3J0IGNsYXNzIEVzb2x2ZVRyYW5zYWN0aW9uQW5hbHl0aWNzRGF0YTxUID0gYW55PiB7XHJcbiAgICBwdWJsaWMgdHJhbnNhY3Rpb25faWQ6IG51bWJlciA9IDA7XHJcbiAgICBwdWJsaWMgdHJhbnNhY3Rpb25fdHlwZTogRXNvbHZlVHJhbnNhY3Rpb25UeXBlID0gJ29yZGVyJztcclxuICAgIC8qKlxyXG4gICAgICogRGF0YSBnZW5lcmF0ZWQgZm9yIGFuYWx5dGljc1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYW5hbHl0aWNzX2RhdGE/OiBUO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHJlY29yZD86IFBhcnRpYWw8RXNvbHZlVHJhbnNhY3Rpb25BbmFseXRpY3NEYXRhUmVjb3JkPFQ+Pikge1xyXG4gICAgICAgIGlmIChyZWNvcmQpIHtcclxuICAgICAgICAgICAgdGhpcy50cmFuc2FjdGlvbl9pZCA9ICsocmVjb3JkLnRyYW5zYWN0aW9uX2lkID8/IDApO1xyXG4gICAgICAgICAgICB0aGlzLnRyYW5zYWN0aW9uX3R5cGUgPSByZWNvcmQudHJhbnNhY3Rpb25fdHlwZSA/PyAnb3JkZXInO1xyXG5cclxuICAgICAgICAgICAgaWYgKHJlY29yZC5hbmFseXRpY3NfZGF0YSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5hbmFseXRpY3NfZGF0YSA9IHJlY29yZC5hbmFseXRpY3NfZGF0YTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=","export class EsolveCoupon {\r\n constructor(record) {\r\n this.id = 0;\r\n this.identifier = '';\r\n this.discount = 0;\r\n /**\r\n * Shows either the short code or the coupon key (if short code is not set)\r\n */\r\n this.coupon_code = '';\r\n /**\r\n * Limit of the number of items it can apply to\r\n */\r\n this.apply_on = 0;\r\n /**\r\n * Indicates if the discount does not apply to specified products, meaning\r\n * all items get the discount\r\n */\r\n this.apply_to_full_cart = false;\r\n if (record) {\r\n this.id = +record.id;\r\n this.identifier = record.identifier;\r\n this.discount = +record.discount;\r\n this.coupon_code = record.coupon_code;\r\n this.apply_on = +record.apply_on;\r\n this.apply_to_full_cart = record.apply_to_full_cart;\r\n }\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWNvdXBvbi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9jb3Vwb25zL2NsYXNzZXMvZXNvbHZlLWNvdXBvbi5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sWUFBWTtJQWtCckIsWUFBWSxNQUEyQjtRQWpCaEMsT0FBRSxHQUFXLENBQUMsQ0FBQztRQUNmLGVBQVUsR0FBVyxFQUFFLENBQUM7UUFDeEIsYUFBUSxHQUFXLENBQUMsQ0FBQztRQUM1Qjs7V0FFRztRQUNJLGdCQUFXLEdBQVcsRUFBRSxDQUFDO1FBQ2hDOztXQUVHO1FBQ0ksYUFBUSxHQUFXLENBQUMsQ0FBQztRQUM1Qjs7O1dBR0c7UUFDSSx1QkFBa0IsR0FBWSxLQUFLLENBQUM7UUFHdkMsSUFBSSxNQUFNLEVBQUU7WUFDUixJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUM7WUFDcEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7WUFDakMsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDO1lBQ3RDLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDO1lBQ2pDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUM7U0FDdkQ7SUFDTCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFc29sdmVDb3Vwb25SZWNvcmQgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcclxuXHJcbmV4cG9ydCBjbGFzcyBFc29sdmVDb3Vwb24ge1xyXG4gICAgcHVibGljIGlkOiBudW1iZXIgPSAwO1xyXG4gICAgcHVibGljIGlkZW50aWZpZXI6IHN0cmluZyA9ICcnO1xyXG4gICAgcHVibGljIGRpc2NvdW50OiBudW1iZXIgPSAwO1xyXG4gICAgLyoqXHJcbiAgICAgKiBTaG93cyBlaXRoZXIgdGhlIHNob3J0IGNvZGUgb3IgdGhlIGNvdXBvbiBrZXkgKGlmIHNob3J0IGNvZGUgaXMgbm90IHNldClcclxuICAgICAqL1xyXG4gICAgcHVibGljIGNvdXBvbl9jb2RlOiBzdHJpbmcgPSAnJztcclxuICAgIC8qKlxyXG4gICAgICogTGltaXQgb2YgdGhlIG51bWJlciBvZiBpdGVtcyBpdCBjYW4gYXBwbHkgdG9cclxuICAgICAqL1xyXG4gICAgcHVibGljIGFwcGx5X29uOiBudW1iZXIgPSAwO1xyXG4gICAgLyoqXHJcbiAgICAgKiBJbmRpY2F0ZXMgaWYgdGhlIGRpc2NvdW50IGRvZXMgbm90IGFwcGx5IHRvIHNwZWNpZmllZCBwcm9kdWN0cywgbWVhbmluZ1xyXG4gICAgICogYWxsIGl0ZW1zIGdldCB0aGUgZGlzY291bnRcclxuICAgICAqL1xyXG4gICAgcHVibGljIGFwcGx5X3RvX2Z1bGxfY2FydDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHJlY29yZD86IEVzb2x2ZUNvdXBvblJlY29yZCkge1xyXG4gICAgICAgIGlmIChyZWNvcmQpIHtcclxuICAgICAgICAgICAgdGhpcy5pZCA9ICtyZWNvcmQuaWQ7XHJcbiAgICAgICAgICAgIHRoaXMuaWRlbnRpZmllciA9IHJlY29yZC5pZGVudGlmaWVyO1xyXG4gICAgICAgICAgICB0aGlzLmRpc2NvdW50ID0gK3JlY29yZC5kaXNjb3VudDtcclxuICAgICAgICAgICAgdGhpcy5jb3Vwb25fY29kZSA9IHJlY29yZC5jb3Vwb25fY29kZTtcclxuICAgICAgICAgICAgdGhpcy5hcHBseV9vbiA9ICtyZWNvcmQuYXBwbHlfb247XHJcbiAgICAgICAgICAgIHRoaXMuYXBwbHlfdG9fZnVsbF9jYXJ0ID0gcmVjb3JkLmFwcGx5X3RvX2Z1bGxfY2FydDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19",";\r\nexport {};\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWNvdXBvbi12YWxpZGF0aW9uLXJlc3VsdC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvY291cG9ucy9pbnRlcmZhY2VzL2Vzb2x2ZS1jb3Vwb24tdmFsaWRhdGlvbi1yZXN1bHQuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEVzb2x2ZUNvdXBvblZhbGlkYXRpb25SZXN1bHQge1xyXG4gICAgdmFsaWQ6IGJvb2xlYW47XHJcbiAgICBpZD86IG51bWJlcjtcclxufTtcclxuIl19","import { HttpClient } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { BehaviorSubject, firstValueFrom, of, Subject } from 'rxjs';\r\nimport { catchError, map } from 'rxjs/operators';\r\nimport { ESOLVE_CONNECT_CONFIG } from '../esolve-connect-config.constant';\r\nimport { EsolveCookieService } from '../shared/cookie/esolve-cookie.service';\r\nimport { EsolveCoupon } from './classes';\r\nimport * as i0 from \"@angular/core\";\r\nimport * as i1 from \"@angular/common/http\";\r\nimport * as i2 from \"../shared/cookie/esolve-cookie.service\";\r\nexport class EsolveCouponsService {\r\n constructor(config, http, cookieService) {\r\n this.config = config;\r\n this.http = http;\r\n this.cookieService = cookieService;\r\n this.storage_key = '_ng_eslv_coupons';\r\n this.coupons_cache = new Map();\r\n this.applied = new BehaviorSubject(undefined);\r\n this.validation_error = new Subject();\r\n this.setStorageKey();\r\n this.coupons_cache = this.retrieveCache();\r\n }\r\n onValidationError() {\r\n return this.validation_error.asObservable();\r\n }\r\n onApplied() {\r\n return this.applied.asObservable();\r\n }\r\n validate(coupon_key) {\r\n return this.http\r\n .get(`${this.config.api_url}/get-validate-coupon.php`, {\r\n params: {\r\n coupon_key,\r\n },\r\n })\r\n .pipe(map((response) => {\r\n if (response.records === undefined) {\r\n throw response;\r\n }\r\n const valid = response.records.valid;\r\n const result = {\r\n valid,\r\n };\r\n if (!valid) {\r\n const error = response.records.error;\r\n this.validation_error.next(error);\r\n }\r\n else if (valid) {\r\n result.id = response.records.id;\r\n }\r\n return result;\r\n }), catchError(() => {\r\n this.validation_error.next(undefined);\r\n return of({ valid: false });\r\n }));\r\n }\r\n async applyCoupon(coupon_key) {\r\n try {\r\n if (coupon_key.trim() === '') {\r\n return false;\r\n }\r\n const result = await firstValueFrom(this.validate(coupon_key));\r\n if (result.valid && result.id) {\r\n this.addCoupon(result.id, coupon_key);\r\n }\r\n return result.valid;\r\n }\r\n catch (error) {\r\n return false;\r\n }\r\n }\r\n removeCoupon(id) {\r\n this.coupons_cache.delete(id);\r\n this.cacheCoupons();\r\n this.applied.next();\r\n }\r\n getAppliedCouponKeys() {\r\n return [...this.coupons_cache.values()];\r\n }\r\n getAppliedCoupons() {\r\n const coupon_ids = [...this.coupons_cache.keys()];\r\n return this.http\r\n .get(`${this.config.api_url}/get-applied-coupons.php`, {\r\n params: {\r\n coupons: coupon_ids.join(','),\r\n },\r\n })\r\n .pipe(map((response) => {\r\n if (response.records === undefined) {\r\n throw response;\r\n }\r\n return this.processCoupons(response.records);\r\n }));\r\n }\r\n reset() {\r\n this.deleteCoupons();\r\n }\r\n retrieveCache() {\r\n if (this.cookieService.check(this.storage_key) ||\r\n localStorage.getItem(this.storage_key)) {\r\n let coupons_json = this.cookieService.get(this.storage_key);\r\n if (coupons_json === '' && localStorage) {\r\n let local_store_data = localStorage.getItem(this.storage_key);\r\n if (local_store_data) {\r\n coupons_json = local_store_data;\r\n }\r\n }\r\n try {\r\n return this.jsonDecodeMap(coupons_json);\r\n }\r\n catch (error) {\r\n // soft error\r\n }\r\n }\r\n return new Map();\r\n }\r\n cacheCoupons() {\r\n if (this.coupons_cache.size > 0) {\r\n const coupons_json = this.jsonEncodeMap(this.coupons_cache);\r\n this.cookieService.set(this.storage_key, coupons_json, undefined, '/');\r\n if (localStorage) {\r\n localStorage.setItem(this.storage_key, coupons_json);\r\n }\r\n }\r\n else {\r\n this.deleteCoupons();\r\n }\r\n }\r\n deleteCoupons() {\r\n this.coupons_cache.clear();\r\n this.cookieService.delete(this.storage_key, '/');\r\n if (localStorage) {\r\n localStorage.removeItem(this.storage_key);\r\n }\r\n }\r\n addCoupon(id, key) {\r\n if (!this.coupons_cache.has(id)) {\r\n this.coupons_cache.set(id, key);\r\n this.cacheCoupons();\r\n }\r\n this.applied.next();\r\n }\r\n setStorageKey() {\r\n if (typeof this.config.coupon_storage_key === 'string' &&\r\n this.config.coupon_storage_key !== '') {\r\n this.storage_key = this.config.coupon_storage_key;\r\n }\r\n }\r\n jsonEncodeMap(data) {\r\n if (!(data instanceof Map)) {\r\n throw new Error('Invalid map type');\r\n }\r\n return JSON.stringify(data, (key, value) => {\r\n if (value instanceof Map) {\r\n return {\r\n dataType: 'Map',\r\n value: [...value],\r\n };\r\n }\r\n else {\r\n return value;\r\n }\r\n });\r\n }\r\n jsonDecodeMap(json_data) {\r\n const data = JSON.parse(json_data, (key, value) => {\r\n if (typeof value === 'object' && value !== null) {\r\n if (value.dataType === 'Map') {\r\n return new Map(value.value);\r\n }\r\n }\r\n return value;\r\n });\r\n if (data instanceof Map) {\r\n return data;\r\n }\r\n throw new Error('Invalid map type');\r\n }\r\n processCoupons(records) {\r\n const coupons = [];\r\n if (records) {\r\n for (const record of records) {\r\n const coupon = new EsolveCoupon(record);\r\n coupons.push(coupon);\r\n }\r\n }\r\n return coupons;\r\n }\r\n}\r\nEsolveCouponsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveCouponsService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1.HttpClient }, { token: i2.EsolveCookieService }], target: i0.ɵɵFactoryTarget.Injectable });\r\nEsolveCouponsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveCouponsService, providedIn: 'root' });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveCouponsService, decorators: [{\r\n type: Injectable,\r\n args: [{\r\n providedIn: 'root',\r\n }]\r\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\r\n type: Inject,\r\n args: [ESOLVE_CONNECT_CONFIG]\r\n }] }, { type: i1.HttpClient }, { type: i2.EsolveCookieService }]; } });\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWNvdXBvbnMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9jb3Vwb25zL2Vzb2x2ZS1jb3Vwb25zLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFjLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUcxRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUc3RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sV0FBVyxDQUFDOzs7O0FBWXpDLE1BQU0sT0FBTyxvQkFBb0I7SUFNN0IsWUFDMkMsTUFBMkIsRUFDMUQsSUFBZ0IsRUFDaEIsYUFBa0M7UUFGSCxXQUFNLEdBQU4sTUFBTSxDQUFxQjtRQUMxRCxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLGtCQUFhLEdBQWIsYUFBYSxDQUFxQjtRQVJ0QyxnQkFBVyxHQUFHLGtCQUFrQixDQUFDO1FBQ2pDLGtCQUFhLEdBQXVCLElBQUksR0FBRyxFQUFFLENBQUM7UUFDOUMsWUFBTyxHQUFHLElBQUksZUFBZSxDQUFPLFNBQVMsQ0FBQyxDQUFDO1FBQy9DLHFCQUFnQixHQUFHLElBQUksT0FBTyxFQUEyQyxDQUFDO1FBTzlFLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxh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RyxJQUFJLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFFeEMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUN4QjtTQUNKO1FBRUQsT0FBTyxPQUFPLENBQUM7SUFDbkIsQ0FBQzs7aUhBdk9RLG9CQUFvQixrQkFPakIscUJBQXFCO3FIQVB4QixvQkFBb0IsY0FGakIsTUFBTTsyRkFFVCxvQkFBb0I7a0JBSGhDLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCOzswQkFRUSxNQUFNOzJCQUFDLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBmaXJzdFZhbHVlRnJvbSwgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgRVNPTFZFX0NPTk5FQ1RfQ09ORklHIH0gZnJvbSAnLi4vZXNvbHZlLWNvbm5lY3QtY29uZmlnLmNvbnN0YW50JztcclxuaW1wb3J0IHsgRXNvbHZlQ29ubmVjdENvbmZpZyB9IGZyb20gJy4uL2Vzb2x2ZS1jb25uZWN0LmNvbmZpZyc7XHJcblxyXG5pbXBvcnQgeyBFc29sdmVDb29raWVTZXJ2aWNlIH0gZnJvbSAnLi4vc2hhcmVkL2Nvb2tpZS9lc29sdmUtY29va2llLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBFc29sdmVHZXRSZXNwb25zZSB9IGZyb20gJy4uL3NoYXJlZC9yZXNwb25zZSc7XHJcblxyXG5pbXBvcnQgeyBFc29sdmVDb3Vwb24gfSBmcm9tICcuL2NsYXNzZXMnO1xyXG5pbXBvcnQge1xyXG4gICAgRXNvbHZlQ291cG9uUmVjb3JkLFxyXG4gICAgRXNvbHZlQ291cG9uVmFsaWRhdGlvbixcclxuICAgIEVzb2x2ZUNvdXBvblZhbGlkYXRpb25FcnJvcixcclxuICAgIEVzb2x2ZUNvdXBvblZhbGlkYXRpb25SZXN1bHQsXHJcbn0gZnJvbSAnLi9pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgRXNvbHZlQ291cG9uc0NhY2hlIH0gZnJvbSAnLi90eXBlcyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFc29sdmVDb3Vwb25zU2VydmljZSB7XHJcbiAgICBwcml2YXRlIHN0b3JhZ2Vfa2V5ID0gJ19uZ19lc2x2X2NvdXBvbnMnO1xyXG4gICAgcHJpdmF0ZSBjb3Vwb25zX2NhY2hlOiBFc29sdmVDb3Vwb25zQ2FjaGUgPSBuZXcgTWFwKCk7XHJcbiAgICBwcml2YXRlIGFwcGxpZWQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHZvaWQ+KHVuZGVmaW5lZCk7XHJcbiAgICBwcml2YXRlIHZhbGlkYXRpb25fZXJyb3IgPSBuZXcgU3ViamVjdDxFc29sdmVDb3Vwb25WYWxpZGF0aW9uRXJyb3IgfCB1bmRlZmluZWQ+KCk7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgQEluamVjdChFU09MVkVfQ09OTkVDVF9DT05GSUcpIHByaXZhdGUgY29uZmlnOiBFc29sdmVDb25uZWN0Q29uZmlnLFxyXG4gICAgICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgICAgICBwcml2YXRlIGNvb2tpZVNlcnZpY2U6IEVzb2x2ZUNvb2tpZVNlcnZpY2UsXHJcbiAgICApIHtcclxuICAgICAgICB0aGlzLnNldFN0b3JhZ2VLZXkoKTtcclxuICAgICAgICB0aGlzLmNvdXBvbnNfY2FjaGUgPSB0aGlzLnJldHJpZXZlQ2FjaGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb25WYWxpZGF0aW9uRXJyb3IoKTogT2JzZXJ2YWJsZTxFc29sdmVDb3Vwb25WYWxpZGF0aW9uRXJyb3IgfCB1bmRlZmluZWQ+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy52YWxpZGF0aW9uX2Vycm9yLmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBvbkFwcGxpZWQoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBwbGllZC5hc09ic2VydmFibGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgdmFsaWRhdGUoY291cG9uX2tleTogc3RyaW5nKTogT2JzZXJ2YWJsZTxFc29sdmVDb3Vwb25WYWxpZGF0aW9uUmVzdWx0PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAgICAgICAuZ2V0PEVzb2x2ZUdldFJlc3BvbnNlPEVzb2x2ZUNvdXBvblZhbGlkYXRpb24+PihcclxuICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L2dldC12YWxpZGF0ZS1jb3Vwb24ucGhwYCxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBwYXJhbXM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY291cG9uX2tleSxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UucmVjb3JkcyA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsaWQgPSByZXNwb25zZS5yZWNvcmRzLnZhbGlkO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQ6IEVzb2x2ZUNvdXBvblZhbGlkYXRpb25SZXN1bHQgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkLFxyXG4gICAgICAgICAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGlmICghdmFsaWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZXJyb3IgPSByZXNwb25zZS5yZWNvcmRzLmVycm9yO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25fZXJyb3IubmV4dChlcnJvcik7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh2YWxpZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuaWQgPSByZXNwb25zZS5yZWNvcmRzLmlkO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9uX2Vycm9yLm5leHQodW5kZWZpbmVkKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKHsgdmFsaWQ6IGZhbHNlIH0pO1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFzeW5jIGFwcGx5Q291cG9uKGNvdXBvbl9rZXk6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGlmIChjb3Vwb25fa2V5LnRyaW0oKSA9PT0gJycpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy52YWxpZGF0ZShjb3Vwb25fa2V5KSk7XHJcblxyXG4gICAgICAgICAgICBpZiAocmVzdWx0LnZhbGlkICYmIHJlc3VsdC5pZCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5hZGRDb3Vwb24ocmVzdWx0LmlkLCBjb3Vwb25fa2V5KTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC52YWxpZDtcclxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyByZW1vdmVDb3Vwb24oaWQ6IG51bWJlcik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY291cG9uc19jYWNoZS5kZWxldGUoaWQpO1xyXG5cclxuICAgICAgICB0aGlzLmNhY2hlQ291cG9ucygpO1xyXG4gICAgICAgIHRoaXMuYXBwbGllZC5uZXh0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldEFwcGxpZWRDb3Vwb25LZXlzKCk6IHN0cmluZ1tdIHtcclxuICAgICAgICByZXR1cm4gWy4uLnRoaXMuY291cG9uc19jYWNoZS52YWx1ZXMoKV07XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldEFwcGxpZWRDb3Vwb25zKCk6IE9ic2VydmFibGU8RXNvbHZlQ291cG9uW10+IHtcclxuICAgICAgICBjb25zdCBjb3Vwb25faWRzID0gWy4uLnRoaXMuY291cG9uc19jYWNoZS5rZXlzKCldO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgICAgICAgIC5nZXQ8RXNvbHZlR2V0UmVzcG9uc2U8RXNvbHZlQ291cG9uUmVjb3JkW10+PihcclxuICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L2dldC1hcHBsaWVkLWNvdXBvbnMucGhwYCxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBwYXJhbXM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY291cG9uczogY291cG9uX2lkcy5qb2luKCcsJyksXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnJlY29yZHMgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyByZXNwb25zZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NDb3Vwb25zKHJlc3BvbnNlLnJlY29yZHMpO1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHJlc2V0KCkge1xyXG4gICAgICAgIHRoaXMuZGVsZXRlQ291cG9ucygpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgcmV0cmlldmVDYWNoZSgpOiBFc29sdmVDb3Vwb25zQ2FjaGUge1xyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgICAgdGhpcy5jb29raWVTZXJ2aWNlLmNoZWNrKHRoaXMuc3RvcmFnZV9rZXkpIHx8XHJcbiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RvcmFnZV9rZXkpXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIGxldCBjb3Vwb25zX2pzb24gPSB0aGlzLmNvb2tpZVNlcnZpY2UuZ2V0KHRoaXMuc3RvcmFnZV9rZXkpO1xyXG5cclxuICAgICAgICAgICAgaWYgKGNvdXBvbnNfanNvbiA9PT0gJycgJiYgbG9jYWxTdG9yYWdlKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgbG9jYWxfc3RvcmVfZGF0YSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RvcmFnZV9rZXkpO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmIChsb2NhbF9zdG9yZV9kYXRhKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY291cG9uc19qc29uID0gbG9jYWxfc3RvcmVfZGF0YTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmpzb25EZWNvZGVNYXAoY291cG9uc19qc29uKTtcclxuICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgICAgICAgIC8vIHNvZnQgZXJyb3JcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIG5ldyBNYXAoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNhY2hlQ291cG9ucygpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5jb3Vwb25zX2NhY2hlLnNpemUgPiAwKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGNvdXBvbnNfanNvbiA9IHRoaXMuanNvbkVuY29kZU1hcCh0aGlzLmNvdXBvbnNfY2FjaGUpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5jb29raWVTZXJ2aWNlLnNldCh0aGlzLnN0b3JhZ2Vfa2V5LCBjb3Vwb25zX2pzb24sIHVuZGVmaW5lZCwgJy8nKTtcclxuXHJcbiAgICAgICAgICAgIGlmIChsb2NhbFN0b3JhZ2UpIHtcclxuICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RvcmFnZV9rZXksIGNvdXBvbnNfanNvbik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmRlbGV0ZUNvdXBvbnMoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBkZWxldGVDb3Vwb25zKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY291cG9uc19jYWNoZS5jbGVhcigpO1xyXG4gICAgICAgIHRoaXMuY29va2llU2VydmljZS5kZWxldGUodGhpcy5zdG9yYWdlX2tleSwgJy8nKTtcclxuXHJcbiAgICAgICAgaWYgKGxvY2FsU3RvcmFnZSkge1xyXG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSh0aGlzLnN0b3JhZ2Vfa2V5KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBhZGRDb3Vwb24oaWQ6IG51bWJlciwga2V5OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMuY291cG9uc19jYWNoZS5oYXMoaWQpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY291cG9uc19jYWNoZS5zZXQoaWQsIGtleSk7XHJcbiAgICAgICAgICAgIHRoaXMuY2FjaGVDb3Vwb25zKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmFwcGxpZWQubmV4dCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc2V0U3RvcmFnZUtleSgpOiB2b2lkIHtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgIHR5cGVvZiB0aGlzLmNvbmZpZy5jb3Vwb25fc3RvcmFnZV9rZXkgPT09ICdzdHJpbmcnICYmXHJcbiAgICAgICAgICAgIHRoaXMuY29uZmlnLmNvdXBvbl9zdG9yYWdlX2tleSAhPT0gJydcclxuICAgICAgICApIHtcclxuICAgICAgICAgICAgdGhpcy5zdG9yYWdlX2tleSA9IHRoaXMuY29uZmlnLmNvdXBvbl9zdG9yYWdlX2tleTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBqc29uRW5jb2RlTWFwKGRhdGE6IEVzb2x2ZUNvdXBvbnNDYWNoZSk6IHN0cmluZyB7XHJcbiAgICAgICAgaWYgKCEoZGF0YSBpbnN0YW5jZW9mIE1hcCkpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIG1hcCB0eXBlJyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoZGF0YSwgKGtleSwgdmFsdWUpID0+IHtcclxuICAgICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgTWFwKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGRhdGFUeXBlOiAnTWFwJyxcclxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogWy4uLnZhbHVlXSxcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGpzb25EZWNvZGVNYXAoanNvbl9kYXRhOiBzdHJpbmcpOiBFc29sdmVDb3Vwb25zQ2FjaGUge1xyXG4gICAgICAgIGNvbnN0IGRhdGEgPSBKU09OLnBhcnNlKGpzb25fZGF0YSwgKGtleSwgdmFsdWUpID0+IHtcclxuICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgIT09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5kYXRhVHlwZSA9PT0gJ01hcCcpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IE1hcCh2YWx1ZS52YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgaWYgKGRhdGEgaW5zdGFuY2VvZiBNYXApIHtcclxuICAgICAgICAgICAgcmV0dXJuIGRhdGE7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgbWFwIHR5cGUnKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHByb2Nlc3NDb3Vwb25zKHJlY29yZHM6IEVzb2x2ZUNvdXBvblJlY29yZFtdKTogRXNvbHZlQ291cG9uW10ge1xyXG4gICAgICAgIGNvbnN0IGNvdXBvbnM6IEVzb2x2ZUNvdXBvbltdID0gW107XHJcblxyXG4gICAgICAgIGlmIChyZWNvcmRzKSB7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgcmVjb3JkIG9mIHJlY29yZHMpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGNvdXBvbiA9IG5ldyBFc29sdmVDb3Vwb24ocmVjb3JkKTtcclxuXHJcbiAgICAgICAgICAgICAgICBjb3Vwb25zLnB1c2goY291cG9uKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGNvdXBvbnM7XHJcbiAgICB9XHJcbn1cclxuIl19","// Classes\r\nexport * from './classes';\r\n// Interfaces\r\nexport * from './interfaces';\r\n// Types\r\nexport * from './types';\r\n// Service\r\nexport * from './esolve-coupons.service';\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvY291cG9ucy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxVQUFVO0FBQ1YsY0FBYyxXQUFXLENBQUM7QUFFMUIsYUFBYTtBQUNiLGNBQWMsY0FBYyxDQUFDO0FBRTdCLFFBQVE7QUFDUixjQUFjLFNBQVMsQ0FBQztBQUV4QixVQUFVO0FBQ1YsY0FBYywwQkFBMEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENsYXNzZXNcclxuZXhwb3J0ICogZnJvbSAnLi9jbGFzc2VzJztcclxuXHJcbi8vIEludGVyZmFjZXNcclxuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2VzJztcclxuXHJcbi8vIFR5cGVzXHJcbmV4cG9ydCAqIGZyb20gJy4vdHlwZXMnO1xyXG5cclxuLy8gU2VydmljZVxyXG5leHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS1jb3Vwb25zLnNlcnZpY2UnO1xyXG4iXX0=","import { Inject, Injectable } from '@angular/core';\r\nimport { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { iif, of } from 'rxjs';\r\nimport { catchError, map, switchMap } from 'rxjs/operators';\r\nimport { ESOLVE_CONNECT_CONFIG } from '../esolve-connect-config.constant';\r\nimport { EsolveErrorHandlerService } from '../shared/errors/esolve-error-handler.service';\r\nimport { EsolveResponseHandlerService, } from '../shared/response';\r\nimport { EsolveCouponsService } from '../coupons';\r\nimport { EsolveCartItem, EsolveCartStockItem, EsolveCartTotals, EsolveCheckoutResult, EsolveEmptyCartResult, EsolveTransactionAnalyticsData, } from './classes';\r\nimport * as i0 from \"@angular/core\";\r\nimport * as i1 from \"@angular/common/http\";\r\nimport * as i2 from \"../shared/errors/esolve-error-handler.service\";\r\nimport * as i3 from \"../shared/response\";\r\nimport * as i4 from \"../coupons\";\r\nexport class EsolveCartService {\r\n constructor(config, http, errorHandler, responseHandler, coupons) {\r\n this.config = config;\r\n this.http = http;\r\n this.errorHandler = errorHandler;\r\n this.responseHandler = responseHandler;\r\n this.coupons = coupons;\r\n this._cached_tracking = 0;\r\n }\r\n /**\r\n * Retrieves the current cart\r\n *\r\n * @returns An `Observable` with an array of cart items\r\n */\r\n getCart() {\r\n let params = new HttpParams();\r\n const coupons = this.coupons.getAppliedCouponKeys();\r\n if (coupons.length > 0) {\r\n params = params.set('coupons', coupons.join(','));\r\n }\r\n return this.http\r\n .get(`${this.config.api_url}/get-cart.php`, { params })\r\n .pipe(map((response) => {\r\n if (response.records === undefined) {\r\n throw response;\r\n }\r\n return this.processCart(response.records);\r\n }));\r\n }\r\n /**\r\n * Updates the cart by preforming various actions, such as adding, editing or removing items from the cart.\r\n *\r\n * @param items An array of options to update the cart\r\n * @param action The default action to preform\r\n *\r\n * @returns An `Observable` with an array of responses that gives feedback on the requested changes\r\n */\r\n setCart(items, action = 'add') {\r\n const body = {\r\n items,\r\n action,\r\n };\r\n return this.http\r\n .post(`${this.config.api_url}/set-cart-item.php`, body, {\r\n headers: {\r\n 'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;',\r\n },\r\n responseType: 'json',\r\n observe: 'body',\r\n })\r\n .pipe(map((response) => {\r\n if (response.responses === undefined) {\r\n throw response;\r\n }\r\n return response.responses;\r\n }));\r\n }\r\n setCartEmpty(type, additional_where) {\r\n const body = {\r\n type,\r\n additional_where,\r\n };\r\n return this.http\r\n .post(`${this.config.api_url}/set-cart-empty.php`, body, {\r\n headers: {\r\n 'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;',\r\n },\r\n responseType: 'json',\r\n observe: 'body',\r\n })\r\n .pipe(map((http_response) => this.responseHandler.validateSingleHttpResponse(http_response, (response) => {\r\n this._cached_tracking = 0;\r\n return new EsolveEmptyCartResult(response);\r\n })), catchError((errorRes) => {\r\n return this.errorHandler.handleHttpPostError('set-cart-empty', errorRes);\r\n }));\r\n }\r\n /**\r\n * Retrieves the totals of the cart with all the totals calculated\r\n *\r\n * @returns An `Observable` with an object containing cart totals\r\n */\r\n getTotals(type) {\r\n return this.http\r\n .get(`${this.config.api_url}/get-cart-totals.php`, {\r\n params: {\r\n type: type ?? '',\r\n },\r\n })\r\n .pipe(map((response) => {\r\n if (response.records === undefined) {\r\n throw response;\r\n }\r\n return this.processCartTotals(response.records);\r\n }));\r\n }\r\n /**\r\n * Retrieves a tracking code for the cart\r\n *\r\n * @returns An `Observable` with the cart tracking code\r\n */\r\n getTrackingCode() {\r\n return iif(() => this._cached_tracking > 0, of(this._cached_tracking), this.http\r\n .get(`${this.config.api_url}/get-checkout-tracking.php`)\r\n .pipe(map((response) => {\r\n if (response.records === undefined) {\r\n throw response;\r\n }\r\n this._cached_tracking = response.records.tracking;\r\n return response.records.tracking;\r\n })));\r\n }\r\n /**\r\n * Get the data of the transaction for the analytics\r\n *\r\n * @param transaction_id ID of the transaction used in eSolve\r\n *\r\n * @returns An `Observable` with the analytics data\r\n */\r\n getTransactionAnalyticsData(transaction_id) {\r\n return this.http\r\n .get(`${this.config.api_url}/get-transaction-analytics-data.php`, {\r\n params: {\r\n transaction_id,\r\n },\r\n })\r\n .pipe(map((response) => {\r\n if (response.records === undefined) {\r\n throw response;\r\n }\r\n return new EsolveTransactionAnalyticsData(response.records);\r\n }));\r\n }\r\n /**\r\n * Initiates checkout of the cart items\r\n *\r\n * @param type The cart type that needs to be checked out\r\n * @param addresses_id The ID of the delivery address\r\n * @param shipping_id The ID of the shipping method\r\n * @param payment_method_id The ID of the selected payment method\r\n * @param location_id The ID of the selected branch from with shipping needs to be calculated\r\n * @param comments Additional comments on the cart\r\n *\r\n * @returns An `Observable` with the transaction ID\r\n */\r\n checkout(type, addresses_id, shipping_id, payment_method_id = 0, location_id = 0, comments = '') {\r\n const body = {\r\n type,\r\n addresses_id,\r\n shipping_id,\r\n payment_method_id,\r\n location_id,\r\n comments,\r\n tracking: 0,\r\n };\r\n return this.getTrackingCode().pipe(switchMap((tracking) => {\r\n if (tracking <= 0) {\r\n throw tracking;\r\n }\r\n body.tracking = tracking;\r\n return this.http\r\n .post(`${this.config.api_url}/set-checkout.php`, body, {\r\n headers: {\r\n 'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;',\r\n },\r\n responseType: 'json',\r\n observe: 'body',\r\n })\r\n .pipe(map((http_response) => this.responseHandler.validateSingleHttpResponse(http_response, (response) => {\r\n this._cached_tracking = 0;\r\n this.coupons.reset();\r\n return new EsolveCheckoutResult(response);\r\n })), catchError((errorRes) => {\r\n return this.errorHandler.handleHttpPostError('set-checkout', errorRes);\r\n }));\r\n }));\r\n }\r\n /**\r\n * Processes the eSolve tree records\r\n *\r\n * @param cart_item_records Records to process\r\n * @returns An array of processed cart items\r\n */\r\n processCart(cart_item_records) {\r\n const cart_items = [];\r\n if (cart_item_records) {\r\n for (const cart_item_record of cart_item_records) {\r\n const cart_stock_item = new EsolveCartStockItem(cart_item_record.code, cart_item_record.name, cart_item_record.sef_name, cart_item_record.description, cart_item_record.is_active, +cart_item_record.items_in_pack, cart_item_record.delivery_category, +cart_item_record.onhand, cart_item_record.image_name);\r\n cart_items.push(new EsolveCartItem(+cart_item_record.id, cart_stock_item, +cart_item_record.qty, cart_item_record.delivery_category, cart_item_record.type, +cart_item_record.price, +cart_item_record.discount, +cart_item_record.discount_interval, cart_item_record.vat_rate, cart_item_record.allow_quotes, cart_item_record.allow_orders, cart_item_record.must_collect, cart_item_record.requested_assembly, +cart_item_record.price_incl, +cart_item_record.discount_price, +cart_item_record.discount_price_incl, +cart_item_record.discount_total, +cart_item_record.vat_total, +cart_item_record.line_total, +cart_item_record.line_total_incl));\r\n }\r\n }\r\n return cart_items;\r\n }\r\n /**\r\n * Processes the eSolve cart totals\r\n *\r\n * @param record Data to process\r\n * @returns Processed cart totals\r\n */\r\n processCartTotals(record) {\r\n const cart_totals = new EsolveCartTotals(+record.records, +record.items, +record.total, +record.vat, +record.discount);\r\n return cart_totals;\r\n }\r\n}\r\nEsolveCartService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveCartService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1.HttpClient }, { token: i2.EsolveErrorHandlerService }, { token: i3.EsolveResponseHandlerService }, { token: i4.EsolveCouponsService }], target: i0.ɵɵFactoryTarget.Injectable });\r\nEsolveCartService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveCartService, providedIn: 'root' });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveCartService, decorators: [{\r\n type: Injectable,\r\n args: [{\r\n providedIn: 'root',\r\n }]\r\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\r\n type: Inject,\r\n args: [ESOLVE_CONNECT_CONFIG]\r\n }] }, { type: i1.HttpClient }, { type: i2.EsolveErrorHandlerService }, { type: i3.EsolveResponseHandlerService }, { type: i4.EsolveCouponsService }]; } });\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWNhcnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9jYXJ0L2Vzb2x2ZS1jYXJ0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFFLFVBQVUsRUFBcUIsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFakYsT0FBTyxFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHNUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDMUUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDMUYsT0FBTyxFQUVILDRCQUE0QixHQUUvQixNQUFNLG9CQUFvQixDQUFDO0FBRzVCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUVsRCxPQUFPLEVBQ0gsY0FBYyxFQUNkLG1CQUFtQixFQUNuQixnQkFBZ0IsRUFDaEIsb0JBQW9CLEVBQ3BCLHFCQUFxQixFQUNyQiw4QkFBOEIsR0FDakMsTUFBTSxXQUFXLENBQUM7Ozs7OztBQWlCbkIsTUFBTSxPQUFPLGlCQUFpQjtJQUcxQixZQUMyQyxNQUEyQixFQUMxRCxJQUFnQixFQUNoQixZQUF1QyxFQUN2QyxlQUE2QyxFQUM3QyxPQUE2QjtRQUpFLFdBQU0sR0FBTixNQUFNLENBQXFCO1FBQzFELFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsaUJBQVksR0FBWixZQUFZLENBQTJCO1FBQ3ZDLG9CQUFlLEdBQWYsZUFBZSxDQUE4QjtRQUM3QyxZQUFPLEdBQVAsT0FB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LENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUN2QixDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFDMUIsQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsRUFDbkMsZ0JBQWdCLENBQUMsUUFBUSxFQUN6QixnQkFBZ0IsQ0FBQyxZQUFZLEVBQzdCLGdCQUFnQixDQUFDLFlBQVksRUFDN0IsZ0JBQWdCLENBQUMsWUFBWSxFQUM3QixnQkFBZ0IsQ0FBQyxrQkFBa0IsRUFDbkMsQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLEVBQzVCLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxFQUNoQyxDQUFDLGdCQUFnQixDQUFDLG1CQUFtQixFQUNyQyxDQUFDLGdCQUFnQixDQUFDLGNBQWMsRUFDaEMsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQzNCLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxFQUM1QixDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FDcEMsQ0FBQyxDQUFDO2FBQ047U0FDSjtRQUVELE9BQU8sVUFBVSxDQUFDO0lBQ3RCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNLLGlCQUFpQixDQUFDLE1BQThCO1FBQ3BELE1BQU0sV0FBVyxHQUFHLElBQUksZ0JBQWdCLENBQ3BDLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFDZixDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQ2IsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUNiLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFDWCxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQ25CLENBQUM7UUFFRixPQUFPLFdBQVcsQ0FBQztJQUN2QixDQUFDOzs4R0EvVVEsaUJBQWlCLGtCQUlkLHFCQUFxQjtrSEFKeEIsaUJBQWlCLGNBRmQsTUFBTTsyRkFFVCxpQkFBaUI7a0JBSDdCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCOzswQkFLUSxNQUFNOzJCQUFDLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEVycm9yUmVzcG9uc2UsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcblxyXG5pbXBvcnQgeyBpaWYsIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgRXNvbHZlQ29ubmVjdENvbmZpZyB9IGZyb20gJy4uL2Vzb2x2ZS1jb25uZWN0LmNvbmZpZyc7XHJcbmltcG9ydCB7IEVTT0xWRV9DT05ORUNUX0NPTkZJRyB9IGZyb20gJy4uL2Vzb2x2ZS1jb25uZWN0LWNvbmZpZy5jb25zdGFudCc7XHJcbmltcG9ydCB7IEVzb2x2ZUVycm9ySGFuZGxlclNlcnZpY2UgfSBmcm9tICcuLi9zaGFyZWQvZXJyb3JzL2Vzb2x2ZS1lcnJvci1oYW5kbGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQge1xyXG4gICAgRXNvbHZlR2V0UmVzcG9uc2UsXHJcbiAgICBFc29sdmVSZXNwb25zZUhhbmRsZXJTZXJ2aWNlLFxyXG4gICAgRXNvbHZlU2V0UmVzcG9uc2UsXHJcbn0gZnJvbSAnLi4vc2hhcmVkL3Jlc3BvbnNlJztcclxuXHJcbmltcG9ydCB7IEVzb2x2ZVRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJy4uL2FjY291bnQnO1xyXG5pbXBvcnQgeyBFc29sdmVDb3Vwb25zU2VydmljZSB9IGZyb20gJy4uL2NvdXBvbnMnO1xyXG5cclxuaW1wb3J0IHtcclxuICAgIEVzb2x2ZUNhcnRJdGVtLFxyXG4gICAgRXNvbHZlQ2FydFN0b2NrSXRlbSxcclxuICAgIEVzb2x2ZUNhcnRUb3RhbHMsXHJcbiAgICBFc29sdmVDaGVja291dFJlc3VsdCxcclxuICAgIEVzb2x2ZUVtcHR5Q2FydFJlc3VsdCxcclxuICAgIEVzb2x2ZVRyYW5zYWN0aW9uQW5hbHl0aWNzRGF0YSxcclxufSBmcm9tICcuL2NsYXNzZXMnO1xyXG5pbXBvcnQge1xyXG4gICAgRXNvbHZlQWRkaXRpb25hbFdoZXJlLFxyXG4gICAgRXNvbHZlQ2FydEVtcHR5UmVzcG9uc2UsXHJcbiAgICBFc29sdmVDYXJ0SXRlbVJlY29yZCxcclxuICAgIEVzb2x2ZUNhcnRJdGVtUmVzcG9uc2UsXHJcbiAgICBFc29sdmVDYXJ0U2V0SXRlbSxcclxuICAgIEVzb2x2ZUNhcnRUb3RhbHNSZWNvcmQsXHJcbiAgICBFc29sdmVDaGVja291dFJlc3BvbnNlLFxyXG4gICAgRXNvbHZlVHJhY2tpbmdDb2RlLFxyXG4gICAgRXNvbHZlVHJhbnNhY3Rpb25BbmFseXRpY3NEYXRhUmVjb3JkLFxyXG59IGZyb20gJy4vaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IEVzb2x2ZUNhcnQsIEVzb2x2ZUNhcnRTZXRBY3Rpb24gfSBmcm9tICcuL3R5cGVzJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEVzb2x2ZUNhcnRTZXJ2aWNlIHtcclxuICAgIHByaXZhdGUgX2NhY2hlZF90cmFja2luZyA9IDA7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgQEluamVjdChFU09MVkVfQ09OTkVDVF9DT05GSUcpIHByaXZhdGUgY29uZmlnOiBFc29sdmVDb25uZWN0Q29uZmlnLFxyXG4gICAgICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgICAgICBwcml2YXRlIGVycm9ySGFuZGxlcjogRXNvbHZlRXJyb3JIYW5kbGVyU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHJlc3BvbnNlSGFuZGxlcjogRXNvbHZlUmVzcG9uc2VIYW5kbGVyU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIGNvdXBvbnM6IEVzb2x2ZUNvdXBvbnNTZXJ2aWNlLFxyXG4gICAgKSB7fVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0cmlldmVzIHRoZSBjdXJyZW50IGNhcnRcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyBBbiBgT2JzZXJ2YWJsZWAgd2l0aCBhbiBhcnJheSBvZiBjYXJ0IGl0ZW1zXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRDYXJ0KCk6IE9ic2VydmFibGU8RXNvbHZlQ2FydD4ge1xyXG4gICAgICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xyXG5cclxuICAgICAgICBjb25zdCBjb3Vwb25zID0gdGhpcy5jb3Vwb25zLmdldEFwcGxpZWRDb3Vwb25LZXlzKCk7XHJcblxyXG4gICAgICAgIGlmIChjb3Vwb25zLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnY291cG9ucycsIGNvdXBvbnMuam9pbignLCcpKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgICAgICAgLmdldDxFc29sdmVHZXRSZXNwb25zZTxFc29sdmVDYXJ0SXRlbVJlY29yZFtdPj4oXHJcbiAgICAgICAgICAgICAgICBgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9nZXQtY2FydC5waHBgLFxyXG4gICAgICAgICAgICAgICAgeyBwYXJhbXMgfSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UucmVjb3JkcyA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc0NhcnQocmVzcG9uc2UucmVjb3Jkcyk7XHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFVwZGF0ZXMgdGhlIGNhcnQgYnkgcHJlZm9ybWluZyB2YXJpb3VzIGFjdGlvbnMsIHN1Y2ggYXMgYWRkaW5nLCBlZGl0aW5nIG9yIHJlbW92aW5nIGl0ZW1zIGZyb20gdGhlIGNhcnQuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGl0ZW1zIEFuIGFycmF5IG9mIG9wdGlvbnMgdG8gdXBkYXRlIHRoZSBjYXJ0XHJcbiAgICAgKiBAcGFyYW0gYWN0aW9uIFRoZSBkZWZhdWx0IGFjdGlvbiB0byBwcmVmb3JtXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybnMgQW4gYE9ic2VydmFibGVgIHdpdGggYW4gYXJyYXkgb2YgcmVzcG9uc2VzIHRoYXQgZ2l2ZXMgZmVlZGJhY2sgb24gdGhlIHJlcXVlc3RlZCBjaGFuZ2VzXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzZXRDYXJ0KFxyXG4gICAgICAgIGl0ZW1zOiBFc29sdmVDYXJ0U2V0SXRlbVtdLFxyXG4gICAgICAgIGFjdGlvbjogRXNvbHZlQ2FydFNldEFjdGlvbiA9ICdhZGQnLFxyXG4gICAgKTogT2JzZXJ2YWJsZTxFc29sdmVDYXJ0SXRlbVJlc3BvbnNlW10+IHtcclxuICAgICAgICBjb25zdCBib2R5ID0ge1xyXG4gICAgICAgICAgICBpdGVtcyxcclxuICAgICAgICAgICAgYWN0aW9uLFxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgICAgICAgLnBvc3Q8RXNvbHZlU2V0UmVzcG9uc2U8RXNvbHZlQ2FydEl0ZW1SZXNwb25zZT4+KFxyXG4gICAgICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vc2V0LWNhcnQtaXRlbS5waHBgLFxyXG4gICAgICAgICAgICAgICAgYm9keSxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9dXRmLTg7JyxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlVHlwZTogJ2pzb24nLFxyXG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmU6ICdib2R5JyxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnJlc3BvbnNlcyA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLnJlc3BvbnNlcztcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXRDYXJ0RW1wdHkoXHJcbiAgICAgICAgdHlwZTogRXNvbHZlVHJhbnNhY3Rpb25UeXBlLFxyXG4gICAgICAgIGFkZGl0aW9uYWxfd2hlcmU6IEVzb2x2ZUFkZGl0aW9uYWxXaGVyZVtdLFxyXG4gICAgKTogT2JzZXJ2YWJsZTxFc29sdmVFbXB0eUNhcnRSZXN1bHQ+IHtcclxuICAgICAgICBjb25zdCBib2R5ID0ge1xyXG4gICAgICAgICAgICB0eXBlLFxyXG4gICAgICAgICAgICBhZGRpdGlvbmFsX3doZXJlLFxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgICAgICAgLnBvc3Q8RXNvbHZlU2V0UmVzcG9uc2U8RXNvbHZlQ2FydEVtcHR5UmVzcG9uc2U+PihcclxuICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L3NldC1jYXJ0LWVtcHR5LnBocGAsXHJcbiAgICAgICAgICAgICAgICBib2R5LFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD11dGYtODsnLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlOiAnanNvbicsXHJcbiAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZTogJ2JvZHknLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIG1hcCgoaHR0cF9yZXNwb25zZSkgPT4gdGhpcy5yZXNwb25zZUhhbmRsZXIudmFsaWRhdGVTaW5nbGVIdHRwUmVzcG9uc2UoXHJcbiAgICAgICAgICAgICAgICAgICAgaHR0cF9yZXNwb25zZSxcclxuICAgICAgICAgICAgICAgICAgICAocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2FjaGVkX3RyYWNraW5nID0gMDtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRXNvbHZlRW1wdHlDYXJ0UmVzdWx0KHJlc3BvbnNlKTtcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgKSksXHJcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvclJlczogSHR0cEVycm9yUmVzcG9uc2UgfCBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5lcnJvckhhbmRsZXIuaGFuZGxlSHR0cFBvc3RFcnJvcignc2V0LWNhcnQtZW1wdHknLCBlcnJvclJlcyk7XHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHJpZXZlcyB0aGUgdG90YWxzIG9mIHRoZSBjYXJ0IHdpdGggYWxsIHRoZSB0b3RhbHMgY2FsY3VsYXRlZFxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIEFuIGBPYnNlcnZhYmxlYCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGNhcnQgdG90YWxzXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRUb3RhbHModHlwZT86IEVzb2x2ZVRyYW5zYWN0aW9uVHlwZSk6IE9ic2VydmFibGU8RXNvbHZlQ2FydFRvdGFscz4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgICAgICAgLmdldDxFc29sdmVHZXRSZXNwb25zZTxFc29sdmVDYXJ0VG90YWxzUmVjb3JkPj4oXHJcbiAgICAgICAgICAgICAgICBgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9nZXQtY2FydC10b3RhbHMucGhwYCxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBwYXJhbXM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogdHlwZSA/PyAnJyxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UucmVjb3JkcyA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc0NhcnRUb3RhbHMocmVzcG9uc2UucmVjb3Jkcyk7XHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHJpZXZlcyBhIHRyYWNraW5nIGNvZGUgZm9yIHRoZSBjYXJ0XHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybnMgQW4gYE9ic2VydmFibGVgIHdpdGggdGhlIGNhcnQgdHJhY2tpbmcgY29kZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0VHJhY2tpbmdDb2RlKCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XHJcbiAgICAgICAgcmV0dXJuIGlpZihcclxuICAgICAgICAgICAgKCkgPT4gdGhpcy5fY2FjaGVkX3RyYWNraW5nID4gMCxcclxuICAgICAgICAgICAgb2YodGhpcy5fY2FjaGVkX3RyYWNraW5nKSxcclxuICAgICAgICAgICAgdGhpcy5odHRwXHJcbiAgICAgICAgICAgICAgICAuZ2V0PEVzb2x2ZUdldFJlc3BvbnNlPEVzb2x2ZVRyYWNraW5nQ29kZT4+KFxyXG4gICAgICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L2dldC1jaGVja291dC10cmFja2luZy5waHBgLFxyXG4gICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UucmVjb3JkcyA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyByZXNwb25zZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2FjaGVkX3RyYWNraW5nID0gcmVzcG9uc2UucmVjb3Jkcy50cmFja2luZztcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZS5yZWNvcmRzLnRyYWNraW5nO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgKSxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0IHRoZSBkYXRhIG9mIHRoZSB0cmFuc2FjdGlvbiBmb3IgdGhlIGFuYWx5dGljc1xyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB0cmFuc2FjdGlvbl9pZCBJRCBvZiB0aGUgdHJhbnNhY3Rpb24gdXNlZCBpbiBlU29sdmVcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyBBbiBgT2JzZXJ2YWJsZWAgd2l0aCB0aGUgYW5hbHl0aWNzIGRhdGFcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldFRyYW5zYWN0aW9uQW5hbHl0aWNzRGF0YTxUID0gYW55PihcclxuICAgICAgICB0cmFuc2FjdGlvbl9pZDogbnVtYmVyLFxyXG4gICAgKTogT2JzZXJ2YWJsZTxFc29sdmVUcmFuc2FjdGlvbkFuYWx5dGljc0RhdGE8VD4+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgICAgICAgIC5nZXQ8RXNvbHZlR2V0UmVzcG9uc2U8RXNvbHZlVHJhbnNhY3Rpb25BbmFseXRpY3NEYXRhUmVjb3JkPFQ+Pj4oXHJcbiAgICAgICAgICAgICAgICBgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9nZXQtdHJhbnNhY3Rpb24tYW5hbHl0aWNzLWRhdGEucGhwYCxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBwYXJhbXM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25faWQsXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnJlY29yZHMgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyByZXNwb25zZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRXNvbHZlVHJhbnNhY3Rpb25BbmFseXRpY3NEYXRhPFQ+KHJlc3BvbnNlLnJlY29yZHMpO1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbml0aWF0ZXMgY2hlY2tvdXQgb2YgdGhlIGNhcnQgaXRlbXNcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gdHlwZSBUaGUgY2FydCB0eXBlIHRoYXQgbmVlZHMgdG8gYmUgY2hlY2tlZCBvdXRcclxuICAgICAqIEBwYXJhbSBhZGRyZXNzZXNfaWQgVGhlIElEIG9mIHRoZSBkZWxpdmVyeSBhZGRyZXNzXHJcbiAgICAgKiBAcGFyYW0gc2hpcHBpbmdfaWQgVGhlIElEIG9mIHRoZSBzaGlwcGluZyBtZXRob2RcclxuICAgICAqIEBwYXJhbSBwYXltZW50X21ldGhvZF9pZCBUaGUgSUQgb2YgdGhlIHNlbGVjdGVkIHBheW1lbnQgbWV0aG9kXHJcbiAgICAgKiBAcGFyYW0gbG9jYXRpb25faWQgVGhlIElEIG9mIHRoZSBzZWxlY3RlZCBicmFuY2ggZnJvbSB3aXRoIHNoaXBwaW5nIG5lZWRzIHRvIGJlIGNhbGN1bGF0ZWRcclxuICAgICAqIEBwYXJhbSBjb21tZW50cyBBZGRpdGlvbmFsIGNvbW1lbnRzIG9uIHRoZSBjYXJ0XHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybnMgQW4gYE9ic2VydmFibGVgIHdpdGggdGhlIHRyYW5zYWN0aW9uIElEXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBjaGVja291dChcclxuICAgICAgICB0eXBlOiBFc29sdmVUcmFuc2FjdGlvblR5cGUsXHJcbiAgICAgICAgYWRkcmVzc2VzX2lkOiBudW1iZXIsXHJcbiAgICAgICAgc2hpcHBpbmdfaWQ6IG51bWJlcixcclxuICAgICAgICBwYXltZW50X21ldGhvZF9pZCA9IDAsXHJcbiAgICAgICAgbG9jYXRpb25faWQgPSAwLFxyXG4gICAgICAgIGNvbW1lbnRzID0gJycsXHJcbiAgICApOiBPYnNlcnZhYmxlPEVzb2x2ZUNoZWNrb3V0UmVzdWx0PiB7XHJcbiAgICAgICAgY29uc3QgYm9keSA9IHtcclxuICAgICAgICAgICAgdHlwZSxcclxuICAgICAgICAgICAgYWRkcmVzc2VzX2lkLFxyXG4gICAgICAgICAgICBzaGlwcGluZ19pZCxcclxuICAgICAgICAgICAgcGF5bWVudF9tZXRob2RfaWQsXHJcbiAgICAgICAgICAgIGxvY2F0aW9uX2lkLFxyXG4gICAgICAgICAgICBjb21tZW50cyxcclxuICAgICAgICAgICAgdHJhY2tpbmc6IDAsXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VHJhY2tpbmdDb2RlKCkucGlwZShcclxuICAgICAgICAgICAgc3dpdGNoTWFwKCh0cmFja2luZykgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRyYWNraW5nIDw9IDApIHtcclxuICAgICAgICAgICAgICAgICAgICB0aHJvdyB0cmFja2luZztcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBib2R5LnRyYWNraW5nID0gdHJhY2tpbmc7XHJcblxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAgICAgICAgICAgICAgIC5wb3N0PEVzb2x2ZVNldFJlc3BvbnNlPEVzb2x2ZUNoZWNrb3V0UmVzcG9uc2U+PihcclxuICAgICAgICAgICAgICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vc2V0LWNoZWNrb3V0LnBocGAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvZHksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PXV0Zi04OycsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlOiAnanNvbicsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYnNlcnZlOiAnYm9keScsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXAoKGh0dHBfcmVzcG9uc2UpID0+IHRoaXMucmVzcG9uc2VIYW5kbGVyLnZhbGlkYXRlU2luZ2xlSHR0cFJlc3BvbnNlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaHR0cF9yZXNwb25zZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2NhY2hlZF90cmFja2luZyA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb3Vwb25zLnJlc2V0KCk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRXNvbHZlQ2hlY2tvdXRSZXN1bHQocmVzcG9uc2UpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgKSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yUmVzOiBIdHRwRXJyb3JSZXNwb25zZSB8IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JIYW5kbGVyLmhhbmRsZUh0dHBQb3N0RXJyb3IoJ3NldC1jaGVja291dCcsIGVycm9yUmVzKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFByb2Nlc3NlcyB0aGUgZVNvbHZlIHRyZWUgcmVjb3Jkc1xyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBjYXJ0X2l0ZW1fcmVjb3JkcyBSZWNvcmRzIHRvIHByb2Nlc3NcclxuICAgICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIHByb2Nlc3NlZCBjYXJ0IGl0ZW1zXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgcHJvY2Vzc0NhcnQoY2FydF9pdGVtX3JlY29yZHM6IEVzb2x2ZUNhcnRJdGVtUmVjb3JkW10pOiBFc29sdmVDYXJ0IHtcclxuICAgICAgICBjb25zdCBjYXJ0X2l0ZW1zOiBFc29sdmVDYXJ0SXRlbVtdID0gW107XHJcblxyXG4gICAgICAgIGlmIChjYXJ0X2l0ZW1fcmVjb3Jkcykge1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGNhcnRfaXRlbV9yZWNvcmQgb2YgY2FydF9pdGVtX3JlY29yZHMpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGNhcnRfc3RvY2tfaXRlbSA9IG5ldyBFc29sdmVDYXJ0U3RvY2tJdGVtKFxyXG4gICAgICAgICAgICAgICAgICAgIGNhcnRfaXRlbV9yZWNvcmQuY29kZSxcclxuICAgICAgICAgICAgICAgICAgICBjYXJ0X2l0ZW1fcmVjb3JkLm5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgY2FydF9pdGVtX3JlY29yZC5zZWZfbmFtZSxcclxuICAgICAgICAgICAgICAgICAgICBjYXJ0X2l0ZW1fcmVjb3JkLmRlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgICAgICAgICAgIGNhcnRfaXRlbV9yZWNvcmQuaXNfYWN0aXZlLFxyXG4gICAgICAgICAgICAgICAgICAgICtjYXJ0X2l0ZW1fcmVjb3JkLml0ZW1zX2luX3BhY2ssXHJcbiAgICAgICAgICAgICAgICAgICAgY2FydF9pdGVtX3JlY29yZC5kZWxpdmVyeV9jYXRlZ29yeSxcclxuICAgICAgICAgICAgICAgICAgICArY2FydF9pdGVtX3JlY29yZC5vbmhhbmQsXHJcbiAgICAgICAgICAgICAgICAgICAgY2FydF9pdGVtX3JlY29yZC5pbWFnZV9uYW1lLFxyXG4gICAgICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICAgICAgICBjYXJ0X2l0ZW1zLnB1c2gobmV3IEVzb2x2ZUNhcnRJdGVtKFxyXG4gICAgICAgICAgICAgICAgICAgICtjYXJ0X2l0ZW1fcmVjb3JkLmlkLFxyXG4gICAgICAgICAgICAgICAgICAgIGNhcnRfc3RvY2tfaXRlbSxcclxuICAgICAgICAgICAgICAgICAgICArY2FydF9pdGVtX3JlY29yZC5xdHksXHJcbiAgICAgICAgICAgICAgICAgICAgY2FydF9pdGVtX3JlY29yZC5kZWxpdmVyeV9jYXRlZ29yeSxcclxuICAgICAgICAgICAgICAgICAgICBjYXJ0X2l0ZW1fcmVjb3JkLnR5cGUsXHJcbiAgICAgICAgICAgICAgICAgICAgK2NhcnRfaXRlbV9yZWNvcmQucHJpY2UsXHJcbiAgICAgICAgICAgICAgICAgICAgK2NhcnRfaXRlbV9yZWNvcmQuZGlzY291bnQsXHJcbiAgICAgICAgICAgICAgICAgICAgK2NhcnRfaXRlbV9yZWNvcmQuZGlzY291bnRfaW50ZXJ2YWwsXHJcbiAgICAgICAgICAgICAgICAgICAgY2FydF9pdGVtX3JlY29yZC52YXRfcmF0ZSxcclxuICAgICAgICAgICAgICAgICAgICBjYXJ0X2l0ZW1fcmVjb3JkLmFsbG93X3F1b3RlcyxcclxuICAgICAgICAgICAgICAgICAgICBjYXJ0X2l0ZW1fcmVjb3JkLmFsbG93X29yZGVycyxcclxuICAgICAgICAgICAgICAgICAgICBjYXJ0X2l0ZW1fcmVjb3JkLm11c3RfY29sbGVjdCxcclxuICAgICAgICAgICAgICAgICAgICBjYXJ0X2l0ZW1fcmVjb3JkLnJlcXVlc3RlZF9hc3NlbWJseSxcclxuICAgICAgICAgICAgICAgICAgICArY2FydF9pdGVtX3JlY29yZC5wcmljZV9pbmNsLFxyXG4gICAgICAgICAgICAgICAgICAgICtjYXJ0X2l0ZW1fcmVjb3JkLmRpc2NvdW50X3ByaWNlLFxyXG4gICAgICAgICAgICAgICAgICAgICtjYXJ0X2l0ZW1fcmVjb3JkLmRpc2NvdW50X3ByaWNlX2luY2wsXHJcbiAgICAgICAgICAgICAgICAgICAgK2NhcnRfaXRlbV9yZWNvcmQuZGlzY291bnRfdG90YWwsXHJcbiAgICAgICAgICAgICAgICAgICAgK2NhcnRfaXRlbV9yZWNvcmQudmF0X3RvdGFsLFxyXG4gICAgICAgICAgICAgICAgICAgICtjYXJ0X2l0ZW1fcmVjb3JkLmxpbmVfdG90YWwsXHJcbiAgICAgICAgICAgICAgICAgICAgK2NhcnRfaXRlbV9yZWNvcmQubGluZV90b3RhbF9pbmNsLFxyXG4gICAgICAgICAgICAgICAgKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBjYXJ0X2l0ZW1zO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUHJvY2Vzc2VzIHRoZSBlU29sdmUgY2FydCB0b3RhbHNcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gcmVjb3JkIERhdGEgdG8gcHJvY2Vzc1xyXG4gICAgICogQHJldHVybnMgUHJvY2Vzc2VkIGNhcnQgdG90YWxzXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgcHJvY2Vzc0NhcnRUb3RhbHMocmVjb3JkOiBFc29sdmVDYXJ0VG90YWxzUmVjb3JkKTogRXNvbHZlQ2FydFRvdGFscyB7XHJcbiAgICAgICAgY29uc3QgY2FydF90b3RhbHMgPSBuZXcgRXNvbHZlQ2FydFRvdGFscyhcclxuICAgICAgICAgICAgK3JlY29yZC5yZWNvcmRzLFxyXG4gICAgICAgICAgICArcmVjb3JkLml0ZW1zLFxyXG4gICAgICAgICAgICArcmVjb3JkLnRvdGFsLFxyXG4gICAgICAgICAgICArcmVjb3JkLnZhdCxcclxuICAgICAgICAgICAgK3JlY29yZC5kaXNjb3VudCxcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICByZXR1cm4gY2FydF90b3RhbHM7XHJcbiAgICB9XHJcbn1cclxuIl19","import { Inject, Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { throwError } from 'rxjs';\r\nimport { catchError, map } from 'rxjs/operators';\r\nimport { ESOLVE_CONNECT_CONFIG } from '../esolve-connect-config.constant';\r\nimport { EsolveResult } from '../shared/esolve-result.model';\r\nimport { EsolveErrorHandlerService } from '../shared/errors';\r\nimport { EsolveResponseHandlerService, } from '../shared/response';\r\nimport { EsolveSessionService } from '../session/esolve-session.service';\r\nimport { EsolveLocationUpdateResult } from './esolve-location-update-result.model';\r\nimport { EsolveRegistrationResult, } from './registration';\r\nimport { EsolveAddress, EsolveAddressResult, } from './address';\r\nimport { EsolveChangePasswordResult, EsolveResetPasswordResult, } from './password';\r\nimport { EsolveTransaction, EsolveTransactionList, } from './transaction';\r\nimport { EsolveUserAccount, EsolveUserAccountResult, EsolveUserClientAccountBalances, } from './user-account';\r\nimport { EsolveAccountConfirmationResult, } from './confirmation';\r\nimport { EsolveCartTotals } from '../cart';\r\nimport * as i0 from \"@angular/core\";\r\nimport * as i1 from \"@angular/common/http\";\r\nimport * as i2 from \"../session/esolve-session.service\";\r\nimport * as i3 from \"../shared/errors\";\r\nimport * as i4 from \"../shared/response\";\r\nexport class EsolveAccountService {\r\n constructor(config, http, sessionService, errorHandler, responseHandler) {\r\n this.config = config;\r\n this.http = http;\r\n this.sessionService = sessionService;\r\n this.errorHandler = errorHandler;\r\n this.responseHandler = responseHandler;\r\n this._user_id = 0;\r\n this.sessionService.session.subscribe((session) => {\r\n if (session.key !== '') {\r\n this.user_id = session.id;\r\n }\r\n });\r\n }\r\n get user_id() {\r\n return this._user_id;\r\n }\r\n set user_id(value) {\r\n value = ((value > 0) ? value : 0);\r\n if (this._user_id !== value) {\r\n this._user_id = value;\r\n }\r\n }\r\n updateUserAccount(user_account_data) {\r\n const body = {\r\n account: user_account_data,\r\n };\r\n return this.http\r\n .post(`${this.config.api_url}/set-user-account.php`, body, {\r\n headers: {\r\n 'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;',\r\n },\r\n responseType: 'json',\r\n observe: 'body',\r\n })\r\n .pipe(map((http_response) => this.responseHandler.validateSingleHttpResponse(http_response, (response) => new EsolveUserAccountResult(response))), catchError((errorRes) => {\r\n return this.errorHandler.handleHttpPostError('set-user-account', errorRes);\r\n }));\r\n }\r\n getUserAccount() {\r\n return this.http\r\n .get(`${this.config.api_url}/get-account.php`)\r\n .pipe(map((response) => {\r\n if ((response.records === undefined) ||\r\n (response.records.length === 0)) {\r\n throw response;\r\n }\r\n const record = response.records[0];\r\n return this.processUserAccount(record);\r\n }));\r\n }\r\n deleteUserAccount() {\r\n return this.http\r\n .delete(`${this.config.api_url}/delete-account.php`, {\r\n responseType: 'json',\r\n observe: 'body',\r\n })\r\n .pipe(map((http_response) => {\r\n if ((http_response.result === undefined) ||\r\n (http_response.result === null) ||\r\n (http_response.result.status !== 'success')) {\r\n throw http_response;\r\n }\r\n return new EsolveResult(http_response.result.status, http_response.result.code, http_response.result.message);\r\n }), catchError((errorRes) => {\r\n return this.errorHandler.handleHttpDeleteError('delete-account', errorRes);\r\n }));\r\n }\r\n setAddress(address_post_data) {\r\n const body = {\r\n address: address_post_data,\r\n };\r\n return this.http\r\n .post(`${this.config.api_url}/set-address.php`, body, {\r\n headers: {\r\n 'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;',\r\n },\r\n responseType: 'json',\r\n observe: 'body',\r\n })\r\n .pipe(map((http_response) => this.responseHandler.validateSingleHttpResponse(http_response, (response) => new EsolveAddressResult(response))), catchError((errorRes) => {\r\n return this.errorHandler.handleHttpPostError('set-registration', errorRes);\r\n }));\r\n }\r\n getAddresses() {\r\n try {\r\n this.loginGuard();\r\n return this.http\r\n .get(`${this.config.api_url}/get-addresses.php`, {\r\n params: { user_id: this.user_id },\r\n })\r\n .pipe(map((response) => {\r\n if (response.records === undefined) {\r\n throw response;\r\n }\r\n return this.processUserAddress(response.records);\r\n }));\r\n }\r\n catch (error) {\r\n return throwError(() => error);\r\n }\r\n }\r\n deleteAddress(id) {\r\n return this.http\r\n .delete(`${this.config.api_url}/delete-address.php`, {\r\n params: { id },\r\n responseType: 'json',\r\n observe: 'body',\r\n })\r\n .pipe(map((http_response) => {\r\n if ((http_response.result === undefined) ||\r\n (http_response.result === null) ||\r\n (http_response.result.status !== 'success')) {\r\n throw http_response;\r\n }\r\n return new EsolveResult(http_response.result.status, http_response.result.code, http_response.result.message);\r\n }), catchError((errorRes) => {\r\n return this.errorHandler.handleHttpDeleteError('delete-address', errorRes);\r\n }));\r\n }\r\n register(user_registration) {\r\n const body = {\r\n user: user_registration,\r\n };\r\n return this.http\r\n .post(`${this.config.api_url}/set-registration.php`, body, {\r\n headers: {\r\n 'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;',\r\n },\r\n responseType: 'json',\r\n observe: 'body',\r\n })\r\n .pipe(map((http_response) => this.responseHandler.validateSingleHttpResponse(http_response, (response) => {\r\n if (response.auto_login) {\r\n this.sessionService.handleUpdateSession({\r\n user_id: +response.esolve_id,\r\n location_id: +response.session_data.location_id,\r\n });\r\n }\r\n return new EsolveRegistrationResult(response);\r\n })), catchError((errorRes) => {\r\n return this.errorHandler.handleHttpPostError('set-registration', errorRes);\r\n }));\r\n }\r\n changePassword(password, confirm_password) {\r\n const body = {\r\n password,\r\n confirm_password,\r\n };\r\n return this.http\r\n .post(`${this.config.api_url}/set-change-password.php`, body, {\r\n headers: {\r\n 'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;',\r\n },\r\n responseType: 'json',\r\n observe: 'body',\r\n })\r\n .pipe(map((http_response) => this.responseHandler.validateSingleHttpResponse(http_response, (response) => {\r\n return new EsolveChangePasswordResult(response);\r\n })), catchError((errorRes) => {\r\n return this.errorHandler.handleHttpPostError('set-change-password', errorRes);\r\n }));\r\n }\r\n /**\r\n * Submits the users confirmation key to the relevant backend server in order to\r\n * confirm the accounts validity. The key was emailed to the user hence if he received\r\n * it and enters the value, the email account can be seen as valid.\r\n *\r\n * @param key The key that was emailed to the registered user's email account.\r\n * @returns An `Observable` that contains the result of the account confirmation request.\r\n */\r\n accountConfirmationRequest(key) {\r\n const body = {\r\n key,\r\n };\r\n return this.http\r\n .post(`${this.config.api_url}/set-account-confirmation.php`, body, {\r\n headers: {\r\n 'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;',\r\n },\r\n responseType: 'json',\r\n observe: 'body',\r\n })\r\n .pipe(map((http_response) => this.responseHandler.validateSingleHttpResponse(http_response, (response) => {\r\n if (response.auto_login) {\r\n this.sessionService.handleUpdateSession({\r\n user_id: +response.esolve_id,\r\n location_id: +response.location_id,\r\n });\r\n }\r\n return new EsolveAccountConfirmationResult(response);\r\n })), catchError((errorRes) => {\r\n return this.errorHandler.handleHttpPostError('set-account-confirmation', errorRes);\r\n }));\r\n }\r\n sendForgotPasswordRequest(email) {\r\n return this.http\r\n .get(`${this.config.api_url}/get-forgot-password.php`, { params: { email } })\r\n .pipe(map((response) => {\r\n if ((response.records === undefined) ||\r\n !('reset_link_sent' in response.records)) {\r\n throw response;\r\n }\r\n return response.records.reset_link_sent;\r\n }));\r\n }\r\n resetPassword(reset_key, password, confirm_password, auto_login = true) {\r\n return this.http\r\n .post(`${this.config.api_url}/set-forgot-password.php`, {\r\n reset_key,\r\n password,\r\n confirm_password,\r\n auto_login,\r\n }, {\r\n headers: {\r\n 'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;',\r\n },\r\n responseType: 'json',\r\n observe: 'body',\r\n })\r\n .pipe(map((http_response) => this.responseHandler.validateSingleHttpResponse(http_response, (response) => {\r\n if (!response.login_required) {\r\n this.sessionService.handleUpdateSession({\r\n user_id: +response.esolve_id,\r\n location_id: +response.session_data.location_id,\r\n });\r\n }\r\n return new EsolveResetPasswordResult(response);\r\n })), catchError((errorRes) => {\r\n return this.errorHandler.handleHttpPostError('set-forgot-password', errorRes);\r\n }));\r\n }\r\n updateLocation(location_id) {\r\n const body = { location_id };\r\n return this.http\r\n .post(`${this.config.api_url}/set-session-location.php`, body, {\r\n headers: {\r\n 'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;',\r\n },\r\n responseType: 'json',\r\n observe: 'body',\r\n })\r\n .pipe(map((http_response) => this.responseHandler.validateSingleHttpResponse(http_response, (response) => {\r\n this.sessionService.handleUpdateSession({ location_id });\r\n return new EsolveLocationUpdateResult(response);\r\n })));\r\n }\r\n getTransactions(options = {}) {\r\n try {\r\n this.loginGuard();\r\n return this.http\r\n .get(`${this.config.api_url}/get-transactions.php`, {\r\n params: {\r\n user_id: this.user_id,\r\n ...options,\r\n },\r\n })\r\n .pipe(map((response) => {\r\n if (response.records === undefined) {\r\n throw response;\r\n }\r\n const items = this.processTransactions(response.records);\r\n const total = +response.additional_data.total_records ?? 0;\r\n const rows = options.rows ?? total;\r\n const page = options.page || 1;\r\n return new EsolveTransactionList(items, page, rows, total);\r\n }));\r\n }\r\n catch (error) {\r\n return throwError(() => error);\r\n }\r\n }\r\n getTransaction(id) {\r\n try {\r\n this.loginGuard();\r\n return this.http\r\n .get(`${this.config.api_url}/get-transactions.php`, {\r\n params: {\r\n user_id: this.user_id,\r\n transaction_id: id,\r\n },\r\n })\r\n .pipe(map((response) => {\r\n if ((response.records === undefined) ||\r\n (response.records.length <= 0)) {\r\n throw response;\r\n }\r\n const items = this.processTransactions(response.records);\r\n return items[0];\r\n }));\r\n }\r\n catch (error) {\r\n return throwError(() => error);\r\n }\r\n }\r\n getClientAccountBalances() {\r\n try {\r\n this.loginGuard();\r\n return this.http\r\n .get(`${this.config.api_url}/get-client-account-balances.php`)\r\n .pipe(map((response) => {\r\n if (response.records === undefined) {\r\n throw response;\r\n }\r\n return this.processClientBalances(response.records);\r\n }));\r\n }\r\n catch (error) {\r\n return throwError(() => error);\r\n }\r\n }\r\n processUserAccount(record) {\r\n if (!record) {\r\n throw new Error('Invalid record');\r\n }\r\n if (+record.userid !== this._user_id) {\r\n throw new Error('Invalid user account retrieved');\r\n }\r\n return new EsolveUserAccount(record);\r\n }\r\n processUserAddress(records) {\r\n const user_addresses = [];\r\n if (!records || (this._user_id === 0)) {\r\n return user_addresses;\r\n }\r\n for (const record of records) {\r\n if (+record.userid !== this._user_id) {\r\n continue;\r\n }\r\n user_addresses.push(new EsolveAddress(+record.id, record.recipient, record.address_type, record.pobox, record.place_name, record.street_number, record.street, record.suburb, record.city, record.province, record.country, record.postal_code, +record.latitude, +record.longitude));\r\n }\r\n return user_addresses;\r\n }\r\n processTransactions(records) {\r\n const transactions = [];\r\n if (records) {\r\n for (const record of records) {\r\n const transaction = new EsolveTransaction(record);\r\n transactions.push(transaction);\r\n }\r\n }\r\n return transactions;\r\n }\r\n processClientBalances(records) {\r\n for (const record of records) {\r\n if (!(+record.clients_id > 0)) {\r\n return undefined;\r\n }\r\n const cart_totals = new EsolveCartTotals(record.cart_totals.records, +record.cart_totals.items, +record.cart_totals.total, +record.cart_totals.vat, +record.cart_totals.discount);\r\n return new EsolveUserClientAccountBalances(+record.clients_id, record.account, cart_totals, +record.credit_limit, +record.external_account_balance, +record.external_available_balance, +record.new_external_available_balance, !!+record.credit_limit_okay);\r\n }\r\n return undefined;\r\n }\r\n loginGuard() {\r\n if (this.user_id <= 0) {\r\n this.errorHandler.throwError('login_required', 'Login is required');\r\n }\r\n }\r\n}\r\nEsolveAccountService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveAccountService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1.HttpClient }, { token: i2.EsolveSessionService }, { token: i3.EsolveErrorHandlerService }, { token: i4.EsolveResponseHandlerService }], target: i0.ɵɵFactoryTarget.Injectable });\r\nEsolveAccountService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveAccountService, providedIn: 'root' });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveAccountService, decorators: [{\r\n type: Injectable,\r\n args: [{\r\n providedIn: 'root',\r\n }]\r\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\r\n type: Inject,\r\n args: [ESOLVE_CONNECT_CONFIG]\r\n }] }, { type: i1.HttpClient }, { type: i2.EsolveSessionService }, { type: i3.EsolveErrorHandlerService }, { type: i4.EsolveResponseHandlerService }]; } });\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWFjY291bnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9hY2NvdW50L2Vzb2x2ZS1hY2NvdW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBcUIsTUFBTSxzQkFBc0IsQ0FBQztBQUVyRSxPQUFPLEVBQWMsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHakQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFMUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzdELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzdELE9BQU8sRUFJSCw0QkFBNEIsR0FDL0IsTUFBTSxvQkFBb0IsQ0FBQztBQUU1QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUV6RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNuRixPQUFPLEVBR0gsd0JBQXdCLEdBQzNCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUNILGFBQWEsRUFFYixtQkFBbUIsR0FHdEIsTUFBTSxXQUFXLENBQUM7QUFDbkIsT0FBTyxFQUNILDBCQUEwQixFQUMxQix5QkFBeUIsR0FHNUIsTUFBTSxZQUFZLENBQUM7QUFDcEIsT0FBTyxFQUVILGlCQUFpQixFQUVqQixxQkFBcUIsR0FDeEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNILGlCQUFpQixFQUdqQix1QkFBdUIsRUFDdkIsK0JB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QUFDLFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO1NBQ3ZFO0lBQ0wsQ0FBQzs7aUhBdGtCUSxvQkFBb0Isa0JBZ0JqQixxQkFBcUI7cUhBaEJ4QixvQkFBb0IsY0FGakIsTUFBTTsyRkFFVCxvQkFBb0I7a0JBSGhDLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCOzswQkFpQlEsTUFBTTsyQkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcblxyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IEVzb2x2ZUNvbm5lY3RDb25maWcgfSBmcm9tICcuLi9lc29sdmUtY29ubmVjdC5jb25maWcnO1xyXG5pbXBvcnQgeyBFU09MVkVfQ09OTkVDVF9DT05GSUcgfSBmcm9tICcuLi9lc29sdmUtY29ubmVjdC1jb25maWcuY29uc3RhbnQnO1xyXG5cclxuaW1wb3J0IHsgRXNvbHZlUmVzdWx0IH0gZnJvbSAnLi4vc2hhcmVkL2Vzb2x2ZS1yZXN1bHQubW9kZWwnO1xyXG5pbXBvcnQgeyBFc29sdmVFcnJvckhhbmRsZXJTZXJ2aWNlIH0gZnJvbSAnLi4vc2hhcmVkL2Vycm9ycyc7XHJcbmltcG9ydCB7XHJcbiAgICBFc29sdmVEZWxldGVSZXNwb25zZSxcclxuICAgIEVzb2x2ZVNldFJlc3BvbnNlLFxyXG4gICAgRXNvbHZlR2V0UmVzcG9uc2UsXHJcbiAgICBFc29sdmVSZXNwb25zZUhhbmRsZXJTZXJ2aWNlLFxyXG59IGZyb20gJy4uL3NoYXJlZC9yZXNwb25zZSc7XHJcblxyXG5pbXBvcnQgeyBFc29sdmVTZXNzaW9uU2VydmljZSB9IGZyb20gJy4uL3Nlc3Npb24vZXNvbHZlLXNlc3Npb24uc2VydmljZSc7XHJcblxyXG5pbXBvcnQgeyBFc29sdmVMb2NhdGlvblVwZGF0ZVJlc3VsdCB9IGZyb20gJy4vZXNvbHZlLWxvY2F0aW9uLXVwZGF0ZS1yZXN1bHQubW9kZWwnO1xyXG5pbXBvcnQge1xyXG4gICAgRXNvbHZlUmVnaXN0cmF0aW9uUG9zdFJlc3BvbnNlSXRlbSxcclxuICAgIEVzb2x2ZVJlZ2lzdHJhdGlvbkRhdGEsXHJcbiAgICBFc29sdmVSZWdpc3RyYXRpb25SZXN1bHQsXHJcbn0gZnJvbSAnLi9yZWdpc3RyYXRpb24nO1xyXG5pbXBvcnQge1xyXG4gICAgRXNvbHZlQWRkcmVzcyxcclxuICAgIEVzb2x2ZUFkZHJlc3NSZWNvcmQsXHJcbiAgICBFc29sdmVBZGRyZXNzUmVzdWx0LFxyXG4gICAgRXNvbHZlQWRkcmVzc1Bvc3REYXRhLFxyXG4gICAgRXNvbHZlQWRkcmVzc1Jlc3BvbnNlLFxyXG59IGZyb20gJy4vYWRkcmVzcyc7XHJcbmltcG9ydCB7XHJcbiAgICBFc29sdmVDaGFuZ2VQYXNzd29yZFJlc3VsdCxcclxuICAgIEVzb2x2ZVJlc2V0UGFzc3dvcmRSZXN1bHQsXHJcbiAgICBFc29sdmVGb3Jnb3RQYXNzd29yZFJlc3BvbnNlLFxyXG4gICAgRXNvbHZlRm9yZ290UGFzc3dvcmRHZXRSZXN1bHQsXHJcbn0gZnJvbSAnLi9wYXNzd29yZCc7XHJcbmltcG9ydCB7XHJcbiAgICBFc29sdmVUcmFuc2FjdGlvblJlY29yZCxcclxuICAgIEVzb2x2ZVRyYW5zYWN0aW9uLFxyXG4gICAgRXNvbHZlVHJhbnNhY3Rpb25PcHRpb25zLFxyXG4gICAgRXNvbHZlVHJhbnNhY3Rpb25MaXN0LFxyXG59IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xyXG5pbXBvcnQge1xyXG4gICAgRXNvbHZlVXNlckFjY291bnQsXHJcbiAgICBFc29sdmVVc2VyQWNjb3VudERhdGEsXHJcbiAgICBFc29sdmVVc2VyQWNjb3VudFJlY29yZCxcclxuICAgIEVzb2x2ZVVzZXJBY2NvdW50UmVzdWx0LFxyXG4gICAgRXNvbHZlVXNlckNsaWVudEFjY291bnRCYWxhbmNlcyxcclxuICAgIEVzb2x2ZVVzZXJDbGllbnRBY2NvdW50QmFsYW5jZXNSZWNvcmQsXHJcbn0gZnJvbSAnLi91c2VyLWFjY291bnQnO1xyXG5pbXBvcnQge1xyXG4gICAgRXNvbHZlQWNjb3VudENvbmZpcm1hdGlvblBvc3RSZXNwb25zZUl0ZW0sXHJcbiAgICBFc29sdmVBY2NvdW50Q29uZmlybWF0aW9uUmVzdWx0LFxyXG59IGZyb20gJy4vY29uZmlybWF0aW9uJztcclxuaW1wb3J0IHsgRXNvbHZlQ2FydFRvdGFscyB9IGZyb20gJy4uL2NhcnQnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRXNvbHZlQWNjb3VudFNlcnZpY2Uge1xyXG4gICAgcHJpdmF0ZSBfdXNlcl9pZCA9IDA7XHJcblxyXG4gICAgcHVibGljIGdldCB1c2VyX2lkKCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3VzZXJfaWQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldCB1c2VyX2lkKHZhbHVlOiBudW1iZXIpIHtcclxuICAgICAgICB2YWx1ZSA9ICgodmFsdWUgPiAwKSA/IHZhbHVlIDogMCk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl91c2VyX2lkICE9PSB2YWx1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLl91c2VyX2lkID0gdmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIEBJbmplY3QoRVNPTFZFX0NPTk5FQ1RfQ09ORklHKSBwcml2YXRlIGNvbmZpZzogRXNvbHZlQ29ubmVjdENvbmZpZyxcclxuICAgICAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICAgICAgcHJpdmF0ZSBzZXNzaW9uU2VydmljZTogRXNvbHZlU2Vzc2lvblNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBlcnJvckhhbmRsZXI6IEVzb2x2ZUVycm9ySGFuZGxlclNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSByZXNwb25zZUhhbmRsZXI6IEVzb2x2ZVJlc3BvbnNlSGFuZGxlclNlcnZpY2UsXHJcbiAgICApIHtcclxuICAgICAgICB0aGlzLnNlc3Npb25TZXJ2aWNlLnNlc3Npb24uc3Vic2NyaWJlKChzZXNzaW9uKSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChzZXNzaW9uLmtleSAhPT0gJycpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudXNlcl9pZCA9IHNlc3Npb24uaWQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgdXBkYXRlVXNlckFjY291bnQodXNlcl9hY2NvdW50X2RhdGE6IEVzb2x2ZVVzZXJBY2NvdW50RGF0YSk6IE9ic2VydmFibGU8RXNvbHZlVXNlckFjY291bnRSZXN1bHQ+IHtcclxuICAgICAgICBjb25zdCBib2R5ID0ge1xyXG4gICAgICAgICAgICBhY2NvdW50OiB1c2VyX2FjY291bnRfZGF0YSxcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgICAgICAgIC5wb3N0PEVzb2x2ZVNldFJlc3BvbnNlPihcclxuICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L3NldC11c2VyLWFjY291bnQucGhwYCxcclxuICAgICAgICAgICAgICAgIGJvZHksXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PXV0Zi04OycsXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICByZXNwb25zZVR5cGU6ICdqc29uJyxcclxuICAgICAgICAgICAgICAgICAgICBvYnNlcnZlOiAnYm9keScsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKChodHRwX3Jlc3BvbnNlKSA9PiB0aGlzLnJlc3BvbnNlSGFuZGxlci52YWxpZGF0ZVNpbmdsZUh0dHBSZXNwb25zZShcclxuICAgICAgICAgICAgICAgICAgICBodHRwX3Jlc3BvbnNlLFxyXG4gICAgICAgICAgICAgICAgICAgIChyZXNwb25zZSkgPT4gbmV3IEVzb2x2ZVVzZXJBY2NvdW50UmVzdWx0KHJlc3BvbnNlKSxcclxuICAgICAgICAgICAgICAgICkpLFxyXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3JSZXM6IEh0dHBFcnJvclJlc3BvbnNlIHwgYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JIYW5kbGVyLmhhbmRsZUh0dHBQb3N0RXJyb3IoJ3NldC11c2VyLWFjY291bnQnLCBlcnJvclJlcyk7XHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0VXNlckFjY291bnQoKTogT2JzZXJ2YWJsZTxFc29sdmVVc2VyQWNjb3VudD4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgICAgICAgLmdldDxFc29sdmVHZXRSZXNwb25zZTxFc29sdmVVc2VyQWNjb3VudFJlY29yZFtdPj4oXHJcbiAgICAgICAgICAgICAgICBgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9nZXQtYWNjb3VudC5waHBgLFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgKHJlc3BvbnNlLnJlY29yZHMgPT09IHVuZGVmaW5lZCkgfHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgKHJlc3BvbnNlLnJlY29yZHMubGVuZ3RoID09PSAwKVxyXG4gICAgICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyByZXNwb25zZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlY29yZCA9IHJlc3BvbnNlLnJlY29yZHNbMF07XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NVc2VyQWNjb3VudChyZWNvcmQpO1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGRlbGV0ZVVzZXJBY2NvdW50KCk6IE9ic2VydmFibGU8RXNvbHZlUmVzdWx0PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAgICAgICAuZGVsZXRlPEVzb2x2ZURlbGV0ZVJlc3BvbnNlPihcclxuICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L2RlbGV0ZS1hY2NvdW50LnBocGAsXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlOiAnanNvbicsXHJcbiAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZTogJ2JvZHknLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIG1hcCgoaHR0cF9yZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGh0dHBfcmVzcG9uc2UucmVzdWx0ID09PSB1bmRlZmluZWQpIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChodHRwX3Jlc3BvbnNlLnJlc3VsdCA9PT0gbnVsbCkgfHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGh0dHBfcmVzcG9uc2UucmVzdWx0LnN0YXR1cyAhPT0gJ3N1Y2Nlc3MnKVxyXG4gICAgICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBodHRwX3Jlc3BvbnNlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBFc29sdmVSZXN1bHQoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGh0dHBfcmVzcG9uc2UucmVzdWx0LnN0YXR1cyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaHR0cF9yZXNwb25zZS5yZXN1bHQuY29kZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaHR0cF9yZXNwb25zZS5yZXN1bHQubWVzc2FnZSxcclxuICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvclJlczogSHR0cEVycm9yUmVzcG9uc2UgfCBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5lcnJvckhhbmRsZXIuaGFuZGxlSHR0cERlbGV0ZUVycm9yKCdkZWxldGUtYWNjb3VudCcsIGVycm9yUmVzKTtcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXRBZGRyZXNzKGFkZHJlc3NfcG9zdF9kYXRhOiBFc29sdmVBZGRyZXNzUG9zdERhdGEpOiBPYnNlcnZhYmxlPEVzb2x2ZUFkZHJlc3NSZXN1bHQ+IHtcclxuICAgICAgICBjb25zdCBib2R5ID0ge1xyXG4gICAgICAgICAgICBhZGRyZXNzOiBhZGRyZXNzX3Bvc3RfZGF0YSxcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgICAgICAgIC5wb3N0PEVzb2x2ZVNldFJlc3BvbnNlPEVzb2x2ZUFkZHJlc3NSZXNwb25zZT4+KFxyXG4gICAgICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vc2V0LWFkZHJlc3MucGhwYCxcclxuICAgICAgICAgICAgICAgIGJvZHksXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PXV0Zi04OycsXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICByZXNwb25zZVR5cGU6ICdqc29uJyxcclxuICAgICAgICAgICAgICAgICAgICBvYnNlcnZlOiAnYm9keScsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKChodHRwX3Jlc3BvbnNlKSA9PlxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVzcG9uc2VIYW5kbGVyLnZhbGlkYXRlU2luZ2xlSHR0cFJlc3BvbnNlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBodHRwX3Jlc3BvbnNlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAocmVzcG9uc2UpID0+IG5ldyBFc29sdmVBZGRyZXNzUmVzdWx0KHJlc3BvbnNlKSxcclxuICAgICAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yUmVzOiBIdHRwRXJyb3JSZXNwb25zZSB8IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmVycm9ySGFuZGxlci5oYW5kbGVIdHRwUG9zdEVycm9yKCdzZXQtcmVnaXN0cmF0aW9uJywgZXJyb3JSZXMpO1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldEFkZHJlc3NlcygpOiBPYnNlcnZhYmxlPEVzb2x2ZUFkZHJlc3NbXT4ge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIHRoaXMubG9naW5HdWFyZCgpO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAgICAgICAgICAgLmdldDxFc29sdmVHZXRSZXNwb25zZTxFc29sdmVBZGRyZXNzUmVjb3JkW10+PihcclxuICAgICAgICAgICAgICAgICAgICBgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9nZXQtYWRkcmVzc2VzLnBocGAsXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXM6IHsgdXNlcl9pZDogdGhpcy51c2VyX2lkIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnJlY29yZHMgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NVc2VyQWRkcmVzcyhyZXNwb25zZS5yZWNvcmRzKTtcclxuICAgICAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZXJyb3IpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZGVsZXRlQWRkcmVzcyhpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxFc29sdmVSZXN1bHQ+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgICAgICAgIC5kZWxldGU8RXNvbHZlRGVsZXRlUmVzcG9uc2U+KFxyXG4gICAgICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vZGVsZXRlLWFkZHJlc3MucGhwYCxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBwYXJhbXM6IHsgaWQgfSxcclxuICAgICAgICAgICAgICAgICAgICByZXNwb25zZVR5cGU6ICdqc29uJyxcclxuICAgICAgICAgICAgICAgICAgICBvYnNlcnZlOiAnYm9keScsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKChodHRwX3Jlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoaHR0cF9yZXNwb25zZS5yZXN1bHQgPT09IHVuZGVmaW5lZCkgfHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGh0dHBfcmVzcG9uc2UucmVzdWx0ID09PSBudWxsKSB8fFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoaHR0cF9yZXNwb25zZS5yZXN1bHQuc3RhdHVzICE9PSAnc3VjY2VzcycpXHJcbiAgICAgICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IGh0dHBfcmVzcG9uc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEVzb2x2ZVJlc3VsdChcclxuICAgICAgICAgICAgICAgICAgICAgICAgaHR0cF9yZXNwb25zZS5yZXN1bHQuc3RhdHVzLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBodHRwX3Jlc3BvbnNlLnJlc3VsdC5jb2RlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBodHRwX3Jlc3BvbnNlLnJlc3VsdC5tZXNzYWdlLFxyXG4gICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yUmVzOiBIdHRwRXJyb3JSZXNwb25zZSB8IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmVycm9ySGFuZGxlci5oYW5kbGVIdHRwRGVsZXRlRXJyb3IoJ2RlbGV0ZS1hZGRyZXNzJywgZXJyb3JSZXMpO1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHJlZ2lzdGVyKHVzZXJfcmVnaXN0cmF0aW9uOiBFc29sdmVSZWdpc3RyYXRpb25EYXRhKTogT2JzZXJ2YWJsZTxFc29sdmVSZWdpc3RyYXRpb25SZXN1bHQ+IHtcclxuICAgICAgICBjb25zdCBib2R5ID0ge1xyXG4gICAgICAgICAgICB1c2VyOiB1c2VyX3JlZ2lzdHJhdGlvbixcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgICAgICAgIC5wb3N0PEVzb2x2ZVNldFJlc3BvbnNlPEVzb2x2ZVJlZ2lzdHJhdGlvblBvc3RSZXNwb25zZUl0ZW0+PihcclxuICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L3NldC1yZWdpc3RyYXRpb24ucGhwYCxcclxuICAgICAgICAgICAgICAgIGJvZHksXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PXV0Zi04OycsXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICByZXNwb25zZVR5cGU6ICdqc29uJyxcclxuICAgICAgICAgICAgICAgICAgICBvYnNlcnZlOiAnYm9keScsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKChodHRwX3Jlc3BvbnNlKSA9PiB0aGlzLnJlc3BvbnNlSGFuZGxlci52YWxpZGF0ZVNpbmdsZUh0dHBSZXNwb25zZShcclxuICAgICAgICAgICAgICAgICAgICBodHRwX3Jlc3BvbnNlLFxyXG4gICAgICAgICAgICAgICAgICAgIChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UuYXV0b19sb2dpbikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXNzaW9uU2VydmljZS5oYW5kbGVVcGRhdGVTZXNzaW9uKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyX2lkOiArcmVzcG9uc2UuZXNvbHZlX2lkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uX2lkOiArcmVzcG9uc2Uuc2Vzc2lvbl9kYXRhLmxvY2F0aW9uX2lkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRXNvbHZlUmVnaXN0cmF0aW9uUmVzdWx0KHJlc3BvbnNlKTtcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgKSksXHJcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvclJlczogSHR0cEVycm9yUmVzcG9uc2UgfCBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5lcnJvckhhbmRsZXIuaGFuZGxlSHR0cFBvc3RFcnJvcignc2V0LXJlZ2lzdHJhdGlvbicsIGVycm9yUmVzKTtcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBjaGFuZ2VQYXNzd29yZChwYXNzd29yZDogc3RyaW5nLCBjb25maXJtX3Bhc3N3b3JkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEVzb2x2ZUNoYW5nZVBhc3N3b3JkUmVzdWx0PiB7XHJcbiAgICAgICAgY29uc3QgYm9keSA9IHtcclxuICAgICAgICAgICAgcGFzc3dvcmQsXHJcbiAgICAgICAgICAgIGNvbmZpcm1fcGFzc3dvcmQsXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAgICAgICAucG9zdDxFc29sdmVTZXRSZXNwb25zZT4oXHJcbiAgICAgICAgICAgICAgICBgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9zZXQtY2hhbmdlLXBhc3N3b3JkLnBocGAsXHJcbiAgICAgICAgICAgICAgICBib2R5LFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD11dGYtODsnLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlOiAnanNvbicsXHJcbiAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZTogJ2JvZHknLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIG1hcCgoaHR0cF9yZXNwb25zZSkgPT4gdGhpcy5yZXNwb25zZUhhbmRsZXIudmFsaWRhdGVTaW5nbGVIdHRwUmVzcG9uc2UoXHJcbiAgICAgICAgICAgICAgICAgICAgaHR0cF9yZXNwb25zZSxcclxuICAgICAgICAgICAgICAgICAgICAocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBFc29sdmVDaGFuZ2VQYXNzd29yZFJlc3VsdChyZXNwb25zZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICkpLFxyXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3JSZXM6IEh0dHBFcnJvclJlc3BvbnNlIHwgYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JIYW5kbGVyLmhhbmRsZUh0dHBQb3N0RXJyb3IoJ3NldC1jaGFuZ2UtcGFzc3dvcmQnLCBlcnJvclJlcyk7XHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFN1Ym1pdHMgdGhlIHVzZXJzIGNvbmZpcm1hdGlvbiBrZXkgdG8gdGhlIHJlbGV2YW50IGJhY2tlbmQgc2VydmVyIGluIG9yZGVyIHRvXHJcbiAgICAgKiBjb25maXJtIHRoZSBhY2NvdW50cyB2YWxpZGl0eS4gVGhlIGtleSB3YXMgZW1haWxlZCB0byB0aGUgdXNlciBoZW5jZSBpZiBoZSByZWNlaXZlZFxyXG4gICAgICogaXQgYW5kIGVudGVycyB0aGUgdmFsdWUsIHRoZSBlbWFpbCBhY2NvdW50IGNhbiBiZSBzZWVuIGFzIHZhbGlkLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBrZXkgVGhlIGtleSB0aGF0IHdhcyBlbWFpbGVkIHRvIHRoZSByZWdpc3RlcmVkIHVzZXIncyBlbWFpbCBhY2NvdW50LlxyXG4gICAgICogQHJldHVybnMgQW4gYE9ic2VydmFibGVgIHRoYXQgY29udGFpbnMgdGhlIHJlc3VsdCBvZiB0aGUgYWNjb3VudCBjb25maXJtYXRpb24gcmVxdWVzdC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGFjY291bnRDb25maXJtYXRpb25SZXF1ZXN0KGtleTogc3RyaW5nKTogT2JzZXJ2YWJsZTxFc29sdmVBY2NvdW50Q29uZmlybWF0aW9uUmVzdWx0PiB7XHJcbiAgICAgICAgY29uc3QgYm9keSA9IHtcclxuICAgICAgICAgICAga2V5LFxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgICAgICAgLnBvc3Q8RXNvbHZlU2V0UmVzcG9uc2U8RXNvbHZlQWNjb3VudENvbmZpcm1hdGlvblBvc3RSZXNwb25zZUl0ZW0+PihcclxuICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L3NldC1hY2NvdW50LWNvbmZpcm1hdGlvbi5waHBgLFxyXG4gICAgICAgICAgICAgICAgYm9keSxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9dXRmLTg7JyxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlVHlwZTogJ2pzb24nLFxyXG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmU6ICdib2R5JyxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBtYXAoKGh0dHBfcmVzcG9uc2UpID0+IHRoaXMucmVzcG9uc2VIYW5kbGVyLnZhbGlkYXRlU2luZ2xlSHR0cFJlc3BvbnNlKFxyXG4gICAgICAgICAgICAgICAgICAgIGh0dHBfcmVzcG9uc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5hdXRvX2xvZ2luKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlc3Npb25TZXJ2aWNlLmhhbmRsZVVwZGF0ZVNlc3Npb24oe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJfaWQ6ICtyZXNwb25zZS5lc29sdmVfaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb25faWQ6ICtyZXNwb25zZS5sb2NhdGlvbl9pZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEVzb2x2ZUFjY291bnRDb25maXJtYXRpb25SZXN1bHQocmVzcG9uc2UpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICApKSxcclxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yUmVzOiBIdHRwRXJyb3JSZXNwb25zZSB8IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmVycm9ySGFuZGxlci5oYW5kbGVIdHRwUG9zdEVycm9yKCdzZXQtYWNjb3VudC1jb25maXJtYXRpb24nLCBlcnJvclJlcyk7XHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2VuZEZvcmdvdFBhc3N3b3JkUmVxdWVzdChlbWFpbDogc3RyaW5nKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAgICAgICAuZ2V0PEVzb2x2ZUdldFJlc3BvbnNlPEVzb2x2ZUZvcmdvdFBhc3N3b3JkR2V0UmVzdWx0Pj4oXHJcbiAgICAgICAgICAgICAgICBgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9nZXQtZm9yZ290LXBhc3N3b3JkLnBocGAsXHJcbiAgICAgICAgICAgICAgICB7IHBhcmFtczogeyBlbWFpbCB9IH0sXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAocmVzcG9uc2UucmVjb3JkcyA9PT0gdW5kZWZpbmVkKSB8fFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAhKCdyZXNldF9saW5rX3NlbnQnIGluIHJlc3BvbnNlLnJlY29yZHMpXHJcbiAgICAgICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLnJlY29yZHMucmVzZXRfbGlua19zZW50O1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHJlc2V0UGFzc3dvcmQoXHJcbiAgICAgICAgcmVzZXRfa2V5OiBzdHJpbmcsXHJcbiAgICAgICAgcGFzc3dvcmQ6IHN0cmluZyxcclxuICAgICAgICBjb25maXJtX3Bhc3N3b3JkOiBzdHJpbmcsXHJcbiAgICAgICAgYXV0b19sb2dpbiA9IHRydWUsXHJcbiAgICApOiBPYnNlcnZhYmxlPEVzb2x2ZVJlc2V0UGFzc3dvcmRSZXN1bHQ+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgICAgICAgIC5wb3N0PEVzb2x2ZVNldFJlc3BvbnNlPEVzb2x2ZUZvcmdvdFBhc3N3b3JkUmVzcG9uc2U+PihcclxuICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L3NldC1mb3Jnb3QtcGFzc3dvcmQucGhwYCxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICByZXNldF9rZXksXHJcbiAgICAgICAgICAgICAgICAgICAgcGFzc3dvcmQsXHJcbiAgICAgICAgICAgICAgICAgICAgY29uZmlybV9wYXNzd29yZCxcclxuICAgICAgICAgICAgICAgICAgICBhdXRvX2xvZ2luLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9dXRmLTg7JyxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlVHlwZTogJ2pzb24nLFxyXG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmU6ICdib2R5JyxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBtYXAoKGh0dHBfcmVzcG9uc2UpID0+IHRoaXMucmVzcG9uc2VIYW5kbGVyLnZhbGlkYXRlU2luZ2xlSHR0cFJlc3BvbnNlKFxyXG4gICAgICAgICAgICAgICAgICAgIGh0dHBfcmVzcG9uc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcmVzcG9uc2UubG9naW5fcmVxdWlyZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2Vzc2lvblNlcnZpY2UuaGFuZGxlVXBkYXRlU2Vzc2lvbih7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcl9pZDogK3Jlc3BvbnNlLmVzb2x2ZV9pZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbl9pZDogK3Jlc3BvbnNlLnNlc3Npb25fZGF0YS5sb2NhdGlvbl9pZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEVzb2x2ZVJlc2V0UGFzc3dvcmRSZXN1bHQocmVzcG9uc2UpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICApKSxcclxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yUmVzOiBIdHRwRXJyb3JSZXNwb25zZSB8IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmVycm9ySGFuZGxlci5oYW5kbGVIdHRwUG9zdEVycm9yKCdzZXQtZm9yZ290LXBhc3N3b3JkJywgZXJyb3JSZXMpO1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHVwZGF0ZUxvY2F0aW9uKGxvY2F0aW9uX2lkOiBudW1iZXIpOiBPYnNlcnZhYmxlPEVzb2x2ZUxvY2F0aW9uVXBkYXRlUmVzdWx0PiB7XHJcbiAgICAgICAgY29uc3QgYm9keSA9IHsgbG9jYXRpb25faWQgfTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAgICAgICAucG9zdDxFc29sdmVTZXRSZXNwb25zZT4oXHJcbiAgICAgICAgICAgICAgICBgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9zZXQtc2Vzc2lvbi1sb2NhdGlvbi5waHBgLFxyXG4gICAgICAgICAgICAgICAgYm9keSxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9dXRmLTg7JyxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlVHlwZTogJ2pzb24nLFxyXG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmU6ICdib2R5JyxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBtYXAoKGh0dHBfcmVzcG9uc2UpID0+IHRoaXMucmVzcG9uc2VIYW5kbGVyLnZhbGlkYXRlU2luZ2xlSHR0cFJlc3BvbnNlKFxyXG4gICAgICAgICAgICAgICAgICAgIGh0dHBfcmVzcG9uc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2Vzc2lvblNlcnZpY2UuaGFuZGxlVXBkYXRlU2Vzc2lvbih7IGxvY2F0aW9uX2lkIH0pO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBFc29sdmVMb2NhdGlvblVwZGF0ZVJlc3VsdChyZXNwb25zZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICkpLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXRUcmFuc2FjdGlvbnMob3B0aW9uczogRXNvbHZlVHJhbnNhY3Rpb25PcHRpb25zID0ge30pOiBPYnNlcnZhYmxlPEVzb2x2ZVRyYW5zYWN0aW9uTGlzdD4ge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIHRoaXMubG9naW5HdWFyZCgpO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAgICAgICAgICAgLmdldDxFc29sdmVHZXRSZXNwb25zZTxFc29sdmVUcmFuc2FjdGlvblJlY29yZFtdPj4oXHJcbiAgICAgICAgICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vZ2V0LXRyYW5zYWN0aW9ucy5waHBgLFxyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyX2lkOiB0aGlzLnVzZXJfaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5vcHRpb25zLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5yZWNvcmRzID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpdGVtcyA9IHRoaXMucHJvY2Vzc1RyYW5zYWN0aW9ucyhyZXNwb25zZS5yZWNvcmRzKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdG90YWwgPSArcmVzcG9uc2UuYWRkaXRpb25hbF9kYXRhLnRvdGFsX3JlY29yZHMgPz8gMDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgcm93cyA9IG9wdGlvbnMucm93cyA/PyB0b3RhbDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFnZSA9IG9wdGlvbnMucGFnZSB8fCAxO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBFc29sdmVUcmFuc2FjdGlvbkxpc3QoaXRlbXMsIHBhZ2UsIHJvd3MsIHRvdGFsKTtcclxuICAgICAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZXJyb3IpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0VHJhbnNhY3Rpb24oaWQ6IG51bWJlcik6IE9ic2VydmFibGU8RXNvbHZlVHJhbnNhY3Rpb24+IHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICB0aGlzLmxvZ2luR3VhcmQoKTtcclxuXHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgICAgICAgICAgIC5nZXQ8RXNvbHZlR2V0UmVzcG9uc2U8RXNvbHZlVHJhbnNhY3Rpb25SZWNvcmRbXT4+KFxyXG4gICAgICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L2dldC10cmFuc2FjdGlvbnMucGhwYCxcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtczoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcl9pZDogdGhpcy51c2VyX2lkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25faWQ6IGlkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZXNwb25zZS5yZWNvcmRzID09PSB1bmRlZmluZWQpIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVzcG9uc2UucmVjb3Jkcy5sZW5ndGggPD0gMClcclxuICAgICAgICAgICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyByZXNwb25zZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaXRlbXMgPSB0aGlzLnByb2Nlc3NUcmFuc2FjdGlvbnMocmVzcG9uc2UucmVjb3Jkcyk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaXRlbXNbMF07XHJcbiAgICAgICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IGVycm9yKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldENsaWVudEFjY291bnRCYWxhbmNlcygpOiBPYnNlcnZhYmxlPEVzb2x2ZVVzZXJDbGllbnRBY2NvdW50QmFsYW5jZXMgfCB1bmRlZmluZWQ+IHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICB0aGlzLmxvZ2luR3VhcmQoKTtcclxuXHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgICAgICAgICAgIC5nZXQ8RXNvbHZlR2V0UmVzcG9uc2U8RXNvbHZlVXNlckNsaWVudEFjY291bnRCYWxhbmNlc1JlY29yZFtdPj4oXHJcbiAgICAgICAgICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vZ2V0LWNsaWVudC1hY2NvdW50LWJhbGFuY2VzLnBocGAsXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5yZWNvcmRzID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzQ2xpZW50QmFsYW5jZXMocmVzcG9uc2UucmVjb3Jkcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IGVycm9yKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBwcm9jZXNzVXNlckFjY291bnQocmVjb3JkOiBFc29sdmVVc2VyQWNjb3VudFJlY29yZCk6IEVzb2x2ZVVzZXJBY2NvdW50IHtcclxuICAgICAgICBpZiAoIXJlY29yZCkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgcmVjb3JkJyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoK3JlY29yZC51c2VyaWQgIT09IHRoaXMuX3VzZXJfaWQpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHVzZXIgYWNjb3VudCByZXRyaWV2ZWQnKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBuZXcgRXNvbHZlVXNlckFjY291bnQocmVjb3JkKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHByb2Nlc3NVc2VyQWRkcmVzcyhyZWNvcmRzOiBFc29sdmVBZGRyZXNzUmVjb3JkW10pOiBFc29sdmVBZGRyZXNzW10ge1xyXG4gICAgICAgIGNvbnN0IHVzZXJfYWRkcmVzc2VzOiBFc29sdmVBZGRyZXNzW10gPSBbXTtcclxuXHJcbiAgICAgICAgaWYgKCFyZWNvcmRzIHx8ICh0aGlzLl91c2VyX2lkID09PSAwKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdXNlcl9hZGRyZXNzZXM7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBmb3IgKGNvbnN0IHJlY29yZCBvZiByZWNvcmRzKSB7XHJcbiAgICAgICAgICAgIGlmICgrcmVjb3JkLnVzZXJpZCAhPT0gdGhpcy5fdXNlcl9pZCkge1xyXG4gICAgICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHVzZXJfYWRkcmVzc2VzLnB1c2gobmV3IEVzb2x2ZUFkZHJlc3MoXHJcbiAgICAgICAgICAgICAgICArcmVjb3JkLmlkLFxyXG4gICAgICAgICAgICAgICAgcmVjb3JkLnJlY2lwaWVudCxcclxuICAgICAgICAgICAgICAgIHJlY29yZC5hZGRyZXNzX3R5cGUsXHJcbiAgICAgICAgICAgICAgICByZWNvcmQucG9ib3gsXHJcbiAgICAgICAgICAgICAgICByZWNvcmQucGxhY2VfbmFtZSxcclxuICAgICAgICAgICAgICAgIHJlY29yZC5zdHJlZXRfbnVtYmVyLFxyXG4gICAgICAgICAgICAgICAgcmVjb3JkLnN0cmVldCxcclxuICAgICAgICAgICAgICAgIHJlY29yZC5zdWJ1cmIsXHJcbiAgICAgICAgICAgICAgICByZWNvcmQuY2l0eSxcclxuICAgICAgICAgICAgICAgIHJlY29yZC5wcm92aW5jZSxcclxuICAgICAgICAgICAgICAgIHJlY29yZC5jb3VudHJ5LFxyXG4gICAgICAgICAgICAgICAgcmVjb3JkLnBvc3RhbF9jb2RlLFxyXG4gICAgICAgICAgICAgICAgK3JlY29yZC5sYXRpdHVkZSxcclxuICAgICAgICAgICAgICAgICtyZWNvcmQubG9uZ2l0dWRlLFxyXG4gICAgICAgICAgICApKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB1c2VyX2FkZHJlc3NlcztcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHByb2Nlc3NUcmFuc2FjdGlvbnMocmVjb3JkczogRXNvbHZlVHJhbnNhY3Rpb25SZWNvcmRbXSk6IEVzb2x2ZVRyYW5zYWN0aW9uW10ge1xyXG4gICAgICAgIGNvbnN0IHRyYW5zYWN0aW9uczogRXNvbHZlVHJhbnNhY3Rpb25bXSA9IFtdO1xyXG5cclxuICAgICAgICBpZiAocmVjb3Jkcykge1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IHJlY29yZCBvZiByZWNvcmRzKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB0cmFuc2FjdGlvbiA9IG5ldyBFc29sdmVUcmFuc2FjdGlvbihyZWNvcmQpO1xyXG5cclxuICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9ucy5wdXNoKHRyYW5zYWN0aW9uKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRyYW5zYWN0aW9ucztcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHByb2Nlc3NDbGllbnRCYWxhbmNlcyhcclxuICAgICAgICByZWNvcmRzOiBFc29sdmVVc2VyQ2xpZW50QWNjb3VudEJhbGFuY2VzUmVjb3JkW10sXHJcbiAgICApOiBFc29sdmVVc2VyQ2xpZW50QWNjb3VudEJhbGFuY2VzIHwgdW5kZWZpbmVkIHtcclxuXHJcbiAgICAgICAgZm9yIChjb25zdCByZWNvcmQgb2YgcmVjb3Jkcykge1xyXG4gICAgICAgICAgICBpZiAoISgrcmVjb3JkLmNsaWVudHNfaWQgPiAwKSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgY29uc3QgY2FydF90b3RhbHMgPSBuZXcgRXNvbHZlQ2FydFRvdGFscyhcclxuICAgICAgICAgICAgICAgIHJlY29yZC5jYXJ0X3RvdGFscy5yZWNvcmRzLFxyXG4gICAgICAgICAgICAgICAgK3JlY29yZC5jYXJ0X3RvdGFscy5pdGVtcyxcclxuICAgICAgICAgICAgICAgICtyZWNvcmQuY2FydF90b3RhbHMudG90YWwsXHJcbiAgICAgICAgICAgICAgICArcmVjb3JkLmNhcnRfdG90YWxzLnZhdCxcclxuICAgICAgICAgICAgICAgICtyZWNvcmQuY2FydF90b3RhbHMuZGlzY291bnQsXHJcbiAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gbmV3IEVzb2x2ZVVzZXJDbGllbnRBY2NvdW50QmFsYW5jZXMgKFxyXG4gICAgICAgICAgICAgICAgK3JlY29yZC5jbGllbnRzX2lkLFxyXG4gICAgICAgICAgICAgICAgcmVjb3JkLmFjY291bnQsXHJcbiAgICAgICAgICAgICAgICBjYXJ0X3RvdGFscyxcclxuICAgICAgICAgICAgICAgICtyZWNvcmQuY3JlZGl0X2xpbWl0LFxyXG4gICAgICAgICAgICAgICAgK3JlY29yZC5leHRlcm5hbF9hY2NvdW50X2JhbGFuY2UsXHJcbiAgICAgICAgICAgICAgICArcmVjb3JkLmV4dGVybmFsX2F2YWlsYWJsZV9iYWxhbmNlLFxyXG4gICAgICAgICAgICAgICAgK3JlY29yZC5uZXdfZXh0ZXJuYWxfYXZhaWxhYmxlX2JhbGFuY2UsXHJcbiAgICAgICAgICAgICAgICAhIStyZWNvcmQuY3JlZGl0X2xpbWl0X29rYXksXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgbG9naW5HdWFyZCgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy51c2VyX2lkIDw9IDApIHtcclxuICAgICAgICAgICAgdGhpcy5lcnJvckhhbmRsZXIudGhyb3dFcnJvcignbG9naW5fcmVxdWlyZWQnLCAnTG9naW4gaXMgcmVxdWlyZWQnKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19","export class EsolveBanner {\r\n constructor(id, banner_display_container, identifier, type, title, article, sort_priority, link, images) {\r\n this.id = id;\r\n this.banner_display_container = banner_display_container;\r\n this.identifier = identifier;\r\n this.type = type;\r\n this.title = title;\r\n this.article = article;\r\n this.sort_priority = sort_priority;\r\n this.link = link;\r\n this.desktop_images = [];\r\n this.mobile_images = [];\r\n this.sub_images = [];\r\n if (images.desktop) {\r\n this.desktop_images = images.desktop;\r\n }\r\n if (images.mobile) {\r\n this.mobile_images = images.mobile;\r\n }\r\n if (images.sub) {\r\n this.sub_images = images.sub;\r\n }\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWJhbm5lci5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9iYW5uZXJzL2Vzb2x2ZS1iYW5uZXIubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsTUFBTSxPQUFPLFlBQVk7SUFLckIsWUFDVyxFQUFVLEVBQ1Ysd0JBQWdDLEVBQ2hDLFVBQWtCLEVBQ2xCLElBQXNCLEVBQ3RCLEtBQWEsRUFDYixPQUFlLEVBQ2YsYUFBcUIsRUFDckIsSUFBc0IsRUFDN0IsTUFBNEI7UUFSckIsT0FBRSxHQUFGLEVBQUUsQ0FBUTtRQUNWLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBUTtRQUNoQyxlQUFVLEdBQVYsVUFBVSxDQUFRO1FBQ2xCLFNBQUksR0FBSixJQUFJLENBQWtCO1FBQ3RCLFVBQUssR0FBTCxLQUFLLENBQVE7UUFDYixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ2Ysa0JBQWEsR0FBYixhQUFhLENBQVE7UUFDckIsU0FBSSxHQUFKLElBQUksQ0FBa0I7UUFaMUIsbUJBQWMsR0FBd0IsRUFBRSxDQUFDO1FBQ3pDLGtCQUFhLEdBQXdCLEVBQUUsQ0FBQztRQUN4QyxlQUFVLEdBQXdCLEVBQUUsQ0FBQztRQWF4QyxJQUFJLE1BQU0sQ0FBQyxPQUFPLEVBQUU7WUFDaEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO1NBQ3hDO1FBRUQsSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFO1lBQ2YsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO1NBQ3RDO1FBRUQsSUFBSSxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDO1NBQ2hDO0lBQ0wsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXNvbHZlQmFubmVyVHlwZSB9IGZyb20gJy4vZXNvbHZlLWJhbm5lci10eXBlLnR5cGUnO1xyXG5pbXBvcnQgeyBFc29sdmVCYW5uZXJMaW5rIH0gZnJvbSAnLi9lc29sdmUtYmFubmVyLWxpbmsuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgRXNvbHZlQmFubmVySW1hZ2UgfSBmcm9tICcuL2Vzb2x2ZS1iYW5uZXItaW1hZ2UubW9kZWwnO1xyXG5pbXBvcnQgeyBFc29sdmVCYW5uZXJJbWFnZVNldCB9IGZyb20gJy4vZXNvbHZlLWJhbm5lci1pbWFnZS1zZXQuaW50ZXJmYWNlJztcclxuXHJcbmV4cG9ydCBjbGFzcyBFc29sdmVCYW5uZXIge1xyXG4gICAgcHVibGljIGRlc2t0b3BfaW1hZ2VzOiBFc29sdmVCYW5uZXJJbWFnZVtdID0gW107XHJcbiAgICBwdWJsaWMgbW9iaWxlX2ltYWdlczogRXNvbHZlQmFubmVySW1hZ2VbXSA9IFtdO1xyXG4gICAgcHVibGljIHN1Yl9pbWFnZXM6IEVzb2x2ZUJhbm5lckltYWdlW10gPSBbXTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwdWJsaWMgaWQ6IG51bWJlcixcclxuICAgICAgICBwdWJsaWMgYmFubmVyX2Rpc3BsYXlfY29udGFpbmVyOiBzdHJpbmcsXHJcbiAgICAgICAgcHVibGljIGlkZW50aWZpZXI6IHN0cmluZyxcclxuICAgICAgICBwdWJsaWMgdHlwZTogRXNvbHZlQmFubmVyVHlwZSxcclxuICAgICAgICBwdWJsaWMgdGl0bGU6IHN0cmluZyxcclxuICAgICAgICBwdWJsaWMgYXJ0aWNsZTogc3RyaW5nLFxyXG4gICAgICAgIHB1YmxpYyBzb3J0X3ByaW9yaXR5OiBudW1iZXIsXHJcbiAgICAgICAgcHVibGljIGxpbms6IEVzb2x2ZUJhbm5lckxpbmssXHJcbiAgICAgICAgaW1hZ2VzOiBFc29sdmVCYW5uZXJJbWFnZVNldCxcclxuICAgICkge1xyXG4gICAgICAgIGlmIChpbWFnZXMuZGVza3RvcCkge1xyXG4gICAgICAgICAgICB0aGlzLmRlc2t0b3BfaW1hZ2VzID0gaW1hZ2VzLmRlc2t0b3A7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoaW1hZ2VzLm1vYmlsZSkge1xyXG4gICAgICAgICAgICB0aGlzLm1vYmlsZV9pbWFnZXMgPSBpbWFnZXMubW9iaWxlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGltYWdlcy5zdWIpIHtcclxuICAgICAgICAgICAgdGhpcy5zdWJfaW1hZ2VzID0gaW1hZ2VzLnN1YjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19","export class EsolveBannerImage {\r\n constructor(id, image_type, width, height, filename, hotspots) {\r\n this.id = id;\r\n this.image_type = image_type;\r\n this.width = width;\r\n this.height = height;\r\n this.filename = filename;\r\n this.hotspots = hotspots;\r\n }\r\n get src() {\r\n return '/images/banners/' + this.filename;\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWJhbm5lci1pbWFnZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9iYW5uZXJzL2Vzb2x2ZS1iYW5uZXItaW1hZ2UubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxPQUFPLGlCQUFpQjtJQUMxQixZQUNXLEVBQVUsRUFDVixVQUFpQyxFQUNqQyxLQUFhLEVBQ2IsTUFBYyxFQUNkLFFBQWdCLEVBQ2hCLFFBQXFDO1FBTHJDLE9BQUUsR0FBRixFQUFFLENBQVE7UUFDVixlQUFVLEdBQVYsVUFBVSxDQUF1QjtRQUNqQyxVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQ2IsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGFBQVEsR0FBUixRQUFRLENBQVE7UUFDaEIsYUFBUSxHQUFSLFFBQVEsQ0FBNkI7SUFDNUMsQ0FBQztJQUVMLElBQVcsR0FBRztRQUNWLE9BQU8sa0JBQWtCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUM5QyxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFc29sdmVCYW5uZXJJbWFnZVR5cGUgfSBmcm9tICcuL2Vzb2x2ZS1iYW5uZXItaW1hZ2UtdHlwZS50eXBlJztcclxuaW1wb3J0IHsgRXNvbHZlQmFubmVySW1hZ2VIb3RzcG90IH0gZnJvbSAnLi9lc29sdmUtYmFubmVyLWltYWdlLWhvdHNwb3QubW9kZWwnO1xyXG5cclxuZXhwb3J0IGNsYXNzIEVzb2x2ZUJhbm5lckltYWdlIHtcclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHB1YmxpYyBpZDogbnVtYmVyLFxyXG4gICAgICAgIHB1YmxpYyBpbWFnZV90eXBlOiBFc29sdmVCYW5uZXJJbWFnZVR5cGUsXHJcbiAgICAgICAgcHVibGljIHdpZHRoOiBudW1iZXIsXHJcbiAgICAgICAgcHVibGljIGhlaWdodDogbnVtYmVyLFxyXG4gICAgICAgIHB1YmxpYyBmaWxlbmFtZTogc3RyaW5nLFxyXG4gICAgICAgIHB1YmxpYyBob3RzcG90cz86IEVzb2x2ZUJhbm5lckltYWdlSG90c3BvdFtdLFxyXG4gICAgKSB7IH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IHNyYygpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiAnL2ltYWdlcy9iYW5uZXJzLycgKyB0aGlzLmZpbGVuYW1lO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==","export class EsolveBannerImageHotspot {\r\n constructor(url, target, coords, coords_string) {\r\n this.url = url;\r\n this.target = target;\r\n this.coords = coords;\r\n this.coords_string = coords_string;\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWJhbm5lci1pbWFnZS1ob3RzcG90Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL2Jhbm5lcnMvZXNvbHZlLWJhbm5lci1pbWFnZS1ob3RzcG90Lm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sT0FBTyx3QkFBd0I7SUFDakMsWUFDVyxHQUFXLEVBQ1gsTUFBdUIsRUFDdkIsTUFBd0MsRUFDeEMsYUFBcUI7UUFIckIsUUFBRyxHQUFILEdBQUcsQ0FBUTtRQUNYLFdBQU0sR0FBTixNQUFNLENBQWlCO1FBQ3ZCLFdBQU0sR0FBTixNQUFNLENBQWtDO1FBQ3hDLGtCQUFhLEdBQWIsYUFBYSxDQUFRO0lBQzVCLENBQUM7Q0FDUiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVzb2x2ZVVybFRhcmdldCB9IGZyb20gJy4uL3NoYXJlZC9lc29sdmUtdXJsLXRhcmdldC50eXBlJztcclxuaW1wb3J0IHsgRXNvbHZlQmFubmVySW1hZ2VIb3RzcG90Q29vcmRzIH0gZnJvbSAnLi9lc29sdmUtYmFubmVyLWltYWdlLWhvdHNwb3QtY29vcmRzLmludGVyZmFjZSc7XHJcblxyXG5leHBvcnQgY2xhc3MgRXNvbHZlQmFubmVySW1hZ2VIb3RzcG90IHtcclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHB1YmxpYyB1cmw6IHN0cmluZyxcclxuICAgICAgICBwdWJsaWMgdGFyZ2V0OiBFc29sdmVVcmxUYXJnZXQsXHJcbiAgICAgICAgcHVibGljIGNvb3JkczogRXNvbHZlQmFubmVySW1hZ2VIb3RzcG90Q29vcmRzW10sXHJcbiAgICAgICAgcHVibGljIGNvb3Jkc19zdHJpbmc6IHN0cmluZyxcclxuICAgICkgeyB9XHJcbn1cclxuIl19","import { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { map } from 'rxjs/operators';\r\nimport { ESOLVE_CONNECT_CONFIG } from '../esolve-connect-config.constant';\r\nimport { EsolveBanner } from './esolve-banner.model';\r\nimport { EsolveBannerImage } from './esolve-banner-image.model';\r\nimport { EsolveBannerImageHotspot } from './esolve-banner-image-hotspot.model';\r\nimport * as i0 from \"@angular/core\";\r\nimport * as i1 from \"@angular/common/http\";\r\nexport class EsolveBannerService {\r\n constructor(config, http) {\r\n this.config = config;\r\n this.http = http;\r\n }\r\n /**\r\n * Retrieves banners records from eSolve instance\r\n *\r\n * @returns An observable of eSolve banners.\r\n */\r\n getBanners(identifier, banner_display_container, enable_date_filter = false) {\r\n let params = new HttpParams({\r\n fromObject: { enable_date_filter },\r\n });\r\n if (identifier) {\r\n params = params.set('identifier', identifier);\r\n }\r\n if (banner_display_container) {\r\n params = params.set('banner_display_container', banner_display_container);\r\n }\r\n return this.http\r\n .get(`${this.config.api_url}/get-banners.php`, { params })\r\n .pipe(map((response) => {\r\n if (response.records === undefined) {\r\n throw response;\r\n }\r\n return this.processBanners(response.records);\r\n }));\r\n }\r\n processBannerImageHotspots(hotspot_records) {\r\n const hotspots = [];\r\n if (hotspot_records.length > 0) {\r\n for (const hotspot_record of hotspot_records) {\r\n const hotspot = new EsolveBannerImageHotspot(hotspot_record.url, hotspot_record.target, hotspot_record.coords, hotspot_record.coords_string);\r\n hotspots.push(hotspot);\r\n }\r\n }\r\n return hotspots;\r\n }\r\n processBannerImages(image_records, banner_type) {\r\n const images = [];\r\n if (image_records.length > 0) {\r\n for (const image_record of image_records) {\r\n const image = new EsolveBannerImage(+image_record.id, image_record.image_type, +image_record.width, +image_record.height, image_record.filename);\r\n if ((banner_type === 'hotspot') && (image_record.hotspots)) {\r\n const hotspots = this.processBannerImageHotspots(image_record.hotspots);\r\n image.hotspots = hotspots;\r\n }\r\n images.push(image);\r\n }\r\n }\r\n return images;\r\n }\r\n /**\r\n * Process banner records into banner objects\r\n * @param records Array of records\r\n * @returns List of banners\r\n */\r\n processBanners(records) {\r\n const banners = [];\r\n if ((records) && (records.length > 0)) {\r\n for (const record of records) {\r\n const image_sets = {};\r\n if (record.images.desktop) {\r\n image_sets.desktop = this.processBannerImages(record.images.desktop, record.type);\r\n }\r\n if (record.images.mobile) {\r\n image_sets.mobile = this.processBannerImages(record.images.mobile, record.type);\r\n }\r\n if (record.images.sub) {\r\n image_sets.sub = this.processBannerImages(record.images.sub, record.type);\r\n }\r\n const banner = new EsolveBanner(+record.id, record.banner_display_container, record.identifier, record.type, record.title, record.article, +record.sort_priority, {\r\n url: record.link.url,\r\n target: record.link.target,\r\n }, image_sets);\r\n banners.push(banner);\r\n }\r\n }\r\n return banners;\r\n }\r\n}\r\nEsolveBannerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveBannerService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });\r\nEsolveBannerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveBannerService, providedIn: 'root' });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveBannerService, decorators: [{\r\n type: Injectable,\r\n args: [{\r\n providedIn: 'root',\r\n }]\r\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\r\n type: Inject,\r\n args: [ESOLVE_CONNECT_CONFIG]\r\n }] }, { type: i1.HttpClient }]; } });\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWJhbm5lci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL2Jhbm5lcnMvZXNvbHZlLWJhbm5lci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDOUQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHbkQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3JDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBSTFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVyRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7O0FBUS9FLE1BQU0sT0FBTyxtQkFBbUI7SUFDNUIsWUFDMkMsTUFBMkIsRUFDMUQsSUFBZ0I7UUFEZSxXQUFNLEdBQU4sTUFBTSxDQUFxQjtRQUMxRCxTQUFJLEdBQUosSUFBSSxDQUFZO0lBQ3hCLENBQUM7SUFFTDs7OztPQUlHO0lBQ0ksVUFBVSxDQUNiLFVBQW1CLEVBQ25CLHdCQUFpQyxFQUNqQyxxQkFBOEIsS0FBSztRQUVuQyxJQUFJLE1BQU0sR0FBRyxJQUFJLFVBQVUsQ0FBQztZQUN4QixVQUFVLEVBQUUsRUFBRSxrQkFBa0IsRUFBRTtTQUNyQyxDQUFDLENBQUM7UUFFSCxJQUFJLFVBQVUsRUFBRTtZQUNaLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxVQUFVLENBQUMsQ0FBQztTQUNqRDtRQUVELElBQUksd0JBQXdCLEVBQUU7WUFDMUIsTUFBTSxHQUFHLE1B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LElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUU7b0JBQ25CLFVBQVUsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUNyQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFDakIsTUFBTSxDQUFDLElBQUksQ0FDZCxDQUFDO2lCQUNMO2dCQUVELE1BQU0sTUFBTSxHQUFHLElBQUksWUFBWSxDQUMzQixDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQ1YsTUFBTSxDQUFDLHdCQUF3QixFQUMvQixNQUFNLENBQUMsVUFBVSxFQUNqQixNQUFNLENBQUMsSUFBSSxFQUNYLE1BQU0sQ0FBQyxLQUFLLEVBQ1osTUFBTSxDQUFDLE9BQU8sRUFDZCxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQ3JCO29CQUNJLEdBQUcsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUc7b0JBQ3BCLE1BQU0sRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU07aUJBQzdCLEVBQ0QsVUFBVSxDQUNiLENBQUM7Z0JBRUYsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUN4QjtTQUNKO1FBRUQsT0FBTyxPQUFPLENBQUM7SUFDbkIsQ0FBQzs7Z0hBbEpRLG1CQUFtQixrQkFFaEIscUJBQXFCO29IQUZ4QixtQkFBbUIsY0FGaEIsTUFBTTsyRkFFVCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCOzswQkFHUSxNQUFNOzJCQUFDLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBFc29sdmVDb25uZWN0Q29uZmlnIH0gZnJvbSAnLi4vZXNvbHZlLWNvbm5lY3QuY29uZmlnJztcclxuaW1wb3J0IHsgRVNPTFZFX0NPTk5FQ1RfQ09ORklHIH0gZnJvbSAnLi4vZXNvbHZlLWNvbm5lY3QtY29uZmlnLmNvbnN0YW50JztcclxuaW1wb3J0IHsgRXNvbHZlR2V0UmVzcG9uc2UgfSBmcm9tICcuLi9zaGFyZWQvcmVzcG9uc2UnO1xyXG5cclxuaW1wb3J0IHsgRXNvbHZlQmFubmVyVHlwZSB9IGZyb20gJy4vZXNvbHZlLWJhbm5lci10eXBlLnR5cGUnO1xyXG5pbXBvcnQgeyBFc29sdmVCYW5uZXIgfSBmcm9tICcuL2Vzb2x2ZS1iYW5uZXIubW9kZWwnO1xyXG5pbXBvcnQgeyBFc29sdmVCYW5uZXJJbWFnZVNldCB9IGZyb20gJy4vZXNvbHZlLWJhbm5lci1pbWFnZS1zZXQuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgRXNvbHZlQmFubmVySW1hZ2UgfSBmcm9tICcuL2Vzb2x2ZS1iYW5uZXItaW1hZ2UubW9kZWwnO1xyXG5pbXBvcnQgeyBFc29sdmVCYW5uZXJJbWFnZUhvdHNwb3QgfSBmcm9tICcuL2Vzb2x2ZS1iYW5uZXItaW1hZ2UtaG90c3BvdC5tb2RlbCc7XHJcbmltcG9ydCB7IEVzb2x2ZUJhbm5lclJlY29yZCB9IGZyb20gJy4vZXNvbHZlLWJhbm5lci1yZWNvcmQuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgRXNvbHZlQmFubmVySW1hZ2VIb3RzcG90UmVjb3JkIH0gZnJvbSAnLi9lc29sdmUtYmFubmVyLWltYWdlLWhvdHNwb3QtcmVjb3JkLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IEVzb2x2ZUJhbm5lckltYWdlUmVjb3JkIH0gZnJvbSAnLi9lc29sdmUtYmFubmVyLWltYWdlLXJlY29yZC5pbnRlcmZhY2UnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRXNvbHZlQmFubmVyU2VydmljZSB7XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBASW5qZWN0KEVTT0xWRV9DT05ORUNUX0NPTkZJRykgcHJpdmF0ZSBjb25maWc6IEVzb2x2ZUNvbm5lY3RDb25maWcsXHJcbiAgICAgICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgKSB7IH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHJpZXZlcyBiYW5uZXJzIHJlY29yZHMgZnJvbSBlU29sdmUgaW5zdGFuY2VcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyBBbiBvYnNlcnZhYmxlIG9mIGVTb2x2ZSBiYW5uZXJzLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0QmFubmVycyhcclxuICAgICAgICBpZGVudGlmaWVyPzogc3RyaW5nLFxyXG4gICAgICAgIGJhbm5lcl9kaXNwbGF5X2NvbnRhaW5lcj86IHN0cmluZyxcclxuICAgICAgICBlbmFibGVfZGF0ZV9maWx0ZXI6IGJvb2xlYW4gPSBmYWxzZSxcclxuICAgICk6IE9ic2VydmFibGU8RXNvbHZlQmFubmVyW10+IHtcclxuICAgICAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoe1xyXG4gICAgICAgICAgICBmcm9tT2JqZWN0OiB7IGVuYWJsZV9kYXRlX2ZpbHRlciB9LFxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBpZiAoaWRlbnRpZmllcikge1xyXG4gICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdpZGVudGlmaWVyJywgaWRlbnRpZmllcik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoYmFubmVyX2Rpc3BsYXlfY29udGFpbmVyKSB7XHJcbiAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ2Jhbm5lcl9kaXNwbGF5X2NvbnRhaW5lcicsIGJhbm5lcl9kaXNwbGF5X2NvbnRhaW5lcik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgICAgICAgIC5nZXQ8RXNvbHZlR2V0UmVzcG9uc2U8RXNvbHZlQmFubmVyUmVjb3JkW10+PihcclxuICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L2dldC1iYW5uZXJzLnBocGAsXHJcbiAgICAgICAgICAgICAgICB7IHBhcmFtcyB9LFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5yZWNvcmRzID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzQmFubmVycyhyZXNwb25zZS5yZWNvcmRzKTtcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgcHJvY2Vzc0Jhbm5lckltYWdlSG90c3BvdHMoXHJcbiAgICAgICAgaG90c3BvdF9yZWNvcmRzOiBFc29sdmVCYW5uZXJJbWFnZUhvdHNwb3RSZWNvcmRbXSxcclxuICAgICk6IEVzb2x2ZUJhbm5lckltYWdlSG90c3BvdFtdIHtcclxuICAgICAgICBjb25zdCBob3RzcG90czogRXNvbHZlQmFubmVySW1hZ2VIb3RzcG90W10gPSBbXTtcclxuXHJcbiAgICAgICAgaWYgKGhvdHNwb3RfcmVjb3Jkcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgaG90c3BvdF9yZWNvcmQgb2YgaG90c3BvdF9yZWNvcmRzKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBob3RzcG90ID0gbmV3IEVzb2x2ZUJhbm5lckltYWdlSG90c3BvdChcclxuICAgICAgICAgICAgICAgICAgICBob3RzcG90X3JlY29yZC51cmwsXHJcbiAgICAgICAgICAgICAgICAgICAgaG90c3BvdF9yZWNvcmQudGFyZ2V0LFxyXG4gICAgICAgICAgICAgICAgICAgIGhvdHNwb3RfcmVjb3JkLmNvb3JkcyxcclxuICAgICAgICAgICAgICAgICAgICBob3RzcG90X3JlY29yZC5jb29yZHNfc3RyaW5nLFxyXG4gICAgICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICAgICAgICBob3RzcG90cy5wdXNoKGhvdHNwb3QpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gaG90c3BvdHM7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBwcm9jZXNzQmFubmVySW1hZ2VzKFxyXG4gICAgICAgIGltYWdlX3JlY29yZHM6IEVzb2x2ZUJhbm5lckltYWdlUmVjb3JkW10sXHJcbiAgICAgICAgYmFubmVyX3R5cGU6IEVzb2x2ZUJhbm5lclR5cGUsXHJcbiAgICApOiBFc29sdmVCYW5uZXJJbWFnZVtdIHtcclxuICAgICAgICBjb25zdCBpbWFnZXM6IEVzb2x2ZUJhbm5lckltYWdlW10gPSBbXTtcclxuXHJcbiAgICAgICAgaWYgKGltYWdlX3JlY29yZHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGltYWdlX3JlY29yZCBvZiBpbWFnZV9yZWNvcmRzKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBpbWFnZSA9IG5ldyBFc29sdmVCYW5uZXJJbWFnZShcclxuICAgICAgICAgICAgICAgICAgICAraW1hZ2VfcmVjb3JkLmlkLFxyXG4gICAgICAgICAgICAgICAgICAgIGltYWdlX3JlY29yZC5pbWFnZV90eXBlLFxyXG4gICAgICAgICAgICAgICAgICAgICtpbWFnZV9yZWNvcmQud2lkdGgsXHJcbiAgICAgICAgICAgICAgICAgICAgK2ltYWdlX3JlY29yZC5oZWlnaHQsXHJcbiAgICAgICAgICAgICAgICAgICAgaW1hZ2VfcmVjb3JkLmZpbGVuYW1lLFxyXG4gICAgICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoKGJhbm5lcl90eXBlID09PSAnaG90c3BvdCcpICYmIChpbWFnZV9yZWNvcmQuaG90c3BvdHMpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaG90c3BvdHMgPSB0aGlzLnByb2Nlc3NCYW5uZXJJbWFnZUhvdHNwb3RzKGltYWdlX3JlY29yZC5ob3RzcG90cyk7XHJcbiAgICAgICAgICAgICAgICAgICAgaW1hZ2UuaG90c3BvdHMgPSBob3RzcG90cztcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBpbWFnZXMucHVzaChpbWFnZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBpbWFnZXM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQcm9jZXNzIGJhbm5lciByZWNvcmRzIGludG8gYmFubmVyIG9iamVjdHNcclxuICAgICAqIEBwYXJhbSByZWNvcmRzIEFycmF5IG9mIHJlY29yZHNcclxuICAgICAqIEByZXR1cm5zIExpc3Qgb2YgYmFubmVyc1xyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHByb2Nlc3NCYW5uZXJzKHJlY29yZHM6IEVzb2x2ZUJhbm5lclJlY29yZFtdKTogRXNvbHZlQmFubmVyW10ge1xyXG4gICAgICAgIGNvbnN0IGJhbm5lcnM6IEVzb2x2ZUJhbm5lcltdID0gW107XHJcblxyXG4gICAgICAgIGlmICgocmVjb3JkcykgJiYgKHJlY29yZHMubGVuZ3RoID4gMCkpIHtcclxuICAgICAgICAgICAgZm9yIChjb25zdCByZWNvcmQgb2YgcmVjb3Jkcykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgaW1hZ2Vfc2V0czogRXNvbHZlQmFubmVySW1hZ2VTZXQgPSB7fTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAocmVjb3JkLmltYWdlcy5kZXNrdG9wKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaW1hZ2Vfc2V0cy5kZXNrdG9wID0gdGhpcy5wcm9jZXNzQmFubmVySW1hZ2VzKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZWNvcmQuaW1hZ2VzLmRlc2t0b3AsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlY29yZC50eXBlLFxyXG4gICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHJlY29yZC5pbWFnZXMubW9iaWxlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaW1hZ2Vfc2V0cy5tb2JpbGUgPSB0aGlzLnByb2Nlc3NCYW5uZXJJbWFnZXMoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlY29yZC5pbWFnZXMubW9iaWxlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZWNvcmQudHlwZSxcclxuICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGlmIChyZWNvcmQuaW1hZ2VzLnN1Yikge1xyXG4gICAgICAgICAgICAgICAgICAgIGltYWdlX3NldHMuc3ViID0gdGhpcy5wcm9jZXNzQmFubmVySW1hZ2VzKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZWNvcmQuaW1hZ2VzLnN1YixcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVjb3JkLnR5cGUsXHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBjb25zdCBiYW5uZXIgPSBuZXcgRXNvbHZlQmFubmVyKFxyXG4gICAgICAgICAgICAgICAgICAgICtyZWNvcmQuaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLmJhbm5lcl9kaXNwbGF5X2NvbnRhaW5lcixcclxuICAgICAgICAgICAgICAgICAgICByZWNvcmQuaWRlbnRpZmllcixcclxuICAgICAgICAgICAgICAgICAgICByZWNvcmQudHlwZSxcclxuICAgICAgICAgICAgICAgICAgICByZWNvcmQudGl0bGUsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLmFydGljbGUsXHJcbiAgICAgICAgICAgICAgICAgICAgK3JlY29yZC5zb3J0X3ByaW9yaXR5LFxyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiByZWNvcmQubGluay51cmwsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldDogcmVjb3JkLmxpbmsudGFyZ2V0LFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgaW1hZ2Vfc2V0cyxcclxuICAgICAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgICAgICAgYmFubmVycy5wdXNoKGJhbm5lcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBiYW5uZXJzO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==","// Types\r\nexport * from './esolve-banner-image-type.type';\r\n// Classes\r\nexport * from './esolve-banner.model';\r\nexport * from './esolve-banner-image.model';\r\nexport * from './esolve-banner-image-hotspot.model';\r\n// Interfaces\r\nexport * from './esolve-banner-image-set.interface';\r\nexport * from './esolve-banner-image-record.interface';\r\nexport * from './esolve-banner-image-hotspot-coords.interface';\r\nexport * from './esolve-banner-image-hotspot-record.interface';\r\n// Service\r\nexport * from './esolve-banner.service';\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvYmFubmVycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxRQUFRO0FBQ1IsY0FBYyxpQ0FBaUMsQ0FBQztBQUVoRCxVQUFVO0FBQ1YsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMscUNBQXFDLENBQUM7QUFFcEQsYUFBYTtBQUNiLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsZ0RBQWdELENBQUM7QUFFL0QsVUFBVTtBQUNWLGNBQWMseUJBQXlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUeXBlc1xyXG5leHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS1iYW5uZXItaW1hZ2UtdHlwZS50eXBlJztcclxuXHJcbi8vIENsYXNzZXNcclxuZXhwb3J0ICogZnJvbSAnLi9lc29sdmUtYmFubmVyLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9lc29sdmUtYmFubmVyLWltYWdlLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9lc29sdmUtYmFubmVyLWltYWdlLWhvdHNwb3QubW9kZWwnO1xyXG5cclxuLy8gSW50ZXJmYWNlc1xyXG5leHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS1iYW5uZXItaW1hZ2Utc2V0LmludGVyZmFjZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZXNvbHZlLWJhbm5lci1pbWFnZS1yZWNvcmQuaW50ZXJmYWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9lc29sdmUtYmFubmVyLWltYWdlLWhvdHNwb3QtY29vcmRzLmludGVyZmFjZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZXNvbHZlLWJhbm5lci1pbWFnZS1ob3RzcG90LXJlY29yZC5pbnRlcmZhY2UnO1xyXG5cclxuLy8gU2VydmljZVxyXG5leHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS1iYW5uZXIuc2VydmljZSc7XHJcbiJdfQ==","export class EsolveMenuItem {\r\n constructor(url, name, target, children = []) {\r\n this.url = url;\r\n this.name = name;\r\n this.target = target;\r\n this.children = children;\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLW1lbnUtaXRlbS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9tZW51L2Vzb2x2ZS1tZW51LWl0ZW0ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLGNBQWM7SUFDdkIsWUFDVyxHQUFXLEVBQ1gsSUFBWSxFQUNaLE1BQWMsRUFDZCxXQUE2QixFQUFFO1FBSC9CLFFBQUcsR0FBSCxHQUFHLENBQVE7UUFDWCxTQUFJLEdBQUosSUFBSSxDQUFRO1FBQ1osV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGFBQVEsR0FBUixRQUFRLENBQXVCO0lBQ3RDLENBQUM7Q0FDUiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBFc29sdmVNZW51SXRlbSB7XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwdWJsaWMgdXJsOiBzdHJpbmcsXHJcbiAgICAgICAgcHVibGljIG5hbWU6IHN0cmluZyxcclxuICAgICAgICBwdWJsaWMgdGFyZ2V0OiBzdHJpbmcsXHJcbiAgICAgICAgcHVibGljIGNoaWxkcmVuOiBFc29sdmVNZW51SXRlbVtdID0gW10sXHJcbiAgICApIHsgfVxyXG59XHJcbiJdfQ==","import { Inject, Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { map } from 'rxjs/operators';\r\nimport { ESOLVE_CONNECT_CONFIG } from '../esolve-connect-config.constant';\r\nimport { EsolveMenuItem } from './esolve-menu-item.model';\r\nimport * as i0 from \"@angular/core\";\r\nimport * as i1 from \"@angular/common/http\";\r\nexport class EsolveMenuService {\r\n constructor(config, http) {\r\n this.config = config;\r\n this.http = http;\r\n }\r\n getMenuTree(identifier) {\r\n return this.http\r\n .get(`${this.config.api_url}/get-menu-tree.php`, { params: { identifier } })\r\n .pipe(map((response) => {\r\n if ((!response) || (response.records === undefined)) {\r\n throw response;\r\n }\r\n else if (response.records.length === 0) {\r\n return [];\r\n }\r\n return this.handleMenu(response.records);\r\n }));\r\n }\r\n handleMenu(records) {\r\n const menu = [];\r\n if (typeof records !== 'undefined') {\r\n for (const menuTreeRecord of records) {\r\n menu.push(new EsolveMenuItem(menuTreeRecord.sef_url, menuTreeRecord.name, menuTreeRecord.target, this.handleMenu(menuTreeRecord.children)));\r\n }\r\n }\r\n return menu;\r\n }\r\n}\r\nEsolveMenuService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveMenuService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });\r\nEsolveMenuService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveMenuService, providedIn: 'root' });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveMenuService, decorators: [{\r\n type: Injectable,\r\n args: [{\r\n providedIn: 'root',\r\n }]\r\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\r\n type: Inject,\r\n args: [ESOLVE_CONNECT_CONFIG]\r\n }] }, { type: i1.HttpClient }]; } });\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLW1lbnUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9tZW51L2Vzb2x2ZS1tZW51LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBR2xELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdyQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUkxRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7OztBQU0xRCxNQUFNLE9BQU8saUJBQWlCO0lBQzFCLFlBQzJDLE1BQTJCLEVBQzFELElBQWdCO1FBRGUsV0FBTSxHQUFOLE1BQU0sQ0FBcUI7UUFDMUQsU0FBSSxHQUFKLElBQUksQ0FBWTtJQUN4QixDQUFDO0lBRUUsV0FBVyxDQUFDLFVBQWtCO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDWCxHQUFHLENBQ0EsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sb0JBQW9CLEVBQzFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsVUFBVSxFQUFFLEVBQUUsQ0FDN0I7YUFDQSxJQUFJLENBQ0QsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDYixJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEtBQUssU0FBUyxDQUFDLEVBQUU7Z0JBQ2pELE1BQU0sUUFBUSxDQUFDO2FBQ2xCO2lCQUFNLElBQUksUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO2dCQUN0QyxPQUFPLEVBQUUsQ0FBQzthQUNiO1lBRUQsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM3QyxDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ1YsQ0FBQztJQUVPLFVBQVUsQ0FBQyxPQUFnQztRQUMvQyxNQUFNLElBQUksR0FBZSxFQUFFLENBQUM7UUFFNUIsSUFBSSxPQUFPLE9BQU8sS0FBSyxXQUFXLEVBQUU7WUFDaEMsS0FBSyxNQUFNLGNBQWMsSUFBSSxPQUFPLEVBQUU7Z0JBQ2xDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxjQUFjLENBQ3hCLGNBQWMsQ0FBQyxPQUFPLEVBQ3RCLGNBQWMsQ0FBQyxJQUFJLEVBQ25CLGNBQWMsQ0FBQyxNQUFNLEVBQ3JCLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUMzQyxDQUFDLENBQUM7YUFDTjtTQUNKO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQzs7OEdBeENRLGlCQUFpQixrQkFFZCxxQkFBcUI7a0hBRnhCLGlCQUFpQixjQUZkLE1BQU07MkZBRVQsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7MEJBR1EsTUFBTTsyQkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuXHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgRXNvbHZlQ29ubmVjdENvbmZpZyB9IGZyb20gJy4uL2Vzb2x2ZS1jb25uZWN0LmNvbmZpZyc7XHJcbmltcG9ydCB7IEVTT0xWRV9DT05ORUNUX0NPTkZJRyB9IGZyb20gJy4uL2Vzb2x2ZS1jb25uZWN0LWNvbmZpZy5jb25zdGFudCc7XHJcbmltcG9ydCB7IEVzb2x2ZUdldFJlc3BvbnNlIH0gZnJvbSAnLi4vc2hhcmVkL3Jlc3BvbnNlJztcclxuXHJcbmltcG9ydCB7IEVzb2x2ZU1lbnVUcmVlUmVjb3JkIH0gZnJvbSAnLi9lc29sdmUtbWVudS10cmVlLXJlY29yZC5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBFc29sdmVNZW51SXRlbSB9IGZyb20gJy4vZXNvbHZlLW1lbnUtaXRlbS5tb2RlbCc7XHJcbmltcG9ydCB7IEVzb2x2ZU1lbnUgfSBmcm9tICcuL2Vzb2x2ZS1tZW51LnR5cGUnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRXNvbHZlTWVudVNlcnZpY2Uge1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgQEluamVjdChFU09MVkVfQ09OTkVDVF9DT05GSUcpIHByaXZhdGUgY29uZmlnOiBFc29sdmVDb25uZWN0Q29uZmlnLFxyXG4gICAgICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgICkgeyB9XHJcblxyXG4gICAgcHVibGljIGdldE1lbnVUcmVlKGlkZW50aWZpZXI6IHN0cmluZyk6IE9ic2VydmFibGU8RXNvbHZlTWVudT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgICAgICAgLmdldDxFc29sdmVHZXRSZXNwb25zZTxFc29sdmVNZW51VHJlZVJlY29yZFtdPj4oXHJcbiAgICAgICAgICAgICAgICBgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9nZXQtbWVudS10cmVlLnBocGAsXHJcbiAgICAgICAgICAgICAgICB7IHBhcmFtczogeyBpZGVudGlmaWVyIH0gfSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoKCFyZXNwb25zZSkgfHwgKHJlc3BvbnNlLnJlY29yZHMgPT09IHVuZGVmaW5lZCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChyZXNwb25zZS5yZWNvcmRzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gW107XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5oYW5kbGVNZW51KHJlc3BvbnNlLnJlY29yZHMpO1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBoYW5kbGVNZW51KHJlY29yZHM/OiBFc29sdmVNZW51VHJlZVJlY29yZFtdKTogRXNvbHZlTWVudSB7XHJcbiAgICAgICAgY29uc3QgbWVudTogRXNvbHZlTWVudSA9IFtdO1xyXG5cclxuICAgICAgICBpZiAodHlwZW9mIHJlY29yZHMgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgbWVudVRyZWVSZWNvcmQgb2YgcmVjb3Jkcykge1xyXG4gICAgICAgICAgICAgICAgbWVudS5wdXNoKG5ldyBFc29sdmVNZW51SXRlbShcclxuICAgICAgICAgICAgICAgICAgICBtZW51VHJlZVJlY29yZC5zZWZfdXJsLFxyXG4gICAgICAgICAgICAgICAgICAgIG1lbnVUcmVlUmVjb3JkLm5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgbWVudVRyZWVSZWNvcmQudGFyZ2V0LFxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlTWVudShtZW51VHJlZVJlY29yZC5jaGlsZHJlbiksXHJcbiAgICAgICAgICAgICAgICApKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIG1lbnU7XHJcbiAgICB9XHJcbn1cclxuIl19","export class EsolveNewsGroup {\r\n constructor(id, name, description, sef_name) {\r\n this.id = id;\r\n this.name = name;\r\n this.description = description;\r\n this.sef_name = sef_name;\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLW5ld3MtZ3JvdXAubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvbmV3cy9lc29sdmUtbmV3cy1ncm91cC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sZUFBZTtJQUN4QixZQUNXLEVBQVUsRUFDVixJQUFZLEVBQ1osV0FBbUIsRUFDbkIsUUFBZ0I7UUFIaEIsT0FBRSxHQUFGLEVBQUUsQ0FBUTtRQUNWLFNBQUksR0FBSixJQUFJLENBQVE7UUFDWixnQkFBVyxHQUFYLFdBQVcsQ0FBUTtRQUNuQixhQUFRLEdBQVIsUUFBUSxDQUFRO0lBQ3ZCLENBQUM7Q0FDUiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBFc29sdmVOZXdzR3JvdXAge1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHVibGljIGlkOiBudW1iZXIsXHJcbiAgICAgICAgcHVibGljIG5hbWU6IHN0cmluZyxcclxuICAgICAgICBwdWJsaWMgZGVzY3JpcHRpb246IHN0cmluZyxcclxuICAgICAgICBwdWJsaWMgc2VmX25hbWU6IHN0cmluZyxcclxuICAgICkgeyB9XHJcbn1cclxuIl19","export class EsolveNewsArticleAuthor {\r\n constructor(userid, email, firstname, surname) {\r\n this.userid = userid;\r\n this.email = email;\r\n this.firstname = firstname;\r\n this.surname = surname;\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLW5ld3MtYXJ0aWNsZS1hdXRob3IubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvbmV3cy9lc29sdmUtbmV3cy1hcnRpY2xlLWF1dGhvci5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sdUJBQXVCO0lBQ2hDLFlBQ1csTUFBYyxFQUNkLEtBQWEsRUFDYixTQUFpQixFQUNqQixPQUFlO1FBSGYsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFVBQUssR0FBTCxLQUFLLENBQVE7UUFDYixjQUFTLEdBQVQsU0FBUyxDQUFRO1FBQ2pCLFlBQU8sR0FBUCxPQUFPLENBQVE7SUFDdEIsQ0FBQztDQUNSIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIEVzb2x2ZU5ld3NBcnRpY2xlQXV0aG9yIHtcclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHB1YmxpYyB1c2VyaWQ6IG51bWJlcixcclxuICAgICAgICBwdWJsaWMgZW1haWw6IHN0cmluZyxcclxuICAgICAgICBwdWJsaWMgZmlyc3RuYW1lOiBzdHJpbmcsXHJcbiAgICAgICAgcHVibGljIHN1cm5hbWU6IHN0cmluZyxcclxuICAgICkgeyB9XHJcbn1cclxuIl19","import { EsolveSeoInfo } from '../shared/seo/esolve-seo-info.model';\r\nimport { EsolveTag } from '../tags';\r\nimport { EsolveTopic } from '../topics';\r\nimport { EsolveManufacturer } from '../manufacturers';\r\nimport { EsolveRange } from '../ranges';\r\nimport { EsolveNewsGroup } from './esolve-news-group.model';\r\nimport { EsolveNewsArticleAuthor } from './esolve-news-article-author.model';\r\nexport class EsolveNewsArticle {\r\n constructor(record) {\r\n this.id = 0;\r\n this.title = '';\r\n this.sef_title = '';\r\n this.article = '';\r\n this.short_description = '';\r\n this.txdate = '';\r\n this.active = false;\r\n this.image = '';\r\n this.featured = false;\r\n this.topics = [];\r\n this.tags = [];\r\n let seo_title = '';\r\n let seo_description = '';\r\n let seo_keywords = '';\r\n if (record) {\r\n this.id = +(record.id ?? 0);\r\n this.title = record.title ?? '';\r\n this.sef_title = record.sef_title ?? '';\r\n this.article = record.article ?? '';\r\n this.txdate = record.txdate ?? '';\r\n this.image = record.image ?? '';\r\n this.short_description = record.short_description ?? '';\r\n if (record.active) {\r\n this.active = !!+record.active;\r\n }\r\n if (record.featured) {\r\n this.featured = !!+record.featured;\r\n }\r\n seo_title = record.seo_page_title ?? '';\r\n seo_description = record.short_description ?? '';\r\n seo_keywords = record.seo_keywords ?? '';\r\n if (record.news_group) {\r\n const group_record = record.news_group;\r\n this.group = new EsolveNewsGroup(+group_record.id, group_record.name, group_record.description, group_record.sef_name);\r\n }\r\n if (record.user) {\r\n this.author = new EsolveNewsArticleAuthor(record.user.userid, record.user.email, record.user.firstname, record.user.surname);\r\n }\r\n if (record.manufacturer) {\r\n this.manufacturer = new EsolveManufacturer(record.manufacturer);\r\n }\r\n if (record.range) {\r\n this.range = new EsolveRange(record.range);\r\n }\r\n if (record.topics && record.topics.length > 0) {\r\n const topics = record.topics;\r\n for (const topic of topics) {\r\n this.topics.push(new EsolveTopic(topic));\r\n }\r\n }\r\n if (record.tags && record.tags.length > 0) {\r\n const tags = record.tags;\r\n for (const tag of tags) {\r\n this.tags.push(new EsolveTag(tag));\r\n }\r\n }\r\n }\r\n if (seo_title.trim() === '') {\r\n seo_title = this.title;\r\n }\r\n this.seo_details = new EsolveSeoInfo(seo_title, seo_description, seo_keywords);\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLW5ld3MtYXJ0aWNsZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9uZXdzL2Vzb2x2ZS1uZXdzLWFydGljbGUubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBR3BFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDcEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN4QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXhDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUc3RSxNQUFNLE9BQU8saUJBQWlCO0lBa0IxQixZQUFZLE1BQXlDO1FBakI5QyxPQUFFLEdBQVcsQ0FBQyxDQUFDO1FBQ2YsVUFBSyxHQUFXLEVBQUUsQ0FBQztRQUNuQixjQUFTLEdBQVcsRUFBRSxDQUFDO1FBQ3ZCLFlBQU8sR0FBVyxFQUFFLENBQUM7UUFDckIsc0JBQWlCLEdBQVcsRUFBRSxDQUFDO1FBQy9CLFdBQU0sR0FBVyxFQUFFLENBQUM7UUFDcEIsV0FBTSxHQUFZLEtBQUssQ0FBQztRQUN4QixVQUFLLEdBQVcsRUFBRSxDQUFDO1FBQ25CLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsV0FBTSxHQUFrQixFQUFFLENBQUM7UUFDM0IsU0FBSSxHQUFnQixFQUFFLENBQUM7UUFRMUIsSUFBSSxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ25CLElBQUksZUFBZSxHQUFHLEVBQUUsQ0FBQztRQUN6QixJQUFJLFlBQVksR0FBRyxFQUFFLENBQUM7UUFFdEIsSUFBSSxNQUFNLEVBQUU7WUFDUixJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQzVCLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDaEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQztZQUN4QyxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO1lBQ3BDLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7WUFDbEMsSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUNoQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixJQUFJLEVBQUUsQ0FBQztZQUV4RCxJQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUU7Z0JBQ2YsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO2FBQ2xDO1lBRUQsSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFO2dCQUNqQixJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7YUFDdEM7WUFFRCxTQUFTLEdBQUcsTUFBTSxDQUFDLGNBQWMsSUFBSSxFQUFFLENBQUM7WUFDeEMsZUFBZSxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsSUFBSSxFQUFFLENBQUM7WUFDakQsWUFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLElBQUksRUFBRSxDQUFDO1lBRXpDLElBQUksTUFBTSxDQUFDLFVBQVUsRUFBRTtnQkFDbkIsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQztnQkFFdkMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLGVBQWUsQ0FDNUIsQ0FBQyxZQUFZLENBQUMsRUFBRSxFQUNoQixZQUFZLENBQUMsSUFBSSxFQUNqQixZQUFZLENBQUMsV0FBVyxFQUN4QixZQUFZLENBQUMsUUFBUSxDQUN4QixDQUFDO2FBQ0w7WUFFRCxJQUFJLE1BQU0sQ0FBQyxJQUFJLEVBQUU7Z0JBQ2IsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLHVCQUF1QixDQUNyQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFDbEIsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQ2pCLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUNyQixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FDdEIsQ0FBQzthQUNMO1lBRUQsSUFBSSxNQUFNLENBQUMsWUFBWSxFQUFFO2dCQUNyQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksa0JBQWtCLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO2FBQ25FO1lBRUQsSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFFO2dCQUNkLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxXQUFXLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQzlDO1lBRUQsSUFBSSxNQUFNLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDM0MsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztnQkFFN0IsS0FBSyxNQUFNLEtBQUssSUFBSSxNQUFNLEVBQUU7b0JBQ3hCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7aUJBQzVDO2FBQ0o7WUFFRCxJQUFJLE1BQU0sQ0FBQyxJQUFJLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUN2QyxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO2dCQUV6QixLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksRUFBRTtvQkFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztpQkFDdEM7YUFDSjtTQUNKO1FBRUQsSUFBSSxTQUFTLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ3pCLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1NBQzFCO1FBRUQsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLGFBQWEsQ0FDaEMsU0FBUyxFQUNULGVBQWUsRUFDZixZQUFZLENBQ2YsQ0FBQztJQUNOLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVzb2x2ZVNlb0luZm8gfSBmcm9tICcuLi9zaGFyZWQvc2VvL2Vzb2x2ZS1zZW8taW5mby5tb2RlbCc7XHJcbmltcG9ydCB7IEVzb2x2ZVNlb0RldGFpbHMgfSBmcm9tICcuLi9zaGFyZWQvc2VvL2Vzb2x2ZS1zZW8tZGV0YWlscy5pbnRlcmZhY2UnO1xyXG5cclxuaW1wb3J0IHsgRXNvbHZlVGFnIH0gZnJvbSAnLi4vdGFncyc7XHJcbmltcG9ydCB7IEVzb2x2ZVRvcGljIH0gZnJvbSAnLi4vdG9waWNzJztcclxuaW1wb3J0IHsgRXNvbHZlTWFudWZhY3R1cmVyIH0gZnJvbSAnLi4vbWFudWZhY3R1cmVycyc7XHJcbmltcG9ydCB7IEVzb2x2ZVJhbmdlIH0gZnJvbSAnLi4vcmFuZ2VzJztcclxuXHJcbmltcG9ydCB7IEVzb2x2ZU5ld3NHcm91cCB9IGZyb20gJy4vZXNvbHZlLW5ld3MtZ3JvdXAubW9kZWwnO1xyXG5pbXBvcnQgeyBFc29sdmVOZXdzQXJ0aWNsZUF1dGhvciB9IGZyb20gJy4vZXNvbHZlLW5ld3MtYXJ0aWNsZS1hdXRob3IubW9kZWwnO1xyXG5pbXBvcnQgeyBFc29sdmVOZXdzQXJ0aWNsZVJlY29yZCB9IGZyb20gJy4vZXNvbHZlLW5ld3MtYXJ0aWNsZS1yZWNvcmQuaW50ZXJmYWNlJztcclxuXHJcbmV4cG9ydCBjbGFzcyBFc29sdmVOZXdzQXJ0aWNsZSBpbXBsZW1lbnRzIEVzb2x2ZVNlb0RldGFpbHMge1xyXG4gICAgcHVibGljIGlkOiBudW1iZXIgPSAwO1xyXG4gICAgcHVibGljIHRpdGxlOiBzdHJpbmcgPSAnJztcclxuICAgIHB1YmxpYyBzZWZfdGl0bGU6IHN0cmluZyA9ICcnO1xyXG4gICAgcHVibGljIGFydGljbGU6IHN0cmluZyA9ICcnO1xyXG4gICAgcHVibGljIHNob3J0X2Rlc2NyaXB0aW9uOiBzdHJpbmcgPSAnJztcclxuICAgIHB1YmxpYyB0eGRhdGU6IHN0cmluZyA9ICcnO1xyXG4gICAgcHVibGljIGFjdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHVibGljIGltYWdlOiBzdHJpbmcgPSAnJztcclxuICAgIHB1YmxpYyBmZWF0dXJlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHVibGljIHRvcGljczogRXNvbHZlVG9waWNbXSA9IFtdO1xyXG4gICAgcHVibGljIHRhZ3M6IEVzb2x2ZVRhZ1tdID0gW107XHJcbiAgICBwdWJsaWMgYXV0aG9yPzogRXNvbHZlTmV3c0FydGljbGVBdXRob3I7XHJcbiAgICBwdWJsaWMgZ3JvdXA/OiBFc29sdmVOZXdzR3JvdXA7XHJcbiAgICBwdWJsaWMgbWFudWZhY3R1cmVyPzogRXNvbHZlTWFudWZhY3R1cmVyO1xyXG4gICAgcHVibGljIHJhbmdlPzogRXNvbHZlUmFuZ2U7XHJcbiAgICBwdWJsaWMgc2VvX2RldGFpbHM6IEVzb2x2ZVNlb0luZm87XHJcblxyXG4gICAgY29uc3RydWN0b3IocmVjb3JkPzogUGFydGlhbDxFc29sdmVOZXdzQXJ0aWNsZVJlY29yZD4pIHtcclxuICAgICAgICBsZXQgc2VvX3RpdGxlID0gJyc7XHJcbiAgICAgICAgbGV0IHNlb19kZXNjcmlwdGlvbiA9ICcnO1xyXG4gICAgICAgIGxldCBzZW9fa2V5d29yZHMgPSAnJztcclxuXHJcbiAgICAgICAgaWYgKHJlY29yZCkge1xyXG4gICAgICAgICAgICB0aGlzLmlkID0gKyhyZWNvcmQuaWQgPz8gMCk7XHJcbiAgICAgICAgICAgIHRoaXMudGl0bGUgPSByZWNvcmQudGl0bGUgPz8gJyc7XHJcbiAgICAgICAgICAgIHRoaXMuc2VmX3RpdGxlID0gcmVjb3JkLnNlZl90aXRsZSA/PyAnJztcclxuICAgICAgICAgICAgdGhpcy5hcnRpY2xlID0gcmVjb3JkLmFydGljbGUgPz8gJyc7XHJcbiAgICAgICAgICAgIHRoaXMudHhkYXRlID0gcmVjb3JkLnR4ZGF0ZSA/PyAnJztcclxuICAgICAgICAgICAgdGhpcy5pbWFnZSA9IHJlY29yZC5pbWFnZSA/PyAnJztcclxuICAgICAgICAgICAgdGhpcy5zaG9ydF9kZXNjcmlwdGlvbiA9IHJlY29yZC5zaG9ydF9kZXNjcmlwdGlvbiA/PyAnJztcclxuXHJcbiAgICAgICAgICAgIGlmIChyZWNvcmQuYWN0aXZlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZSA9ICEhK3JlY29yZC5hY3RpdmU7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChyZWNvcmQuZmVhdHVyZWQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZmVhdHVyZWQgPSAhIStyZWNvcmQuZmVhdHVyZWQ7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHNlb190aXRsZSA9IHJlY29yZC5zZW9fcGFnZV90aXRsZSA/PyAnJztcclxuICAgICAgICAgICAgc2VvX2Rlc2NyaXB0aW9uID0gcmVjb3JkLnNob3J0X2Rlc2NyaXB0aW9uID8/ICcnO1xyXG4gICAgICAgICAgICBzZW9fa2V5d29yZHMgPSByZWNvcmQuc2VvX2tleXdvcmRzID8/ICcnO1xyXG5cclxuICAgICAgICAgICAgaWYgKHJlY29yZC5uZXdzX2dyb3VwKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBncm91cF9yZWNvcmQgPSByZWNvcmQubmV3c19ncm91cDtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLmdyb3VwID0gbmV3IEVzb2x2ZU5ld3NHcm91cChcclxuICAgICAgICAgICAgICAgICAgICArZ3JvdXBfcmVjb3JkLmlkLFxyXG4gICAgICAgICAgICAgICAgICAgIGdyb3VwX3JlY29yZC5uYW1lLFxyXG4gICAgICAgICAgICAgICAgICAgIGdyb3VwX3JlY29yZC5kZXNjcmlwdGlvbixcclxuICAgICAgICAgICAgICAgICAgICBncm91cF9yZWNvcmQuc2VmX25hbWUsXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAocmVjb3JkLnVzZXIpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuYXV0aG9yID0gbmV3IEVzb2x2ZU5ld3NBcnRpY2xlQXV0aG9yKFxyXG4gICAgICAgICAgICAgICAgICAgIHJlY29yZC51c2VyLnVzZXJpZCxcclxuICAgICAgICAgICAgICAgICAgICByZWNvcmQudXNlci5lbWFpbCxcclxuICAgICAgICAgICAgICAgICAgICByZWNvcmQudXNlci5maXJzdG5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLnVzZXIuc3VybmFtZSxcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChyZWNvcmQubWFudWZhY3R1cmVyKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm1hbnVmYWN0dXJlciA9IG5ldyBFc29sdmVNYW51ZmFjdHVyZXIocmVjb3JkLm1hbnVmYWN0dXJlcik7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChyZWNvcmQucmFuZ2UpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucmFuZ2UgPSBuZXcgRXNvbHZlUmFuZ2UocmVjb3JkLnJhbmdlKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKHJlY29yZC50b3BpY3MgJiYgcmVjb3JkLnRvcGljcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB0b3BpY3MgPSByZWNvcmQudG9waWNzO1xyXG5cclxuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgdG9waWMgb2YgdG9waWNzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50b3BpY3MucHVzaChuZXcgRXNvbHZlVG9waWModG9waWMpKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKHJlY29yZC50YWdzICYmIHJlY29yZC50YWdzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHRhZ3MgPSByZWNvcmQudGFncztcclxuXHJcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHRhZyBvZiB0YWdzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50YWdzLnB1c2gobmV3IEVzb2x2ZVRhZyh0YWcpKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHNlb190aXRsZS50cmltKCkgPT09ICcnKSB7XHJcbiAgICAgICAgICAgIHNlb190aXRsZSA9IHRoaXMudGl0bGU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnNlb19kZXRhaWxzID0gbmV3IEVzb2x2ZVNlb0luZm8oXHJcbiAgICAgICAgICAgIHNlb190aXRsZSxcclxuICAgICAgICAgICAgc2VvX2Rlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgICBzZW9fa2V5d29yZHMsXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxufVxyXG4iXX0=","export class EsolveNewsArticleList {\r\n constructor(newsArticles, total, page) {\r\n this.newsArticles = newsArticles;\r\n this.total = total;\r\n this.page = page;\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLW5ld3MtYXJ0aWNsZS1saXN0Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL25ld3MvZXNvbHZlLW5ld3MtYXJ0aWNsZS1saXN0Lm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxxQkFBcUI7SUFDOUIsWUFDVyxZQUFpQyxFQUNqQyxLQUFhLEVBQ2IsSUFBWTtRQUZaLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtRQUNqQyxVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQ2IsU0FBSSxHQUFKLElBQUksQ0FBUTtJQUNuQixDQUFDO0NBQ1IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFc29sdmVOZXdzQXJ0aWNsZSB9IGZyb20gJy4vZXNvbHZlLW5ld3MtYXJ0aWNsZS5tb2RlbCc7XHJcblxyXG5leHBvcnQgY2xhc3MgRXNvbHZlTmV3c0FydGljbGVMaXN0IHtcclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHB1YmxpYyBuZXdzQXJ0aWNsZXM6IEVzb2x2ZU5ld3NBcnRpY2xlW10sXHJcbiAgICAgICAgcHVibGljIHRvdGFsOiBudW1iZXIsXHJcbiAgICAgICAgcHVibGljIHBhZ2U6IG51bWJlcixcclxuICAgICkgeyB9XHJcbn1cclxuIl19","import { Inject, Injectable } from '@angular/core';\r\nimport { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { map } from 'rxjs/operators';\r\nimport { ESOLVE_CONNECT_CONFIG } from '../esolve-connect-config.constant';\r\nimport { EsolveNewsArticle } from './esolve-news-article.model';\r\nimport { EsolveNewsGroup } from './esolve-news-group.model';\r\nimport { EsolveNewsArticleList } from './esolve-news-article-list.model';\r\nimport * as i0 from \"@angular/core\";\r\nimport * as i1 from \"@angular/common/http\";\r\nexport class EsolveNewsService {\r\n constructor(config, http) {\r\n this.config = config;\r\n this.http = http;\r\n }\r\n getNewsArticle(identifier) {\r\n const params = new HttpParams({ fromObject: { sef_title: identifier } });\r\n return this.getNewsRecords(params).pipe(map((response) => {\r\n if ((response.records === undefined) ||\r\n (response.records.length <= 0)) {\r\n throw response;\r\n }\r\n const record = response.records[0];\r\n if (!record.active) {\r\n throw response;\r\n }\r\n return this.processNewsArticle(record);\r\n }));\r\n }\r\n getNewsArticles(options) {\r\n const params = this.parseOptions(options);\r\n return this.getNewsRecords(params).pipe(map((response) => {\r\n if (response.records === undefined) {\r\n throw response;\r\n }\r\n const news_articles = [];\r\n for (const record of response.records) {\r\n news_articles.push(this.processNewsArticle(record));\r\n }\r\n const page = options?.page ?? 0;\r\n const total_records = +response.additional_data.total_records;\r\n return new EsolveNewsArticleList(news_articles, total_records, page);\r\n }));\r\n }\r\n getNewsGroups() {\r\n return this.http\r\n .get(`${this.config.api_url}/get-news-groups.php`)\r\n .pipe(map((response) => {\r\n if (response.records === undefined) {\r\n throw response;\r\n }\r\n const news_groups = [];\r\n for (const record of response.records) {\r\n news_groups.push(new EsolveNewsGroup(record.id, record.name, record.description, record.sef_name));\r\n }\r\n return news_groups;\r\n }));\r\n }\r\n processNewsArticle(record) {\r\n return new EsolveNewsArticle(record);\r\n }\r\n getNewsRecords(params) {\r\n return this.http.get(`${this.config.api_url}/get-news.php`, { params });\r\n }\r\n parseOptions(options) {\r\n let params = new HttpParams();\r\n if (!options) {\r\n return params;\r\n }\r\n if (options.news_group_id) {\r\n params = params.set('news_group_id', options.news_group_id);\r\n }\r\n else if (options.news_group_sef) {\r\n params = params.set('news_group_sef', options.news_group_sef);\r\n }\r\n if (options.page) {\r\n params = params.set('page', options.page);\r\n }\r\n if (options.rows) {\r\n params = params.set('rows', options.rows);\r\n }\r\n if (options.feature_only) {\r\n params = params.set('feature_only', options.feature_only);\r\n }\r\n if (options.manufacturers_id) {\r\n params = params.set('manufacturers_id', options.manufacturers_id);\r\n }\r\n if (options.ranges_id) {\r\n params = params.set('ranges_id', options.ranges_id);\r\n }\r\n if (options.from_date) {\r\n params = params.set('from_date', options.from_date);\r\n }\r\n if (options.to_date) {\r\n params = params.set('to_date', options.to_date);\r\n }\r\n if (options.search_phrase) {\r\n params = params.set('search_phrase', options.search_phrase);\r\n }\r\n return params;\r\n }\r\n}\r\nEsolveNewsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveNewsService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });\r\nEsolveNewsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveNewsService, providedIn: 'root' });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveNewsService, decorators: [{\r\n type: Injectable,\r\n args: [{\r\n providedIn: 'root',\r\n }]\r\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\r\n type: Inject,\r\n args: [ESOLVE_CONNECT_CONFIG]\r\n }] }, { type: i1.HttpClient }]; } });\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLW5ld3Muc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9uZXdzL2Vzb2x2ZS1uZXdzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUc5RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHckMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFHMUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRzVELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7QUFNekUsTUFBTSxPQUFPLGlCQUFpQjtJQUMxQixZQUMyQyxNQUEyQixFQUMxRCxJQUFnQjtRQURlLFdBQU0sR0FBTixNQUFNLENBQXFCO1FBQzFELFNBQUksR0FBSixJQUFJLENBQVk7SUFDeEIsQ0FBQztJQUVFLGNBQWMsQ0FBQyxVQUFrQjtRQUNwQyxNQUFNLE1BQU0sR0FBRyxJQUFJLFVBQVUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsRUFBQyxDQUFDLENBQUM7UUFFeEUsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FDbkMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDYixJQUNJLENBQUMsUUFBUSxDQUFDLE9BQU8sS0FBSyxTQUFTLENBQUM7Z0JBQ2hDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLElB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QUFDLGFBQWEsQ0FBQyxDQUFDO1NBQy9EO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQzs7OEdBaEpRLGlCQUFpQixrQkFFZCxxQkFBcUI7a0hBRnhCLGlCQUFpQixjQUZkLE1BQU07MkZBRVQsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7MEJBR1EsTUFBTTsyQkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuXHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgRXNvbHZlQ29ubmVjdENvbmZpZyB9IGZyb20gJy4uL2Vzb2x2ZS1jb25uZWN0LmNvbmZpZyc7XHJcbmltcG9ydCB7IEVTT0xWRV9DT05ORUNUX0NPTkZJRyB9IGZyb20gJy4uL2Vzb2x2ZS1jb25uZWN0LWNvbmZpZy5jb25zdGFudCc7XHJcbmltcG9ydCB7IEVzb2x2ZUdldFJlc3BvbnNlIH0gZnJvbSAnLi4vc2hhcmVkL3Jlc3BvbnNlJztcclxuXHJcbmltcG9ydCB7IEVzb2x2ZU5ld3NBcnRpY2xlIH0gZnJvbSAnLi9lc29sdmUtbmV3cy1hcnRpY2xlLm1vZGVsJztcclxuaW1wb3J0IHsgRXNvbHZlTmV3c0dyb3VwIH0gZnJvbSAnLi9lc29sdmUtbmV3cy1ncm91cC5tb2RlbCc7XHJcbmltcG9ydCB7IEVzb2x2ZU5ld3NBcnRpY2xlUmVjb3JkIH0gZnJvbSAnLi9lc29sdmUtbmV3cy1hcnRpY2xlLXJlY29yZC5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBFc29sdmVOZXdzR3JvdXBSZWNvcmQgfSBmcm9tICcuL2Vzb2x2ZS1uZXdzLWdyb3VwLXJlY29yZC5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBFc29sdmVOZXdzQXJ0aWNsZUxpc3QgfSBmcm9tICcuL2Vzb2x2ZS1uZXdzLWFydGljbGUtbGlzdC5tb2RlbCc7XHJcbmltcG9ydCB7IEVzb2x2ZU5ld3NBcnRpY2xlT3B0aW9ucyB9IGZyb20gJy4vZXNvbHZlLW5ld3MtYXJ0aWNsZS1vcHRpb25zLmludGVyZmFjZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFc29sdmVOZXdzU2VydmljZSB7XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBASW5qZWN0KEVTT0xWRV9DT05ORUNUX0NPTkZJRykgcHJpdmF0ZSBjb25maWc6IEVzb2x2ZUNvbm5lY3RDb25maWcsXHJcbiAgICAgICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgKSB7IH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0TmV3c0FydGljbGUoaWRlbnRpZmllcjogc3RyaW5nKTogT2JzZXJ2YWJsZTxFc29sdmVOZXdzQXJ0aWNsZT4ge1xyXG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKHsgZnJvbU9iamVjdDogeyBzZWZfdGl0bGU6IGlkZW50aWZpZXIgfX0pO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5nZXROZXdzUmVjb3JkcyhwYXJhbXMpLnBpcGUoXHJcbiAgICAgICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgICAgICAocmVzcG9uc2UucmVjb3JkcyA9PT0gdW5kZWZpbmVkKSB8fFxyXG4gICAgICAgICAgICAgICAgICAgIChyZXNwb25zZS5yZWNvcmRzLmxlbmd0aCA8PSAwKVxyXG4gICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgY29uc3QgcmVjb3JkID0gcmVzcG9uc2UucmVjb3Jkc1swXTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoIXJlY29yZC5hY3RpdmUpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aHJvdyByZXNwb25zZTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzTmV3c0FydGljbGUocmVjb3JkKTtcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0TmV3c0FydGljbGVzKFxyXG4gICAgICAgIG9wdGlvbnM/OiBFc29sdmVOZXdzQXJ0aWNsZU9wdGlvbnMsXHJcbiAgICApOiBPYnNlcnZhYmxlPEVzb2x2ZU5ld3NBcnRpY2xlTGlzdD4ge1xyXG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IHRoaXMucGFyc2VPcHRpb25zKG9wdGlvbnMpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5nZXROZXdzUmVjb3JkcyhwYXJhbXMpLnBpcGUoXHJcbiAgICAgICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5yZWNvcmRzID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aHJvdyByZXNwb25zZTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdzX2FydGljbGVzOiBFc29sdmVOZXdzQXJ0aWNsZVtdID0gW107XHJcblxyXG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCByZWNvcmQgb2YgcmVzcG9uc2UucmVjb3Jkcykge1xyXG4gICAgICAgICAgICAgICAgICAgIG5ld3NfYXJ0aWNsZXMucHVzaCh0aGlzLnByb2Nlc3NOZXdzQXJ0aWNsZShyZWNvcmQpKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBjb25zdCBwYWdlID0gb3B0aW9ucz8ucGFnZSA/PyAwO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgdG90YWxfcmVjb3JkcyA9ICtyZXNwb25zZS5hZGRpdGlvbmFsX2RhdGEudG90YWxfcmVjb3JkcztcclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEVzb2x2ZU5ld3NBcnRpY2xlTGlzdChcclxuICAgICAgICAgICAgICAgICAgICBuZXdzX2FydGljbGVzLFxyXG4gICAgICAgICAgICAgICAgICAgIHRvdGFsX3JlY29yZHMsXHJcbiAgICAgICAgICAgICAgICAgICAgcGFnZSxcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldE5ld3NHcm91cHMoKTogT2JzZXJ2YWJsZTxFc29sdmVOZXdzR3JvdXBbXT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgICAgICAgLmdldDxFc29sdmVHZXRSZXNwb25zZTxFc29sdmVOZXdzR3JvdXBSZWNvcmRbXT4+KFxyXG4gICAgICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vZ2V0LW5ld3MtZ3JvdXBzLnBocGAsXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnJlY29yZHMgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyByZXNwb25zZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld3NfZ3JvdXBzOiBFc29sdmVOZXdzR3JvdXBbXSA9IFtdO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHJlY29yZCBvZiByZXNwb25zZS5yZWNvcmRzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ld3NfZ3JvdXBzLnB1c2gobmV3IEVzb2x2ZU5ld3NHcm91cChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlY29yZC5pZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlY29yZC5uYW1lLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVjb3JkLmRlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVjb3JkLnNlZl9uYW1lLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICApKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXdzX2dyb3VwcztcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgcHJvY2Vzc05ld3NBcnRpY2xlKHJlY29yZDogRXNvbHZlTmV3c0FydGljbGVSZWNvcmQpOiBFc29sdmVOZXdzQXJ0aWNsZSB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBFc29sdmVOZXdzQXJ0aWNsZShyZWNvcmQpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0TmV3c1JlY29yZHMoXHJcbiAgICAgICAgcGFyYW1zOiBIdHRwUGFyYW1zLFxyXG4gICAgKTogT2JzZXJ2YWJsZTxFc29sdmVHZXRSZXNwb25zZTxFc29sdmVOZXdzQXJ0aWNsZVJlY29yZFtdPj4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEVzb2x2ZUdldFJlc3BvbnNlPEVzb2x2ZU5ld3NBcnRpY2xlUmVjb3JkW10+PihcclxuICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vZ2V0LW5ld3MucGhwYCxcclxuICAgICAgICAgICAgeyBwYXJhbXMgfSxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgcGFyc2VPcHRpb25zKG9wdGlvbnM/OiBFc29sdmVOZXdzQXJ0aWNsZU9wdGlvbnMpOiBIdHRwUGFyYW1zIHtcclxuICAgICAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKTtcclxuXHJcbiAgICAgICAgaWYgKCFvcHRpb25zKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBwYXJhbXM7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAob3B0aW9ucy5uZXdzX2dyb3VwX2lkKSB7XHJcbiAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ25ld3NfZ3JvdXBfaWQnLCBvcHRpb25zLm5ld3NfZ3JvdXBfaWQpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAob3B0aW9ucy5uZXdzX2dyb3VwX3NlZikge1xyXG4gICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCduZXdzX2dyb3VwX3NlZicsIG9wdGlvbnMubmV3c19ncm91cF9zZWYpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKG9wdGlvbnMucGFnZSkge1xyXG4gICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdwYWdlJywgb3B0aW9ucy5wYWdlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChvcHRpb25zLnJvd3MpIHtcclxuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgncm93cycsIG9wdGlvbnMucm93cyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAob3B0aW9ucy5mZWF0dXJlX29ubHkpIHtcclxuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnZmVhdHVyZV9vbmx5Jywgb3B0aW9ucy5mZWF0dXJlX29ubHkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKG9wdGlvbnMubWFudWZhY3R1cmVyc19pZCkge1xyXG4gICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdtYW51ZmFjdHVyZXJzX2lkJywgb3B0aW9ucy5tYW51ZmFjdHVyZXJzX2lkKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChvcHRpb25zLnJhbmdlc19pZCkge1xyXG4gICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdyYW5nZXNfaWQnLCBvcHRpb25zLnJhbmdlc19pZCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAob3B0aW9ucy5mcm9tX2RhdGUpIHtcclxuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnZnJvbV9kYXRlJywgb3B0aW9ucy5mcm9tX2RhdGUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKG9wdGlvbnMudG9fZGF0ZSkge1xyXG4gICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCd0b19kYXRlJywgb3B0aW9ucy50b19kYXRlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChvcHRpb25zLnNlYXJjaF9waHJhc2UpIHtcclxuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnc2VhcmNoX3BocmFzZScsIG9wdGlvbnMuc2VhcmNoX3BocmFzZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gcGFyYW1zO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==","// Types\r\nexport * from './esolve-stock-image-size.type';\r\nexport * from './esolve-media-stock-item-list.type';\r\nexport * from './esolve-stock-unit-of-measure.type';\r\nexport * from './esolve-stock-sort-field.type';\r\nexport * from './esolve-media-stock-sort-field.type';\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvc3RvY2svdHlwZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsUUFBUTtBQUNSLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyxzQ0FBc0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIFR5cGVzXHJcbmV4cG9ydCAqIGZyb20gJy4vZXNvbHZlLXN0b2NrLWltYWdlLXNpemUudHlwZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZXNvbHZlLW1lZGlhLXN0b2NrLWl0ZW0tbGlzdC50eXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9lc29sdmUtc3RvY2stdW5pdC1vZi1tZWFzdXJlLnR5cGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS1zdG9jay1zb3J0LWZpZWxkLnR5cGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS1tZWRpYS1zdG9jay1zb3J0LWZpZWxkLnR5cGUnO1xyXG4iXX0=","export class EsolveColour {\r\n constructor(record) {\r\n this.id = record.id ?? 0;\r\n this.colour = record.colour ?? '';\r\n this.description = record.description ?? '';\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWNvbG91ci5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9zdG9jay9jbGFzc2VzL2Vzb2x2ZS1jb2xvdXIubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLFlBQVk7SUFLckIsWUFBWSxNQUFtQztRQUMzQyxJQUFJLENBQUMsRUFBRSxHQUFHLE1BQU0sQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7UUFDbEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQztJQUNoRCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFc29sdmVDb2xvdXJSZWNvcmQgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcclxuXHJcbmV4cG9ydCBjbGFzcyBFc29sdmVDb2xvdXIge1xyXG4gICAgcHVibGljIGlkOiBudW1iZXI7XHJcbiAgICBwdWJsaWMgY29sb3VyOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgZGVzY3JpcHRpb246IHN0cmluZztcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihyZWNvcmQ6IFBhcnRpYWw8RXNvbHZlQ29sb3VyUmVjb3JkPikge1xyXG4gICAgICAgIHRoaXMuaWQgPSByZWNvcmQuaWQgPz8gMDtcclxuICAgICAgICB0aGlzLmNvbG91ciA9IHJlY29yZC5jb2xvdXIgPz8gJyc7XHJcbiAgICAgICAgdGhpcy5kZXNjcmlwdGlvbiA9IHJlY29yZC5kZXNjcmlwdGlvbiA/PyAnJztcclxuICAgIH1cclxufVxyXG4iXX0=","export class EsolveStockBadge {\r\n constructor(id, text, identifier, font_colour, badge_colour, sort_priority) {\r\n this.id = id;\r\n this.text = text;\r\n this.identifier = identifier;\r\n this.font_colour = font_colour;\r\n this.badge_colour = badge_colour;\r\n this.sort_priority = sort_priority;\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXN0b2NrLWJhZGdlLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL3N0b2NrL2NsYXNzZXMvZXNvbHZlLXN0b2NrLWJhZGdlLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxnQkFBZ0I7SUFDekIsWUFDVyxFQUFVLEVBQ1YsSUFBWSxFQUNaLFVBQWtCLEVBQ2xCLFdBQW1CLEVBQ25CLFlBQW9CLEVBQ3BCLGFBQXFCO1FBTHJCLE9BQUUsR0FBRixFQUFFLENBQVE7UUFDVixTQUFJLEdBQUosSUFBSSxDQUFRO1FBQ1osZUFBVSxHQUFWLFVBQVUsQ0FBUTtRQUNsQixnQkFBVyxHQUFYLFdBQVcsQ0FBUTtRQUNuQixpQkFBWSxHQUFaLFlBQVksQ0FBUTtRQUNwQixrQkFBYSxHQUFiLGFBQWEsQ0FBUTtJQUM1QixDQUFDO0NBQ1IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgRXNvbHZlU3RvY2tCYWRnZSB7XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwdWJsaWMgaWQ6IG51bWJlcixcclxuICAgICAgICBwdWJsaWMgdGV4dDogc3RyaW5nLFxyXG4gICAgICAgIHB1YmxpYyBpZGVudGlmaWVyOiBzdHJpbmcsXHJcbiAgICAgICAgcHVibGljIGZvbnRfY29sb3VyOiBzdHJpbmcsXHJcbiAgICAgICAgcHVibGljIGJhZGdlX2NvbG91cjogc3RyaW5nLFxyXG4gICAgICAgIHB1YmxpYyBzb3J0X3ByaW9yaXR5OiBudW1iZXIsXHJcbiAgICApIHsgfVxyXG59XHJcbiJdfQ==","/**\r\n * Price of eSolve stock item\r\n */\r\nexport class EsolveStockPrice {\r\n /**\r\n * Create stock price instance\r\n *\r\n * @param base_price Price without tax\r\n * @param base_price_with_tax Price with tax\r\n * @param sell_price Price without tax and with discounts applied if applicable\r\n * @param sell_price_with_tax Price with tax and with discounts applied if applicable\r\n * @param tax_rate Tax rate of the item\r\n * @param taxed Whether tax has been applied\r\n */\r\n constructor(\r\n /**\r\n * Price without tax\r\n */\r\n base_price = 0, \r\n /**\r\n * Price with tax\r\n */\r\n base_price_with_tax = 0, \r\n /**\r\n * Price without tax and with discounts applied if applicable\r\n */\r\n sell_price = 0, \r\n /**\r\n * Price with tax and with discounts applied if applicable\r\n */\r\n sell_price_with_tax = 0, \r\n /**\r\n * Vat Rate for the item\r\n */\r\n tax_rate = 0, taxed) {\r\n this.base_price = base_price;\r\n this.base_price_with_tax = base_price_with_tax;\r\n this.sell_price = sell_price;\r\n this.sell_price_with_tax = sell_price_with_tax;\r\n this.tax_rate = tax_rate;\r\n if ((this.base_price === 0) && (this.sell_price > 0)) {\r\n this.base_price = this.sell_price;\r\n this.base_price_with_tax = this.sell_price_with_tax;\r\n }\r\n else if ((this.base_price > 0) && (this.sell_price === 0)) {\r\n this.sell_price = this.base_price;\r\n this.sell_price_with_tax = this.base_price_with_tax;\r\n }\r\n this.taxed = taxed ?? this.base_price !== this.base_price_with_tax;\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXN0b2NrLXByaWNlLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL3N0b2NrL2NsYXNzZXMvZXNvbHZlLXN0b2NrLXByaWNlLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGdCQUFnQjtJQUd6Qjs7Ozs7Ozs7O09BU0c7SUFDSDtJQUNJOztPQUVHO0lBQ0ksYUFBcUIsQ0FBQztJQUU3Qjs7T0FFRztJQUNJLHNCQUE4QixDQUFDO0lBRXRDOztPQUVHO0lBQ0ksYUFBcUIsQ0FBQztJQUU3Qjs7T0FFRztJQUNJLHNCQUE4QixDQUFDO0lBRXRDOztPQUVHO0lBQ0ksV0FBbUIsQ0FBQyxFQUUzQixLQUFlO1FBdEJSLGVBQVUsR0FBVixVQUFVLENBQVk7UUFLdEIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFZO1FBSy9CLGVBQVUsR0FBVixVQUFVLENBQVk7UUFLdEIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFZO1FBSy9CLGFBQVEsR0FBUixRQUFRLENBQVk7UUFJM0IsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxFQUFFO1lBQ2xELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUNsQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDO1NBQ3ZEO2FBQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQ3pELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUNsQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDO1NBQ3ZEO1FBRUQsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxJQUFJLENBQUMsbUJBQW1CLENBQUM7SUFDdkUsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIFByaWNlIG9mIGVTb2x2ZSBzdG9jayBpdGVtXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgRXNvbHZlU3RvY2tQcmljZSB7XHJcbiAgICBwdWJsaWMgdGF4ZWQ6IGJvb2xlYW47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDcmVhdGUgc3RvY2sgcHJpY2UgaW5zdGFuY2VcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gYmFzZV9wcmljZSBQcmljZSB3aXRob3V0IHRheFxyXG4gICAgICogQHBhcmFtIGJhc2VfcHJpY2Vfd2l0aF90YXggUHJpY2Ugd2l0aCB0YXhcclxuICAgICAqIEBwYXJhbSBzZWxsX3ByaWNlIFByaWNlIHdpdGhvdXQgdGF4IGFuZCB3aXRoIGRpc2NvdW50cyBhcHBsaWVkIGlmIGFwcGxpY2FibGVcclxuICAgICAqIEBwYXJhbSBzZWxsX3ByaWNlX3dpdGhfdGF4IFByaWNlIHdpdGggdGF4IGFuZCB3aXRoIGRpc2NvdW50cyBhcHBsaWVkIGlmIGFwcGxpY2FibGVcclxuICAgICAqIEBwYXJhbSB0YXhfcmF0ZSBUYXggcmF0ZSBvZiB0aGUgaXRlbVxyXG4gICAgICogQHBhcmFtIHRheGVkIFdoZXRoZXIgdGF4IGhhcyBiZWVuIGFwcGxpZWRcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogUHJpY2Ugd2l0aG91dCB0YXhcclxuICAgICAgICAgKi9cclxuICAgICAgICBwdWJsaWMgYmFzZV9wcmljZTogbnVtYmVyID0gMCxcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogUHJpY2Ugd2l0aCB0YXhcclxuICAgICAgICAgKi9cclxuICAgICAgICBwdWJsaWMgYmFzZV9wcmljZV93aXRoX3RheDogbnVtYmVyID0gMCxcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogUHJpY2Ugd2l0aG91dCB0YXggYW5kIHdpdGggZGlzY291bnRzIGFwcGxpZWQgaWYgYXBwbGljYWJsZVxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHB1YmxpYyBzZWxsX3ByaWNlOiBudW1iZXIgPSAwLFxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBQcmljZSB3aXRoIHRheCBhbmQgd2l0aCBkaXNjb3VudHMgYXBwbGllZCBpZiBhcHBsaWNhYmxlXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgcHVibGljIHNlbGxfcHJpY2Vfd2l0aF90YXg6IG51bWJlciA9IDAsXHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIFZhdCBSYXRlIGZvciB0aGUgaXRlbVxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHB1YmxpYyB0YXhfcmF0ZTogbnVtYmVyID0gMCxcclxuXHJcbiAgICAgICAgdGF4ZWQ/OiBib29sZWFuLFxyXG4gICAgKSB7XHJcbiAgICAgICAgaWYgKCh0aGlzLmJhc2VfcHJpY2UgPT09IDApICYmICh0aGlzLnNlbGxfcHJpY2UgPiAwKSkge1xyXG4gICAgICAgICAgICB0aGlzLmJhc2VfcHJpY2UgPSB0aGlzLnNlbGxfcHJpY2U7XHJcbiAgICAgICAgICAgIHRoaXMuYmFzZV9wcmljZV93aXRoX3RheCA9IHRoaXMuc2VsbF9wcmljZV93aXRoX3RheDtcclxuICAgICAgICB9IGVsc2UgaWYgKCh0aGlzLmJhc2VfcHJpY2UgPiAwKSAmJiAodGhpcy5zZWxsX3ByaWNlID09PSAwKSkge1xyXG4gICAgICAgICAgICB0aGlzLnNlbGxfcHJpY2UgPSB0aGlzLmJhc2VfcHJpY2U7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsbF9wcmljZV93aXRoX3RheCA9IHRoaXMuYmFzZV9wcmljZV93aXRoX3RheDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMudGF4ZWQgPSB0YXhlZCA/PyB0aGlzLmJhc2VfcHJpY2UgIT09IHRoaXMuYmFzZV9wcmljZV93aXRoX3RheDtcclxuICAgIH1cclxufVxyXG4iXX0=","export class EsolveStockLeadTimes {\r\n constructor(lead_times) {\r\n this.min = 0;\r\n this.max = 0;\r\n this.min = lead_times.min;\r\n this.max = lead_times.max;\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXN0b2NrLWxlYWQtdGltZXMubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvc3RvY2svY2xhc3Nlcy9lc29sdmUtc3RvY2stbGVhZC10aW1lcy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sb0JBQW9CO0lBSTdCLFlBQVksVUFBc0M7UUFIM0MsUUFBRyxHQUFXLENBQUMsQ0FBQztRQUNoQixRQUFHLEdBQVcsQ0FBQyxDQUFDO1FBR25CLElBQUksQ0FBQyxHQUFHLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQztRQUMxQixJQUFJLENBQUMsR0FBRyxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUM7SUFDOUIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXNvbHZlU3RvY2tMZWFkVGltZXNSZWNvcmQgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcclxuXHJcbmV4cG9ydCBjbGFzcyBFc29sdmVTdG9ja0xlYWRUaW1lcyB7XHJcbiAgICBwdWJsaWMgbWluOiBudW1iZXIgPSAwO1xyXG4gICAgcHVibGljIG1heDogbnVtYmVyID0gMDtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihsZWFkX3RpbWVzOiBFc29sdmVTdG9ja0xlYWRUaW1lc1JlY29yZCkge1xyXG4gICAgICAgIHRoaXMubWluID0gbGVhZF90aW1lcy5taW47XHJcbiAgICAgICAgdGhpcy5tYXggPSBsZWFkX3RpbWVzLm1heDtcclxuICAgIH1cclxufVxyXG4iXX0=","export class EsolveStockTransactionHistory {\r\n constructor(total_order_qty = 0, total_quote_qty = 0) {\r\n this.total_order_qty = total_order_qty;\r\n this.total_quote_qty = total_quote_qty;\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXN0b2NrLXRyYW5zYWN0aW9uLWhpc3RvcnkubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvc3RvY2svY2xhc3Nlcy9lc29sdmUtc3RvY2stdHJhbnNhY3Rpb24taGlzdG9yeS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxNQUFNLE9BQU8sNkJBQTZCO0lBQ3RDLFlBQ1csa0JBQTBCLENBQUMsRUFDM0Isa0JBQTBCLENBQUM7UUFEM0Isb0JBQWUsR0FBZixlQUFlLENBQVk7UUFDM0Isb0JBQWUsR0FBZixlQUFlLENBQVk7SUFDbkMsQ0FBQztDQUNQIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmV4cG9ydCBjbGFzcyBFc29sdmVTdG9ja1RyYW5zYWN0aW9uSGlzdG9yeSB7XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwdWJsaWMgdG90YWxfb3JkZXJfcXR5OiBudW1iZXIgPSAwLFxyXG4gICAgICAgIHB1YmxpYyB0b3RhbF9xdW90ZV9xdHk6IG51bWJlciA9IDAsXHJcbiAgICApIHt9XHJcbn1cclxuIl19","import { EsolveSeoInfo } from '../../shared/seo';\r\nimport { EsolveCategoryTreeItem } from '../../category-tree';\r\nimport { EsolveManufacturer } from '../../manufacturers';\r\nimport { EsolveRange } from '../../ranges';\r\nimport { EsolveTag } from '../../tags';\r\nimport { EsolveTopic } from '../../topics';\r\nimport { EsolveStockBadge } from './esolve-stock-badge.model';\r\nimport { EsolveStockPrice } from './esolve-stock-price.model';\r\nimport { EsolveColour } from './esolve-colour.model';\r\nimport { EsolveStockLeadTimes } from './esolve-stock-lead-times.model';\r\nimport { EsolveStockTransactionHistory } from './esolve-stock-transaction-history.model';\r\nexport class EsolveStockItemBase {\r\n constructor(record = {}) {\r\n /**\r\n * eSolve Generated ID\r\n */\r\n this.id = 0;\r\n /**\r\n * Code identifying the stock item\r\n */\r\n this.code = '';\r\n /**\r\n * Name of the stock item\r\n */\r\n this.name = '';\r\n /**\r\n * Search engine friendly name\r\n */\r\n this.sef_name = '';\r\n /**\r\n * Short description of stock item\r\n */\r\n this.description = '';\r\n /**\r\n * Full description of stock item\r\n */\r\n this.extended_description = '';\r\n /**\r\n * Active state\r\n */\r\n this.active = false;\r\n /**\r\n * Featured state\r\n */\r\n this.featured = false;\r\n /**\r\n * Quotable state\r\n */\r\n this.allow_quotes = true;\r\n /**\r\n * Orderable state\r\n */\r\n this.allow_orders = true;\r\n /**\r\n * Item must be collected, not delivery possible\r\n */\r\n this.must_collect = false;\r\n /**\r\n * Item needs to be assembled after purchase\r\n */\r\n this.requires_assembly = false;\r\n /**\r\n * The type of delivery category associated with the item\r\n */\r\n this.delivery_category = 'regular_item';\r\n /**\r\n * Number of stock available\r\n */\r\n this.amount_in_stock = 0;\r\n /**\r\n * Total items linked to the item as a recipe\r\n */\r\n this.total_recipe_items = 0;\r\n /**\r\n * Height measured in meters (m)\r\n */\r\n this.height = 0;\r\n /**\r\n * Width measured in meters (m)\r\n */\r\n this.width = 0;\r\n /**\r\n * Length / depth measured in meters (m)\r\n */\r\n this.length = 0;\r\n /**\r\n * Weight measured in kilograms (kg)\r\n */\r\n this.weight = 0;\r\n /**\r\n * Units used to measure the quantity\r\n */\r\n this.unit_of_measure = 'unit';\r\n /**\r\n * ID of default category linked to the stock item\r\n *\r\n * @deprecated Use `category.esolve_id` field instead\r\n */\r\n this.category_id = '';\r\n /**\r\n * ID of default subcategory linked to the stock item\r\n *\r\n * @deprecated Use `subcategory.esolve_id` field instead\r\n */\r\n this.subcategory_id = 0;\r\n /**\r\n * ID of linked manufacturer\r\n *\r\n * @deprecated Use `manufacturer.id` field instead\r\n */\r\n this.manufacturers_id = 0;\r\n /**\r\n * ID of linked range\r\n *\r\n * @deprecated Use `range.id` field instead\r\n */\r\n this.ranges_id = 0;\r\n /**\r\n * Linked tags\r\n */\r\n this.tags = [];\r\n /**\r\n * Linked topics\r\n */\r\n this.topics = [];\r\n /**\r\n * Stock badges\r\n */\r\n this.badges = [];\r\n /**\r\n * Colours\r\n */\r\n this.colours = [];\r\n /**\r\n * Image filename\r\n */\r\n this.image_name = '';\r\n /**\r\n * Image Last modified\r\n */\r\n this.image_last_modified = '';\r\n let seo_title = '';\r\n let seo_keywords = '';\r\n let base_price = 0;\r\n let base_price_with_tax = 0;\r\n let sell_price = 0;\r\n let sell_price_with_tax = 0;\r\n if (record) {\r\n this.id = +(record.id ?? 0);\r\n this.code = record.code ?? '';\r\n this.name = record.name ?? '';\r\n this.sef_name = record.sef_name ?? '';\r\n this.description = record.description ?? '';\r\n this.extended_description = record.extended_description ?? '';\r\n this.image_name = record.image_name ?? '';\r\n this.image_last_modified = record.image_last_modified ?? '';\r\n this.category_id = record.category_id ?? '';\r\n this.subcategory_id = +(record.subcategory_id ?? 0);\r\n this.manufacturers_id = +(record.manufacturers_id ?? 0);\r\n this.ranges_id = +(record.ranges_id ?? 0);\r\n this.delivery_category = record.delivery_category ?? 'regular_item';\r\n this.must_collect = !!+(record.must_collect ?? false);\r\n this.requires_assembly = !!+(record.requires_assembly ?? false);\r\n this.active = !!+(record.is_active ?? false);\r\n this.featured = !!+(record.is_featured ?? false);\r\n this.allow_quotes = (record.allow_quotes ?? true);\r\n this.allow_orders = (record.allow_orders ?? true);\r\n this.amount_in_stock = +(record.onhand ?? 0);\r\n this.total_recipe_items = +(record.total_recipe_items ?? 0);\r\n this.height = +(record.height ?? 0);\r\n this.width = +(record.width ?? 0);\r\n this.length = +(record.length ?? 0);\r\n this.weight = +(record.weight ?? 0);\r\n if (record.unit_of_measure) {\r\n this.unit_of_measure = record.unit_of_measure;\r\n }\r\n base_price = +(record.regular_sellprice ?? 0);\r\n base_price_with_tax = +(record.regular_sellprice_inclusive ?? 0);\r\n sell_price = +(record.sellprice ?? 0);\r\n sell_price_with_tax = +(record.sellprice_inclusive ?? 0);\r\n if ((record.tags) && (record.tags.length > 0)) {\r\n for (const tag of record.tags) {\r\n this.tags.push(new EsolveTag(tag));\r\n }\r\n }\r\n if ((record.topics) && (record.topics.length > 0)) {\r\n for (const topic of record.topics) {\r\n this.topics.push(new EsolveTopic(topic));\r\n }\r\n }\r\n if ((record.badges) && (record.badges.length > 0)) {\r\n for (const badge of record.badges) {\r\n this.badges.push(new EsolveStockBadge(+badge.id, badge.text, badge.identifier, badge.font_colour, badge.badge_colour, +badge.sort_priority));\r\n }\r\n }\r\n if (record.category) {\r\n this.category = new EsolveCategoryTreeItem(record.category.type, record.category.id, record.category.parent_id, record.category.description, record.category.sef_description, record.category.short_description, record.category.sort_priority, record.category.active, record.category.display_only, record.category.image, record.category.seo_page_title, record.category.seo_keywords, record.category.seo_description);\r\n }\r\n if (record.subcategory) {\r\n this.subcategory = new EsolveCategoryTreeItem(record.subcategory.type, record.subcategory.id, record.subcategory.parent_id, record.subcategory.description, record.subcategory.sef_description, record.subcategory.short_description, record.subcategory.sort_priority, record.subcategory.active, record.subcategory.display_only, record.subcategory.image, record.subcategory.seo_page_title, record.subcategory.seo_keywords, record.subcategory.seo_description);\r\n }\r\n if (record.manufacturer) {\r\n this.manufacturer = new EsolveManufacturer(record.manufacturer);\r\n }\r\n if (record.range) {\r\n this.range = new EsolveRange(record.range);\r\n }\r\n if (record.colours && record.colours.length > 0) {\r\n for (const colour of record.colours) {\r\n this.colours.push(new EsolveColour(colour));\r\n }\r\n }\r\n if (record.lead_times) {\r\n this.lead_times = new EsolveStockLeadTimes(record.lead_times);\r\n }\r\n if (record.custom_fields) {\r\n this.custom_fields = record.custom_fields;\r\n }\r\n if ((record.total_order_qty) || ((record.total_quote_qty))) {\r\n const total_order_qty = +(record.total_order_qty ?? 0);\r\n const total_quote_qty = +(record.total_quote_qty ?? 0);\r\n this.history = new EsolveStockTransactionHistory(total_order_qty, total_quote_qty);\r\n }\r\n seo_title = record.seo_page_title ?? '';\r\n seo_keywords = record.seo_keywords ?? '';\r\n }\r\n this.price = new EsolveStockPrice(base_price, base_price_with_tax, sell_price, sell_price_with_tax, record.vat_rate, record.vat_item);\r\n if (seo_title.trim() === '') {\r\n seo_title = this.name;\r\n }\r\n this.seo_details = new EsolveSeoInfo(seo_title, this.description, seo_keywords);\r\n }\r\n /**\r\n * Path to tiny stock image\r\n */\r\n get tiny_image_src() {\r\n return this.getImagePath('tiny');\r\n }\r\n /**\r\n * Path to thumbnail stock image\r\n */\r\n get thumbnail_image_src() {\r\n return this.getImagePath('thumb');\r\n }\r\n /**\r\n * Path to small stock image\r\n */\r\n get small_image_src() {\r\n return this.getImagePath('small');\r\n }\r\n /**\r\n * Path to big stock image\r\n */\r\n get big_image_src() {\r\n return this.getImagePath('big');\r\n }\r\n /**\r\n * Path to original stock image\r\n */\r\n get original_image_src() {\r\n return this.getImagePath('original');\r\n }\r\n get available() {\r\n return (this.amount_in_stock > 0);\r\n }\r\n getImagePath(image_size) {\r\n if (this.image_name !== '') {\r\n let param = '';\r\n if (this.image_last_modified !== '') {\r\n param = `?t=${this.image_last_modified}`;\r\n }\r\n return `/images/stock/${image_size}/${this.image_name}${param}`;\r\n }\r\n return '';\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXN0b2NrLWl0ZW0tYmFzZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9zdG9jay9jbGFzc2VzL2Vzb2x2ZS1zdG9jay1pdGVtLWJhc2UubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFvQixhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVuRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDdkMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUkzQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdkUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFFekYsTUFBTSxPQUFPLG1CQUFtQjtJQStNNUIsWUFBWSxTQUE0QyxFQUFFO1FBOU0xRDs7V0FFRztRQUNJLE9BQUUsR0FBVyxDQUFDLENBQUM7UUFDdEI7O1dBRUc7UUFDSSxTQUFJLEdBQVcsRUFBRSxDQUFDO1FBQ3pCOztXQUVHO1FBQ0ksU0FBSSxHQUFXLEVBQUUsQ0FBQztRQUN6Qjs7V0FFRztRQUNJLGFBQVEsR0FBVyxFQUFFLENBQUM7UUFDN0I7O1dBRUc7UUFDSSxnQkFBVyxHQUFXLEVBQUUsQ0FBQztRQUNoQzs7V0FFRztRQUNJLHlCQUFvQixHQUFXLEVBQUUsQ0FBQztRQUN6Qzs7V0FFRztRQUNJLFdBQU0sR0FBWSxLQUFLLENBQUM7UUFDL0I7O1dBRUc7UUFDSSxhQUFRLEdBQVksS0FBSyxDQUFDO1FBQ2pDOztXQUVHO1FBQ0ksaUJBQVksR0FBWSxJQUFJLENBQUM7UUFDcEM7O1dBRUc7UUFDSSxpQkFBWSxHQUFZLElBQUksQ0FBQztRQUNwQzs7V0FFRztRQUNJLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBQ3JDOztXQUVHO1FBQ0ksc0JBQWlCLEdBQVksS0FBSyxDQUFDO1FBQzFDOztXQUVHO1FBQ0ksc0JBQWlCLEdBQVcsY0FBYyxDQUFDO1FBQ2xEOztXQUVHO1FBQ0ksb0JBQWUsR0FBVyxDQUFDLENBQUM7UUFDbkM7O1dBRUc7UUFDSSx1QkFBa0IsR0FBVyxDQUFDLENBQUM7UUFDdEM7O1dBRUc7UUFDSSxXQUFNLEdBQVcsQ0FBQyxDQUFDO1FBQzFCOztXQUVHO1FBQ0ksVUFBSyxHQUFXLENBQUMsQ0FBQztRQUN6Qjs7V0FFRztRQUNJLFdBQU0sR0FBVyxDQUFDLENBQUM7UUFDMUI7O1dBRUc7UUFDSSxXQUFNLEdBQVcsQ0FBQyxDQUFDO1FBQzFCOztXQUVHO1FBQ0ksb0JBQWUsR0FBNkIsTUFBTSxDQUFDO1FBQzFEOzs7O1dBSUc7UUFDSSxnQkFBVyxHQUFXLEVBQUUsQ0FBQztRQUtoQzs7OztXQUlHO1FBQ0ksbUJBQWMsR0FBVyxDQUFDLENBQUM7UUFLbEM7Ozs7V0FJRztRQUNJLHFCQUFnQixHQUFXLENBQUMsQ0FBQztRQUtwQzs7OztXQUlHO1FBQ0ksY0FBUyxHQUFXLENBQUMsQ0FBQztRQWE3Qjs7V0FFRztRQUNJLFNBQUksR0FBZ0IsRUFBRSxDQUFDO1FBQzlCOztXQUVHO1FBQ0ksV0FBTSxHQUFrQixFQUFFLENBQUM7UUFDbEM7O1dBRUc7UUFDSSxXQUFNLEdBQXVCLEVBQUUsQ0FBQztRQUt2Qzs7V0FFRztRQUNJLFlBQU8sR0FBbUIsRUFBRSxDQUFDO1FBVXBDOztXQUVHO1FBQ0ssZUFBVSxHQUFXLEVBQUUsQ0FBQztRQUVoQzs7V0FFRztRQUNLLHdCQUFtQixHQUFXLEVBQUUsQ0FBQztRQTBDckMsSUFBSSxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ25CLElBQUksWUFBWSxHQUFHLEVBQUUsQ0FBQztRQUN0QixJQUFJLFVBQVUsR0FBRyxDQUFDLENBQUM7UUFDbkIsSUFBSSxtQkFBbUIsR0FBRyxDQUFDLENBQUM7UUFDNUIsSUFBSSxVQUFVLEdBQUcsQ0FBQyxDQUFDO1FBQ25CLElBQUksbUJBQW1CLEdBQUcsQ0FBQyxDQUFDO1FBRTVCLElBQUksTUFBTSxFQUFFO1lBQ1IsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUM1QixJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7WUFDOUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQztZQUN0QyxJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDO1lBQzVDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxNQUFNLENBQUMsb0JBQW9CLElBQUksRUFBRSxDQUFDO1lBQzlELElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsSUFBSSxFQUFFLENBQUM7WUFDMUMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsSUFBSSxFQUFFLENBQUM7WUFFNUQsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQztZQUM1QyxJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsY0FBYyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ3BELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLGdCQUFnQixJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ3hELElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDMUMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsSUFBSSxjQUFjLENBQUM7WUFFcEUsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxZQUFZLElBQUksS0FBSyxDQUFDLENBQUM7WUFDdEQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGlCQUFpQixJQUFJLEtBQUssQ0FBQyxDQUFDO1lBQ2hFLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxJQUFJLEtBQUssQ0FBQyxDQUFDO1lBQzdDLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsV0FBVyxJQUFJLEtBQUssQ0FBQyxDQUFDO1lBQ2pELElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxNQUFNLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxDQUFDO1lBQ2xELElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxNQUFNLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxDQUFDO1lBRWxELElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDN0MsSUFBSSxDQUFDLGtCQUFrQixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsa0JBQWtCLElBQUksQ0FBQyxDQUFDLENBQUM7WUFFNUQsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNwQyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ2xDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDcEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQztZQUVwQyxJQUFJLE1BQU0sQ0FBQyxlQUFlLEVBQUU7Z0JBQ3hCLElBQUksQ0FBQyxlQUFlLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQzthQUNqRDtZQUVELFVBQVUsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLGlCQUFpQixJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQzlDLG1CQUFtQixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsMkJBQTJCLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDakUsVUFBVSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ3RDLG1CQUFtQixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsbUJBQW1CLElBQUksQ0FBQyxDQUFDLENBQUM7WUFFekQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxFQUFFO2dCQUMzQyxLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLEVBQUU7b0JBQzNCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7aUJBQ3RDO2FBQ0o7WUFFRCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEVBQUU7Z0JBQy9DLEtBQUssTUFBTSxLQUFLLElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRTtvQkFDL0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztpQkFDNUM7YUFDSjtZQUVELElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsRUFBRTtnQkFDL0MsS0FBSyxNQUFNLEtBQUssSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFO29CQUMvQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLGdCQUFnQixDQUNqQyxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQ1QsS0FBSyxDQUFDLElBQUksRUFDVixLQUFLLENBQUMsVUFBVSxFQUNoQixLQUFLLENBQUMsV0FBVyxFQUNqQixLQUFLLENBQUMsWUFBWSxFQUNsQixDQUFDLEtBQUssQ0FBQyxhQUFhLENBQ3ZCLENBQUMsQ0FBQztpQkFDTjthQUNKO1lBRUQsSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFO2dCQUNqQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksc0JBQXNCLENBQ3RDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUNwQixNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFDbEIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQ3pCLE1BQU0sQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUMzQixNQUFNLENBQUMsUUFBUSxDQUFDLGVBQWUsRUFDL0IsTUFBTSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsRUFDakMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQzdCLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUN0QixNQUFNLENBQUMsUUFBUSxDQUFDLFlBQVksRUFDNUIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQ3JCLE1BQU0sQ0FBQyxRQUFRLENBQUMsY0FBYyxFQUM5QixNQUFNLENBQUMsUUFBUSxDQUFDLFlBQVksRUFDNUIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQ2xDLENBQUM7YUFDTDtZQUVELElBQUksTUFBTSxDQUFDLFdBQVcsRUFBRTtnQkFDcEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLHNCQUFzQixDQUN6QyxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksRUFDdkIsTUFBTSxDQUFDLFdBQVcsQ0FBQyxFQUFFLEVBQ3JCLE1BQU0sQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUM1QixNQUFNLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFDOUIsTUFBTSxDQUFDLFdBQVcsQ0FBQyxlQUFlLEVBQ2xDLE1BQU0sQ0FBQyxXQUFXLENBQUMsaUJBQWlCLEVBQ3BDLE1BQU0sQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUNoQyxNQUFNLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFDekIsTUFBTSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQy9CLE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUN4QixNQUFNLENBQUMsV0FBVyxDQUFDLGNBQWMsRUFDakMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQy9CLE1BQU0sQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUNyQyxDQUFDO2FBQ0w7WUFFRCxJQUFJLE1BQU0sQ0FBQyxZQUFZLEVBQUU7Z0JBQ3JCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7YUFDbkU7WUFFRCxJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDOUM7WUFFRCxJQUFJLE1BQU0sQ0FBQyxPQUFPLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUM3QyxLQUFLLE1BQU0sTUFBTSxJQUFJLE1BQU0sQ0FBQyxPQUFPLEVBQUU7b0JBQ2pDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7aUJBQy9DO2FBQ0o7WUFFRCxJQUFJLE1BQU0sQ0FBQyxVQUFVLEVBQUU7Z0JBQ25CLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDakU7WUFFRCxJQUFJLE1BQU0sQ0FBQyxhQUFhLEVBQUU7Z0JBQ3RCLElBQUksQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQzthQUM3QztZQUVELElBQUksQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQyxFQUFFO2dCQUN4RCxNQUFNLGVBQWUsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLGVBQWUsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDdkQsTUFBTSxlQUFlLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxlQUFlLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSw2QkFBNkIsQ0FBQyxlQUFlLEVBQUUsZUFBZSxDQUFDLENBQUM7YUFDdEY7WUFFRCxTQUFTLEdBQUcsTUFBTSxDQUFDLGNBQWMsSUFBSSxFQUFFLENBQUM7WUFDeEMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLElBQUksRUFBRSxDQUFDO1NBQzVDO1FBRUQsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLGdCQUFnQixDQUM3QixVQUFVLEVBQ1YsbUJBQW1CLEVBQ25CLFVBQVUsRUFDVixtQkFBbUIsRUFDbkIsTUFBTSxDQUFDLFFBQVEsRUFDZixNQUFNLENBQUMsUUFBUSxDQUNsQixDQUFDO1FBRUYsSUFBSSxTQUFTLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ3pCLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1NBQ3pCO1FBRUQsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLGFBQWEsQ0FDaEMsU0FBUyxFQUNULElBQUksQ0FBQyxXQUFXLEVBQ2hCLFlBQVksQ0FDZixDQUFDO0lBQ04sQ0FBQztJQXRNRDs7T0FFRztJQUNILElBQVcsY0FBYztRQUNyQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxtQkFBbUI7UUFDMUIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsZUFBZTtRQUN0QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxhQUFhO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLGtCQUFrQjtRQUN6QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELElBQVcsU0FBUztRQUNoQixPQUFPLENBQUMsSUFBSSxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBbUtNLFlBQVksQ0FBQyxVQUFnQztRQUNoRCxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssRUFBRSxFQUFFO1lBQ3hCLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUVmLElBQUksSUFBSSxDQUFDLG1CQUFtQixLQUFLLEVBQUUsRUFBRTtnQkFDakMsS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7YUFDNUM7WUFFRCxPQUFPLGlCQUFpQixVQUFVLElBQUksSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLEVBQUUsQ0FBQztTQUNuRTtRQUVELE9BQU8sRUFBRSxDQUFDO0lBQ2QsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXNvbHZlQ3VzdG9tRmllbGRzIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2N1c3RvbS1maWVsZHMnO1xyXG5pbXBvcnQgeyBFc29sdmVTZW9EZXRhaWxzLCBFc29sdmVTZW9JbmZvIH0gZnJvbSAnLi4vLi4vc2hhcmVkL3Nlbyc7XHJcblxyXG5pbXBvcnQgeyBFc29sdmVDYXRlZ29yeVRyZWVJdGVtIH0gZnJvbSAnLi4vLi4vY2F0ZWdvcnktdHJlZSc7XHJcbmltcG9ydCB7IEVzb2x2ZU1hbnVmYWN0dXJlciB9IGZyb20gJy4uLy4uL21hbnVmYWN0dXJlcnMnO1xyXG5pbXBvcnQgeyBFc29sdmVSYW5nZSB9IGZyb20gJy4uLy4uL3Jhbmdlcyc7XHJcbmltcG9ydCB7IEVzb2x2ZVRhZyB9IGZyb20gJy4uLy4uL3RhZ3MnO1xyXG5pbXBvcnQgeyBFc29sdmVUb3BpYyB9IGZyb20gJy4uLy4uL3RvcGljcyc7XHJcblxyXG5pbXBvcnQgeyBFc29sdmVTdG9ja0ltYWdlU2l6ZSwgRXNvbHZlU3RvY2tVbml0T2ZNZWFzdXJlIH0gZnJvbSAnLi4vdHlwZXMnO1xyXG5pbXBvcnQgeyBFc29sdmVTdG9ja0Jhc2VSZWNvcmQgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgRXNvbHZlU3RvY2tCYWRnZSB9IGZyb20gJy4vZXNvbHZlLXN0b2NrLWJhZGdlLm1vZGVsJztcclxuaW1wb3J0IHsgRXNvbHZlU3RvY2tQcmljZSB9IGZyb20gJy4vZXNvbHZlLXN0b2NrLXByaWNlLm1vZGVsJztcclxuaW1wb3J0IHsgRXNvbHZlQ29sb3VyIH0gZnJvbSAnLi9lc29sdmUtY29sb3VyLm1vZGVsJztcclxuaW1wb3J0IHsgRXNvbHZlU3RvY2tMZWFkVGltZXMgfSBmcm9tICcuL2Vzb2x2ZS1zdG9jay1sZWFkLXRpbWVzLm1vZGVsJztcclxuaW1wb3J0IHsgRXNvbHZlU3RvY2tUcmFuc2FjdGlvbkhpc3RvcnkgfSBmcm9tICcuL2Vzb2x2ZS1zdG9jay10cmFuc2FjdGlvbi1oaXN0b3J5Lm1vZGVsJztcclxuXHJcbmV4cG9ydCBjbGFzcyBFc29sdmVTdG9ja0l0ZW1CYXNlPFQgZXh0ZW5kcyBFc29sdmVDdXN0b21GaWVsZHMgPSBFc29sdmVDdXN0b21GaWVsZHM+IGltcGxlbWVudHMgRXNvbHZlU2VvRGV0YWlscyB7XHJcbiAgICAvKipcclxuICAgICAqIGVTb2x2ZSBHZW5lcmF0ZWQgSURcclxuICAgICAqL1xyXG4gICAgcHVibGljIGlkOiBudW1iZXIgPSAwO1xyXG4gICAgLyoqXHJcbiAgICAgKiBDb2RlIGlkZW50aWZ5aW5nIHRoZSBzdG9jayBpdGVtXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBjb2RlOiBzdHJpbmcgPSAnJztcclxuICAgIC8qKlxyXG4gICAgICogTmFtZSBvZiB0aGUgc3RvY2sgaXRlbVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbmFtZTogc3RyaW5nID0gJyc7XHJcbiAgICAvKipcclxuICAgICAqIFNlYXJjaCBlbmdpbmUgZnJpZW5kbHkgbmFtZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc2VmX25hbWU6IHN0cmluZyA9ICcnO1xyXG4gICAgLyoqXHJcbiAgICAgKiBTaG9ydCBkZXNjcmlwdGlvbiBvZiBzdG9jayBpdGVtXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBkZXNjcmlwdGlvbjogc3RyaW5nID0gJyc7XHJcbiAgICAvKipcclxuICAgICAqIEZ1bGwgZGVzY3JpcHRpb24gb2Ygc3RvY2sgaXRlbVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZXh0ZW5kZWRfZGVzY3JpcHRpb246IHN0cmluZyA9ICcnO1xyXG4gICAgLyoqXHJcbiAgICAgKiBBY3RpdmUgc3RhdGVcclxuICAgICAqL1xyXG4gICAgcHVibGljIGFjdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgLyoqXHJcbiAgICAgKiBGZWF0dXJlZCBzdGF0ZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZmVhdHVyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIC8qKlxyXG4gICAgICogUXVvdGFibGUgc3RhdGVcclxuICAgICAqL1xyXG4gICAgcHVibGljIGFsbG93X3F1b3RlczogYm9vbGVhbiA9IHRydWU7XHJcbiAgICAvKipcclxuICAgICAqIE9yZGVyYWJsZSBzdGF0ZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYWxsb3dfb3JkZXJzOiBib29sZWFuID0gdHJ1ZTtcclxuICAgIC8qKlxyXG4gICAgICogSXRlbSBtdXN0IGJlIGNvbGxlY3RlZCwgbm90IGRlbGl2ZXJ5IHBvc3NpYmxlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBtdXN0X2NvbGxlY3Q6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIC8qKlxyXG4gICAgICogSXRlbSBuZWVkcyB0byBiZSBhc3NlbWJsZWQgYWZ0ZXIgcHVyY2hhc2VcclxuICAgICAqL1xyXG4gICAgcHVibGljIHJlcXVpcmVzX2Fzc2VtYmx5OiBib29sZWFuID0gZmFsc2U7XHJcbiAgICAvKipcclxuICAgICAqIFRoZSB0eXBlIG9mIGRlbGl2ZXJ5IGNhdGVnb3J5IGFzc29jaWF0ZWQgd2l0aCB0aGUgaXRlbVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZGVsaXZlcnlfY2F0ZWdvcnk6IHN0cmluZyA9ICdyZWd1bGFyX2l0ZW0nO1xyXG4gICAgLyoqXHJcbiAgICAgKiBOdW1iZXIgb2Ygc3RvY2sgYXZhaWxhYmxlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBhbW91bnRfaW5fc3RvY2s6IG51bWJlciA9IDA7XHJcbiAgICAvKipcclxuICAgICAqIFRvdGFsIGl0ZW1zIGxpbmtlZCB0byB0aGUgaXRlbSBhcyBhIHJlY2lwZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgdG90YWxfcmVjaXBlX2l0ZW1zOiBudW1iZXIgPSAwO1xyXG4gICAgLyoqXHJcbiAgICAgKiBIZWlnaHQgbWVhc3VyZWQgaW4gbWV0ZXJzIChtKVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaGVpZ2h0OiBudW1iZXIgPSAwO1xyXG4gICAgLyoqXHJcbiAgICAgKiBXaWR0aCBtZWFzdXJlZCBpbiBtZXRlcnMgKG0pXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB3aWR0aDogbnVtYmVyID0gMDtcclxuICAgIC8qKlxyXG4gICAgICogTGVuZ3RoIC8gZGVwdGggbWVhc3VyZWQgaW4gbWV0ZXJzIChtKVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbGVuZ3RoOiBudW1iZXIgPSAwO1xyXG4gICAgLyoqXHJcbiAgICAgKiBXZWlnaHQgbWVhc3VyZWQgaW4ga2lsb2dyYW1zIChrZylcclxuICAgICAqL1xyXG4gICAgcHVibGljIHdlaWdodDogbnVtYmVyID0gMDtcclxuICAgIC8qKlxyXG4gICAgICogVW5pdHMgdXNlZCB0byBtZWFzdXJlIHRoZSBxdWFudGl0eVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgdW5pdF9vZl9tZWFzdXJlOiBFc29sdmVTdG9ja1VuaXRPZk1lYXN1cmUgPSAndW5pdCc7XHJcbiAgICAvKipcclxuICAgICAqIElEIG9mIGRlZmF1bHQgY2F0ZWdvcnkgbGlua2VkIHRvIHRoZSBzdG9jayBpdGVtXHJcbiAgICAgKlxyXG4gICAgICogQGRlcHJlY2F0ZWQgVXNlIGBjYXRlZ29yeS5lc29sdmVfaWRgIGZpZWxkIGluc3RlYWRcclxuICAgICAqL1xyXG4gICAgcHVibGljIGNhdGVnb3J5X2lkOiBzdHJpbmcgPSAnJztcclxuICAgIC8qKlxyXG4gICAgICogRGVmYXVsdCBsaW5rZWQgY2F0ZWdvcnlcclxuICAgICAqL1xyXG4gICAgcHVibGljIGNhdGVnb3J5PzogRXNvbHZlQ2F0ZWdvcnlUcmVlSXRlbTtcclxuICAgIC8qKlxyXG4gICAgICogSUQgb2YgZGVmYXVsdCBzdWJjYXRlZ29yeSBsaW5rZWQgdG8gdGhlIHN0b2NrIGl0ZW1cclxuICAgICAqXHJcbiAgICAgKiBAZGVwcmVjYXRlZCBVc2UgYHN1YmNhdGVnb3J5LmVzb2x2ZV9pZGAgZmllbGQgaW5zdGVhZFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3ViY2F0ZWdvcnlfaWQ6IG51bWJlciA9IDA7XHJcbiAgICAvKipcclxuICAgICAqIERlZmF1bHQgbGlua2VkIHN1YmNhdGVnb3J5XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdWJjYXRlZ29yeT86IEVzb2x2ZUNhdGVnb3J5VHJlZUl0ZW07XHJcbiAgICAvKipcclxuICAgICAqIElEIG9mIGxpbmtlZCBtYW51ZmFjdHVyZXJcclxuICAgICAqXHJcbiAgICAgKiBAZGVwcmVjYXRlZCBVc2UgYG1hbnVmYWN0dXJlci5pZGAgZmllbGQgaW5zdGVhZFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbWFudWZhY3R1cmVyc19pZDogbnVtYmVyID0gMDtcclxuICAgIC8qKlxyXG4gICAgICogTGlua2VkIG1hbnVmYWN0dXJlclxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbWFudWZhY3R1cmVyPzogRXNvbHZlTWFudWZhY3R1cmVyO1xyXG4gICAgLyoqXHJcbiAgICAgKiBJRCBvZiBsaW5rZWQgcmFuZ2VcclxuICAgICAqXHJcbiAgICAgKiBAZGVwcmVjYXRlZCBVc2UgYHJhbmdlLmlkYCBmaWVsZCBpbnN0ZWFkXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyByYW5nZXNfaWQ6IG51bWJlciA9IDA7XHJcbiAgICAvKipcclxuICAgICAqIExpbmtlZCByYW5nZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcmFuZ2U/OiBFc29sdmVSYW5nZTtcclxuICAgIC8qKlxyXG4gICAgICogRGVmYXVsdCBwcmljZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcHJpY2U6IEVzb2x2ZVN0b2NrUHJpY2U7XHJcbiAgICAvKipcclxuICAgICAqIFNFTyBwYWdlIGRldGFpbHNcclxuICAgICAqL1xyXG4gICAgcHVibGljIHNlb19kZXRhaWxzOiBFc29sdmVTZW9JbmZvO1xyXG4gICAgLyoqXHJcbiAgICAgKiBMaW5rZWQgdGFnc1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgdGFnczogRXNvbHZlVGFnW10gPSBbXTtcclxuICAgIC8qKlxyXG4gICAgICogTGlua2VkIHRvcGljc1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgdG9waWNzOiBFc29sdmVUb3BpY1tdID0gW107XHJcbiAgICAvKipcclxuICAgICAqIFN0b2NrIGJhZGdlc1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYmFkZ2VzOiBFc29sdmVTdG9ja0JhZGdlW10gPSBbXTtcclxuICAgIC8qKlxyXG4gICAgICogU3RvY2sgaXRlbSBjdXN0b20gZmllbGRzLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgY3VzdG9tX2ZpZWxkcz86IFQ7XHJcbiAgICAvKipcclxuICAgICAqIENvbG91cnNcclxuICAgICAqL1xyXG4gICAgcHVibGljIGNvbG91cnM6IEVzb2x2ZUNvbG91cltdID0gW107XHJcbiAgICAvKipcclxuICAgICAqIFN0b2NrIEl0ZW0gTGVhZCBUaW1lcyBmb3Igc3VwcGx5XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBsZWFkX3RpbWVzPzogRXNvbHZlU3RvY2tMZWFkVGltZXM7XHJcbiAgICAvKipcclxuICAgICAqIExpbmtlZCBtYW51ZmFjdHVyZXJcclxuICAgICAqL1xyXG4gICAgcHVibGljIGhpc3Rvcnk/OiBFc29sdmVTdG9ja1RyYW5zYWN0aW9uSGlzdG9yeTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEltYWdlIGZpbGVuYW1lXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgaW1hZ2VfbmFtZTogc3RyaW5nID0gJyc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbWFnZSBMYXN0IG1vZGlmaWVkXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgaW1hZ2VfbGFzdF9tb2RpZmllZDogc3RyaW5nID0gJyc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQYXRoIHRvIHRpbnkgc3RvY2sgaW1hZ2VcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCB0aW55X2ltYWdlX3NyYygpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldEltYWdlUGF0aCgndGlueScpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUGF0aCB0byB0aHVtYm5haWwgc3RvY2sgaW1hZ2VcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCB0aHVtYm5haWxfaW1hZ2Vfc3JjKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0SW1hZ2VQYXRoKCd0aHVtYicpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUGF0aCB0byBzbWFsbCBzdG9jayBpbWFnZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IHNtYWxsX2ltYWdlX3NyYygpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldEltYWdlUGF0aCgnc21hbGwnKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFBhdGggdG8gYmlnIHN0b2NrIGltYWdlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgYmlnX2ltYWdlX3NyYygpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldEltYWdlUGF0aCgnYmlnJyk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQYXRoIHRvIG9yaWdpbmFsIHN0b2NrIGltYWdlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgb3JpZ2luYWxfaW1hZ2Vfc3JjKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0SW1hZ2VQYXRoKCdvcmlnaW5hbCcpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgYXZhaWxhYmxlKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAodGhpcy5hbW91bnRfaW5fc3RvY2sgPiAwKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdHJ1Y3RvcihyZWNvcmQ6IFBhcnRpYWw8RXNvbHZlU3RvY2tCYXNlUmVjb3JkPFQ+PiA9IHt9KSB7XHJcbiAgICAgICAgbGV0IHNlb190aXRsZSA9ICcnO1xyXG4gICAgICAgIGxldCBzZW9fa2V5d29yZHMgPSAnJztcclxuICAgICAgICBsZXQgYmFzZV9wcmljZSA9IDA7XHJcbiAgICAgICAgbGV0IGJhc2VfcHJpY2Vfd2l0aF90YXggPSAwO1xyXG4gICAgICAgIGxldCBzZWxsX3ByaWNlID0gMDtcclxuICAgICAgICBsZXQgc2VsbF9wcmljZV93aXRoX3RheCA9IDA7XHJcblxyXG4gICAgICAgIGlmIChyZWNvcmQpIHtcclxuICAgICAgICAgICAgdGhpcy5pZCA9ICsocmVjb3JkLmlkID8/IDApO1xyXG4gICAgICAgICAgICB0aGlzLmNvZGUgPSByZWNvcmQuY29kZSA/PyAnJztcclxuICAgICAgICAgICAgdGhpcy5uYW1lID0gcmVjb3JkLm5hbWUgPz8gJyc7XHJcbiAgICAgICAgICAgIHRoaXMuc2VmX25hbWUgPSByZWNvcmQuc2VmX25hbWUgPz8gJyc7XHJcbiAgICAgICAgICAgIHRoaXMuZGVzY3JpcHRpb24gPSByZWNvcmQuZGVzY3JpcHRpb24gPz8gJyc7XHJcbiAgICAgICAgICAgIHRoaXMuZXh0ZW5kZWRfZGVzY3JpcHRpb24gPSByZWNvcmQuZXh0ZW5kZWRfZGVzY3JpcHRpb24gPz8gJyc7XHJcbiAgICAgICAgICAgIHRoaXMuaW1hZ2VfbmFtZSA9IHJlY29yZC5pbWFnZV9uYW1lID8/ICcnO1xyXG4gICAgICAgICAgICB0aGlzLmltYWdlX2xhc3RfbW9kaWZpZWQgPSByZWNvcmQuaW1hZ2VfbGFzdF9tb2RpZmllZCA/PyAnJztcclxuXHJcbiAgICAgICAgICAgIHRoaXMuY2F0ZWdvcnlfaWQgPSByZWNvcmQuY2F0ZWdvcnlfaWQgPz8gJyc7XHJcbiAgICAgICAgICAgIHRoaXMuc3ViY2F0ZWdvcnlfaWQgPSArKHJlY29yZC5zdWJjYXRlZ29yeV9pZCA/PyAwKTtcclxuICAgICAgICAgICAgdGhpcy5tYW51ZmFjdHVyZXJzX2lkID0gKyhyZWNvcmQubWFudWZhY3R1cmVyc19pZCA/PyAwKTtcclxuICAgICAgICAgICAgdGhpcy5yYW5nZXNfaWQgPSArKHJlY29yZC5yYW5nZXNfaWQgPz8gMCk7XHJcbiAgICAgICAgICAgIHRoaXMuZGVsaXZlcnlfY2F0ZWdvcnkgPSByZWNvcmQuZGVsaXZlcnlfY2F0ZWdvcnkgPz8gJ3JlZ3VsYXJfaXRlbSc7XHJcblxyXG4gICAgICAgICAgICB0aGlzLm11c3RfY29sbGVjdCA9ICEhKyhyZWNvcmQubXVzdF9jb2xsZWN0ID8/IGZhbHNlKTtcclxuICAgICAgICAgICAgdGhpcy5yZXF1aXJlc19hc3NlbWJseSA9ICEhKyhyZWNvcmQucmVxdWlyZXNfYXNzZW1ibHkgPz8gZmFsc2UpO1xyXG4gICAgICAgICAgICB0aGlzLmFjdGl2ZSA9ICEhKyhyZWNvcmQuaXNfYWN0aXZlID8/IGZhbHNlKTtcclxuICAgICAgICAgICAgdGhpcy5mZWF0dXJlZCA9ICEhKyhyZWNvcmQuaXNfZmVhdHVyZWQgPz8gZmFsc2UpO1xyXG4gICAgICAgICAgICB0aGlzLmFsbG93X3F1b3RlcyA9IChyZWNvcmQuYWxsb3dfcXVvdGVzID8/IHRydWUpO1xyXG4gICAgICAgICAgICB0aGlzLmFsbG93X29yZGVycyA9IChyZWNvcmQuYWxsb3dfb3JkZXJzID8/IHRydWUpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5hbW91bnRfaW5fc3RvY2sgPSArKHJlY29yZC5vbmhhbmQgPz8gMCk7XHJcbiAgICAgICAgICAgIHRoaXMudG90YWxfcmVjaXBlX2l0ZW1zID0gKyhyZWNvcmQudG90YWxfcmVjaXBlX2l0ZW1zID8/IDApO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5oZWlnaHQgPSArKHJlY29yZC5oZWlnaHQgPz8gMCk7XHJcbiAgICAgICAgICAgIHRoaXMud2lkdGggPSArKHJlY29yZC53aWR0aCA/PyAwKTtcclxuICAgICAgICAgICAgdGhpcy5sZW5ndGggPSArKHJlY29yZC5sZW5ndGggPz8gMCk7XHJcbiAgICAgICAgICAgIHRoaXMud2VpZ2h0ID0gKyhyZWNvcmQud2VpZ2h0ID8/IDApO1xyXG5cclxuICAgICAgICAgICAgaWYgKHJlY29yZC51bml0X29mX21lYXN1cmUpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudW5pdF9vZl9tZWFzdXJlID0gcmVjb3JkLnVuaXRfb2ZfbWVhc3VyZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgYmFzZV9wcmljZSA9ICsocmVjb3JkLnJlZ3VsYXJfc2VsbHByaWNlID8/IDApO1xyXG4gICAgICAgICAgICBiYXNlX3ByaWNlX3dpdGhfdGF4ID0gKyhyZWNvcmQucmVndWxhcl9zZWxscHJpY2VfaW5jbHVzaXZlID8/IDApO1xyXG4gICAgICAgICAgICBzZWxsX3ByaWNlID0gKyhyZWNvcmQuc2VsbHByaWNlID8/IDApO1xyXG4gICAgICAgICAgICBzZWxsX3ByaWNlX3dpdGhfdGF4ID0gKyhyZWNvcmQuc2VsbHByaWNlX2luY2x1c2l2ZSA/PyAwKTtcclxuXHJcbiAgICAgICAgICAgIGlmICgocmVjb3JkLnRhZ3MpICYmIChyZWNvcmQudGFncy5sZW5ndGggPiAwKSkge1xyXG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCB0YWcgb2YgcmVjb3JkLnRhZ3MpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRhZ3MucHVzaChuZXcgRXNvbHZlVGFnKHRhZykpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoKHJlY29yZC50b3BpY3MpICYmIChyZWNvcmQudG9waWNzLmxlbmd0aCA+IDApKSB7XHJcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHRvcGljIG9mIHJlY29yZC50b3BpY3MpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRvcGljcy5wdXNoKG5ldyBFc29sdmVUb3BpYyh0b3BpYykpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoKHJlY29yZC5iYWRnZXMpICYmIChyZWNvcmQuYmFkZ2VzLmxlbmd0aCA+IDApKSB7XHJcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGJhZGdlIG9mIHJlY29yZC5iYWRnZXMpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJhZGdlcy5wdXNoKG5ldyBFc29sdmVTdG9ja0JhZGdlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICArYmFkZ2UuaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhZGdlLnRleHQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhZGdlLmlkZW50aWZpZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhZGdlLmZvbnRfY29sb3VyLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBiYWRnZS5iYWRnZV9jb2xvdXIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICtiYWRnZS5zb3J0X3ByaW9yaXR5LFxyXG4gICAgICAgICAgICAgICAgICAgICkpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAocmVjb3JkLmNhdGVnb3J5KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNhdGVnb3J5ID0gbmV3IEVzb2x2ZUNhdGVnb3J5VHJlZUl0ZW0oXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLmNhdGVnb3J5LnR5cGUsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLmNhdGVnb3J5LmlkLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlY29yZC5jYXRlZ29yeS5wYXJlbnRfaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLmNhdGVnb3J5LmRlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlY29yZC5jYXRlZ29yeS5zZWZfZGVzY3JpcHRpb24sXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLmNhdGVnb3J5LnNob3J0X2Rlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlY29yZC5jYXRlZ29yeS5zb3J0X3ByaW9yaXR5LFxyXG4gICAgICAgICAgICAgICAgICAgIHJlY29yZC5jYXRlZ29yeS5hY3RpdmUsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLmNhdGVnb3J5LmRpc3BsYXlfb25seSxcclxuICAgICAgICAgICAgICAgICAgICByZWNvcmQuY2F0ZWdvcnkuaW1hZ2UsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLmNhdGVnb3J5LnNlb19wYWdlX3RpdGxlLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlY29yZC5jYXRlZ29yeS5zZW9fa2V5d29yZHMsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLmNhdGVnb3J5LnNlb19kZXNjcmlwdGlvbixcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChyZWNvcmQuc3ViY2F0ZWdvcnkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3ViY2F0ZWdvcnkgPSBuZXcgRXNvbHZlQ2F0ZWdvcnlUcmVlSXRlbShcclxuICAgICAgICAgICAgICAgICAgICByZWNvcmQuc3ViY2F0ZWdvcnkudHlwZSxcclxuICAgICAgICAgICAgICAgICAgICByZWNvcmQuc3ViY2F0ZWdvcnkuaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLnN1YmNhdGVnb3J5LnBhcmVudF9pZCxcclxuICAgICAgICAgICAgICAgICAgICByZWNvcmQuc3ViY2F0ZWdvcnkuZGVzY3JpcHRpb24sXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLnN1YmNhdGVnb3J5LnNlZl9kZXNjcmlwdGlvbixcclxuICAgICAgICAgICAgICAgICAgICByZWNvcmQuc3ViY2F0ZWdvcnkuc2hvcnRfZGVzY3JpcHRpb24sXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLnN1YmNhdGVnb3J5LnNvcnRfcHJpb3JpdHksXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLnN1YmNhdGVnb3J5LmFjdGl2ZSxcclxuICAgICAgICAgICAgICAgICAgICByZWNvcmQuc3ViY2F0ZWdvcnkuZGlzcGxheV9vbmx5LFxyXG4gICAgICAgICAgICAgICAgICAgIHJlY29yZC5zdWJjYXRlZ29yeS5pbWFnZSxcclxuICAgICAgICAgICAgICAgICAgICByZWNvcmQuc3ViY2F0ZWdvcnkuc2VvX3BhZ2VfdGl0bGUsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLnN1YmNhdGVnb3J5LnNlb19rZXl3b3JkcyxcclxuICAgICAgICAgICAgICAgICAgICByZWNvcmQuc3ViY2F0ZWdvcnkuc2VvX2Rlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKHJlY29yZC5tYW51ZmFjdHVyZXIpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubWFudWZhY3R1cmVyID0gbmV3IEVzb2x2ZU1hbnVmYWN0dXJlcihyZWNvcmQubWFudWZhY3R1cmVyKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKHJlY29yZC5yYW5nZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yYW5nZSA9IG5ldyBFc29sdmVSYW5nZShyZWNvcmQucmFuZ2UpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAocmVjb3JkLmNvbG91cnMgJiYgcmVjb3JkLmNvbG91cnMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBjb2xvdXIgb2YgcmVjb3JkLmNvbG91cnMpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbG91cnMucHVzaChuZXcgRXNvbHZlQ29sb3VyKGNvbG91cikpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAocmVjb3JkLmxlYWRfdGltZXMpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVhZF90aW1lcyA9IG5ldyBFc29sdmVTdG9ja0xlYWRUaW1lcyhyZWNvcmQubGVhZF90aW1lcyk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChyZWNvcmQuY3VzdG9tX2ZpZWxkcykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jdXN0b21fZmllbGRzID0gcmVjb3JkLmN1c3RvbV9maWVsZHM7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmICgocmVjb3JkLnRvdGFsX29yZGVyX3F0eSkgfHwgKChyZWNvcmQudG90YWxfcXVvdGVfcXR5KSkpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHRvdGFsX29yZGVyX3F0eSA9ICsocmVjb3JkLnRvdGFsX29yZGVyX3F0eSA/PyAwKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHRvdGFsX3F1b3RlX3F0eSA9ICsocmVjb3JkLnRvdGFsX3F1b3RlX3F0eSA/PyAwKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuaGlzdG9yeSA9IG5ldyBFc29sdmVTdG9ja1RyYW5zYWN0aW9uSGlzdG9yeSh0b3RhbF9vcmRlcl9xdHksIHRvdGFsX3F1b3RlX3F0eSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHNlb190aXRsZSA9IHJlY29yZC5zZW9fcGFnZV90aXRsZSA/PyAnJztcclxuICAgICAgICAgICAgc2VvX2tleXdvcmRzID0gcmVjb3JkLnNlb19rZXl3b3JkcyA/PyAnJztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMucHJpY2UgPSBuZXcgRXNvbHZlU3RvY2tQcmljZShcclxuICAgICAgICAgICAgYmFzZV9wcmljZSxcclxuICAgICAgICAgICAgYmFzZV9wcmljZV93aXRoX3RheCxcclxuICAgICAgICAgICAgc2VsbF9wcmljZSxcclxuICAgICAgICAgICAgc2VsbF9wcmljZV93aXRoX3RheCxcclxuICAgICAgICAgICAgcmVjb3JkLnZhdF9yYXRlLFxyXG4gICAgICAgICAgICByZWNvcmQudmF0X2l0ZW0sXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgaWYgKHNlb190aXRsZS50cmltKCkgPT09ICcnKSB7XHJcbiAgICAgICAgICAgIHNlb190aXRsZSA9IHRoaXMubmFtZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuc2VvX2RldGFpbHMgPSBuZXcgRXNvbHZlU2VvSW5mbyhcclxuICAgICAgICAgICAgc2VvX3RpdGxlLFxyXG4gICAgICAgICAgICB0aGlzLmRlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgICBzZW9fa2V5d29yZHMsXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0SW1hZ2VQYXRoKGltYWdlX3NpemU6IEVzb2x2ZVN0b2NrSW1hZ2VTaXplKTogc3RyaW5nIHtcclxuICAgICAgICBpZiAodGhpcy5pbWFnZV9uYW1lICE9PSAnJykge1xyXG4gICAgICAgICAgICBsZXQgcGFyYW0gPSAnJztcclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLmltYWdlX2xhc3RfbW9kaWZpZWQgIT09ICcnKSB7XHJcbiAgICAgICAgICAgICAgICBwYXJhbSA9IGA/dD0ke3RoaXMuaW1hZ2VfbGFzdF9tb2RpZmllZH1gO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gYC9pbWFnZXMvc3RvY2svJHtpbWFnZV9zaXplfS8ke3RoaXMuaW1hZ2VfbmFtZX0ke3BhcmFtfWA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gJyc7XHJcbiAgICB9XHJcbn1cclxuIl19","import { EsolveStockItemBase } from './esolve-stock-item-base.model';\r\nexport class EsolveDependantItem extends EsolveStockItemBase {\r\n constructor(record) {\r\n super(record);\r\n this.qty = 0;\r\n this.dependency_description = '';\r\n this.qty = +(record?.qty ?? 0);\r\n this.dependency_description = record?.dependency_description ?? '';\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWRlcGVuZGFudC1pdGVtLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL3N0b2NrL2NsYXNzZXMvZXNvbHZlLWRlcGVuZGFudC1pdGVtLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXJFLE1BQU0sT0FBTyxtQkFBdUUsU0FBUSxtQkFBc0I7SUFJOUcsWUFBWSxNQUE4QztRQUN0RCxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFKWCxRQUFHLEdBQVcsQ0FBQyxDQUFDO1FBQ2hCLDJCQUFzQixHQUFXLEVBQUUsQ0FBQztRQUt2QyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxNQUFNLEVBQUUsc0JBQXNCLElBQUksRUFBRSxDQUFDO0lBQ3ZFLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5pbXBvcnQgeyBFc29sdmVDdXN0b21GaWVsZHMgfSBmcm9tICcuLi8uLi9zaGFyZWQvY3VzdG9tLWZpZWxkcyc7XHJcblxyXG5pbXBvcnQgeyBFc29sdmVEZXBlbmRhbnRJdGVtUmVjb3JkIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IEVzb2x2ZVN0b2NrSXRlbUJhc2UgfSBmcm9tICcuL2Vzb2x2ZS1zdG9jay1pdGVtLWJhc2UubW9kZWwnO1xyXG5cclxuZXhwb3J0IGNsYXNzIEVzb2x2ZURlcGVuZGFudEl0ZW08VCBleHRlbmRzIEVzb2x2ZUN1c3RvbUZpZWxkcyA9IEVzb2x2ZUN1c3RvbUZpZWxkcz4gZXh0ZW5kcyBFc29sdmVTdG9ja0l0ZW1CYXNlPFQ+IHtcclxuICAgIHB1YmxpYyBxdHk6IG51bWJlciA9IDA7XHJcbiAgICBwdWJsaWMgZGVwZW5kZW5jeV9kZXNjcmlwdGlvbjogc3RyaW5nID0gJyc7XHJcblxyXG4gICAgY29uc3RydWN0b3IocmVjb3JkPzogUGFydGlhbDxFc29sdmVEZXBlbmRhbnRJdGVtUmVjb3JkPFQ+Pikge1xyXG4gICAgICAgIHN1cGVyKHJlY29yZCk7XHJcblxyXG4gICAgICAgIHRoaXMucXR5ID0gKyhyZWNvcmQ/LnF0eSA/PyAwKTtcclxuICAgICAgICB0aGlzLmRlcGVuZGVuY3lfZGVzY3JpcHRpb24gPSByZWNvcmQ/LmRlcGVuZGVuY3lfZGVzY3JpcHRpb24gPz8gJyc7XHJcbiAgICB9XHJcbn1cclxuIl19","import { EsolveStockItemBase } from './esolve-stock-item-base.model';\r\nexport class EsolveStockGroupItem extends EsolveStockItemBase {\r\n constructor(record) {\r\n super(record);\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXN0b2NrLWdyb3VwLWl0ZW0ubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvc3RvY2svY2xhc3Nlcy9lc29sdmUtc3RvY2stZ3JvdXAtaXRlbS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVyRSxNQUFNLE9BQU8sb0JBQXdFLFNBQVEsbUJBQXNCO0lBQy9HLFlBQVksTUFBK0M7UUFDdkQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2xCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVzb2x2ZUN1c3RvbUZpZWxkcyB9IGZyb20gJy4uLy4uL3NoYXJlZC9jdXN0b20tZmllbGRzJztcclxuXHJcbmltcG9ydCB7IEVzb2x2ZVN0b2NrR3JvdXBJdGVtUmVjb3JkIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IEVzb2x2ZVN0b2NrSXRlbUJhc2UgfSBmcm9tICcuL2Vzb2x2ZS1zdG9jay1pdGVtLWJhc2UubW9kZWwnO1xyXG5cclxuZXhwb3J0IGNsYXNzIEVzb2x2ZVN0b2NrR3JvdXBJdGVtPFQgZXh0ZW5kcyBFc29sdmVDdXN0b21GaWVsZHMgPSBFc29sdmVDdXN0b21GaWVsZHM+IGV4dGVuZHMgRXNvbHZlU3RvY2tJdGVtQmFzZTxUPiB7XHJcbiAgICBjb25zdHJ1Y3RvcihyZWNvcmQ/OiBQYXJ0aWFsPEVzb2x2ZVN0b2NrR3JvdXBJdGVtUmVjb3JkPFQ+Pikge1xyXG4gICAgICAgIHN1cGVyKHJlY29yZCk7XHJcbiAgICB9XHJcbn1cclxuIl19","import { EsolveStockGroupItem } from './esolve-stock-group-item.model';\r\nexport class EsolveStockGroup {\r\n constructor(group, records = []) {\r\n this.group = group;\r\n this.items = [];\r\n if (records.length > 0) {\r\n for (const record of records) {\r\n this.items.push(new EsolveStockGroupItem(record));\r\n }\r\n }\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXN0b2NrLWdyb3VwLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL3N0b2NrL2NsYXNzZXMvZXNvbHZlLXN0b2NrLWdyb3VwLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRXZFLE1BQU0sT0FBTyxnQkFBZ0I7SUFHekIsWUFDVyxLQUFhLEVBQ3BCLFVBQTJDLEVBQUU7UUFEdEMsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUhqQixVQUFLLEdBQThCLEVBQUUsQ0FBQztRQU16QyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3BCLEtBQUssTUFBTSxNQUFNLElBQUksT0FBTyxFQUFFO2dCQUMxQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7YUFDckQ7U0FDSjtJQUNMLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVzb2x2ZUN1c3RvbUZpZWxkcyB9IGZyb20gJy4uLy4uL3NoYXJlZC9jdXN0b20tZmllbGRzJztcclxuXHJcbmltcG9ydCB7IEVzb2x2ZVN0b2NrR3JvdXBJdGVtUmVjb3JkIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IEVzb2x2ZVN0b2NrR3JvdXBJdGVtIH0gZnJvbSAnLi9lc29sdmUtc3RvY2stZ3JvdXAtaXRlbS5tb2RlbCc7XHJcblxyXG5leHBvcnQgY2xhc3MgRXNvbHZlU3RvY2tHcm91cDxUIGV4dGVuZHMgRXNvbHZlQ3VzdG9tRmllbGRzID0gRXNvbHZlQ3VzdG9tRmllbGRzPiB7XHJcbiAgICBwdWJsaWMgaXRlbXM6IEVzb2x2ZVN0b2NrR3JvdXBJdGVtPFQ+W10gPSBbXTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwdWJsaWMgZ3JvdXA6IHN0cmluZyxcclxuICAgICAgICByZWNvcmRzOiBFc29sdmVTdG9ja0dyb3VwSXRlbVJlY29yZDxUPltdID0gW10sXHJcbiAgICApIHtcclxuICAgICAgICBpZiAocmVjb3Jkcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgcmVjb3JkIG9mIHJlY29yZHMpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaXRlbXMucHVzaChuZXcgRXNvbHZlU3RvY2tHcm91cEl0ZW0ocmVjb3JkKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19","import { EsolveStockItemBase } from './esolve-stock-item-base.model';\r\nimport { EsolveDependantItem } from './esolve-dependant-item.model';\r\nimport { EsolveStockGroup } from './esolve-stock-group.model';\r\n/**\r\n * Stock Item object. It can be a service or a product (physical and/or digital).\r\n */\r\nexport class EsolveStockItem extends EsolveStockItemBase {\r\n /**\r\n * Constructs an instance of EsolveStockItem\r\n */\r\n constructor(record) {\r\n super(record);\r\n if (record?.group && record.grouped_items) {\r\n this.group = new EsolveStockGroup(record.group, record.grouped_items);\r\n }\r\n if (record?.dependencies) {\r\n this.dependencies = [];\r\n for (const dependant of record.dependencies) {\r\n this.dependencies.push(new EsolveDependantItem(dependant));\r\n }\r\n }\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXN0b2NrLWl0ZW0ubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvc3RvY2svY2xhc3Nlcy9lc29sdmUtc3RvY2staXRlbS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUU5RDs7R0FFRztBQUNILE1BQU0sT0FBTyxlQUFtRSxTQUFRLG1CQUFzQjtJQUkxRzs7T0FFRztJQUNILFlBQVksTUFBc0M7UUFDOUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRWQsSUFBSSxNQUFNLEVBQUUsS0FBSyxJQUFJLE1BQU0sQ0FBQyxhQUFhLEVBQUU7WUFDdkMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLGdCQUFnQixDQUM3QixNQUFNLENBQUMsS0FBSyxFQUNaLE1BQU0sQ0FBQyxhQUFhLENBQ3ZCLENBQUM7U0FDTDtRQUVELElBQUksTUFBTSxFQUFFLFlBQVksRUFBRTtZQUN0QixJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztZQUV2QixLQUFLLE1BQU0sU0FBUyxJQUFJLE1BQU0sQ0FBQyxZQUFZLEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksbUJBQW1CLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQzthQUM5RDtTQUNKO0lBQ0wsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXNvbHZlQ3VzdG9tRmllbGRzIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2N1c3RvbS1maWVsZHMnO1xyXG5cclxuaW1wb3J0IHsgRXNvbHZlU3RvY2tSZWNvcmQgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgRXNvbHZlU3RvY2tJdGVtQmFzZSB9IGZyb20gJy4vZXNvbHZlLXN0b2NrLWl0ZW0tYmFzZS5tb2RlbCc7XHJcbmltcG9ydCB7IEVzb2x2ZURlcGVuZGFudEl0ZW0gfSBmcm9tICcuL2Vzb2x2ZS1kZXBlbmRhbnQtaXRlbS5tb2RlbCc7XHJcbmltcG9ydCB7IEVzb2x2ZVN0b2NrR3JvdXAgfSBmcm9tICcuL2Vzb2x2ZS1zdG9jay1ncm91cC5tb2RlbCc7XHJcblxyXG4vKipcclxuICogU3RvY2sgSXRlbSBvYmplY3QuIEl0IGNhbiBiZSBhIHNlcnZpY2Ugb3IgYSBwcm9kdWN0IChwaHlzaWNhbCBhbmQvb3IgZGlnaXRhbCkuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgRXNvbHZlU3RvY2tJdGVtPFQgZXh0ZW5kcyBFc29sdmVDdXN0b21GaWVsZHMgPSBFc29sdmVDdXN0b21GaWVsZHM+IGV4dGVuZHMgRXNvbHZlU3RvY2tJdGVtQmFzZTxUPiB7XHJcbiAgICBwdWJsaWMgZ3JvdXA/OiBFc29sdmVTdG9ja0dyb3VwPFQ+O1xyXG4gICAgcHVibGljIGRlcGVuZGVuY2llcz86IEVzb2x2ZURlcGVuZGFudEl0ZW08VD5bXTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIENvbnN0cnVjdHMgYW4gaW5zdGFuY2Ugb2YgRXNvbHZlU3RvY2tJdGVtXHJcbiAgICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKHJlY29yZD86IFBhcnRpYWw8RXNvbHZlU3RvY2tSZWNvcmQ8VD4+KSB7XHJcbiAgICAgICAgc3VwZXIocmVjb3JkKTtcclxuXHJcbiAgICAgICAgaWYgKHJlY29yZD8uZ3JvdXAgJiYgcmVjb3JkLmdyb3VwZWRfaXRlbXMpIHtcclxuICAgICAgICAgICAgdGhpcy5ncm91cCA9IG5ldyBFc29sdmVTdG9ja0dyb3VwKFxyXG4gICAgICAgICAgICAgICAgcmVjb3JkLmdyb3VwLFxyXG4gICAgICAgICAgICAgICAgcmVjb3JkLmdyb3VwZWRfaXRlbXMsXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAocmVjb3JkPy5kZXBlbmRlbmNpZXMpIHtcclxuICAgICAgICAgICAgdGhpcy5kZXBlbmRlbmNpZXMgPSBbXTtcclxuXHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgZGVwZW5kYW50IG9mIHJlY29yZC5kZXBlbmRlbmNpZXMpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZGVwZW5kZW5jaWVzLnB1c2gobmV3IEVzb2x2ZURlcGVuZGFudEl0ZW0oZGVwZW5kYW50KSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19","/**\r\n * Stock item object list\r\n */\r\nexport class EsolveStockItemList {\r\n constructor(stock_items, total, page) {\r\n this.stock_items = stock_items;\r\n this.total = total;\r\n this.page = page;\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXN0b2NrLWl0ZW0tbGlzdC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9zdG9jay9jbGFzc2VzL2Vzb2x2ZS1zdG9jay1pdGVtLWxpc3QubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUE7O0dBRUc7QUFDSCxNQUFNLE9BQU8sbUJBQW1CO0lBQzVCLFlBQ1csV0FBaUMsRUFDakMsS0FBYSxFQUNiLElBQVk7UUFGWixnQkFBVyxHQUFYLFdBQVcsQ0FBc0I7UUFDakMsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUNiLFNBQUksR0FBSixJQUFJLENBQVE7SUFDbkIsQ0FBQztDQUNSIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXNvbHZlQ3VzdG9tRmllbGRzIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2N1c3RvbS1maWVsZHMnO1xyXG5cclxuaW1wb3J0IHsgRXNvbHZlU3RvY2tJdGVtIH0gZnJvbSAnLi9lc29sdmUtc3RvY2staXRlbS5tb2RlbCc7XHJcblxyXG4vKipcclxuICogU3RvY2sgaXRlbSBvYmplY3QgbGlzdFxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEVzb2x2ZVN0b2NrSXRlbUxpc3Q8VCBleHRlbmRzIEVzb2x2ZUN1c3RvbUZpZWxkcyA9IEVzb2x2ZUN1c3RvbUZpZWxkcz4ge1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHVibGljIHN0b2NrX2l0ZW1zOiBFc29sdmVTdG9ja0l0ZW08VD5bXSxcclxuICAgICAgICBwdWJsaWMgdG90YWw6IG51bWJlcixcclxuICAgICAgICBwdWJsaWMgcGFnZTogbnVtYmVyLFxyXG4gICAgKSB7IH1cclxufVxyXG4iXX0=","import { EsolveStockItemBase } from './esolve-stock-item-base.model';\r\nexport class EsolveRecipeStockItem extends EsolveStockItemBase {\r\n constructor(record) {\r\n super(record);\r\n this.qty = 0;\r\n this.qty = +(record?.qty ?? 0);\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXJlY2lwZS1zdG9jay1pdGVtLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL3N0b2NrL2NsYXNzZXMvZXNvbHZlLXJlY2lwZS1zdG9jay1pdGVtLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXJFLE1BQU0sT0FBTyxxQkFBeUUsU0FBUSxtQkFBc0I7SUFHaEgsWUFBWSxNQUEyQztRQUNuRCxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFIWCxRQUFHLEdBQVcsQ0FBQyxDQUFDO1FBS25CLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDbkMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXNvbHZlQ3VzdG9tRmllbGRzIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2N1c3RvbS1maWVsZHMnO1xyXG5cclxuaW1wb3J0IHsgRXNvbHZlUmVjaXBlSXRlbVJlY29yZCB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBFc29sdmVTdG9ja0l0ZW1CYXNlIH0gZnJvbSAnLi9lc29sdmUtc3RvY2staXRlbS1iYXNlLm1vZGVsJztcclxuXHJcbmV4cG9ydCBjbGFzcyBFc29sdmVSZWNpcGVTdG9ja0l0ZW08VCBleHRlbmRzIEVzb2x2ZUN1c3RvbUZpZWxkcyA9IEVzb2x2ZUN1c3RvbUZpZWxkcz4gZXh0ZW5kcyBFc29sdmVTdG9ja0l0ZW1CYXNlPFQ+IHtcclxuICAgIHB1YmxpYyBxdHk6IG51bWJlciA9IDA7XHJcblxyXG4gICAgY29uc3RydWN0b3IocmVjb3JkPzogUGFydGlhbDxFc29sdmVSZWNpcGVJdGVtUmVjb3JkPFQ+Pikge1xyXG4gICAgICAgIHN1cGVyKHJlY29yZCk7XHJcblxyXG4gICAgICAgIHRoaXMucXR5ID0gKyhyZWNvcmQ/LnF0eSA/PyAwKTtcclxuICAgIH1cclxufVxyXG4iXX0=","import { EsolveStockItemBase } from './esolve-stock-item-base.model';\r\nexport class EsolveLinkedStockItem extends EsolveStockItemBase {\r\n constructor(record) {\r\n super(record);\r\n this.qty = 0;\r\n this.qty = +(record?.qty ?? 0);\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWxpbmtlZC1zdG9jay1pdGVtLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL3N0b2NrL2NsYXNzZXMvZXNvbHZlLWxpbmtlZC1zdG9jay1pdGVtLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXJFLE1BQU0sT0FBTyxxQkFBeUUsU0FBUSxtQkFBc0I7SUFHaEgsWUFBWSxNQUE0QztRQUNwRCxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFIWCxRQUFHLEdBQVcsQ0FBQyxDQUFDO1FBS25CLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDbkMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXNvbHZlQ3VzdG9tRmllbGRzIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2N1c3RvbS1maWVsZHMnO1xyXG5cclxuaW1wb3J0IHsgRXNvbHZlTGlua2VkU3RvY2tSZWNvcmQgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgRXNvbHZlU3RvY2tJdGVtQmFzZSB9IGZyb20gJy4vZXNvbHZlLXN0b2NrLWl0ZW0tYmFzZS5tb2RlbCc7XHJcblxyXG5leHBvcnQgY2xhc3MgRXNvbHZlTGlua2VkU3RvY2tJdGVtPFQgZXh0ZW5kcyBFc29sdmVDdXN0b21GaWVsZHMgPSBFc29sdmVDdXN0b21GaWVsZHM+IGV4dGVuZHMgRXNvbHZlU3RvY2tJdGVtQmFzZTxUPiB7XHJcbiAgICBwdWJsaWMgcXR5OiBudW1iZXIgPSAwO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHJlY29yZD86IFBhcnRpYWw8RXNvbHZlTGlua2VkU3RvY2tSZWNvcmQ8VD4+KSB7XHJcbiAgICAgICAgc3VwZXIocmVjb3JkKTtcclxuXHJcbiAgICAgICAgdGhpcy5xdHkgPSArKHJlY29yZD8ucXR5ID8/IDApO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==","import { EsolveStockItemBase } from './esolve-stock-item-base.model';\r\nexport class EsolveMediaStockItem extends EsolveStockItemBase {\r\n constructor(record) {\r\n super(record);\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLW1lZGlhLXN0b2NrLWl0ZW0ubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvc3RvY2svY2xhc3Nlcy9lc29sdmUtbWVkaWEtc3RvY2staXRlbS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVyRSxNQUFNLE9BQU8sb0JBRVgsU0FBUSxtQkFBc0I7SUFDNUIsWUFBWSxNQUErQztRQUN2RCxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbEIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXNvbHZlQ3VzdG9tRmllbGRzIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2N1c3RvbS1maWVsZHMnO1xyXG5cclxuaW1wb3J0IHsgRXNvbHZlTWVkaWFTdG9ja0l0ZW1SZWNvcmQgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgRXNvbHZlU3RvY2tJdGVtQmFzZSB9IGZyb20gJy4vZXNvbHZlLXN0b2NrLWl0ZW0tYmFzZS5tb2RlbCc7XHJcblxyXG5leHBvcnQgY2xhc3MgRXNvbHZlTWVkaWFTdG9ja0l0ZW08XHJcbiAgICBUIGV4dGVuZHMgRXNvbHZlQ3VzdG9tRmllbGRzID0gRXNvbHZlQ3VzdG9tRmllbGRzLFxyXG4+IGV4dGVuZHMgRXNvbHZlU3RvY2tJdGVtQmFzZTxUPiB7XHJcbiAgICBjb25zdHJ1Y3RvcihyZWNvcmQ/OiBQYXJ0aWFsPEVzb2x2ZU1lZGlhU3RvY2tJdGVtUmVjb3JkPFQ+Pikge1xyXG4gICAgICAgIHN1cGVyKHJlY29yZCk7XHJcbiAgICB9XHJcbn1cclxuIl19","export class EsolveStockImage {\r\n constructor(image_name, last_modified = '') {\r\n this.image_name = image_name;\r\n this.last_modified = last_modified;\r\n if (this.image_name === 'no_image.jpg') {\r\n this.image_name = '';\r\n }\r\n }\r\n /**\r\n * Path to tiny stock image\r\n */\r\n get tiny_src() {\r\n return this.getImagePath('tiny');\r\n }\r\n /**\r\n * Path to thumbnail stock image\r\n */\r\n get thumbnail_src() {\r\n return this.getImagePath('thumb');\r\n }\r\n /**\r\n * Path to small stock image\r\n */\r\n get small_src() {\r\n return this.getImagePath('small');\r\n }\r\n /**\r\n * Path to big stock image\r\n */\r\n get big_src() {\r\n return this.getImagePath('big');\r\n }\r\n /**\r\n * Path to original stock image\r\n */\r\n get original_src() {\r\n return this.getImagePath('original');\r\n }\r\n getImagePath(image_size) {\r\n if (this.image_name !== '') {\r\n let param = '';\r\n if (this.last_modified !== '') {\r\n param = `?t=${this.last_modified}`;\r\n }\r\n return `/images/stock/${image_size}/${this.image_name}${param}`;\r\n }\r\n return '';\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXN0b2NrLWltYWdlLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL3N0b2NrL2NsYXNzZXMvZXNvbHZlLXN0b2NrLWltYWdlLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxnQkFBZ0I7SUFvQ3pCLFlBQ1ksVUFBa0IsRUFDbEIsZ0JBQXdCLEVBQUU7UUFEMUIsZUFBVSxHQUFWLFVBQVUsQ0FBUTtRQUNsQixrQkFBYSxHQUFiLGFBQWEsQ0FBYTtRQUVsQyxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssY0FBYyxFQUFFO1lBQ3BDLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO1NBQ3hCO0lBQ0wsQ0FBQztJQTFDRDs7T0FFRztJQUNILElBQVcsUUFBUTtRQUNmLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLGFBQWE7UUFDcEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsU0FBUztRQUNoQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxPQUFPO1FBQ2QsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsWUFBWTtRQUNuQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQVdNLFlBQVksQ0FBQyxVQUFnQztRQUNoRCxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssRUFBRSxFQUFFO1lBQ3hCLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUVmLElBQUksSUFBSSxDQUFDLGFBQWEsS0FBSyxFQUFFLEVBQUU7Z0JBQzNCLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQzthQUN0QztZQUVELE9BQU8saUJBQWlCLFVBQVUsSUFBSSxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssRUFBRSxDQUFDO1NBQ25FO1FBRUQsT0FBTyxFQUFFLENBQUM7SUFDZCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFc29sdmVTdG9ja0ltYWdlU2l6ZSB9IGZyb20gJy4uL3R5cGVzJztcclxuXHJcbmV4cG9ydCBjbGFzcyBFc29sdmVTdG9ja0ltYWdlIHtcclxuICAgIC8qKlxyXG4gICAgICogUGF0aCB0byB0aW55IHN0b2NrIGltYWdlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgdGlueV9zcmMoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRJbWFnZVBhdGgoJ3RpbnknKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFBhdGggdG8gdGh1bWJuYWlsIHN0b2NrIGltYWdlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgdGh1bWJuYWlsX3NyYygpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldEltYWdlUGF0aCgndGh1bWInKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFBhdGggdG8gc21hbGwgc3RvY2sgaW1hZ2VcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCBzbWFsbF9zcmMoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRJbWFnZVBhdGgoJ3NtYWxsJyk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQYXRoIHRvIGJpZyBzdG9jayBpbWFnZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IGJpZ19zcmMoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRJbWFnZVBhdGgoJ2JpZycpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUGF0aCB0byBvcmlnaW5hbCBzdG9jayBpbWFnZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IG9yaWdpbmFsX3NyYygpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldEltYWdlUGF0aCgnb3JpZ2luYWwnKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIGltYWdlX25hbWU6IHN0cmluZyxcclxuICAgICAgICBwcml2YXRlIGxhc3RfbW9kaWZpZWQ6IHN0cmluZyA9ICcnLFxyXG4gICAgKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuaW1hZ2VfbmFtZSA9PT0gJ25vX2ltYWdlLmpwZycpIHtcclxuICAgICAgICAgICAgdGhpcy5pbWFnZV9uYW1lID0gJyc7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXRJbWFnZVBhdGgoaW1hZ2Vfc2l6ZTogRXNvbHZlU3RvY2tJbWFnZVNpemUpOiBzdHJpbmcge1xyXG4gICAgICAgIGlmICh0aGlzLmltYWdlX25hbWUgIT09ICcnKSB7XHJcbiAgICAgICAgICAgIGxldCBwYXJhbSA9ICcnO1xyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMubGFzdF9tb2RpZmllZCAhPT0gJycpIHtcclxuICAgICAgICAgICAgICAgIHBhcmFtID0gYD90PSR7dGhpcy5sYXN0X21vZGlmaWVkfWA7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHJldHVybiBgL2ltYWdlcy9zdG9jay8ke2ltYWdlX3NpemV9LyR7dGhpcy5pbWFnZV9uYW1lfSR7cGFyYW19YDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiAnJztcclxuICAgIH1cclxufVxyXG4iXX0=","export class EsolveAdditionalStockImage {\r\n constructor(record) {\r\n this.id = 0;\r\n this.type = '';\r\n this.url = '';\r\n this.name = '';\r\n if (record) {\r\n this.id = record.id ?? 0;\r\n this.type = record.type ?? '';\r\n this.url = record.url ?? '';\r\n this.name = record.name ?? '';\r\n if (record.etag) {\r\n this.etag = record.etag;\r\n }\r\n if (record.key) {\r\n this.key = record.key;\r\n }\r\n }\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWFkZGl0aW9uYWwtc3RvY2staW1hZ2UubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvc3RvY2svY2xhc3Nlcy9lc29sdmUtYWRkaXRpb25hbC1zdG9jay1pbWFnZS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sMEJBQTBCO0lBUW5DLFlBQVksTUFBa0Q7UUFQdkQsT0FBRSxHQUFXLENBQUMsQ0FBQztRQUNmLFNBQUksR0FBVyxFQUFFLENBQUM7UUFDbEIsUUFBRyxHQUFXLEVBQUUsQ0FBQztRQUNqQixTQUFJLEdBQVcsRUFBRSxDQUFDO1FBS3JCLElBQUksTUFBTSxFQUFFO1lBQ1IsSUFBSSxDQUFDLEVBQUUsR0FBRyxNQUFNLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN6QixJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUU5QixJQUFJLE1BQU0sQ0FBQyxJQUFJLEVBQUU7Z0JBQ2IsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO2FBQzNCO1lBRUQsSUFBSSxNQUFNLENBQUMsR0FBRyxFQUFFO2dCQUNaLElBQUksQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQzthQUN6QjtTQUNKO0lBQ0wsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXNvbHZlQWRkaXRpb25hbFN0b2NrSW1hZ2VSZWNvcmQgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcclxuXHJcbmV4cG9ydCBjbGFzcyBFc29sdmVBZGRpdGlvbmFsU3RvY2tJbWFnZSB7XHJcbiAgICBwdWJsaWMgaWQ6IG51bWJlciA9IDA7XHJcbiAgICBwdWJsaWMgdHlwZTogc3RyaW5nID0gJyc7XHJcbiAgICBwdWJsaWMgdXJsOiBzdHJpbmcgPSAnJztcclxuICAgIHB1YmxpYyBuYW1lOiBzdHJpbmcgPSAnJztcclxuICAgIHB1YmxpYyBldGFnPzogc3RyaW5nO1xyXG4gICAgcHVibGljIGtleT86IHN0cmluZztcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihyZWNvcmQ/OiBQYXJ0aWFsPEVzb2x2ZUFkZGl0aW9uYWxTdG9ja0ltYWdlUmVjb3JkPikge1xyXG4gICAgICAgIGlmIChyZWNvcmQpIHtcclxuICAgICAgICAgICAgdGhpcy5pZCA9IHJlY29yZC5pZCA/PyAwO1xyXG4gICAgICAgICAgICB0aGlzLnR5cGUgPSByZWNvcmQudHlwZSA/PyAnJztcclxuICAgICAgICAgICAgdGhpcy51cmwgPSByZWNvcmQudXJsID8/ICcnO1xyXG4gICAgICAgICAgICB0aGlzLm5hbWUgPSByZWNvcmQubmFtZSA/PyAnJztcclxuXHJcbiAgICAgICAgICAgIGlmIChyZWNvcmQuZXRhZykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ldGFnID0gcmVjb3JkLmV0YWc7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChyZWNvcmQua2V5KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmtleSA9IHJlY29yZC5rZXk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19","import { EsolveAdditionalStockImage } from './esolve-additional-stock-image.model';\r\nimport { EsolveStockImage } from './esolve-stock-image.model';\r\nexport class EsolveStockImageCollection {\r\n constructor(record) {\r\n this.alt_images = [];\r\n this.additional_images = [];\r\n this.default_image = new EsolveStockImage(record?.default_image ?? '', record?.default_image_last_modified ?? '');\r\n if (!record) {\r\n return;\r\n }\r\n if (record.alt_images && record.alt_images.length > 0) {\r\n for (const alt_image_name of record.alt_images) {\r\n const alt_image = new EsolveStockImage(alt_image_name);\r\n this.alt_images.push(alt_image);\r\n }\r\n }\r\n if (record.additional_images && record.additional_images.length > 0) {\r\n for (const additional_image_record of record.additional_images) {\r\n const additional_image = new EsolveAdditionalStockImage(additional_image_record);\r\n this.additional_images.push(additional_image);\r\n }\r\n }\r\n }\r\n}\r\n;\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXN0b2NrLWltYWdlLWNvbGxlY3Rpb24ubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvc3RvY2svY2xhc3Nlcy9lc29sdmUtc3RvY2staW1hZ2UtY29sbGVjdGlvbi5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNuRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUU5RCxNQUFNLE9BQU8sMEJBQTBCO0lBS25DLFlBQVksTUFBa0Q7UUFIdkQsZUFBVSxHQUF1QixFQUFFLENBQUM7UUFDcEMsc0JBQWlCLEdBQWlDLEVBQUUsQ0FBQztRQUd4RCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksZ0JBQWdCLENBQ3JDLE1BQU0sRUFBRSxhQUFhLElBQUksRUFBRSxFQUMzQixNQUFNLEVBQUUsMkJBQTJCLElBQUksRUFBRSxDQUM1QyxDQUFDO1FBRUYsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNULE9BQU87U0FDVjtRQUVELElBQUksTUFBTSxDQUFDLFVBQVUsSUFBSSxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDbkQsS0FBSyxNQUFNLGNBQWMsSUFBSSxNQUFNLENBQUMsVUFBVSxFQUFFO2dCQUM1QyxNQUFNLFNBQVMsR0FBRyxJQUFJLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxDQUFDO2dCQUV2RCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUNuQztTQUNKO1FBRUQsSUFBSSxNQUFNLENBQUMsaUJBQWlCLElBQUksTUFBTSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDakUsS0FBSyxNQUFNLHVCQUF1QixJQUFJLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRTtnQkFDNUQsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLDBCQUEwQixDQUNuRCx1QkFBdUIsQ0FDMUIsQ0FBQztnQkFFRixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7YUFDakQ7U0FDSjtJQUNMLENBQUM7Q0FDSjtBQUFBLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFc29sdmVTdG9ja0ltYWdlQ29sbGVjdGlvblJlY29yZCB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBFc29sdmVBZGRpdGlvbmFsU3RvY2tJbWFnZSB9IGZyb20gJy4vZXNvbHZlLWFkZGl0aW9uYWwtc3RvY2staW1hZ2UubW9kZWwnO1xyXG5pbXBvcnQgeyBFc29sdmVTdG9ja0ltYWdlIH0gZnJvbSAnLi9lc29sdmUtc3RvY2staW1hZ2UubW9kZWwnO1xyXG5cclxuZXhwb3J0IGNsYXNzIEVzb2x2ZVN0b2NrSW1hZ2VDb2xsZWN0aW9uIHtcclxuICAgIHB1YmxpYyBkZWZhdWx0X2ltYWdlOiBFc29sdmVTdG9ja0ltYWdlO1xyXG4gICAgcHVibGljIGFsdF9pbWFnZXM6IEVzb2x2ZVN0b2NrSW1hZ2VbXSA9IFtdO1xyXG4gICAgcHVibGljIGFkZGl0aW9uYWxfaW1hZ2VzOiBFc29sdmVBZGRpdGlvbmFsU3RvY2tJbWFnZVtdID0gW107XHJcblxyXG4gICAgY29uc3RydWN0b3IocmVjb3JkPzogUGFydGlhbDxFc29sdmVTdG9ja0ltYWdlQ29sbGVjdGlvblJlY29yZD4pIHtcclxuICAgICAgICB0aGlzLmRlZmF1bHRfaW1hZ2UgPSBuZXcgRXNvbHZlU3RvY2tJbWFnZShcclxuICAgICAgICAgICAgcmVjb3JkPy5kZWZhdWx0X2ltYWdlID8/ICcnLFxyXG4gICAgICAgICAgICByZWNvcmQ/LmRlZmF1bHRfaW1hZ2VfbGFzdF9tb2RpZmllZCA/PyAnJyxcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICBpZiAoIXJlY29yZCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAocmVjb3JkLmFsdF9pbWFnZXMgJiYgcmVjb3JkLmFsdF9pbWFnZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGFsdF9pbWFnZV9uYW1lIG9mIHJlY29yZC5hbHRfaW1hZ2VzKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBhbHRfaW1hZ2UgPSBuZXcgRXNvbHZlU3RvY2tJbWFnZShhbHRfaW1hZ2VfbmFtZSk7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5hbHRfaW1hZ2VzLnB1c2goYWx0X2ltYWdlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHJlY29yZC5hZGRpdGlvbmFsX2ltYWdlcyAmJiByZWNvcmQuYWRkaXRpb25hbF9pbWFnZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGFkZGl0aW9uYWxfaW1hZ2VfcmVjb3JkIG9mIHJlY29yZC5hZGRpdGlvbmFsX2ltYWdlcykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgYWRkaXRpb25hbF9pbWFnZSA9IG5ldyBFc29sdmVBZGRpdGlvbmFsU3RvY2tJbWFnZShcclxuICAgICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsX2ltYWdlX3JlY29yZCxcclxuICAgICAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5hZGRpdGlvbmFsX2ltYWdlcy5wdXNoKGFkZGl0aW9uYWxfaW1hZ2UpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59O1xyXG4iXX0=","// Classes\r\nexport * from './esolve-colour.model';\r\nexport * from './esolve-stock-item.model';\r\nexport * from './esolve-stock-price.model';\r\nexport * from './esolve-stock-badge.model';\r\nexport * from './esolve-stock-group.model';\r\nexport * from './esolve-stock-item-base.model';\r\nexport * from './esolve-stock-item-list.model';\r\nexport * from './esolve-stock-group-item.model';\r\nexport * from './esolve-recipe-stock-item.model';\r\nexport * from './esolve-linked-stock-item.model';\r\nexport * from './esolve-dependant-item.model';\r\nexport * from './esolve-stock-lead-times.model';\r\nexport * from './esolve-media-stock-item.model';\r\nexport * from './esolve-stock-image.model';\r\nexport * from './esolve-stock-image-collection.model';\r\nexport * from './esolve-additional-stock-image.model';\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvc3RvY2svY2xhc3Nlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxVQUFVO0FBQ1YsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyx1Q0FBdUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENsYXNzZXNcclxuZXhwb3J0ICogZnJvbSAnLi9lc29sdmUtY29sb3VyLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9lc29sdmUtc3RvY2staXRlbS5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZXNvbHZlLXN0b2NrLXByaWNlLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9lc29sdmUtc3RvY2stYmFkZ2UubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS1zdG9jay1ncm91cC5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZXNvbHZlLXN0b2NrLWl0ZW0tYmFzZS5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZXNvbHZlLXN0b2NrLWl0ZW0tbGlzdC5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZXNvbHZlLXN0b2NrLWdyb3VwLWl0ZW0ubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS1yZWNpcGUtc3RvY2staXRlbS5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZXNvbHZlLWxpbmtlZC1zdG9jay1pdGVtLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9lc29sdmUtZGVwZW5kYW50LWl0ZW0ubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS1zdG9jay1sZWFkLXRpbWVzLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9lc29sdmUtbWVkaWEtc3RvY2staXRlbS5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZXNvbHZlLXN0b2NrLWltYWdlLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9lc29sdmUtc3RvY2staW1hZ2UtY29sbGVjdGlvbi5tb2RlbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZXNvbHZlLWFkZGl0aW9uYWwtc3RvY2staW1hZ2UubW9kZWwnO1xyXG4iXX0=",";\r\nexport {};\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXN0b2NrLWltYWdlLWNvbGxlY3Rpb24tcmVjb3JkLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9zdG9jay9pbnRlcmZhY2VzL2Vzb2x2ZS1zdG9jay1pbWFnZS1jb2xsZWN0aW9uLXJlY29yZC5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVzb2x2ZUFkZGl0aW9uYWxTdG9ja0ltYWdlUmVjb3JkIH0gZnJvbSAnLi9lc29sdmUtYWRkaXRpb25hbC1zdG9jay1pbWFnZS1yZWNvcmQuaW50ZXJmYWNlJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRXNvbHZlU3RvY2tJbWFnZUNvbGxlY3Rpb25SZWNvcmQge1xyXG4gICAgZGVmYXVsdF9pbWFnZTogc3RyaW5nO1xyXG4gICAgZGVmYXVsdF9pbWFnZV9sYXN0X21vZGlmaWVkOiBzdHJpbmc7XHJcbiAgICBhbHRfaW1hZ2VzOiBzdHJpbmdbXTtcclxuICAgIGFkZGl0aW9uYWxfaW1hZ2VzOiBFc29sdmVBZGRpdGlvbmFsU3RvY2tJbWFnZVJlY29yZFtdO1xyXG59O1xyXG4iXX0=","// Interfaces\r\nexport * from './esolve-stock-record.interface';\r\nexport * from './esolve-colour-record.interface';\r\nexport * from './esolve-stock-base-record.interface';\r\nexport * from './esolve-stock-item-options.interface';\r\nexport * from './esolve-stock-badge-record.interface';\r\nexport * from './esolve-recipe-item-record.interface';\r\nexport * from './esolve-stock-filter-options.interface';\r\nexport * from './esolve-recipe-stock-options.interface';\r\nexport * from './esolve-linked-stock-record.interface';\r\nexport * from './esolve-stock-group-item-record.interface';\r\nexport * from './esolve-stock-linked-category-record.interface';\r\nexport * from './esolve-stock-lead-times-record.interface';\r\nexport * from './esolve-stock-image-collection-record.interface';\r\nexport * from './esolve-additional-stock-image-record.interface';\r\nexport * from './esolve-media-stock-item-record.interface';\r\nexport * from './esolve-media-stock-item-options.interface';\r\nexport * from './esolve-dependant-item-record.interface';\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvc3RvY2svaW50ZXJmYWNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxhQUFhO0FBQ2IsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyxrREFBa0QsQ0FBQztBQUNqRSxjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLDBDQUEwQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gSW50ZXJmYWNlc1xyXG5leHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS1zdG9jay1yZWNvcmQuaW50ZXJmYWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9lc29sdmUtY29sb3VyLXJlY29yZC5pbnRlcmZhY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS1zdG9jay1iYXNlLXJlY29yZC5pbnRlcmZhY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS1zdG9jay1pdGVtLW9wdGlvbnMuaW50ZXJmYWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9lc29sdmUtc3RvY2stYmFkZ2UtcmVjb3JkLmludGVyZmFjZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZXNvbHZlLXJlY2lwZS1pdGVtLXJlY29yZC5pbnRlcmZhY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS1zdG9jay1maWx0ZXItb3B0aW9ucy5pbnRlcmZhY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS1yZWNpcGUtc3RvY2stb3B0aW9ucy5pbnRlcmZhY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS1saW5rZWQtc3RvY2stcmVjb3JkLmludGVyZmFjZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZXNvbHZlLXN0b2NrLWdyb3VwLWl0ZW0tcmVjb3JkLmludGVyZmFjZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZXNvbHZlLXN0b2NrLWxpbmtlZC1jYXRlZ29yeS1yZWNvcmQuaW50ZXJmYWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9lc29sdmUtc3RvY2stbGVhZC10aW1lcy1yZWNvcmQuaW50ZXJmYWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9lc29sdmUtc3RvY2staW1hZ2UtY29sbGVjdGlvbi1yZWNvcmQuaW50ZXJmYWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9lc29sdmUtYWRkaXRpb25hbC1zdG9jay1pbWFnZS1yZWNvcmQuaW50ZXJmYWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9lc29sdmUtbWVkaWEtc3RvY2staXRlbS1yZWNvcmQuaW50ZXJmYWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9lc29sdmUtbWVkaWEtc3RvY2staXRlbS1vcHRpb25zLmludGVyZmFjZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZXNvbHZlLWRlcGVuZGFudC1pdGVtLXJlY29yZC5pbnRlcmZhY2UnO1xyXG4iXX0=","import { Inject, Injectable } from '@angular/core';\r\nimport { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { map } from 'rxjs/operators';\r\nimport { ESOLVE_CONNECT_CONFIG } from '../esolve-connect-config.constant';\r\nimport { EsolveList } from '../shared/esolve-list.model';\r\nimport { EsolveFilterFactory, EsolveMultipleSelectFilter, EsolveRangeFilter, EsolveSingleSelectFilter, } from '../shared/filters';\r\nimport { EsolveStockItem, EsolveStockItemList, EsolveMediaStockItem, EsolveRecipeStockItem, EsolveLinkedStockItem, EsolveStockImageCollection, } from './classes';\r\nimport * as i0 from \"@angular/core\";\r\nimport * as i1 from \"@angular/common/http\";\r\nexport class EsolveStockService {\r\n constructor(config, http) {\r\n this.config = config;\r\n this.http = http;\r\n }\r\n /**\r\n * Retrieves the stock record from the eSolve instance using the code.\r\n *\r\n * @param code eSolve stock code\r\n */\r\n getStockItem(code) {\r\n const params = new HttpParams({\r\n fromObject: {\r\n code,\r\n },\r\n });\r\n return this.getStockRecords(params).pipe(map((response) => {\r\n if ((response.records === undefined) ||\r\n (response.records.length <= 0)) {\r\n throw response;\r\n }\r\n const stockRecord = response.records[0];\r\n return this.processStockItem(stockRecord);\r\n }));\r\n }\r\n /**\r\n * Retrieves the stock record from the eSolve instance using the SEF name.\r\n *\r\n * @param sef_name SEF name of the stock item\r\n */\r\n getStockItemFromSEF(sef_name) {\r\n const params = new HttpParams({\r\n fromObject: {\r\n sef_name,\r\n },\r\n });\r\n return this.getStockRecords(params).pipe(map((response) => {\r\n if ((response.records === undefined) ||\r\n (response.records.length <= 0)) {\r\n throw response;\r\n }\r\n const stockRecord = response.records[0];\r\n return this.processStockItem(stockRecord);\r\n }));\r\n }\r\n /**\r\n * Retrieves list of stock from the eSolve instance using info provided\r\n *\r\n * @param options Stock filter options\r\n */\r\n getStockItems(options) {\r\n let params = new HttpParams();\r\n if (options.page) {\r\n params = params.set('page', options.page);\r\n }\r\n if (options.rows) {\r\n params = params.set('rows', options.rows);\r\n }\r\n if (options.sort) {\r\n const sort = options.sort;\r\n if (sort.field) {\r\n params = params.set('sort', sort.field);\r\n }\r\n if (sort.order) {\r\n params = params.set('order', sort.order);\r\n }\r\n }\r\n if (options.search_phrase) {\r\n params = params.set('search_phrase', options.search_phrase);\r\n }\r\n if (options.display_only) {\r\n params = params.set('display_only', options.display_only);\r\n }\r\n if (options.is_active) {\r\n params = params.set('is_active', options.is_active);\r\n }\r\n if (options.category_id) {\r\n params = params.set('category_id', options.category_id);\r\n }\r\n if (options.subcategory_id) {\r\n params = params.set('subcategory_id', options.subcategory_id);\r\n }\r\n if (options.manufacturers_id) {\r\n params = params.set('manufacturers_id', options.manufacturers_id);\r\n }\r\n if (options.ranges_id) {\r\n params = params.set('ranges_id', options.ranges_id);\r\n }\r\n if (options.specials_id) {\r\n params = params.set('specials_id', options.specials_id);\r\n }\r\n if (options.tag_id_list && options.tag_id_list.length > 0) {\r\n params = params.set('tag_id', options.tag_id_list.join(','));\r\n }\r\n if (options.topic_id_list && options.topic_id_list.length > 0) {\r\n params = params.set('topic_id', options.topic_id_list.join(','));\r\n }\r\n if (options.filters) {\r\n let filters = options.filters;\r\n if (!Array.isArray(filters)) {\r\n filters = EsolveFilterFactory.covertFromObj(filters);\r\n }\r\n params = EsolveFilterFactory.convertToHttpParams(filters, params);\r\n }\r\n return this.getStockRecords(params).pipe(map((response) => {\r\n if ((response.records === undefined) ||\r\n (response.records.length <= 0)) {\r\n throw response;\r\n }\r\n const stockItems = [];\r\n response.records.forEach((stockRecord) => {\r\n stockItems.push(this.processStockItem(stockRecord));\r\n });\r\n return new EsolveStockItemList(stockItems, +response.additional_data.total_records, options.page ?? 0);\r\n }));\r\n }\r\n /**\r\n * Retrieves list of stock from the eSolve instance using info provided\r\n *\r\n * @param options Stock filter options\r\n */\r\n getStockItemsTransactionHistory(options) {\r\n let params = new HttpParams();\r\n if (options.page) {\r\n params = params.set('page', options.page);\r\n }\r\n if (options.rows) {\r\n params = params.set('rows', options.rows);\r\n }\r\n if (options.sort) {\r\n const sort = options.sort;\r\n if (sort.field) {\r\n params = params.set('sort', sort.field);\r\n }\r\n if (sort.order) {\r\n params = params.set('order', sort.order);\r\n }\r\n }\r\n if (options.search_phrase) {\r\n params = params.set('search_phrase', options.search_phrase);\r\n }\r\n if (options.display_only) {\r\n params = params.set('display_only', options.display_only);\r\n }\r\n if (options.is_active) {\r\n params = params.set('is_active', options.is_active);\r\n }\r\n if (options.category_id) {\r\n params = params.set('category_id', options.category_id);\r\n }\r\n if (options.subcategory_id) {\r\n params = params.set('subcategory_id', options.subcategory_id);\r\n }\r\n if (options.manufacturers_id) {\r\n params = params.set('manufacturers_id', options.manufacturers_id);\r\n }\r\n if (options.ranges_id) {\r\n params = params.set('ranges_id', options.ranges_id);\r\n }\r\n if (options.specials_id) {\r\n params = params.set('specials_id', options.specials_id);\r\n }\r\n if (options.tag_id_list && options.tag_id_list.length > 0) {\r\n params = params.set('tag_id', options.tag_id_list.join(','));\r\n }\r\n if (options.topic_id_list && options.topic_id_list.length > 0) {\r\n params = params.set('topic_id', options.topic_id_list.join(','));\r\n }\r\n if (options.filters) {\r\n let filters = options.filters;\r\n if (!Array.isArray(filters)) {\r\n filters = EsolveFilterFactory.covertFromObj(filters);\r\n }\r\n params = EsolveFilterFactory.convertToHttpParams(filters, params);\r\n }\r\n return this.getStockHistoryRecords(params).pipe(map((response) => {\r\n if ((response.records === undefined) ||\r\n (response.records.length <= 0)) {\r\n throw response;\r\n }\r\n const stockItems = [];\r\n response.records.forEach((stockRecord) => {\r\n stockItems.push(this.processStockItem(stockRecord));\r\n });\r\n return new EsolveStockItemList(stockItems, +response.additional_data.total_records, options.page ?? 0);\r\n }));\r\n }\r\n /**\r\n * Retrieve list of stock items linked to a stock item from the eSolve API\r\n *\r\n * @param code Stock item code\r\n */\r\n getLinkedItems(code) {\r\n return this.http\r\n .get(`${this.config.api_url}/get-linked-items.php`, { params: { code } })\r\n .pipe(map((response) => {\r\n if ((response.records === undefined) ||\r\n (response.records.length <= 0)) {\r\n throw response;\r\n }\r\n return this.processLinkedItems(response.records);\r\n }));\r\n }\r\n /**\r\n * Retrieve list of stock items on a recipe from the eSolve API\r\n *\r\n * @param code Stock item code\r\n */\r\n getRecipeItems(code, options) {\r\n let params = new HttpParams().set('code', code);\r\n if (options) {\r\n if (options.page) {\r\n params = params.set('page', options.page);\r\n }\r\n if (options.rows) {\r\n params = params.set('rows', options.rows);\r\n }\r\n if (options.sort) {\r\n const sort = options.sort;\r\n if (sort.field) {\r\n params = params.set('sort', sort.field);\r\n }\r\n if (sort.order) {\r\n params = params.set('order', sort.order);\r\n }\r\n }\r\n }\r\n return this.http\r\n .get(`${this.config.api_url}/get-recipe-items.php`, { params })\r\n .pipe(map((response) => {\r\n if ((response.records === undefined) ||\r\n (response.records.length <= 0)) {\r\n throw response;\r\n }\r\n return this.processRecipeItems(response.records);\r\n }));\r\n }\r\n /**\r\n * Retrieve list of stock items linked to a stock item from the eSolve API\r\n *\r\n * @param options Filter options\r\n */\r\n getMediaLinkedItems(options) {\r\n let params = new HttpParams({\r\n fromObject: {\r\n rows: options.rows ?? 0,\r\n page: options.page ?? 0,\r\n ranges_id: options.ranges_id ?? 0,\r\n manufacturers_id: options.manufacturers_id ?? 0,\r\n display_only: options.display_only ?? false,\r\n is_active: options.is_active ?? true,\r\n },\r\n });\r\n if (options.sort) {\r\n const sort = options.sort;\r\n if (sort.field) {\r\n params = params.set('sort', sort.field);\r\n }\r\n if (sort.order) {\r\n params = params.set('order', sort.order);\r\n }\r\n }\r\n if (options.media_identifier) {\r\n params = params.append('media_identifier', options.media_identifier);\r\n }\r\n if (options.media_id) {\r\n params = params.append('media_id', options.media_id);\r\n }\r\n return this.http\r\n .get(`${this.config.api_url}/get-media-linked-items.php`, { params })\r\n .pipe(map((response) => {\r\n if ((response.records === undefined) ||\r\n (response.records.length <= 0)) {\r\n throw response;\r\n }\r\n const items = this.processMediaStockItems(response.records);\r\n return new EsolveList(items, options.page, options.rows, +response.additional_data.total_records);\r\n }));\r\n }\r\n /**\r\n * Retrieves the full image collection of a stock item\r\n *\r\n * @param code Stock item code\r\n */\r\n getStockImageCollection(code) {\r\n return this.http\r\n .get(`${this.config.api_url}/get-item-image-collection.php`, { params: { code } })\r\n .pipe(map((response) => {\r\n if (response.records === undefined) {\r\n throw response;\r\n }\r\n const collection = new EsolveStockImageCollection(response.records);\r\n return collection;\r\n }));\r\n }\r\n getStockFilters(options) {\r\n let params = new HttpParams({\r\n fromObject: {\r\n category_id: options.category_id ?? '',\r\n subcategory_id: options.subcategory_id ?? 0,\r\n ranges_id: options.ranges_id ?? 0,\r\n manufacturers_id: options.manufacturers_id ?? 0,\r\n fields: options.fields.join(','),\r\n },\r\n });\r\n return this.http\r\n .get(`${this.config.api_url}/get-item-filters.php`, { params })\r\n .pipe(map((response) => {\r\n if (response.records === undefined) {\r\n throw response;\r\n }\r\n const filters = [];\r\n for (const record of response.records) {\r\n let filter = null;\r\n if (record.type === 'range') {\r\n filter = new EsolveRangeFilter(record.field, +record.min, +record.max);\r\n }\r\n else if (record.type === 'single') {\r\n filter = new EsolveSingleSelectFilter(record.field, record.values);\r\n }\r\n else if (record.type === 'multiple') {\r\n filter = new EsolveMultipleSelectFilter(record.field, record.values);\r\n }\r\n if (filter) {\r\n filters.push(filter);\r\n }\r\n }\r\n return filters;\r\n }));\r\n }\r\n /**\r\n * Processes the eSolve stock item record and converts it to an object.\r\n *\r\n * @param record eSolve stock item record\r\n */\r\n processStockItem(record) {\r\n return new EsolveStockItem(record);\r\n }\r\n /**\r\n * Processes the linked eSolve stock item records and converts them to objects.\r\n *\r\n * @param records Linked eSolve stock item records\r\n */\r\n processLinkedItems(records) {\r\n const items = [];\r\n if (records.length > 0) {\r\n for (const record of records) {\r\n items.push(new EsolveLinkedStockItem(record));\r\n }\r\n }\r\n return items;\r\n }\r\n /**\r\n * Processes the recipe eSolve stock item records and converts them to objects.\r\n *\r\n * @param records Recipe eSolve stock item records\r\n */\r\n processRecipeItems(records) {\r\n const items = [];\r\n if (records.length > 0) {\r\n for (const record of records) {\r\n items.push(new EsolveRecipeStockItem(record));\r\n }\r\n }\r\n return items;\r\n }\r\n /**\r\n * Processes the linked eSolve stock item records and converts them to objects.\r\n *\r\n * @param records Linked eSolve stock item records\r\n */\r\n processMediaStockItems(records) {\r\n const items = [];\r\n if (records.length > 0) {\r\n for (const record of records) {\r\n items.push(new EsolveMediaStockItem(record));\r\n }\r\n }\r\n return items;\r\n }\r\n /**\r\n * Retrieves stock records from HTTP params.\r\n * @param params HTTP client parameters\r\n */\r\n getStockRecords(params) {\r\n return this.http.get(`${this.config.api_url}/get-items.php`, { params });\r\n }\r\n /**\r\n * Retrieves stock transaction history records from HTTP params.\r\n * @param params HTTP client parameters\r\n */\r\n getStockHistoryRecords(params) {\r\n return this.http.get(`${this.config.api_url}/get-items-transaction-history.php`, { params });\r\n }\r\n}\r\nEsolveStockService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveStockService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });\r\nEsolveStockService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveStockService, providedIn: 'root' });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveStockService, decorators: [{\r\n type: Injectable,\r\n args: [{\r\n providedIn: 'root',\r\n }]\r\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\r\n type: Inject,\r\n args: [ESOLVE_CONNECT_CONFIG]\r\n }] }, { type: i1.HttpClient }]; } });\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXN0b2NrLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvc3RvY2svZXNvbHZlLXN0b2NrLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUc5RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHckMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFMUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBR3pELE9BQU8sRUFDSCxtQkFBbUIsRUFHbkIsMEJBQTBCLEVBQzFCLGlCQUFpQixFQUNqQix3QkFBd0IsR0FDM0IsTUFBTSxtQkFBbUIsQ0FBQztBQWMzQixPQUFPLEVBQ0gsZUFBZSxFQUNmLG1CQUFtQixFQUNuQixvQkFBb0IsRUFDcEIscUJBQXFCLEVBQ3JCLHFCQUFxQixFQUNyQiwwQkFBMEIsR0FDN0IsTUFBTSxXQUFXLENBQUM7OztBQUtuQixNQUFNLE9BQU8sa0JBQWtCO0lBQzNCLFlBQzJDLE1BQTJCLEVBQzFELElBQWdCO1FBRGUsV0FBTSxHQUFOLE1BQU0sQ0FBcUI7UUFDMUQsU0FBSSxHQUFKLElBQUksQ0FBWTtJQUN4QixDQUFDO0lBRUw7Ozs7T0FJRztJQUNJLFlBQVksQ0FBQyxJQUFZO1FBQzVCLE1BQU0sTUFBTSxHQUFHLElBQUksVUFBVSxDQUFDO1lBQzFCLFVBQVUsRUFBRTtnQkFDUixJQUFJO2FBQ1A7U0FDSixDQUFDLENBQUM7UUFFSCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUNwQyxHQUFHLENB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TSxJQUFJLE9BQU8sRUFBRTtnQkFDMUIsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLHFCQUFxQixDQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUM7YUFDcEQ7U0FDSjtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssc0JBQXNCLENBQzFCLE9BQXdDO1FBRXhDLE1BQU0sS0FBSyxHQUE4QixFQUFFLENBQUM7UUFFNUMsSUFBSSxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNwQixLQUFLLE1BQU0sTUFBTSxJQUFJLE9BQU8sRUFBRTtnQkFDMUIsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLG9CQUFvQixDQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUM7YUFDbkQ7U0FDSjtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7O09BR0c7SUFDSyxlQUFlLENBQ25CLE1BQWtCO1FBRWxCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQ2hCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLGdCQUFnQixFQUN0QyxFQUFFLE1BQU0sRUFBRSxDQUNiLENBQUM7SUFDTixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssc0JBQXNCLENBQzFCLE1BQWtCO1FBRWxCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQ2hCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLG9DQUFvQyxFQUMxRCxFQUFFLE1BQU0sRUFBRSxDQUNiLENBQUM7SUFDTixDQUFDOzsrR0EvakJRLGtCQUFrQixrQkFFZixxQkFBcUI7bUhBRnhCLGtCQUFrQixjQUZmLE1BQU07MkZBRVQsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7MEJBR1EsTUFBTTsyQkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuXHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgRXNvbHZlQ29ubmVjdENvbmZpZyB9IGZyb20gJy4uL2Vzb2x2ZS1jb25uZWN0LmNvbmZpZyc7XHJcbmltcG9ydCB7IEVTT0xWRV9DT05ORUNUX0NPTkZJRyB9IGZyb20gJy4uL2Vzb2x2ZS1jb25uZWN0LWNvbmZpZy5jb25zdGFudCc7XHJcblxyXG5pbXBvcnQgeyBFc29sdmVMaXN0IH0gZnJvbSAnLi4vc2hhcmVkL2Vzb2x2ZS1saXN0Lm1vZGVsJztcclxuaW1wb3J0IHsgRXNvbHZlR2V0UmVzcG9uc2UgfSBmcm9tICcuLi9zaGFyZWQvcmVzcG9uc2UnO1xyXG5pbXBvcnQgeyBFc29sdmVDdXN0b21GaWVsZHMgfSBmcm9tICcuLi9zaGFyZWQvY3VzdG9tLWZpZWxkcyc7XHJcbmltcG9ydCB7XHJcbiAgICBFc29sdmVGaWx0ZXJGYWN0b3J5LFxyXG4gICAgRXNvbHZlRmlsdGVyTGlzdCxcclxuICAgIEVzb2x2ZUZpbHRlclJlY29yZExpc3QsXHJcbiAgICBFc29sdmVNdWx0aXBsZVNlbGVjdEZpbHRlcixcclxuICAgIEVzb2x2ZVJhbmdlRmlsdGVyLFxyXG4gICAgRXNvbHZlU2luZ2xlU2VsZWN0RmlsdGVyLFxyXG59IGZyb20gJy4uL3NoYXJlZC9maWx0ZXJzJztcclxuXHJcbmltcG9ydCB7IEVzb2x2ZU1lZGlhU3RvY2tJdGVtTGlzdCB9IGZyb20gJy4vdHlwZXMnO1xyXG5pbXBvcnQge1xyXG4gICAgRXNvbHZlU3RvY2tSZWNvcmQsXHJcbiAgICBFc29sdmVTdG9ja0l0ZW1PcHRpb25zLFxyXG4gICAgRXNvbHZlUmVjaXBlSXRlbVJlY29yZCxcclxuICAgIEVzb2x2ZUxpbmtlZFN0b2NrUmVjb3JkLFxyXG4gICAgRXNvbHZlUmVjaXBlU3RvY2tPcHRpb25zLFxyXG4gICAgRXNvbHZlTWVkaWFTdG9ja0l0ZW1SZWNvcmQsXHJcbiAgICBFc29sdmVNZWRpYVN0b2NrSXRlbU9wdGlvbnMsXHJcbiAgICBFc29sdmVTdG9ja0ltYWdlQ29sbGVjdGlvblJlY29yZCxcclxuICAgIEVzb2x2ZVN0b2NrRmlsdGVyT3B0aW9ucyxcclxufSBmcm9tICcuL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQge1xyXG4gICAgRXNvbHZlU3RvY2tJdGVtLFxyXG4gICAgRXNvbHZlU3RvY2tJdGVtTGlzdCxcclxuICAgIEVzb2x2ZU1lZGlhU3RvY2tJdGVtLFxyXG4gICAgRXNvbHZlUmVjaXBlU3RvY2tJdGVtLFxyXG4gICAgRXNvbHZlTGlua2VkU3RvY2tJdGVtLFxyXG4gICAgRXNvbHZlU3RvY2tJbWFnZUNvbGxlY3Rpb24sXHJcbn0gZnJvbSAnLi9jbGFzc2VzJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEVzb2x2ZVN0b2NrU2VydmljZTxUIGV4dGVuZHMgRXNvbHZlQ3VzdG9tRmllbGRzID0gRXNvbHZlQ3VzdG9tRmllbGRzPiB7XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBASW5qZWN0KEVTT0xWRV9DT05ORUNUX0NPTkZJRykgcHJpdmF0ZSBjb25maWc6IEVzb2x2ZUNvbm5lY3RDb25maWcsXHJcbiAgICAgICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgKSB7IH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHJpZXZlcyB0aGUgc3RvY2sgcmVjb3JkIGZyb20gdGhlIGVTb2x2ZSBpbnN0YW5jZSB1c2luZyB0aGUgY29kZS5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gY29kZSBlU29sdmUgc3RvY2sgY29kZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0U3RvY2tJdGVtKGNvZGU6IHN0cmluZyk6IE9ic2VydmFibGU8RXNvbHZlU3RvY2tJdGVtPFQ+PiB7XHJcbiAgICAgICAgY29uc3QgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoe1xyXG4gICAgICAgICAgICBmcm9tT2JqZWN0OiB7XHJcbiAgICAgICAgICAgICAgICBjb2RlLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRTdG9ja1JlY29yZHMocGFyYW1zKS5waXBlKFxyXG4gICAgICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgICAgKHJlc3BvbnNlLnJlY29yZHMgPT09IHVuZGVmaW5lZCkgfHxcclxuICAgICAgICAgICAgICAgICAgICAocmVzcG9uc2UucmVjb3Jkcy5sZW5ndGggPD0gMClcclxuICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGNvbnN0IHN0b2NrUmVjb3JkID0gcmVzcG9uc2UucmVjb3Jkc1swXTtcclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzU3RvY2tJdGVtKHN0b2NrUmVjb3JkKTtcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHJpZXZlcyB0aGUgc3RvY2sgcmVjb3JkIGZyb20gdGhlIGVTb2x2ZSBpbnN0YW5jZSB1c2luZyB0aGUgU0VGIG5hbWUuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHNlZl9uYW1lIFNFRiBuYW1lIG9mIHRoZSBzdG9jayBpdGVtXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRTdG9ja0l0ZW1Gcm9tU0VGKHNlZl9uYW1lOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEVzb2x2ZVN0b2NrSXRlbTxUPj4ge1xyXG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKHtcclxuICAgICAgICAgICAgZnJvbU9iamVjdDoge1xyXG4gICAgICAgICAgICAgICAgc2VmX25hbWUsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmdldFN0b2NrUmVjb3JkcyhwYXJhbXMpLnBpcGUoXHJcbiAgICAgICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgICAgICAocmVzcG9uc2UucmVjb3JkcyA9PT0gdW5kZWZpbmVkKSB8fFxyXG4gICAgICAgICAgICAgICAgICAgIChyZXNwb25zZS5yZWNvcmRzLmxlbmd0aCA8PSAwKVxyXG4gICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgY29uc3Qgc3RvY2tSZWNvcmQgPSByZXNwb25zZS5yZWNvcmRzWzBdO1xyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NTdG9ja0l0ZW0oc3RvY2tSZWNvcmQpO1xyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0cmlldmVzIGxpc3Qgb2Ygc3RvY2sgZnJvbSB0aGUgZVNvbHZlIGluc3RhbmNlIHVzaW5nIGluZm8gcHJvdmlkZWRcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gb3B0aW9ucyBTdG9jayBmaWx0ZXIgb3B0aW9uc1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0U3RvY2tJdGVtcyhcclxuICAgICAgICBvcHRpb25zOiBFc29sdmVTdG9ja0l0ZW1PcHRpb25zLFxyXG4gICAgKTogT2JzZXJ2YWJsZTxFc29sdmVTdG9ja0l0ZW1MaXN0PFQ+PiB7XHJcbiAgICAgICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCk7XHJcblxyXG4gICAgICAgIGlmIChvcHRpb25zLnBhZ2UpIHtcclxuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgncGFnZScsIG9wdGlvbnMucGFnZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAob3B0aW9ucy5yb3dzKSB7XHJcbiAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ3Jvd3MnLCBvcHRpb25zLnJvd3MpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKG9wdGlvbnMuc29ydCkge1xyXG4gICAgICAgICAgICBjb25zdCBzb3J0ID0gb3B0aW9ucy5zb3J0O1xyXG5cclxuICAgICAgICAgICAgaWYgKHNvcnQuZmllbGQpIHtcclxuICAgICAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ3NvcnQnLCBzb3J0LmZpZWxkKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKHNvcnQub3JkZXIpIHtcclxuICAgICAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ29yZGVyJywgc29ydC5vcmRlcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChvcHRpb25zLnNlYXJjaF9waHJhc2UpIHtcclxuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnc2VhcmNoX3BocmFzZScsIG9wdGlvbnMuc2VhcmNoX3BocmFzZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAob3B0aW9ucy5kaXNwbGF5X29ubHkpIHtcclxuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnZGlzcGxheV9vbmx5Jywgb3B0aW9ucy5kaXNwbGF5X29ubHkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKG9wdGlvbnMuaXNfYWN0aXZlKSB7XHJcbiAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ2lzX2FjdGl2ZScsIG9wdGlvbnMuaXNfYWN0aXZlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChvcHRpb25zLmNhdGVnb3J5X2lkKSB7XHJcbiAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ2NhdGVnb3J5X2lkJywgb3B0aW9ucy5jYXRlZ29yeV9pZCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAob3B0aW9ucy5zdWJjYXRlZ29yeV9pZCkge1xyXG4gICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdzdWJjYXRlZ29yeV9pZCcsIG9wdGlvbnMuc3ViY2F0ZWdvcnlfaWQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKG9wdGlvbnMubWFudWZhY3R1cmVyc19pZCkge1xyXG4gICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdtYW51ZmFjdHVyZXJzX2lkJywgb3B0aW9ucy5tYW51ZmFjdHVyZXJzX2lkKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChvcHRpb25zLnJhbmdlc19pZCkge1xyXG4gICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdyYW5nZXNfaWQnLCBvcHRpb25zLnJhbmdlc19pZCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAob3B0aW9ucy5zcGVjaWFsc19pZCkge1xyXG4gICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdzcGVjaWFsc19pZCcsIG9wdGlvbnMuc3BlY2lhbHNfaWQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKG9wdGlvbnMudGFnX2lkX2xpc3QgJiYgb3B0aW9ucy50YWdfaWRfbGlzdC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ3RhZ19pZCcsIG9wdGlvbnMudGFnX2lkX2xpc3Quam9pbignLCcpKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChvcHRpb25zLnRvcGljX2lkX2xpc3QgJiYgb3B0aW9ucy50b3BpY19pZF9saXN0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgndG9waWNfaWQnLCBvcHRpb25zLnRvcGljX2lkX2xpc3Quam9pbignLCcpKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChvcHRpb25zLmZpbHRlcnMpIHtcclxuICAgICAgICAgICAgbGV0IGZpbHRlcnMgPSBvcHRpb25zLmZpbHRlcnM7XHJcblxyXG4gICAgICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkoZmlsdGVycykpIHtcclxuICAgICAgICAgICAgICAgIGZpbHRlcnMgPSBFc29sdmVGaWx0ZXJGYWN0b3J5LmNvdmVydEZyb21PYmooZmlsdGVycyk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHBhcmFtcyA9IEVzb2x2ZUZpbHRlckZhY3RvcnkuY29udmVydFRvSHR0cFBhcmFtcyhmaWx0ZXJzLCBwYXJhbXMpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U3RvY2tSZWNvcmRzKHBhcmFtcykucGlwZShcclxuICAgICAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICAgIChyZXNwb25zZS5yZWNvcmRzID09PSB1bmRlZmluZWQpIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgKHJlc3BvbnNlLnJlY29yZHMubGVuZ3RoIDw9IDApXHJcbiAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgICB0aHJvdyByZXNwb25zZTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBjb25zdCBzdG9ja0l0ZW1zOiBFc29sdmVTdG9ja0l0ZW08VD5bXSA9IFtdO1xyXG5cclxuICAgICAgICAgICAgICAgIHJlc3BvbnNlLnJlY29yZHMuZm9yRWFjaCgoc3RvY2tSZWNvcmQpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBzdG9ja0l0ZW1zLnB1c2godGhpcy5wcm9jZXNzU3RvY2tJdGVtKHN0b2NrUmVjb3JkKSk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEVzb2x2ZVN0b2NrSXRlbUxpc3QoXHJcbiAgICAgICAgICAgICAgICAgICAgc3RvY2tJdGVtcyxcclxuICAgICAgICAgICAgICAgICAgICArcmVzcG9uc2UuYWRkaXRpb25hbF9kYXRhLnRvdGFsX3JlY29yZHMsXHJcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy5wYWdlID8/IDAsXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0cmlldmVzIGxpc3Qgb2Ygc3RvY2sgZnJvbSB0aGUgZVNvbHZlIGluc3RhbmNlIHVzaW5nIGluZm8gcHJvdmlkZWRcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gb3B0aW9ucyBTdG9jayBmaWx0ZXIgb3B0aW9uc1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0U3RvY2tJdGVtc1RyYW5zYWN0aW9uSGlzdG9yeShcclxuICAgICAgICBvcHRpb25zOiBFc29sdmVTdG9ja0l0ZW1PcHRpb25zLFxyXG4gICAgKTogT2JzZXJ2YWJsZTxFc29sdmVTdG9ja0l0ZW1MaXN0PFQ+PiB7XHJcbiAgICAgICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCk7XHJcblxyXG4gICAgICAgIGlmIChvcHRpb25zLnBhZ2UpIHtcclxuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgncGFnZScsIG9wdGlvbnMucGFnZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAob3B0aW9ucy5yb3dzKSB7XHJcbiAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ3Jvd3MnLCBvcHRpb25zLnJvd3MpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKG9wdGlvbnMuc29ydCkge1xyXG4gICAgICAgICAgICBjb25zdCBzb3J0ID0gb3B0aW9ucy5zb3J0O1xyXG5cclxuICAgICAgICAgICAgaWYgKHNvcnQuZmllbGQpIHtcclxuICAgICAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ3NvcnQnLCBzb3J0LmZpZWxkKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKHNvcnQub3JkZXIpIHtcclxuICAgICAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ29yZGVyJywgc29ydC5vcmRlcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChvcHRpb25zLnNlYXJjaF9waHJhc2UpIHtcclxuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnc2VhcmNoX3BocmFzZScsIG9wdGlvbnMuc2VhcmNoX3BocmFzZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAob3B0aW9ucy5kaXNwbGF5X29ubHkpIHtcclxuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnZGlzcGxheV9vbmx5Jywgb3B0aW9ucy5kaXNwbGF5X29ubHkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKG9wdGlvbnMuaXNfYWN0aXZlKSB7XHJcbiAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ2lzX2FjdGl2ZScsIG9wdGlvbnMuaXNfYWN0aXZlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChvcHRpb25zLmNhdGVnb3J5X2lkKSB7XHJcbiAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ2NhdGVnb3J5X2lkJywgb3B0aW9ucy5jYXRlZ29yeV9pZCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAob3B0aW9ucy5zdWJjYXRlZ29yeV9pZCkge1xyXG4gICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdzdWJjYXRlZ29yeV9pZCcsIG9wdGlvbnMuc3ViY2F0ZWdvcnlfaWQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKG9wdGlvbnMubWFudWZhY3R1cmVyc19pZCkge1xyXG4gICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdtYW51ZmFjdHVyZXJzX2lkJywgb3B0aW9ucy5tYW51ZmFjdHVyZXJzX2lkKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChvcHRpb25zLnJhbmdlc19pZCkge1xyXG4gICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdyYW5nZXNfaWQnLCBvcHRpb25zLnJhbmdlc19pZCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAob3B0aW9ucy5zcGVjaWFsc19pZCkge1xyXG4gICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdzcGVjaWFsc19pZCcsIG9wdGlvbnMuc3BlY2lhbHNfaWQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKG9wdGlvbnMudGFnX2lkX2xpc3QgJiYgb3B0aW9ucy50YWdfaWRfbGlzdC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ3RhZ19pZCcsIG9wdGlvbnMudGFnX2lkX2xpc3Quam9pbignLCcpKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChvcHRpb25zLnRvcGljX2lkX2xpc3QgJiYgb3B0aW9ucy50b3BpY19pZF9saXN0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgndG9waWNfaWQnLCBvcHRpb25zLnRvcGljX2lkX2xpc3Quam9pbignLCcpKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChvcHRpb25zLmZpbHRlcnMpIHtcclxuICAgICAgICAgICAgbGV0IGZpbHRlcnMgPSBvcHRpb25zLmZpbHRlcnM7XHJcblxyXG4gICAgICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkoZmlsdGVycykpIHtcclxuICAgICAgICAgICAgICAgIGZpbHRlcnMgPSBFc29sdmVGaWx0ZXJGYWN0b3J5LmNvdmVydEZyb21PYmooZmlsdGVycyk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHBhcmFtcyA9IEVzb2x2ZUZpbHRlckZhY3RvcnkuY29udmVydFRvSHR0cFBhcmFtcyhmaWx0ZXJzLCBwYXJhbXMpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U3RvY2tIaXN0b3J5UmVjb3JkcyhwYXJhbXMpLnBpcGUoXHJcbiAgICAgICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgICAgICAocmVzcG9uc2UucmVjb3JkcyA9PT0gdW5kZWZpbmVkKSB8fFxyXG4gICAgICAgICAgICAgICAgICAgIChyZXNwb25zZS5yZWNvcmRzLmxlbmd0aCA8PSAwKVxyXG4gICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgY29uc3Qgc3RvY2tJdGVtczogRXNvbHZlU3RvY2tJdGVtPFQ+W10gPSBbXTtcclxuXHJcbiAgICAgICAgICAgICAgICByZXNwb25zZS5yZWNvcmRzLmZvckVhY2goKHN0b2NrUmVjb3JkKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgc3RvY2tJdGVtcy5wdXNoKHRoaXMucHJvY2Vzc1N0b2NrSXRlbShzdG9ja1JlY29yZCkpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBFc29sdmVTdG9ja0l0ZW1MaXN0KFxyXG4gICAgICAgICAgICAgICAgICAgIHN0b2NrSXRlbXMsXHJcbiAgICAgICAgICAgICAgICAgICAgK3Jlc3BvbnNlLmFkZGl0aW9uYWxfZGF0YS50b3RhbF9yZWNvcmRzLFxyXG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbnMucGFnZSA/PyAwLFxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHJpZXZlIGxpc3Qgb2Ygc3RvY2sgaXRlbXMgbGlua2VkIHRvIGEgc3RvY2sgaXRlbSBmcm9tIHRoZSBlU29sdmUgQVBJXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGNvZGUgU3RvY2sgaXRlbSBjb2RlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRMaW5rZWRJdGVtcyhcclxuICAgICAgICBjb2RlOiBzdHJpbmcsXHJcbiAgICApOiBPYnNlcnZhYmxlPEVzb2x2ZUxpbmtlZFN0b2NrSXRlbTxUPltdPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAgICAgICAuZ2V0PEVzb2x2ZUdldFJlc3BvbnNlPEVzb2x2ZUxpbmtlZFN0b2NrUmVjb3JkPFQ+W10+PihcclxuICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L2dldC1saW5rZWQtaXRlbXMucGhwYCxcclxuICAgICAgICAgICAgICAgIHsgcGFyYW1zOiB7IGNvZGUgfSB9LFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgKHJlc3BvbnNlLnJlY29yZHMgPT09IHVuZGVmaW5lZCkgfHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgKHJlc3BvbnNlLnJlY29yZHMubGVuZ3RoIDw9IDApXHJcbiAgICAgICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc0xpbmtlZEl0ZW1zKHJlc3BvbnNlLnJlY29yZHMpO1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXRyaWV2ZSBsaXN0IG9mIHN0b2NrIGl0ZW1zIG9uIGEgcmVjaXBlIGZyb20gdGhlIGVTb2x2ZSBBUElcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gY29kZSBTdG9jayBpdGVtIGNvZGVcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldFJlY2lwZUl0ZW1zKFxyXG4gICAgICAgIGNvZGU6IHN0cmluZyxcclxuICAgICAgICBvcHRpb25zPzogRXNvbHZlUmVjaXBlU3RvY2tPcHRpb25zLFxyXG4gICAgKTogT2JzZXJ2YWJsZTxFc29sdmVSZWNpcGVTdG9ja0l0ZW08VD5bXT4ge1xyXG4gICAgICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpLnNldCgnY29kZScsIGNvZGUpO1xyXG5cclxuICAgICAgICBpZiAob3B0aW9ucykge1xyXG4gICAgICAgICAgICBpZiAob3B0aW9ucy5wYWdlKSB7XHJcbiAgICAgICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdwYWdlJywgb3B0aW9ucy5wYWdlKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKG9wdGlvbnMucm93cykge1xyXG4gICAgICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgncm93cycsIG9wdGlvbnMucm93cyk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChvcHRpb25zLnNvcnQpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHNvcnQgPSBvcHRpb25zLnNvcnQ7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHNvcnQuZmllbGQpIHtcclxuICAgICAgICAgICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdzb3J0Jywgc29ydC5maWVsZCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHNvcnQub3JkZXIpIHtcclxuICAgICAgICAgICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdvcmRlcicsIHNvcnQub3JkZXIpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgICAgICAgIC5nZXQ8RXNvbHZlR2V0UmVzcG9uc2U8RXNvbHZlUmVjaXBlSXRlbVJlY29yZDxUPltdPj4oXHJcbiAgICAgICAgICAgICAgICBgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9nZXQtcmVjaXBlLWl0ZW1zLnBocGAsXHJcbiAgICAgICAgICAgICAgICB7IHBhcmFtcyB9LFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgKHJlc3BvbnNlLnJlY29yZHMgPT09IHVuZGVmaW5lZCkgfHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgKHJlc3BvbnNlLnJlY29yZHMubGVuZ3RoIDw9IDApXHJcbiAgICAgICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc1JlY2lwZUl0ZW1zKHJlc3BvbnNlLnJlY29yZHMpO1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXRyaWV2ZSBsaXN0IG9mIHN0b2NrIGl0ZW1zIGxpbmtlZCB0byBhIHN0b2NrIGl0ZW0gZnJvbSB0aGUgZVNvbHZlIEFQSVxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBvcHRpb25zIEZpbHRlciBvcHRpb25zXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRNZWRpYUxpbmtlZEl0ZW1zKFxyXG4gICAgICAgIG9wdGlvbnM6IEVzb2x2ZU1lZGlhU3RvY2tJdGVtT3B0aW9ucyxcclxuICAgICk6IE9ic2VydmFibGU8RXNvbHZlTWVkaWFTdG9ja0l0ZW1MaXN0PFQ+PiB7XHJcbiAgICAgICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKHtcclxuICAgICAgICAgICAgZnJvbU9iamVjdDoge1xyXG4gICAgICAgICAgICAgICAgcm93czogb3B0aW9ucy5yb3dzID8/IDAsXHJcbiAgICAgICAgICAgICAgICBwYWdlOiBvcHRpb25zLnBhZ2UgPz8gMCxcclxuICAgICAgICAgICAgICAgIHJhbmdlc19pZDogb3B0aW9ucy5yYW5nZXNfaWQgPz8gMCxcclxuICAgICAgICAgICAgICAgIG1hbnVmYWN0dXJlcnNfaWQ6IG9wdGlvbnMubWFudWZhY3R1cmVyc19pZCA/PyAwLFxyXG4gICAgICAgICAgICAgICAgZGlzcGxheV9vbmx5OiBvcHRpb25zLmRpc3BsYXlfb25seSA/PyBmYWxzZSxcclxuICAgICAgICAgICAgICAgIGlzX2FjdGl2ZTogb3B0aW9ucy5pc19hY3RpdmUgPz8gdHJ1ZSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgaWYgKG9wdGlvbnMuc29ydCkge1xyXG4gICAgICAgICAgICBjb25zdCBzb3J0ID0gb3B0aW9ucy5zb3J0O1xyXG5cclxuICAgICAgICAgICAgaWYgKHNvcnQuZmllbGQpIHtcclxuICAgICAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ3NvcnQnLCBzb3J0LmZpZWxkKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKHNvcnQub3JkZXIpIHtcclxuICAgICAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ29yZGVyJywgc29ydC5vcmRlcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChvcHRpb25zLm1lZGlhX2lkZW50aWZpZXIpIHtcclxuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZCgnbWVkaWFfaWRlbnRpZmllcicsIG9wdGlvbnMubWVkaWFfaWRlbnRpZmllcik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAob3B0aW9ucy5tZWRpYV9pZCkge1xyXG4gICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKCdtZWRpYV9pZCcsIG9wdGlvbnMubWVkaWFfaWQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAgICAgICAuZ2V0PEVzb2x2ZUdldFJlc3BvbnNlPEVzb2x2ZU1lZGlhU3RvY2tJdGVtUmVjb3JkPFQ+W10+PihcclxuICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L2dldC1tZWRpYS1saW5rZWQtaXRlbXMucGhwYCxcclxuICAgICAgICAgICAgICAgIHsgcGFyYW1zIH0sXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAocmVzcG9uc2UucmVjb3JkcyA9PT0gdW5kZWZpbmVkKSB8fFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAocmVzcG9uc2UucmVjb3Jkcy5sZW5ndGggPD0gMClcclxuICAgICAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBpdGVtcyA9IHRoaXMucHJvY2Vzc01lZGlhU3RvY2tJdGVtcyhyZXNwb25zZS5yZWNvcmRzKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBFc29sdmVMaXN0KFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtcyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy5wYWdlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zLnJvd3MsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICtyZXNwb25zZS5hZGRpdGlvbmFsX2RhdGEudG90YWxfcmVjb3JkcyxcclxuICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXRyaWV2ZXMgdGhlIGZ1bGwgaW1hZ2UgY29sbGVjdGlvbiBvZiBhIHN0b2NrIGl0ZW1cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gY29kZSBTdG9jayBpdGVtIGNvZGVcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldFN0b2NrSW1hZ2VDb2xsZWN0aW9uKGNvZGU6IHN0cmluZyk6IE9ic2VydmFibGU8RXNvbHZlU3RvY2tJbWFnZUNvbGxlY3Rpb24+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgICAgICAgIC5nZXQ8RXNvbHZlR2V0UmVzcG9uc2U8RXNvbHZlU3RvY2tJbWFnZUNvbGxlY3Rpb25SZWNvcmQ+PihcclxuICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L2dldC1pdGVtLWltYWdlLWNvbGxlY3Rpb24ucGhwYCxcclxuICAgICAgICAgICAgICAgIHsgcGFyYW1zOiB7IGNvZGUgfSB9LFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5yZWNvcmRzID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb2xsZWN0aW9uID0gbmV3IEVzb2x2ZVN0b2NrSW1hZ2VDb2xsZWN0aW9uKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZS5yZWNvcmRzLFxyXG4gICAgICAgICAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjb2xsZWN0aW9uO1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldFN0b2NrRmlsdGVycyhvcHRpb25zOiBFc29sdmVTdG9ja0ZpbHRlck9wdGlvbnMpOiBPYnNlcnZhYmxlPEVzb2x2ZUZpbHRlckxpc3Q+IHtcclxuICAgICAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoe1xyXG4gICAgICAgICAgICBmcm9tT2JqZWN0OiB7XHJcbiAgICAgICAgICAgICAgICBjYXRlZ29yeV9pZDogb3B0aW9ucy5jYXRlZ29yeV9pZCA/PyAnJyxcclxuICAgICAgICAgICAgICAgIHN1YmNhdGVnb3J5X2lkOiBvcHRpb25zLnN1YmNhdGVnb3J5X2lkID8/IDAsXHJcbiAgICAgICAgICAgICAgICByYW5nZXNfaWQ6IG9wdGlvbnMucmFuZ2VzX2lkID8/IDAsXHJcbiAgICAgICAgICAgICAgICBtYW51ZmFjdHVyZXJzX2lkOiBvcHRpb25zLm1hbnVmYWN0dXJlcnNfaWQgPz8gMCxcclxuICAgICAgICAgICAgICAgIGZpZWxkczogb3B0aW9ucy5maWVsZHMuam9pbignLCcpLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgICAgICAgIC5nZXQ8RXNvbHZlR2V0UmVzcG9uc2U8RXNvbHZlRmlsdGVyUmVjb3JkTGlzdD4+KFxyXG4gICAgICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vZ2V0LWl0ZW0tZmlsdGVycy5waHBgLFxyXG4gICAgICAgICAgICAgICAgeyBwYXJhbXMgfSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UucmVjb3JkcyA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZmlsdGVycyA9IFtdO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHJlY29yZCBvZiByZXNwb25zZS5yZWNvcmRzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBmaWx0ZXIgPSBudWxsO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlY29yZC50eXBlID09PSAncmFuZ2UnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIgPSBuZXcgRXNvbHZlUmFuZ2VGaWx0ZXIocmVjb3JkLmZpZWxkLCArcmVjb3JkLm1pbiwgK3JlY29yZC5tYXgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHJlY29yZC50eXBlID09PSAnc2luZ2xlJykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyID0gbmV3IEVzb2x2ZVNpbmdsZVNlbGVjdEZpbHRlcihyZWNvcmQuZmllbGQsIHJlY29yZC52YWx1ZXMpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHJlY29yZC50eXBlID09PSAnbXVsdGlwbGUnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIgPSBuZXcgRXNvbHZlTXVsdGlwbGVTZWxlY3RGaWx0ZXIocmVjb3JkLmZpZWxkLCByZWNvcmQudmFsdWVzKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZpbHRlcikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVycy5wdXNoKGZpbHRlcik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmaWx0ZXJzO1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQcm9jZXNzZXMgdGhlIGVTb2x2ZSBzdG9jayBpdGVtIHJlY29yZCBhbmQgY29udmVydHMgaXQgdG8gYW4gb2JqZWN0LlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSByZWNvcmQgZVNvbHZlIHN0b2NrIGl0ZW0gcmVjb3JkXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgcHJvY2Vzc1N0b2NrSXRlbShyZWNvcmQ6IEVzb2x2ZVN0b2NrUmVjb3JkPFQ+KTogRXNvbHZlU3RvY2tJdGVtPFQ+IHtcclxuICAgICAgICByZXR1cm4gbmV3IEVzb2x2ZVN0b2NrSXRlbTxUPihyZWNvcmQpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUHJvY2Vzc2VzIHRoZSBsaW5rZWQgZVNvbHZlIHN0b2NrIGl0ZW0gcmVjb3JkcyBhbmQgY29udmVydHMgdGhlbSB0byBvYmplY3RzLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSByZWNvcmRzIExpbmtlZCBlU29sdmUgc3RvY2sgaXRlbSByZWNvcmRzXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgcHJvY2Vzc0xpbmtlZEl0ZW1zKFxyXG4gICAgICAgIHJlY29yZHM6IEVzb2x2ZUxpbmtlZFN0b2NrUmVjb3JkPFQ+W10sXHJcbiAgICApOiBFc29sdmVMaW5rZWRTdG9ja0l0ZW08VD5bXSB7XHJcbiAgICAgICAgY29uc3QgaXRlbXM6IEVzb2x2ZUxpbmtlZFN0b2NrSXRlbTxUPltdID0gW107XHJcblxyXG4gICAgICAgIGlmIChyZWNvcmRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgZm9yIChjb25zdCByZWNvcmQgb2YgcmVjb3Jkcykge1xyXG4gICAgICAgICAgICAgICAgaXRlbXMucHVzaChuZXcgRXNvbHZlTGlua2VkU3RvY2tJdGVtPFQ+KHJlY29yZCkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gaXRlbXM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQcm9jZXNzZXMgdGhlIHJlY2lwZSBlU29sdmUgc3RvY2sgaXRlbSByZWNvcmRzIGFuZCBjb252ZXJ0cyB0aGVtIHRvIG9iamVjdHMuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHJlY29yZHMgUmVjaXBlIGVTb2x2ZSBzdG9jayBpdGVtIHJlY29yZHNcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBwcm9jZXNzUmVjaXBlSXRlbXMoXHJcbiAgICAgICAgcmVjb3JkczogRXNvbHZlUmVjaXBlSXRlbVJlY29yZDxUPltdLFxyXG4gICAgKTogRXNvbHZlUmVjaXBlU3RvY2tJdGVtPFQ+W10ge1xyXG4gICAgICAgIGNvbnN0IGl0ZW1zOiBFc29sdmVSZWNpcGVTdG9ja0l0ZW08VD5bXSA9IFtdO1xyXG5cclxuICAgICAgICBpZiAocmVjb3Jkcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgcmVjb3JkIG9mIHJlY29yZHMpIHtcclxuICAgICAgICAgICAgICAgIGl0ZW1zLnB1c2gobmV3IEVzb2x2ZVJlY2lwZVN0b2NrSXRlbTxUPihyZWNvcmQpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGl0ZW1zO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUHJvY2Vzc2VzIHRoZSBsaW5rZWQgZVNvbHZlIHN0b2NrIGl0ZW0gcmVjb3JkcyBhbmQgY29udmVydHMgdGhlbSB0byBvYmplY3RzLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSByZWNvcmRzIExpbmtlZCBlU29sdmUgc3RvY2sgaXRlbSByZWNvcmRzXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgcHJvY2Vzc01lZGlhU3RvY2tJdGVtcyhcclxuICAgICAgICByZWNvcmRzOiBFc29sdmVNZWRpYVN0b2NrSXRlbVJlY29yZDxUPltdLFxyXG4gICAgKTogRXNvbHZlTWVkaWFTdG9ja0l0ZW08VD5bXSB7XHJcbiAgICAgICAgY29uc3QgaXRlbXM6IEVzb2x2ZU1lZGlhU3RvY2tJdGVtPFQ+W10gPSBbXTtcclxuXHJcbiAgICAgICAgaWYgKHJlY29yZHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IHJlY29yZCBvZiByZWNvcmRzKSB7XHJcbiAgICAgICAgICAgICAgICBpdGVtcy5wdXNoKG5ldyBFc29sdmVNZWRpYVN0b2NrSXRlbTxUPihyZWNvcmQpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGl0ZW1zO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0cmlldmVzIHN0b2NrIHJlY29yZHMgZnJvbSBIVFRQIHBhcmFtcy5cclxuICAgICAqIEBwYXJhbSBwYXJhbXMgSFRUUCBjbGllbnQgcGFyYW1ldGVyc1xyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGdldFN0b2NrUmVjb3JkcyhcclxuICAgICAgICBwYXJhbXM6IEh0dHBQYXJhbXMsXHJcbiAgICApOiBPYnNlcnZhYmxlPEVzb2x2ZUdldFJlc3BvbnNlPEVzb2x2ZVN0b2NrUmVjb3JkPFQ+W10+PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8RXNvbHZlR2V0UmVzcG9uc2U8RXNvbHZlU3RvY2tSZWNvcmQ8VD5bXT4+KFxyXG4gICAgICAgICAgICBgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9nZXQtaXRlbXMucGhwYCxcclxuICAgICAgICAgICAgeyBwYXJhbXMgfSxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0cmlldmVzIHN0b2NrIHRyYW5zYWN0aW9uIGhpc3RvcnkgcmVjb3JkcyBmcm9tIEhUVFAgcGFyYW1zLlxyXG4gICAgICogQHBhcmFtIHBhcmFtcyBIVFRQIGNsaWVudCBwYXJhbWV0ZXJzXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgZ2V0U3RvY2tIaXN0b3J5UmVjb3JkcyhcclxuICAgICAgICBwYXJhbXM6IEh0dHBQYXJhbXMsXHJcbiAgICApOiBPYnNlcnZhYmxlPEVzb2x2ZUdldFJlc3BvbnNlPEVzb2x2ZVN0b2NrUmVjb3JkPFQ+W10+PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8RXNvbHZlR2V0UmVzcG9uc2U8RXNvbHZlU3RvY2tSZWNvcmQ8VD5bXT4+KFxyXG4gICAgICAgICAgICBgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9nZXQtaXRlbXMtdHJhbnNhY3Rpb24taGlzdG9yeS5waHBgLFxyXG4gICAgICAgICAgICB7IHBhcmFtcyB9LFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG5cclxufVxyXG4iXX0=","export class EsolveSpecialImage {\r\n constructor(record) {\r\n this.id = +record.id;\r\n this.width = +record.width;\r\n this.height = +record.height;\r\n this.src = record.src;\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXNwZWNpYWwtaW1hZ2UubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvc3BlY2lhbHMvZXNvbHZlLXNwZWNpYWwtaW1hZ2UubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLGtCQUFrQjtJQU0zQixZQUFZLE1BQWdDO1FBQ3hDLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQzNCLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO1FBQzdCLElBQUksQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQztJQUMxQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFc29sdmVTcGVjaWFsSW1hZ2VSZWNvcmQgfSBmcm9tICcuL2Vzb2x2ZS1zcGVjaWFsLWltYWdlLXJlY29yZC5pbnRlcmZhY2UnO1xyXG5cclxuZXhwb3J0IGNsYXNzIEVzb2x2ZVNwZWNpYWxJbWFnZSB7XHJcbiAgICBwdWJsaWMgaWQ6IG51bWJlcjtcclxuICAgIHB1YmxpYyB3aWR0aDogbnVtYmVyO1xyXG4gICAgcHVibGljIGhlaWdodDogbnVtYmVyO1xyXG4gICAgcHVibGljIHNyYzogc3RyaW5nO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHJlY29yZDogRXNvbHZlU3BlY2lhbEltYWdlUmVjb3JkKSB7XHJcbiAgICAgICAgdGhpcy5pZCA9ICtyZWNvcmQuaWQ7XHJcbiAgICAgICAgdGhpcy53aWR0aCA9ICtyZWNvcmQud2lkdGg7XHJcbiAgICAgICAgdGhpcy5oZWlnaHQgPSArcmVjb3JkLmhlaWdodDtcclxuICAgICAgICB0aGlzLnNyYyA9IHJlY29yZC5zcmM7XHJcbiAgICB9XHJcbn1cclxuIl19","import { EsolveSpecialImage } from './esolve-special-image.model';\r\nexport class EsolveSpecialImageCollection {\r\n constructor(image_container, images) {\r\n this.image_container = image_container;\r\n if (images.thumb && images.thumb.length > 0) {\r\n this.thumb = [];\r\n for (const image_record of images.thumb) {\r\n this.thumb.push(new EsolveSpecialImage(image_record));\r\n }\r\n }\r\n if (images.banner && images.banner.length > 0) {\r\n this.banner = [];\r\n for (const image_record of images.banner) {\r\n this.banner.push(new EsolveSpecialImage(image_record));\r\n }\r\n }\r\n if (images.banner_mobile && images.banner_mobile.length > 0) {\r\n this.banner_mobile = [];\r\n for (const image_record of images.banner_mobile) {\r\n this.banner_mobile.push(new EsolveSpecialImage(image_record));\r\n }\r\n }\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXNwZWNpYWwtaW1hZ2UtY29sbGVjdGlvbi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9zcGVjaWFscy9lc29sdmUtc3BlY2lhbC1pbWFnZS1jb2xsZWN0aW9uLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBR2xFLE1BQU0sT0FBTyw0QkFBNEI7SUFLckMsWUFDVyxlQUF1QixFQUM5QixNQUEwQztRQURuQyxvQkFBZSxHQUFmLGVBQWUsQ0FBUTtRQUc5QixJQUFJLE1BQU0sQ0FBQyxLQUFLLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3pDLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1lBRWhCLEtBQUssTUFBTSxZQUFZLElBQUksTUFBTSxDQUFDLEtBQUssRUFBRTtnQkFDckMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO2FBQ3pEO1NBQ0o7UUFFRCxJQUFJLE1BQU0sQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQzNDLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO1lBRWpCLEtBQUssTUFBTSxZQUFZLElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRTtnQkFDdEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO2FBQzFEO1NBQ0o7UUFFRCxJQUFJLE1BQU0sQ0FBQyxhQUFhLElBQUksTUFBTSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3pELElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1lBRXhCLEtBQUssTUFBTSxZQUFZLElBQUksTUFBTSxDQUFDLGFBQWEsRUFBRTtnQkFDN0MsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO2FBQ2pFO1NBQ0o7SUFDTCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFc29sdmVTcGVjaWFsSW1hZ2UgfSBmcm9tICcuL2Vzb2x2ZS1zcGVjaWFsLWltYWdlLm1vZGVsJztcclxuaW1wb3J0IHsgRXNvbHZlU3BlY2lhbEltYWdlQ29sbGVjdGlvblJlY29yZCB9IGZyb20gJy4vZXNvbHZlLXNwZWNpYWwtaW1hZ2UtY29sbGVjdGlvbi1yZWNvcmQuaW50ZXJmYWNlJztcclxuXHJcbmV4cG9ydCBjbGFzcyBFc29sdmVTcGVjaWFsSW1hZ2VDb2xsZWN0aW9uIHtcclxuICAgIHB1YmxpYyB0aHVtYj86IEVzb2x2ZVNwZWNpYWxJbWFnZVtdO1xyXG4gICAgcHVibGljIGJhbm5lcj86IEVzb2x2ZVNwZWNpYWxJbWFnZVtdO1xyXG4gICAgcHVibGljIGJhbm5lcl9tb2JpbGU/OiBFc29sdmVTcGVjaWFsSW1hZ2VbXTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwdWJsaWMgaW1hZ2VfY29udGFpbmVyOiBzdHJpbmcsXHJcbiAgICAgICAgaW1hZ2VzOiBFc29sdmVTcGVjaWFsSW1hZ2VDb2xsZWN0aW9uUmVjb3JkLFxyXG4gICAgKSB7XHJcbiAgICAgICAgaWYgKGltYWdlcy50aHVtYiAmJiBpbWFnZXMudGh1bWIubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICB0aGlzLnRodW1iID0gW107XHJcblxyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGltYWdlX3JlY29yZCBvZiBpbWFnZXMudGh1bWIpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudGh1bWIucHVzaChuZXcgRXNvbHZlU3BlY2lhbEltYWdlKGltYWdlX3JlY29yZCkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoaW1hZ2VzLmJhbm5lciAmJiBpbWFnZXMuYmFubmVyLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgdGhpcy5iYW5uZXIgPSBbXTtcclxuXHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgaW1hZ2VfcmVjb3JkIG9mIGltYWdlcy5iYW5uZXIpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuYmFubmVyLnB1c2gobmV3IEVzb2x2ZVNwZWNpYWxJbWFnZShpbWFnZV9yZWNvcmQpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGltYWdlcy5iYW5uZXJfbW9iaWxlICYmIGltYWdlcy5iYW5uZXJfbW9iaWxlLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgdGhpcy5iYW5uZXJfbW9iaWxlID0gW107XHJcblxyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGltYWdlX3JlY29yZCBvZiBpbWFnZXMuYmFubmVyX21vYmlsZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5iYW5uZXJfbW9iaWxlLnB1c2gobmV3IEVzb2x2ZVNwZWNpYWxJbWFnZShpbWFnZV9yZWNvcmQpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=","export class EsolveSpecialDates {\r\n constructor(start, end) {\r\n this.start = start;\r\n this.end = end;\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXNwZWNpYWwtZGF0ZXMubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvc3BlY2lhbHMvZXNvbHZlLXNwZWNpYWwtZGF0ZXMubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLGtCQUFrQjtJQUMzQixZQUNXLEtBQVcsRUFDWCxHQUFTO1FBRFQsVUFBSyxHQUFMLEtBQUssQ0FBTTtRQUNYLFFBQUcsR0FBSCxHQUFHLENBQU07SUFDaEIsQ0FBQztDQUNSIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIEVzb2x2ZVNwZWNpYWxEYXRlcyB7XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwdWJsaWMgc3RhcnQ6IERhdGUsXHJcbiAgICAgICAgcHVibGljIGVuZDogRGF0ZSxcclxuICAgICkgeyB9XHJcbn1cclxuIl19","import { EsolveLinkedAsset } from '../shared/assets';\r\nimport { EsolveSeoInfo } from '../shared/seo/esolve-seo-info.model';\r\nimport { EsolveSpecialImageCollection } from './esolve-special-image-collection.model';\r\nimport { EsolveSpecialDates } from './esolve-special-dates.model';\r\nexport class EsolveSpecial {\r\n constructor(record) {\r\n this.id = +record.id;\r\n this.identifier = record.identifier;\r\n this.sort_priority = +record.sort_priority;\r\n this.name = record.name;\r\n this.description = record.description;\r\n this.discount_type = +record.discount_type;\r\n this.special_type = record.special_type;\r\n this.location_id = +record.location_id;\r\n this.active = !!+record.active;\r\n this.featured = !!+record.featured;\r\n this.assets = [];\r\n if (record.assets.length > 0) {\r\n for (const asset_record of record.assets) {\r\n this.assets.push(new EsolveLinkedAsset(asset_record));\r\n }\r\n }\r\n if (record.images &&\r\n ((record.images.thumb &&\r\n record.images.thumb.length > 0) ||\r\n (record.images.banner &&\r\n record.images.banner.length > 0) ||\r\n (record.images.banner_mobile &&\r\n record.images.banner_mobile.length > 0)) &&\r\n record.image_container.trim() !== '') {\r\n this.images = new EsolveSpecialImageCollection(record.image_container, record.images);\r\n }\r\n const start_date = new Date(+record.from_date_timestamp * 1000);\r\n const end_date = new Date(+record.to_date_timestamp * 1000);\r\n this.dates = new EsolveSpecialDates(start_date, end_date);\r\n if (record.seo_page_title.trim() === '') {\r\n record.seo_page_title = this.name;\r\n }\r\n this.seo_details = new EsolveSeoInfo(record.seo_page_title, record.seo_description, record.seo_keywords);\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXNwZWNpYWwubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvc3BlY2lhbHMvZXNvbHZlLXNwZWNpYWwubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRXBFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRXZGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRWxFLE1BQU0sT0FBTyxhQUFhO0lBZ0J0QixZQUFZLE1BQTJCO1FBQ25DLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQztRQUNwQyxJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQztRQUMzQyxJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7UUFDeEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDO1FBQzNDLElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQztRQUN4QyxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQztRQUN2QyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7UUFDL0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDO1FBQ25DLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBRWpCLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQzFCLEtBQUssTUFBTSxZQUFZLElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRTtnQkFDdEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO2FBQ3pEO1NBQ0o7UUFFRCxJQUNJLE1BQU0sQ0FBQyxNQUFNO1lBQ2IsQ0FDSSxDQUNJLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSztnQkFDbkIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FDakM7Z0JBQ0QsQ0FDSSxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU07b0JBQ3BCLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQ2xDO2dCQUNELENBQ0ksTUFBTSxDQUFDLE1BQU0sQ0FBQyxhQUFhO29CQUMzQixNQUFNLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUN6QyxDQUNKO1lBQ0QsTUFBTSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQ3RDO1lBQ0UsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLDRCQUE0QixDQUMxQyxNQUFNLENBQUMsZUFBZSxFQUN0QixNQUFNLENBQUMsTUFBTSxDQUNoQixDQUFDO1NBQ0w7UUFFRCxNQUFNLFVBQVUsR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUNoRSxNQUFNLFFBQVEsR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUU1RCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksa0JBQWtCLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBRTFELElBQUksTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDckMsTUFBTSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1NBQ3JDO1FBRUQsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLGFBQWEsQ0FDaEMsTUFBTSxDQUFDLGNBQWMsRUFDckIsTUFBTSxDQUFDLGVBQWUsRUFDdEIsTUFBTSxDQUFDLFlBQVksQ0FDdEIsQ0FBQztJQUNOLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVzb2x2ZUxpbmtlZEFzc2V0IH0gZnJvbSAnLi4vc2hhcmVkL2Fzc2V0cyc7XHJcbmltcG9ydCB7IEVzb2x2ZVNlb0luZm8gfSBmcm9tICcuLi9zaGFyZWQvc2VvL2Vzb2x2ZS1zZW8taW5mby5tb2RlbCc7XHJcbmltcG9ydCB7IEVzb2x2ZVNlb0RldGFpbHMgfSBmcm9tICcuLi9zaGFyZWQvc2VvL2Vzb2x2ZS1zZW8tZGV0YWlscy5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBFc29sdmVTcGVjaWFsSW1hZ2VDb2xsZWN0aW9uIH0gZnJvbSAnLi9lc29sdmUtc3BlY2lhbC1pbWFnZS1jb2xsZWN0aW9uLm1vZGVsJztcclxuaW1wb3J0IHsgRXNvbHZlU3BlY2lhbFJlY29yZCB9IGZyb20gJy4vZXNvbHZlLXNwZWNpYWwtcmVjb3JkLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IEVzb2x2ZVNwZWNpYWxEYXRlcyB9IGZyb20gJy4vZXNvbHZlLXNwZWNpYWwtZGF0ZXMubW9kZWwnO1xyXG5cclxuZXhwb3J0IGNsYXNzIEVzb2x2ZVNwZWNpYWwgaW1wbGVtZW50cyBFc29sdmVTZW9EZXRhaWxzIHtcclxuICAgIHB1YmxpYyBpZDogbnVtYmVyO1xyXG4gICAgcHVibGljIGlkZW50aWZpZXI6IHN0cmluZztcclxuICAgIHB1YmxpYyBzb3J0X3ByaW9yaXR5OiBudW1iZXI7XHJcbiAgICBwdWJsaWMgbmFtZTogc3RyaW5nO1xyXG4gICAgcHVibGljIGRlc2NyaXB0aW9uOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgZGlzY291bnRfdHlwZTogbnVtYmVyO1xyXG4gICAgcHVibGljIHNwZWNpYWxfdHlwZTogc3RyaW5nO1xyXG4gICAgcHVibGljIGxvY2F0aW9uX2lkOiBudW1iZXI7XHJcbiAgICBwdWJsaWMgYWN0aXZlOiBib29sZWFuO1xyXG4gICAgcHVibGljIGZlYXR1cmVkOiBib29sZWFuO1xyXG4gICAgcHVibGljIGFzc2V0czogRXNvbHZlTGlua2VkQXNzZXRbXTtcclxuICAgIHB1YmxpYyBzZW9fZGV0YWlsczogRXNvbHZlU2VvSW5mbztcclxuICAgIHB1YmxpYyBpbWFnZXM/OiBFc29sdmVTcGVjaWFsSW1hZ2VDb2xsZWN0aW9uO1xyXG4gICAgcHVibGljIGRhdGVzPzogRXNvbHZlU3BlY2lhbERhdGVzO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHJlY29yZDogRXNvbHZlU3BlY2lhbFJlY29yZCkge1xyXG4gICAgICAgIHRoaXMuaWQgPSArcmVjb3JkLmlkO1xyXG4gICAgICAgIHRoaXMuaWRlbnRpZmllciA9IHJlY29yZC5pZGVudGlmaWVyO1xyXG4gICAgICAgIHRoaXMuc29ydF9wcmlvcml0eSA9ICtyZWNvcmQuc29ydF9wcmlvcml0eTtcclxuICAgICAgICB0aGlzLm5hbWUgPSByZWNvcmQubmFtZTtcclxuICAgICAgICB0aGlzLmRlc2NyaXB0aW9uID0gcmVjb3JkLmRlc2NyaXB0aW9uO1xyXG4gICAgICAgIHRoaXMuZGlzY291bnRfdHlwZSA9ICtyZWNvcmQuZGlzY291bnRfdHlwZTtcclxuICAgICAgICB0aGlzLnNwZWNpYWxfdHlwZSA9IHJlY29yZC5zcGVjaWFsX3R5cGU7XHJcbiAgICAgICAgdGhpcy5sb2NhdGlvbl9pZCA9ICtyZWNvcmQubG9jYXRpb25faWQ7XHJcbiAgICAgICAgdGhpcy5hY3RpdmUgPSAhIStyZWNvcmQuYWN0aXZlO1xyXG4gICAgICAgIHRoaXMuZmVhdHVyZWQgPSAhIStyZWNvcmQuZmVhdHVyZWQ7XHJcbiAgICAgICAgdGhpcy5hc3NldHMgPSBbXTtcclxuXHJcbiAgICAgICAgaWYgKHJlY29yZC5hc3NldHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGFzc2V0X3JlY29yZCBvZiByZWNvcmQuYXNzZXRzKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmFzc2V0cy5wdXNoKG5ldyBFc29sdmVMaW5rZWRBc3NldChhc3NldF9yZWNvcmQpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICByZWNvcmQuaW1hZ2VzICYmXHJcbiAgICAgICAgICAgIChcclxuICAgICAgICAgICAgICAgIChcclxuICAgICAgICAgICAgICAgICAgICByZWNvcmQuaW1hZ2VzLnRodW1iICYmXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLmltYWdlcy50aHVtYi5sZW5ndGggPiAwXHJcbiAgICAgICAgICAgICAgICApIHx8XHJcbiAgICAgICAgICAgICAgICAoXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLmltYWdlcy5iYW5uZXIgJiZcclxuICAgICAgICAgICAgICAgICAgICByZWNvcmQuaW1hZ2VzLmJhbm5lci5sZW5ndGggPiAwXHJcbiAgICAgICAgICAgICAgICApIHx8XHJcbiAgICAgICAgICAgICAgICAoXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLmltYWdlcy5iYW5uZXJfbW9iaWxlICYmXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLmltYWdlcy5iYW5uZXJfbW9iaWxlLmxlbmd0aCA+IDBcclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgKSAmJlxyXG4gICAgICAgICAgICByZWNvcmQuaW1hZ2VfY29udGFpbmVyLnRyaW0oKSAhPT0gJydcclxuICAgICAgICApIHtcclxuICAgICAgICAgICAgdGhpcy5pbWFnZXMgPSBuZXcgRXNvbHZlU3BlY2lhbEltYWdlQ29sbGVjdGlvbihcclxuICAgICAgICAgICAgICAgIHJlY29yZC5pbWFnZV9jb250YWluZXIsXHJcbiAgICAgICAgICAgICAgICByZWNvcmQuaW1hZ2VzLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3Qgc3RhcnRfZGF0ZSA9IG5ldyBEYXRlKCtyZWNvcmQuZnJvbV9kYXRlX3RpbWVzdGFtcCAqIDEwMDApO1xyXG4gICAgICAgIGNvbnN0IGVuZF9kYXRlID0gbmV3IERhdGUoK3JlY29yZC50b19kYXRlX3RpbWVzdGFtcCAqIDEwMDApO1xyXG5cclxuICAgICAgICB0aGlzLmRhdGVzID0gbmV3IEVzb2x2ZVNwZWNpYWxEYXRlcyhzdGFydF9kYXRlLCBlbmRfZGF0ZSk7XHJcblxyXG4gICAgICAgIGlmIChyZWNvcmQuc2VvX3BhZ2VfdGl0bGUudHJpbSgpID09PSAnJykge1xyXG4gICAgICAgICAgICByZWNvcmQuc2VvX3BhZ2VfdGl0bGUgPSB0aGlzLm5hbWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnNlb19kZXRhaWxzID0gbmV3IEVzb2x2ZVNlb0luZm8oXHJcbiAgICAgICAgICAgIHJlY29yZC5zZW9fcGFnZV90aXRsZSxcclxuICAgICAgICAgICAgcmVjb3JkLnNlb19kZXNjcmlwdGlvbixcclxuICAgICAgICAgICAgcmVjb3JkLnNlb19rZXl3b3JkcyxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==","import { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { of } from 'rxjs';\r\nimport { catchError, map } from 'rxjs/operators';\r\nimport { ESOLVE_CONNECT_CONFIG } from '../esolve-connect-config.constant';\r\nimport { EsolveSpecial } from './esolve-special.model';\r\nimport * as i0 from \"@angular/core\";\r\nimport * as i1 from \"@angular/common/http\";\r\nexport class EsolveSpecialsService {\r\n constructor(config, http) {\r\n this.config = config;\r\n this.http = http;\r\n }\r\n getSpecial(specials_id) {\r\n const params = new HttpParams({\r\n fromObject: { specials_id },\r\n });\r\n return this.getSpecialSingle(params);\r\n }\r\n getSpecialFromIdentifier(identifier) {\r\n const params = new HttpParams({\r\n fromObject: { identifier },\r\n });\r\n return this.getSpecialSingle(params);\r\n }\r\n getSpecials(options) {\r\n let params = new HttpParams();\r\n if (options?.featured_only) {\r\n params = params.set('featured_only', options.featured_only);\r\n }\r\n if (options?.image_container) {\r\n params = params.set('image_container', options.image_container);\r\n }\r\n if (options?.location_id) {\r\n params = params.set('location_id', options.location_id);\r\n }\r\n if (options?.special_type) {\r\n params = params.set('special_type', options.special_type);\r\n }\r\n return this.getSpecialRecords(params).pipe(map((records) => {\r\n const specials = [];\r\n for (const record of records) {\r\n specials.push(this.processSpecial(record));\r\n }\r\n return specials;\r\n }), catchError(() => {\r\n return of([]);\r\n }));\r\n }\r\n getSpecialSingle(params) {\r\n return this.getSpecialRecords(params).pipe(map((records) => {\r\n const record = records[0];\r\n return this.processSpecial(record);\r\n }));\r\n }\r\n getSpecialRecords(params) {\r\n return this.http\r\n .get(`${this.config.api_url}/get-specials.php`, { params })\r\n .pipe(map((response) => {\r\n if ((response.records === undefined) ||\r\n (response.records.length <= 0)) {\r\n throw response;\r\n }\r\n return response.records;\r\n }));\r\n }\r\n processSpecial(record) {\r\n return new EsolveSpecial(record);\r\n }\r\n}\r\nEsolveSpecialsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveSpecialsService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });\r\nEsolveSpecialsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveSpecialsService, providedIn: 'root' });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveSpecialsService, decorators: [{\r\n type: Injectable,\r\n args: [{\r\n providedIn: 'root',\r\n }]\r\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\r\n type: Inject,\r\n args: [ESOLVE_CONNECT_CONFIG]\r\n }] }, { type: i1.HttpClient }]; } });\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXNwZWNpYWxzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvc3BlY2lhbHMvZXNvbHZlLXNwZWNpYWxzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHakQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFHMUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7QUFPdkQsTUFBTSxPQUFPLHFCQUFxQjtJQUM5QixZQUMyQyxNQUEyQixFQUMxRCxJQUFnQjtRQURlLFdBQU0sR0FBTixNQUFNLENBQXFCO1FBQzFELFNBQUksR0FBSixJQUFJLENBQVk7SUFDeEIsQ0FBQztJQUVFLFVBQVUsQ0FBQyxXQUFtQjtRQUNqQyxNQUFNLE1BQU0sR0FBRyxJQUFJLFVBQVUsQ0FBQztZQUMxQixVQUFVLEVBQUUsRUFBRSxXQUFXLEVBQUU7U0FDOUIsQ0FBQyxDQUFDO1FBRUgsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVNLHdCQUF3QixDQUFDLFVBQWtCO1FBQzlDLE1BQU0sTUFBTSxHQUFHLElBQUksVUFBVSxDQUFDO1lBQzFCLFVBQVUsRUFBRSxFQUFFLFVBQVUsRUFBRTtTQUM3QixDQUFDLENBQUM7UUFFSCxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRU0sV0FBVyxDQUFDLE9BQThCO1FBQzdDLElBQUksTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7UUFFOUIsSUFBSSxPQUFPLEVBQUUsYUFBYSxFQUFFO1lBQ3hCLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDL0Q7UUFFRCxJQUFJLE9BQU8sRUFBRSxlQUFlLEVBQUU7WUFDMUIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLEVBQUUsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1NBQ25FO1FBRUQsSUFBSSxPQUFPLEVBQUUsV0FBVyxFQUFFO1lBQ3RCLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDM0Q7UUFFRCxJQUFJLE9BQU8sRUFBRSxZQUFZLEVBQUU7WUFDdkIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFFLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUM3RDtRQUVELE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FDdEMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDWixNQUFNLFFBQVEsR0FBb0IsRUFBRSxDQUFDO1lBRXJDLEtBQUssTUFBTSxNQUFNLElBQUksT0FBTyxFQUFFO2dCQUMxQixRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQzthQUM5QztZQUVELE9BQU8sUUFBUSxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxFQUNGLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDWixPQUFPLEVBQUUsQ0FBa0IsRUFBRSxDQUFDLENBQUM7UUFDbkMsQ0FBQyxDQUFDLENBQ0wsQ0FBQztJQUNOLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxNQUFrQjtRQUN2QyxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQ3RDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ1osTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRTFCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN2QyxDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ04sQ0FBQztJQUVPLGlCQUFpQixDQUFDLE1BQW1CO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDWCxHQUFHLENBQ0EsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sbUJBQW1CLEVBQ3pDLEVBQUUsTUFBTSxFQUFFLENBQ2I7YUFDQSxJQUFJLENBQ0QsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDYixJQUNJLENBQUMsUUFBUSxDQUFDLE9BQU8sS0FBSyxTQUFTLENBQUM7Z0JBQ2hDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLEVBQ2hDO2dCQUNFLE1BQU0sUUFBUSxDQUFDO2FBQ2xCO1lBRUQsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQzVCLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDVixDQUFDO0lBRU8sY0FBYyxDQUFDLE1BQTJCO1FBQzlDLE9BQU8sSUFBSSxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDckMsQ0FBQzs7a0hBekZRLHFCQUFxQixrQkFFbEIscUJBQXFCO3NIQUZ4QixxQkFBcUIsY0FGbEIsTUFBTTsyRkFFVCxxQkFBcUI7a0JBSGpDLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCOzswQkFHUSxNQUFNOzJCQUFDLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgRXNvbHZlQ29ubmVjdENvbmZpZyB9IGZyb20gJy4uL2Vzb2x2ZS1jb25uZWN0LmNvbmZpZyc7XHJcbmltcG9ydCB7IEVTT0xWRV9DT05ORUNUX0NPTkZJRyB9IGZyb20gJy4uL2Vzb2x2ZS1jb25uZWN0LWNvbmZpZy5jb25zdGFudCc7XHJcbmltcG9ydCB7IEVzb2x2ZUdldFJlc3BvbnNlIH0gZnJvbSAnLi4vc2hhcmVkL3Jlc3BvbnNlJztcclxuXHJcbmltcG9ydCB7IEVzb2x2ZVNwZWNpYWwgfSBmcm9tICcuL2Vzb2x2ZS1zcGVjaWFsLm1vZGVsJztcclxuaW1wb3J0IHsgRXNvbHZlU3BlY2lhbE9wdGlvbnMgfSBmcm9tICcuL2Vzb2x2ZS1zcGVjaWFsLW9wdGlvbnMuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgRXNvbHZlU3BlY2lhbFJlY29yZCB9IGZyb20gJy4vZXNvbHZlLXNwZWNpYWwtcmVjb3JkLmludGVyZmFjZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFc29sdmVTcGVjaWFsc1NlcnZpY2Uge1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgQEluamVjdChFU09MVkVfQ09OTkVDVF9DT05GSUcpIHByaXZhdGUgY29uZmlnOiBFc29sdmVDb25uZWN0Q29uZmlnLFxyXG4gICAgICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgICkgeyB9XHJcblxyXG4gICAgcHVibGljIGdldFNwZWNpYWwoc3BlY2lhbHNfaWQ6IG51bWJlcik6IE9ic2VydmFibGU8RXNvbHZlU3BlY2lhbD4ge1xyXG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKHtcclxuICAgICAgICAgICAgZnJvbU9iamVjdDogeyBzcGVjaWFsc19pZCB9LFxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRTcGVjaWFsU2luZ2xlKHBhcmFtcyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldFNwZWNpYWxGcm9tSWRlbnRpZmllcihpZGVudGlmaWVyOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEVzb2x2ZVNwZWNpYWw+IHtcclxuICAgICAgICBjb25zdCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcyh7XHJcbiAgICAgICAgICAgIGZyb21PYmplY3Q6IHsgaWRlbnRpZmllciB9LFxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRTcGVjaWFsU2luZ2xlKHBhcmFtcyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldFNwZWNpYWxzKG9wdGlvbnM/OiBFc29sdmVTcGVjaWFsT3B0aW9ucyk6IE9ic2VydmFibGU8RXNvbHZlU3BlY2lhbFtdPiB7XHJcbiAgICAgICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCk7XHJcblxyXG4gICAgICAgIGlmIChvcHRpb25zPy5mZWF0dXJlZF9vbmx5KSB7XHJcbiAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ2ZlYXR1cmVkX29ubHknLCBvcHRpb25zLmZlYXR1cmVkX29ubHkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKG9wdGlvbnM/LmltYWdlX2NvbnRhaW5lcikge1xyXG4gICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdpbWFnZV9jb250YWluZXInLCBvcHRpb25zLmltYWdlX2NvbnRhaW5lcik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAob3B0aW9ucz8ubG9jYXRpb25faWQpIHtcclxuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnbG9jYXRpb25faWQnLCBvcHRpb25zLmxvY2F0aW9uX2lkKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChvcHRpb25zPy5zcGVjaWFsX3R5cGUpIHtcclxuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnc3BlY2lhbF90eXBlJywgb3B0aW9ucy5zcGVjaWFsX3R5cGUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U3BlY2lhbFJlY29yZHMocGFyYW1zKS5waXBlKFxyXG4gICAgICAgICAgICBtYXAoKHJlY29yZHMpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHNwZWNpYWxzOiBFc29sdmVTcGVjaWFsW10gPSBbXTtcclxuXHJcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHJlY29yZCBvZiByZWNvcmRzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc3BlY2lhbHMucHVzaCh0aGlzLnByb2Nlc3NTcGVjaWFsKHJlY29yZCkpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybiBzcGVjaWFscztcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG9mPEVzb2x2ZVNwZWNpYWxbXT4oW10pO1xyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0U3BlY2lhbFNpbmdsZShwYXJhbXM6IEh0dHBQYXJhbXMpOiBPYnNlcnZhYmxlPEVzb2x2ZVNwZWNpYWw+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRTcGVjaWFsUmVjb3JkcyhwYXJhbXMpLnBpcGUoXHJcbiAgICAgICAgICAgIG1hcCgocmVjb3JkcykgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcmVjb3JkID0gcmVjb3Jkc1swXTtcclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzU3BlY2lhbChyZWNvcmQpO1xyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0U3BlY2lhbFJlY29yZHMocGFyYW1zPzogSHR0cFBhcmFtcyk6IE9ic2VydmFibGU8RXNvbHZlU3BlY2lhbFJlY29yZFtdPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAgICAgICAuZ2V0PEVzb2x2ZUdldFJlc3BvbnNlPEVzb2x2ZVNwZWNpYWxSZWNvcmRbXT4+KFxyXG4gICAgICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vZ2V0LXNwZWNpYWxzLnBocGAsXHJcbiAgICAgICAgICAgICAgICB7IHBhcmFtcyB9LFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgKHJlc3BvbnNlLnJlY29yZHMgPT09IHVuZGVmaW5lZCkgfHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgKHJlc3BvbnNlLnJlY29yZHMubGVuZ3RoIDw9IDApXHJcbiAgICAgICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLnJlY29yZHM7XHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHByb2Nlc3NTcGVjaWFsKHJlY29yZDogRXNvbHZlU3BlY2lhbFJlY29yZCk6IEVzb2x2ZVNwZWNpYWwge1xyXG4gICAgICAgIHJldHVybiBuZXcgRXNvbHZlU3BlY2lhbChyZWNvcmQpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==","// Only export the types that are accessible to the public API\r\nexport * from './esolve-card-data.interface';\r\nexport * from './esolve-payment-form-input.interface';\r\nexport * from './esolve-vault-response.interface';\r\nexport * from './esolve-vault-record.interface';\r\nexport * from './esolve-payment-response.interface';\r\nexport * from './esolve-payment-method-options.interface';\r\nexport * from './esolve-payment-method-record.interface';\r\nexport * from './esolve-payment-redirect-links.interface';\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvcGF5bWVudC9pbnRlcmZhY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDhEQUE4RDtBQUM5RCxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsMkNBQTJDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBPbmx5IGV4cG9ydCB0aGUgdHlwZXMgdGhhdCBhcmUgYWNjZXNzaWJsZSB0byB0aGUgcHVibGljIEFQSVxyXG5leHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS1jYXJkLWRhdGEuaW50ZXJmYWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9lc29sdmUtcGF5bWVudC1mb3JtLWlucHV0LmludGVyZmFjZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZXNvbHZlLXZhdWx0LXJlc3BvbnNlLmludGVyZmFjZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZXNvbHZlLXZhdWx0LXJlY29yZC5pbnRlcmZhY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS1wYXltZW50LXJlc3BvbnNlLmludGVyZmFjZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZXNvbHZlLXBheW1lbnQtbWV0aG9kLW9wdGlvbnMuaW50ZXJmYWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9lc29sdmUtcGF5bWVudC1tZXRob2QtcmVjb3JkLmludGVyZmFjZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZXNvbHZlLXBheW1lbnQtcmVkaXJlY3QtbGlua3MuaW50ZXJmYWNlJztcclxuIl19","export class EsolveBankingDetails {\r\n constructor(bank_name, account_holder, account, account_type, swift_number, branch_code) {\r\n this.bank_name = bank_name;\r\n this.account_holder = account_holder;\r\n this.account = account;\r\n this.account_type = account_type;\r\n this.swift_number = swift_number;\r\n this.branch_code = branch_code;\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWJhbmtpbmctZGV0YWlscy5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9wYXltZW50L2NsYXNzZXMvZXNvbHZlLWJhbmtpbmctZGV0YWlscy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sb0JBQW9CO0lBQzdCLFlBQ1csU0FBaUIsRUFDakIsY0FBc0IsRUFDdEIsT0FBZSxFQUNmLFlBQW9CLEVBQ3BCLFlBQW9CLEVBQ3BCLFdBQW1CO1FBTG5CLGNBQVMsR0FBVCxTQUFTLENBQVE7UUFDakIsbUJBQWMsR0FBZCxjQUFjLENBQVE7UUFDdEIsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNmLGlCQUFZLEdBQVosWUFBWSxDQUFRO1FBQ3BCLGlCQUFZLEdBQVosWUFBWSxDQUFRO1FBQ3BCLGdCQUFXLEdBQVgsV0FBVyxDQUFRO0lBQzFCLENBQUM7Q0FDUiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBFc29sdmVCYW5raW5nRGV0YWlscyB7XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwdWJsaWMgYmFua19uYW1lOiBzdHJpbmcsXHJcbiAgICAgICAgcHVibGljIGFjY291bnRfaG9sZGVyOiBzdHJpbmcsXHJcbiAgICAgICAgcHVibGljIGFjY291bnQ6IHN0cmluZyxcclxuICAgICAgICBwdWJsaWMgYWNjb3VudF90eXBlOiBzdHJpbmcsXHJcbiAgICAgICAgcHVibGljIHN3aWZ0X251bWJlcjogc3RyaW5nLFxyXG4gICAgICAgIHB1YmxpYyBicmFuY2hfY29kZTogc3RyaW5nLFxyXG4gICAgKSB7IH1cclxufVxyXG4iXX0=","import { EsolveBankingDetails } from './esolve-banking-details.model';\r\nexport class EsolvePaymentMethod {\r\n constructor(record) {\r\n this.id = +record.id;\r\n this.location_id = +record.location_id;\r\n this.paymethod_name = record.paymethod_name;\r\n this.description = record.description;\r\n this.display_banking_details = !!+record.display_banking_details;\r\n this.currency_code = record.currency_code;\r\n this.merchant_id = record.merchant_id;\r\n this.application_id = record.application_id;\r\n this.api_signature = record.api_signature;\r\n this.is_gateway = !!+record.is_gateway;\r\n this.must_store_card_details = !!+record.must_store_card_details;\r\n this.allow_budget = !!+record.allow_budget;\r\n this.integration_type = record.integration_type;\r\n this.bank_gateway_id = record.bank_gateway_id;\r\n this.accepted_card_types = record.accepted_card_types;\r\n this.post_transactions_to_gateway = !!+record.post_transactions_to_gateway;\r\n this.three_d_secure_url = record.three_d_secure_url;\r\n this.gateway_url = record.gateway_url;\r\n this.generate_token_url = record.generate_token_url;\r\n this.widget_url = record.widget_url;\r\n this.successful_url = record.successful_url;\r\n this.failed_url = record.failed_url;\r\n this.enable_callback = !!+record.enable_callback;\r\n this.live = !!+record.live;\r\n this.default_module_id = +record.default_module_id;\r\n this.service_provider = record.service_provider;\r\n this.on_account = !!+record.on_account;\r\n this.sort_priority = +record.sort_priority;\r\n this.image_url = record.image_url;\r\n this.banking_details = new EsolveBankingDetails(record.bank_name, record.account_holder, record.account, record.account_type, record.swift_number, record.branch_code);\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXBheW1lbnQtbWV0aG9kLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL3BheW1lbnQvY2xhc3Nlcy9lc29sdmUtcGF5bWVudC1tZXRob2QubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFdEUsTUFBTSxPQUFPLG1CQUFtQjtJQWlDNUIsWUFBWSxNQUFpQztRQUN6QyxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQztRQUN2QyxJQUFJLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUM7UUFDNUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDO1FBQ3RDLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsdUJBQXVCLENBQUM7UUFDakUsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDO1FBQzFDLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQztRQUN0QyxJQUFJLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUM7UUFDNUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDO1FBQzFDLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQztRQUN2QyxJQUFJLENBQUMsdUJBQXVCLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLHVCQUF1QixDQUFDO1FBQ2pFLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQztRQUMzQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDO1FBQ2hELElBQUksQ0FBQyxlQUFlLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQztRQUM5QyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDO1FBQ3RELElBQUksQ0FBQyw0QkFBNEIsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsNEJBQTRCLENBQUM7UUFDM0UsSUFBSSxDQUFDLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQztRQUNwRCxJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUM7UUFDdEMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQztRQUNwRCxJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUM7UUFDcEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDO1FBQzVDLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQztRQUNwQyxJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUM7UUFDakQsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBQzNCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQztRQUNuRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDO1FBQ2hELElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQztRQUN2QyxJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQztRQUMzQyxJQUFJLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUM7UUFFbEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLG9CQUFvQixDQUMzQyxNQUFNLENBQUMsU0FBUyxFQUNoQixNQUFNLENBQUMsY0FBYyxFQUNyQixNQUFNLENBQUMsT0FBTyxFQUNkLE1BQU0sQ0FBQyxZQUFZLEVBQ25CLE1BQU0sQ0FBQyxZQUFZLEVBQ25CLE1BQU0sQ0FBQyxXQUFXLENBQ3JCLENBQUM7SUFDTixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFc29sdmVJbnRlZ3JhdGlvblR5cGUgfSBmcm9tICcuLi90eXBlcyc7XHJcbmltcG9ydCB7IEVzb2x2ZVBheW1lbnRNZXRob2RSZWNvcmQgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgRXNvbHZlQmFua2luZ0RldGFpbHMgfSBmcm9tICcuL2Vzb2x2ZS1iYW5raW5nLWRldGFpbHMubW9kZWwnO1xyXG5cclxuZXhwb3J0IGNsYXNzIEVzb2x2ZVBheW1lbnRNZXRob2Qge1xyXG4gICAgcHVibGljIGlkOiBudW1iZXI7XHJcbiAgICBwdWJsaWMgbG9jYXRpb25faWQ6IG51bWJlcjtcclxuICAgIHB1YmxpYyBwYXltZXRob2RfbmFtZTogc3RyaW5nO1xyXG4gICAgcHVibGljIGRlc2NyaXB0aW9uOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgZGlzcGxheV9iYW5raW5nX2RldGFpbHM6IGJvb2xlYW47XHJcbiAgICBwdWJsaWMgY3VycmVuY3lfY29kZTogc3RyaW5nO1xyXG4gICAgcHVibGljIG1lcmNoYW50X2lkOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgYXBwbGljYXRpb25faWQ6IHN0cmluZztcclxuICAgIHB1YmxpYyBhcGlfc2lnbmF0dXJlOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgaXNfZ2F0ZXdheTogYm9vbGVhbjtcclxuICAgIHB1YmxpYyBtdXN0X3N0b3JlX2NhcmRfZGV0YWlsczogYm9vbGVhbjtcclxuICAgIHB1YmxpYyBhbGxvd19idWRnZXQ6IGJvb2xlYW47XHJcbiAgICBwdWJsaWMgaW50ZWdyYXRpb25fdHlwZTogRXNvbHZlSW50ZWdyYXRpb25UeXBlO1xyXG4gICAgcHVibGljIGJhbmtfZ2F0ZXdheV9pZDogc3RyaW5nO1xyXG4gICAgcHVibGljIGFjY2VwdGVkX2NhcmRfdHlwZXM6IHN0cmluZ1tdO1xyXG4gICAgcHVibGljIHBvc3RfdHJhbnNhY3Rpb25zX3RvX2dhdGV3YXk6IGJvb2xlYW47XHJcbiAgICBwdWJsaWMgdGhyZWVfZF9zZWN1cmVfdXJsOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgZ2F0ZXdheV91cmw6IHN0cmluZztcclxuICAgIHB1YmxpYyBnZW5lcmF0ZV90b2tlbl91cmw6IHN0cmluZztcclxuICAgIHB1YmxpYyB3aWRnZXRfdXJsOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgc3VjY2Vzc2Z1bF91cmw6IHN0cmluZztcclxuICAgIHB1YmxpYyBmYWlsZWRfdXJsOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgZW5hYmxlX2NhbGxiYWNrOiBib29sZWFuO1xyXG4gICAgcHVibGljIGxpdmU6IGJvb2xlYW47XHJcbiAgICBwdWJsaWMgZGVmYXVsdF9tb2R1bGVfaWQ6IG51bWJlcjtcclxuICAgIHB1YmxpYyBzZXJ2aWNlX3Byb3ZpZGVyOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgb25fYWNjb3VudDogYm9vbGVhbjtcclxuICAgIHB1YmxpYyBzb3J0X3ByaW9yaXR5OiBudW1iZXI7XHJcbiAgICBwdWJsaWMgaW1hZ2VfdXJsOiBzdHJpbmc7XHJcblxyXG4gICAgcHVibGljIGJhbmtpbmdfZGV0YWlsczogRXNvbHZlQmFua2luZ0RldGFpbHM7XHJcblxyXG4gICAgY29uc3RydWN0b3IocmVjb3JkOiBFc29sdmVQYXltZW50TWV0aG9kUmVjb3JkKSB7XHJcbiAgICAgICAgdGhpcy5pZCA9ICtyZWNvcmQuaWQ7XHJcbiAgICAgICAgdGhpcy5sb2NhdGlvbl9pZCA9ICtyZWNvcmQubG9jYXRpb25faWQ7XHJcbiAgICAgICAgdGhpcy5wYXltZXRob2RfbmFtZSA9IHJlY29yZC5wYXltZXRob2RfbmFtZTtcclxuICAgICAgICB0aGlzLmRlc2NyaXB0aW9uID0gcmVjb3JkLmRlc2NyaXB0aW9uO1xyXG4gICAgICAgIHRoaXMuZGlzcGxheV9iYW5raW5nX2RldGFpbHMgPSAhIStyZWNvcmQuZGlzcGxheV9iYW5raW5nX2RldGFpbHM7XHJcbiAgICAgICAgdGhpcy5jdXJyZW5jeV9jb2RlID0gcmVjb3JkLmN1cnJlbmN5X2NvZGU7XHJcbiAgICAgICAgdGhpcy5tZXJjaGFudF9pZCA9IHJlY29yZC5tZXJjaGFudF9pZDtcclxuICAgICAgICB0aGlzLmFwcGxpY2F0aW9uX2lkID0gcmVjb3JkLmFwcGxpY2F0aW9uX2lkO1xyXG4gICAgICAgIHRoaXMuYXBpX3NpZ25hdHVyZSA9IHJlY29yZC5hcGlfc2lnbmF0dXJlO1xyXG4gICAgICAgIHRoaXMuaXNfZ2F0ZXdheSA9ICEhK3JlY29yZC5pc19nYXRld2F5O1xyXG4gICAgICAgIHRoaXMubXVzdF9zdG9yZV9jYXJkX2RldGFpbHMgPSAhIStyZWNvcmQubXVzdF9zdG9yZV9jYXJkX2RldGFpbHM7XHJcbiAgICAgICAgdGhpcy5hbGxvd19idWRnZXQgPSAhIStyZWNvcmQuYWxsb3dfYnVkZ2V0O1xyXG4gICAgICAgIHRoaXMuaW50ZWdyYXRpb25fdHlwZSA9IHJlY29yZC5pbnRlZ3JhdGlvbl90eXBlO1xyXG4gICAgICAgIHRoaXMuYmFua19nYXRld2F5X2lkID0gcmVjb3JkLmJhbmtfZ2F0ZXdheV9pZDtcclxuICAgICAgICB0aGlzLmFjY2VwdGVkX2NhcmRfdHlwZXMgPSByZWNvcmQuYWNjZXB0ZWRfY2FyZF90eXBlcztcclxuICAgICAgICB0aGlzLnBvc3RfdHJhbnNhY3Rpb25zX3RvX2dhdGV3YXkgPSAhIStyZWNvcmQucG9zdF90cmFuc2FjdGlvbnNfdG9fZ2F0ZXdheTtcclxuICAgICAgICB0aGlzLnRocmVlX2Rfc2VjdXJlX3VybCA9IHJlY29yZC50aHJlZV9kX3NlY3VyZV91cmw7XHJcbiAgICAgICAgdGhpcy5nYXRld2F5X3VybCA9IHJlY29yZC5nYXRld2F5X3VybDtcclxuICAgICAgICB0aGlzLmdlbmVyYXRlX3Rva2VuX3VybCA9IHJlY29yZC5nZW5lcmF0ZV90b2tlbl91cmw7XHJcbiAgICAgICAgdGhpcy53aWRnZXRfdXJsID0gcmVjb3JkLndpZGdldF91cmw7XHJcbiAgICAgICAgdGhpcy5zdWNjZXNzZnVsX3VybCA9IHJlY29yZC5zdWNjZXNzZnVsX3VybDtcclxuICAgICAgICB0aGlzLmZhaWxlZF91cmwgPSByZWNvcmQuZmFpbGVkX3VybDtcclxuICAgICAgICB0aGlzLmVuYWJsZV9jYWxsYmFjayA9ICEhK3JlY29yZC5lbmFibGVfY2FsbGJhY2s7XHJcbiAgICAgICAgdGhpcy5saXZlID0gISErcmVjb3JkLmxpdmU7XHJcbiAgICAgICAgdGhpcy5kZWZhdWx0X21vZHVsZV9pZCA9ICtyZWNvcmQuZGVmYXVsdF9tb2R1bGVfaWQ7XHJcbiAgICAgICAgdGhpcy5zZXJ2aWNlX3Byb3ZpZGVyID0gcmVjb3JkLnNlcnZpY2VfcHJvdmlkZXI7XHJcbiAgICAgICAgdGhpcy5vbl9hY2NvdW50ID0gISErcmVjb3JkLm9uX2FjY291bnQ7XHJcbiAgICAgICAgdGhpcy5zb3J0X3ByaW9yaXR5ID0gK3JlY29yZC5zb3J0X3ByaW9yaXR5O1xyXG4gICAgICAgIHRoaXMuaW1hZ2VfdXJsID0gcmVjb3JkLmltYWdlX3VybDtcclxuXHJcbiAgICAgICAgdGhpcy5iYW5raW5nX2RldGFpbHMgPSBuZXcgRXNvbHZlQmFua2luZ0RldGFpbHMoXHJcbiAgICAgICAgICAgIHJlY29yZC5iYW5rX25hbWUsXHJcbiAgICAgICAgICAgIHJlY29yZC5hY2NvdW50X2hvbGRlcixcclxuICAgICAgICAgICAgcmVjb3JkLmFjY291bnQsXHJcbiAgICAgICAgICAgIHJlY29yZC5hY2NvdW50X3R5cGUsXHJcbiAgICAgICAgICAgIHJlY29yZC5zd2lmdF9udW1iZXIsXHJcbiAgICAgICAgICAgIHJlY29yZC5icmFuY2hfY29kZSxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==","import { EsolveResponseResult } from '../../shared/response';\r\nexport class EsolvePaymentResult extends EsolveResponseResult {\r\n constructor(response) {\r\n super(response);\r\n this.redirect_required = false;\r\n if (typeof response.service_provider !== 'undefined') {\r\n this.service_provider = response.service_provider;\r\n }\r\n if (typeof response.redirect_required !== 'undefined') {\r\n this.redirect_required = response.redirect_required;\r\n }\r\n this.gateway_error_message = response.gateway_error_message ?? '';\r\n // Check if redirect settings need to be set\r\n if (this.redirect_required && this.service_provider) {\r\n if (typeof response.redirect_url !== 'undefined') {\r\n this.redirect_url = response.redirect_url;\r\n }\r\n // Check integration specific settings\r\n if (this.service_provider === 'snapscan') {\r\n // QR code scan is required\r\n if (typeof response.qr_code_url !== 'undefined') {\r\n this.qr_code_url = response.qr_code_url;\r\n }\r\n }\r\n else {\r\n // Normal form posting redirect\r\n if (typeof response.form_inputs !== 'undefined') {\r\n this.form_inputs = response.form_inputs;\r\n }\r\n if (typeof response.form_enctype !== 'undefined') {\r\n this.form_enctype = response.form_enctype;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXBheW1lbnQtcmVzdWx0Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL3BheW1lbnQvY2xhc3Nlcy9lc29sdmUtcGF5bWVudC1yZXN1bHQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFLN0QsTUFBTSxPQUFPLG1CQUFvQixTQUFRLG9CQUFvQjtJQXdCekQsWUFBWSxRQUErQjtRQUN2QyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUF2QmIsc0JBQWlCLEdBQVksS0FBSyxDQUFDO1FBeUJ0QyxJQUFJLE9BQU8sUUFBUSxDQUFDLGdCQUFnQixLQUFLLFdBQVcsRUFBRTtZQUNsRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsUUFBUSxDQUFDLGdCQUFnQixDQUFDO1NBQ3JEO1FBRUQsSUFBSSxPQUFPLFFBQVEsQ0FBQyxpQkFBaUIsS0FBSyxXQUFXLEVBQUU7WUFDbkQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQztTQUN2RDtRQUVELElBQUksQ0FBQyxxQkFBcUIsR0FBRyxRQUFRLENBQUMscUJBQXFCLElBQUksRUFBRSxDQUFDO1FBRWxFLDRDQUE0QztRQUM1QyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDakQsSUFBSSxPQUFPLFFBQVEsQ0FBQyxZQUFZLEtBQUssV0FBVyxFQUFFO2dCQUM5QyxJQUFJLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQyxZQUFZLENBQUM7YUFDN0M7WUFFRCxzQ0FBc0M7WUFDdEMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEtBQUssVUFBVSxFQUFFO2dCQUN0QywyQkFBMkI7Z0JBQzNCLElBQUksT0FBTyxRQUFRLENBQUMsV0FBVyxLQUFLLFdBQVcsRUFBRTtvQkFDN0MsSUFBSSxDQUFDLFdBQVcsR0FBRyxRQUFRLENBQUMsV0FBVyxDQUFDO2lCQUMzQzthQUNKO2lCQUFNO2dCQUNILCtCQUErQjtnQkFDL0IsSUFBSSxPQUFPLFFBQVEsQ0FBQyxXQUFXLEtBQUssV0FBVyxFQUFFO29CQUM3QyxJQUFJLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQyxXQUFXLENBQUM7aUJBQzNDO2dCQUVELElBQUksT0FBTyxRQUFRLENBQUMsWUFBWSxLQUFLLFdBQVcsRUFBRTtvQkFDOUMsSUFBSSxDQUFDLFlBQVksR0FBRyxRQUFRLENBQUMsWUFBWSxDQUFDO2lCQUM3QzthQUNKO1NBQ0o7SUFDTCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFc29sdmVSZXNwb25zZVJlc3VsdCB9IGZyb20gJy4uLy4uL3NoYXJlZC9yZXNwb25zZSc7XHJcblxyXG5pbXBvcnQgeyBFc29sdmVTZXJ2aWNlUHJvdmlkZXIgfSBmcm9tICcuLi90eXBlcyc7XHJcbmltcG9ydCB7IEVzb2x2ZVBheW1lbnRSZXNwb25zZSwgRXNvbHZlUGF5bWVudEZvcm1JbnB1dCB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xyXG5cclxuZXhwb3J0IGNsYXNzIEVzb2x2ZVBheW1lbnRSZXN1bHQgZXh0ZW5kcyBFc29sdmVSZXNwb25zZVJlc3VsdCB7XHJcbiAgICBwdWJsaWMgZ2F0ZXdheV9lcnJvcl9tZXNzYWdlOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgcmVkaXJlY3RfcmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHB1YmxpYyBzZXJ2aWNlX3Byb3ZpZGVyPzogRXNvbHZlU2VydmljZVByb3ZpZGVyO1xyXG4gICAgcHVibGljIHJlZGlyZWN0X3VybD86IHN0cmluZztcclxuICAgIC8qKlxyXG4gICAgICogRm9ybSBwb3N0IHZhcmlhYmxlc1xyXG4gICAgICpcclxuICAgICAqIE5vdCBhdmFpbGFibGUgdG8gU25hcFNjYW5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGZvcm1faW5wdXRzPzogRXNvbHZlUGF5bWVudEZvcm1JbnB1dFtdO1xyXG4gICAgIC8qKlxyXG4gICAgICogRm9ybSBwb3N0IGNvbnRlbnQgdHlwZVxyXG4gICAgICpcclxuICAgICAqIE5vdCBhdmFpbGFibGUgdG8gU25hcFNjYW5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGZvcm1fZW5jdHlwZT86IHN0cmluZztcclxuICAgIC8qKlxyXG4gICAgICogUVIgY29kZSBpbWFnZSB1cmxcclxuICAgICAqXHJcbiAgICAgKiBPbmx5IGF2YWlsYWJsZSB0byBTbmFwU2NhbiBpbnRlZ3JhdGlvbnNcclxuICAgICAqL1xyXG4gICAgcHVibGljIHFyX2NvZGVfdXJsPzogc3RyaW5nO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHJlc3BvbnNlOiBFc29sdmVQYXltZW50UmVzcG9uc2UpIHtcclxuICAgICAgICBzdXBlcihyZXNwb25zZSk7XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgcmVzcG9uc2Uuc2VydmljZV9wcm92aWRlciAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgICAgICAgdGhpcy5zZXJ2aWNlX3Byb3ZpZGVyID0gcmVzcG9uc2Uuc2VydmljZV9wcm92aWRlcjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgcmVzcG9uc2UucmVkaXJlY3RfcmVxdWlyZWQgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgICAgIHRoaXMucmVkaXJlY3RfcmVxdWlyZWQgPSByZXNwb25zZS5yZWRpcmVjdF9yZXF1aXJlZDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuZ2F0ZXdheV9lcnJvcl9tZXNzYWdlID0gcmVzcG9uc2UuZ2F0ZXdheV9lcnJvcl9tZXNzYWdlID8/ICcnO1xyXG5cclxuICAgICAgICAvLyBDaGVjayBpZiByZWRpcmVjdCBzZXR0aW5ncyBuZWVkIHRvIGJlIHNldFxyXG4gICAgICAgIGlmICh0aGlzLnJlZGlyZWN0X3JlcXVpcmVkICYmIHRoaXMuc2VydmljZV9wcm92aWRlcikge1xyXG4gICAgICAgICAgICBpZiAodHlwZW9mIHJlc3BvbnNlLnJlZGlyZWN0X3VybCAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucmVkaXJlY3RfdXJsID0gcmVzcG9uc2UucmVkaXJlY3RfdXJsO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvLyBDaGVjayBpbnRlZ3JhdGlvbiBzcGVjaWZpYyBzZXR0aW5nc1xyXG4gICAgICAgICAgICBpZiAodGhpcy5zZXJ2aWNlX3Byb3ZpZGVyID09PSAnc25hcHNjYW4nKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBRUiBjb2RlIHNjYW4gaXMgcmVxdWlyZWRcclxuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgcmVzcG9uc2UucXJfY29kZV91cmwgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5xcl9jb2RlX3VybCA9IHJlc3BvbnNlLnFyX2NvZGVfdXJsO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gTm9ybWFsIGZvcm0gcG9zdGluZyByZWRpcmVjdFxyXG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiByZXNwb25zZS5mb3JtX2lucHV0cyAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm1faW5wdXRzID0gcmVzcG9uc2UuZm9ybV9pbnB1dHM7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiByZXNwb25zZS5mb3JtX2VuY3R5cGUgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtX2VuY3R5cGUgPSByZXNwb25zZS5mb3JtX2VuY3R5cGU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19","import { EsolveResponseResult } from '../../shared/response';\r\nexport class EsolveVaultItemResult extends EsolveResponseResult {\r\n constructor(response) {\r\n super(response);\r\n this.id = +response.esolve_id;\r\n if (typeof response.token !== 'undefined') {\r\n this.token = response.token;\r\n }\r\n if (typeof response.card_valid !== 'undefined') {\r\n this.card_valid = response.card_valid;\r\n }\r\n if (typeof response.card_details_validated !== 'undefined') {\r\n this.card_details_validated = response.card_details_validated;\r\n }\r\n if (typeof response.gateway_error_message !== 'undefined') {\r\n this.gateway_error_message = response.gateway_error_message;\r\n }\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXZhdWx0LWl0ZW0tcmVzdWx0Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL3BheW1lbnQvY2xhc3Nlcy9lc29sdmUtdmF1bHQtaXRlbS1yZXN1bHQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFJN0QsTUFBTSxPQUFPLHFCQUFzQixTQUFRLG9CQUFvQjtJQU8zRCxZQUFZLFFBQTZCO1FBQ3JDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUVoQixJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQztRQUU5QixJQUFJLE9BQU8sUUFBUSxDQUFDLEtBQUssS0FBTSxXQUFXLEVBQUU7WUFDeEMsSUFBSSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDO1NBQy9CO1FBRUQsSUFBSSxPQUFPLFFBQVEsQ0FBQyxVQUFVLEtBQU0sV0FBVyxFQUFFO1lBQzdDLElBQUksQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQztTQUN6QztRQUVELElBQUksT0FBTyxRQUFRLENBQUMsc0JBQXNCLEtBQU0sV0FBVyxFQUFFO1lBQ3pELElBQUksQ0FBQyxzQkFBc0IsR0FBRyxRQUFRLENBQUMsc0JBQXNCLENBQUM7U0FDakU7UUFFRCxJQUFJLE9BQU8sUUFBUSxDQUFDLHFCQUFxQixLQUFNLFdBQVcsRUFBRTtZQUN4RCxJQUFJLENBQUMscUJBQXFCLEdBQUcsUUFBUSxDQUFDLHFCQUFxQixDQUFDO1NBQy9EO0lBQ0wsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXNvbHZlUmVzcG9uc2VSZXN1bHQgfSBmcm9tICcuLi8uLi9zaGFyZWQvcmVzcG9uc2UnO1xyXG5cclxuaW1wb3J0IHsgRXNvbHZlVmF1bHRSZXNwb25zZSB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xyXG5cclxuZXhwb3J0IGNsYXNzIEVzb2x2ZVZhdWx0SXRlbVJlc3VsdCBleHRlbmRzIEVzb2x2ZVJlc3BvbnNlUmVzdWx0IHtcclxuICAgIHB1YmxpYyBpZDogbnVtYmVyO1xyXG4gICAgcHVibGljIHRva2VuPzogc3RyaW5nO1xyXG4gICAgcHVibGljIGNhcmRfdmFsaWQ/OiBib29sZWFuO1xyXG4gICAgcHVibGljIGNhcmRfZGV0YWlsc192YWxpZGF0ZWQ/OiBib29sZWFuO1xyXG4gICAgcHVibGljIGdhdGV3YXlfZXJyb3JfbWVzc2FnZT86IHN0cmluZztcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihyZXNwb25zZTogRXNvbHZlVmF1bHRSZXNwb25zZSkge1xyXG4gICAgICAgIHN1cGVyKHJlc3BvbnNlKTtcclxuXHJcbiAgICAgICAgdGhpcy5pZCA9ICtyZXNwb25zZS5lc29sdmVfaWQ7XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgcmVzcG9uc2UudG9rZW4gICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICAgICAgICB0aGlzLnRva2VuID0gcmVzcG9uc2UudG9rZW47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodHlwZW9mIHJlc3BvbnNlLmNhcmRfdmFsaWQgICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICAgICAgICB0aGlzLmNhcmRfdmFsaWQgPSByZXNwb25zZS5jYXJkX3ZhbGlkO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHR5cGVvZiByZXNwb25zZS5jYXJkX2RldGFpbHNfdmFsaWRhdGVkICAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgICAgICAgdGhpcy5jYXJkX2RldGFpbHNfdmFsaWRhdGVkID0gcmVzcG9uc2UuY2FyZF9kZXRhaWxzX3ZhbGlkYXRlZDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgcmVzcG9uc2UuZ2F0ZXdheV9lcnJvcl9tZXNzYWdlICAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgICAgICAgdGhpcy5nYXRld2F5X2Vycm9yX21lc3NhZ2UgPSByZXNwb25zZS5nYXRld2F5X2Vycm9yX21lc3NhZ2U7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==","export class EsolveVaultItem {\r\n constructor(id, payment_methods_id, last4, brand, expiry_timestamp) {\r\n this.id = id;\r\n this.payment_methods_id = payment_methods_id;\r\n this.last4 = last4;\r\n this.brand = brand;\r\n this.expiry = new Date(expiry_timestamp * 1000);\r\n }\r\n get expiry_month() {\r\n const month = this.expiry.getMonth() + 1;\r\n return month.toString().padStart(2, '0');\r\n }\r\n get expiry_year() {\r\n return this.expiry.getFullYear();\r\n }\r\n get masked_number() {\r\n return this.last4.padStart(19, '**** ');\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXZhdWx0LWl0ZW0ubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvcGF5bWVudC9jbGFzc2VzL2Vzb2x2ZS12YXVsdC1pdGVtLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxlQUFlO0lBaUJ4QixZQUNXLEVBQVUsRUFDVixrQkFBMEIsRUFDMUIsS0FBYSxFQUNiLEtBQWEsRUFDcEIsZ0JBQXdCO1FBSmpCLE9BQUUsR0FBRixFQUFFLENBQVE7UUFDVix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQVE7UUFDMUIsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUNiLFVBQUssR0FBTCxLQUFLLENBQVE7UUFHcEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBdEJELElBQVcsWUFBWTtRQUNuQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUV6QyxPQUFPLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxJQUFXLFdBQVc7UUFDbEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxJQUFXLGFBQWE7UUFDcEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDNUMsQ0FBQztDQVdKIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIEVzb2x2ZVZhdWx0SXRlbSB7XHJcbiAgICBwcml2YXRlIGV4cGlyeTogRGF0ZTtcclxuXHJcbiAgICBwdWJsaWMgZ2V0IGV4cGlyeV9tb250aCgpOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IG1vbnRoID0gdGhpcy5leHBpcnkuZ2V0TW9udGgoKSArIDE7XHJcblxyXG4gICAgICAgIHJldHVybiBtb250aC50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBleHBpcnlfeWVhcigpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmV4cGlyeS5nZXRGdWxsWWVhcigpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgbWFza2VkX251bWJlcigpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmxhc3Q0LnBhZFN0YXJ0KDE5LCAnKioqKiAnKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwdWJsaWMgaWQ6IG51bWJlcixcclxuICAgICAgICBwdWJsaWMgcGF5bWVudF9tZXRob2RzX2lkOiBudW1iZXIsXHJcbiAgICAgICAgcHVibGljIGxhc3Q0OiBzdHJpbmcsXHJcbiAgICAgICAgcHVibGljIGJyYW5kOiBzdHJpbmcsXHJcbiAgICAgICAgZXhwaXJ5X3RpbWVzdGFtcDogbnVtYmVyLFxyXG4gICAgKSB7XHJcbiAgICAgICAgdGhpcy5leHBpcnkgPSBuZXcgRGF0ZShleHBpcnlfdGltZXN0YW1wICogMTAwMCk7XHJcbiAgICB9XHJcbn1cclxuIl19","import { Inject, Injectable } from '@angular/core';\r\nimport { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { catchError, map } from 'rxjs/operators';\r\nimport { ESOLVE_CONNECT_CONFIG } from '../esolve-connect-config.constant';\r\nimport { EsolveErrorHandlerService } from '../shared/errors/esolve-error-handler.service';\r\nimport { EsolveResult } from '../shared/esolve-result.model';\r\nimport { EsolveResponseHandlerService, } from '../shared/response';\r\nimport { EsolvePaymentMethod, EsolvePaymentResult, EsolveVaultItem, EsolveVaultItemResult, } from './classes';\r\nimport * as i0 from \"@angular/core\";\r\nimport * as i1 from \"@angular/common/http\";\r\nimport * as i2 from \"../shared/errors/esolve-error-handler.service\";\r\nimport * as i3 from \"../shared/response\";\r\nexport class EsolvePaymentService {\r\n constructor(config, http, errorHandler, responseHandler) {\r\n this.config = config;\r\n this.http = http;\r\n this.errorHandler = errorHandler;\r\n this.responseHandler = responseHandler;\r\n }\r\n /**\r\n * Retrieves a list of payment methods.\r\n *\r\n * @param options Filter options\r\n *\r\n * @returns An `Observable` with an array of payment methods\r\n */\r\n getPaymentMethods(options) {\r\n return this.http\r\n .get(`${this.config.api_url}/get-payment-methods.php`, { params: { ...options } })\r\n .pipe(map((response) => {\r\n if (response.records === undefined) {\r\n throw response;\r\n }\r\n return this.processPaymentMethods(response.records);\r\n }));\r\n }\r\n /**\r\n * Retrieve the payment status of the specified transaction\r\n *\r\n * @param transaction_id ID of the transaction\r\n *\r\n * @returns An `Observable` with the success status of the payment\r\n */\r\n getPaymentStatus(transaction_id) {\r\n return this.http\r\n .get(`${this.config.api_url}/get-payment-status.php`, { params: { cart_id: transaction_id } })\r\n .pipe(map((response) => {\r\n if (response.records === undefined) {\r\n throw response;\r\n }\r\n return response.records.success;\r\n }));\r\n }\r\n /**\r\n * Retrieves a list of saved cards from the vault.\r\n *\r\n * @param payment_methods_id eSolve ID of a payment method\r\n *\r\n * @returns An `Observable` with an array of saved bank cards\r\n */\r\n getVault(payment_methods_id) {\r\n let params = new HttpParams();\r\n if (typeof payment_methods_id !== 'undefined') {\r\n params = params.set('payment_methods_id', payment_methods_id);\r\n }\r\n return this.http\r\n .get(`${this.config.api_url}/get-vault.php`, { params })\r\n .pipe(map((response) => {\r\n if (response.records === undefined) {\r\n throw response;\r\n }\r\n return this.processVaultItems(response.records);\r\n }));\r\n }\r\n /**\r\n * Sets a new card in the vault OR updates an existing one.\r\n *\r\n * @param payment_methods_id Selected payment method\r\n * @param card_data Information of bank card\r\n *\r\n * @returns An `Observable` with the result of the vault set.\r\n */\r\n setVaultItem(payment_methods_id, card_data) {\r\n const body = {\r\n vault: {\r\n payment_methods_id,\r\n card_number: card_data.card_number,\r\n card_name: card_data.name,\r\n card_cvv: card_data.cvv,\r\n card_expiry: this.generateExpiry(card_data),\r\n },\r\n };\r\n return this.http\r\n .post(`${this.config.api_url}/set-vault.php`, body, {\r\n headers: {\r\n 'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;',\r\n },\r\n responseType: 'json',\r\n observe: 'body',\r\n })\r\n .pipe(map((http_response) => this.responseHandler.validateSingleHttpResponse(http_response, (response) => new EsolveVaultItemResult(response))), catchError((errorRes) => {\r\n return this.errorHandler.handleHttpPostError('set-vault', errorRes);\r\n }));\r\n }\r\n /**\r\n * Delete a card in the vault\r\n *\r\n * @param id ID of the vault item\r\n *\r\n * @returns An `Observable` with the result of the vault delete.\r\n */\r\n deleteVaultItem(id) {\r\n return this.http\r\n .delete(`${this.config.api_url}/delete-vault.php`, {\r\n params: { id },\r\n responseType: 'json',\r\n observe: 'body',\r\n })\r\n .pipe(map((http_response) => {\r\n if ((http_response.result === undefined) ||\r\n (http_response.result === null) ||\r\n (http_response.result.status !== 'success')) {\r\n throw http_response;\r\n }\r\n return new EsolveResult(http_response.result.status, http_response.result.code, http_response.result.message);\r\n }), catchError((errorRes) => {\r\n return this.errorHandler.handleHttpDeleteError('delete-vault', errorRes);\r\n }));\r\n }\r\n /**\r\n * Sets the payment for the specified transaction using selected payment\r\n * method.\r\n *\r\n * @param transaction_id eSolve ID to the transaction\r\n * @param payment_methods_id eSolve ID to the selected payment method\r\n * @param card ID of selected card from the vault or information to a brand new card\r\n *\r\n * @returns An `Observable` with the result of the payment\r\n */\r\n setPayment(transaction_id, payment_methods_id, card, links) {\r\n const body = {\r\n payment: {\r\n cart_id: transaction_id,\r\n payment_methods_id,\r\n },\r\n };\r\n if (card) {\r\n if (typeof card === 'number') {\r\n body.payment.user_vault_id = card;\r\n }\r\n else {\r\n body.card = {\r\n card_number: card.card_number,\r\n card_name: card.name,\r\n card_cvv: card.cvv,\r\n card_expiry: this.generateExpiry(card),\r\n };\r\n }\r\n }\r\n if (links) {\r\n body.links = links;\r\n }\r\n return this.http\r\n .post(`${this.config.api_url}/set-payment.php`, body, {\r\n headers: {\r\n 'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;',\r\n },\r\n responseType: 'json',\r\n observe: 'body',\r\n })\r\n .pipe(map((http_response) => this.responseHandler.validateSingleHttpResponse(http_response, (response) => new EsolvePaymentResult(response))), catchError((errorRes) => {\r\n return this.errorHandler.handleHttpPostError('set-payment', errorRes);\r\n }));\r\n }\r\n /**\r\n * Processes the eSolve payment method records.\r\n *\r\n * @param records Records to process\r\n *\r\n * @returns An array of processed payment methods.\r\n */\r\n processPaymentMethods(records) {\r\n const payment_methods = [];\r\n if (records) {\r\n for (const record of records) {\r\n const payment_method = new EsolvePaymentMethod(record);\r\n payment_methods.push(payment_method);\r\n }\r\n }\r\n return payment_methods;\r\n }\r\n /**\r\n * Processes the eSolve vault records.\r\n *\r\n * @param records Records to process\r\n *\r\n * @returns An array of processed vault items (a.k.a. cards)\r\n */\r\n processVaultItems(records) {\r\n const vault = [];\r\n if (records) {\r\n for (const record of records) {\r\n const vault_item = new EsolveVaultItem(+record.id, +record.payment_methods_id, record.last4, record.brand, record.expiry_timestamp);\r\n vault.push(vault_item);\r\n }\r\n }\r\n return vault;\r\n }\r\n /**\r\n * Generate a concatenated string with the expiry month and year\r\n *\r\n * @param card_data Credit card data\r\n *\r\n * @returns Expiry string\r\n */\r\n generateExpiry(card_data) {\r\n const month_string = card_data.expiry_month.padStart(2, '0');\r\n const year_string = card_data.expiry_year.padStart(4, '0');\r\n return `${month_string}${year_string}`;\r\n }\r\n}\r\nEsolvePaymentService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolvePaymentService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1.HttpClient }, { token: i2.EsolveErrorHandlerService }, { token: i3.EsolveResponseHandlerService }], target: i0.ɵɵFactoryTarget.Injectable });\r\nEsolvePaymentService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolvePaymentService, providedIn: 'root' });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolvePaymentService, decorators: [{\r\n type: Injectable,\r\n args: [{\r\n providedIn: 'root',\r\n }]\r\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\r\n type: Inject,\r\n args: [ESOLVE_CONNECT_CONFIG]\r\n }] }, { type: i1.HttpClient }, { type: i2.EsolveErrorHandlerService }, { type: i3.EsolveResponseHandlerService }]; } });\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXBheW1lbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9wYXltZW50L2Vzb2x2ZS1wYXltZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBcUIsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFHakYsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUUxRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUMxRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDN0QsT0FBTyxFQUdILDRCQUE0QixHQUUvQixNQUFNLG9CQUFvQixDQUFDO0FBRTVCLE9BQU8sRUFDSCxtQkFBbUIsRUFDbkIsbUJBQW1CLEVBQ25CLGVBQWUsRUFDZixxQkFBcUIsR0FDeEIsTUFBTSxXQUFXLENBQUM7Ozs7O0FBZ0JuQixNQUFNLE9BQU8sb0JBQW9CO0lBQzdCLFlBQzJDLE1BQTJCLEVBQzFELElBQWdCLEVBQ2hCLFlBQXVDLEVBQ3ZDLGVBQTZDO1FBSGQsV0FBTSxHQUFOLE1BQU0sQ0FBcUI7UUFDMUQsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixpQkFBWSxHQUFaLFlBQVksQ0FBMkI7UUFDdkMsb0JBQWUsR0FBZixlQUFlLENBQThCO0lBQ3JELENBQUM7SUFFTDs7Ozs7O09BTUc7SUFDSSxpQkFBaUIsQ0FBQyxPQUFvQztRQUN6RCxPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ1gsR0FBRyxDQUNBLEdBQUcsSUFBSSxDQUFDLE1BQU0s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QW9CLGNBRmpCLE1BQU07MkZBRVQsb0JBQW9CO2tCQUhoQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7MEJBR1EsTUFBTTsyQkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEVycm9yUmVzcG9uc2UsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcblxyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IEVTT0xWRV9DT05ORUNUX0NPTkZJRyB9IGZyb20gJy4uL2Vzb2x2ZS1jb25uZWN0LWNvbmZpZy5jb25zdGFudCc7XHJcbmltcG9ydCB7IEVzb2x2ZUNvbm5lY3RDb25maWcgfSBmcm9tICcuLi9lc29sdmUtY29ubmVjdC5jb25maWcnO1xyXG5pbXBvcnQgeyBFc29sdmVFcnJvckhhbmRsZXJTZXJ2aWNlIH0gZnJvbSAnLi4vc2hhcmVkL2Vycm9ycy9lc29sdmUtZXJyb3ItaGFuZGxlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRXNvbHZlUmVzdWx0IH0gZnJvbSAnLi4vc2hhcmVkL2Vzb2x2ZS1yZXN1bHQubW9kZWwnO1xyXG5pbXBvcnQge1xyXG4gICAgRXNvbHZlRGVsZXRlUmVzcG9uc2UsXHJcbiAgICBFc29sdmVHZXRSZXNwb25zZSxcclxuICAgIEVzb2x2ZVJlc3BvbnNlSGFuZGxlclNlcnZpY2UsXHJcbiAgICBFc29sdmVTZXRSZXNwb25zZSxcclxufSBmcm9tICcuLi9zaGFyZWQvcmVzcG9uc2UnO1xyXG5cclxuaW1wb3J0IHtcclxuICAgIEVzb2x2ZVBheW1lbnRNZXRob2QsXHJcbiAgICBFc29sdmVQYXltZW50UmVzdWx0LFxyXG4gICAgRXNvbHZlVmF1bHRJdGVtLFxyXG4gICAgRXNvbHZlVmF1bHRJdGVtUmVzdWx0LFxyXG59IGZyb20gJy4vY2xhc3Nlcyc7XHJcbmltcG9ydCB7XHJcbiAgICBFc29sdmVDYXJkRGF0YSxcclxuICAgIEVzb2x2ZVBheW1lbnRNZXRob2RPcHRpb25zLFxyXG4gICAgRXNvbHZlUGF5bWVudE1ldGhvZFJlY29yZCxcclxuICAgIEVzb2x2ZVBheW1lbnRSZWRpcmVjdExpbmtzLFxyXG4gICAgRXNvbHZlUGF5bWVudFJlc3BvbnNlLFxyXG4gICAgRXNvbHZlVmF1bHRSZWNvcmQsXHJcbiAgICBFc29sdmVWYXVsdFJlc3BvbnNlLFxyXG59IGZyb20gJy4vaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IEVzb2x2ZVBheW1lbnRTZXRCb2R5IH0gZnJvbSAnLi9pbnRlcmZhY2VzL2Vzb2x2ZS1wYXltZW50LXNldC1ib2R5LmludGVyZmFjZSc7XHJcbmltcG9ydCB7IEVzb2x2ZVBheW1lbnRTdGF0dXMgfSBmcm9tICcuL2ludGVyZmFjZXMvZXNvbHZlLXBheW1lbnQtc3RhdHVzLmludGVyZmFjZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFc29sdmVQYXltZW50U2VydmljZSB7XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBASW5qZWN0KEVTT0xWRV9DT05ORUNUX0NPTkZJRykgcHJpdmF0ZSBjb25maWc6IEVzb2x2ZUNvbm5lY3RDb25maWcsXHJcbiAgICAgICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgICAgIHByaXZhdGUgZXJyb3JIYW5kbGVyOiBFc29sdmVFcnJvckhhbmRsZXJTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgcmVzcG9uc2VIYW5kbGVyOiBFc29sdmVSZXNwb25zZUhhbmRsZXJTZXJ2aWNlLFxyXG4gICAgKSB7IH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHJpZXZlcyBhIGxpc3Qgb2YgcGF5bWVudCBtZXRob2RzLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBvcHRpb25zIEZpbHRlciBvcHRpb25zXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybnMgQW4gYE9ic2VydmFibGVgIHdpdGggYW4gYXJyYXkgb2YgcGF5bWVudCBtZXRob2RzXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRQYXltZW50TWV0aG9kcyhvcHRpb25zPzogRXNvbHZlUGF5bWVudE1ldGhvZE9wdGlvbnMpOiBPYnNlcnZhYmxlPEVzb2x2ZVBheW1lbnRNZXRob2RbXT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgICAgICAgLmdldDxFc29sdmVHZXRSZXNwb25zZTxFc29sdmVQYXltZW50TWV0aG9kUmVjb3JkW10+PihcclxuICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L2dldC1wYXltZW50LW1ldGhvZHMucGhwYCxcclxuICAgICAgICAgICAgICAgIHsgcGFyYW1zOiB7IC4uLm9wdGlvbnMgfSB9LFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5yZWNvcmRzID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzUGF5bWVudE1ldGhvZHMocmVzcG9uc2UucmVjb3Jkcyk7XHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHJpZXZlIHRoZSBwYXltZW50IHN0YXR1cyBvZiB0aGUgc3BlY2lmaWVkIHRyYW5zYWN0aW9uXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHRyYW5zYWN0aW9uX2lkIElEIG9mIHRoZSB0cmFuc2FjdGlvblxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIEFuIGBPYnNlcnZhYmxlYCB3aXRoIHRoZSBzdWNjZXNzIHN0YXR1cyBvZiB0aGUgcGF5bWVudFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0UGF5bWVudFN0YXR1cyh0cmFuc2FjdGlvbl9pZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAgICAgICAuZ2V0PEVzb2x2ZUdldFJlc3BvbnNlPEVzb2x2ZVBheW1lbnRTdGF0dXM+PihcclxuICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L2dldC1wYXltZW50LXN0YXR1cy5waHBgLFxyXG4gICAgICAgICAgICAgICAgeyBwYXJhbXM6IHsgY2FydF9pZDogdHJhbnNhY3Rpb25faWQgfSB9LFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5yZWNvcmRzID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UucmVjb3Jkcy5zdWNjZXNzO1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXRyaWV2ZXMgYSBsaXN0IG9mIHNhdmVkIGNhcmRzIGZyb20gdGhlIHZhdWx0LlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBwYXltZW50X21ldGhvZHNfaWQgZVNvbHZlIElEIG9mIGEgcGF5bWVudCBtZXRob2RcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyBBbiBgT2JzZXJ2YWJsZWAgd2l0aCBhbiBhcnJheSBvZiBzYXZlZCBiYW5rIGNhcmRzXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRWYXVsdChwYXltZW50X21ldGhvZHNfaWQ/OiBudW1iZXIpOiBPYnNlcnZhYmxlPEVzb2x2ZVZhdWx0SXRlbVtdPiB7XHJcbiAgICAgICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCk7XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgcGF5bWVudF9tZXRob2RzX2lkICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdwYXltZW50X21ldGhvZHNfaWQnLCBwYXltZW50X21ldGhvZHNfaWQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAgICAgICAuZ2V0PEVzb2x2ZUdldFJlc3BvbnNlPEVzb2x2ZVZhdWx0UmVjb3JkW10+PihcclxuICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L2dldC12YXVsdC5waHBgLFxyXG4gICAgICAgICAgICAgICAgeyBwYXJhbXMgfSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UucmVjb3JkcyA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc1ZhdWx0SXRlbXMocmVzcG9uc2UucmVjb3Jkcyk7XHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgYSBuZXcgY2FyZCBpbiB0aGUgdmF1bHQgT1IgdXBkYXRlcyBhbiBleGlzdGluZyBvbmUuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHBheW1lbnRfbWV0aG9kc19pZCBTZWxlY3RlZCBwYXltZW50IG1ldGhvZFxyXG4gICAgICogQHBhcmFtIGNhcmRfZGF0YSBJbmZvcm1hdGlvbiBvZiBiYW5rIGNhcmRcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyBBbiBgT2JzZXJ2YWJsZWAgd2l0aCB0aGUgcmVzdWx0IG9mIHRoZSB2YXVsdCBzZXQuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzZXRWYXVsdEl0ZW0oXHJcbiAgICAgICAgcGF5bWVudF9tZXRob2RzX2lkOiBudW1iZXIsXHJcbiAgICAgICAgY2FyZF9kYXRhOiBFc29sdmVDYXJkRGF0YSxcclxuICAgICk6IE9ic2VydmFibGU8RXNvbHZlVmF1bHRJdGVtUmVzdWx0PiB7XHJcbiAgICAgICAgY29uc3QgYm9keSA9IHtcclxuICAgICAgICAgICAgdmF1bHQ6IHtcclxuICAgICAgICAgICAgICAgIHBheW1lbnRfbWV0aG9kc19pZCxcclxuICAgICAgICAgICAgICAgIGNhcmRfbnVtYmVyOiBjYXJkX2RhdGEuY2FyZF9udW1iZXIsXHJcbiAgICAgICAgICAgICAgICBjYXJkX25hbWU6IGNhcmRfZGF0YS5uYW1lLFxyXG4gICAgICAgICAgICAgICAgY2FyZF9jdnY6IGNhcmRfZGF0YS5jdnYsXHJcbiAgICAgICAgICAgICAgICBjYXJkX2V4cGlyeTogdGhpcy5nZW5lcmF0ZUV4cGlyeShjYXJkX2RhdGEpLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgICAgICAgLnBvc3Q8RXNvbHZlU2V0UmVzcG9uc2U8RXNvbHZlVmF1bHRSZXNwb25zZT4+KFxyXG4gICAgICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vc2V0LXZhdWx0LnBocGAsXHJcbiAgICAgICAgICAgICAgICBib2R5LFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD11dGYtODsnLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlOiAnanNvbicsXHJcbiAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZTogJ2JvZHknLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIG1hcCgoaHR0cF9yZXNwb25zZSkgPT4gdGhpcy5yZXNwb25zZUhhbmRsZXIudmFsaWRhdGVTaW5nbGVIdHRwUmVzcG9uc2UoXHJcbiAgICAgICAgICAgICAgICAgICAgaHR0cF9yZXNwb25zZSxcclxuICAgICAgICAgICAgICAgICAgICAocmVzcG9uc2UpID0+IG5ldyBFc29sdmVWYXVsdEl0ZW1SZXN1bHQocmVzcG9uc2UpLFxyXG4gICAgICAgICAgICAgICAgKSksXHJcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvclJlczogSHR0cEVycm9yUmVzcG9uc2UgfCBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5lcnJvckhhbmRsZXIuaGFuZGxlSHR0cFBvc3RFcnJvcignc2V0LXZhdWx0JywgZXJyb3JSZXMpO1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEZWxldGUgYSBjYXJkIGluIHRoZSB2YXVsdFxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBpZCBJRCBvZiB0aGUgdmF1bHQgaXRlbVxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIEFuIGBPYnNlcnZhYmxlYCB3aXRoIHRoZSByZXN1bHQgb2YgdGhlIHZhdWx0IGRlbGV0ZS5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGRlbGV0ZVZhdWx0SXRlbShpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxFc29sdmVSZXN1bHQ+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgICAgICAgIC5kZWxldGU8RXNvbHZlRGVsZXRlUmVzcG9uc2U+KFxyXG4gICAgICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vZGVsZXRlLXZhdWx0LnBocGAsXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFyYW1zOiB7IGlkIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlOiAnanNvbicsXHJcbiAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZTogJ2JvZHknLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIG1hcCgoaHR0cF9yZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGh0dHBfcmVzcG9uc2UucmVzdWx0ID09PSB1bmRlZmluZWQpIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChodHRwX3Jlc3BvbnNlLnJlc3VsdCA9PT0gbnVsbCkgfHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGh0dHBfcmVzcG9uc2UucmVzdWx0LnN0YXR1cyAhPT0gJ3N1Y2Nlc3MnKVxyXG4gICAgICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBodHRwX3Jlc3BvbnNlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBFc29sdmVSZXN1bHQoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGh0dHBfcmVzcG9uc2UucmVzdWx0LnN0YXR1cyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaHR0cF9yZXNwb25zZS5yZXN1bHQuY29kZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaHR0cF9yZXNwb25zZS5yZXN1bHQubWVzc2FnZSxcclxuICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvclJlczogSHR0cEVycm9yUmVzcG9uc2UgfCBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5lcnJvckhhbmRsZXIuaGFuZGxlSHR0cERlbGV0ZUVycm9yKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAnZGVsZXRlLXZhdWx0JyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JSZXMsXHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgcGF5bWVudCBmb3IgdGhlIHNwZWNpZmllZCB0cmFuc2FjdGlvbiB1c2luZyBzZWxlY3RlZCBwYXltZW50XHJcbiAgICAgKiBtZXRob2QuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHRyYW5zYWN0aW9uX2lkIGVTb2x2ZSBJRCB0byB0aGUgdHJhbnNhY3Rpb25cclxuICAgICAqIEBwYXJhbSBwYXltZW50X21ldGhvZHNfaWQgZVNvbHZlIElEIHRvIHRoZSBzZWxlY3RlZCBwYXltZW50IG1ldGhvZFxyXG4gICAgICogQHBhcmFtIGNhcmQgSUQgb2Ygc2VsZWN0ZWQgY2FyZCBmcm9tIHRoZSB2YXVsdCBvciBpbmZvcm1hdGlvbiB0byBhIGJyYW5kIG5ldyBjYXJkXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybnMgQW4gYE9ic2VydmFibGVgIHdpdGggdGhlIHJlc3VsdCBvZiB0aGUgcGF5bWVudFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc2V0UGF5bWVudChcclxuICAgICAgICB0cmFuc2FjdGlvbl9pZDogbnVtYmVyLFxyXG4gICAgICAgIHBheW1lbnRfbWV0aG9kc19pZDogbnVtYmVyLFxyXG4gICAgICAgIGNhcmQ/OiBFc29sdmVDYXJkRGF0YSB8IG51bWJlcixcclxuICAgICAgICBsaW5rcz86IEVzb2x2ZVBheW1lbnRSZWRpcmVjdExpbmtzLFxyXG4gICAgKTogT2JzZXJ2YWJsZTxFc29sdmVQYXltZW50UmVzdWx0PiB7XHJcbiAgICAgICAgY29uc3QgYm9keTogRXNvbHZlUGF5bWVudFNldEJvZHkgPSB7XHJcbiAgICAgICAgICAgIHBheW1lbnQ6IHtcclxuICAgICAgICAgICAgICAgIGNhcnRfaWQ6IHRyYW5zYWN0aW9uX2lkLFxyXG4gICAgICAgICAgICAgICAgcGF5bWVudF9tZXRob2RzX2lkLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIGlmIChjYXJkKSB7XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY2FyZCA9PT0gJ251bWJlcicpIHtcclxuICAgICAgICAgICAgICAgIGJvZHkucGF5bWVudC51c2VyX3ZhdWx0X2lkID0gY2FyZDtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGJvZHkuY2FyZCA9IHtcclxuICAgICAgICAgICAgICAgICAgICBjYXJkX251bWJlcjogY2FyZC5jYXJkX251bWJlcixcclxuICAgICAgICAgICAgICAgICAgICBjYXJkX25hbWU6IGNhcmQubmFtZSxcclxuICAgICAgICAgICAgICAgICAgICBjYXJkX2N2djogY2FyZC5jdnYsXHJcbiAgICAgICAgICAgICAgICAgICAgY2FyZF9leHBpcnk6IHRoaXMuZ2VuZXJhdGVFeHBpcnkoY2FyZCksXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAobGlua3MpIHtcclxuICAgICAgICAgICAgYm9keS5saW5rcyA9IGxpbmtzO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAgICAgICAucG9zdDxFc29sdmVTZXRSZXNwb25zZTxFc29sdmVQYXltZW50UmVzcG9uc2U+PihcclxuICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L3NldC1wYXltZW50LnBocGAsXHJcbiAgICAgICAgICAgICAgICBib2R5LFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD11dGYtODsnLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlOiAnanNvbicsXHJcbiAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZTogJ2JvZHknLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIG1hcCgoaHR0cF9yZXNwb25zZSkgPT4gdGhpcy5yZXNwb25zZUhhbmRsZXIudmFsaWRhdGVTaW5nbGVIdHRwUmVzcG9uc2UoXHJcbiAgICAgICAgICAgICAgICAgICAgaHR0cF9yZXNwb25zZSxcclxuICAgICAgICAgICAgICAgICAgICAocmVzcG9uc2UpID0+IG5ldyBFc29sdmVQYXltZW50UmVzdWx0KHJlc3BvbnNlKSxcclxuICAgICAgICAgICAgICAgICkpLFxyXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3JSZXM6IEh0dHBFcnJvclJlc3BvbnNlIHwgYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JIYW5kbGVyLmhhbmRsZUh0dHBQb3N0RXJyb3IoJ3NldC1wYXltZW50JywgZXJyb3JSZXMpO1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQcm9jZXNzZXMgdGhlIGVTb2x2ZSBwYXltZW50IG1ldGhvZCByZWNvcmRzLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSByZWNvcmRzIFJlY29yZHMgdG8gcHJvY2Vzc1xyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIHByb2Nlc3NlZCBwYXltZW50IG1ldGhvZHMuXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgcHJvY2Vzc1BheW1lbnRNZXRob2RzKHJlY29yZHM6IEVzb2x2ZVBheW1lbnRNZXRob2RSZWNvcmRbXSk6IEVzb2x2ZVBheW1lbnRNZXRob2RbXSB7XHJcbiAgICAgICAgY29uc3QgcGF5bWVudF9tZXRob2RzOiBFc29sdmVQYXltZW50TWV0aG9kW10gPSBbXTtcclxuXHJcbiAgICAgICAgaWYgKHJlY29yZHMpIHtcclxuICAgICAgICAgICAgZm9yIChjb25zdCByZWNvcmQgb2YgcmVjb3Jkcykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcGF5bWVudF9tZXRob2QgPSBuZXcgRXNvbHZlUGF5bWVudE1ldGhvZChyZWNvcmQpO1xyXG5cclxuICAgICAgICAgICAgICAgIHBheW1lbnRfbWV0aG9kcy5wdXNoKHBheW1lbnRfbWV0aG9kKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHBheW1lbnRfbWV0aG9kcztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFByb2Nlc3NlcyB0aGUgZVNvbHZlIHZhdWx0IHJlY29yZHMuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHJlY29yZHMgUmVjb3JkcyB0byBwcm9jZXNzXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybnMgQW4gYXJyYXkgb2YgcHJvY2Vzc2VkIHZhdWx0IGl0ZW1zIChhLmsuYS4gY2FyZHMpXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgcHJvY2Vzc1ZhdWx0SXRlbXMocmVjb3JkczogRXNvbHZlVmF1bHRSZWNvcmRbXSk6IEVzb2x2ZVZhdWx0SXRlbVtdIHtcclxuICAgICAgICBjb25zdCB2YXVsdDogRXNvbHZlVmF1bHRJdGVtW10gPSBbXTtcclxuXHJcbiAgICAgICAgaWYgKHJlY29yZHMpIHtcclxuICAgICAgICAgICAgZm9yIChjb25zdCByZWNvcmQgb2YgcmVjb3Jkcykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgdmF1bHRfaXRlbSA9IG5ldyBFc29sdmVWYXVsdEl0ZW0oXHJcbiAgICAgICAgICAgICAgICAgICAgK3JlY29yZC5pZCxcclxuICAgICAgICAgICAgICAgICAgICArcmVjb3JkLnBheW1lbnRfbWV0aG9kc19pZCxcclxuICAgICAgICAgICAgICAgICAgICByZWNvcmQubGFzdDQsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLmJyYW5kLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlY29yZC5leHBpcnlfdGltZXN0YW1wLFxyXG4gICAgICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICAgICAgICB2YXVsdC5wdXNoKHZhdWx0X2l0ZW0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdmF1bHQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZW5lcmF0ZSBhIGNvbmNhdGVuYXRlZCBzdHJpbmcgd2l0aCB0aGUgZXhwaXJ5IG1vbnRoIGFuZCB5ZWFyXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGNhcmRfZGF0YSBDcmVkaXQgY2FyZCBkYXRhXHJcbiAgICAgKlxyXG4gICAgICogIEByZXR1cm5zIEV4cGlyeSBzdHJpbmdcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBnZW5lcmF0ZUV4cGlyeShjYXJkX2RhdGE6IEVzb2x2ZUNhcmREYXRhKTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCBtb250aF9zdHJpbmcgPSBjYXJkX2RhdGEuZXhwaXJ5X21vbnRoLnBhZFN0YXJ0KDIsICcwJyk7XHJcbiAgICAgICAgY29uc3QgeWVhcl9zdHJpbmcgPSBjYXJkX2RhdGEuZXhwaXJ5X3llYXIucGFkU3RhcnQoNCwgJzAnKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGAke21vbnRoX3N0cmluZ30ke3llYXJfc3RyaW5nfWA7XHJcbiAgICB9XHJcbn1cclxuIl19","export class EsolveShippingMethod {\r\n constructor(id, carrier_name, delivery_category, description, location, pricing, link_to_carrier_website, days_to_deliver, shipping_cost_calculation_method, insurance_cost_calculation_method, insurance_cost_percentage, metric_factor, allow_immediate_payment_processing, allow_postal_address, allow_physical_address, client_to_collect, is_default, location_id, use_zones, min_distance, max_distance, shipping_surge_condition, shipping_surge_percentage, sort_priority, shipping_group, shipping_slot_identifier, shipping_slot_delay_hours, image_url) {\r\n this.id = id;\r\n this.carrier_name = carrier_name;\r\n this.delivery_category = delivery_category;\r\n this.description = description;\r\n this.location = location;\r\n this.pricing = pricing;\r\n this.link_to_carrier_website = link_to_carrier_website;\r\n this.days_to_deliver = days_to_deliver;\r\n this.shipping_cost_calculation_method = shipping_cost_calculation_method;\r\n this.insurance_cost_calculation_method = insurance_cost_calculation_method;\r\n this.insurance_cost_percentage = insurance_cost_percentage;\r\n this.metric_factor = metric_factor;\r\n this.allow_immediate_payment_processing = allow_immediate_payment_processing;\r\n this.allow_postal_address = allow_postal_address;\r\n this.allow_physical_address = allow_physical_address;\r\n this.client_to_collect = client_to_collect;\r\n this.is_default = is_default;\r\n this.location_id = location_id;\r\n this.use_zones = use_zones;\r\n this.min_distance = min_distance;\r\n this.max_distance = max_distance;\r\n this.shipping_surge_condition = shipping_surge_condition;\r\n this.shipping_surge_percentage = shipping_surge_percentage;\r\n this.sort_priority = sort_priority;\r\n this.shipping_group = shipping_group;\r\n this.shipping_slot_identifier = shipping_slot_identifier;\r\n this.shipping_slot_delay_hours = shipping_slot_delay_hours;\r\n this.image_url = image_url;\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXNoaXBwaW5nLW1ldGhvZC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9zaGlwcGluZy9lc29sdmUtc2hpcHBpbmctbWV0aG9kLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE1BQU0sT0FBTyxvQkFBb0I7SUFDN0IsWUFDVyxFQUFVLEVBQ1YsWUFBb0IsRUFDcEIsaUJBQXlCLEVBQ3pCLFdBQW1CLEVBQ25CLFFBQWdDLEVBQ2hDLE9BQWUsRUFDZix1QkFBK0IsRUFDL0IsZUFBdUIsRUFDdkIsZ0NBQWlFLEVBQ2pFLGlDQUFtRSxFQUNuRSx5QkFBaUMsRUFDakMsYUFBcUIsRUFDckIsa0NBQTJDLEVBQzNDLG9CQUE2QixFQUM3QixzQkFBK0IsRUFDL0IsaUJBQTBCLEVBQzFCLFVBQW1CLEVBQ25CLFdBQW1CLEVBQ25CLFNBQWtCLEVBQ2xCLFlBQW9CLEVBQ3BCLFlBQW9CLEVBQ3BCLHdCQUFnQyxFQUNoQyx5QkFBaUMsRUFDakMsYUFBcUIsRUFDckIsY0FBc0IsRUFDdEIsd0JBQWdDLEVBQ2hDLHlCQUFpQyxFQUNqQyxTQUFpQjtRQTNCakIsT0FBRSxHQUFGLEVBQUUsQ0FBUTtRQUNWLGlCQUFZLEdBQVosWUFBWSxDQUFRO1FBQ3BCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBUTtRQUN6QixnQkFBVyxHQUFYLFdBQVcsQ0FBUTtRQUNuQixhQUFRLEdBQVIsUUFBUSxDQUF3QjtRQUNoQyxZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ2YsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUFRO1FBQy9CLG9CQUFlLEdBQWYsZUFBZSxDQUFRO1FBQ3ZCLHFDQUFnQyxHQUFoQyxnQ0FBZ0MsQ0FBaUM7UUFDakUsc0NBQWlDLEdBQWpDLGlDQUFpQyxDQUFrQztRQUNuRSw4QkFBeUIsR0FBekIseUJBQXlCLENBQVE7UUFDakMsa0JBQWEsR0FBYixhQUFhLENBQVE7UUFDckIsdUNBQWtDLEdBQWxDLGtDQUFrQyxDQUFTO1FBQzNDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBUztRQUM3QiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQVM7UUFDL0Isc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFTO1FBQzFCLGVBQVUsR0FBVixVQUFVLENBQVM7UUFDbkIsZ0JBQVcsR0FBWCxXQUFXLENBQVE7UUFDbkIsY0FBUyxHQUFULFNBQVMsQ0FBUztRQUNsQixpQkFBWSxHQUFaLFlBQVksQ0FBUTtRQUNwQixpQkFBWSxHQUFaLFlBQVksQ0FBUTtRQUNwQiw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQVE7UUFDaEMsOEJBQXlCLEdBQXpCLHlCQUF5QixDQUFRO1FBQ2pDLGtCQUFhLEdBQWIsYUFBYSxDQUFRO1FBQ3JCLG1CQUFjLEdBQWQsY0FBYyxDQUFRO1FBQ3RCLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBUTtRQUNoQyw4QkFBeUIsR0FBekIseUJBQXlCLENBQVE7UUFDakMsY0FBUyxHQUFULFNBQVMsQ0FBUTtJQUN4QixDQUFDO0NBQ1IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFc29sdmVTaGlwcGluZ0xvY2F0aW9uIH0gZnJvbSAnLi9lc29sdmUtc2hpcHBpbmctbG9jYXRpb24udHlwZSc7XHJcbmltcG9ydCB7IEVzb2x2ZVNoaXBwaW5nQ2FsY3VsYXRpb25NZXRob2QgfSBmcm9tICcuL2Vzb2x2ZS1zaGlwcGluZy1jYWxjdWxhdGlvbi1tZXRob2QudHlwZSc7XHJcbmltcG9ydCB7IEVzb2x2ZUluc3VyYW5jZUNhbGN1bGF0aW9uTWV0aG9kIH0gZnJvbSAnLi9lc29sdmUtaW5zdXJhbmNlLWNhbGN1bGF0aW9uLW1ldGhvZC50eXBlJztcclxuXHJcbmV4cG9ydCBjbGFzcyBFc29sdmVTaGlwcGluZ01ldGhvZCB7XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwdWJsaWMgaWQ6IG51bWJlcixcclxuICAgICAgICBwdWJsaWMgY2Fycmllcl9uYW1lOiBzdHJpbmcsXHJcbiAgICAgICAgcHVibGljIGRlbGl2ZXJ5X2NhdGVnb3J5OiBzdHJpbmcsXHJcbiAgICAgICAgcHVibGljIGRlc2NyaXB0aW9uOiBzdHJpbmcsXHJcbiAgICAgICAgcHVibGljIGxvY2F0aW9uOiBFc29sdmVTaGlwcGluZ0xvY2F0aW9uLFxyXG4gICAgICAgIHB1YmxpYyBwcmljaW5nOiBzdHJpbmcsXHJcbiAgICAgICAgcHVibGljIGxpbmtfdG9fY2Fycmllcl93ZWJzaXRlOiBzdHJpbmcsXHJcbiAgICAgICAgcHVibGljIGRheXNfdG9fZGVsaXZlcjogbnVtYmVyLFxyXG4gICAgICAgIHB1YmxpYyBzaGlwcGluZ19jb3N0X2NhbGN1bGF0aW9uX21ldGhvZDogRXNvbHZlU2hpcHBpbmdDYWxjdWxhdGlvbk1ldGhvZCxcclxuICAgICAgICBwdWJsaWMgaW5zdXJhbmNlX2Nvc3RfY2FsY3VsYXRpb25fbWV0aG9kOiBFc29sdmVJbnN1cmFuY2VDYWxjdWxhdGlvbk1ldGhvZCxcclxuICAgICAgICBwdWJsaWMgaW5zdXJhbmNlX2Nvc3RfcGVyY2VudGFnZTogbnVtYmVyLFxyXG4gICAgICAgIHB1YmxpYyBtZXRyaWNfZmFjdG9yOiBudW1iZXIsXHJcbiAgICAgICAgcHVibGljIGFsbG93X2ltbWVkaWF0ZV9wYXltZW50X3Byb2Nlc3Npbmc6IGJvb2xlYW4sXHJcbiAgICAgICAgcHVibGljIGFsbG93X3Bvc3RhbF9hZGRyZXNzOiBib29sZWFuLFxyXG4gICAgICAgIHB1YmxpYyBhbGxvd19waHlzaWNhbF9hZGRyZXNzOiBib29sZWFuLFxyXG4gICAgICAgIHB1YmxpYyBjbGllbnRfdG9fY29sbGVjdDogYm9vbGVhbixcclxuICAgICAgICBwdWJsaWMgaXNfZGVmYXVsdDogYm9vbGVhbixcclxuICAgICAgICBwdWJsaWMgbG9jYXRpb25faWQ6IG51bWJlcixcclxuICAgICAgICBwdWJsaWMgdXNlX3pvbmVzOiBib29sZWFuLFxyXG4gICAgICAgIHB1YmxpYyBtaW5fZGlzdGFuY2U6IG51bWJlcixcclxuICAgICAgICBwdWJsaWMgbWF4X2Rpc3RhbmNlOiBudW1iZXIsXHJcbiAgICAgICAgcHVibGljIHNoaXBwaW5nX3N1cmdlX2NvbmRpdGlvbjogbnVtYmVyLFxyXG4gICAgICAgIHB1YmxpYyBzaGlwcGluZ19zdXJnZV9wZXJjZW50YWdlOiBudW1iZXIsXHJcbiAgICAgICAgcHVibGljIHNvcnRfcHJpb3JpdHk6IG51bWJlcixcclxuICAgICAgICBwdWJsaWMgc2hpcHBpbmdfZ3JvdXA6IHN0cmluZyxcclxuICAgICAgICBwdWJsaWMgc2hpcHBpbmdfc2xvdF9pZGVudGlmaWVyOiBzdHJpbmcsXHJcbiAgICAgICAgcHVibGljIHNoaXBwaW5nX3Nsb3RfZGVsYXlfaG91cnM6IG51bWJlcixcclxuICAgICAgICBwdWJsaWMgaW1hZ2VfdXJsOiBzdHJpbmcsXHJcbiAgICApIHsgfVxyXG59XHJcbiJdfQ==","export class EsolveShippingTotals {\r\n constructor(total, vat, savings) {\r\n this.total = total;\r\n this.vat = vat;\r\n this.savings = savings;\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXNoaXBwaW5nLXRvdGFscy5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9zaGlwcGluZy9lc29sdmUtc2hpcHBpbmctdG90YWxzLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxvQkFBb0I7SUFDN0IsWUFDVyxLQUFhLEVBQ2IsR0FBVyxFQUNYLE9BQWU7UUFGZixVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQ2IsUUFBRyxHQUFILEdBQUcsQ0FBUTtRQUNYLFlBQU8sR0FBUCxPQUFPLENBQVE7SUFDdEIsQ0FBQztDQUNSIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIEVzb2x2ZVNoaXBwaW5nVG90YWxzIHtcclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHB1YmxpYyB0b3RhbDogbnVtYmVyLFxyXG4gICAgICAgIHB1YmxpYyB2YXQ6IG51bWJlcixcclxuICAgICAgICBwdWJsaWMgc2F2aW5nczogbnVtYmVyLFxyXG4gICAgKSB7IH1cclxufVxyXG4iXX0=","import { EsolveShippingTotals } from './esolve-shipping-totals.model';\r\nexport class EsolveShippingCost {\r\n constructor(\r\n // Shipping\r\n shipping_total = 0, shipping_vat = 0, shipping_total_savings = 0, \r\n // Insurance\r\n insurance_total = 0, insurance_vat = 0, insurance_total_savings = 0) {\r\n this.shipping = new EsolveShippingTotals(shipping_total, shipping_vat, shipping_total_savings);\r\n this.insurance = new EsolveShippingTotals(insurance_total, insurance_vat, insurance_total_savings);\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXNoaXBwaW5nLWNvc3QubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvc2hpcHBpbmcvZXNvbHZlLXNoaXBwaW5nLWNvc3QubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFdEUsTUFBTSxPQUFPLGtCQUFrQjtJQUkzQjtJQUNJLFdBQVc7SUFDWCxpQkFBeUIsQ0FBQyxFQUMxQixlQUF1QixDQUFDLEVBQ3hCLHlCQUFpQyxDQUFDO0lBQ2xDLFlBQVk7SUFDWixrQkFBMEIsQ0FBQyxFQUMzQixnQkFBd0IsQ0FBQyxFQUN6QiwwQkFBa0MsQ0FBQztRQUVuQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksb0JBQW9CLENBQ3BDLGNBQWMsRUFDZCxZQUFZLEVBQ1osc0JBQXNCLENBQ3pCLENBQUM7UUFFRixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksb0JBQW9CLENBQ3JDLGVBQWUsRUFDZixhQUFhLEVBQ2IsdUJBQXVCLENBQzFCLENBQUM7SUFDTixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFc29sdmVTaGlwcGluZ1RvdGFscyB9IGZyb20gJy4vZXNvbHZlLXNoaXBwaW5nLXRvdGFscy5tb2RlbCc7XHJcblxyXG5leHBvcnQgY2xhc3MgRXNvbHZlU2hpcHBpbmdDb3N0IHtcclxuICAgIHB1YmxpYyBzaGlwcGluZzogRXNvbHZlU2hpcHBpbmdUb3RhbHM7XHJcbiAgICBwdWJsaWMgaW5zdXJhbmNlOiBFc29sdmVTaGlwcGluZ1RvdGFscztcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICAvLyBTaGlwcGluZ1xyXG4gICAgICAgIHNoaXBwaW5nX3RvdGFsOiBudW1iZXIgPSAwLFxyXG4gICAgICAgIHNoaXBwaW5nX3ZhdDogbnVtYmVyID0gMCxcclxuICAgICAgICBzaGlwcGluZ190b3RhbF9zYXZpbmdzOiBudW1iZXIgPSAwLFxyXG4gICAgICAgIC8vIEluc3VyYW5jZVxyXG4gICAgICAgIGluc3VyYW5jZV90b3RhbDogbnVtYmVyID0gMCxcclxuICAgICAgICBpbnN1cmFuY2VfdmF0OiBudW1iZXIgPSAwLFxyXG4gICAgICAgIGluc3VyYW5jZV90b3RhbF9zYXZpbmdzOiBudW1iZXIgPSAwLFxyXG4gICAgKSB7XHJcbiAgICAgICAgdGhpcy5zaGlwcGluZyA9IG5ldyBFc29sdmVTaGlwcGluZ1RvdGFscyhcclxuICAgICAgICAgICAgc2hpcHBpbmdfdG90YWwsXHJcbiAgICAgICAgICAgIHNoaXBwaW5nX3ZhdCxcclxuICAgICAgICAgICAgc2hpcHBpbmdfdG90YWxfc2F2aW5ncyxcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICB0aGlzLmluc3VyYW5jZSA9IG5ldyBFc29sdmVTaGlwcGluZ1RvdGFscyhcclxuICAgICAgICAgICAgaW5zdXJhbmNlX3RvdGFsLFxyXG4gICAgICAgICAgICBpbnN1cmFuY2VfdmF0LFxyXG4gICAgICAgICAgICBpbnN1cmFuY2VfdG90YWxfc2F2aW5ncyxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==","import { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { throwError } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { ESOLVE_CONNECT_CONFIG } from '../esolve-connect-config.constant';\r\nimport { EsolveShippingCost } from './esolve-shipping-cost.model';\r\nimport { EsolveShippingMethod } from './esolve-shipping-method.model';\r\nimport * as i0 from \"@angular/core\";\r\nimport * as i1 from \"@angular/common/http\";\r\nexport class EsolveShippingService {\r\n constructor(config, http) {\r\n this.config = config;\r\n this.http = http;\r\n }\r\n /**\r\n * Retrieves a list of shipping methods\r\n *\r\n * @param options Filter options\r\n *\r\n * @returns An `Observable` with an array of shipping methods\r\n */\r\n getShippingMethods(options) {\r\n let params = new HttpParams();\r\n if (options) {\r\n if (typeof options.addresses_id !== 'undefined') {\r\n params = params.set('addresses_id', options.addresses_id);\r\n }\r\n if (typeof options.location_id !== 'undefined') {\r\n params = params.set('location_id', options.location_id);\r\n }\r\n }\r\n return this.http\r\n .get(`${this.config.api_url}/get-shipping-methods.php`, { params })\r\n .pipe(map((response) => {\r\n if (response.records === undefined) {\r\n throw response;\r\n }\r\n return this.processShippingMethods(response.records);\r\n }));\r\n }\r\n /**\r\n * Retrieves the shipping costs\r\n *\r\n * @param shipping_id\r\n * @param addresses_id\r\n * @param location_id\r\n *\r\n * @returns An `Observable` with the shipping costs\r\n */\r\n getShippingCost(shipping_id, addresses_id, location_id) {\r\n try {\r\n let params = new HttpParams();\r\n if (typeof shipping_id === 'undefined') {\r\n throw new Error('Shipping ID is required');\r\n }\r\n else {\r\n params = params.set('shipping_id', shipping_id);\r\n }\r\n if (typeof addresses_id === 'undefined') {\r\n throw new Error('Address ID is required');\r\n }\r\n else {\r\n params = params.set('addresses_id', addresses_id);\r\n }\r\n if (typeof location_id !== 'undefined') {\r\n params = params.set('location_id', location_id);\r\n }\r\n return this.http\r\n .get(`${this.config.api_url}/get-shipping-cost.php`, { params })\r\n .pipe(map((response) => {\r\n if (response.records === undefined) {\r\n throw response;\r\n }\r\n return this.processShippingCost(response.records[0]);\r\n }));\r\n }\r\n catch (err) {\r\n return throwError(() => err);\r\n }\r\n }\r\n /**\r\n * Processes the eSolve shipping method records.\r\n *\r\n * @param records Records to process\r\n *\r\n * @returns An array of processed shipping methods\r\n */\r\n processShippingMethods(records) {\r\n const shipping_methods = [];\r\n if (records) {\r\n for (const record of records) {\r\n const shipping_method = new EsolveShippingMethod(+record.id, record.carrier_name, record.delivery_category, record.description, record.location, record.pricing, record.link_to_carrier_website, +record.days_to_deliver, record.shipping_cost_calculation_method, record.insurance_cost_calculation_method, +record.insurance_cost_percentage, +record.metric_factor, record.allow_immediate_payment_processing, record.allow_postal_address, record.allow_physical_address, record.client_to_collect, record.is_default_shipping_method, +record.location_id, record.use_zones, +record.min_distance, +record.max_distance, +record.shipping_surge_condition, +record.shipping_surge_percentage, +record.sort_priority, record.shipping_group, record.shipping_slot_identifier, +record.shipping_slot_delay_hours, record.image_url);\r\n shipping_methods.push(shipping_method);\r\n }\r\n }\r\n return shipping_methods;\r\n }\r\n /**\r\n * Processes the eSolve shipping costs record.+\r\n *\r\n * @param record Data to process\r\n *\r\n * @returns Processed shipping costs\r\n */\r\n processShippingCost(record) {\r\n const shipping_cost = new EsolveShippingCost(+record.shipping_total, +record.vat_on_shipping, +record.total_saving_on_shipping, +record.insurance_total, +record.vat_on_insurance, +record.total_saving_on_insurance);\r\n return shipping_cost;\r\n }\r\n}\r\nEsolveShippingService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveShippingService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });\r\nEsolveShippingService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveShippingService, providedIn: 'root' });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveShippingService, decorators: [{\r\n type: Injectable,\r\n args: [{\r\n providedIn: 'root',\r\n }]\r\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\r\n type: Inject,\r\n args: [ESOLVE_CONNECT_CONFIG]\r\n }] }, { type: i1.HttpClient }]; } });\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXNoaXBwaW5nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvc2hpcHBpbmcvZXNvbHZlLXNoaXBwaW5nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQWMsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdyQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUcxRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUVsRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7O0FBT3RFLE1BQU0sT0FBTyxxQkFBcUI7SUFDOUIsWUFDMkMsTUFBMkIsRUFDMUQsSUFBZ0I7UUFEZSxXQUFNLEdBQU4sTUFBTSxDQUFxQjtRQUMxRCxTQUFJLEdBQUosSUFBSSxDQUFZO0lBQ3hCLENBQUM7SUFFTDs7Ozs7O09BTUc7SUFDSSxrQkFBa0IsQ0FBQyxPQUFxQztRQUMzRCxJQUFJLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBRTlCLElBQUksT0FBTyxFQUFFO1lBQ1QsSUFBSSxPQUFPLE9BQU8sQ0FBQyxZQUFZLEtBQUssV0FBVyxFQUFFO2dCQUM3QyxNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO2FBQzdEO1lBRUQsSUFBSSxPQUFPLE9BQU8sQ0FBQyxXQUFXLEtBQUssV0FBVyxFQUFFO2dCQUM1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IEh0dHBDbGllbnQsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBFc29sdmVDb25uZWN0Q29uZmlnIH0gZnJvbSAnLi4vZXNvbHZlLWNvbm5lY3QuY29uZmlnJztcclxuaW1wb3J0IHsgRVNPTFZFX0NPTk5FQ1RfQ09ORklHIH0gZnJvbSAnLi4vZXNvbHZlLWNvbm5lY3QtY29uZmlnLmNvbnN0YW50JztcclxuaW1wb3J0IHsgRXNvbHZlR2V0UmVzcG9uc2UgfSBmcm9tICcuLi9zaGFyZWQvcmVzcG9uc2UnO1xyXG5cclxuaW1wb3J0IHsgRXNvbHZlU2hpcHBpbmdDb3N0IH0gZnJvbSAnLi9lc29sdmUtc2hpcHBpbmctY29zdC5tb2RlbCc7XHJcbmltcG9ydCB7IEVzb2x2ZVNoaXBwaW5nQ29zdFJlY29yZCB9IGZyb20gJy4vZXNvbHZlLXNoaXBwaW5nLWNvc3QtcmVjb3JkLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IEVzb2x2ZVNoaXBwaW5nTWV0aG9kIH0gZnJvbSAnLi9lc29sdmUtc2hpcHBpbmctbWV0aG9kLm1vZGVsJztcclxuaW1wb3J0IHsgRXNvbHZlU2hpcHBpbmdNZXRob2RSZWNvcmQgfSBmcm9tICcuL2Vzb2x2ZS1zaGlwcGluZy1tZXRob2QtcmVjb3JkLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IEVzb2x2ZVNoaXBwaW5nTWV0aG9kT3B0aW9ucyB9IGZyb20gJy4vZXNvbHZlLXNoaXBwaW5nLW1ldGhvZC1vcHRpb25zLmludGVyZmFjZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFc29sdmVTaGlwcGluZ1NlcnZpY2Uge1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgQEluamVjdChFU09MVkVfQ09OTkVDVF9DT05GSUcpIHByaXZhdGUgY29uZmlnOiBFc29sdmVDb25uZWN0Q29uZmlnLFxyXG4gICAgICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgICkgeyB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXRyaWV2ZXMgYSBsaXN0IG9mIHNoaXBwaW5nIG1ldGhvZHNcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gb3B0aW9ucyBGaWx0ZXIgb3B0aW9uc1xyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIEFuIGBPYnNlcnZhYmxlYCB3aXRoIGFuIGFycmF5IG9mIHNoaXBwaW5nIG1ldGhvZHNcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldFNoaXBwaW5nTWV0aG9kcyhvcHRpb25zPzogRXNvbHZlU2hpcHBpbmdNZXRob2RPcHRpb25zKTogT2JzZXJ2YWJsZTxFc29sdmVTaGlwcGluZ01ldGhvZFtdPiB7XHJcbiAgICAgICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCk7XHJcblxyXG4gICAgICAgIGlmIChvcHRpb25zKSB7XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5hZGRyZXNzZXNfaWQgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdhZGRyZXNzZXNfaWQnLCBvcHRpb25zLmFkZHJlc3Nlc19pZCk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5sb2NhdGlvbl9pZCAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ2xvY2F0aW9uX2lkJywgb3B0aW9ucy5sb2NhdGlvbl9pZCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgICAgICAgLmdldDxFc29sdmVHZXRSZXNwb25zZTxFc29sdmVTaGlwcGluZ01ldGhvZFJlY29yZFtdPj4oXHJcbiAgICAgICAgICAgICAgICBgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9nZXQtc2hpcHBpbmctbWV0aG9kcy5waHBgLFxyXG4gICAgICAgICAgICAgICAgeyBwYXJhbXMgfSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UucmVjb3JkcyA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc1NoaXBwaW5nTWV0aG9kcyhyZXNwb25zZS5yZWNvcmRzKTtcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0cmlldmVzIHRoZSBzaGlwcGluZyBjb3N0c1xyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBzaGlwcGluZ19pZFxyXG4gICAgICogQHBhcmFtIGFkZHJlc3Nlc19pZFxyXG4gICAgICogQHBhcmFtIGxvY2F0aW9uX2lkXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybnMgQW4gYE9ic2VydmFibGVgIHdpdGggdGhlIHNoaXBwaW5nIGNvc3RzXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRTaGlwcGluZ0Nvc3QoXHJcbiAgICAgICAgc2hpcHBpbmdfaWQ6IG51bWJlcixcclxuICAgICAgICBhZGRyZXNzZXNfaWQ6IG51bWJlcixcclxuICAgICAgICBsb2NhdGlvbl9pZD86IG51bWJlcixcclxuICAgICk6IE9ic2VydmFibGU8RXNvbHZlU2hpcHBpbmdDb3N0PiB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCk7XHJcblxyXG4gICAgICAgICAgICBpZiAodHlwZW9mIHNoaXBwaW5nX2lkID09PSAndW5kZWZpbmVkJykge1xyXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdTaGlwcGluZyBJRCBpcyByZXF1aXJlZCcpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnc2hpcHBpbmdfaWQnLCBzaGlwcGluZ19pZCk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgYWRkcmVzc2VzX2lkID09PSAndW5kZWZpbmVkJykge1xyXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdBZGRyZXNzIElEIGlzIHJlcXVpcmVkJyk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdhZGRyZXNzZXNfaWQnLCBhZGRyZXNzZXNfaWQpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAodHlwZW9mIGxvY2F0aW9uX2lkICE9PSAndW5kZWZpbmVkJykge1xyXG4gICAgICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnbG9jYXRpb25faWQnLCBsb2NhdGlvbl9pZCk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgICAgICAgICAgIC5nZXQ8RXNvbHZlR2V0UmVzcG9uc2U8RXNvbHZlU2hpcHBpbmdDb3N0UmVjb3JkW10+PihcclxuICAgICAgICAgICAgICAgICAgICBgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9nZXQtc2hpcHBpbmctY29zdC5waHBgLFxyXG4gICAgICAgICAgICAgICAgICAgIHsgcGFyYW1zIH0sXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5yZWNvcmRzID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzU2hpcHBpbmdDb3N0KHJlc3BvbnNlLnJlY29yZHNbMF0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICB9IGNhdGNoIChlcnIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZXJyKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQcm9jZXNzZXMgdGhlIGVTb2x2ZSBzaGlwcGluZyBtZXRob2QgcmVjb3Jkcy5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gcmVjb3JkcyBSZWNvcmRzIHRvIHByb2Nlc3NcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiBwcm9jZXNzZWQgc2hpcHBpbmcgbWV0aG9kc1xyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHByb2Nlc3NTaGlwcGluZ01ldGhvZHMocmVjb3JkczogRXNvbHZlU2hpcHBpbmdNZXRob2RSZWNvcmRbXSk6IEVzb2x2ZVNoaXBwaW5nTWV0aG9kW10ge1xyXG4gICAgICAgIGNvbnN0IHNoaXBwaW5nX21ldGhvZHM6IEVzb2x2ZVNoaXBwaW5nTWV0aG9kW10gPSBbXTtcclxuXHJcbiAgICAgICAgaWYgKHJlY29yZHMpIHtcclxuICAgICAgICAgICAgZm9yIChjb25zdCByZWNvcmQgb2YgcmVjb3Jkcykge1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgc2hpcHBpbmdfbWV0aG9kID0gbmV3IEVzb2x2ZVNoaXBwaW5nTWV0aG9kKFxyXG4gICAgICAgICAgICAgICAgICAgICtyZWNvcmQuaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLmNhcnJpZXJfbmFtZSxcclxuICAgICAgICAgICAgICAgICAgICByZWNvcmQuZGVsaXZlcnlfY2F0ZWdvcnksXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLmRlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlY29yZC5sb2NhdGlvbixcclxuICAgICAgICAgICAgICAgICAgICByZWNvcmQucHJpY2luZyxcclxuICAgICAgICAgICAgICAgICAgICByZWNvcmQubGlua190b19jYXJyaWVyX3dlYnNpdGUsXHJcbiAgICAgICAgICAgICAgICAgICAgK3JlY29yZC5kYXlzX3RvX2RlbGl2ZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLnNoaXBwaW5nX2Nvc3RfY2FsY3VsYXRpb25fbWV0aG9kLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlY29yZC5pbnN1cmFuY2VfY29zdF9jYWxjdWxhdGlvbl9tZXRob2QsXHJcbiAgICAgICAgICAgICAgICAgICAgK3JlY29yZC5pbnN1cmFuY2VfY29zdF9wZXJjZW50YWdlLFxyXG4gICAgICAgICAgICAgICAgICAgICtyZWNvcmQubWV0cmljX2ZhY3RvcixcclxuICAgICAgICAgICAgICAgICAgICByZWNvcmQuYWxsb3dfaW1tZWRpYXRlX3BheW1lbnRfcHJvY2Vzc2luZyxcclxuICAgICAgICAgICAgICAgICAgICByZWNvcmQuYWxsb3dfcG9zdGFsX2FkZHJlc3MsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLmFsbG93X3BoeXNpY2FsX2FkZHJlc3MsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLmNsaWVudF90b19jb2xsZWN0LFxyXG4gICAgICAgICAgICAgICAgICAgIHJlY29yZC5pc19kZWZhdWx0X3NoaXBwaW5nX21ldGhvZCxcclxuICAgICAgICAgICAgICAgICAgICArcmVjb3JkLmxvY2F0aW9uX2lkLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlY29yZC51c2Vfem9uZXMsXHJcbiAgICAgICAgICAgICAgICAgICAgK3JlY29yZC5taW5fZGlzdGFuY2UsXHJcbiAgICAgICAgICAgICAgICAgICAgK3JlY29yZC5tYXhfZGlzdGFuY2UsXHJcbiAgICAgICAgICAgICAgICAgICAgK3JlY29yZC5zaGlwcGluZ19zdXJnZV9jb25kaXRpb24sXHJcbiAgICAgICAgICAgICAgICAgICAgK3JlY29yZC5zaGlwcGluZ19zdXJnZV9wZXJjZW50YWdlLFxyXG4gICAgICAgICAgICAgICAgICAgICtyZWNvcmQuc29ydF9wcmlvcml0eSxcclxuICAgICAgICAgICAgICAgICAgICByZWNvcmQuc2hpcHBpbmdfZ3JvdXAsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLnNoaXBwaW5nX3Nsb3RfaWRlbnRpZmllcixcclxuICAgICAgICAgICAgICAgICAgICArcmVjb3JkLnNoaXBwaW5nX3Nsb3RfZGVsYXlfaG91cnMsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkLmltYWdlX3VybCxcclxuICAgICAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgICAgICAgc2hpcHBpbmdfbWV0aG9kcy5wdXNoKHNoaXBwaW5nX21ldGhvZCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBzaGlwcGluZ19tZXRob2RzO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUHJvY2Vzc2VzIHRoZSBlU29sdmUgc2hpcHBpbmcgY29zdHMgcmVjb3JkLitcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gcmVjb3JkIERhdGEgdG8gcHJvY2Vzc1xyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIFByb2Nlc3NlZCBzaGlwcGluZyBjb3N0c1xyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHByb2Nlc3NTaGlwcGluZ0Nvc3QocmVjb3JkOiBFc29sdmVTaGlwcGluZ0Nvc3RSZWNvcmQpOiBFc29sdmVTaGlwcGluZ0Nvc3Qge1xyXG4gICAgICAgIGNvbnN0IHNoaXBwaW5nX2Nvc3QgPSBuZXcgRXNvbHZlU2hpcHBpbmdDb3N0KFxyXG4gICAgICAgICAgICArcmVjb3JkLnNoaXBwaW5nX3RvdGFsLFxyXG4gICAgICAgICAgICArcmVjb3JkLnZhdF9vbl9zaGlwcGluZyxcclxuICAgICAgICAgICAgK3JlY29yZC50b3RhbF9zYXZpbmdfb25fc2hpcHBpbmcsXHJcbiAgICAgICAgICAgICtyZWNvcmQuaW5zdXJhbmNlX3RvdGFsLFxyXG4gICAgICAgICAgICArcmVjb3JkLnZhdF9vbl9pbnN1cmFuY2UsXHJcbiAgICAgICAgICAgICtyZWNvcmQudG90YWxfc2F2aW5nX29uX2luc3VyYW5jZSxcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICByZXR1cm4gc2hpcHBpbmdfY29zdDtcclxuICAgIH1cclxufVxyXG4iXX0=","import { EsolveResponseResult } from '../shared/response';\r\nexport class EsolveEnquiryResult extends EsolveResponseResult {\r\n constructor(response) {\r\n super(response);\r\n this.id = 0;\r\n this.id = +response.esolve_id;\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWVucXVpcnktcmVzdWx0Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL2VucXVpcnkvZXNvbHZlLWVucXVpcnktcmVzdWx0Lm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBSTFELE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxvQkFBb0I7SUFHekQsWUFBWSxRQUErQjtRQUN2QyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFIYixPQUFFLEdBQUcsQ0FBQyxDQUFDO1FBS1YsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUM7SUFDbEMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXNvbHZlUmVzcG9uc2VSZXN1bHQgfSBmcm9tICcuLi9zaGFyZWQvcmVzcG9uc2UnO1xyXG5cclxuaW1wb3J0IHsgRXNvbHZlRW5xdWlyeVJlc3BvbnNlIH0gZnJvbSAnLi9lc29sdmUtZW5xdWlyeS1yZXNwb25zZS5pbnRlcmZhY2UnO1xyXG5cclxuZXhwb3J0IGNsYXNzIEVzb2x2ZUVucXVpcnlSZXN1bHQgZXh0ZW5kcyBFc29sdmVSZXNwb25zZVJlc3VsdCB7XHJcbiAgICBwdWJsaWMgaWQgPSAwO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHJlc3BvbnNlOiBFc29sdmVFbnF1aXJ5UmVzcG9uc2UpIHtcclxuICAgICAgICBzdXBlcihyZXNwb25zZSk7XHJcblxyXG4gICAgICAgIHRoaXMuaWQgPSArcmVzcG9uc2UuZXNvbHZlX2lkO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==","import { HttpClient } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { catchError, map } from 'rxjs/operators';\r\nimport { ESOLVE_CONNECT_CONFIG } from '../esolve-connect-config.constant';\r\nimport { EsolveErrorHandlerService } from '../shared/errors';\r\nimport { EsolveResponseHandlerService } from '../shared/response';\r\nimport { EsolveEnquiryResult } from './esolve-enquiry-result.model';\r\nimport * as i0 from \"@angular/core\";\r\nimport * as i1 from \"@angular/common/http\";\r\nimport * as i2 from \"../shared/errors\";\r\nimport * as i3 from \"../shared/response\";\r\nexport class EsolveEnquiryService {\r\n constructor(config, http, errorHandler, responseHandler) {\r\n this.config = config;\r\n this.http = http;\r\n this.errorHandler = errorHandler;\r\n this.responseHandler = responseHandler;\r\n }\r\n send(form_data) {\r\n if (!form_data.has('email')) {\r\n return this.errorHandler.emitError('email_required', 'Email is required');\r\n }\r\n return this.http\r\n .post(`${this.config.api_url}/set-enquiry.php`, form_data, {\r\n responseType: 'json',\r\n observe: 'body',\r\n })\r\n .pipe(map((http_response) => this.responseHandler.validateSingleHttpResponse(http_response, (response) => new EsolveEnquiryResult(response))), catchError((errorRes) => {\r\n return this.errorHandler.handleHttpPostError('set-enquiry', errorRes);\r\n }));\r\n }\r\n}\r\nEsolveEnquiryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveEnquiryService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1.HttpClient }, { token: i2.EsolveErrorHandlerService }, { token: i3.EsolveResponseHandlerService }], target: i0.ɵɵFactoryTarget.Injectable });\r\nEsolveEnquiryService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveEnquiryService, providedIn: 'root' });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveEnquiryService, decorators: [{\r\n type: Injectable,\r\n args: [{\r\n providedIn: 'root',\r\n }]\r\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\r\n type: Inject,\r\n args: [ESOLVE_CONNECT_CONFIG]\r\n }] }, { type: i1.HttpClient }, { type: i2.EsolveErrorHandlerService }, { type: i3.EsolveResponseHandlerService }]; } });\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWVucXVpcnkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi9lbnF1aXJ5L2Vzb2x2ZS1lbnF1aXJ5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBcUIsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUduRCxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWpELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRTFFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzdELE9BQU8sRUFBRSw0QkFBNEIsRUFBcUIsTUFBTSxvQkFBb0IsQ0FBQztBQUVyRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7QUFNcEUsTUFBTSxPQUFPLG9CQUFvQjtJQUM3QixZQUMyQyxNQUEyQixFQUMxRCxJQUFnQixFQUNoQixZQUF1QyxFQUN2QyxlQUE2QztRQUhkLFdBQU0sR0FBTixNQUFNLENBQXFCO1FBQzFELFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsaUJBQVksR0FBWixZQUFZLENBQTJCO1FBQ3ZDLG9CQUFlLEdBQWYsZUFBZSxDQUE4QjtJQUNyRCxDQUFDO0lBRUUsSUFBSSxDQUFDLFNBQW1CO1FBQzNCLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3pCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztTQUM3RTtRQUVELE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDWCxJQUFJLENBQ0QsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sa0JBQWtCLEVBQ3hDLFNBQVMsRUFDVDtZQUNJLFlBQVksRUFBRSxNQUFNO1lBQ3BCLE9BQU8sRUFBRSxNQUFNO1NBQ2xCLENBQ0o7YUFDQSxJQUFJLENBQ0QsR0FBRyxDQUFDLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLDBCQUEwQixDQUNsRSxhQUFhLEVBQ2IsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLElBQUksbUJBQW1CLENBQUMsUUFBUSxDQUFDLENBQ2xELENBQUMsRUFDRixVQUFVLENBQUMsQ0FBQyxRQUFpQyxFQUFFLEVBQUU7WUFDN0MsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUMxRSxDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ1YsQ0FBQzs7aUhBL0JRLG9CQUFvQixrQkFFakIscUJBQXFCO3FIQUZ4QixvQkFBb0IsY0FGakIsTUFBTTsyRkFFVCxvQkFBb0I7a0JBSGhDLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCOzswQkFHUSxNQUFNOzJCQUFDLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgRVNPTFZFX0NPTk5FQ1RfQ09ORklHIH0gZnJvbSAnLi4vZXNvbHZlLWNvbm5lY3QtY29uZmlnLmNvbnN0YW50JztcclxuaW1wb3J0IHsgRXNvbHZlQ29ubmVjdENvbmZpZyB9IGZyb20gJy4uL2Vzb2x2ZS1jb25uZWN0LmNvbmZpZyc7XHJcbmltcG9ydCB7IEVzb2x2ZUVycm9ySGFuZGxlclNlcnZpY2UgfSBmcm9tICcuLi9zaGFyZWQvZXJyb3JzJztcclxuaW1wb3J0IHsgRXNvbHZlUmVzcG9uc2VIYW5kbGVyU2VydmljZSwgRXNvbHZlU2V0UmVzcG9uc2UgfSBmcm9tICcuLi9zaGFyZWQvcmVzcG9uc2UnO1xyXG5cclxuaW1wb3J0IHsgRXNvbHZlRW5xdWlyeVJlc3VsdCB9IGZyb20gJy4vZXNvbHZlLWVucXVpcnktcmVzdWx0Lm1vZGVsJztcclxuaW1wb3J0IHsgRXNvbHZlRW5xdWlyeVJlc3BvbnNlIH0gZnJvbSAnLi9lc29sdmUtZW5xdWlyeS1yZXNwb25zZS5pbnRlcmZhY2UnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRXNvbHZlRW5xdWlyeVNlcnZpY2Uge1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgQEluamVjdChFU09MVkVfQ09OTkVDVF9DT05GSUcpIHByaXZhdGUgY29uZmlnOiBFc29sdmVDb25uZWN0Q29uZmlnLFxyXG4gICAgICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgICAgICBwcml2YXRlIGVycm9ySGFuZGxlcjogRXNvbHZlRXJyb3JIYW5kbGVyU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHJlc3BvbnNlSGFuZGxlcjogRXNvbHZlUmVzcG9uc2VIYW5kbGVyU2VydmljZSxcclxuICAgICkgeyB9XHJcblxyXG4gICAgcHVibGljIHNlbmQoZm9ybV9kYXRhOiBGb3JtRGF0YSk6IE9ic2VydmFibGU8RXNvbHZlRW5xdWlyeVJlc3VsdD4ge1xyXG4gICAgICAgIGlmICghZm9ybV9kYXRhLmhhcygnZW1haWwnKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5lcnJvckhhbmRsZXIuZW1pdEVycm9yKCdlbWFpbF9yZXF1aXJlZCcsICdFbWFpbCBpcyByZXF1aXJlZCcpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAgICAgICAucG9zdDxFc29sdmVTZXRSZXNwb25zZTxFc29sdmVFbnF1aXJ5UmVzcG9uc2U+PihcclxuICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L3NldC1lbnF1aXJ5LnBocGAsXHJcbiAgICAgICAgICAgICAgICBmb3JtX2RhdGEsXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlOiAnanNvbicsXHJcbiAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZTogJ2JvZHknLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIG1hcCgoaHR0cF9yZXNwb25zZSkgPT4gdGhpcy5yZXNwb25zZUhhbmRsZXIudmFsaWRhdGVTaW5nbGVIdHRwUmVzcG9uc2UoXHJcbiAgICAgICAgICAgICAgICAgICAgaHR0cF9yZXNwb25zZSxcclxuICAgICAgICAgICAgICAgICAgICAocmVzcG9uc2UpID0+IG5ldyBFc29sdmVFbnF1aXJ5UmVzdWx0KHJlc3BvbnNlKSxcclxuICAgICAgICAgICAgICAgICkpLFxyXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3JSZXM6IEh0dHBFcnJvclJlc3BvbnNlIHwgYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JIYW5kbGVyLmhhbmRsZUh0dHBQb3N0RXJyb3IoJ3NldC1lbnF1aXJ5JywgZXJyb3JSZXMpO1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcbn1cclxuIl19","export class EsolveWishlistItem {\r\n constructor(id, qty, vat_rate, price, price_incl, vat_total, total, total_incl, stock_item) {\r\n this.id = id;\r\n this.qty = qty;\r\n this.vat_rate = vat_rate;\r\n this.price = price;\r\n this.price_incl = price_incl;\r\n this.vat_total = vat_total;\r\n this.total = total;\r\n this.total_incl = total_incl;\r\n this.stock_item = stock_item;\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXdpc2hsaXN0LWl0ZW0ubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvd2lzaGxpc3QvY2xhc3Nlcy9lc29sdmUtd2lzaGxpc3QtaXRlbS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sa0JBQWtCO0lBQzNCLFlBQ1csRUFBVSxFQUNWLEdBQVcsRUFDWCxRQUFnQixFQUNoQixLQUFhLEVBQ2IsVUFBa0IsRUFDbEIsU0FBaUIsRUFDakIsS0FBYSxFQUNiLFVBQWtCLEVBQ2xCLFVBQTRCO1FBUjVCLE9BQUUsR0FBRixFQUFFLENBQVE7UUFDVixRQUFHLEdBQUgsR0FBRyxDQUFRO1FBQ1gsYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUNoQixVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQ2IsZUFBVSxHQUFWLFVBQVUsQ0FBUTtRQUNsQixjQUFTLEdBQVQsU0FBUyxDQUFRO1FBQ2pCLFVBQUssR0FBTCxLQUFLLENBQVE7UUFDYixlQUFVLEdBQVYsVUFBVSxDQUFRO1FBQ2xCLGVBQVUsR0FBVixVQUFVLENBQWtCO0lBQ25DLENBQUM7Q0FDUiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVzb2x2ZVN0b2NrSXRlbSB9IGZyb20gJy4uLy4uL3N0b2NrJztcclxuXHJcbmV4cG9ydCBjbGFzcyBFc29sdmVXaXNobGlzdEl0ZW0ge1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHVibGljIGlkOiBudW1iZXIsXHJcbiAgICAgICAgcHVibGljIHF0eTogbnVtYmVyLFxyXG4gICAgICAgIHB1YmxpYyB2YXRfcmF0ZTogbnVtYmVyLFxyXG4gICAgICAgIHB1YmxpYyBwcmljZTogbnVtYmVyLFxyXG4gICAgICAgIHB1YmxpYyBwcmljZV9pbmNsOiBudW1iZXIsXHJcbiAgICAgICAgcHVibGljIHZhdF90b3RhbDogbnVtYmVyLFxyXG4gICAgICAgIHB1YmxpYyB0b3RhbDogbnVtYmVyLFxyXG4gICAgICAgIHB1YmxpYyB0b3RhbF9pbmNsOiBudW1iZXIsXHJcbiAgICAgICAgcHVibGljIHN0b2NrX2l0ZW0/OiBFc29sdmVTdG9ja0l0ZW0sXHJcbiAgICApIHsgfVxyXG59XHJcbiJdfQ==","import { EsolveResponseResult } from '../../shared/response';\r\nexport class EsolveEmptyWishlistResult extends EsolveResponseResult {\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWVtcHR5LXdpc2hsaXN0LXJlc3VsdC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmctZXNvbHZlLWNvbm5lY3Qvc3JjL2xpYi93aXNobGlzdC9jbGFzc2VzL2Vzb2x2ZS1lbXB0eS13aXNobGlzdC1yZXN1bHQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFN0QsTUFBTSxPQUFPLHlCQUEwQixTQUFRLG9CQUFvQjtDQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXNvbHZlUmVzcG9uc2VSZXN1bHQgfSBmcm9tICcuLi8uLi9zaGFyZWQvcmVzcG9uc2UnO1xyXG5cclxuZXhwb3J0IGNsYXNzIEVzb2x2ZUVtcHR5V2lzaGxpc3RSZXN1bHQgZXh0ZW5kcyBFc29sdmVSZXNwb25zZVJlc3VsdCB7IH1cclxuIl19","import { Inject, Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { catchError, map } from 'rxjs/operators';\r\nimport { ESOLVE_CONNECT_CONFIG } from '../esolve-connect-config.constant';\r\nimport { EsolveResponseHandlerService, } from '../shared/response';\r\nimport { EsolveErrorHandlerService } from '../shared/errors';\r\nimport { EsolveStockItem } from '../stock';\r\nimport { EsolveWishlistItem, EsolveEmptyWishlistResult } from './classes';\r\nimport * as i0 from \"@angular/core\";\r\nimport * as i1 from \"@angular/common/http\";\r\nimport * as i2 from \"../shared/errors\";\r\nimport * as i3 from \"../shared/response\";\r\nexport class EsolveWishlistService {\r\n constructor(config, http, errorHandler, responseHandler) {\r\n this.config = config;\r\n this.http = http;\r\n this.errorHandler = errorHandler;\r\n this.responseHandler = responseHandler;\r\n }\r\n /**\r\n * Retrieves the current wishlist\r\n *\r\n * @returns An `Observable` with an array of cart items\r\n */\r\n getWishlist() {\r\n return this.getWishlistRecords().pipe(map((response) => {\r\n if (response.records === undefined) {\r\n throw response;\r\n }\r\n return this.processWishlist(response.records);\r\n }));\r\n }\r\n /**\r\n * Updates the wishlist by preforming various actions, such as adding, editing or removing items from the list.\r\n *\r\n * @param items An array of options to update the wishlist\r\n * @param default_action The default action to preform\r\n *\r\n * @returns An `Observable` with an array of responses that gives feedback on the requested changes\r\n */\r\n setWishlist(items, default_action = 'add') {\r\n const body = {\r\n items,\r\n default_action,\r\n };\r\n return this.http\r\n .post(`${this.config.api_url}/set-wishlist-item.php`, body, {\r\n headers: {\r\n 'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;',\r\n },\r\n responseType: 'json',\r\n observe: 'body',\r\n })\r\n .pipe(map((response) => {\r\n if (response.responses === undefined) {\r\n throw response;\r\n }\r\n return response.responses;\r\n }));\r\n }\r\n /**\r\n * Empties the wishlist for the logged in user.\r\n *\r\n * @returns Observable of type EsolveEmptyWishlistResult\r\n */\r\n setWishlistEmpty() {\r\n return this.http\r\n .post(`${this.config.api_url}/set-wishlist-empty.php`, { empty: true }, {\r\n headers: {\r\n 'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;',\r\n },\r\n responseType: 'json',\r\n observe: 'body',\r\n })\r\n .pipe(map((http_response) => this.responseHandler.validateSingleHttpResponse(http_response, (response) => {\r\n return new EsolveEmptyWishlistResult(response);\r\n })), catchError((errorRes) => {\r\n return this.errorHandler.handleHttpPostError('set-wishlist-empty', errorRes);\r\n }));\r\n }\r\n /**\r\n * Processes the eSolve wishlist records\r\n *\r\n * @param wishlist_item_records Records to process\r\n *\r\n * @returns An array of processed cart items\r\n */\r\n processWishlist(wishlist_item_records) {\r\n const wishlist_items = [];\r\n if (wishlist_item_records) {\r\n for (const item of wishlist_item_records) {\r\n const stock_item = new EsolveStockItem(item.stock_item);\r\n const wishlist_item = new EsolveWishlistItem(+item.id, +item.qty, +item.vat_rate, +item.price, +item.price_incl, +item.vat_total, +item.line_total, +item.line_total_incl, stock_item);\r\n wishlist_items.push(wishlist_item);\r\n }\r\n }\r\n return wishlist_items;\r\n }\r\n /**\r\n * Retrieves stock records from HTTP params.\r\n *\r\n * @param params HTTP client parameters\r\n */\r\n getWishlistRecords(params) {\r\n return this.http.get(`${this.config.api_url}/get-wishlist.php`, { params });\r\n }\r\n}\r\nEsolveWishlistService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveWishlistService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1.HttpClient }, { token: i2.EsolveErrorHandlerService }, { token: i3.EsolveResponseHandlerService }], target: i0.ɵɵFactoryTarget.Injectable });\r\nEsolveWishlistService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveWishlistService, providedIn: 'root' });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveWishlistService, decorators: [{\r\n type: Injectable,\r\n args: [{\r\n providedIn: 'root',\r\n }]\r\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\r\n type: Inject,\r\n args: [ESOLVE_CONNECT_CONFIG]\r\n }] }, { type: i1.HttpClient }, { type: i2.EsolveErrorHandlerService }, { type: i3.EsolveResponseHandlerService }]; } });\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXdpc2hsaXN0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvd2lzaGxpc3QvZXNvbHZlLXdpc2hsaXN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBaUMsTUFBTSxzQkFBc0IsQ0FBQztBQUdqRixPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR2pELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzFFLE9BQU8sRUFHSCw0QkFBNEIsR0FDL0IsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBSTNDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSx5QkFBeUIsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7Ozs7QUFNMUUsTUFBTSxPQUFPLHFCQUFxQjtJQUM5QixZQUMyQyxNQUEyQixFQUMxRCxJQUFnQixFQUNoQixZQUF1QyxFQUN2QyxlQUE2QztRQUhkLFdBQU0sR0FBTixNQUFNLENBQXFCO1FBQzFELFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsaUJBQVksR0FBWixZQUFZLENBQTJCO1FBQ3ZDLG9CQUFlLEdBQWYsZUFBZSxDQUE4QjtJQUNyRCxDQUFDO0lBRUw7Ozs7T0FJRztJQUNJLFdBQVc7UUFDZCxPQUFPLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLElBQUksQ0FDakMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDYixJQUFJLFFBQVEsQ0FBQyxPQUFPLEtBQUssU0FB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bUIsRUFDekMsRUFBRSxNQUFNLEVBQUUsQ0FDYixDQUFDO0lBQ04sQ0FBQzs7a0hBOUlRLHFCQUFxQixrQkFFbEIscUJBQXFCO3NIQUZ4QixxQkFBcUIsY0FGbEIsTUFBTTsyRkFFVCxxQkFBcUI7a0JBSGpDLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCOzswQkFHUSxNQUFNOzJCQUFDLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwRXJyb3JSZXNwb25zZSwgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuXHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgRXNvbHZlQ29ubmVjdENvbmZpZyB9IGZyb20gJy4uL2Vzb2x2ZS1jb25uZWN0LmNvbmZpZyc7XHJcbmltcG9ydCB7IEVTT0xWRV9DT05ORUNUX0NPTkZJRyB9IGZyb20gJy4uL2Vzb2x2ZS1jb25uZWN0LWNvbmZpZy5jb25zdGFudCc7XHJcbmltcG9ydCB7XHJcbiAgICBFc29sdmVTZXRSZXNwb25zZSxcclxuICAgIEVzb2x2ZUdldFJlc3BvbnNlLFxyXG4gICAgRXNvbHZlUmVzcG9uc2VIYW5kbGVyU2VydmljZSxcclxufSBmcm9tICcuLi9zaGFyZWQvcmVzcG9uc2UnO1xyXG5pbXBvcnQgeyBFc29sdmVFcnJvckhhbmRsZXJTZXJ2aWNlIH0gZnJvbSAnLi4vc2hhcmVkL2Vycm9ycyc7XHJcbmltcG9ydCB7IEVzb2x2ZVN0b2NrSXRlbSB9IGZyb20gJy4uL3N0b2NrJztcclxuXHJcbmltcG9ydCB7IEVzb2x2ZVdpc2hsaXN0U2V0SXRlbSB9IGZyb20gJy4vaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IEVzb2x2ZVdpc2hsaXN0LCBFc29sdmVXaXNobGlzdFNldEFjdGlvbiB9IGZyb20gJy4vdHlwZXMnO1xyXG5pbXBvcnQgeyBFc29sdmVXaXNobGlzdEl0ZW0sIEVzb2x2ZUVtcHR5V2lzaGxpc3RSZXN1bHQgfSBmcm9tICcuL2NsYXNzZXMnO1xyXG5pbXBvcnQgeyBFc29sdmVXaXNobGlzdEl0ZW1SZWNvcmQsIEVzb2x2ZVdpc2hsaXN0SXRlbVJlc3BvbnNlIH0gZnJvbSAnLi9pbnRlcmZhY2VzJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEVzb2x2ZVdpc2hsaXN0U2VydmljZSB7XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBASW5qZWN0KEVTT0xWRV9DT05ORUNUX0NPTkZJRykgcHJpdmF0ZSBjb25maWc6IEVzb2x2ZUNvbm5lY3RDb25maWcsXHJcbiAgICAgICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgICAgIHByaXZhdGUgZXJyb3JIYW5kbGVyOiBFc29sdmVFcnJvckhhbmRsZXJTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgcmVzcG9uc2VIYW5kbGVyOiBFc29sdmVSZXNwb25zZUhhbmRsZXJTZXJ2aWNlLFxyXG4gICAgKSB7IH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHJpZXZlcyB0aGUgY3VycmVudCB3aXNobGlzdFxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIEFuIGBPYnNlcnZhYmxlYCB3aXRoIGFuIGFycmF5IG9mIGNhcnQgaXRlbXNcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldFdpc2hsaXN0KCk6IE9ic2VydmFibGU8RXNvbHZlV2lzaGxpc3Q+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRXaXNobGlzdFJlY29yZHMoKS5waXBlKFxyXG4gICAgICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UucmVjb3JkcyA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc1dpc2hsaXN0KHJlc3BvbnNlLnJlY29yZHMpO1xyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVXBkYXRlcyB0aGUgd2lzaGxpc3QgYnkgcHJlZm9ybWluZyB2YXJpb3VzIGFjdGlvbnMsIHN1Y2ggYXMgYWRkaW5nLCBlZGl0aW5nIG9yIHJlbW92aW5nIGl0ZW1zIGZyb20gdGhlIGxpc3QuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGl0ZW1zIEFuIGFycmF5IG9mIG9wdGlvbnMgdG8gdXBkYXRlIHRoZSB3aXNobGlzdFxyXG4gICAgICogQHBhcmFtIGRlZmF1bHRfYWN0aW9uIFRoZSBkZWZhdWx0IGFjdGlvbiB0byBwcmVmb3JtXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybnMgQW4gYE9ic2VydmFibGVgIHdpdGggYW4gYXJyYXkgb2YgcmVzcG9uc2VzIHRoYXQgZ2l2ZXMgZmVlZGJhY2sgb24gdGhlIHJlcXVlc3RlZCBjaGFuZ2VzXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzZXRXaXNobGlzdChcclxuICAgICAgICBpdGVtczogRXNvbHZlV2lzaGxpc3RTZXRJdGVtW10sXHJcbiAgICAgICAgZGVmYXVsdF9hY3Rpb246IEVzb2x2ZVdpc2hsaXN0U2V0QWN0aW9uID0gJ2FkZCcsXHJcbiAgICApOiBPYnNlcnZhYmxlPEVzb2x2ZVdpc2hsaXN0SXRlbVJlc3BvbnNlW10+IHtcclxuICAgICAgICBjb25zdCBib2R5ID0ge1xyXG4gICAgICAgICAgICBpdGVtcyxcclxuICAgICAgICAgICAgZGVmYXVsdF9hY3Rpb24sXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAgICAgICAucG9zdDxFc29sdmVTZXRSZXNwb25zZTxFc29sdmVXaXNobGlzdEl0ZW1SZXNwb25zZT4+KFxyXG4gICAgICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vc2V0LXdpc2hsaXN0LWl0ZW0ucGhwYCxcclxuICAgICAgICAgICAgICAgIGJvZHksXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PXV0Zi04OycsXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICByZXNwb25zZVR5cGU6ICdqc29uJyxcclxuICAgICAgICAgICAgICAgICAgICBvYnNlcnZlOiAnYm9keScsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5yZXNwb25zZXMgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyByZXNwb25zZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZS5yZXNwb25zZXM7XHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEVtcHRpZXMgdGhlIHdpc2hsaXN0IGZvciB0aGUgbG9nZ2VkIGluIHVzZXIuXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZSBvZiB0eXBlIEVzb2x2ZUVtcHR5V2lzaGxpc3RSZXN1bHRcclxuICAgICAqL1xyXG4gICAgcHVibGljIHNldFdpc2hsaXN0RW1wdHkoKTogT2JzZXJ2YWJsZTxFc29sdmVFbXB0eVdpc2hsaXN0UmVzdWx0PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAgICAgICAucG9zdDxFc29sdmVTZXRSZXNwb25zZTxFc29sdmVXaXNobGlzdEl0ZW1SZXNwb25zZT4+KFxyXG4gICAgICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vc2V0LXdpc2hsaXN0LWVtcHR5LnBocGAsXHJcbiAgICAgICAgICAgICAgICB7IGVtcHR5OiB0cnVlIH0sXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PXV0Zi04OycsXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICByZXNwb25zZVR5cGU6ICdqc29uJyxcclxuICAgICAgICAgICAgICAgICAgICBvYnNlcnZlOiAnYm9keScsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKChodHRwX3Jlc3BvbnNlKSA9PiB0aGlzLnJlc3BvbnNlSGFuZGxlci52YWxpZGF0ZVNpbmdsZUh0dHBSZXNwb25zZShcclxuICAgICAgICAgICAgICAgICAgICBodHRwX3Jlc3BvbnNlLFxyXG4gICAgICAgICAgICAgICAgICAgIChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEVzb2x2ZUVtcHR5V2lzaGxpc3RSZXN1bHQocmVzcG9uc2UpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICApKSxcclxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yUmVzOiBIdHRwRXJyb3JSZXNwb25zZSB8IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmVycm9ySGFuZGxlci5oYW5kbGVIdHRwUG9zdEVycm9yKCdzZXQtd2lzaGxpc3QtZW1wdHknLCBlcnJvclJlcyk7XHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFByb2Nlc3NlcyB0aGUgZVNvbHZlIHdpc2hsaXN0IHJlY29yZHNcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gd2lzaGxpc3RfaXRlbV9yZWNvcmRzIFJlY29yZHMgdG8gcHJvY2Vzc1xyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIHByb2Nlc3NlZCBjYXJ0IGl0ZW1zXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgcHJvY2Vzc1dpc2hsaXN0KHdpc2hsaXN0X2l0ZW1fcmVjb3JkczogRXNvbHZlV2lzaGxpc3RJdGVtUmVjb3JkW10pOiBFc29sdmVXaXNobGlzdCB7XHJcbiAgICAgICAgY29uc3Qgd2lzaGxpc3RfaXRlbXM6IEVzb2x2ZVdpc2hsaXN0ID0gW107XHJcblxyXG4gICAgICAgIGlmICh3aXNobGlzdF9pdGVtX3JlY29yZHMpIHtcclxuICAgICAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHdpc2hsaXN0X2l0ZW1fcmVjb3Jkcykge1xyXG5cclxuICAgICAgICAgICAgICAgIGNvbnN0IHN0b2NrX2l0ZW0gPSBuZXcgRXNvbHZlU3RvY2tJdGVtKGl0ZW0uc3RvY2tfaXRlbSk7XHJcblxyXG4gICAgICAgICAgICAgICAgY29uc3Qgd2lzaGxpc3RfaXRlbSA9IG5ldyBFc29sdmVXaXNobGlzdEl0ZW0oXHJcbiAgICAgICAgICAgICAgICAgICAgK2l0ZW0uaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgK2l0ZW0ucXR5LFxyXG4gICAgICAgICAgICAgICAgICAgICtpdGVtLnZhdF9yYXRlLFxyXG4gICAgICAgICAgICAgICAgICAgICtpdGVtLnByaWNlLFxyXG4gICAgICAgICAgICAgICAgICAgICtpdGVtLnByaWNlX2luY2wsXHJcbiAgICAgICAgICAgICAgICAgICAgK2l0ZW0udmF0X3RvdGFsLFxyXG4gICAgICAgICAgICAgICAgICAgICtpdGVtLmxpbmVfdG90YWwsXHJcbiAgICAgICAgICAgICAgICAgICAgK2l0ZW0ubGluZV90b3RhbF9pbmNsLFxyXG4gICAgICAgICAgICAgICAgICAgIHN0b2NrX2l0ZW0sXHJcbiAgICAgICAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgICAgICAgIHdpc2hsaXN0X2l0ZW1zLnB1c2god2lzaGxpc3RfaXRlbSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB3aXNobGlzdF9pdGVtcztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHJpZXZlcyBzdG9jayByZWNvcmRzIGZyb20gSFRUUCBwYXJhbXMuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHBhcmFtcyBIVFRQIGNsaWVudCBwYXJhbWV0ZXJzXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgZ2V0V2lzaGxpc3RSZWNvcmRzKFxyXG4gICAgICAgIHBhcmFtcz86IEh0dHBQYXJhbXMsXHJcbiAgICApOiBPYnNlcnZhYmxlPEVzb2x2ZUdldFJlc3BvbnNlPEVzb2x2ZVdpc2hsaXN0SXRlbVJlY29yZFtdPj4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEVzb2x2ZUdldFJlc3BvbnNlPEVzb2x2ZVdpc2hsaXN0SXRlbVJlY29yZFtdPj4oXHJcbiAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L2dldC13aXNobGlzdC5waHBgLFxyXG4gICAgICAgICAgICB7IHBhcmFtcyB9LFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcbn1cclxuIl19","export class EsolveSupplier {\r\n constructor(record) {\r\n this.id = record?.id;\r\n this.internal_account = record?.internal_account;\r\n this.external_account = record?.external_account;\r\n this.company_name = record?.company_name ?? '';\r\n this.owner_firstname = record?.owner_firstname ?? '';\r\n this.owner_surname = record?.owner_surname ?? '';\r\n this.owner_email = record?.owner_email ?? '';\r\n this.owner_contact_number = record?.owner_contact_number ?? '';\r\n this.rep_firstname = record?.rep_firstname ?? '';\r\n this.rep_surname = record?.rep_surname ?? '';\r\n this.rep_email = record?.rep_email ?? '';\r\n this.rep_contact_number = record?.rep_contact_number ?? '';\r\n this.street = record?.street ?? '';\r\n this.suburb = record?.suburb ?? '';\r\n this.city = record?.city ?? '';\r\n this.province = record?.province ?? '';\r\n this.country = record?.country ?? '';\r\n this.postal_code = record?.postal_code ?? '';\r\n this.catalogue_ref_1 = record?.catalogue_ref_1 ?? '';\r\n this.catalogue_ref_2 = record?.catalogue_ref_2 ?? '';\r\n this.is_active = record?.is_active;\r\n this.industry_type = record?.industry_type ?? '';\r\n }\r\n}\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXN1cHBsaWVyLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL3N1cHBsaWVycy9jbGFzc2VzL2Vzb2x2ZS1zdXBwbGllci5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sY0FBYztJQXdCdkIsWUFBWSxNQUFzQztRQUM5QyxJQUFJLENBQUMsRUFBRSxHQUFHLE1BQU0sRUFBRSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQztRQUNqRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsTUFBTSxFQUFFLGdCQUFnQixDQUFDO1FBQ2pELElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxFQUFFLFlBQVksSUFBSSxFQUFFLENBQUM7UUFDL0MsSUFBSSxDQUFDLGVBQWUsR0FBRyxNQUFNLEVBQUUsZUFBZSxJQUFJLEVBQUUsQ0FBQztRQUNyRCxJQUFJLENBQUMsYUFBYSxHQUFHLE1BQU0sRUFBRSxhQUFhLElBQUksRUFBRSxDQUFDO1FBQ2pELElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxFQUFFLFdBQVcsSUFBSSxFQUFFLENBQUM7UUFDN0MsSUFBSSxDQUFDLG9CQUFvQixHQUFHLE1BQU0sRUFBRSxvQkFBb0IsSUFBSSxFQUFFLENBQUM7UUFDL0QsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLEVBQUUsYUFBYSxJQUFJLEVBQUUsQ0FBQztRQUNqRCxJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sRUFBRSxXQUFXLElBQUksRUFBRSxDQUFDO1FBQzdDLElBQUksQ0FBQyxTQUFTLEdBQUcsTUFBTSxFQUFFLFNBQVMsSUFBSSxFQUFFLENBQUM7UUFDekMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLE1BQU0sRUFBRSxrQkFBa0IsSUFBSSxFQUFFLENBQUM7UUFDM0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLEVBQUUsTUFBTSxJQUFJLEVBQUUsQ0FBQztRQUNuQyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sRUFBRSxNQUFNLElBQUksRUFBRSxDQUFDO1FBQ25DLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUM7UUFDL0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLEVBQUUsUUFBUSxJQUFJLEVBQUUsQ0FBQztRQUN2QyxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sRUFBRSxPQUFPLElBQUksRUFBRSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxFQUFFLFdBQVcsSUFBSSxFQUFFLENBQUM7UUFDN0MsSUFBSSxDQUFDLGVBQWUsR0FBRyxNQUFNLEVBQUUsZUFBZSxJQUFJLEVBQUUsQ0FBQztRQUNyRCxJQUFJLENBQUMsZUFBZSxHQUFHLE1BQU0sRUFBRSxlQUFlLElBQUksRUFBRSxDQUFDO1FBQ3JELElBQUksQ0FBQyxTQUFTLEdBQUcsTUFBTSxFQUFFLFNBQVMsQ0FBQztRQUNuQyxJQUFJLENBQUMsYUFBYSxHQUFHLE1BQU0sRUFBRSxhQUFhLElBQUksRUFBRSxDQUFDO0lBQ3JELENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVzb2x2ZVN1cHBsaWVyUmVjb3JkIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XHJcblxyXG5leHBvcnQgY2xhc3MgRXNvbHZlU3VwcGxpZXIge1xyXG4gICAgcHVibGljIGlkPzogbnVtYmVyO1xyXG4gICAgcHVibGljIGludGVybmFsX2FjY291bnQ/OiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgZXh0ZXJuYWxfYWNjb3VudD86IHN0cmluZztcclxuICAgIHB1YmxpYyBjb21wYW55X25hbWU6IHN0cmluZztcclxuICAgIHB1YmxpYyBvd25lcl9maXJzdG5hbWU6IHN0cmluZztcclxuICAgIHB1YmxpYyBvd25lcl9zdXJuYW1lOiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgb3duZXJfZW1haWw6IHN0cmluZztcclxuICAgIHB1YmxpYyBvd25lcl9jb250YWN0X251bWJlcjogc3RyaW5nO1xyXG4gICAgcHVibGljIHJlcF9maXJzdG5hbWU6IHN0cmluZztcclxuICAgIHB1YmxpYyByZXBfc3VybmFtZTogc3RyaW5nO1xyXG4gICAgcHVibGljIHJlcF9lbWFpbDogc3RyaW5nO1xyXG4gICAgcHVibGljIHJlcF9jb250YWN0X251bWJlcjogc3RyaW5nO1xyXG4gICAgcHVibGljIHN0cmVldDogc3RyaW5nO1xyXG4gICAgcHVibGljIHN1YnVyYjogc3RyaW5nO1xyXG4gICAgcHVibGljIGNpdHk6IHN0cmluZztcclxuICAgIHB1YmxpYyBwcm92aW5jZTogc3RyaW5nO1xyXG4gICAgcHVibGljIGNvdW50cnk6IHN0cmluZztcclxuICAgIHB1YmxpYyBwb3N0YWxfY29kZTogc3RyaW5nO1xyXG4gICAgcHVibGljIGNhdGFsb2d1ZV9yZWZfMTogc3RyaW5nO1xyXG4gICAgcHVibGljIGNhdGFsb2d1ZV9yZWZfMjogc3RyaW5nO1xyXG4gICAgcHVibGljIGlzX2FjdGl2ZT86IGJvb2xlYW47XHJcbiAgICBwdWJsaWMgaW5kdXN0cnlfdHlwZTogc3RyaW5nO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHJlY29yZD86IFBhcnRpYWw8RXNvbHZlU3VwcGxpZXJSZWNvcmQ+KSB7XHJcbiAgICAgICAgdGhpcy5pZCA9IHJlY29yZD8uaWQ7XHJcbiAgICAgICAgdGhpcy5pbnRlcm5hbF9hY2NvdW50ID0gcmVjb3JkPy5pbnRlcm5hbF9hY2NvdW50O1xyXG4gICAgICAgIHRoaXMuZXh0ZXJuYWxfYWNjb3VudCA9IHJlY29yZD8uZXh0ZXJuYWxfYWNjb3VudDtcclxuICAgICAgICB0aGlzLmNvbXBhbnlfbmFtZSA9IHJlY29yZD8uY29tcGFueV9uYW1lID8/ICcnO1xyXG4gICAgICAgIHRoaXMub3duZXJfZmlyc3RuYW1lID0gcmVjb3JkPy5vd25lcl9maXJzdG5hbWUgPz8gJyc7XHJcbiAgICAgICAgdGhpcy5vd25lcl9zdXJuYW1lID0gcmVjb3JkPy5vd25lcl9zdXJuYW1lID8/ICcnO1xyXG4gICAgICAgIHRoaXMub3duZXJfZW1haWwgPSByZWNvcmQ/Lm93bmVyX2VtYWlsID8/ICcnO1xyXG4gICAgICAgIHRoaXMub3duZXJfY29udGFjdF9udW1iZXIgPSByZWNvcmQ/Lm93bmVyX2NvbnRhY3RfbnVtYmVyID8/ICcnO1xyXG4gICAgICAgIHRoaXMucmVwX2ZpcnN0bmFtZSA9IHJlY29yZD8ucmVwX2ZpcnN0bmFtZSA/PyAnJztcclxuICAgICAgICB0aGlzLnJlcF9zdXJuYW1lID0gcmVjb3JkPy5yZXBfc3VybmFtZSA/PyAnJztcclxuICAgICAgICB0aGlzLnJlcF9lbWFpbCA9IHJlY29yZD8ucmVwX2VtYWlsID8/ICcnO1xyXG4gICAgICAgIHRoaXMucmVwX2NvbnRhY3RfbnVtYmVyID0gcmVjb3JkPy5yZXBfY29udGFjdF9udW1iZXIgPz8gJyc7XHJcbiAgICAgICAgdGhpcy5zdHJlZXQgPSByZWNvcmQ/LnN0cmVldCA/PyAnJztcclxuICAgICAgICB0aGlzLnN1YnVyYiA9IHJlY29yZD8uc3VidXJiID8/ICcnO1xyXG4gICAgICAgIHRoaXMuY2l0eSA9IHJlY29yZD8uY2l0eSA/PyAnJztcclxuICAgICAgICB0aGlzLnByb3ZpbmNlID0gcmVjb3JkPy5wcm92aW5jZSA/PyAnJztcclxuICAgICAgICB0aGlzLmNvdW50cnkgPSByZWNvcmQ/LmNvdW50cnkgPz8gJyc7XHJcbiAgICAgICAgdGhpcy5wb3N0YWxfY29kZSA9IHJlY29yZD8ucG9zdGFsX2NvZGUgPz8gJyc7XHJcbiAgICAgICAgdGhpcy5jYXRhbG9ndWVfcmVmXzEgPSByZWNvcmQ/LmNhdGFsb2d1ZV9yZWZfMSA/PyAnJztcclxuICAgICAgICB0aGlzLmNhdGFsb2d1ZV9yZWZfMiA9IHJlY29yZD8uY2F0YWxvZ3VlX3JlZl8yID8/ICcnO1xyXG4gICAgICAgIHRoaXMuaXNfYWN0aXZlID0gcmVjb3JkPy5pc19hY3RpdmU7XHJcbiAgICAgICAgdGhpcy5pbmR1c3RyeV90eXBlID0gcmVjb3JkPy5pbmR1c3RyeV90eXBlID8/ICcnO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==","import { Inject, Injectable } from '@angular/core';\r\nimport { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { of } from 'rxjs';\r\nimport { catchError, map } from 'rxjs/operators';\r\nimport { ESOLVE_CONNECT_CONFIG } from '../esolve-connect-config.constant';\r\nimport { EsolveSupplier } from './classes';\r\nimport * as i0 from \"@angular/core\";\r\nimport * as i1 from \"@angular/common/http\";\r\nexport class EsolveSuppliersService {\r\n constructor(config, http) {\r\n this.config = config;\r\n this.http = http;\r\n }\r\n getSuppliers(options) {\r\n let params = new HttpParams();\r\n if (options?.industry_type) {\r\n params = params.set('industry_type', options.industry_type);\r\n }\r\n if (options?.internal_account) {\r\n params = params.set('internal_account', options.internal_account);\r\n }\r\n return this.getSupplierRecords(params).pipe(map((records) => {\r\n const suppliers = [];\r\n for (const record of records) {\r\n suppliers.push(this.processSuppliers(record));\r\n }\r\n return suppliers;\r\n }), catchError(() => {\r\n return of([]);\r\n }));\r\n }\r\n getSupplierRecords(params) {\r\n return this.http\r\n .get(`${this.config.api_url}/get-suppliers.php`, { params })\r\n .pipe(map((response) => {\r\n if ((response.records === undefined) ||\r\n (response.records.length === 0)) {\r\n throw response;\r\n }\r\n return response.records;\r\n ;\r\n }));\r\n }\r\n processSuppliers(record) {\r\n return new EsolveSupplier(record);\r\n }\r\n}\r\nEsolveSuppliersService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveSuppliersService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });\r\nEsolveSuppliersService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveSuppliersService, providedIn: 'root' });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: EsolveSuppliersService, decorators: [{\r\n type: Injectable,\r\n args: [{\r\n providedIn: 'root',\r\n }]\r\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\r\n type: Inject,\r\n args: [ESOLVE_CONNECT_CONFIG]\r\n }] }, { type: i1.HttpClient }]; } });\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLXN1cHBsaWVycy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL3N1cHBsaWVycy9lc29sdmUtc3VwcGxpZXJzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUU5RCxPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHakQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFHMUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7O0FBTTNDLE1BQU0sT0FBTyxzQkFBc0I7SUFFL0IsWUFDMkMsTUFBMkIsRUFDMUQsSUFBZ0I7UUFEZSxXQUFNLEdBQU4sTUFBTSxDQUFxQjtRQUMxRCxTQUFJLEdBQUosSUFBSSxDQUFZO0lBQ3hCLENBQUM7SUFFRSxZQUFZLENBQUMsT0FBK0I7UUFDL0MsSUFBSSxNQUFNLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUU5QixJQUFJLE9BQU8sRUFBRSxhQUFhLEVBQUU7WUFDeEIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUMvRDtRQUNELElBQUksT0FBTyxFQUFFLGdCQUFnQixFQUFFO1lBQzNCLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLGtCQUFrQixFQUFFLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1NBQ3JFO1FBRUQsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUN2QyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUNaLE1BQU0sU0FBUyxHQUFxQixFQUFFLENBQUM7WUFFdkMsS0FBSyxNQUFNLE1BQU0sSUFBSSxPQUFPLEVBQUU7Z0JBQzFCLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7YUFDakQ7WUFFRCxPQUFPLFNBQVMsQ0FBQztRQUNyQixDQUFDLENBQUMsRUFDRixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ1osT0FBTyxFQUFFLENBQW1CLEVBQUUsQ0FBQyxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDTixDQUFDO0lBRU8sa0JBQWtCLENBQUMsTUFBa0I7UUFDekMsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNYLEdBQUcsQ0FDQSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxvQkFBb0IsRUFDMUMsRUFBRSxNQUFNLEVBQUUsQ0FDYjthQUNBLElBQUksQ0FDRCxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUNiLElBQ0ksQ0FBQyxRQUFRLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQztnQkFDaEMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsRUFDakM7Z0JBQ0UsTUFBTSxRQUFRLENBQUM7YUFDbEI7WUFFRCxPQUFPLFFBQVEsQ0FBQyxPQUFPLENBQUM7WUFBQSxDQUFDO1FBQzdCLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDVixDQUFDO0lBRU8sZ0JBQWdCLENBQUMsTUFBNEI7UUFDakQsT0FBTyxJQUFJLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN0QyxDQUFDOzttSEF2RFEsc0JBQXNCLGtCQUduQixxQkFBcUI7dUhBSHhCLHNCQUFzQixjQUZuQixNQUFNOzJGQUVULHNCQUFzQjtrQkFIbEMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7OzBCQUlRLE1BQU07MkJBQUMscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcblxyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBFc29sdmVDb25uZWN0Q29uZmlnIH0gZnJvbSAnLi4vZXNvbHZlLWNvbm5lY3QuY29uZmlnJztcclxuaW1wb3J0IHsgRVNPTFZFX0NPTk5FQ1RfQ09ORklHIH0gZnJvbSAnLi4vZXNvbHZlLWNvbm5lY3QtY29uZmlnLmNvbnN0YW50JztcclxuaW1wb3J0IHsgRXNvbHZlR2V0UmVzcG9uc2UgfSBmcm9tICcuLi9zaGFyZWQvcmVzcG9uc2UnO1xyXG5cclxuaW1wb3J0IHsgRXNvbHZlU3VwcGxpZXIgfSBmcm9tICcuL2NsYXNzZXMnO1xyXG5pbXBvcnQgeyBFc29sdmVTdXBwbGllclJlY29yZCwgRXNvbHZlU3VwcGxpZXJPcHRpb25zIH0gZnJvbSAnLi9pbnRlcmZhY2VzJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEVzb2x2ZVN1cHBsaWVyc1NlcnZpY2Uge1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIEBJbmplY3QoRVNPTFZFX0NPTk5FQ1RfQ09ORklHKSBwcml2YXRlIGNvbmZpZzogRXNvbHZlQ29ubmVjdENvbmZpZyxcclxuICAgICAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICApIHsgfVxyXG5cclxuICAgIHB1YmxpYyBnZXRTdXBwbGllcnMob3B0aW9ucz86IEVzb2x2ZVN1cHBsaWVyT3B0aW9ucyk6IE9ic2VydmFibGU8RXNvbHZlU3VwcGxpZXJbXT4ge1xyXG4gICAgICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xyXG5cclxuICAgICAgICBpZiAob3B0aW9ucz8uaW5kdXN0cnlfdHlwZSkge1xyXG4gICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdpbmR1c3RyeV90eXBlJywgb3B0aW9ucy5pbmR1c3RyeV90eXBlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG9wdGlvbnM/LmludGVybmFsX2FjY291bnQpIHtcclxuICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnaW50ZXJuYWxfYWNjb3VudCcsIG9wdGlvbnMuaW50ZXJuYWxfYWNjb3VudCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRTdXBwbGllclJlY29yZHMocGFyYW1zKS5waXBlKFxyXG4gICAgICAgICAgICBtYXAoKHJlY29yZHMpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHN1cHBsaWVyczogRXNvbHZlU3VwcGxpZXJbXSA9IFtdO1xyXG5cclxuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcmVjb3JkIG9mIHJlY29yZHMpIHtcclxuICAgICAgICAgICAgICAgICAgICBzdXBwbGllcnMucHVzaCh0aGlzLnByb2Nlc3NTdXBwbGllcnMocmVjb3JkKSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHN1cHBsaWVycztcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG9mPEVzb2x2ZVN1cHBsaWVyW10+KFtdKTtcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldFN1cHBsaWVyUmVjb3JkcyhwYXJhbXM6IEh0dHBQYXJhbXMpOiBPYnNlcnZhYmxlPEVzb2x2ZVN1cHBsaWVyUmVjb3JkW10+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgICAgICAgIC5nZXQ8RXNvbHZlR2V0UmVzcG9uc2U8RXNvbHZlU3VwcGxpZXJSZWNvcmRbXT4+KFxyXG4gICAgICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vZ2V0LXN1cHBsaWVycy5waHBgLFxyXG4gICAgICAgICAgICAgICAgeyBwYXJhbXMgfSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChyZXNwb25zZS5yZWNvcmRzID09PSB1bmRlZmluZWQpIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChyZXNwb25zZS5yZWNvcmRzLmxlbmd0aCA9PT0gMClcclxuICAgICAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UucmVjb3Jkczs7XHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHByb2Nlc3NTdXBwbGllcnMocmVjb3JkOiBFc29sdmVTdXBwbGllclJlY29yZCk6IEVzb2x2ZVN1cHBsaWVyIHtcclxuICAgICAgICByZXR1cm4gbmV3IEVzb2x2ZVN1cHBsaWVyKHJlY29yZCk7XHJcbiAgICB9XHJcblxyXG59XHJcbiJdfQ==","/*\r\n * Public API Surface of ng-esolve-connect\r\n */\r\nexport * from './lib/ng-esolve-connect.module';\r\nexport * from './lib/esolve-connect.config';\r\nexport * from './lib/esolve-connect-config.constant';\r\nexport * from './lib/shared/esolve-list.model';\r\nexport * from './lib/shared/esolve-result.model';\r\nexport * from './lib/shared/esolve-url-target.type';\r\nexport * from './lib/shared/custom-fields';\r\nexport * from './lib/shared/filters';\r\nexport * from './lib/shared/response';\r\nexport * from './lib/shared/errors';\r\nexport * from './lib/shared/cookie/esolve-cookie.service';\r\nexport * from './lib/shared/sort';\r\n// SEO\r\nexport * from './lib/shared/seo';\r\n// Geocoder\r\nexport * from './lib/shared/geocoder';\r\n// Assets\r\nexport * from './lib/shared/assets';\r\n// Session\r\nexport * from './lib/session';\r\n// Auth\r\nexport * from './lib/auth';\r\n// Account\r\nexport * from './lib/account';\r\n// Banners\r\nexport * from './lib/banners';\r\n// Menu\r\nexport * from './lib/menu';\r\n// News\r\nexport * from './lib/news';\r\n// Topics\r\nexport * from './lib/topics';\r\n// Tags\r\nexport * from './lib/tags';\r\n// Stock\r\nexport * from './lib/stock';\r\n// Category Tree\r\nexport * from './lib/category-tree';\r\n// Manufacturers\r\nexport * from './lib/manufacturers';\r\n// Ranges\r\nexport * from './lib/ranges';\r\n// Specials\r\nexport * from './lib/specials';\r\n// Cart\r\nexport * from './lib/cart';\r\n// Payment\r\nexport * from './lib/payment';\r\n// Shipping\r\nexport * from './lib/shipping';\r\n// Locations\r\nexport * from './lib/locations';\r\n// Enquiry\r\nexport * from './lib/enquiry';\r\n// Wishlist\r\nexport * from './lib/wishlist';\r\n// Suppliers\r\nexport * from './lib/suppliers';\r\n// Coupons\r\nexport * from './lib/coupons';\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHNDQUFzQyxDQUFDO0FBRXJELGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLG1CQUFtQixDQUFDO0FBRWxDLE1BQU07QUFDTixjQUFjLGtCQUFrQixDQUFDO0FBRWpDLFdBQVc7QUFDWCxjQUFjLHVCQUF1QixDQUFDO0FBRXRDLFNBQVM7QUFDVCxjQUFjLHFCQUFxQixDQUFDO0FBRXBDLFVBQVU7QUFDVixjQUFjLGVBQWUsQ0FBQztBQUU5QixPQUFPO0FBQ1AsY0FBYyxZQUFZLENBQUM7QUFFM0IsVUFBVTtBQUNWLGNBQWMsZUFBZSxDQUFDO0FBRTlCLFVBQVU7QUFDVixjQUFjLGVBQWUsQ0FBQztBQUU5QixPQUFPO0FBQ1AsY0FBYyxZQUFZLENBQUM7QUFFM0IsT0FBTztBQUNQLGNBQWMsWUFBWSxDQUFDO0FBRTNCLFNBQVM7QUFDVCxjQUFjLGNBQWMsQ0FBQztBQUU3QixPQUFPO0FBQ1AsY0FBYyxZQUFZLENBQUM7QUFFM0IsUUFBUTtBQUNSLGNBQWMsYUFBYSxDQUFDO0FBRTVCLGdCQUFnQjtBQUNoQixjQUFjLHFCQUFxQixDQUFDO0FBRXBDLGdCQUFnQjtBQUNoQixjQUFjLHFCQUFxQixDQUFDO0FBRXBDLFNBQVM7QUFDVCxjQUFjLGNBQWMsQ0FBQztBQUU3QixXQUFXO0FBQ1gsY0FBYyxnQkFBZ0IsQ0FBQztBQUUvQixPQUFPO0FBQ1AsY0FBYyxZQUFZLENBQUM7QUFFM0IsVUFBVTtBQUNWLGNBQWMsZUFBZSxDQUFDO0FBRTlCLFdBQVc7QUFDWCxjQUFjLGdCQUFnQixDQUFDO0FBRS9CLFlBQVk7QUFDWixjQUFjLGlCQUFpQixDQUFDO0FBRWhDLFVBQVU7QUFDVixjQUFjLGVBQWUsQ0FBQztBQUU5QixXQUFXO0FBQ1gsY0FBYyxnQkFBZ0IsQ0FBQztBQUUvQixZQUFZO0FBQ1osY0FBYyxpQkFBaUIsQ0FBQztBQUVoQyxVQUFVO0FBQ1YsY0FBYyxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgbmctZXNvbHZlLWNvbm5lY3RcclxuICovXHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9uZy1lc29sdmUtY29ubmVjdC5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9lc29sdmUtY29ubmVjdC5jb25maWcnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9lc29sdmUtY29ubmVjdC1jb25maWcuY29uc3RhbnQnO1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL2Vzb2x2ZS1saXN0Lm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL2Vzb2x2ZS1yZXN1bHQubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvZXNvbHZlLXVybC10YXJnZXQudHlwZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC9jdXN0b20tZmllbGRzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL2ZpbHRlcnMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvcmVzcG9uc2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvZXJyb3JzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL2Nvb2tpZS9lc29sdmUtY29va2llLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvc29ydCc7XHJcblxyXG4vLyBTRU9cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL3Nlbyc7XHJcblxyXG4vLyBHZW9jb2RlclxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvZ2VvY29kZXInO1xyXG5cclxuLy8gQXNzZXRzXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC9hc3NldHMnO1xyXG5cclxuLy8gU2Vzc2lvblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXNzaW9uJztcclxuXHJcbi8vIEF1dGhcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYXV0aCc7XHJcblxyXG4vLyBBY2NvdW50XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FjY291bnQnO1xyXG5cclxuLy8gQmFubmVyc1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9iYW5uZXJzJztcclxuXHJcbi8vIE1lbnVcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbWVudSc7XHJcblxyXG4vLyBOZXdzXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL25ld3MnO1xyXG5cclxuLy8gVG9waWNzXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RvcGljcyc7XHJcblxyXG4vLyBUYWdzXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhZ3MnO1xyXG5cclxuLy8gU3RvY2tcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc3RvY2snO1xyXG5cclxuLy8gQ2F0ZWdvcnkgVHJlZVxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jYXRlZ29yeS10cmVlJztcclxuXHJcbi8vIE1hbnVmYWN0dXJlcnNcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbWFudWZhY3R1cmVycyc7XHJcblxyXG4vLyBSYW5nZXNcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvcmFuZ2VzJztcclxuXHJcbi8vIFNwZWNpYWxzXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NwZWNpYWxzJztcclxuXHJcbi8vIENhcnRcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY2FydCc7XHJcblxyXG4vLyBQYXltZW50XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BheW1lbnQnO1xyXG5cclxuLy8gU2hpcHBpbmdcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hpcHBpbmcnO1xyXG5cclxuLy8gTG9jYXRpb25zXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2xvY2F0aW9ucyc7XHJcblxyXG4vLyBFbnF1aXJ5XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2VucXVpcnknO1xyXG5cclxuLy8gV2lzaGxpc3RcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvd2lzaGxpc3QnO1xyXG5cclxuLy8gU3VwcGxpZXJzXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3N1cHBsaWVycyc7XHJcblxyXG4vLyBDb3Vwb25zXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvdXBvbnMnO1xyXG4iXX0=","/**\r\n * Generated bundle index. Do not edit.\r\n */\r\nexport * from './index';\r\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLW5nLWVzb2x2ZS1jb25uZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicy9uZy1lc29sdmUtY29ubmVjdC9zcmMvZXNvbHZlLW5nLWVzb2x2ZS1jb25uZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":["i1.EsolveCookieService","i1.EsolveSessionService","i1","i2.EsolveSessionService","i3.EsolveErrorHandlerService","i4.EsolveCookieService","i2.EsolveCookieService","i2.EsolveErrorHandlerService","i3.EsolveResponseHandlerService","i4.EsolveCouponsService","i4.EsolveResponseHandlerService"],"mappings":"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"}