@esolve/ng-esolve-connect 0.20.0 → 0.20.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 (328) hide show
  1. package/esm2020/lib/cart/esolve-cart-item.model.mjs +3 -2
  2. package/esm2020/lib/cart/esolve-cart.service.mjs +2 -2
  3. package/esm2020/lib/media/esolve-heading-record.interface.mjs +2 -0
  4. package/esm2020/lib/media/esolve-heading.model.mjs +7 -0
  5. package/esm2020/lib/media/esolve-media-article.model.mjs +16 -0
  6. package/esm2020/lib/media/esolve-media-record.interface.mjs +2 -0
  7. package/esm2020/lib/media/esolve-media.service.mjs +129 -0
  8. package/esm2020/lib/media/index.mjs +6 -0
  9. package/esolve-ng-esolve-connect.d.ts.map +1 -0
  10. package/fesm2015/esolve-ng-esolve-connect.mjs +3 -2
  11. package/fesm2015/esolve-ng-esolve-connect.mjs.map +1 -1
  12. package/fesm2020/esolve-ng-esolve-connect.mjs +3 -2
  13. package/fesm2020/esolve-ng-esolve-connect.mjs.map +1 -1
  14. package/lib/account/address/esolve-address-record.interface.d.ts.map +1 -0
  15. package/lib/account/address/esolve-address-response.interface.d.ts.map +1 -0
  16. package/lib/account/address/esolve-address-result.model.d.ts.map +1 -0
  17. package/lib/account/address/esolve-address-set-data.interface.d.ts.map +1 -0
  18. package/lib/account/address/esolve-address-type.type.d.ts.map +1 -0
  19. package/lib/account/address/esolve-address.model.d.ts.map +1 -0
  20. package/lib/account/address/index.d.ts.map +1 -0
  21. package/lib/account/esolve-account.service.d.ts.map +1 -0
  22. package/lib/account/esolve-geocode-result.interface.d.ts.map +1 -0
  23. package/lib/account/esolve-location-update-result.model.d.ts.map +1 -0
  24. package/lib/account/index.d.ts.map +1 -0
  25. package/lib/account/password/esolve-change-password-result.model.d.ts.map +1 -0
  26. package/lib/account/password/esolve-forgot-password-get-result.interface.d.ts.map +1 -0
  27. package/lib/account/password/esolve-forgot-password-response.interface.d.ts.map +1 -0
  28. package/lib/account/password/esolve-reset-password-result.model.d.ts.map +1 -0
  29. package/lib/account/password/index.d.ts.map +1 -0
  30. package/lib/account/registration/esolve-registration-data.interface.d.ts.map +1 -0
  31. package/lib/account/registration/esolve-registration-post-response-item.interface.d.ts.map +1 -0
  32. package/lib/account/registration/esolve-registration-result.model.d.ts.map +1 -0
  33. package/lib/account/registration/index.d.ts.map +1 -0
  34. package/lib/account/transaction/esolve-transaction-address.model.d.ts.map +1 -0
  35. package/lib/account/transaction/esolve-transaction-client-record.interface.d.ts.map +1 -0
  36. package/lib/account/transaction/esolve-transaction-client.model.d.ts.map +1 -0
  37. package/lib/account/transaction/esolve-transaction-item-price.model.d.ts.map +1 -0
  38. package/lib/account/transaction/esolve-transaction-item-record.interface.d.ts.map +1 -0
  39. package/lib/account/transaction/esolve-transaction-item.model.d.ts.map +1 -0
  40. package/lib/account/transaction/esolve-transaction-list.model.d.ts.map +1 -0
  41. package/lib/account/transaction/esolve-transaction-location-record.interface.d.ts.map +1 -0
  42. package/lib/account/transaction/esolve-transaction-location.model.d.ts.map +1 -0
  43. package/lib/account/transaction/esolve-transaction-options.interface.d.ts.map +1 -0
  44. package/lib/account/transaction/esolve-transaction-payment-method-record.interface.d.ts.map +1 -0
  45. package/lib/account/transaction/esolve-transaction-payment-method.model.d.ts.map +1 -0
  46. package/lib/account/transaction/esolve-transaction-record.interface.d.ts.map +1 -0
  47. package/lib/account/transaction/esolve-transaction-shipping-method-record.interface.d.ts.map +1 -0
  48. package/lib/account/transaction/esolve-transaction-shipping-method.model.d.ts.map +1 -0
  49. package/lib/account/transaction/esolve-transaction-type.type.d.ts.map +1 -0
  50. package/lib/account/transaction/esolve-transaction-user-record.interface.d.ts.map +1 -0
  51. package/lib/account/transaction/esolve-transaction-user.model.d.ts.map +1 -0
  52. package/lib/account/transaction/esolve-transaction.model.d.ts.map +1 -0
  53. package/lib/account/transaction/index.d.ts.map +1 -0
  54. package/lib/account/user-account/esolve-user-account-business.model.d.ts.map +1 -0
  55. package/lib/account/user-account/esolve-user-account-contact.model.d.ts.map +1 -0
  56. package/lib/account/user-account/esolve-user-account-data.interface.d.ts.map +1 -0
  57. package/lib/account/user-account/esolve-user-account-record.interface.d.ts.map +1 -0
  58. package/lib/account/user-account/esolve-user-account-result.model.d.ts.map +1 -0
  59. package/lib/account/user-account/esolve-user-account.model.d.ts.map +1 -0
  60. package/lib/account/user-account/index.d.ts.map +1 -0
  61. package/lib/auth/esolve-auth-check-data.interface.d.ts.map +1 -0
  62. package/lib/auth/esolve-auth-check-response.interface.d.ts.map +1 -0
  63. package/lib/auth/esolve-auth-data.interface.d.ts.map +1 -0
  64. package/lib/auth/esolve-auth-get-data.interface.d.ts.map +1 -0
  65. package/lib/auth/esolve-auth-get-response.interface.d.ts.map +1 -0
  66. package/lib/auth/esolve-auth-interceptor.service.d.ts.map +1 -0
  67. package/lib/auth/esolve-auth-response-data.type.d.ts.map +1 -0
  68. package/lib/auth/esolve-auth-response.interface.d.ts.map +1 -0
  69. package/lib/auth/esolve-auth-result.type.d.ts.map +1 -0
  70. package/lib/auth/esolve-auth.service.d.ts.map +1 -0
  71. package/lib/auth/esolve-login-post-response-item.interface.d.ts.map +1 -0
  72. package/lib/auth/index.d.ts.map +1 -0
  73. package/lib/banners/esolve-banner-image-hotspot-coords.interface.d.ts.map +1 -0
  74. package/lib/banners/esolve-banner-image-hotspot-record.interface.d.ts.map +1 -0
  75. package/lib/banners/esolve-banner-image-hotspot.model.d.ts.map +1 -0
  76. package/lib/banners/esolve-banner-image-record.interface.d.ts.map +1 -0
  77. package/lib/banners/esolve-banner-image-set.interface.d.ts.map +1 -0
  78. package/lib/banners/esolve-banner-image-type.type.d.ts.map +1 -0
  79. package/lib/banners/esolve-banner-image.model.d.ts.map +1 -0
  80. package/lib/banners/esolve-banner-link.interface.d.ts.map +1 -0
  81. package/lib/banners/esolve-banner-record.interface.d.ts.map +1 -0
  82. package/lib/banners/esolve-banner-type.type.d.ts.map +1 -0
  83. package/lib/banners/esolve-banner.model.d.ts.map +1 -0
  84. package/lib/banners/esolve-banner.service.d.ts.map +1 -0
  85. package/lib/banners/index.d.ts.map +1 -0
  86. package/lib/cart/esolve-cart-additional-where.interface.d.ts.map +1 -0
  87. package/lib/cart/esolve-cart-empty-response.interface.d.ts.map +1 -0
  88. package/lib/cart/esolve-cart-item-record.interface.d.ts.map +1 -0
  89. package/lib/cart/esolve-cart-item-response.interface.d.ts.map +1 -0
  90. package/lib/cart/esolve-cart-item.model.d.ts +2 -1
  91. package/lib/cart/esolve-cart-item.model.d.ts.map +1 -0
  92. package/lib/cart/esolve-cart-set-action.type.d.ts.map +1 -0
  93. package/lib/cart/esolve-cart-set-item.interface.d.ts.map +1 -0
  94. package/lib/cart/esolve-cart-stock-item.model.d.ts.map +1 -0
  95. package/lib/cart/esolve-cart-totals-record.interface.d.ts.map +1 -0
  96. package/lib/cart/esolve-cart-totals.model.d.ts.map +1 -0
  97. package/lib/cart/esolve-cart.service.d.ts.map +1 -0
  98. package/lib/cart/esolve-cart.type.d.ts.map +1 -0
  99. package/lib/cart/esolve-checkout-response.interface.d.ts.map +1 -0
  100. package/lib/cart/esolve-checkout-result.model.d.ts.map +1 -0
  101. package/lib/cart/esolve-empty-cart-result.model.d.ts.map +1 -0
  102. package/lib/cart/esolve-tracking-code.interface.d.ts.map +1 -0
  103. package/lib/cart/index.d.ts.map +1 -0
  104. package/lib/category-tree/esolve-category-identifier.interface.d.ts.map +1 -0
  105. package/lib/category-tree/esolve-category-record.interface.d.ts.map +1 -0
  106. package/lib/category-tree/esolve-category-tree-item-options.interface.d.ts.map +1 -0
  107. package/lib/category-tree/esolve-category-tree-item-record.interface.d.ts.map +1 -0
  108. package/lib/category-tree/esolve-category-tree-item.model.d.ts.map +1 -0
  109. package/lib/category-tree/esolve-category-tree.service.d.ts.map +1 -0
  110. package/lib/category-tree/esolve-subcategory-record.interface.d.ts.map +1 -0
  111. package/lib/category-tree/index.d.ts.map +1 -0
  112. package/lib/enquiry/esolve-enquiry-response.interface.d.ts.map +1 -0
  113. package/lib/enquiry/esolve-enquiry-result.model.d.ts.map +1 -0
  114. package/lib/enquiry/esolve-enquiry.service.d.ts.map +1 -0
  115. package/lib/enquiry/index.d.ts.map +1 -0
  116. package/lib/esolve-connect-config.constant.d.ts.map +1 -0
  117. package/lib/esolve-connect.config.d.ts.map +1 -0
  118. package/lib/locations/esolve-location-address.model.d.ts.map +1 -0
  119. package/lib/locations/esolve-location-contact-info.model.d.ts.map +1 -0
  120. package/lib/locations/esolve-location-geo.model.d.ts.map +1 -0
  121. package/lib/locations/esolve-location-pobox-address.model.d.ts.map +1 -0
  122. package/lib/locations/esolve-location-record.interface.d.ts.map +1 -0
  123. package/lib/locations/esolve-location-trading-day.model.d.ts.map +1 -0
  124. package/lib/locations/esolve-location-trading-times.model.d.ts.map +1 -0
  125. package/lib/locations/esolve-location.model.d.ts.map +1 -0
  126. package/lib/locations/esolve-locations.service.d.ts.map +1 -0
  127. package/lib/locations/index.d.ts.map +1 -0
  128. package/lib/manufacturers/esolve-manufacturer-image-size.type.d.ts.map +1 -0
  129. package/lib/manufacturers/esolve-manufacturer-options.interface.d.ts.map +1 -0
  130. package/lib/manufacturers/esolve-manufacturer-record.interface.d.ts.map +1 -0
  131. package/lib/manufacturers/esolve-manufacturer.model.d.ts.map +1 -0
  132. package/lib/manufacturers/esolve-manufacturers.service.d.ts.map +1 -0
  133. package/lib/manufacturers/index.d.ts.map +1 -0
  134. package/lib/media/esolve-heading-record.interface.d.ts +5 -0
  135. package/lib/media/esolve-heading.model.d.ts +5 -0
  136. package/lib/media/esolve-media-article.model.d.ts +14 -0
  137. package/lib/media/esolve-media-record.interface.d.ts +31 -0
  138. package/lib/media/esolve-media.service.d.ts +49 -0
  139. package/lib/media/index.d.ts +5 -0
  140. package/lib/menu/esolve-menu-item.model.d.ts.map +1 -0
  141. package/lib/menu/esolve-menu-tree-record.interface.d.ts.map +1 -0
  142. package/lib/menu/esolve-menu.service.d.ts.map +1 -0
  143. package/lib/menu/esolve-menu.type.d.ts.map +1 -0
  144. package/lib/menu/index.d.ts.map +1 -0
  145. package/lib/news/esolve-news-article-author-record.interface.d.ts.map +1 -0
  146. package/lib/news/esolve-news-article-author.model.d.ts.map +1 -0
  147. package/lib/news/esolve-news-article-list.model.d.ts.map +1 -0
  148. package/lib/news/esolve-news-article-options.interface.d.ts.map +1 -0
  149. package/lib/news/esolve-news-article-record.interface.d.ts.map +1 -0
  150. package/lib/news/esolve-news-article.model.d.ts.map +1 -0
  151. package/lib/news/esolve-news-group-record.interface.d.ts.map +1 -0
  152. package/lib/news/esolve-news-group.model.d.ts.map +1 -0
  153. package/lib/news/esolve-news.service.d.ts.map +1 -0
  154. package/lib/news/index.d.ts.map +1 -0
  155. package/lib/ng-esolve-connect.module.d.ts.map +1 -0
  156. package/lib/payment/classes/esolve-banking-details.model.d.ts.map +1 -0
  157. package/lib/payment/classes/esolve-payment-method.model.d.ts.map +1 -0
  158. package/lib/payment/classes/esolve-payment-result.model.d.ts.map +1 -0
  159. package/lib/payment/classes/esolve-vault-item-result.model.d.ts.map +1 -0
  160. package/lib/payment/classes/esolve-vault-item.model.d.ts.map +1 -0
  161. package/lib/payment/classes/index.d.ts.map +1 -0
  162. package/lib/payment/esolve-payment.service.d.ts.map +1 -0
  163. package/lib/payment/index.d.ts.map +1 -0
  164. package/lib/payment/interfaces/esolve-card-data.interface.d.ts.map +1 -0
  165. package/lib/payment/interfaces/esolve-payment-form-input.interface.d.ts.map +1 -0
  166. package/lib/payment/interfaces/esolve-payment-method-options.interface.d.ts.map +1 -0
  167. package/lib/payment/interfaces/esolve-payment-method-record.interface.d.ts.map +1 -0
  168. package/lib/payment/interfaces/esolve-payment-response.interface.d.ts.map +1 -0
  169. package/lib/payment/interfaces/esolve-payment-set-body.interface.d.ts.map +1 -0
  170. package/lib/payment/interfaces/esolve-payment-status.interface.d.ts.map +1 -0
  171. package/lib/payment/interfaces/esolve-vault-record.interface.d.ts.map +1 -0
  172. package/lib/payment/interfaces/esolve-vault-response.interface.d.ts.map +1 -0
  173. package/lib/payment/interfaces/index.d.ts.map +1 -0
  174. package/lib/payment/types/esolve-integration-type.type.d.ts.map +1 -0
  175. package/lib/payment/types/esolve-service-provider.type.d.ts.map +1 -0
  176. package/lib/payment/types/index.d.ts.map +1 -0
  177. package/lib/ranges/esolve-range-options.interface.d.ts.map +1 -0
  178. package/lib/ranges/esolve-range-record.interface.d.ts.map +1 -0
  179. package/lib/ranges/esolve-range.model.d.ts.map +1 -0
  180. package/lib/ranges/esolve-ranges.service.d.ts.map +1 -0
  181. package/lib/ranges/index.d.ts.map +1 -0
  182. package/lib/session/esolve-session-data.interface.d.ts.map +1 -0
  183. package/lib/session/esolve-session.model.d.ts.map +1 -0
  184. package/lib/session/esolve-session.service.d.ts.map +1 -0
  185. package/lib/session/esolve-stored-session.interface.d.ts.map +1 -0
  186. package/lib/session/index.d.ts.map +1 -0
  187. package/lib/shared/assets/esolve-asset-list.type.d.ts.map +1 -0
  188. package/lib/shared/assets/esolve-asset-options.interface.d.ts.map +1 -0
  189. package/lib/shared/assets/esolve-asset-record.interface.d.ts.map +1 -0
  190. package/lib/shared/assets/esolve-asset-type.type.d.ts.map +1 -0
  191. package/lib/shared/assets/esolve-asset.model.d.ts.map +1 -0
  192. package/lib/shared/assets/esolve-assets.service.d.ts.map +1 -0
  193. package/lib/shared/assets/esolve-linked-asset-record.interface.d.ts.map +1 -0
  194. package/lib/shared/assets/esolve-linked-asset.model.d.ts.map +1 -0
  195. package/lib/shared/assets/index.d.ts.map +1 -0
  196. package/lib/shared/cookie/esolve-cookie.service.d.ts.map +1 -0
  197. package/lib/shared/custom-fields/esolve-custom-fields.type.d.ts.map +1 -0
  198. package/lib/shared/custom-fields/esolve-generic-custom-fields.interface.d.ts.map +1 -0
  199. package/lib/shared/custom-fields/index.d.ts.map +1 -0
  200. package/lib/shared/errors/esolve-error-handler.service.d.ts.map +1 -0
  201. package/lib/shared/errors/esolve-http-error.model.d.ts.map +1 -0
  202. package/lib/shared/errors/index.d.ts.map +1 -0
  203. package/lib/shared/esolve-list.model.d.ts.map +1 -0
  204. package/lib/shared/esolve-result.model.d.ts.map +1 -0
  205. package/lib/shared/esolve-url-target.type.d.ts.map +1 -0
  206. package/lib/shared/geocoder/esolve-geocode-address-record.interface.d.ts.map +1 -0
  207. package/lib/shared/geocoder/esolve-geocode-address-result.model.d.ts.map +1 -0
  208. package/lib/shared/geocoder/esolve-geocode-coords-result.model.d.ts.map +1 -0
  209. package/lib/shared/geocoder/esolve-geocode-result-record.interface.d.ts.map +1 -0
  210. package/lib/shared/geocoder/esolve-geocode-result.model.d.ts.map +1 -0
  211. package/lib/shared/geocoder/esolve-geocoder.service.d.ts.map +1 -0
  212. package/lib/shared/geocoder/index.d.ts.map +1 -0
  213. package/lib/shared/response/esolve-delete-response.interface.d.ts.map +1 -0
  214. package/lib/shared/response/esolve-delete-result.interface.d.ts.map +1 -0
  215. package/lib/shared/response/esolve-get-response.interface.d.ts.map +1 -0
  216. package/lib/shared/response/esolve-post-response-item.interface.d.ts.map +1 -0
  217. package/lib/shared/response/esolve-post-response-status.interface.d.ts.map +1 -0
  218. package/lib/shared/response/esolve-response-handler.service.d.ts.map +1 -0
  219. package/lib/shared/response/esolve-response-log-item.interface.d.ts.map +1 -0
  220. package/lib/shared/response/esolve-response-result.model.d.ts.map +1 -0
  221. package/lib/shared/response/esolve-response.interface.d.ts.map +1 -0
  222. package/lib/shared/response/esolve-set-response.interface.d.ts.map +1 -0
  223. package/lib/shared/response/index.d.ts.map +1 -0
  224. package/lib/shared/seo/esolve-seo-details.interface.d.ts.map +1 -0
  225. package/lib/shared/seo/esolve-seo-info.model.d.ts.map +1 -0
  226. package/lib/shared/seo/esolve-seo.service.d.ts.map +1 -0
  227. package/lib/shared/seo/index.d.ts.map +1 -0
  228. package/lib/shared/sort/esolve-sort-order.type.d.ts.map +1 -0
  229. package/lib/shared/sort/esolve-sort.interface.d.ts.map +1 -0
  230. package/lib/shared/sort/index.d.ts.map +1 -0
  231. package/lib/shipping/esolve-insurance-calculation-method.type.d.ts.map +1 -0
  232. package/lib/shipping/esolve-shipping-calculation-method.type.d.ts.map +1 -0
  233. package/lib/shipping/esolve-shipping-cost-record.interface.d.ts.map +1 -0
  234. package/lib/shipping/esolve-shipping-cost.model.d.ts.map +1 -0
  235. package/lib/shipping/esolve-shipping-location.type.d.ts.map +1 -0
  236. package/lib/shipping/esolve-shipping-method-options.interface.d.ts.map +1 -0
  237. package/lib/shipping/esolve-shipping-method-record.interface.d.ts.map +1 -0
  238. package/lib/shipping/esolve-shipping-method.model.d.ts.map +1 -0
  239. package/lib/shipping/esolve-shipping-totals.model.d.ts.map +1 -0
  240. package/lib/shipping/esolve-shipping.service.d.ts.map +1 -0
  241. package/lib/shipping/index.d.ts.map +1 -0
  242. package/lib/specials/esolve-special-image-collection-record.interface.d.ts.map +1 -0
  243. package/lib/specials/esolve-special-image-collection.model.d.ts.map +1 -0
  244. package/lib/specials/esolve-special-image-record.interface.d.ts.map +1 -0
  245. package/lib/specials/esolve-special-image.model.d.ts.map +1 -0
  246. package/lib/specials/esolve-special-options.interface.d.ts.map +1 -0
  247. package/lib/specials/esolve-special-record.interface.d.ts.map +1 -0
  248. package/lib/specials/esolve-special.model.d.ts.map +1 -0
  249. package/lib/specials/esolve-specials.service.d.ts.map +1 -0
  250. package/lib/specials/index.d.ts.map +1 -0
  251. package/lib/stock/classes/esolve-additional-stock-image.model.d.ts.map +1 -0
  252. package/lib/stock/classes/esolve-colour.model.d.ts.map +1 -0
  253. package/lib/stock/classes/esolve-linked-stock-item.model.d.ts.map +1 -0
  254. package/lib/stock/classes/esolve-media-stock-item.model.d.ts.map +1 -0
  255. package/lib/stock/classes/esolve-recipe-stock-item.model.d.ts.map +1 -0
  256. package/lib/stock/classes/esolve-stock-badge.model.d.ts.map +1 -0
  257. package/lib/stock/classes/esolve-stock-group-item.model.d.ts.map +1 -0
  258. package/lib/stock/classes/esolve-stock-group.model.d.ts.map +1 -0
  259. package/lib/stock/classes/esolve-stock-image-collection.model.d.ts.map +1 -0
  260. package/lib/stock/classes/esolve-stock-image.model.d.ts.map +1 -0
  261. package/lib/stock/classes/esolve-stock-item-base.model.d.ts.map +1 -0
  262. package/lib/stock/classes/esolve-stock-item-list.model.d.ts.map +1 -0
  263. package/lib/stock/classes/esolve-stock-item.model.d.ts.map +1 -0
  264. package/lib/stock/classes/esolve-stock-lead-times.model.d.ts.map +1 -0
  265. package/lib/stock/classes/esolve-stock-price.model.d.ts.map +1 -0
  266. package/lib/stock/classes/index.d.ts.map +1 -0
  267. package/lib/stock/esolve-stock.service.d.ts.map +1 -0
  268. package/lib/stock/index.d.ts.map +1 -0
  269. package/lib/stock/interfaces/esolve-additional-stock-image-record.interface.d.ts.map +1 -0
  270. package/lib/stock/interfaces/esolve-colour-record.interface.d.ts.map +1 -0
  271. package/lib/stock/interfaces/esolve-linked-stock-record.interface.d.ts.map +1 -0
  272. package/lib/stock/interfaces/esolve-media-stock-item-options.interface.d.ts.map +1 -0
  273. package/lib/stock/interfaces/esolve-media-stock-item-record.interface.d.ts.map +1 -0
  274. package/lib/stock/interfaces/esolve-recipe-item-record.interface.d.ts.map +1 -0
  275. package/lib/stock/interfaces/esolve-recipe-stock-options.interface.d.ts.map +1 -0
  276. package/lib/stock/interfaces/esolve-stock-badge-record.interface.d.ts.map +1 -0
  277. package/lib/stock/interfaces/esolve-stock-base-record.interface.d.ts.map +1 -0
  278. package/lib/stock/interfaces/esolve-stock-group-item-record.interface.d.ts.map +1 -0
  279. package/lib/stock/interfaces/esolve-stock-image-collection-record.interface.d.ts.map +1 -0
  280. package/lib/stock/interfaces/esolve-stock-item-options.interface.d.ts.map +1 -0
  281. package/lib/stock/interfaces/esolve-stock-lead-times-record.interface.d.ts.map +1 -0
  282. package/lib/stock/interfaces/esolve-stock-linked-category-record.interface.d.ts.map +1 -0
  283. package/lib/stock/interfaces/esolve-stock-record.interface.d.ts.map +1 -0
  284. package/lib/stock/interfaces/index.d.ts.map +1 -0
  285. package/lib/stock/types/esolve-media-stock-item-list.type.d.ts.map +1 -0
  286. package/lib/stock/types/esolve-media-stock-sort-field.type.d.ts.map +1 -0
  287. package/lib/stock/types/esolve-stock-image-size.type.d.ts.map +1 -0
  288. package/lib/stock/types/esolve-stock-sort-field.type.d.ts.map +1 -0
  289. package/lib/stock/types/esolve-stock-unit-of-measure.type.d.ts.map +1 -0
  290. package/lib/stock/types/index.d.ts.map +1 -0
  291. package/lib/tags/esolve-tag-options.interface.d.ts.map +1 -0
  292. package/lib/tags/esolve-tag-phrase-match-mode.type.d.ts.map +1 -0
  293. package/lib/tags/esolve-tag-record.interface.d.ts.map +1 -0
  294. package/lib/tags/esolve-tag.model.d.ts.map +1 -0
  295. package/lib/tags/esolve-tags.service.d.ts.map +1 -0
  296. package/lib/tags/index.d.ts.map +1 -0
  297. package/lib/topics/esolve-topic-record.interface.d.ts.map +1 -0
  298. package/lib/topics/esolve-topic.model.d.ts.map +1 -0
  299. package/lib/topics/esolve-topic.service.d.ts.map +1 -0
  300. package/lib/topics/index.d.ts.map +1 -0
  301. package/media/classes/esolve-heading.model.d.ts.map +1 -0
  302. package/media/classes/esolve-media-article.model.d.ts.map +1 -0
  303. package/media/classes/esolve-media-group.model.d.ts.map +1 -0
  304. package/media/classes/esolve-media-layout-section.model.d.ts.map +1 -0
  305. package/media/classes/index.d.ts.map +1 -0
  306. package/media/components/index.d.ts.map +1 -0
  307. package/media/components/media-layout/esolve-media-layout.component.d.ts.map +1 -0
  308. package/media/components/media-section/esolve-media-section.component.d.ts.map +1 -0
  309. package/media/esolve-connect-media-config.token.d.ts.map +1 -0
  310. package/media/esolve-connect-media.config.d.ts.map +1 -0
  311. package/media/esolve-ng-esolve-connect-media.d.ts.map +1 -0
  312. package/media/esolve-section-data.token.d.ts.map +1 -0
  313. package/media/interfaces/esolve-heading-record.interface.d.ts.map +1 -0
  314. package/media/interfaces/esolve-layout-config.interface.d.ts.map +1 -0
  315. package/media/interfaces/esolve-layout-section-config.interface.d.ts.map +1 -0
  316. package/media/interfaces/esolve-media-group-record.interface.d.ts.map +1 -0
  317. package/media/interfaces/esolve-media-layout-section-record.interface.d.ts.map +1 -0
  318. package/media/interfaces/esolve-media-record.interface.d.ts.map +1 -0
  319. package/media/interfaces/index.d.ts.map +1 -0
  320. package/media/ng-esolve-connect-media.module.d.ts.map +1 -0
  321. package/media/public_api.d.ts.map +1 -0
  322. package/media/services/esolve-media-layout.service.d.ts.map +1 -0
  323. package/media/services/esolve-media.service.d.ts.map +1 -0
  324. package/media/services/index.d.ts.map +1 -0
  325. package/media/types/esolve-media-layout-section-type.type.d.ts.map +1 -0
  326. package/media/types/index.d.ts.map +1 -0
  327. package/package.json +1 -1
  328. package/public-api.d.ts.map +1 -0
@@ -1,8 +1,9 @@
1
1
  export class EsolveCartItem {
2
- constructor(id, stock_item, qty, 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) {
2
+ 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) {
3
3
  this.id = id;
4
4
  this.stock_item = stock_item;
5
5
  this.qty = qty;
6
+ this.delivery_category = delivery_category;
6
7
  this.type = type;
7
8
  this.price = price;
8
9
  this.discount = discount;
@@ -21,4 +22,4 @@ export class EsolveCartItem {
21
22
  this.total_incl = total_incl;
22
23
  }
23
24
  }
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWNhcnQtaXRlbS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvY2FydC9lc29sdmUtY2FydC1pdGVtLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxjQUFjO0lBQ3ZCLFlBQ1csRUFBVSxFQUNWLFVBQStCLEVBQy9CLEdBQVcsRUFDWCxJQUFZLEVBRVosS0FBYSxFQUNiLFFBQWdCLEVBQ2hCLGlCQUF5QixFQUN6QixRQUFnQixFQUVoQixZQUFxQixFQUNyQixZQUFxQixFQUNyQixZQUFxQixFQUNyQixrQkFBMkIsRUFFM0IsVUFBa0IsRUFDbEIsY0FBc0IsRUFDdEIsbUJBQTJCLEVBQzNCLGNBQXNCLEVBQ3RCLFNBQWlCLEVBQ2pCLEtBQWEsRUFDYixVQUFrQjtRQXJCbEIsT0FBRSxHQUFGLEVBQUUsQ0FBUTtRQUNWLGVBQVUsR0FBVixVQUFVLENBQXFCO1FBQy9CLFFBQUcsR0FBSCxHQUFHLENBQVE7UUFDWCxTQUFJLEdBQUosSUFBSSxDQUFRO1FBRVosVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUNiLGFBQVEsR0FBUixRQUFRLENBQVE7UUFDaEIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFRO1FBQ3pCLGFBQVEsR0FBUixRQUFRLENBQVE7UUFFaEIsaUJBQVksR0FBWixZQUFZLENBQVM7UUFDckIsaUJBQVksR0FBWixZQUFZLENBQVM7UUFDckIsaUJBQVksR0FBWixZQUFZLENBQVM7UUFDckIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFTO1FBRTNCLGVBQVUsR0FBVixVQUFVLENBQVE7UUFDbEIsbUJBQWMsR0FBZCxjQUFjLENBQVE7UUFDdEIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFRO1FBQzNCLG1CQUFjLEdBQWQsY0FBYyxDQUFRO1FBQ3RCLGNBQVMsR0FBVCxTQUFTLENBQVE7UUFDakIsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUNiLGVBQVUsR0FBVixVQUFVLENBQVE7SUFDekIsQ0FBQztDQUNSIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXNvbHZlQ2FydFN0b2NrSXRlbSB9IGZyb20gJy4vZXNvbHZlLWNhcnQtc3RvY2staXRlbS5tb2RlbCc7XHJcblxyXG5leHBvcnQgY2xhc3MgRXNvbHZlQ2FydEl0ZW0ge1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHVibGljIGlkOiBudW1iZXIsXHJcbiAgICAgICAgcHVibGljIHN0b2NrX2l0ZW06IEVzb2x2ZUNhcnRTdG9ja0l0ZW0sXHJcbiAgICAgICAgcHVibGljIHF0eTogbnVtYmVyLFxyXG4gICAgICAgIHB1YmxpYyB0eXBlOiBzdHJpbmcsXHJcblxyXG4gICAgICAgIHB1YmxpYyBwcmljZTogbnVtYmVyLFxyXG4gICAgICAgIHB1YmxpYyBkaXNjb3VudDogbnVtYmVyLFxyXG4gICAgICAgIHB1YmxpYyBkaXNjb3VudF9pbnRlcnZhbDogbnVtYmVyLFxyXG4gICAgICAgIHB1YmxpYyB2YXRfcmF0ZTogbnVtYmVyLFxyXG5cclxuICAgICAgICBwdWJsaWMgYWxsb3dfcXVvdGVzOiBib29sZWFuLFxyXG4gICAgICAgIHB1YmxpYyBhbGxvd19vcmRlcnM6IGJvb2xlYW4sXHJcbiAgICAgICAgcHVibGljIG11c3RfY29sbGVjdDogYm9vbGVhbixcclxuICAgICAgICBwdWJsaWMgcmVxdWVzdGVkX2Fzc2VtYmx5OiBib29sZWFuLFxyXG5cclxuICAgICAgICBwdWJsaWMgcHJpY2VfaW5jbDogbnVtYmVyLFxyXG4gICAgICAgIHB1YmxpYyBkaXNjb3VudF9wcmljZTogbnVtYmVyLFxyXG4gICAgICAgIHB1YmxpYyBkaXNjb3VudF9wcmljZV9pbmNsOiBudW1iZXIsXHJcbiAgICAgICAgcHVibGljIGRpc2NvdW50X3RvdGFsOiBudW1iZXIsXHJcbiAgICAgICAgcHVibGljIHZhdF90b3RhbDogbnVtYmVyLFxyXG4gICAgICAgIHB1YmxpYyB0b3RhbDogbnVtYmVyLFxyXG4gICAgICAgIHB1YmxpYyB0b3RhbF9pbmNsOiBudW1iZXIsXHJcbiAgICApIHsgfVxyXG59XHJcbiJdfQ==
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWNhcnQtaXRlbS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvY2FydC9lc29sdmUtY2FydC1pdGVtLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxjQUFjO0lBQ3ZCLFlBQ1csRUFBVSxFQUNWLFVBQStCLEVBQy9CLEdBQVcsRUFDWCxpQkFBeUIsRUFDekIsSUFBWSxFQUVaLEtBQWEsRUFDYixRQUFnQixFQUNoQixpQkFBeUIsRUFDekIsUUFBZ0IsRUFFaEIsWUFBcUIsRUFDckIsWUFBcUIsRUFDckIsWUFBcUIsRUFDckIsa0JBQTJCLEVBRTNCLFVBQWtCLEVBQ2xCLGNBQXNCLEVBQ3RCLG1CQUEyQixFQUMzQixjQUFzQixFQUN0QixTQUFpQixFQUNqQixLQUFhLEVBQ2IsVUFBa0I7UUF0QmxCLE9BQUUsR0FBRixFQUFFLENBQVE7UUFDVixlQUFVLEdBQVYsVUFBVSxDQUFxQjtRQUMvQixRQUFHLEdBQUgsR0FBRyxDQUFRO1FBQ1gsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFRO1FBQ3pCLFNBQUksR0FBSixJQUFJLENBQVE7UUFFWixVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQ2IsYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUNoQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQVE7UUFDekIsYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUVoQixpQkFBWSxHQUFaLFlBQVksQ0FBUztRQUNyQixpQkFBWSxHQUFaLFlBQVksQ0FBUztRQUNyQixpQkFBWSxHQUFaLFlBQVksQ0FBUztRQUNyQix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQVM7UUFFM0IsZUFBVSxHQUFWLFVBQVUsQ0FBUTtRQUNsQixtQkFBYyxHQUFkLGNBQWMsQ0FBUTtRQUN0Qix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQVE7UUFDM0IsbUJBQWMsR0FBZCxjQUFjLENBQVE7UUFDdEIsY0FBUyxHQUFULFNBQVMsQ0FBUTtRQUNqQixVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQ2IsZUFBVSxHQUFWLFVBQVUsQ0FBUTtJQUN6QixDQUFDO0NBQ1IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFc29sdmVDYXJ0U3RvY2tJdGVtIH0gZnJvbSAnLi9lc29sdmUtY2FydC1zdG9jay1pdGVtLm1vZGVsJztcclxuXHJcbmV4cG9ydCBjbGFzcyBFc29sdmVDYXJ0SXRlbSB7XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwdWJsaWMgaWQ6IG51bWJlcixcclxuICAgICAgICBwdWJsaWMgc3RvY2tfaXRlbTogRXNvbHZlQ2FydFN0b2NrSXRlbSxcclxuICAgICAgICBwdWJsaWMgcXR5OiBudW1iZXIsXHJcbiAgICAgICAgcHVibGljIGRlbGl2ZXJ5X2NhdGVnb3J5OiBzdHJpbmcsXHJcbiAgICAgICAgcHVibGljIHR5cGU6IHN0cmluZyxcclxuXHJcbiAgICAgICAgcHVibGljIHByaWNlOiBudW1iZXIsXHJcbiAgICAgICAgcHVibGljIGRpc2NvdW50OiBudW1iZXIsXHJcbiAgICAgICAgcHVibGljIGRpc2NvdW50X2ludGVydmFsOiBudW1iZXIsXHJcbiAgICAgICAgcHVibGljIHZhdF9yYXRlOiBudW1iZXIsXHJcblxyXG4gICAgICAgIHB1YmxpYyBhbGxvd19xdW90ZXM6IGJvb2xlYW4sXHJcbiAgICAgICAgcHVibGljIGFsbG93X29yZGVyczogYm9vbGVhbixcclxuICAgICAgICBwdWJsaWMgbXVzdF9jb2xsZWN0OiBib29sZWFuLFxyXG4gICAgICAgIHB1YmxpYyByZXF1ZXN0ZWRfYXNzZW1ibHk6IGJvb2xlYW4sXHJcblxyXG4gICAgICAgIHB1YmxpYyBwcmljZV9pbmNsOiBudW1iZXIsXHJcbiAgICAgICAgcHVibGljIGRpc2NvdW50X3ByaWNlOiBudW1iZXIsXHJcbiAgICAgICAgcHVibGljIGRpc2NvdW50X3ByaWNlX2luY2w6IG51bWJlcixcclxuICAgICAgICBwdWJsaWMgZGlzY291bnRfdG90YWw6IG51bWJlcixcclxuICAgICAgICBwdWJsaWMgdmF0X3RvdGFsOiBudW1iZXIsXHJcbiAgICAgICAgcHVibGljIHRvdGFsOiBudW1iZXIsXHJcbiAgICAgICAgcHVibGljIHRvdGFsX2luY2w6IG51bWJlcixcclxuICAgICkgeyB9XHJcbn1cclxuIl19
@@ -169,7 +169,7 @@ export class EsolveCartService {
169
169
  if (cart_item_records) {
170
170
  for (const cart_item_record of cart_item_records) {
171
171
  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);
172
- cart_items.push(new EsolveCartItem(+cart_item_record.id, cart_stock_item, +cart_item_record.qty, 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));
172
+ 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));
173
173
  }
174
174
  }
175
175
  return cart_items;
@@ -196,4 +196,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
196
196
  type: Inject,
197
197
  args: [ESOLVE_CONNECT_CONFIG]
198
198
  }] }, { type: i1.HttpClient }, { type: i2.EsolveErrorHandlerService }, { type: i3.EsolveResponseHandlerService }]; } });
199
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWNhcnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvY2FydC9lc29sdmUtY2FydC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSW5ELE9BQU8sRUFBRSxHQUFHLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzVELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBVzFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUcxRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUlyRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUU5RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUd0RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7Ozs7QUFNekUsTUFBTSxPQUFPLGlCQUFpQjtJQUcxQixZQUMyQyxNQUEyQixFQUMxRCxJQUFnQixFQUNoQixZQUF1QyxFQUN2QyxlQUE2QztRQUhkLFdBQU0sR0FBTixNQUFNLENBQXFCO1FBQzFELFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsaUJBQVksR0FBWixZQUFZLENBQTJCO1FBQ3ZDLG9CQUFlLEdBQWYsZUFBZSxDQUE4QjtRQU5qRCxxQkFBZ0IsR0FBRyxDQUFDLENBQUM7SUFPekIsQ0FBQztJQUVMOzs7O09BSUc7SUFDSSxPQUFPO1FBQ1YsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNYLEdBQUcsQ0FDQSxH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MEJBS1EsTUFBTTsyQkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBFcnJvclJlc3BvbnNlLCBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5cclxuaW1wb3J0IHsgaWlmLCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IEVzb2x2ZUNvbm5lY3RDb25maWcgfSBmcm9tICcuLi9lc29sdmUtY29ubmVjdC5jb25maWcnO1xyXG5pbXBvcnQgeyBFU09MVkVfQ09OTkVDVF9DT05GSUcgfSBmcm9tICcuLi9lc29sdmUtY29ubmVjdC1jb25maWcuY29uc3RhbnQnO1xyXG5pbXBvcnQgeyBFc29sdmVFcnJvckhhbmRsZXJTZXJ2aWNlIH0gZnJvbSAnLi4vc2hhcmVkL2Vycm9ycy9lc29sdmUtZXJyb3ItaGFuZGxlci5zZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuICAgIEVzb2x2ZVNldFJlc3BvbnNlLFxyXG4gICAgRXNvbHZlR2V0UmVzcG9uc2UsXHJcbiAgICBFc29sdmVSZXNwb25zZUhhbmRsZXJTZXJ2aWNlLFxyXG59IGZyb20gJy4uL3NoYXJlZC9yZXNwb25zZSc7XHJcblxyXG5pbXBvcnQgeyBFc29sdmVUcmFuc2FjdGlvblR5cGUgfSBmcm9tICcuLi9hY2NvdW50JztcclxuXHJcbmltcG9ydCB7IEVzb2x2ZUNhcnQgfSBmcm9tICcuL2Vzb2x2ZS1jYXJ0LnR5cGUnO1xyXG5pbXBvcnQgeyBFc29sdmVDYXJ0SXRlbSB9IGZyb20gJy4vZXNvbHZlLWNhcnQtaXRlbS5tb2RlbCc7XHJcbmltcG9ydCB7IEVzb2x2ZUNhcnRTZXRJdGVtIH0gZnJvbSAnLi9lc29sdmUtY2FydC1zZXQtaXRlbS5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBFc29sdmVDYXJ0U2V0QWN0aW9uIH0gZnJvbSAnLi9lc29sdmUtY2FydC1zZXQtYWN0aW9uLnR5cGUnO1xyXG5pbXBvcnQgeyBFc29sdmVDYXJ0U3RvY2tJdGVtIH0gZnJvbSAnLi9lc29sdmUtY2FydC1zdG9jay1pdGVtLm1vZGVsJztcclxuaW1wb3J0IHsgRXNvbHZlQ2FydEl0ZW1SZWNvcmQgfSBmcm9tICcuL2Vzb2x2ZS1jYXJ0LWl0ZW0tcmVjb3JkLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IEVzb2x2ZUNhcnRJdGVtUmVzcG9uc2UgfSBmcm9tICcuL2Vzb2x2ZS1jYXJ0LWl0ZW0tcmVzcG9uc2UuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgRXNvbHZlQ2FydFRvdGFsc1JlY29yZCB9IGZyb20gJy4vZXNvbHZlLWNhcnQtdG90YWxzLXJlY29yZC5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBFc29sdmVDYXJ0VG90YWxzIH0gZnJvbSAnLi9lc29sdmUtY2FydC10b3RhbHMubW9kZWwnO1xyXG5pbXBvcnQgeyBFc29sdmVDaGVja291dFJlc3BvbnNlIH0gZnJvbSAnLi9lc29sdmUtY2hlY2tvdXQtcmVzcG9uc2UuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgRXNvbHZlQ2hlY2tvdXRSZXN1bHQgfSBmcm9tICcuL2Vzb2x2ZS1jaGVja291dC1yZXN1bHQubW9kZWwnO1xyXG5pbXBvcnQgeyBFc29sdmVUcmFja2luZ0NvZGUgfSBmcm9tICcuL2Vzb2x2ZS10cmFja2luZy1jb2RlLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IEVzb2x2ZUNhcnRFbXB0eVJlc3BvbnNlIH0gZnJvbSAnLi9lc29sdmUtY2FydC1lbXB0eS1yZXNwb25zZS5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBFc29sdmVFbXB0eUNhcnRSZXN1bHQgfSBmcm9tICcuL2Vzb2x2ZS1lbXB0eS1jYXJ0LXJlc3VsdC5tb2RlbCc7XHJcbmltcG9ydCB7IEVzb2x2ZUFkZGl0aW9uYWxXaGVyZSB9IGZyb20gJy4vZXNvbHZlLWNhcnQtYWRkaXRpb25hbC13aGVyZS5pbnRlcmZhY2UnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRXNvbHZlQ2FydFNlcnZpY2Uge1xyXG4gICAgcHJpdmF0ZSBfY2FjaGVkX3RyYWNraW5nID0gMDtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBASW5qZWN0KEVTT0xWRV9DT05ORUNUX0NPTkZJRykgcHJpdmF0ZSBjb25maWc6IEVzb2x2ZUNvbm5lY3RDb25maWcsXHJcbiAgICAgICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgICAgIHByaXZhdGUgZXJyb3JIYW5kbGVyOiBFc29sdmVFcnJvckhhbmRsZXJTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgcmVzcG9uc2VIYW5kbGVyOiBFc29sdmVSZXNwb25zZUhhbmRsZXJTZXJ2aWNlXHJcbiAgICApIHsgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0cmlldmVzIHRoZSBjdXJyZW50IGNhcnRcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyBBbiBgT2JzZXJ2YWJsZWAgd2l0aCBhbiBhcnJheSBvZiBjYXJ0IGl0ZW1zXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRDYXJ0KCk6IE9ic2VydmFibGU8RXNvbHZlQ2FydD4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgICAgICAgLmdldDxFc29sdmVHZXRSZXNwb25zZTxFc29sdmVDYXJ0SXRlbVJlY29yZFtdPj4oXHJcbiAgICAgICAgICAgICAgICBgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9nZXQtY2FydC5waHBgXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnJlY29yZHMgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyByZXNwb25zZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NDYXJ0KHJlc3BvbnNlLnJlY29yZHMpO1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFVwZGF0ZXMgdGhlIGNhcnQgYnkgcHJlZm9ybWluZyB2YXJpb3VzIGFjdGlvbnMsIHN1Y2ggYXMgYWRkaW5nLCBlZGl0aW5nIG9yIHJlbW92aW5nIGl0ZW1zIGZyb20gdGhlIGNhcnQuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGl0ZW1zIEFuIGFycmF5IG9mIG9wdGlvbnMgdG8gdXBkYXRlIHRoZSBjYXJ0XHJcbiAgICAgKiBAcGFyYW0gYWN0aW9uIFRoZSBkZWZhdWx0IGFjdGlvbiB0byBwcmVmb3JtXHJcbiAgICAgKiBAcmV0dXJucyBBbiBgT2JzZXJ2YWJsZWAgd2l0aCBhbiBhcnJheSBvZiByZXNwb25zZXMgdGhhdCBnaXZlcyBmZWVkYmFjayBvbiB0aGUgcmVxdWVzdGVkIGNoYW5nZXNcclxuICAgICAqL1xyXG4gICAgcHVibGljIHNldENhcnQoXHJcbiAgICAgICAgaXRlbXM6IEVzb2x2ZUNhcnRTZXRJdGVtW10sXHJcbiAgICAgICAgYWN0aW9uOiBFc29sdmVDYXJ0U2V0QWN0aW9uID0gJ2FkZCdcclxuICAgICk6IE9ic2VydmFibGU8RXNvbHZlQ2FydEl0ZW1SZXNwb25zZVtdPiB7XHJcbiAgICAgICAgY29uc3QgYm9keSA9IHtcclxuICAgICAgICAgICAgaXRlbXMsXHJcbiAgICAgICAgICAgIGFjdGlvblxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgICAgICAgLnBvc3Q8RXNvbHZlU2V0UmVzcG9uc2U8RXNvbHZlQ2FydEl0ZW1SZXNwb25zZT4+KFxyXG4gICAgICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vc2V0LWNhcnQtaXRlbS5waHBgLFxyXG4gICAgICAgICAgICAgICAgYm9keSxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9dXRmLTg7J1xyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlOiAnanNvbicsXHJcbiAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZTogJ2JvZHknXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBtYXAocmVzcG9uc2UgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5yZXNwb25zZXMgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyByZXNwb25zZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZS5yZXNwb25zZXM7XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXRDYXJ0RW1wdHkodHlwZTogRXNvbHZlVHJhbnNhY3Rpb25UeXBlLCBhZGRpdGlvbmFsX3doZXJlOiBFc29sdmVBZGRpdGlvbmFsV2hlcmVbXSk6IE9ic2VydmFibGU8RXNvbHZlRW1wdHlDYXJ0UmVzdWx0PiB7XHJcbiAgICAgICAgY29uc3QgYm9keSA9IHtcclxuICAgICAgICAgICAgdHlwZSxcclxuICAgICAgICAgICAgYWRkaXRpb25hbF93aGVyZVxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgICAgICAgLnBvc3Q8RXNvbHZlU2V0UmVzcG9uc2U8RXNvbHZlQ2FydEVtcHR5UmVzcG9uc2U+PihcclxuICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L3NldC1jYXJ0LWVtcHR5LnBocGAsXHJcbiAgICAgICAgICAgICAgICBib2R5LFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD11dGYtODsnXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICByZXNwb25zZVR5cGU6ICdqc29uJyxcclxuICAgICAgICAgICAgICAgICAgICBvYnNlcnZlOiAnYm9keScsXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBtYXAoKGh0dHBfcmVzcG9uc2UpID0+IHRoaXMucmVzcG9uc2VIYW5kbGVyLnZhbGlkYXRlU2luZ2xlSHR0cFJlc3BvbnNlKFxyXG4gICAgICAgICAgICAgICAgICAgIGh0dHBfcmVzcG9uc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2NhY2hlZF90cmFja2luZyA9IDA7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEVzb2x2ZUVtcHR5Q2FydFJlc3VsdChyZXNwb25zZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgKSksXHJcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvclJlczogSHR0cEVycm9yUmVzcG9uc2UgfCBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5lcnJvckhhbmRsZXIuaGFuZGxlSHR0cFBvc3RFcnJvcignc2V0LWNhcnQtZW1wdHknLCBlcnJvclJlcyk7XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0cmlldmVzIHRoZSB0b3RhbHMgb2YgdGhlIGNhcnQgd2l0aCBhbGwgdGhlIHRvdGFscyBjYWxjdWxhdGVkXHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybnMgQW4gYE9ic2VydmFibGVgIHdpdGggYW4gb2JqZWN0IGNvbnRhaW5pbmcgY2FydCB0b3RhbHNcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldFRvdGFscyh0eXBlPzogRXNvbHZlVHJhbnNhY3Rpb25UeXBlKTogT2JzZXJ2YWJsZTxFc29sdmVDYXJ0VG90YWxzPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAgICAgICAuZ2V0PEVzb2x2ZUdldFJlc3BvbnNlPEVzb2x2ZUNhcnRUb3RhbHNSZWNvcmQ+PihcclxuICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L2dldC1jYXJ0LXRvdGFscy5waHBgLFxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHBhcmFtczoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiB0eXBlID8/ICcnLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5yZWNvcmRzID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzQ2FydFRvdGFscyhyZXNwb25zZS5yZWNvcmRzKTtcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0cmlldmVzIGEgdHJhY2tpbmcgY29kZSBmb3IgdGhlIGNhcnRcclxuICAgICAqXHJcbiAgICAgKiBAcmV0dXJucyBBbiBgT2JzZXJ2YWJsZWAgd2l0aCB0aGUgY2FydCB0cmFja2luZyBjb2RlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRUcmFja2luZ0NvZGUoKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcclxuICAgICAgICByZXR1cm4gaWlmKFxyXG4gICAgICAgICAgICAoKSA9PiB0aGlzLl9jYWNoZWRfdHJhY2tpbmcgPiAwLFxyXG4gICAgICAgICAgICBvZih0aGlzLl9jYWNoZWRfdHJhY2tpbmcpLFxyXG4gICAgICAgICAgICB0aGlzLmh0dHBcclxuICAgICAgICAgICAgICAgIC5nZXQ8RXNvbHZlR2V0UmVzcG9uc2U8RXNvbHZlVHJhY2tpbmdDb2RlPj4oXHJcbiAgICAgICAgICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vZ2V0LWNoZWNrb3V0LXRyYWNraW5nLnBocGBcclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnJlY29yZHMgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2NhY2hlZF90cmFja2luZyA9IHJlc3BvbnNlLnJlY29yZHMudHJhY2tpbmc7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UucmVjb3Jkcy50cmFja2luZztcclxuICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbml0aWF0ZXMgY2hlY2tvdXQgb2YgdGhlIGNhcnQgaXRlbXNcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gdHlwZSBUaGUgY2FydCB0eXBlIHRoYXQgbmVlZHMgdG8gYmUgY2hlY2tlZCBvdXRcclxuICAgICAqIEBwYXJhbSBhZGRyZXNzZXNfaWQgVGhlIElEIG9mIHRoZSBkZWxpdmVyeSBhZGRyZXNzXHJcbiAgICAgKiBAcGFyYW0gc2hpcHBpbmdfaWQgVGhlIElEIG9mIHRoZSBzaGlwcGluZyBtZXRob2RcclxuICAgICAqIEBwYXJhbSBwYXltZW50X21ldGhvZF9pZCBUaGUgSUQgb2YgdGhlIHNlbGVjdGVkIHBheW1lbnQgbWV0aG9kXHJcbiAgICAgKiBAcGFyYW0gbG9jYXRpb25faWQgVGhlIElEIG9mIHRoZSBzZWxlY3RlZCBicmFuY2ggZnJvbSB3aXRoIHNoaXBwaW5nIG5lZWRzIHRvIGJlIGNhbGN1bGF0ZWRcclxuICAgICAqIEBwYXJhbSBjb21tZW50cyBBZGRpdGlvbmFsIGNvbW1lbnRzIG9uIHRoZSBjYXJ0XHJcbiAgICAgKiBAcmV0dXJucyBBbiBgT2JzZXJ2YWJsZWAgd2l0aCB0aGUgdHJhbnNhY3Rpb24gSURcclxuICAgICAqL1xyXG4gICAgcHVibGljIGNoZWNrb3V0KFxyXG4gICAgICAgIHR5cGU6IEVzb2x2ZVRyYW5zYWN0aW9uVHlwZSxcclxuICAgICAgICBhZGRyZXNzZXNfaWQ6IG51bWJlcixcclxuICAgICAgICBzaGlwcGluZ19pZDogbnVtYmVyLFxyXG4gICAgICAgIHBheW1lbnRfbWV0aG9kX2lkID0gMCxcclxuICAgICAgICBsb2NhdGlvbl9pZCA9IDAsXHJcbiAgICAgICAgY29tbWVudHMgPSAnJ1xyXG4gICAgKTogT2JzZXJ2YWJsZTxFc29sdmVDaGVja291dFJlc3VsdD4ge1xyXG4gICAgICAgIGNvbnN0IGJvZHkgPSB7XHJcbiAgICAgICAgICAgIHR5cGUsXHJcbiAgICAgICAgICAgIGFkZHJlc3Nlc19pZCxcclxuICAgICAgICAgICAgc2hpcHBpbmdfaWQsXHJcbiAgICAgICAgICAgIHBheW1lbnRfbWV0aG9kX2lkLFxyXG4gICAgICAgICAgICBsb2NhdGlvbl9pZCxcclxuICAgICAgICAgICAgY29tbWVudHMsXHJcbiAgICAgICAgICAgIHRyYWNraW5nOiAwXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VHJhY2tpbmdDb2RlKCkucGlwZShcclxuICAgICAgICAgICAgc3dpdGNoTWFwKCh0cmFja2luZykgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRyYWNraW5nIDw9IDApIHtcclxuICAgICAgICAgICAgICAgICAgICB0aHJvdyB0cmFja2luZztcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBib2R5LnRyYWNraW5nID0gdHJhY2tpbmc7XHJcblxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAgICAgICAgICAgICAgIC5wb3N0PEVzb2x2ZVNldFJlc3BvbnNlPEVzb2x2ZUNoZWNrb3V0UmVzcG9uc2U+PihcclxuICAgICAgICAgICAgICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vc2V0LWNoZWNrb3V0LnBocGAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvZHksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PXV0Zi04OydcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZVR5cGU6ICdqc29uJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9ic2VydmU6ICdib2R5J1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXAoKGh0dHBfcmVzcG9uc2UpID0+IHRoaXMucmVzcG9uc2VIYW5kbGVyLnZhbGlkYXRlU2luZ2xlSHR0cFJlc3BvbnNlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaHR0cF9yZXNwb25zZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2NhY2hlZF90cmFja2luZyA9IDA7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRXNvbHZlQ2hlY2tvdXRSZXN1bHQocmVzcG9uc2UpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICApKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3JSZXM6IEh0dHBFcnJvclJlc3BvbnNlIHwgYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5lcnJvckhhbmRsZXIuaGFuZGxlSHR0cFBvc3RFcnJvcignc2V0LWNoZWNrb3V0JywgZXJyb3JSZXMpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFByb2Nlc3NlcyB0aGUgZVNvbHZlIHRyZWUgcmVjb3Jkc1xyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBjYXJ0X2l0ZW1fcmVjb3JkcyBSZWNvcmRzIHRvIHByb2Nlc3NcclxuICAgICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIHByb2Nlc3NlZCBjYXJ0IGl0ZW1zXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgcHJvY2Vzc0NhcnQoY2FydF9pdGVtX3JlY29yZHM6IEVzb2x2ZUNhcnRJdGVtUmVjb3JkW10pOiBFc29sdmVDYXJ0IHtcclxuICAgICAgICBjb25zdCBjYXJ0X2l0ZW1zOiBFc29sdmVDYXJ0SXRlbVtdID0gW107XHJcblxyXG4gICAgICAgIGlmIChjYXJ0X2l0ZW1fcmVjb3Jkcykge1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGNhcnRfaXRlbV9yZWNvcmQgb2YgY2FydF9pdGVtX3JlY29yZHMpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGNhcnRfc3RvY2tfaXRlbSA9IG5ldyBFc29sdmVDYXJ0U3RvY2tJdGVtKFxyXG4gICAgICAgICAgICAgICAgICAgIGNhcnRfaXRlbV9yZWNvcmQuY29kZSxcclxuICAgICAgICAgICAgICAgICAgICBjYXJ0X2l0ZW1fcmVjb3JkLm5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgY2FydF9pdGVtX3JlY29yZC5zZWZfbmFtZSxcclxuICAgICAgICAgICAgICAgICAgICBjYXJ0X2l0ZW1fcmVjb3JkLmRlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgICAgICAgICAgIGNhcnRfaXRlbV9yZWNvcmQuaXNfYWN0aXZlLFxyXG4gICAgICAgICAgICAgICAgICAgICtjYXJ0X2l0ZW1fcmVjb3JkLml0ZW1zX2luX3BhY2ssXHJcbiAgICAgICAgICAgICAgICAgICAgY2FydF9pdGVtX3JlY29yZC5kZWxpdmVyeV9jYXRlZ29yeSxcclxuICAgICAgICAgICAgICAgICAgICArY2FydF9pdGVtX3JlY29yZC5vbmhhbmQsXHJcbiAgICAgICAgICAgICAgICAgICAgY2FydF9pdGVtX3JlY29yZC5pbWFnZV9uYW1lXHJcbiAgICAgICAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgICAgICAgIGNhcnRfaXRlbXMucHVzaChuZXcgRXNvbHZlQ2FydEl0ZW0oXHJcbiAgICAgICAgICAgICAgICAgICAgK2NhcnRfaXRlbV9yZWNvcmQuaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgY2FydF9zdG9ja19pdGVtLFxyXG4gICAgICAgICAgICAgICAgICAgICtjYXJ0X2l0ZW1fcmVjb3JkLnF0eSxcclxuICAgICAgICAgICAgICAgICAgICBjYXJ0X2l0ZW1fcmVjb3JkLnR5cGUsXHJcbiAgICAgICAgICAgICAgICAgICAgK2NhcnRfaXRlbV9yZWNvcmQucHJpY2UsXHJcbiAgICAgICAgICAgICAgICAgICAgK2NhcnRfaXRlbV9yZWNvcmQuZGlzY291bnQsXHJcbiAgICAgICAgICAgICAgICAgICAgK2NhcnRfaXRlbV9yZWNvcmQuZGlzY291bnRfaW50ZXJ2YWwsXHJcbiAgICAgICAgICAgICAgICAgICAgY2FydF9pdGVtX3JlY29yZC52YXRfcmF0ZSxcclxuICAgICAgICAgICAgICAgICAgICBjYXJ0X2l0ZW1fcmVjb3JkLmFsbG93X3F1b3RlcyxcclxuICAgICAgICAgICAgICAgICAgICBjYXJ0X2l0ZW1fcmVjb3JkLmFsbG93X29yZGVycyxcclxuICAgICAgICAgICAgICAgICAgICBjYXJ0X2l0ZW1fcmVjb3JkLm11c3RfY29sbGVjdCxcclxuICAgICAgICAgICAgICAgICAgICBjYXJ0X2l0ZW1fcmVjb3JkLnJlcXVlc3RlZF9hc3NlbWJseSxcclxuICAgICAgICAgICAgICAgICAgICArY2FydF9pdGVtX3JlY29yZC5wcmljZV9pbmNsLFxyXG4gICAgICAgICAgICAgICAgICAgICtjYXJ0X2l0ZW1fcmVjb3JkLmRpc2NvdW50X3ByaWNlLFxyXG4gICAgICAgICAgICAgICAgICAgICtjYXJ0X2l0ZW1fcmVjb3JkLmRpc2NvdW50X3ByaWNlX2luY2wsXHJcbiAgICAgICAgICAgICAgICAgICAgK2NhcnRfaXRlbV9yZWNvcmQuZGlzY291bnRfdG90YWwsXHJcbiAgICAgICAgICAgICAgICAgICAgK2NhcnRfaXRlbV9yZWNvcmQudmF0X3RvdGFsLFxyXG4gICAgICAgICAgICAgICAgICAgICtjYXJ0X2l0ZW1fcmVjb3JkLmxpbmVfdG90YWwsXHJcbiAgICAgICAgICAgICAgICAgICAgK2NhcnRfaXRlbV9yZWNvcmQubGluZV90b3RhbF9pbmNsXHJcbiAgICAgICAgICAgICAgICApKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGNhcnRfaXRlbXM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQcm9jZXNzZXMgdGhlIGVTb2x2ZSBjYXJ0IHRvdGFsc1xyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSByZWNvcmQgRGF0YSB0byBwcm9jZXNzXHJcbiAgICAgKiBAcmV0dXJucyBQcm9jZXNzZWQgY2FydCB0b3RhbHNcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBwcm9jZXNzQ2FydFRvdGFscyhyZWNvcmQ6IEVzb2x2ZUNhcnRUb3RhbHNSZWNvcmQpOiBFc29sdmVDYXJ0VG90YWxzIHtcclxuICAgICAgICBjb25zdCBjYXJ0X3RvdGFscyA9IG5ldyBFc29sdmVDYXJ0VG90YWxzKFxyXG4gICAgICAgICAgICArcmVjb3JkLnJlY29yZHMsXHJcbiAgICAgICAgICAgICtyZWNvcmQuaXRlbXMsXHJcbiAgICAgICAgICAgICtyZWNvcmQudG90YWwsXHJcbiAgICAgICAgICAgICtyZWNvcmQudmF0LFxyXG4gICAgICAgICAgICArcmVjb3JkLmRpc2NvdW50XHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGNhcnRfdG90YWxzO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
199
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWNhcnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvY2FydC9lc29sdmUtY2FydC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSW5ELE9BQU8sRUFBRSxHQUFHLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzVELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBVzFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUcxRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUlyRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUU5RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUd0RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7Ozs7QUFNekUsTUFBTSxPQUFPLGlCQUFpQjtJQUcxQixZQUMyQyxNQUEyQixFQUMxRCxJQUFnQixFQUNoQixZQUF1QyxFQUN2QyxlQUE2QztRQUhkLFdBQU0sR0FBTixNQUFNLENBQXFCO1FBQzFELFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsaUJBQVksR0FBWixZQUFZLENBQTJCO1FBQ3ZDLG9CQUFlLEdBQWYsZUFBZSxDQUE4QjtRQU5qRCxxQkFBZ0IsR0FBRyxDQUFDLENBQUM7SUFPekIsQ0FBQztJQUVMOzs7O09BSUc7SUFDSSxPQUFPO1FBQ1YsT0FBTyxJQUFJLENBQUMsSUFBSTthQUNYLEdBQUcsQ0FDQSxH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UixVQUFVLEVBQUUsTUFBTTtpQkFDckI7OzBCQUtRLE1BQU07MkJBQUMscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwRXJyb3JSZXNwb25zZSwgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuXHJcbmltcG9ydCB7IGlpZiwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBFc29sdmVDb25uZWN0Q29uZmlnIH0gZnJvbSAnLi4vZXNvbHZlLWNvbm5lY3QuY29uZmlnJztcclxuaW1wb3J0IHsgRVNPTFZFX0NPTk5FQ1RfQ09ORklHIH0gZnJvbSAnLi4vZXNvbHZlLWNvbm5lY3QtY29uZmlnLmNvbnN0YW50JztcclxuaW1wb3J0IHsgRXNvbHZlRXJyb3JIYW5kbGVyU2VydmljZSB9IGZyb20gJy4uL3NoYXJlZC9lcnJvcnMvZXNvbHZlLWVycm9yLWhhbmRsZXIuc2VydmljZSc7XHJcbmltcG9ydCB7XHJcbiAgICBFc29sdmVTZXRSZXNwb25zZSxcclxuICAgIEVzb2x2ZUdldFJlc3BvbnNlLFxyXG4gICAgRXNvbHZlUmVzcG9uc2VIYW5kbGVyU2VydmljZSxcclxufSBmcm9tICcuLi9zaGFyZWQvcmVzcG9uc2UnO1xyXG5cclxuaW1wb3J0IHsgRXNvbHZlVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnLi4vYWNjb3VudCc7XHJcblxyXG5pbXBvcnQgeyBFc29sdmVDYXJ0IH0gZnJvbSAnLi9lc29sdmUtY2FydC50eXBlJztcclxuaW1wb3J0IHsgRXNvbHZlQ2FydEl0ZW0gfSBmcm9tICcuL2Vzb2x2ZS1jYXJ0LWl0ZW0ubW9kZWwnO1xyXG5pbXBvcnQgeyBFc29sdmVDYXJ0U2V0SXRlbSB9IGZyb20gJy4vZXNvbHZlLWNhcnQtc2V0LWl0ZW0uaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgRXNvbHZlQ2FydFNldEFjdGlvbiB9IGZyb20gJy4vZXNvbHZlLWNhcnQtc2V0LWFjdGlvbi50eXBlJztcclxuaW1wb3J0IHsgRXNvbHZlQ2FydFN0b2NrSXRlbSB9IGZyb20gJy4vZXNvbHZlLWNhcnQtc3RvY2staXRlbS5tb2RlbCc7XHJcbmltcG9ydCB7IEVzb2x2ZUNhcnRJdGVtUmVjb3JkIH0gZnJvbSAnLi9lc29sdmUtY2FydC1pdGVtLXJlY29yZC5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBFc29sdmVDYXJ0SXRlbVJlc3BvbnNlIH0gZnJvbSAnLi9lc29sdmUtY2FydC1pdGVtLXJlc3BvbnNlLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IEVzb2x2ZUNhcnRUb3RhbHNSZWNvcmQgfSBmcm9tICcuL2Vzb2x2ZS1jYXJ0LXRvdGFscy1yZWNvcmQuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgRXNvbHZlQ2FydFRvdGFscyB9IGZyb20gJy4vZXNvbHZlLWNhcnQtdG90YWxzLm1vZGVsJztcclxuaW1wb3J0IHsgRXNvbHZlQ2hlY2tvdXRSZXNwb25zZSB9IGZyb20gJy4vZXNvbHZlLWNoZWNrb3V0LXJlc3BvbnNlLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IEVzb2x2ZUNoZWNrb3V0UmVzdWx0IH0gZnJvbSAnLi9lc29sdmUtY2hlY2tvdXQtcmVzdWx0Lm1vZGVsJztcclxuaW1wb3J0IHsgRXNvbHZlVHJhY2tpbmdDb2RlIH0gZnJvbSAnLi9lc29sdmUtdHJhY2tpbmctY29kZS5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBFc29sdmVDYXJ0RW1wdHlSZXNwb25zZSB9IGZyb20gJy4vZXNvbHZlLWNhcnQtZW1wdHktcmVzcG9uc2UuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgRXNvbHZlRW1wdHlDYXJ0UmVzdWx0IH0gZnJvbSAnLi9lc29sdmUtZW1wdHktY2FydC1yZXN1bHQubW9kZWwnO1xyXG5pbXBvcnQgeyBFc29sdmVBZGRpdGlvbmFsV2hlcmUgfSBmcm9tICcuL2Vzb2x2ZS1jYXJ0LWFkZGl0aW9uYWwtd2hlcmUuaW50ZXJmYWNlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEVzb2x2ZUNhcnRTZXJ2aWNlIHtcclxuICAgIHByaXZhdGUgX2NhY2hlZF90cmFja2luZyA9IDA7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgQEluamVjdChFU09MVkVfQ09OTkVDVF9DT05GSUcpIHByaXZhdGUgY29uZmlnOiBFc29sdmVDb25uZWN0Q29uZmlnLFxyXG4gICAgICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgICAgICBwcml2YXRlIGVycm9ySGFuZGxlcjogRXNvbHZlRXJyb3JIYW5kbGVyU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHJlc3BvbnNlSGFuZGxlcjogRXNvbHZlUmVzcG9uc2VIYW5kbGVyU2VydmljZVxyXG4gICAgKSB7IH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHJpZXZlcyB0aGUgY3VycmVudCBjYXJ0XHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybnMgQW4gYE9ic2VydmFibGVgIHdpdGggYW4gYXJyYXkgb2YgY2FydCBpdGVtc1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0Q2FydCgpOiBPYnNlcnZhYmxlPEVzb2x2ZUNhcnQ+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgICAgICAgIC5nZXQ8RXNvbHZlR2V0UmVzcG9uc2U8RXNvbHZlQ2FydEl0ZW1SZWNvcmRbXT4+KFxyXG4gICAgICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vZ2V0LWNhcnQucGhwYFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5yZWNvcmRzID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzQ2FydChyZXNwb25zZS5yZWNvcmRzKTtcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBVcGRhdGVzIHRoZSBjYXJ0IGJ5IHByZWZvcm1pbmcgdmFyaW91cyBhY3Rpb25zLCBzdWNoIGFzIGFkZGluZywgZWRpdGluZyBvciByZW1vdmluZyBpdGVtcyBmcm9tIHRoZSBjYXJ0LlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBpdGVtcyBBbiBhcnJheSBvZiBvcHRpb25zIHRvIHVwZGF0ZSB0aGUgY2FydFxyXG4gICAgICogQHBhcmFtIGFjdGlvbiBUaGUgZGVmYXVsdCBhY3Rpb24gdG8gcHJlZm9ybVxyXG4gICAgICogQHJldHVybnMgQW4gYE9ic2VydmFibGVgIHdpdGggYW4gYXJyYXkgb2YgcmVzcG9uc2VzIHRoYXQgZ2l2ZXMgZmVlZGJhY2sgb24gdGhlIHJlcXVlc3RlZCBjaGFuZ2VzXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzZXRDYXJ0KFxyXG4gICAgICAgIGl0ZW1zOiBFc29sdmVDYXJ0U2V0SXRlbVtdLFxyXG4gICAgICAgIGFjdGlvbjogRXNvbHZlQ2FydFNldEFjdGlvbiA9ICdhZGQnXHJcbiAgICApOiBPYnNlcnZhYmxlPEVzb2x2ZUNhcnRJdGVtUmVzcG9uc2VbXT4ge1xyXG4gICAgICAgIGNvbnN0IGJvZHkgPSB7XHJcbiAgICAgICAgICAgIGl0ZW1zLFxyXG4gICAgICAgICAgICBhY3Rpb25cclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgICAgICAgIC5wb3N0PEVzb2x2ZVNldFJlc3BvbnNlPEVzb2x2ZUNhcnRJdGVtUmVzcG9uc2U+PihcclxuICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L3NldC1jYXJ0LWl0ZW0ucGhwYCxcclxuICAgICAgICAgICAgICAgIGJvZHksXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDtjaGFyc2V0PXV0Zi04OydcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlVHlwZTogJ2pzb24nLFxyXG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmU6ICdib2R5J1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKHJlc3BvbnNlID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UucmVzcG9uc2VzID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UucmVzcG9uc2VzO1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2V0Q2FydEVtcHR5KHR5cGU6IEVzb2x2ZVRyYW5zYWN0aW9uVHlwZSwgYWRkaXRpb25hbF93aGVyZTogRXNvbHZlQWRkaXRpb25hbFdoZXJlW10pOiBPYnNlcnZhYmxlPEVzb2x2ZUVtcHR5Q2FydFJlc3VsdD4ge1xyXG4gICAgICAgIGNvbnN0IGJvZHkgPSB7XHJcbiAgICAgICAgICAgIHR5cGUsXHJcbiAgICAgICAgICAgIGFkZGl0aW9uYWxfd2hlcmVcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgICAgICAgIC5wb3N0PEVzb2x2ZVNldFJlc3BvbnNlPEVzb2x2ZUNhcnRFbXB0eVJlc3BvbnNlPj4oXHJcbiAgICAgICAgICAgICAgICBgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9zZXQtY2FydC1lbXB0eS5waHBgLFxyXG4gICAgICAgICAgICAgICAgYm9keSxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkO2NoYXJzZXQ9dXRmLTg7J1xyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlOiAnanNvbicsXHJcbiAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZTogJ2JvZHknLFxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKChodHRwX3Jlc3BvbnNlKSA9PiB0aGlzLnJlc3BvbnNlSGFuZGxlci52YWxpZGF0ZVNpbmdsZUh0dHBSZXNwb25zZShcclxuICAgICAgICAgICAgICAgICAgICBodHRwX3Jlc3BvbnNlLFxyXG4gICAgICAgICAgICAgICAgICAgIChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9jYWNoZWRfdHJhY2tpbmcgPSAwO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBFc29sdmVFbXB0eUNhcnRSZXN1bHQocmVzcG9uc2UpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICkpLFxyXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3JSZXM6IEh0dHBFcnJvclJlc3BvbnNlIHwgYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JIYW5kbGVyLmhhbmRsZUh0dHBQb3N0RXJyb3IoJ3NldC1jYXJ0LWVtcHR5JywgZXJyb3JSZXMpO1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHJpZXZlcyB0aGUgdG90YWxzIG9mIHRoZSBjYXJ0IHdpdGggYWxsIHRoZSB0b3RhbHMgY2FsY3VsYXRlZFxyXG4gICAgICpcclxuICAgICAqIEByZXR1cm5zIEFuIGBPYnNlcnZhYmxlYCB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGNhcnQgdG90YWxzXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRUb3RhbHModHlwZT86IEVzb2x2ZVRyYW5zYWN0aW9uVHlwZSk6IE9ic2VydmFibGU8RXNvbHZlQ2FydFRvdGFscz4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgICAgICAgLmdldDxFc29sdmVHZXRSZXNwb25zZTxFc29sdmVDYXJ0VG90YWxzUmVjb3JkPj4oXHJcbiAgICAgICAgICAgICAgICBgJHt0aGlzLmNvbmZpZy5hcGlfdXJsfS9nZXQtY2FydC10b3RhbHMucGhwYCxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBwYXJhbXM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogdHlwZSA/PyAnJyxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UucmVjb3JkcyA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc0NhcnRUb3RhbHMocmVzcG9uc2UucmVjb3Jkcyk7XHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHJpZXZlcyBhIHRyYWNraW5nIGNvZGUgZm9yIHRoZSBjYXJ0XHJcbiAgICAgKlxyXG4gICAgICogQHJldHVybnMgQW4gYE9ic2VydmFibGVgIHdpdGggdGhlIGNhcnQgdHJhY2tpbmcgY29kZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0VHJhY2tpbmdDb2RlKCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XHJcbiAgICAgICAgcmV0dXJuIGlpZihcclxuICAgICAgICAgICAgKCkgPT4gdGhpcy5fY2FjaGVkX3RyYWNraW5nID4gMCxcclxuICAgICAgICAgICAgb2YodGhpcy5fY2FjaGVkX3RyYWNraW5nKSxcclxuICAgICAgICAgICAgdGhpcy5odHRwXHJcbiAgICAgICAgICAgICAgICAuZ2V0PEVzb2x2ZUdldFJlc3BvbnNlPEVzb2x2ZVRyYWNraW5nQ29kZT4+KFxyXG4gICAgICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L2dldC1jaGVja291dC10cmFja2luZy5waHBgXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5yZWNvcmRzID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9jYWNoZWRfdHJhY2tpbmcgPSByZXNwb25zZS5yZWNvcmRzLnRyYWNraW5nO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLnJlY29yZHMudHJhY2tpbmc7XHJcbiAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5pdGlhdGVzIGNoZWNrb3V0IG9mIHRoZSBjYXJ0IGl0ZW1zXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHR5cGUgVGhlIGNhcnQgdHlwZSB0aGF0IG5lZWRzIHRvIGJlIGNoZWNrZWQgb3V0XHJcbiAgICAgKiBAcGFyYW0gYWRkcmVzc2VzX2lkIFRoZSBJRCBvZiB0aGUgZGVsaXZlcnkgYWRkcmVzc1xyXG4gICAgICogQHBhcmFtIHNoaXBwaW5nX2lkIFRoZSBJRCBvZiB0aGUgc2hpcHBpbmcgbWV0aG9kXHJcbiAgICAgKiBAcGFyYW0gcGF5bWVudF9tZXRob2RfaWQgVGhlIElEIG9mIHRoZSBzZWxlY3RlZCBwYXltZW50IG1ldGhvZFxyXG4gICAgICogQHBhcmFtIGxvY2F0aW9uX2lkIFRoZSBJRCBvZiB0aGUgc2VsZWN0ZWQgYnJhbmNoIGZyb20gd2l0aCBzaGlwcGluZyBuZWVkcyB0byBiZSBjYWxjdWxhdGVkXHJcbiAgICAgKiBAcGFyYW0gY29tbWVudHMgQWRkaXRpb25hbCBjb21tZW50cyBvbiB0aGUgY2FydFxyXG4gICAgICogQHJldHVybnMgQW4gYE9ic2VydmFibGVgIHdpdGggdGhlIHRyYW5zYWN0aW9uIElEXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBjaGVja291dChcclxuICAgICAgICB0eXBlOiBFc29sdmVUcmFuc2FjdGlvblR5cGUsXHJcbiAgICAgICAgYWRkcmVzc2VzX2lkOiBudW1iZXIsXHJcbiAgICAgICAgc2hpcHBpbmdfaWQ6IG51bWJlcixcclxuICAgICAgICBwYXltZW50X21ldGhvZF9pZCA9IDAsXHJcbiAgICAgICAgbG9jYXRpb25faWQgPSAwLFxyXG4gICAgICAgIGNvbW1lbnRzID0gJydcclxuICAgICk6IE9ic2VydmFibGU8RXNvbHZlQ2hlY2tvdXRSZXN1bHQ+IHtcclxuICAgICAgICBjb25zdCBib2R5ID0ge1xyXG4gICAgICAgICAgICB0eXBlLFxyXG4gICAgICAgICAgICBhZGRyZXNzZXNfaWQsXHJcbiAgICAgICAgICAgIHNoaXBwaW5nX2lkLFxyXG4gICAgICAgICAgICBwYXltZW50X21ldGhvZF9pZCxcclxuICAgICAgICAgICAgbG9jYXRpb25faWQsXHJcbiAgICAgICAgICAgIGNvbW1lbnRzLFxyXG4gICAgICAgICAgICB0cmFja2luZzogMFxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmdldFRyYWNraW5nQ29kZSgpLnBpcGUoXHJcbiAgICAgICAgICAgIHN3aXRjaE1hcCgodHJhY2tpbmcpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICh0cmFja2luZyA8PSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgdHJhY2tpbmc7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgYm9keS50cmFja2luZyA9IHRyYWNraW5nO1xyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgICAgICAgICAgICAgICAucG9zdDxFc29sdmVTZXRSZXNwb25zZTxFc29sdmVDaGVja291dFJlc3BvbnNlPj4oXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L3NldC1jaGVja291dC5waHBgLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBib2R5LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD11dGYtODsnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlOiAnanNvbicsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYnNlcnZlOiAnYm9keSdcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWFwKChodHRwX3Jlc3BvbnNlKSA9PiB0aGlzLnJlc3BvbnNlSGFuZGxlci52YWxpZGF0ZVNpbmdsZUh0dHBSZXNwb25zZShcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh0dHBfcmVzcG9uc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9jYWNoZWRfdHJhY2tpbmcgPSAwO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEVzb2x2ZUNoZWNrb3V0UmVzdWx0KHJlc3BvbnNlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgKSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yUmVzOiBIdHRwRXJyb3JSZXNwb25zZSB8IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JIYW5kbGVyLmhhbmRsZUh0dHBQb3N0RXJyb3IoJ3NldC1jaGVja291dCcsIGVycm9yUmVzKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQcm9jZXNzZXMgdGhlIGVTb2x2ZSB0cmVlIHJlY29yZHNcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gY2FydF9pdGVtX3JlY29yZHMgUmVjb3JkcyB0byBwcm9jZXNzXHJcbiAgICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiBwcm9jZXNzZWQgY2FydCBpdGVtc1xyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHByb2Nlc3NDYXJ0KGNhcnRfaXRlbV9yZWNvcmRzOiBFc29sdmVDYXJ0SXRlbVJlY29yZFtdKTogRXNvbHZlQ2FydCB7XHJcbiAgICAgICAgY29uc3QgY2FydF9pdGVtczogRXNvbHZlQ2FydEl0ZW1bXSA9IFtdO1xyXG5cclxuICAgICAgICBpZiAoY2FydF9pdGVtX3JlY29yZHMpIHtcclxuICAgICAgICAgICAgZm9yIChjb25zdCBjYXJ0X2l0ZW1fcmVjb3JkIG9mIGNhcnRfaXRlbV9yZWNvcmRzKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjYXJ0X3N0b2NrX2l0ZW0gPSBuZXcgRXNvbHZlQ2FydFN0b2NrSXRlbShcclxuICAgICAgICAgICAgICAgICAgICBjYXJ0X2l0ZW1fcmVjb3JkLmNvZGUsXHJcbiAgICAgICAgICAgICAgICAgICAgY2FydF9pdGVtX3JlY29yZC5uYW1lLFxyXG4gICAgICAgICAgICAgICAgICAgIGNhcnRfaXRlbV9yZWNvcmQuc2VmX25hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgY2FydF9pdGVtX3JlY29yZC5kZXNjcmlwdGlvbixcclxuICAgICAgICAgICAgICAgICAgICBjYXJ0X2l0ZW1fcmVjb3JkLmlzX2FjdGl2ZSxcclxuICAgICAgICAgICAgICAgICAgICArY2FydF9pdGVtX3JlY29yZC5pdGVtc19pbl9wYWNrLFxyXG4gICAgICAgICAgICAgICAgICAgIGNhcnRfaXRlbV9yZWNvcmQuZGVsaXZlcnlfY2F0ZWdvcnksXHJcbiAgICAgICAgICAgICAgICAgICAgK2NhcnRfaXRlbV9yZWNvcmQub25oYW5kLFxyXG4gICAgICAgICAgICAgICAgICAgIGNhcnRfaXRlbV9yZWNvcmQuaW1hZ2VfbmFtZVxyXG4gICAgICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICAgICAgICBjYXJ0X2l0ZW1zLnB1c2gobmV3IEVzb2x2ZUNhcnRJdGVtKFxyXG4gICAgICAgICAgICAgICAgICAgICtjYXJ0X2l0ZW1fcmVjb3JkLmlkLFxyXG4gICAgICAgICAgICAgICAgICAgIGNhcnRfc3RvY2tfaXRlbSxcclxuICAgICAgICAgICAgICAgICAgICArY2FydF9pdGVtX3JlY29yZC5xdHksXHJcbiAgICAgICAgICAgICAgICAgICAgY2FydF9pdGVtX3JlY29yZC5kZWxpdmVyeV9jYXRlZ29yeSxcclxuICAgICAgICAgICAgICAgICAgICBjYXJ0X2l0ZW1fcmVjb3JkLnR5cGUsXHJcbiAgICAgICAgICAgICAgICAgICAgK2NhcnRfaXRlbV9yZWNvcmQucHJpY2UsXHJcbiAgICAgICAgICAgICAgICAgICAgK2NhcnRfaXRlbV9yZWNvcmQuZGlzY291bnQsXHJcbiAgICAgICAgICAgICAgICAgICAgK2NhcnRfaXRlbV9yZWNvcmQuZGlzY291bnRfaW50ZXJ2YWwsXHJcbiAgICAgICAgICAgICAgICAgICAgY2FydF9pdGVtX3JlY29yZC52YXRfcmF0ZSxcclxuICAgICAgICAgICAgICAgICAgICBjYXJ0X2l0ZW1fcmVjb3JkLmFsbG93X3F1b3RlcyxcclxuICAgICAgICAgICAgICAgICAgICBjYXJ0X2l0ZW1fcmVjb3JkLmFsbG93X29yZGVycyxcclxuICAgICAgICAgICAgICAgICAgICBjYXJ0X2l0ZW1fcmVjb3JkLm11c3RfY29sbGVjdCxcclxuICAgICAgICAgICAgICAgICAgICBjYXJ0X2l0ZW1fcmVjb3JkLnJlcXVlc3RlZF9hc3NlbWJseSxcclxuICAgICAgICAgICAgICAgICAgICArY2FydF9pdGVtX3JlY29yZC5wcmljZV9pbmNsLFxyXG4gICAgICAgICAgICAgICAgICAgICtjYXJ0X2l0ZW1fcmVjb3JkLmRpc2NvdW50X3ByaWNlLFxyXG4gICAgICAgICAgICAgICAgICAgICtjYXJ0X2l0ZW1fcmVjb3JkLmRpc2NvdW50X3ByaWNlX2luY2wsXHJcbiAgICAgICAgICAgICAgICAgICAgK2NhcnRfaXRlbV9yZWNvcmQuZGlzY291bnRfdG90YWwsXHJcbiAgICAgICAgICAgICAgICAgICAgK2NhcnRfaXRlbV9yZWNvcmQudmF0X3RvdGFsLFxyXG4gICAgICAgICAgICAgICAgICAgICtjYXJ0X2l0ZW1fcmVjb3JkLmxpbmVfdG90YWwsXHJcbiAgICAgICAgICAgICAgICAgICAgK2NhcnRfaXRlbV9yZWNvcmQubGluZV90b3RhbF9pbmNsXHJcbiAgICAgICAgICAgICAgICApKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGNhcnRfaXRlbXM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQcm9jZXNzZXMgdGhlIGVTb2x2ZSBjYXJ0IHRvdGFsc1xyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSByZWNvcmQgRGF0YSB0byBwcm9jZXNzXHJcbiAgICAgKiBAcmV0dXJucyBQcm9jZXNzZWQgY2FydCB0b3RhbHNcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBwcm9jZXNzQ2FydFRvdGFscyhyZWNvcmQ6IEVzb2x2ZUNhcnRUb3RhbHNSZWNvcmQpOiBFc29sdmVDYXJ0VG90YWxzIHtcclxuICAgICAgICBjb25zdCBjYXJ0X3RvdGFscyA9IG5ldyBFc29sdmVDYXJ0VG90YWxzKFxyXG4gICAgICAgICAgICArcmVjb3JkLnJlY29yZHMsXHJcbiAgICAgICAgICAgICtyZWNvcmQuaXRlbXMsXHJcbiAgICAgICAgICAgICtyZWNvcmQudG90YWwsXHJcbiAgICAgICAgICAgICtyZWNvcmQudmF0LFxyXG4gICAgICAgICAgICArcmVjb3JkLmRpc2NvdW50XHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGNhcnRfdG90YWxzO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWhlYWRpbmctcmVjb3JkLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWVzb2x2ZS1jb25uZWN0L3NyYy9saWIvbWVkaWEvZXNvbHZlLWhlYWRpbmctcmVjb3JkLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBFc29sdmVIZWFkaW5nUmVjb3JkIHtcclxuICAgIGlkOiBudW1iZXI7XHJcbiAgICBpZGVudGlmaWVyOiBzdHJpbmc7XHJcbiAgICB2YWx1ZTogc3RyaW5nO1xyXG59XHJcbiJdfQ==
@@ -0,0 +1,7 @@
1
+ export class EsolveHeading {
2
+ constructor(identifier, value) {
3
+ this.identifier = identifier;
4
+ this.value = value;
5
+ }
6
+ }
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLWhlYWRpbmcubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL21lZGlhL2Vzb2x2ZS1oZWFkaW5nLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxhQUFhO0lBQ3RCLFlBQ1csVUFBa0IsRUFDbEIsS0FBYTtRQURiLGVBQVUsR0FBVixVQUFVLENBQVE7UUFDbEIsVUFBSyxHQUFMLEtBQUssQ0FBUTtJQUNwQixDQUFDO0NBQ1IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgRXNvbHZlSGVhZGluZyB7XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwdWJsaWMgaWRlbnRpZmllcjogc3RyaW5nLFxyXG4gICAgICAgIHB1YmxpYyB2YWx1ZTogc3RyaW5nLFxyXG4gICAgKSB7IH1cclxufVxyXG4iXX0=
@@ -0,0 +1,16 @@
1
+ import { EsolveSeoInfo } from '../shared/seo/esolve-seo-info.model';
2
+ export class EsolveMediaArticle {
3
+ constructor(identifier, title, article, image_url = '', tags = [], topics = [], seo_title = '', seo_keywords = '', seo_description = '') {
4
+ this.identifier = identifier;
5
+ this.title = title;
6
+ this.article = article;
7
+ this.image_url = image_url;
8
+ this.tags = tags;
9
+ this.topics = topics;
10
+ if (seo_title.trim() === '') {
11
+ seo_title = this.title;
12
+ }
13
+ this.seo_details = new EsolveSeoInfo(seo_title, seo_description, seo_keywords);
14
+ }
15
+ }
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLW1lZGlhLWFydGljbGUubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL21lZGlhL2Vzb2x2ZS1tZWRpYS1hcnRpY2xlLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUtwRSxNQUFNLE9BQU8sa0JBQWtCO0lBRzNCLFlBQ1csVUFBa0IsRUFDbEIsS0FBYSxFQUNiLE9BQWUsRUFDZixZQUFvQixFQUFFLEVBQ3RCLE9BQW9CLEVBQUUsRUFDdEIsU0FBd0IsRUFBRSxFQUNqQyxZQUFvQixFQUFFLEVBQ3RCLGVBQXVCLEVBQUUsRUFDekIsa0JBQTBCLEVBQUU7UUFSckIsZUFBVSxHQUFWLFVBQVUsQ0FBUTtRQUNsQixVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQ2IsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNmLGNBQVMsR0FBVCxTQUFTLENBQWE7UUFDdEIsU0FBSSxHQUFKLElBQUksQ0FBa0I7UUFDdEIsV0FBTSxHQUFOLE1BQU0sQ0FBb0I7UUFLakMsSUFBSSxTQUFTLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ3pCLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1NBQzFCO1FBRUQsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLGFBQWEsQ0FDaEMsU0FBUyxFQUNULGVBQWUsRUFDZixZQUFZLENBQ2YsQ0FBQztJQUNOLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVzb2x2ZVNlb0luZm8gfSBmcm9tICcuLi9zaGFyZWQvc2VvL2Vzb2x2ZS1zZW8taW5mby5tb2RlbCc7XHJcbmltcG9ydCB7IEVzb2x2ZVNlb0RldGFpbHMgfSBmcm9tICcuLi9zaGFyZWQvc2VvL2Vzb2x2ZS1zZW8tZGV0YWlscy5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBFc29sdmVUYWcgfSBmcm9tICcuLi90YWdzL2Vzb2x2ZS10YWcubW9kZWwnO1xyXG5pbXBvcnQgeyBFc29sdmVUb3BpYyB9IGZyb20gJy4uL3RvcGljcy9lc29sdmUtdG9waWMubW9kZWwnO1xyXG5cclxuZXhwb3J0IGNsYXNzIEVzb2x2ZU1lZGlhQXJ0aWNsZSBpbXBsZW1lbnRzIEVzb2x2ZVNlb0RldGFpbHMge1xyXG4gICAgcHVibGljIHNlb19kZXRhaWxzOiBFc29sdmVTZW9JbmZvO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHB1YmxpYyBpZGVudGlmaWVyOiBzdHJpbmcsXHJcbiAgICAgICAgcHVibGljIHRpdGxlOiBzdHJpbmcsXHJcbiAgICAgICAgcHVibGljIGFydGljbGU6IHN0cmluZyxcclxuICAgICAgICBwdWJsaWMgaW1hZ2VfdXJsOiBzdHJpbmcgPSAnJyxcclxuICAgICAgICBwdWJsaWMgdGFnczogRXNvbHZlVGFnW10gPSBbXSxcclxuICAgICAgICBwdWJsaWMgdG9waWNzOiBFc29sdmVUb3BpY1tdID0gW10sXHJcbiAgICAgICAgc2VvX3RpdGxlOiBzdHJpbmcgPSAnJyxcclxuICAgICAgICBzZW9fa2V5d29yZHM6IHN0cmluZyA9ICcnLFxyXG4gICAgICAgIHNlb19kZXNjcmlwdGlvbjogc3RyaW5nID0gJycsXHJcbiAgICApIHtcclxuICAgICAgICBpZiAoc2VvX3RpdGxlLnRyaW0oKSA9PT0gJycpIHtcclxuICAgICAgICAgICAgc2VvX3RpdGxlID0gdGhpcy50aXRsZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuc2VvX2RldGFpbHMgPSBuZXcgRXNvbHZlU2VvSW5mbyhcclxuICAgICAgICAgICAgc2VvX3RpdGxlLFxyXG4gICAgICAgICAgICBzZW9fZGVzY3JpcHRpb24sXHJcbiAgICAgICAgICAgIHNlb19rZXl3b3Jkc1xyXG4gICAgICAgICk7XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLW1lZGlhLXJlY29yZC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL21lZGlhL2Vzb2x2ZS1tZWRpYS1yZWNvcmQuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFc29sdmVUYWdSZWNvcmQgfSBmcm9tICcuLi90YWdzL2Vzb2x2ZS10YWctcmVjb3JkLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IEVzb2x2ZVRvcGljUmVjb3JkIH0gZnJvbSAnLi4vdG9waWNzL2Vzb2x2ZS10b3BpYy1yZWNvcmQuaW50ZXJmYWNlJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRXNvbHZlTWVkaWFSZWNvcmQge1xyXG4gICAgaWQ6IG51bWJlcjtcclxuICAgIG1lZGlhX2dyb3VwX2lkOiBudW1iZXI7XHJcbiAgICBpZGVudGlmaWVyOiBzdHJpbmc7XHJcbiAgICBtZWRpYV9ncm91cDogYW55O1xyXG4gICAgdHhkYXRlOiBzdHJpbmc7XHJcbiAgICBzZW9fcGFnZV9wcmlvcml0eTogc3RyaW5nO1xyXG4gICAgc2VvX3BhZ2VfdXBkYXRlX2ZyZXF1ZW5jeTogc3RyaW5nO1xyXG4gICAgc2VvX3BhZ2VfdGl0bGU6IHN0cmluZztcclxuICAgIHNlb19rZXl3b3Jkczogc3RyaW5nO1xyXG4gICAgc2VvX2Rlc2NyaXB0aW9uOiBzdHJpbmc7XHJcbiAgICB1c2VyaWQ6IG51bWJlcjtcclxuICAgIHRpdGxlOiBzdHJpbmc7XHJcbiAgICBsYW5ndWFnZV9jb2RlOiBzdHJpbmc7XHJcbiAgICBhcnRpY2xlOiBzdHJpbmc7XHJcbiAgICBhY3RpdmU6IGJvb2xlYW47XHJcbiAgICBzb3J0X3ByaW9yaXR5OiBudW1iZXI7XHJcbiAgICBvbmx5X2Rpc3BsYXlfd2hlbl9sb2dnZWRfb246IGJvb2xlYW47XHJcbiAgICBpc19taW5vcl9hcnRpY2xlOiBib29sZWFuO1xyXG4gICAgaXNfYm90aF9tYXN0ZXJfYW5kX21pbm9yX2FydGljbGU6IGJvb2xlYW47XHJcbiAgICB1cmw6IHN0cmluZztcclxuICAgIHNlZl91cmw6IHN0cmluZztcclxuICAgIGxpbmtfY2FwdGlvbjogc3RyaW5nO1xyXG4gICAgbW9kaWZpZWQ6IHN0cmluZztcclxuICAgIGltYWdlX3VybDogc3RyaW5nO1xyXG4gICAgaW1hZ2VfY2hlY2tzdW06IHN0cmluZztcclxuICAgIHRhZ3M6IEVzb2x2ZVRhZ1JlY29yZFtdO1xyXG4gICAgdG9waWNzOiBFc29sdmVUb3BpY1JlY29yZFtdO1xyXG59XHJcbiJdfQ==
@@ -0,0 +1,129 @@
1
+ import { Inject, Injectable } from '@angular/core';
2
+ import { HttpParams } from '@angular/common/http';
3
+ import { map } from 'rxjs/operators';
4
+ import { ESOLVE_CONNECT_CONFIG } from '../esolve-connect-config.constant';
5
+ import { EsolveTag } from '../tags';
6
+ import { EsolveTopic } from '../topics';
7
+ import { EsolveMediaArticle } from './esolve-media-article.model';
8
+ import { EsolveHeading } from './esolve-heading.model';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "@angular/common/http";
11
+ export class EsolveMediaService {
12
+ constructor(config, http) {
13
+ this.config = config;
14
+ this.http = http;
15
+ }
16
+ /**
17
+ * Retrieves the media record from the eSolve instance using the identifier
18
+ *
19
+ * @param identifier String representing the eSolve media identifier
20
+ */
21
+ getMediaArticle(identifier) {
22
+ const params = new HttpParams({ fromObject: { identifier } });
23
+ // TODO: Error Handling
24
+ return this.getMediaRecords(params).pipe(map((response) => {
25
+ if ((response.records === undefined) ||
26
+ (response.records.length <= 0)) {
27
+ throw response;
28
+ }
29
+ const mediaRecord = response.records[0];
30
+ if (!mediaRecord.active) {
31
+ throw response;
32
+ }
33
+ return this.processMediaRecord(mediaRecord);
34
+ }));
35
+ }
36
+ /**
37
+ * Retrieves a group of media records from the eSolve instance linked to a group
38
+ *
39
+ * @param media_group String representing the eSolve media group
40
+ */
41
+ getGroupedMediaArticles(media_group) {
42
+ const params = new HttpParams({
43
+ fromObject: { media_group_sef: media_group }
44
+ });
45
+ return this.getMediaRecords(params).pipe(map((response) => {
46
+ const mediaArticles = [];
47
+ if ((response.records !== undefined) &&
48
+ (response.records.length > 0)) {
49
+ for (const mediaRecord of response.records) {
50
+ if (mediaRecord.active) {
51
+ mediaArticles.push(this.processMediaRecord(mediaRecord));
52
+ }
53
+ }
54
+ }
55
+ return mediaArticles;
56
+ }));
57
+ }
58
+ /**
59
+ * Retrieves the media heading records from the eSolve instance using the identifiers
60
+ *
61
+ * @param identifiers Array of strings representing the eSolve heading identifiers
62
+ */
63
+ getHeadings(identifiers) {
64
+ return this.http
65
+ .get(`${this.config.api_url}/get-headings.php`, {
66
+ params: {
67
+ identifier: identifiers.join(','),
68
+ },
69
+ })
70
+ .pipe(map((response) => {
71
+ const headings = [];
72
+ if ((response.records !== undefined) &&
73
+ (response.records.length > 0)) {
74
+ for (const heading_record of response.records) {
75
+ headings.push(this.processHeadingRecord(heading_record));
76
+ }
77
+ }
78
+ return headings;
79
+ }));
80
+ }
81
+ /**
82
+ * Processes media article record
83
+ *
84
+ * @param record Record from eSolve instance
85
+ */
86
+ processMediaRecord(record) {
87
+ const tags = [];
88
+ const topics = [];
89
+ if ((record.tags) && (record.tags.length > 0)) {
90
+ for (const tag of record.tags) {
91
+ tags.push(new EsolveTag(tag));
92
+ }
93
+ }
94
+ if ((record.topics) && (record.topics.length > 0)) {
95
+ for (const topic of record.topics) {
96
+ topics.push(new EsolveTopic(topic));
97
+ }
98
+ }
99
+ return new EsolveMediaArticle(record.identifier, record.title, record.article, record.image_url, tags, topics, record.seo_page_title, record.seo_keywords, record.seo_description);
100
+ }
101
+ /**
102
+ * Processes media heading record
103
+ *
104
+ * @param record Record from eSolve instance
105
+ */
106
+ processHeadingRecord(record) {
107
+ return new EsolveHeading(record.identifier, record.value);
108
+ }
109
+ /**
110
+ * Retrieves media records from eSolve instance.
111
+ *
112
+ * @param params HTTP params
113
+ */
114
+ getMediaRecords(params) {
115
+ return this.http.get(`${this.config.api_url}/get-media.php`, { params });
116
+ }
117
+ }
118
+ EsolveMediaService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: EsolveMediaService, deps: [{ token: ESOLVE_CONNECT_CONFIG }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
119
+ EsolveMediaService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: EsolveMediaService, providedIn: 'root' });
120
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: EsolveMediaService, decorators: [{
121
+ type: Injectable,
122
+ args: [{
123
+ providedIn: 'root',
124
+ }]
125
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
126
+ type: Inject,
127
+ args: [ESOLVE_CONNECT_CONFIG]
128
+ }] }, { type: i1.HttpClient }]; } });
129
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNvbHZlLW1lZGlhLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL21lZGlhL2Vzb2x2ZS1tZWRpYS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUc5RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHckMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFHMUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNwQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXhDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRWxFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7O0FBTXZELE1BQU0sT0FBTyxrQkFBa0I7SUFDM0IsWUFDMkMsTUFBMkIsRUFDMUQsSUFBZ0I7UUFEZSxXQUFNLEdBQU4sTUFBTSxDQUFxQjtRQUMxRCxTQUFJLEdBQUosSUFBSSxDQUFZO0lBQ3hCLENBQUM7SUFFTDs7OztPQUlHO0lBQ0ksZUFBZSxDQUFDLFVBQWtCO1FBQ3JDLE1BQU0sTUFBTSxHQUFHLElBQUksVUFBVSxDQUFDLEVBQUUsVUFBVSxFQUFFLEVBQUUsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRTlELHVCQUF1QjtRQUN2QixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUNwQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUNiLElBQ0ksQ0FBQyxRQUFRLENBQUMsT0FBTyxLQUFLLFNB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QUFNLEdBQUcsQ0FBQyxDQUFDLEVBQUU7WUFDL0MsS0FBSyxNQUFNLEtBQUssSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFO2dCQUMvQixNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7YUFDdkM7U0FDSjtRQUVELE9BQU8sSUFBSSxrQkFBa0IsQ0FDekIsTUFBTSxDQUFDLFVBQVUsRUFDakIsTUFBTSxDQUFDLEtBQUssRUFDWixNQUFNLENBQUMsT0FBTyxFQUNkLE1BQU0sQ0FBQyxTQUFTLEVBQ2hCLElBQUksRUFDSixNQUFNLEVBQ04sTUFBTSxDQUFDLGNBQWMsRUFDckIsTUFBTSxDQUFDLFlBQVksRUFDbkIsTUFBTSxDQUFDLGVBQWUsQ0FDekIsQ0FBQztJQUNOLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssb0JBQW9CLENBQUMsTUFBMkI7UUFDcEQsT0FBTyxJQUFJLGFBQWEsQ0FDcEIsTUFBTSxDQUFDLFVBQVUsRUFDakIsTUFBTSxDQUFDLEtBQUssQ0FDZixDQUFDO0lBQ04sQ0FBQztJQUVEOzs7O09BSUc7SUFDSyxlQUFlLENBQUMsTUFBa0I7UUFDdEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FDaEIsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sZ0JBQWdCLEVBQ3RDLEVBQUUsTUFBTSxFQUFFLENBQ2IsQ0FBQztJQUNOLENBQUM7O2dIQTFKUSxrQkFBa0Isa0JBRWYscUJBQXFCO29IQUZ4QixrQkFBa0IsY0FGZixNQUFNOzRGQUVULGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7OzBCQUdRLE1BQU07MkJBQUMscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcblxyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IEVzb2x2ZUNvbm5lY3RDb25maWcgfSBmcm9tICcuLi9lc29sdmUtY29ubmVjdC5jb25maWcnO1xyXG5pbXBvcnQgeyBFU09MVkVfQ09OTkVDVF9DT05GSUcgfSBmcm9tICcuLi9lc29sdmUtY29ubmVjdC1jb25maWcuY29uc3RhbnQnO1xyXG5pbXBvcnQgeyBFc29sdmVHZXRSZXNwb25zZSB9IGZyb20gJy4uL3NoYXJlZC9yZXNwb25zZSc7XHJcblxyXG5pbXBvcnQgeyBFc29sdmVUYWcgfSBmcm9tICcuLi90YWdzJztcclxuaW1wb3J0IHsgRXNvbHZlVG9waWMgfSBmcm9tICcuLi90b3BpY3MnO1xyXG5cclxuaW1wb3J0IHsgRXNvbHZlTWVkaWFBcnRpY2xlIH0gZnJvbSAnLi9lc29sdmUtbWVkaWEtYXJ0aWNsZS5tb2RlbCc7XHJcbmltcG9ydCB7IEVzb2x2ZU1lZGlhUmVjb3JkIH0gZnJvbSAnLi9lc29sdmUtbWVkaWEtcmVjb3JkLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IEVzb2x2ZUhlYWRpbmcgfSBmcm9tICcuL2Vzb2x2ZS1oZWFkaW5nLm1vZGVsJztcclxuaW1wb3J0IHsgRXNvbHZlSGVhZGluZ1JlY29yZCB9IGZyb20gJy4vZXNvbHZlLWhlYWRpbmctcmVjb3JkLmludGVyZmFjZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFc29sdmVNZWRpYVNlcnZpY2Uge1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgQEluamVjdChFU09MVkVfQ09OTkVDVF9DT05GSUcpIHByaXZhdGUgY29uZmlnOiBFc29sdmVDb25uZWN0Q29uZmlnLFxyXG4gICAgICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgICkgeyB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXRyaWV2ZXMgdGhlIG1lZGlhIHJlY29yZCBmcm9tIHRoZSBlU29sdmUgaW5zdGFuY2UgdXNpbmcgdGhlIGlkZW50aWZpZXJcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gaWRlbnRpZmllciBTdHJpbmcgcmVwcmVzZW50aW5nIHRoZSBlU29sdmUgbWVkaWEgaWRlbnRpZmllclxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0TWVkaWFBcnRpY2xlKGlkZW50aWZpZXI6IHN0cmluZyk6IE9ic2VydmFibGU8RXNvbHZlTWVkaWFBcnRpY2xlPiB7XHJcbiAgICAgICAgY29uc3QgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoeyBmcm9tT2JqZWN0OiB7IGlkZW50aWZpZXIgfSB9KTtcclxuXHJcbiAgICAgICAgLy8gVE9ETzogRXJyb3IgSGFuZGxpbmdcclxuICAgICAgICByZXR1cm4gdGhpcy5nZXRNZWRpYVJlY29yZHMocGFyYW1zKS5waXBlKFxyXG4gICAgICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgICAgKHJlc3BvbnNlLnJlY29yZHMgPT09IHVuZGVmaW5lZCkgfHxcclxuICAgICAgICAgICAgICAgICAgICAocmVzcG9uc2UucmVjb3Jkcy5sZW5ndGggPD0gMClcclxuICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGNvbnN0IG1lZGlhUmVjb3JkID0gcmVzcG9uc2UucmVjb3Jkc1swXTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoIW1lZGlhUmVjb3JkLmFjdGl2ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRocm93IHJlc3BvbnNlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NNZWRpYVJlY29yZChtZWRpYVJlY29yZCk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHJpZXZlcyBhIGdyb3VwIG9mIG1lZGlhIHJlY29yZHMgZnJvbSB0aGUgZVNvbHZlIGluc3RhbmNlIGxpbmtlZCB0byBhIGdyb3VwXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIG1lZGlhX2dyb3VwIFN0cmluZyByZXByZXNlbnRpbmcgdGhlIGVTb2x2ZSBtZWRpYSBncm91cFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0R3JvdXBlZE1lZGlhQXJ0aWNsZXMobWVkaWFfZ3JvdXA6IHN0cmluZyk6IE9ic2VydmFibGU8RXNvbHZlTWVkaWFBcnRpY2xlW10+IHtcclxuICAgICAgICBjb25zdCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcyh7XHJcbiAgICAgICAgICAgIGZyb21PYmplY3Q6IHsgbWVkaWFfZ3JvdXBfc2VmOiBtZWRpYV9ncm91cCB9XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmdldE1lZGlhUmVjb3JkcyhwYXJhbXMpLnBpcGUoXHJcbiAgICAgICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG1lZGlhQXJ0aWNsZXM6IEVzb2x2ZU1lZGlhQXJ0aWNsZVtdID0gW107XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICAgIChyZXNwb25zZS5yZWNvcmRzICE9PSB1bmRlZmluZWQpICYmXHJcbiAgICAgICAgICAgICAgICAgICAgKHJlc3BvbnNlLnJlY29yZHMubGVuZ3RoID4gMClcclxuICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgbWVkaWFSZWNvcmQgb2YgcmVzcG9uc2UucmVjb3Jkcykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobWVkaWFSZWNvcmQuYWN0aXZlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZWRpYUFydGljbGVzLnB1c2godGhpcy5wcm9jZXNzTWVkaWFSZWNvcmQobWVkaWFSZWNvcmQpKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gbWVkaWFBcnRpY2xlcztcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0cmlldmVzIHRoZSBtZWRpYSBoZWFkaW5nIHJlY29yZHMgZnJvbSB0aGUgZVNvbHZlIGluc3RhbmNlIHVzaW5nIHRoZSBpZGVudGlmaWVyc1xyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBpZGVudGlmaWVycyBBcnJheSBvZiBzdHJpbmdzIHJlcHJlc2VudGluZyB0aGUgZVNvbHZlIGhlYWRpbmcgaWRlbnRpZmllcnNcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldEhlYWRpbmdzKGlkZW50aWZpZXJzOiBzdHJpbmdbXSk6IE9ic2VydmFibGU8RXNvbHZlSGVhZGluZ1tdPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAgICAgICAuZ2V0PEVzb2x2ZUdldFJlc3BvbnNlPEVzb2x2ZUhlYWRpbmdSZWNvcmRbXT4+KFxyXG4gICAgICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpX3VybH0vZ2V0LWhlYWRpbmdzLnBocGAsXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFyYW1zOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkZW50aWZpZXI6IGlkZW50aWZpZXJzLmpvaW4oJywnKSxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGhlYWRpbmdzOiBFc29sdmVIZWFkaW5nW10gPSBbXTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAocmVzcG9uc2UucmVjb3JkcyAhPT0gdW5kZWZpbmVkKSAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAocmVzcG9uc2UucmVjb3Jkcy5sZW5ndGggPiAwKVxyXG4gICAgICAgICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGhlYWRpbmdfcmVjb3JkIG9mIHJlc3BvbnNlLnJlY29yZHMpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRpbmdzLnB1c2godGhpcy5wcm9jZXNzSGVhZGluZ1JlY29yZChoZWFkaW5nX3JlY29yZCkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaGVhZGluZ3M7XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUHJvY2Vzc2VzIG1lZGlhIGFydGljbGUgcmVjb3JkXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHJlY29yZCBSZWNvcmQgZnJvbSBlU29sdmUgaW5zdGFuY2VcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBwcm9jZXNzTWVkaWFSZWNvcmQocmVjb3JkOiBFc29sdmVNZWRpYVJlY29yZCk6IEVzb2x2ZU1lZGlhQXJ0aWNsZSB7XHJcbiAgICAgICAgY29uc3QgdGFnczogRXNvbHZlVGFnW10gPSBbXTtcclxuICAgICAgICBjb25zdCB0b3BpY3M6IEVzb2x2ZVRvcGljW10gPSBbXTtcclxuXHJcbiAgICAgICAgaWYgKChyZWNvcmQudGFncykgJiYgKHJlY29yZC50YWdzLmxlbmd0aCA+IDApKSB7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgdGFnIG9mIHJlY29yZC50YWdzKSB7XHJcbiAgICAgICAgICAgICAgICB0YWdzLnB1c2gobmV3IEVzb2x2ZVRhZyh0YWcpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKChyZWNvcmQudG9waWNzKSAmJiAocmVjb3JkLnRvcGljcy5sZW5ndGggPiAwKSkge1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IHRvcGljIG9mIHJlY29yZC50b3BpY3MpIHtcclxuICAgICAgICAgICAgICAgIHRvcGljcy5wdXNoKG5ldyBFc29sdmVUb3BpYyh0b3BpYykpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gbmV3IEVzb2x2ZU1lZGlhQXJ0aWNsZShcclxuICAgICAgICAgICAgcmVjb3JkLmlkZW50aWZpZXIsXHJcbiAgICAgICAgICAgIHJlY29yZC50aXRsZSxcclxuICAgICAgICAgICAgcmVjb3JkLmFydGljbGUsXHJcbiAgICAgICAgICAgIHJlY29yZC5pbWFnZV91cmwsXHJcbiAgICAgICAgICAgIHRhZ3MsXHJcbiAgICAgICAgICAgIHRvcGljcyxcclxuICAgICAgICAgICAgcmVjb3JkLnNlb19wYWdlX3RpdGxlLFxyXG4gICAgICAgICAgICByZWNvcmQuc2VvX2tleXdvcmRzLFxyXG4gICAgICAgICAgICByZWNvcmQuc2VvX2Rlc2NyaXB0aW9uLFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQcm9jZXNzZXMgbWVkaWEgaGVhZGluZyByZWNvcmRcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gcmVjb3JkIFJlY29yZCBmcm9tIGVTb2x2ZSBpbnN0YW5jZVxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHByb2Nlc3NIZWFkaW5nUmVjb3JkKHJlY29yZDogRXNvbHZlSGVhZGluZ1JlY29yZCk6IEVzb2x2ZUhlYWRpbmcge1xyXG4gICAgICAgIHJldHVybiBuZXcgRXNvbHZlSGVhZGluZyhcclxuICAgICAgICAgICAgcmVjb3JkLmlkZW50aWZpZXIsXHJcbiAgICAgICAgICAgIHJlY29yZC52YWx1ZVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXRyaWV2ZXMgbWVkaWEgcmVjb3JkcyBmcm9tIGVTb2x2ZSBpbnN0YW5jZS5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gcGFyYW1zIEhUVFAgcGFyYW1zXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgZ2V0TWVkaWFSZWNvcmRzKHBhcmFtczogSHR0cFBhcmFtcyk6IE9ic2VydmFibGU8RXNvbHZlR2V0UmVzcG9uc2U8RXNvbHZlTWVkaWFSZWNvcmRbXT4+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxFc29sdmVHZXRSZXNwb25zZTxFc29sdmVNZWRpYVJlY29yZFtdPj4oXHJcbiAgICAgICAgICAgIGAke3RoaXMuY29uZmlnLmFwaV91cmx9L2dldC1tZWRpYS5waHBgLFxyXG4gICAgICAgICAgICB7IHBhcmFtcyB9XHJcbiAgICAgICAgKTtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,6 @@
1
+ export * from './esolve-heading.model';
2
+ export * from './esolve-heading-record.interface';
3
+ export * from './esolve-media-article.model';
4
+ export * from './esolve-media-record.interface';
5
+ export * from './esolve-media.service';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1lc29sdmUtY29ubmVjdC9zcmMvbGliL21lZGlhL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyx3QkFBd0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZXNvbHZlLWhlYWRpbmcubW9kZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS1oZWFkaW5nLXJlY29yZC5pbnRlcmZhY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2Vzb2x2ZS1tZWRpYS1hcnRpY2xlLm1vZGVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9lc29sdmUtbWVkaWEtcmVjb3JkLmludGVyZmFjZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZXNvbHZlLW1lZGlhLnNlcnZpY2UnO1xyXG4iXX0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"esolve-ng-esolve-connect.d.ts","sourceRoot":"","sources":["../../projects/ng-esolve-connect/src/esolve-ng-esolve-connect.ts"],"names":[],"mappings":"AAAA;;GAEG;;AAEH,cAAc,cAAc,CAAC"}
@@ -3695,10 +3695,11 @@ class EsolveCheckoutResult extends EsolveResponseResult {
3695
3695
  }
3696
3696
 
3697
3697
  class EsolveCartItem {
3698
- constructor(id, stock_item, qty, 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) {
3698
+ 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) {
3699
3699
  this.id = id;
3700
3700
  this.stock_item = stock_item;
3701
3701
  this.qty = qty;
3702
+ this.delivery_category = delivery_category;
3702
3703
  this.type = type;
3703
3704
  this.price = price;
3704
3705
  this.discount = discount;
@@ -3968,7 +3969,7 @@ class EsolveCartService {
3968
3969
  if (cart_item_records) {
3969
3970
  for (const cart_item_record of cart_item_records) {
3970
3971
  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);
3971
- cart_items.push(new EsolveCartItem(+cart_item_record.id, cart_stock_item, +cart_item_record.qty, 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));
3972
+ 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));
3972
3973
  }
3973
3974
  }
3974
3975
  return cart_items;