@sabstravtech/obtservices 0.0.0 → 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (895) hide show
  1. package/dist/obtservices/angular/components/basket-panel.d.ts +34 -0
  2. package/dist/obtservices/angular/components/with-component.d.ts +12 -0
  3. package/dist/obtservices/angular/data.d.ts +5530 -0
  4. package/dist/obtservices/angular/fetchers.d.ts +32 -0
  5. package/dist/obtservices/angular/lib/vendor/classes/environment.d.ts +3 -0
  6. package/dist/obtservices/angular/lib/vendor/classes/event-messenager.d.ts +4 -0
  7. package/dist/obtservices/angular/lib/vendor/classes/helpers.d.ts +15 -0
  8. package/dist/obtservices/angular/lib/vendor/fetchers/basket-fetcher.d.ts +6 -0
  9. package/dist/obtservices/angular/lib/vendor/fetchers/cabhire-quote-fetcher.d.ts +7 -0
  10. package/dist/obtservices/angular/lib/vendor/fetchers/carhire-availability-detail.fetcher.d.ts +7 -0
  11. package/dist/obtservices/angular/lib/vendor/fetchers/carhire-quote-fetcher.d.ts +7 -0
  12. package/dist/obtservices/angular/lib/vendor/fetchers/conferma-office-names.fetcher.d.ts +7 -0
  13. package/dist/obtservices/angular/lib/vendor/fetchers/conferma-quicklist.fetcher.d.ts +7 -0
  14. package/dist/obtservices/angular/lib/vendor/fetchers/eurostar-quote.fetcher.d.ts +7 -0
  15. package/dist/obtservices/angular/lib/vendor/fetchers/flight-quote.fetcher.d.ts +7 -0
  16. package/dist/obtservices/angular/lib/vendor/fetchers/get-rail-cards.fetcher.d.ts +7 -0
  17. package/dist/obtservices/angular/lib/vendor/fetchers/get-rail-station.fetcher.d.ts +7 -0
  18. package/dist/obtservices/angular/lib/vendor/fetchers/get-risk-alerts.fetcher.d.ts +7 -0
  19. package/dist/obtservices/angular/lib/vendor/fetchers/get-user-company-offices.fetcher.d.ts +7 -0
  20. package/dist/obtservices/angular/lib/vendor/fetchers/get-user-current-carbon-allowance.fetcher.d.ts +7 -0
  21. package/dist/obtservices/angular/lib/vendor/fetchers/get-user-recent-searches.fetcher.d.ts +7 -0
  22. package/dist/obtservices/angular/lib/vendor/fetchers/get-users-baskets-fetcher.d.ts +7 -0
  23. package/dist/obtservices/angular/lib/vendor/fetchers/getMiAutoSugestions.fetcher.d.ts +7 -0
  24. package/dist/obtservices/angular/lib/vendor/fetchers/hotel-avaliability-fetcher.d.ts +7 -0
  25. package/dist/obtservices/angular/lib/vendor/fetchers/hotel-quote-fetcher.d.ts +7 -0
  26. package/dist/obtservices/angular/lib/vendor/fetchers/irl-quote-fetcher.d.ts +7 -0
  27. package/dist/obtservices/angular/lib/vendor/fetchers/lounge-quote.fetcher.d.ts +7 -0
  28. package/dist/obtservices/angular/lib/vendor/fetchers/parking-quote-fetcher.d.ts +7 -0
  29. package/dist/obtservices/angular/lib/vendor/fetchers/rail-quote-fetcher.d.ts +7 -0
  30. package/dist/obtservices/angular/lib/vendor/fetchers/search-airlines-fetcher.d.ts +6 -0
  31. package/dist/obtservices/angular/lib/vendor/fetchers/search-airports-fetcher.d.ts +6 -0
  32. package/dist/obtservices/angular/lib/vendor/fetchers/search-cities.fetcher.d.ts +7 -0
  33. package/dist/obtservices/angular/lib/vendor/fetchers/search-conferma-cities.fetcher.d.ts +6 -0
  34. package/dist/obtservices/angular/lib/vendor/fetchers/search-depots.fetcher.d.ts +7 -0
  35. package/dist/obtservices/angular/lib/vendor/fetchers/search-hotel-chains.fetcher.d.ts +7 -0
  36. package/dist/obtservices/angular/lib/vendor/fetchers/search-postcodes.fetcher.d.ts +7 -0
  37. package/dist/obtservices/angular/lib/vendor/fetchers/search-rail-stations.fetcher.d.ts +7 -0
  38. package/dist/obtservices/angular/lib/vendor/fetchers/search-users-can-book-for-fetcher.d.ts +7 -0
  39. package/dist/obtservices/angular/lib/vendor/fetchers/user-addresses.fetcher.d.ts +7 -0
  40. package/dist/obtservices/angular/lib/vendor/fetchers/user-fetcher.d.ts +6 -0
  41. package/dist/obtservices/angular/lib/vendor/fetchers/user-message.fetcher.d.ts +7 -0
  42. package/dist/obtservices/angular/lib/vendor/fetchers/user-products-fetcher.d.ts +7 -0
  43. package/dist/obtservices/angular/lib/vendor/fetchers/user-ui-configs-fetcher.d.ts +7 -0
  44. package/dist/obtservices/angular/lib/vendor/services/enterprise-basket.service.d.ts +29 -0
  45. package/dist/obtservices/angular/lib/vendor/services/hotel-avallibility.service.d.ts +9 -0
  46. package/dist/obtservices/angular/lib/vendor/services/http-call.service.d.ts +48 -0
  47. package/dist/obtservices/angular/lib/vendor/services/logon.service.d.ts +18 -0
  48. package/dist/obtservices/angular/lib/vendor/services/modal-opener.service.d.ts +4 -0
  49. package/dist/obtservices/angular/lib/vendor/services/my-bookings.service.d.ts +7 -0
  50. package/dist/obtservices/angular/lib/vendor/services/route-happy.service.d.ts +6 -0
  51. package/dist/obtservices/angular/lib/vendor/services/search.service.d.ts +47 -0
  52. package/dist/obtservices/angular/lib/vendor/services/storage.service.d.ts +18 -0
  53. package/dist/obtservices/angular/lib/vendor/services/user.service.d.ts +10 -0
  54. package/dist/obtservices/angular/lib/vendor/services/webtoken.service.d.ts +7 -0
  55. package/dist/obtservices/angular/lib/vendor/testers/postcode-validate.tester.d.ts +6 -0
  56. package/dist/obtservices/angular/lib/vendor/testers/validate-mi-free-value.tester.d.ts +6 -0
  57. package/dist/obtservices/angular/lib/vendor/types/graphql.angular.types.d.ts +5915 -0
  58. package/dist/obtservices/angular/lib/vendor/updaters/accept-new-price.updater.d.ts +6 -0
  59. package/dist/obtservices/angular/lib/vendor/updaters/add-item-to-basket.updater.d.ts +6 -0
  60. package/dist/obtservices/angular/lib/vendor/updaters/addUserToBasketItem.d.ts +6 -0
  61. package/dist/obtservices/angular/lib/vendor/updaters/book-basket-updater.d.ts +6 -0
  62. package/dist/obtservices/angular/lib/vendor/updaters/create-basket-updater.d.ts +6 -0
  63. package/dist/obtservices/angular/lib/vendor/updaters/move-basket-item-to-basket.d.ts +6 -0
  64. package/dist/obtservices/angular/lib/vendor/updaters/remove-basket-updater.d.ts +6 -0
  65. package/dist/obtservices/angular/lib/vendor/updaters/remove-item-from-basket.updater.d.ts +6 -0
  66. package/dist/obtservices/angular/lib/vendor/updaters/remove-recent-search.updater.d.ts +6 -0
  67. package/dist/obtservices/angular/lib/vendor/updaters/remove-user-address.updater.d.ts +6 -0
  68. package/dist/obtservices/angular/lib/vendor/updaters/revalidate-basket-updater.d.ts +6 -0
  69. package/dist/obtservices/angular/lib/vendor/updaters/save-recent-search.updater.d.ts +6 -0
  70. package/dist/obtservices/angular/lib/vendor/updaters/save-user-address.updater.d.ts +6 -0
  71. package/dist/obtservices/angular/lib/vendor/updaters/send-basket-for-approval.updater.d.ts +6 -0
  72. package/dist/obtservices/angular/lib/vendor/updaters/set-basket-item-lead-passenger.updater.d.ts +6 -0
  73. package/dist/obtservices/angular/lib/vendor/updaters/set-basket-item-mi-group.d.ts +6 -0
  74. package/dist/obtservices/angular/lib/vendor/updaters/set-basket-item-mi-value-updater.d.ts +6 -0
  75. package/dist/obtservices/angular/lib/vendor/updaters/set-payment-option.updater.d.ts +6 -0
  76. package/dist/obtservices/angular/lib/vendor/updaters/update-basket-notes-updater.d.ts +6 -0
  77. package/dist/obtservices/angular/lib/vendor/updaters/update-basket-title-updater.d.ts +6 -0
  78. package/dist/obtservices/angular/obtservices-angular.d.ts +17 -0
  79. package/dist/obtservices/angular/obtservices-angular.metadata.json +1 -0
  80. package/dist/obtservices/angular/obtservices.module.d.ts +7 -0
  81. package/dist/obtservices/angular/package.json +11 -0
  82. package/dist/obtservices/base/fetchers.d.ts +36 -0
  83. package/dist/obtservices/base/lib/vendor/classes/base-enterprise.d.ts +39 -0
  84. package/dist/obtservices/base/lib/vendor/classes/base-network-call.d.ts +10 -0
  85. package/dist/obtservices/base/lib/vendor/classes/basket-info-mi-details.impl.d.ts +20 -0
  86. package/dist/obtservices/base/lib/vendor/classes/bookable-basket.d.ts +40 -0
  87. package/dist/obtservices/base/lib/vendor/classes/cabhire-enterprise-search.d.ts +138 -0
  88. package/dist/obtservices/base/lib/vendor/classes/carhire-enterprise-search.d.ts +203 -0
  89. package/dist/obtservices/base/lib/vendor/classes/enviroment.d.ts +24 -0
  90. package/dist/obtservices/base/lib/vendor/classes/eurostar-enterprise-search.d.ts +268 -0
  91. package/dist/obtservices/base/lib/vendor/classes/eurostar-search-type.enum.d.ts +4 -0
  92. package/dist/obtservices/base/lib/vendor/classes/event-messenager.d.ts +12 -0
  93. package/dist/obtservices/base/lib/vendor/classes/flight-enterprise-search.d.ts +251 -0
  94. package/dist/obtservices/base/lib/vendor/classes/flight-search-type.enum.d.ts +5 -0
  95. package/dist/obtservices/base/lib/vendor/classes/helpers.d.ts +173 -0
  96. package/dist/obtservices/base/lib/vendor/classes/hotel-enterprise-search.d.ts +176 -0
  97. package/dist/obtservices/base/lib/vendor/classes/irl-enterprise-search.d.ts +139 -0
  98. package/dist/obtservices/base/lib/vendor/classes/limited-cache.class.d.ts +21 -0
  99. package/dist/obtservices/base/lib/vendor/classes/lounges-enterprise-search.d.ts +68 -0
  100. package/dist/obtservices/base/lib/vendor/classes/management-info-and-valid.d.ts +41 -0
  101. package/dist/obtservices/base/lib/vendor/classes/modal-types.enum.d.ts +12 -0
  102. package/dist/obtservices/base/lib/vendor/classes/parking-enterprise-search.d.ts +103 -0
  103. package/dist/obtservices/base/lib/vendor/classes/rail-direction.enum.d.ts +4 -0
  104. package/dist/obtservices/base/lib/vendor/classes/rail-enterprise-search.d.ts +193 -0
  105. package/dist/obtservices/base/lib/vendor/classes/routehappy-request.d.ts +126 -0
  106. package/dist/obtservices/base/lib/vendor/classes/routehappy-response.d.ts +107 -0
  107. package/dist/obtservices/base/lib/vendor/classes/supplementary-booking-info-impl.d.ts +62 -0
  108. package/dist/obtservices/base/lib/vendor/classes/user-favourite.enum.d.ts +12 -0
  109. package/dist/obtservices/base/lib/vendor/classes/validator.checker.d.ts +6 -0
  110. package/dist/obtservices/base/lib/vendor/fetchers/basket-fetcher.d.ts +20 -0
  111. package/dist/obtservices/base/lib/vendor/fetchers/cabhire-quote-fetcher.d.ts +23 -0
  112. package/dist/obtservices/base/lib/vendor/fetchers/carhire-availability-detail.fetcher.d.ts +20 -0
  113. package/dist/obtservices/base/lib/vendor/fetchers/carhire-quote-fetcher.d.ts +23 -0
  114. package/dist/obtservices/base/lib/vendor/fetchers/conferma-office-names.fetcher.d.ts +21 -0
  115. package/dist/obtservices/base/lib/vendor/fetchers/conferma-quicklist.fetcher.d.ts +23 -0
  116. package/dist/obtservices/base/lib/vendor/fetchers/eurostar-quote.fetcher.d.ts +23 -0
  117. package/dist/obtservices/base/lib/vendor/fetchers/flight-quote.fetcher.d.ts +23 -0
  118. package/dist/obtservices/base/lib/vendor/fetchers/get-rail-cards.fetcher.d.ts +21 -0
  119. package/dist/obtservices/base/lib/vendor/fetchers/get-rail-station.fetcher.d.ts +21 -0
  120. package/dist/obtservices/base/lib/vendor/fetchers/get-risk-alerts.fetcher.d.ts +21 -0
  121. package/dist/obtservices/base/lib/vendor/fetchers/get-user-company-offices.fetcher.d.ts +21 -0
  122. package/dist/obtservices/base/lib/vendor/fetchers/get-user-current-carbon-allowance.fetcher.d.ts +20 -0
  123. package/dist/obtservices/base/lib/vendor/fetchers/get-user-recent-searches.fetcher.d.ts +21 -0
  124. package/dist/obtservices/base/lib/vendor/fetchers/get-users-baskets-fetcher.d.ts +21 -0
  125. package/dist/obtservices/base/lib/vendor/fetchers/getMiAutoSugestions.fetcher.d.ts +21 -0
  126. package/dist/obtservices/base/lib/vendor/fetchers/hotel-avaliability-fetcher.d.ts +24 -0
  127. package/dist/obtservices/base/lib/vendor/fetchers/hotel-quote-fetcher.d.ts +23 -0
  128. package/dist/obtservices/base/lib/vendor/fetchers/irl-quote-fetcher.d.ts +23 -0
  129. package/dist/obtservices/base/lib/vendor/fetchers/list-fetchable-enterprise.d.ts +20 -0
  130. package/dist/obtservices/base/lib/vendor/fetchers/lounge-quote.fetcher.d.ts +23 -0
  131. package/dist/obtservices/base/lib/vendor/fetchers/object-fetchable-enterprise.d.ts +11 -0
  132. package/dist/obtservices/base/lib/vendor/fetchers/parking-quote-fetcher.d.ts +23 -0
  133. package/dist/obtservices/base/lib/vendor/fetchers/rail-quote-fetcher.d.ts +23 -0
  134. package/dist/obtservices/base/lib/vendor/fetchers/search-airlines.fetcher.d.ts +20 -0
  135. package/dist/obtservices/base/lib/vendor/fetchers/search-airports-fetcher.d.ts +20 -0
  136. package/dist/obtservices/base/lib/vendor/fetchers/search-cities.fetcher.d.ts +21 -0
  137. package/dist/obtservices/base/lib/vendor/fetchers/search-conferma-cities.fetcher.d.ts +20 -0
  138. package/dist/obtservices/base/lib/vendor/fetchers/search-depots.fetcher.d.ts +20 -0
  139. package/dist/obtservices/base/lib/vendor/fetchers/search-hotel-chains.fetcher.d.ts +21 -0
  140. package/dist/obtservices/base/lib/vendor/fetchers/search-postcodes.fetcher.d.ts +21 -0
  141. package/dist/obtservices/base/lib/vendor/fetchers/search-rail-stations.fetcher.d.ts +21 -0
  142. package/dist/obtservices/base/lib/vendor/fetchers/search-users-can-book-for-fetcher.d.ts +21 -0
  143. package/dist/obtservices/base/lib/vendor/fetchers/user-addresses.fetcher.d.ts +21 -0
  144. package/dist/obtservices/base/lib/vendor/fetchers/user-fetcher.d.ts +20 -0
  145. package/dist/obtservices/base/lib/vendor/fetchers/user-message.fetcher.d.ts +21 -0
  146. package/dist/obtservices/base/lib/vendor/fetchers/user-products-fetcher.d.ts +21 -0
  147. package/dist/obtservices/base/lib/vendor/fetchers/user-ui-configs-fetcher.d.ts +23 -0
  148. package/dist/obtservices/base/lib/vendor/interfaces/Icabhire-enterprise-search.d.ts +133 -0
  149. package/dist/obtservices/base/lib/vendor/interfaces/Icarhire-enterprise-search.d.ts +99 -0
  150. package/dist/obtservices/base/lib/vendor/interfaces/Ienterprise-basket.service.d.ts +64 -0
  151. package/dist/obtservices/base/lib/vendor/interfaces/Ieurostar-enterprise-search.d.ts +124 -0
  152. package/dist/obtservices/base/lib/vendor/interfaces/Iflight-enterprise-search.d.ts +123 -0
  153. package/dist/obtservices/base/lib/vendor/interfaces/Ihotel-enterprise-search.d.ts +192 -0
  154. package/dist/obtservices/base/lib/vendor/interfaces/Iirl-enterprise-search.d.ts +45 -0
  155. package/dist/obtservices/base/lib/vendor/interfaces/Ilounges-enterprise-search.d.ts +36 -0
  156. package/dist/obtservices/base/lib/vendor/interfaces/Imybookings.service.d.ts +24 -0
  157. package/dist/obtservices/base/lib/vendor/interfaces/Iparking-enterprise-search.d.ts +58 -0
  158. package/dist/obtservices/base/lib/vendor/interfaces/Irail-enterprise-search.d.ts +110 -0
  159. package/dist/obtservices/base/lib/vendor/interfaces/Isearch.service.d.ts +101 -0
  160. package/dist/obtservices/base/lib/vendor/interfaces/Isupplementary-booking-info-impl.d.ts +42 -0
  161. package/dist/obtservices/base/lib/vendor/interfaces/Iuser.service.d.ts +59 -0
  162. package/dist/obtservices/base/lib/vendor/interfaces/car-hire-classes.interface.d.ts +7 -0
  163. package/dist/obtservices/base/lib/vendor/interfaces/car-hire-filters.interface.d.ts +10 -0
  164. package/dist/obtservices/base/lib/vendor/interfaces/car-hire-sort.interface.d.ts +4 -0
  165. package/dist/obtservices/base/lib/vendor/interfaces/cheapest-price.d.ts +4 -0
  166. package/dist/obtservices/base/lib/vendor/interfaces/code-name.d.ts +4 -0
  167. package/dist/obtservices/base/lib/vendor/interfaces/flight-filters.interface.d.ts +29 -0
  168. package/dist/obtservices/base/lib/vendor/interfaces/flight-multi-destination.interface.d.ts +7 -0
  169. package/dist/obtservices/base/lib/vendor/interfaces/rail-airport-express-stations.interface.d.ts +4 -0
  170. package/dist/obtservices/base/lib/vendor/interfaces/rail-basket-item.interface.d.ts +69 -0
  171. package/dist/obtservices/base/lib/vendor/interfaces/rail-journey-leg.interface.d.ts +6 -0
  172. package/dist/obtservices/base/lib/vendor/interfaces/rail-recent-search-args.interface.d.ts +19 -0
  173. package/dist/obtservices/base/lib/vendor/interfaces/rail-selected-ticket.interface.d.ts +10 -0
  174. package/dist/obtservices/base/lib/vendor/interfaces/rail-ticket-group.interface.d.ts +26 -0
  175. package/dist/obtservices/base/lib/vendor/interfaces/rail-ticket-groups.interface.d.ts +4 -0
  176. package/dist/obtservices/base/lib/vendor/interfaces/search-objects.interface.d.ts +16 -0
  177. package/dist/obtservices/base/lib/vendor/interfaces/select-filter.interface.d.ts +5 -0
  178. package/dist/obtservices/base/lib/vendor/interfaces/user.data.d.ts +21 -0
  179. package/dist/obtservices/base/lib/vendor/interfaces/value-display.d.ts +4 -0
  180. package/dist/obtservices/base/lib/vendor/models/login.model.d.ts +52 -0
  181. package/dist/obtservices/base/lib/vendor/models/regexp.model.d.ts +10 -0
  182. package/dist/obtservices/base/lib/vendor/models/traveller.object.d.ts +22 -0
  183. package/dist/obtservices/base/lib/vendor/services/enterprise-basket.service.d.ts +177 -0
  184. package/dist/obtservices/base/lib/vendor/services/hotel-avallibility.service.d.ts +31 -0
  185. package/dist/obtservices/base/lib/vendor/services/http-call.service.d.ts +17 -0
  186. package/dist/obtservices/base/lib/vendor/services/logon.service.d.ts +39 -0
  187. package/dist/obtservices/base/lib/vendor/services/modal-opener.service.d.ts +13 -0
  188. package/dist/obtservices/base/lib/vendor/services/my-bookings.service.d.ts +31 -0
  189. package/dist/obtservices/base/lib/vendor/services/routehappy.service.d.ts +47 -0
  190. package/dist/obtservices/base/lib/vendor/services/search.service.d.ts +236 -0
  191. package/dist/obtservices/base/lib/vendor/services/storage.service.d.ts +9 -0
  192. package/dist/obtservices/base/lib/vendor/services/url.service.d.ts +10 -0
  193. package/dist/obtservices/base/lib/vendor/services/user.service.d.ts +62 -0
  194. package/dist/obtservices/base/lib/vendor/services/webtoken.service.d.ts +20 -0
  195. package/dist/obtservices/base/lib/vendor/testers/base.tester.d.ts +11 -0
  196. package/dist/obtservices/base/lib/vendor/testers/postcode-validate.tester.d.ts +17 -0
  197. package/dist/obtservices/base/lib/vendor/testers/validate-mi-free-value.tester.d.ts +17 -0
  198. package/dist/obtservices/base/lib/vendor/types/graphql.types.d.ts +5597 -0
  199. package/dist/obtservices/base/lib/vendor/types/types.d.ts +444 -0
  200. package/dist/obtservices/base/lib/vendor/updaters/accept-new-price.updater.d.ts +20 -0
  201. package/dist/obtservices/base/lib/vendor/updaters/add-item-to-basket.updater.d.ts +20 -0
  202. package/dist/obtservices/base/lib/vendor/updaters/addUserToBasketItem.d.ts +20 -0
  203. package/dist/obtservices/base/lib/vendor/updaters/book-basket-updater.d.ts +20 -0
  204. package/dist/obtservices/base/lib/vendor/updaters/create-basket-updater.d.ts +20 -0
  205. package/dist/obtservices/base/lib/vendor/updaters/move-basket-item-to-basket.d.ts +20 -0
  206. package/dist/obtservices/base/lib/vendor/updaters/object-updater-enterprise.d.ts +11 -0
  207. package/dist/obtservices/base/lib/vendor/updaters/remove-basket-updater.d.ts +19 -0
  208. package/dist/obtservices/base/lib/vendor/updaters/remove-item-from-basket.updater.d.ts +20 -0
  209. package/dist/obtservices/base/lib/vendor/updaters/remove-recent-search-updater.d.ts +19 -0
  210. package/dist/obtservices/base/lib/vendor/updaters/remove-user-address-updater.d.ts +19 -0
  211. package/dist/obtservices/base/lib/vendor/updaters/revalidate-basket-updater.d.ts +20 -0
  212. package/dist/obtservices/base/lib/vendor/updaters/save-recent-search-updater.d.ts +20 -0
  213. package/dist/obtservices/base/lib/vendor/updaters/save-user-address.updater.d.ts +20 -0
  214. package/dist/obtservices/base/lib/vendor/updaters/send-basket-for-approval.updater.d.ts +20 -0
  215. package/dist/obtservices/base/lib/vendor/updaters/set-basket-item-lead-passenger.updater.d.ts +20 -0
  216. package/dist/obtservices/base/lib/vendor/updaters/set-basket-item-mi-group.d.ts +20 -0
  217. package/dist/obtservices/base/lib/vendor/updaters/set-basket-item-mi-value-updater.d.ts +20 -0
  218. package/dist/obtservices/base/lib/vendor/updaters/set-basket-item-paymenr-option.updater.d.ts +20 -0
  219. package/dist/obtservices/base/lib/vendor/updaters/update-basket-notes-updater.d.ts +20 -0
  220. package/dist/obtservices/base/lib/vendor/updaters/update-basket-title-updater.d.ts +20 -0
  221. package/dist/obtservices/base/obtservices-base.d.ts +9 -0
  222. package/dist/obtservices/base/obtservices-base.metadata.json +1 -0
  223. package/dist/obtservices/base/package.json +11 -0
  224. package/dist/obtservices/bundles/obtservices-angular.umd.js +32033 -0
  225. package/dist/obtservices/bundles/obtservices-angular.umd.js.map +1 -0
  226. package/dist/obtservices/bundles/obtservices-angular.umd.min.js +2 -0
  227. package/dist/obtservices/bundles/obtservices-angular.umd.min.js.map +1 -0
  228. package/dist/obtservices/bundles/obtservices-base.umd.js +18609 -0
  229. package/dist/obtservices/bundles/obtservices-base.umd.js.map +1 -0
  230. package/dist/obtservices/bundles/obtservices-base.umd.min.js +16 -0
  231. package/dist/obtservices/bundles/obtservices-base.umd.min.js.map +1 -0
  232. package/dist/obtservices/bundles/obtservices.umd.js +18 -0
  233. package/dist/obtservices/bundles/obtservices.umd.js.map +1 -0
  234. package/dist/obtservices/bundles/obtservices.umd.min.js +2 -0
  235. package/dist/obtservices/bundles/obtservices.umd.min.js.map +1 -0
  236. package/dist/obtservices/esm2015/angular/classes.js +4 -0
  237. package/dist/obtservices/esm2015/angular/components/basket-panel.js +113 -0
  238. package/dist/obtservices/esm2015/angular/components/with-component.js +26 -0
  239. package/dist/obtservices/esm2015/angular/components.js +3 -0
  240. package/dist/obtservices/esm2015/angular/data.js +5 -0
  241. package/dist/obtservices/esm2015/angular/fetchers.js +33 -0
  242. package/dist/obtservices/esm2015/angular/lib/vendor/classes/environment.js +10 -0
  243. package/dist/obtservices/esm2015/angular/lib/vendor/classes/event-messenager.js +16 -0
  244. package/dist/obtservices/esm2015/angular/lib/vendor/classes/helpers.js +81 -0
  245. package/dist/obtservices/esm2015/angular/lib/vendor/data/airports.data.json +5508 -0
  246. package/dist/obtservices/esm2015/angular/lib/vendor/data/flight-booking.data.json +136 -0
  247. package/dist/obtservices/esm2015/angular/lib/vendor/fetchers/basket-fetcher.js +22 -0
  248. package/dist/obtservices/esm2015/angular/lib/vendor/fetchers/cabhire-quote-fetcher.js +25 -0
  249. package/dist/obtservices/esm2015/angular/lib/vendor/fetchers/carhire-availability-detail.fetcher.js +25 -0
  250. package/dist/obtservices/esm2015/angular/lib/vendor/fetchers/carhire-quote-fetcher.js +25 -0
  251. package/dist/obtservices/esm2015/angular/lib/vendor/fetchers/conferma-office-names.fetcher.js +25 -0
  252. package/dist/obtservices/esm2015/angular/lib/vendor/fetchers/conferma-quicklist.fetcher.js +25 -0
  253. package/dist/obtservices/esm2015/angular/lib/vendor/fetchers/eurostar-quote.fetcher.js +25 -0
  254. package/dist/obtservices/esm2015/angular/lib/vendor/fetchers/flight-quote.fetcher.js +25 -0
  255. package/dist/obtservices/esm2015/angular/lib/vendor/fetchers/get-rail-cards.fetcher.js +25 -0
  256. package/dist/obtservices/esm2015/angular/lib/vendor/fetchers/get-rail-station.fetcher.js +25 -0
  257. package/dist/obtservices/esm2015/angular/lib/vendor/fetchers/get-risk-alerts.fetcher.js +25 -0
  258. package/dist/obtservices/esm2015/angular/lib/vendor/fetchers/get-user-company-offices.fetcher.js +25 -0
  259. package/dist/obtservices/esm2015/angular/lib/vendor/fetchers/get-user-current-carbon-allowance.fetcher.js +25 -0
  260. package/dist/obtservices/esm2015/angular/lib/vendor/fetchers/get-user-recent-searches.fetcher.js +25 -0
  261. package/dist/obtservices/esm2015/angular/lib/vendor/fetchers/get-users-baskets-fetcher.js +25 -0
  262. package/dist/obtservices/esm2015/angular/lib/vendor/fetchers/getMiAutoSugestions.fetcher.js +25 -0
  263. package/dist/obtservices/esm2015/angular/lib/vendor/fetchers/hotel-avaliability-fetcher.js +25 -0
  264. package/dist/obtservices/esm2015/angular/lib/vendor/fetchers/hotel-quote-fetcher.js +25 -0
  265. package/dist/obtservices/esm2015/angular/lib/vendor/fetchers/irl-quote-fetcher.js +25 -0
  266. package/dist/obtservices/esm2015/angular/lib/vendor/fetchers/lounge-quote.fetcher.js +25 -0
  267. package/dist/obtservices/esm2015/angular/lib/vendor/fetchers/parking-quote-fetcher.js +25 -0
  268. package/dist/obtservices/esm2015/angular/lib/vendor/fetchers/rail-quote-fetcher.js +25 -0
  269. package/dist/obtservices/esm2015/angular/lib/vendor/fetchers/search-airlines-fetcher.js +22 -0
  270. package/dist/obtservices/esm2015/angular/lib/vendor/fetchers/search-airports-fetcher.js +22 -0
  271. package/dist/obtservices/esm2015/angular/lib/vendor/fetchers/search-cities.fetcher.js +25 -0
  272. package/dist/obtservices/esm2015/angular/lib/vendor/fetchers/search-conferma-cities.fetcher.js +22 -0
  273. package/dist/obtservices/esm2015/angular/lib/vendor/fetchers/search-depots.fetcher.js +25 -0
  274. package/dist/obtservices/esm2015/angular/lib/vendor/fetchers/search-hotel-chains.fetcher.js +25 -0
  275. package/dist/obtservices/esm2015/angular/lib/vendor/fetchers/search-postcodes.fetcher.js +25 -0
  276. package/dist/obtservices/esm2015/angular/lib/vendor/fetchers/search-rail-stations.fetcher.js +25 -0
  277. package/dist/obtservices/esm2015/angular/lib/vendor/fetchers/search-users-can-book-for-fetcher.js +25 -0
  278. package/dist/obtservices/esm2015/angular/lib/vendor/fetchers/user-addresses.fetcher.js +25 -0
  279. package/dist/obtservices/esm2015/angular/lib/vendor/fetchers/user-fetcher.js +22 -0
  280. package/dist/obtservices/esm2015/angular/lib/vendor/fetchers/user-message.fetcher.js +25 -0
  281. package/dist/obtservices/esm2015/angular/lib/vendor/fetchers/user-products-fetcher.js +25 -0
  282. package/dist/obtservices/esm2015/angular/lib/vendor/fetchers/user-ui-configs-fetcher.js +25 -0
  283. package/dist/obtservices/esm2015/angular/lib/vendor/services/enterprise-basket.service.js +91 -0
  284. package/dist/obtservices/esm2015/angular/lib/vendor/services/hotel-avallibility.service.js +28 -0
  285. package/dist/obtservices/esm2015/angular/lib/vendor/services/http-call.service.js +220 -0
  286. package/dist/obtservices/esm2015/angular/lib/vendor/services/logon.service.js +41 -0
  287. package/dist/obtservices/esm2015/angular/lib/vendor/services/modal-opener.service.js +15 -0
  288. package/dist/obtservices/esm2015/angular/lib/vendor/services/my-bookings.service.js +22 -0
  289. package/dist/obtservices/esm2015/angular/lib/vendor/services/route-happy.service.js +22 -0
  290. package/dist/obtservices/esm2015/angular/lib/vendor/services/search.service.js +142 -0
  291. package/dist/obtservices/esm2015/angular/lib/vendor/services/storage.service.js +79 -0
  292. package/dist/obtservices/esm2015/angular/lib/vendor/services/user.service.js +31 -0
  293. package/dist/obtservices/esm2015/angular/lib/vendor/services/webtoken.service.js +59 -0
  294. package/dist/obtservices/esm2015/angular/lib/vendor/testers/postcode-validate.tester.js +22 -0
  295. package/dist/obtservices/esm2015/angular/lib/vendor/testers/validate-mi-free-value.tester.js +22 -0
  296. package/dist/obtservices/esm2015/angular/lib/vendor/types/graphql.angular.types.js +5662 -0
  297. package/dist/obtservices/esm2015/angular/lib/vendor/updaters/accept-new-price.updater.js +22 -0
  298. package/dist/obtservices/esm2015/angular/lib/vendor/updaters/add-item-to-basket.updater.js +22 -0
  299. package/dist/obtservices/esm2015/angular/lib/vendor/updaters/addUserToBasketItem.js +22 -0
  300. package/dist/obtservices/esm2015/angular/lib/vendor/updaters/book-basket-updater.js +22 -0
  301. package/dist/obtservices/esm2015/angular/lib/vendor/updaters/create-basket-updater.js +22 -0
  302. package/dist/obtservices/esm2015/angular/lib/vendor/updaters/move-basket-item-to-basket.js +22 -0
  303. package/dist/obtservices/esm2015/angular/lib/vendor/updaters/remove-basket-updater.js +22 -0
  304. package/dist/obtservices/esm2015/angular/lib/vendor/updaters/remove-item-from-basket.updater.js +22 -0
  305. package/dist/obtservices/esm2015/angular/lib/vendor/updaters/remove-recent-search.updater.js +22 -0
  306. package/dist/obtservices/esm2015/angular/lib/vendor/updaters/remove-user-address.updater.js +22 -0
  307. package/dist/obtservices/esm2015/angular/lib/vendor/updaters/revalidate-basket-updater.js +22 -0
  308. package/dist/obtservices/esm2015/angular/lib/vendor/updaters/save-recent-search.updater.js +22 -0
  309. package/dist/obtservices/esm2015/angular/lib/vendor/updaters/save-user-address.updater.js +22 -0
  310. package/dist/obtservices/esm2015/angular/lib/vendor/updaters/send-basket-for-approval.updater.js +22 -0
  311. package/dist/obtservices/esm2015/angular/lib/vendor/updaters/set-basket-item-lead-passenger.updater.js +22 -0
  312. package/dist/obtservices/esm2015/angular/lib/vendor/updaters/set-basket-item-mi-group.js +22 -0
  313. package/dist/obtservices/esm2015/angular/lib/vendor/updaters/set-basket-item-mi-value-updater.js +22 -0
  314. package/dist/obtservices/esm2015/angular/lib/vendor/updaters/set-payment-option.updater.js +22 -0
  315. package/dist/obtservices/esm2015/angular/lib/vendor/updaters/update-basket-notes-updater.js +22 -0
  316. package/dist/obtservices/esm2015/angular/lib/vendor/updaters/update-basket-title-updater.js +22 -0
  317. package/dist/obtservices/esm2015/angular/obtservices-angular.js +18 -0
  318. package/dist/obtservices/esm2015/angular/obtservices.module.js +128 -0
  319. package/dist/obtservices/esm2015/angular/public_api.js +9 -0
  320. package/dist/obtservices/esm2015/angular/services.js +12 -0
  321. package/dist/obtservices/esm2015/angular/types.js +2 -0
  322. package/dist/obtservices/esm2015/angular/updaters.js +14 -0
  323. package/dist/obtservices/esm2015/base/classes.js +28 -0
  324. package/dist/obtservices/esm2015/base/fetchers.js +37 -0
  325. package/dist/obtservices/esm2015/base/interfaces.js +30 -0
  326. package/dist/obtservices/esm2015/base/lib/vendor/classes/base-enterprise.js +78 -0
  327. package/dist/obtservices/esm2015/base/lib/vendor/classes/base-network-call.js +24 -0
  328. package/dist/obtservices/esm2015/base/lib/vendor/classes/basket-info-mi-details.impl.js +35 -0
  329. package/dist/obtservices/esm2015/base/lib/vendor/classes/bookable-basket.js +237 -0
  330. package/dist/obtservices/esm2015/base/lib/vendor/classes/cabhire-enterprise-search.js +696 -0
  331. package/dist/obtservices/esm2015/base/lib/vendor/classes/carhire-enterprise-search.js +1204 -0
  332. package/dist/obtservices/esm2015/base/lib/vendor/classes/enviroment.js +12 -0
  333. package/dist/obtservices/esm2015/base/lib/vendor/classes/eurostar-enterprise-search.js +1462 -0
  334. package/dist/obtservices/esm2015/base/lib/vendor/classes/eurostar-search-type.enum.js +6 -0
  335. package/dist/obtservices/esm2015/base/lib/vendor/classes/event-messenager.js +17 -0
  336. package/dist/obtservices/esm2015/base/lib/vendor/classes/flight-enterprise-search.js +1640 -0
  337. package/dist/obtservices/esm2015/base/lib/vendor/classes/flight-search-type.enum.js +7 -0
  338. package/dist/obtservices/esm2015/base/lib/vendor/classes/helpers.js +978 -0
  339. package/dist/obtservices/esm2015/base/lib/vendor/classes/hotel-enterprise-search.js +1022 -0
  340. package/dist/obtservices/esm2015/base/lib/vendor/classes/irl-enterprise-search.js +1117 -0
  341. package/dist/obtservices/esm2015/base/lib/vendor/classes/limited-cache.class.js +64 -0
  342. package/dist/obtservices/esm2015/base/lib/vendor/classes/lounges-enterprise-search.js +323 -0
  343. package/dist/obtservices/esm2015/base/lib/vendor/classes/management-info-and-valid.js +174 -0
  344. package/dist/obtservices/esm2015/base/lib/vendor/classes/modal-types.enum.js +22 -0
  345. package/dist/obtservices/esm2015/base/lib/vendor/classes/parking-enterprise-search.js +397 -0
  346. package/dist/obtservices/esm2015/base/lib/vendor/classes/rail-direction.enum.js +6 -0
  347. package/dist/obtservices/esm2015/base/lib/vendor/classes/rail-enterprise-search.js +1324 -0
  348. package/dist/obtservices/esm2015/base/lib/vendor/classes/routehappy-request.js +2 -0
  349. package/dist/obtservices/esm2015/base/lib/vendor/classes/routehappy-response.js +8 -0
  350. package/dist/obtservices/esm2015/base/lib/vendor/classes/supplementary-booking-info-impl.js +250 -0
  351. package/dist/obtservices/esm2015/base/lib/vendor/classes/user-favourite.enum.js +15 -0
  352. package/dist/obtservices/esm2015/base/lib/vendor/classes/validator.checker.js +4 -0
  353. package/dist/obtservices/esm2015/base/lib/vendor/data/countries.json +1212 -0
  354. package/dist/obtservices/esm2015/base/lib/vendor/data/euro-stations.json +30 -0
  355. package/dist/obtservices/esm2015/base/lib/vendor/fetchers/basket-fetcher.js +11 -0
  356. package/dist/obtservices/esm2015/base/lib/vendor/fetchers/cabhire-quote-fetcher.js +11 -0
  357. package/dist/obtservices/esm2015/base/lib/vendor/fetchers/carhire-availability-detail.fetcher.js +10 -0
  358. package/dist/obtservices/esm2015/base/lib/vendor/fetchers/carhire-quote-fetcher.js +11 -0
  359. package/dist/obtservices/esm2015/base/lib/vendor/fetchers/conferma-office-names.fetcher.js +11 -0
  360. package/dist/obtservices/esm2015/base/lib/vendor/fetchers/conferma-quicklist.fetcher.js +11 -0
  361. package/dist/obtservices/esm2015/base/lib/vendor/fetchers/eurostar-quote.fetcher.js +11 -0
  362. package/dist/obtservices/esm2015/base/lib/vendor/fetchers/flight-quote.fetcher.js +11 -0
  363. package/dist/obtservices/esm2015/base/lib/vendor/fetchers/get-rail-cards.fetcher.js +11 -0
  364. package/dist/obtservices/esm2015/base/lib/vendor/fetchers/get-rail-station.fetcher.js +11 -0
  365. package/dist/obtservices/esm2015/base/lib/vendor/fetchers/get-risk-alerts.fetcher.js +11 -0
  366. package/dist/obtservices/esm2015/base/lib/vendor/fetchers/get-user-company-offices.fetcher.js +11 -0
  367. package/dist/obtservices/esm2015/base/lib/vendor/fetchers/get-user-current-carbon-allowance.fetcher.js +10 -0
  368. package/dist/obtservices/esm2015/base/lib/vendor/fetchers/get-user-recent-searches.fetcher.js +10 -0
  369. package/dist/obtservices/esm2015/base/lib/vendor/fetchers/get-users-baskets-fetcher.js +10 -0
  370. package/dist/obtservices/esm2015/base/lib/vendor/fetchers/getMiAutoSugestions.fetcher.js +10 -0
  371. package/dist/obtservices/esm2015/base/lib/vendor/fetchers/hotel-avaliability-fetcher.js +22 -0
  372. package/dist/obtservices/esm2015/base/lib/vendor/fetchers/hotel-quote-fetcher.js +11 -0
  373. package/dist/obtservices/esm2015/base/lib/vendor/fetchers/irl-quote-fetcher.js +11 -0
  374. package/dist/obtservices/esm2015/base/lib/vendor/fetchers/list-fetchable-enterprise.js +27 -0
  375. package/dist/obtservices/esm2015/base/lib/vendor/fetchers/lounge-quote.fetcher.js +11 -0
  376. package/dist/obtservices/esm2015/base/lib/vendor/fetchers/object-fetchable-enterprise.js +11 -0
  377. package/dist/obtservices/esm2015/base/lib/vendor/fetchers/parking-quote-fetcher.js +11 -0
  378. package/dist/obtservices/esm2015/base/lib/vendor/fetchers/rail-quote-fetcher.js +11 -0
  379. package/dist/obtservices/esm2015/base/lib/vendor/fetchers/search-airlines.fetcher.js +11 -0
  380. package/dist/obtservices/esm2015/base/lib/vendor/fetchers/search-airports-fetcher.js +10 -0
  381. package/dist/obtservices/esm2015/base/lib/vendor/fetchers/search-cities.fetcher.js +11 -0
  382. package/dist/obtservices/esm2015/base/lib/vendor/fetchers/search-conferma-cities.fetcher.js +11 -0
  383. package/dist/obtservices/esm2015/base/lib/vendor/fetchers/search-depots.fetcher.js +10 -0
  384. package/dist/obtservices/esm2015/base/lib/vendor/fetchers/search-hotel-chains.fetcher.js +11 -0
  385. package/dist/obtservices/esm2015/base/lib/vendor/fetchers/search-postcodes.fetcher.js +11 -0
  386. package/dist/obtservices/esm2015/base/lib/vendor/fetchers/search-rail-stations.fetcher.js +11 -0
  387. package/dist/obtservices/esm2015/base/lib/vendor/fetchers/search-users-can-book-for-fetcher.js +11 -0
  388. package/dist/obtservices/esm2015/base/lib/vendor/fetchers/user-addresses.fetcher.js +11 -0
  389. package/dist/obtservices/esm2015/base/lib/vendor/fetchers/user-fetcher.js +10 -0
  390. package/dist/obtservices/esm2015/base/lib/vendor/fetchers/user-message.fetcher.js +11 -0
  391. package/dist/obtservices/esm2015/base/lib/vendor/fetchers/user-products-fetcher.js +11 -0
  392. package/dist/obtservices/esm2015/base/lib/vendor/fetchers/user-ui-configs-fetcher.js +11 -0
  393. package/dist/obtservices/esm2015/base/lib/vendor/interfaces/Icabhire-enterprise-search.js +17 -0
  394. package/dist/obtservices/esm2015/base/lib/vendor/interfaces/Icarhire-enterprise-search.js +2 -0
  395. package/dist/obtservices/esm2015/base/lib/vendor/interfaces/Ienterprise-basket.service.js +2 -0
  396. package/dist/obtservices/esm2015/base/lib/vendor/interfaces/Ieurostar-enterprise-search.js +2 -0
  397. package/dist/obtservices/esm2015/base/lib/vendor/interfaces/Iflight-enterprise-search.js +2 -0
  398. package/dist/obtservices/esm2015/base/lib/vendor/interfaces/Ihotel-enterprise-search.js +18 -0
  399. package/dist/obtservices/esm2015/base/lib/vendor/interfaces/Iirl-enterprise-search.js +2 -0
  400. package/dist/obtservices/esm2015/base/lib/vendor/interfaces/Ilounges-enterprise-search.js +2 -0
  401. package/dist/obtservices/esm2015/base/lib/vendor/interfaces/Imybookings.service.js +2 -0
  402. package/dist/obtservices/esm2015/base/lib/vendor/interfaces/Iparking-enterprise-search.js +2 -0
  403. package/dist/obtservices/esm2015/base/lib/vendor/interfaces/Irail-enterprise-search.js +2 -0
  404. package/dist/obtservices/esm2015/base/lib/vendor/interfaces/Isearch.service.js +2 -0
  405. package/dist/obtservices/esm2015/base/lib/vendor/interfaces/Isupplementary-booking-info-impl.js +2 -0
  406. package/dist/obtservices/esm2015/base/lib/vendor/interfaces/Iuser.service.js +2 -0
  407. package/dist/obtservices/esm2015/base/lib/vendor/interfaces/car-hire-classes.interface.js +2 -0
  408. package/dist/obtservices/esm2015/base/lib/vendor/interfaces/car-hire-filters.interface.js +2 -0
  409. package/dist/obtservices/esm2015/base/lib/vendor/interfaces/car-hire-sort.interface.js +2 -0
  410. package/dist/obtservices/esm2015/base/lib/vendor/interfaces/cheapest-price.js +2 -0
  411. package/dist/obtservices/esm2015/base/lib/vendor/interfaces/code-name.js +2 -0
  412. package/dist/obtservices/esm2015/base/lib/vendor/interfaces/flight-filters.interface.js +2 -0
  413. package/dist/obtservices/esm2015/base/lib/vendor/interfaces/flight-multi-destination.interface.js +2 -0
  414. package/dist/obtservices/esm2015/base/lib/vendor/interfaces/rail-airport-express-stations.interface.js +2 -0
  415. package/dist/obtservices/esm2015/base/lib/vendor/interfaces/rail-basket-item.interface.js +2 -0
  416. package/dist/obtservices/esm2015/base/lib/vendor/interfaces/rail-journey-leg.interface.js +2 -0
  417. package/dist/obtservices/esm2015/base/lib/vendor/interfaces/rail-recent-search-args.interface.js +2 -0
  418. package/dist/obtservices/esm2015/base/lib/vendor/interfaces/rail-selected-ticket.interface.js +2 -0
  419. package/dist/obtservices/esm2015/base/lib/vendor/interfaces/rail-ticket-group.interface.js +2 -0
  420. package/dist/obtservices/esm2015/base/lib/vendor/interfaces/rail-ticket-groups.interface.js +2 -0
  421. package/dist/obtservices/esm2015/base/lib/vendor/interfaces/search-objects.interface.js +2 -0
  422. package/dist/obtservices/esm2015/base/lib/vendor/interfaces/select-filter.interface.js +2 -0
  423. package/dist/obtservices/esm2015/base/lib/vendor/interfaces/user.data.js +2 -0
  424. package/dist/obtservices/esm2015/base/lib/vendor/interfaces/value-display.js +2 -0
  425. package/dist/obtservices/esm2015/base/lib/vendor/models/login.model.js +71 -0
  426. package/dist/obtservices/esm2015/base/lib/vendor/models/regexp.model.js +13 -0
  427. package/dist/obtservices/esm2015/base/lib/vendor/models/traveller.object.js +38 -0
  428. package/dist/obtservices/esm2015/base/lib/vendor/services/enterprise-basket.service.js +669 -0
  429. package/dist/obtservices/esm2015/base/lib/vendor/services/hotel-avallibility.service.js +165 -0
  430. package/dist/obtservices/esm2015/base/lib/vendor/services/http-call.service.js +16 -0
  431. package/dist/obtservices/esm2015/base/lib/vendor/services/logon.service.js +177 -0
  432. package/dist/obtservices/esm2015/base/lib/vendor/services/modal-opener.service.js +20 -0
  433. package/dist/obtservices/esm2015/base/lib/vendor/services/my-bookings.service.js +124 -0
  434. package/dist/obtservices/esm2015/base/lib/vendor/services/routehappy.service.js +196 -0
  435. package/dist/obtservices/esm2015/base/lib/vendor/services/search.service.js +1281 -0
  436. package/dist/obtservices/esm2015/base/lib/vendor/services/storage.service.js +3 -0
  437. package/dist/obtservices/esm2015/base/lib/vendor/services/url.service.js +12 -0
  438. package/dist/obtservices/esm2015/base/lib/vendor/services/user.service.js +223 -0
  439. package/dist/obtservices/esm2015/base/lib/vendor/services/webtoken.service.js +56 -0
  440. package/dist/obtservices/esm2015/base/lib/vendor/testers/base.tester.js +11 -0
  441. package/dist/obtservices/esm2015/base/lib/vendor/testers/postcode-validate.tester.js +10 -0
  442. package/dist/obtservices/esm2015/base/lib/vendor/testers/validate-mi-free-value.tester.js +10 -0
  443. package/dist/obtservices/esm2015/base/lib/vendor/types/graphql.types.js +456 -0
  444. package/dist/obtservices/esm2015/base/lib/vendor/types/types.js +161 -0
  445. package/dist/obtservices/esm2015/base/lib/vendor/updaters/accept-new-price.updater.js +10 -0
  446. package/dist/obtservices/esm2015/base/lib/vendor/updaters/add-item-to-basket.updater.js +10 -0
  447. package/dist/obtservices/esm2015/base/lib/vendor/updaters/addUserToBasketItem.js +10 -0
  448. package/dist/obtservices/esm2015/base/lib/vendor/updaters/book-basket-updater.js +11 -0
  449. package/dist/obtservices/esm2015/base/lib/vendor/updaters/create-basket-updater.js +11 -0
  450. package/dist/obtservices/esm2015/base/lib/vendor/updaters/move-basket-item-to-basket.js +10 -0
  451. package/dist/obtservices/esm2015/base/lib/vendor/updaters/object-updater-enterprise.js +11 -0
  452. package/dist/obtservices/esm2015/base/lib/vendor/updaters/remove-basket-updater.js +11 -0
  453. package/dist/obtservices/esm2015/base/lib/vendor/updaters/remove-item-from-basket.updater.js +10 -0
  454. package/dist/obtservices/esm2015/base/lib/vendor/updaters/remove-recent-search-updater.js +11 -0
  455. package/dist/obtservices/esm2015/base/lib/vendor/updaters/remove-user-address-updater.js +11 -0
  456. package/dist/obtservices/esm2015/base/lib/vendor/updaters/revalidate-basket-updater.js +10 -0
  457. package/dist/obtservices/esm2015/base/lib/vendor/updaters/save-recent-search-updater.js +11 -0
  458. package/dist/obtservices/esm2015/base/lib/vendor/updaters/save-user-address.updater.js +10 -0
  459. package/dist/obtservices/esm2015/base/lib/vendor/updaters/send-basket-for-approval.updater.js +10 -0
  460. package/dist/obtservices/esm2015/base/lib/vendor/updaters/set-basket-item-lead-passenger.updater.js +10 -0
  461. package/dist/obtservices/esm2015/base/lib/vendor/updaters/set-basket-item-mi-group.js +10 -0
  462. package/dist/obtservices/esm2015/base/lib/vendor/updaters/set-basket-item-mi-value-updater.js +10 -0
  463. package/dist/obtservices/esm2015/base/lib/vendor/updaters/set-basket-item-paymenr-option.updater.js +10 -0
  464. package/dist/obtservices/esm2015/base/lib/vendor/updaters/update-basket-notes-updater.js +10 -0
  465. package/dist/obtservices/esm2015/base/lib/vendor/updaters/update-basket-title-updater.js +10 -0
  466. package/dist/obtservices/esm2015/base/models.js +4 -0
  467. package/dist/obtservices/esm2015/base/obtservices-base.js +9 -0
  468. package/dist/obtservices/esm2015/base/public_api.js +9 -0
  469. package/dist/obtservices/esm2015/base/services.js +13 -0
  470. package/dist/obtservices/esm2015/base/testers.js +3 -0
  471. package/dist/obtservices/esm2015/base/types.js +2 -0
  472. package/dist/obtservices/esm2015/base/updaters.js +21 -0
  473. package/dist/obtservices/esm2015/obtservices.js +5 -0
  474. package/dist/obtservices/esm2015/public_api.js +2 -0
  475. package/dist/obtservices/fesm2015/obtservices-angular.js +35267 -0
  476. package/dist/obtservices/fesm2015/obtservices-angular.js.map +1 -0
  477. package/dist/obtservices/fesm2015/obtservices-base.js +16573 -0
  478. package/dist/obtservices/fesm2015/obtservices-base.js.map +1 -0
  479. package/dist/obtservices/fesm2015/obtservices.js +8 -0
  480. package/dist/obtservices/fesm2015/obtservices.js.map +1 -0
  481. package/dist/obtservices/obtservices.d.ts +4 -0
  482. package/dist/obtservices/obtservices.metadata.json +1 -0
  483. package/dist/obtservices/package.json +23 -0
  484. package/dist/obtservices/public_api.d.ts +1 -0
  485. package/dist/obtservices/tsconfig.lib.tsbuildinfo +3 -0
  486. package/package.json +1 -1
  487. package/projects/obtservices/angular/package.json +0 -3
  488. package/projects/obtservices/angular/src/components/basket-panel.ts +0 -139
  489. package/projects/obtservices/angular/src/components/with-component.ts +0 -40
  490. package/projects/obtservices/angular/src/data.ts +0 -5
  491. package/projects/obtservices/angular/src/fetchers.ts +0 -32
  492. package/projects/obtservices/angular/src/lib/vendor/classes/environment.ts +0 -5
  493. package/projects/obtservices/angular/src/lib/vendor/classes/event-messenager.ts +0 -11
  494. package/projects/obtservices/angular/src/lib/vendor/classes/helpers.ts +0 -87
  495. package/projects/obtservices/angular/src/lib/vendor/data/airports.data.json +0 -5508
  496. package/projects/obtservices/angular/src/lib/vendor/data/animations.ts +0 -38
  497. package/projects/obtservices/angular/src/lib/vendor/data/booking-expected-responses.json +0 -100
  498. package/projects/obtservices/angular/src/lib/vendor/data/cities.data.json +0 -31499
  499. package/projects/obtservices/angular/src/lib/vendor/data/countries.json +0 -1212
  500. package/projects/obtservices/angular/src/lib/vendor/data/flight-booking.data.json +0 -136
  501. package/projects/obtservices/angular/src/lib/vendor/data/postcodes1.json +0 -194
  502. package/projects/obtservices/angular/src/lib/vendor/data/rail_addresses.json +0 -2524
  503. package/projects/obtservices/angular/src/lib/vendor/fetchers/basket-fetcher.ts +0 -14
  504. package/projects/obtservices/angular/src/lib/vendor/fetchers/cabhire-quote-fetcher.ts +0 -15
  505. package/projects/obtservices/angular/src/lib/vendor/fetchers/carhire-availability-detail.fetcher.ts +0 -17
  506. package/projects/obtservices/angular/src/lib/vendor/fetchers/carhire-quote-fetcher.ts +0 -16
  507. package/projects/obtservices/angular/src/lib/vendor/fetchers/conferma-office-names.fetcher.ts +0 -16
  508. package/projects/obtservices/angular/src/lib/vendor/fetchers/conferma-quicklist.fetcher.ts +0 -16
  509. package/projects/obtservices/angular/src/lib/vendor/fetchers/eurostar-quote.fetcher.ts +0 -16
  510. package/projects/obtservices/angular/src/lib/vendor/fetchers/flight-quote.fetcher.ts +0 -16
  511. package/projects/obtservices/angular/src/lib/vendor/fetchers/get-rail-cards.fetcher.ts +0 -16
  512. package/projects/obtservices/angular/src/lib/vendor/fetchers/get-rail-station.fetcher.ts +0 -16
  513. package/projects/obtservices/angular/src/lib/vendor/fetchers/get-risk-alerts.fetcher.ts +0 -18
  514. package/projects/obtservices/angular/src/lib/vendor/fetchers/get-user-company-offices.fetcher.ts +0 -16
  515. package/projects/obtservices/angular/src/lib/vendor/fetchers/get-user-current-carbon-allowance.fetcher.ts +0 -16
  516. package/projects/obtservices/angular/src/lib/vendor/fetchers/get-user-recent-searches.fetcher.ts +0 -16
  517. package/projects/obtservices/angular/src/lib/vendor/fetchers/get-users-baskets-fetcher.ts +0 -16
  518. package/projects/obtservices/angular/src/lib/vendor/fetchers/getMiAutoSugestions.fetcher.ts +0 -16
  519. package/projects/obtservices/angular/src/lib/vendor/fetchers/hotel-avaliability-fetcher.ts +0 -17
  520. package/projects/obtservices/angular/src/lib/vendor/fetchers/hotel-quote-fetcher.ts +0 -16
  521. package/projects/obtservices/angular/src/lib/vendor/fetchers/irl-quote-fetcher.ts +0 -16
  522. package/projects/obtservices/angular/src/lib/vendor/fetchers/lounge-quote.fetcher.ts +0 -16
  523. package/projects/obtservices/angular/src/lib/vendor/fetchers/parking-quote-fetcher.ts +0 -16
  524. package/projects/obtservices/angular/src/lib/vendor/fetchers/rail-quote-fetcher.ts +0 -16
  525. package/projects/obtservices/angular/src/lib/vendor/fetchers/search-airlines-fetcher.ts +0 -14
  526. package/projects/obtservices/angular/src/lib/vendor/fetchers/search-airports-fetcher.ts +0 -14
  527. package/projects/obtservices/angular/src/lib/vendor/fetchers/search-cities.fetcher.ts +0 -16
  528. package/projects/obtservices/angular/src/lib/vendor/fetchers/search-conferma-cities.fetcher.ts +0 -14
  529. package/projects/obtservices/angular/src/lib/vendor/fetchers/search-depots.fetcher.ts +0 -18
  530. package/projects/obtservices/angular/src/lib/vendor/fetchers/search-hotel-chains.fetcher.ts +0 -16
  531. package/projects/obtservices/angular/src/lib/vendor/fetchers/search-postcodes.fetcher.ts +0 -16
  532. package/projects/obtservices/angular/src/lib/vendor/fetchers/search-rail-stations.fetcher.ts +0 -16
  533. package/projects/obtservices/angular/src/lib/vendor/fetchers/search-users-can-book-for-fetcher.ts +0 -16
  534. package/projects/obtservices/angular/src/lib/vendor/fetchers/user-addresses.fetcher.ts +0 -16
  535. package/projects/obtservices/angular/src/lib/vendor/fetchers/user-fetcher.ts +0 -14
  536. package/projects/obtservices/angular/src/lib/vendor/fetchers/user-message.fetcher.ts +0 -16
  537. package/projects/obtservices/angular/src/lib/vendor/fetchers/user-products-fetcher.ts +0 -16
  538. package/projects/obtservices/angular/src/lib/vendor/fetchers/user-ui-configs-fetcher.ts +0 -16
  539. package/projects/obtservices/angular/src/lib/vendor/services/enterprise-basket.service.ts +0 -133
  540. package/projects/obtservices/angular/src/lib/vendor/services/hotel-avallibility.service.ts +0 -19
  541. package/projects/obtservices/angular/src/lib/vendor/services/http-call.service.ts +0 -252
  542. package/projects/obtservices/angular/src/lib/vendor/services/logon.service.ts +0 -40
  543. package/projects/obtservices/angular/src/lib/vendor/services/modal-opener.service.ts +0 -9
  544. package/projects/obtservices/angular/src/lib/vendor/services/my-bookings.service.ts +0 -21
  545. package/projects/obtservices/angular/src/lib/vendor/services/route-happy.service.ts +0 -11
  546. package/projects/obtservices/angular/src/lib/vendor/services/search.service.ts +0 -213
  547. package/projects/obtservices/angular/src/lib/vendor/services/storage.service.ts +0 -82
  548. package/projects/obtservices/angular/src/lib/vendor/services/user.service.ts +0 -36
  549. package/projects/obtservices/angular/src/lib/vendor/services/webtoken.service.ts +0 -62
  550. package/projects/obtservices/angular/src/lib/vendor/testers/postcode-validate.tester.ts +0 -14
  551. package/projects/obtservices/angular/src/lib/vendor/testers/validate-mi-free-value.tester.ts +0 -14
  552. package/projects/obtservices/angular/src/lib/vendor/types/graphql.angular.types.ts +0 -11081
  553. package/projects/obtservices/angular/src/lib/vendor/updaters/accept-new-price.updater.ts +0 -14
  554. package/projects/obtservices/angular/src/lib/vendor/updaters/add-item-to-basket.updater.ts +0 -14
  555. package/projects/obtservices/angular/src/lib/vendor/updaters/addUserToBasketItem.ts +0 -14
  556. package/projects/obtservices/angular/src/lib/vendor/updaters/book-basket-updater.ts +0 -14
  557. package/projects/obtservices/angular/src/lib/vendor/updaters/create-basket-updater.ts +0 -14
  558. package/projects/obtservices/angular/src/lib/vendor/updaters/move-basket-item-to-basket.ts +0 -14
  559. package/projects/obtservices/angular/src/lib/vendor/updaters/remove-basket-updater.ts +0 -14
  560. package/projects/obtservices/angular/src/lib/vendor/updaters/remove-item-from-basket.updater.ts +0 -14
  561. package/projects/obtservices/angular/src/lib/vendor/updaters/remove-recent-search.updater.ts +0 -14
  562. package/projects/obtservices/angular/src/lib/vendor/updaters/remove-user-address.updater.ts +0 -14
  563. package/projects/obtservices/angular/src/lib/vendor/updaters/revalidate-basket-updater.ts +0 -14
  564. package/projects/obtservices/angular/src/lib/vendor/updaters/save-recent-search.updater.ts +0 -14
  565. package/projects/obtservices/angular/src/lib/vendor/updaters/save-user-address.updater.ts +0 -11
  566. package/projects/obtservices/angular/src/lib/vendor/updaters/send-basket-for-approval.updater.ts +0 -14
  567. package/projects/obtservices/angular/src/lib/vendor/updaters/set-basket-item-lead-passenger.updater.ts +0 -14
  568. package/projects/obtservices/angular/src/lib/vendor/updaters/set-basket-item-mi-group.ts +0 -14
  569. package/projects/obtservices/angular/src/lib/vendor/updaters/set-basket-item-mi-value-updater.ts +0 -15
  570. package/projects/obtservices/angular/src/lib/vendor/updaters/set-payment-option.updater.ts +0 -15
  571. package/projects/obtservices/angular/src/lib/vendor/updaters/update-basket-notes-updater.ts +0 -14
  572. package/projects/obtservices/angular/src/lib/vendor/updaters/update-basket-title-updater.ts +0 -14
  573. package/projects/obtservices/angular/src/obtservices.module.ts +0 -131
  574. package/projects/obtservices/base/package.json +0 -3
  575. package/projects/obtservices/base/src/custom.d.ts +0 -3
  576. package/projects/obtservices/base/src/fetchers.ts +0 -36
  577. package/projects/obtservices/base/src/lib/vendor/classes/base-enterprise.ts +0 -126
  578. package/projects/obtservices/base/src/lib/vendor/classes/base-network-call.ts +0 -40
  579. package/projects/obtservices/base/src/lib/vendor/classes/basket-info-mi-details.impl.ts +0 -68
  580. package/projects/obtservices/base/src/lib/vendor/classes/bookable-basket.ts +0 -343
  581. package/projects/obtservices/base/src/lib/vendor/classes/cabhire-enterprise-search.ts +0 -907
  582. package/projects/obtservices/base/src/lib/vendor/classes/carhire-enterprise-search.ts +0 -1597
  583. package/projects/obtservices/base/src/lib/vendor/classes/empty-enterprise-search.ts +0 -75
  584. package/projects/obtservices/base/src/lib/vendor/classes/enviroment.ts +0 -25
  585. package/projects/obtservices/base/src/lib/vendor/classes/eurostar-enterprise-search.ts +0 -2126
  586. package/projects/obtservices/base/src/lib/vendor/classes/eurostar-search-type.enum.ts +0 -4
  587. package/projects/obtservices/base/src/lib/vendor/classes/event-messenager.ts +0 -23
  588. package/projects/obtservices/base/src/lib/vendor/classes/flight-enterprise-search.ts +0 -2399
  589. package/projects/obtservices/base/src/lib/vendor/classes/flight-search-type.enum.ts +0 -5
  590. package/projects/obtservices/base/src/lib/vendor/classes/helpers.ts +0 -1233
  591. package/projects/obtservices/base/src/lib/vendor/classes/hotel-enterprise-search.ts +0 -1370
  592. package/projects/obtservices/base/src/lib/vendor/classes/irl-enterprise-search.ts +0 -1380
  593. package/projects/obtservices/base/src/lib/vendor/classes/limited-cache.class.ts +0 -70
  594. package/projects/obtservices/base/src/lib/vendor/classes/lounges-enterprise-search.ts +0 -444
  595. package/projects/obtservices/base/src/lib/vendor/classes/management-info-and-valid.ts +0 -268
  596. package/projects/obtservices/base/src/lib/vendor/classes/modal-types.enum.ts +0 -28
  597. package/projects/obtservices/base/src/lib/vendor/classes/parking-enterprise-search.ts +0 -541
  598. package/projects/obtservices/base/src/lib/vendor/classes/rail-direction.enum.ts +0 -4
  599. package/projects/obtservices/base/src/lib/vendor/classes/rail-enterprise-search.ts +0 -1751
  600. package/projects/obtservices/base/src/lib/vendor/classes/routehappy-request.ts +0 -146
  601. package/projects/obtservices/base/src/lib/vendor/classes/routehappy-response.ts +0 -128
  602. package/projects/obtservices/base/src/lib/vendor/classes/supplementary-booking-info-impl.ts +0 -375
  603. package/projects/obtservices/base/src/lib/vendor/classes/user-favourite.enum.ts +0 -12
  604. package/projects/obtservices/base/src/lib/vendor/classes/validator.checker.ts +0 -7
  605. package/projects/obtservices/base/src/lib/vendor/data/airports.data.json +0 -5508
  606. package/projects/obtservices/base/src/lib/vendor/data/booking-expected-responses.json +0 -100
  607. package/projects/obtservices/base/src/lib/vendor/data/cities.data.json +0 -31499
  608. package/projects/obtservices/base/src/lib/vendor/data/countries.json +0 -1212
  609. package/projects/obtservices/base/src/lib/vendor/data/euro-stations.json +0 -30
  610. package/projects/obtservices/base/src/lib/vendor/data/flight-booking.data.json +0 -136
  611. package/projects/obtservices/base/src/lib/vendor/data/postcodes1.json +0 -194
  612. package/projects/obtservices/base/src/lib/vendor/data/rail_addresses.json +0 -2524
  613. package/projects/obtservices/base/src/lib/vendor/fetchers/basket-fetcher.ts +0 -29
  614. package/projects/obtservices/base/src/lib/vendor/fetchers/cabhire-quote-fetcher.ts +0 -34
  615. package/projects/obtservices/base/src/lib/vendor/fetchers/carhire-availability-detail.fetcher.ts +0 -35
  616. package/projects/obtservices/base/src/lib/vendor/fetchers/carhire-quote-fetcher.ts +0 -34
  617. package/projects/obtservices/base/src/lib/vendor/fetchers/conferma-office-names.fetcher.ts +0 -34
  618. package/projects/obtservices/base/src/lib/vendor/fetchers/conferma-quicklist.fetcher.ts +0 -35
  619. package/projects/obtservices/base/src/lib/vendor/fetchers/eurostar-quote.fetcher.ts +0 -35
  620. package/projects/obtservices/base/src/lib/vendor/fetchers/flight-quote.fetcher.ts +0 -35
  621. package/projects/obtservices/base/src/lib/vendor/fetchers/get-rail-cards.fetcher.ts +0 -35
  622. package/projects/obtservices/base/src/lib/vendor/fetchers/get-rail-station.fetcher.ts +0 -35
  623. package/projects/obtservices/base/src/lib/vendor/fetchers/get-risk-alerts.fetcher.ts +0 -35
  624. package/projects/obtservices/base/src/lib/vendor/fetchers/get-user-company-offices.fetcher.ts +0 -34
  625. package/projects/obtservices/base/src/lib/vendor/fetchers/get-user-current-carbon-allowance.fetcher.ts +0 -35
  626. package/projects/obtservices/base/src/lib/vendor/fetchers/get-user-recent-searches.fetcher.ts +0 -36
  627. package/projects/obtservices/base/src/lib/vendor/fetchers/get-users-baskets-fetcher.ts +0 -33
  628. package/projects/obtservices/base/src/lib/vendor/fetchers/getMiAutoSugestions.fetcher.ts +0 -35
  629. package/projects/obtservices/base/src/lib/vendor/fetchers/hotel-avaliability-fetcher.ts +0 -53
  630. package/projects/obtservices/base/src/lib/vendor/fetchers/hotel-quote-fetcher.ts +0 -35
  631. package/projects/obtservices/base/src/lib/vendor/fetchers/irl-quote-fetcher.ts +0 -34
  632. package/projects/obtservices/base/src/lib/vendor/fetchers/list-fetchable-enterprise.ts +0 -59
  633. package/projects/obtservices/base/src/lib/vendor/fetchers/lounge-quote.fetcher.ts +0 -34
  634. package/projects/obtservices/base/src/lib/vendor/fetchers/object-fetchable-enterprise.ts +0 -20
  635. package/projects/obtservices/base/src/lib/vendor/fetchers/parking-quote-fetcher.ts +0 -34
  636. package/projects/obtservices/base/src/lib/vendor/fetchers/rail-quote-fetcher.ts +0 -34
  637. package/projects/obtservices/base/src/lib/vendor/fetchers/search-airlines.fetcher.ts +0 -30
  638. package/projects/obtservices/base/src/lib/vendor/fetchers/search-airports-fetcher.ts +0 -29
  639. package/projects/obtservices/base/src/lib/vendor/fetchers/search-cities.fetcher.ts +0 -34
  640. package/projects/obtservices/base/src/lib/vendor/fetchers/search-conferma-cities.fetcher.ts +0 -32
  641. package/projects/obtservices/base/src/lib/vendor/fetchers/search-depots.fetcher.ts +0 -34
  642. package/projects/obtservices/base/src/lib/vendor/fetchers/search-hotel-chains.fetcher.ts +0 -34
  643. package/projects/obtservices/base/src/lib/vendor/fetchers/search-postcodes.fetcher.ts +0 -37
  644. package/projects/obtservices/base/src/lib/vendor/fetchers/search-rail-stations.fetcher.ts +0 -35
  645. package/projects/obtservices/base/src/lib/vendor/fetchers/search-users-can-book-for-fetcher.ts +0 -35
  646. package/projects/obtservices/base/src/lib/vendor/fetchers/user-addresses.fetcher.ts +0 -34
  647. package/projects/obtservices/base/src/lib/vendor/fetchers/user-fetcher.ts +0 -27
  648. package/projects/obtservices/base/src/lib/vendor/fetchers/user-message.fetcher.ts +0 -34
  649. package/projects/obtservices/base/src/lib/vendor/fetchers/user-products-fetcher.ts +0 -35
  650. package/projects/obtservices/base/src/lib/vendor/fetchers/user-ui-configs-fetcher.ts +0 -35
  651. package/projects/obtservices/base/src/lib/vendor/interfaces/Icabhire-enterprise-search.ts +0 -174
  652. package/projects/obtservices/base/src/lib/vendor/interfaces/Icarhire-enterprise-search.ts +0 -143
  653. package/projects/obtservices/base/src/lib/vendor/interfaces/Ienterprise-basket.service.ts +0 -127
  654. package/projects/obtservices/base/src/lib/vendor/interfaces/Ieurostar-enterprise-search.ts +0 -197
  655. package/projects/obtservices/base/src/lib/vendor/interfaces/Iflight-enterprise-search.ts +0 -196
  656. package/projects/obtservices/base/src/lib/vendor/interfaces/Ihotel-enterprise-search.ts +0 -219
  657. package/projects/obtservices/base/src/lib/vendor/interfaces/Iirl-enterprise-search.ts +0 -135
  658. package/projects/obtservices/base/src/lib/vendor/interfaces/Ilounges-enterprise-search.ts +0 -58
  659. package/projects/obtservices/base/src/lib/vendor/interfaces/Imybookings.service.ts +0 -27
  660. package/projects/obtservices/base/src/lib/vendor/interfaces/Iparking-enterprise-search.ts +0 -72
  661. package/projects/obtservices/base/src/lib/vendor/interfaces/Irail-enterprise-search.ts +0 -161
  662. package/projects/obtservices/base/src/lib/vendor/interfaces/Isearch.service.ts +0 -178
  663. package/projects/obtservices/base/src/lib/vendor/interfaces/Isupplementary-booking-info-impl.ts +0 -63
  664. package/projects/obtservices/base/src/lib/vendor/interfaces/Iuser.service.ts +0 -87
  665. package/projects/obtservices/base/src/lib/vendor/interfaces/car-hire-classes.interface.ts +0 -8
  666. package/projects/obtservices/base/src/lib/vendor/interfaces/car-hire-filters.interface.ts +0 -11
  667. package/projects/obtservices/base/src/lib/vendor/interfaces/car-hire-sort.interface.ts +0 -4
  668. package/projects/obtservices/base/src/lib/vendor/interfaces/cheapest-price.ts +0 -4
  669. package/projects/obtservices/base/src/lib/vendor/interfaces/code-name.ts +0 -4
  670. package/projects/obtservices/base/src/lib/vendor/interfaces/flight-filters.interface.ts +0 -41
  671. package/projects/obtservices/base/src/lib/vendor/interfaces/flight-multi-destination.interface.ts +0 -8
  672. package/projects/obtservices/base/src/lib/vendor/interfaces/rail-airport-express-stations.interface.ts +0 -4
  673. package/projects/obtservices/base/src/lib/vendor/interfaces/rail-basket-item.interface.ts +0 -79
  674. package/projects/obtservices/base/src/lib/vendor/interfaces/rail-journey-leg.interface.ts +0 -6
  675. package/projects/obtservices/base/src/lib/vendor/interfaces/rail-recent-search-args.interface.ts +0 -20
  676. package/projects/obtservices/base/src/lib/vendor/interfaces/rail-selected-ticket.interface.ts +0 -11
  677. package/projects/obtservices/base/src/lib/vendor/interfaces/rail-ticket-group.interface.ts +0 -29
  678. package/projects/obtservices/base/src/lib/vendor/interfaces/rail-ticket-groups.interface.ts +0 -5
  679. package/projects/obtservices/base/src/lib/vendor/interfaces/search-objects.interface.ts +0 -17
  680. package/projects/obtservices/base/src/lib/vendor/interfaces/select-filter.interface.ts +0 -5
  681. package/projects/obtservices/base/src/lib/vendor/interfaces/user.data.ts +0 -22
  682. package/projects/obtservices/base/src/lib/vendor/interfaces/value-display.ts +0 -4
  683. package/projects/obtservices/base/src/lib/vendor/models/login.model.ts +0 -97
  684. package/projects/obtservices/base/src/lib/vendor/models/regexp.model.ts +0 -13
  685. package/projects/obtservices/base/src/lib/vendor/models/traveller.object.ts +0 -61
  686. package/projects/obtservices/base/src/lib/vendor/services/enterprise-basket.service.ts +0 -1150
  687. package/projects/obtservices/base/src/lib/vendor/services/hotel-avallibility.service.ts +0 -251
  688. package/projects/obtservices/base/src/lib/vendor/services/http-call.service.ts +0 -57
  689. package/projects/obtservices/base/src/lib/vendor/services/logon.service.ts +0 -245
  690. package/projects/obtservices/base/src/lib/vendor/services/modal-opener.service.ts +0 -30
  691. package/projects/obtservices/base/src/lib/vendor/services/my-bookings.service.ts +0 -184
  692. package/projects/obtservices/base/src/lib/vendor/services/routehappy.service.ts +0 -275
  693. package/projects/obtservices/base/src/lib/vendor/services/search.service.ts +0 -2026
  694. package/projects/obtservices/base/src/lib/vendor/services/storage.service.ts +0 -15
  695. package/projects/obtservices/base/src/lib/vendor/services/url.service.ts +0 -12
  696. package/projects/obtservices/base/src/lib/vendor/services/user.service.ts +0 -354
  697. package/projects/obtservices/base/src/lib/vendor/services/webtoken.service.ts +0 -66
  698. package/projects/obtservices/base/src/lib/vendor/testers/base.tester.ts +0 -18
  699. package/projects/obtservices/base/src/lib/vendor/testers/postcode-validate.tester.ts +0 -24
  700. package/projects/obtservices/base/src/lib/vendor/testers/validate-mi-free-value.tester.ts +0 -23
  701. package/projects/obtservices/base/src/lib/vendor/types/graphql.types.ts +0 -6184
  702. package/projects/obtservices/base/src/lib/vendor/types/types.ts +0 -630
  703. package/projects/obtservices/base/src/lib/vendor/updaters/accept-new-price.updater.ts +0 -31
  704. package/projects/obtservices/base/src/lib/vendor/updaters/add-item-to-basket.updater.ts +0 -29
  705. package/projects/obtservices/base/src/lib/vendor/updaters/addUserToBasketItem.ts +0 -30
  706. package/projects/obtservices/base/src/lib/vendor/updaters/book-basket-updater.ts +0 -28
  707. package/projects/obtservices/base/src/lib/vendor/updaters/create-basket-updater.ts +0 -29
  708. package/projects/obtservices/base/src/lib/vendor/updaters/move-basket-item-to-basket.ts +0 -30
  709. package/projects/obtservices/base/src/lib/vendor/updaters/object-updater-enterprise.ts +0 -20
  710. package/projects/obtservices/base/src/lib/vendor/updaters/remove-basket-updater.ts +0 -29
  711. package/projects/obtservices/base/src/lib/vendor/updaters/remove-item-from-basket.updater.ts +0 -28
  712. package/projects/obtservices/base/src/lib/vendor/updaters/remove-recent-search-updater.ts +0 -29
  713. package/projects/obtservices/base/src/lib/vendor/updaters/remove-user-address-updater.ts +0 -29
  714. package/projects/obtservices/base/src/lib/vendor/updaters/revalidate-basket-updater.ts +0 -29
  715. package/projects/obtservices/base/src/lib/vendor/updaters/save-recent-search-updater.ts +0 -30
  716. package/projects/obtservices/base/src/lib/vendor/updaters/save-user-address.updater.ts +0 -30
  717. package/projects/obtservices/base/src/lib/vendor/updaters/send-basket-for-approval.updater.ts +0 -31
  718. package/projects/obtservices/base/src/lib/vendor/updaters/set-basket-item-lead-passenger.updater.ts +0 -30
  719. package/projects/obtservices/base/src/lib/vendor/updaters/set-basket-item-mi-group.ts +0 -32
  720. package/projects/obtservices/base/src/lib/vendor/updaters/set-basket-item-mi-value-updater.ts +0 -30
  721. package/projects/obtservices/base/src/lib/vendor/updaters/set-basket-item-paymenr-option.updater.ts +0 -28
  722. package/projects/obtservices/base/src/lib/vendor/updaters/update-basket-notes-updater.ts +0 -30
  723. package/projects/obtservices/base/src/lib/vendor/updaters/update-basket-title-updater.ts +0 -30
  724. package/projects/obtservices/base/src/testers.ts +0 -2
  725. package/projects/obtservices/graphQL/autogenerated/index.js +0 -2
  726. package/projects/obtservices/graphQL/autogenerated/mutations/acceptNewPrice.gql +0 -1580
  727. package/projects/obtservices/graphQL/autogenerated/mutations/addItemToBasket.gql +0 -1580
  728. package/projects/obtservices/graphQL/autogenerated/mutations/addUsersToBasketItem.gql +0 -1580
  729. package/projects/obtservices/graphQL/autogenerated/mutations/bookBasket.gql +0 -1580
  730. package/projects/obtservices/graphQL/autogenerated/mutations/cancelBooking.gql +0 -6
  731. package/projects/obtservices/graphQL/autogenerated/mutations/confermaCreateCard.gql +0 -23
  732. package/projects/obtservices/graphQL/autogenerated/mutations/confermaDeleteCard.gql +0 -3
  733. package/projects/obtservices/graphQL/autogenerated/mutations/createBasket.gql +0 -1580
  734. package/projects/obtservices/graphQL/autogenerated/mutations/deleteBasket.gql +0 -3
  735. package/projects/obtservices/graphQL/autogenerated/mutations/deleteFavouriteSearch.gql +0 -3
  736. package/projects/obtservices/graphQL/autogenerated/mutations/deleteRecentSearch.gql +0 -3
  737. package/projects/obtservices/graphQL/autogenerated/mutations/deleteUserAddress.gql +0 -3
  738. package/projects/obtservices/graphQL/autogenerated/mutations/index.js +0 -36
  739. package/projects/obtservices/graphQL/autogenerated/mutations/moveItemToADifferentBasket.gql +0 -1580
  740. package/projects/obtservices/graphQL/autogenerated/mutations/removeItemFromBasket.gql +0 -1580
  741. package/projects/obtservices/graphQL/autogenerated/mutations/removeItemsFromBasket.gql +0 -1580
  742. package/projects/obtservices/graphQL/autogenerated/mutations/removeUserFromBasketItem.gql +0 -1580
  743. package/projects/obtservices/graphQL/autogenerated/mutations/reopenBasket.gql +0 -1580
  744. package/projects/obtservices/graphQL/autogenerated/mutations/revalidateBasket.gql +0 -1580
  745. package/projects/obtservices/graphQL/autogenerated/mutations/revalidateBasketItem.gql +0 -1580
  746. package/projects/obtservices/graphQL/autogenerated/mutations/saveFavouriteSearch.gql +0 -348
  747. package/projects/obtservices/graphQL/autogenerated/mutations/saveRecentSearch.gql +0 -348
  748. package/projects/obtservices/graphQL/autogenerated/mutations/saveUserAddress.gql +0 -14
  749. package/projects/obtservices/graphQL/autogenerated/mutations/sendBasketForApproval.gql +0 -1580
  750. package/projects/obtservices/graphQL/autogenerated/mutations/setAddressAsUserPrimary.gql +0 -14
  751. package/projects/obtservices/graphQL/autogenerated/mutations/setBasketItemLeadPassenger.gql +0 -1580
  752. package/projects/obtservices/graphQL/autogenerated/mutations/setBasketItemMIGroup.gql +0 -1580
  753. package/projects/obtservices/graphQL/autogenerated/mutations/setBasketItemMIValue.gql +0 -1580
  754. package/projects/obtservices/graphQL/autogenerated/mutations/setBasketItemPaymentMethod.gql +0 -1580
  755. package/projects/obtservices/graphQL/autogenerated/mutations/setMIDefaultValue.gql +0 -3
  756. package/projects/obtservices/graphQL/autogenerated/mutations/setUserLanguage.gql +0 -339
  757. package/projects/obtservices/graphQL/autogenerated/mutations/updateBasketNotes.gql +0 -1580
  758. package/projects/obtservices/graphQL/autogenerated/mutations/updateBasketTitle.gql +0 -1580
  759. package/projects/obtservices/graphQL/autogenerated/queries/alive.gql +0 -3
  760. package/projects/obtservices/graphQL/autogenerated/queries/carHireAvailabilityDetailRequest.gql +0 -42
  761. package/projects/obtservices/graphQL/autogenerated/queries/confermaBlockClientHotels.gql +0 -23
  762. package/projects/obtservices/graphQL/autogenerated/queries/confermaBlockConsumerHotels.gql +0 -23
  763. package/projects/obtservices/graphQL/autogenerated/queries/confermaListCards.gql +0 -11
  764. package/projects/obtservices/graphQL/autogenerated/queries/confermaUnblockClientHotels.gql +0 -23
  765. package/projects/obtservices/graphQL/autogenerated/queries/confermaUnblockConsumerHotels.gql +0 -23
  766. package/projects/obtservices/graphQL/autogenerated/queries/getCOVIDMicrositeToken.gql +0 -3
  767. package/projects/obtservices/graphQL/autogenerated/queries/getCancellationInfo.gql +0 -7
  768. package/projects/obtservices/graphQL/autogenerated/queries/getCarHireDepots.gql +0 -13
  769. package/projects/obtservices/graphQL/autogenerated/queries/getConfermaOffice.gql +0 -50
  770. package/projects/obtservices/graphQL/autogenerated/queries/getConfermaOfficeNames.gql +0 -26
  771. package/projects/obtservices/graphQL/autogenerated/queries/getConfermaQuicklist.gql +0 -131
  772. package/projects/obtservices/graphQL/autogenerated/queries/getCountries.gql +0 -8
  773. package/projects/obtservices/graphQL/autogenerated/queries/getHotelAvailability.gql +0 -78
  774. package/projects/obtservices/graphQL/autogenerated/queries/getHotelChains.gql +0 -3
  775. package/projects/obtservices/graphQL/autogenerated/queries/getIRLSupplierStation.gql +0 -28
  776. package/projects/obtservices/graphQL/autogenerated/queries/getMultipleHotelsAvailability.gql +0 -78
  777. package/projects/obtservices/graphQL/autogenerated/queries/getPostcodeDetails.gql +0 -25
  778. package/projects/obtservices/graphQL/autogenerated/queries/getRailStation.gql +0 -27
  779. package/projects/obtservices/graphQL/autogenerated/queries/getRailcards.gql +0 -6
  780. package/projects/obtservices/graphQL/autogenerated/queries/getRiskAlerts.gql +0 -17
  781. package/projects/obtservices/graphQL/autogenerated/queries/getUser.gql +0 -339
  782. package/projects/obtservices/graphQL/autogenerated/queries/getUserAddresses.gql +0 -14
  783. package/projects/obtservices/graphQL/autogenerated/queries/getUserBasket.gql +0 -1580
  784. package/projects/obtservices/graphQL/autogenerated/queries/getUserBaskets.gql +0 -1580
  785. package/projects/obtservices/graphQL/autogenerated/queries/getUserCompanyOffices.gql +0 -88
  786. package/projects/obtservices/graphQL/autogenerated/queries/getUserCurrentCarbonAllowance.gql +0 -524
  787. package/projects/obtservices/graphQL/autogenerated/queries/getUserFavouriteSearches.gql +0 -348
  788. package/projects/obtservices/graphQL/autogenerated/queries/getUserMIAutoSuggestValues.gql +0 -10
  789. package/projects/obtservices/graphQL/autogenerated/queries/getUserMessages.gql +0 -10
  790. package/projects/obtservices/graphQL/autogenerated/queries/getUserPhoneNumbers.gql +0 -13
  791. package/projects/obtservices/graphQL/autogenerated/queries/getUserRecentSearches.gql +0 -348
  792. package/projects/obtservices/graphQL/autogenerated/queries/getUserServices.gql +0 -16
  793. package/projects/obtservices/graphQL/autogenerated/queries/getUserTravelRules.gql +0 -111
  794. package/projects/obtservices/graphQL/autogenerated/queries/getUserUIConfigs.gql +0 -52
  795. package/projects/obtservices/graphQL/autogenerated/queries/index.js +0 -64
  796. package/projects/obtservices/graphQL/autogenerated/queries/isPostcodeValid.gql +0 -3
  797. package/projects/obtservices/graphQL/autogenerated/queries/postcodeAutoSuggest.gql +0 -3
  798. package/projects/obtservices/graphQL/autogenerated/queries/searchAirlines.gql +0 -32
  799. package/projects/obtservices/graphQL/autogenerated/queries/searchAirports.gql +0 -60
  800. package/projects/obtservices/graphQL/autogenerated/queries/searchCabHire.gql +0 -63
  801. package/projects/obtservices/graphQL/autogenerated/queries/searchCarHire.gql +0 -104
  802. package/projects/obtservices/graphQL/autogenerated/queries/searchCities.gql +0 -14
  803. package/projects/obtservices/graphQL/autogenerated/queries/searchConfermaCities.gql +0 -11
  804. package/projects/obtservices/graphQL/autogenerated/queries/searchEurostar.gql +0 -833
  805. package/projects/obtservices/graphQL/autogenerated/queries/searchFastTrack.gql +0 -46
  806. package/projects/obtservices/graphQL/autogenerated/queries/searchFlights.gql +0 -23
  807. package/projects/obtservices/graphQL/autogenerated/queries/searchFlightsV2.gql +0 -833
  808. package/projects/obtservices/graphQL/autogenerated/queries/searchHotelChains.gql +0 -3
  809. package/projects/obtservices/graphQL/autogenerated/queries/searchHotels.gql +0 -131
  810. package/projects/obtservices/graphQL/autogenerated/queries/searchIRL.gql +0 -514
  811. package/projects/obtservices/graphQL/autogenerated/queries/searchIRLSupplierStations.gql +0 -28
  812. package/projects/obtservices/graphQL/autogenerated/queries/searchLounges.gql +0 -89
  813. package/projects/obtservices/graphQL/autogenerated/queries/searchParking.gql +0 -70
  814. package/projects/obtservices/graphQL/autogenerated/queries/searchPostcodes.gql +0 -25
  815. package/projects/obtservices/graphQL/autogenerated/queries/searchRail.gql +0 -840
  816. package/projects/obtservices/graphQL/autogenerated/queries/searchRailStations.gql +0 -27
  817. package/projects/obtservices/graphQL/autogenerated/queries/searchUserCanBookFor.gql +0 -339
  818. package/projects/obtservices/graphQL/autogenerated/queries/validateBasketItemMI.gql +0 -3
  819. package/projects/obtservices/graphQL/autogenerated/queries/validateUserMIFreeValue.gql +0 -3
  820. package/projects/obtservices/graphQL/documents/acceptNewPrice.graphql +0 -5
  821. package/projects/obtservices/graphQL/documents/addUserToBasketItem.graphql +0 -9
  822. package/projects/obtservices/graphQL/documents/basket.fragments.graphql +0 -171
  823. package/projects/obtservices/graphQL/documents/baskets.graphql +0 -111
  824. package/projects/obtservices/graphQL/documents/bookBasket.graphql +0 -9
  825. package/projects/obtservices/graphQL/documents/cabhire.graphql +0 -66
  826. package/projects/obtservices/graphQL/documents/carHireAvailabilityDetailRequest.graphql +0 -44
  827. package/projects/obtservices/graphQL/documents/carhire.graphql +0 -117
  828. package/projects/obtservices/graphQL/documents/deleteRecentSearch.graphql +0 -3
  829. package/projects/obtservices/graphQL/documents/deleteUserAddress.graphql +0 -3
  830. package/projects/obtservices/graphQL/documents/error.fragments.graphql +0 -10
  831. package/projects/obtservices/graphQL/documents/flights.graphql +0 -830
  832. package/projects/obtservices/graphQL/documents/getCarHireDepots.graphql +0 -13
  833. package/projects/obtservices/graphQL/documents/getConfermaOfficeNames.graphql +0 -11
  834. package/projects/obtservices/graphQL/documents/getConfermaQuicklist.graphql +0 -108
  835. package/projects/obtservices/graphQL/documents/getRailStation.graphql +0 -31
  836. package/projects/obtservices/graphQL/documents/getRailcards.graphql +0 -6
  837. package/projects/obtservices/graphQL/documents/getRiskAlerts.graphql +0 -24
  838. package/projects/obtservices/graphQL/documents/getUserAddresses.graphql +0 -14
  839. package/projects/obtservices/graphQL/documents/getUserCompanyOffices.graphql +0 -18
  840. package/projects/obtservices/graphQL/documents/getUserCurrentCarbonAllowance.graphql +0 -29
  841. package/projects/obtservices/graphQL/documents/getUserMIAutoSuggestValues.graphql +0 -10
  842. package/projects/obtservices/graphQL/documents/getUserPhoneNumbers.graphql +0 -13
  843. package/projects/obtservices/graphQL/documents/getUserRecentSearches.graphql +0 -20
  844. package/projects/obtservices/graphQL/documents/hotels.graphql +0 -242
  845. package/projects/obtservices/graphQL/documents/isPostcodeValid.graphql +0 -3
  846. package/projects/obtservices/graphQL/documents/lookups.graphql +0 -54
  847. package/projects/obtservices/graphQL/documents/lounges.graphql +0 -88
  848. package/projects/obtservices/graphQL/documents/moveItemToADifferentBasket.graphql +0 -9
  849. package/projects/obtservices/graphQL/documents/parking.graphql +0 -79
  850. package/projects/obtservices/graphQL/documents/rail.graphql +0 -645
  851. package/projects/obtservices/graphQL/documents/saveRecentSearch.graphql +0 -5
  852. package/projects/obtservices/graphQL/documents/saveUserAddress.graphql +0 -14
  853. package/projects/obtservices/graphQL/documents/searchAirlines.graphql +0 -32
  854. package/projects/obtservices/graphQL/documents/searchCities.graphql +0 -14
  855. package/projects/obtservices/graphQL/documents/searchConfermaCities.graphql +0 -11
  856. package/projects/obtservices/graphQL/documents/searchEurostar.graphql +0 -810
  857. package/projects/obtservices/graphQL/documents/searchHotelChains.graphql +0 -3
  858. package/projects/obtservices/graphQL/documents/searchIRL.graphql +0 -521
  859. package/projects/obtservices/graphQL/documents/searchPostcodes.graphql +0 -7
  860. package/projects/obtservices/graphQL/documents/searchRailStations.graphql +0 -27
  861. package/projects/obtservices/graphQL/documents/searchUserAddresses.graphql +0 -14
  862. package/projects/obtservices/graphQL/documents/set-basker-item-mi-group.graphql +0 -9
  863. package/projects/obtservices/graphQL/documents/setBasketItemLeadPassenger.graphql +0 -5
  864. package/projects/obtservices/graphQL/documents/setBasketItemMIValue.graphql +0 -16
  865. package/projects/obtservices/graphQL/documents/setBasketItemPaymentMethod.graphql +0 -12
  866. package/projects/obtservices/graphQL/documents/updateBasketNotes.graphql +0 -10
  867. package/projects/obtservices/graphQL/documents/updateBasketTitle.graphql +0 -10
  868. package/projects/obtservices/graphQL/documents/user.fragments.graphql +0 -65
  869. package/projects/obtservices/graphQL/documents/user.graphql +0 -95
  870. package/projects/obtservices/graphQL/documents/validateUserMIFreeValue.graphql +0 -3
  871. package/projects/obtservices/graphQL/schema/schema.graphql +0 -2635
  872. package/projects/obtservices/karma.conf.js +0 -32
  873. package/projects/obtservices/ng-package.json +0 -7
  874. package/projects/obtservices/package-lock.json +0 -5
  875. package/projects/obtservices/package.json +0 -12
  876. package/projects/obtservices/src/obtservices.ts +0 -0
  877. package/projects/obtservices/src/public_api.ts +0 -1
  878. package/projects/obtservices/tsconfig.lib.json +0 -30
  879. package/projects/obtservices/tsconfig.spec.json +0 -17
  880. package/projects/obtservices/tslint.json +0 -17
  881. /package/{projects → dist}/obtservices/README.md +0 -0
  882. /package/{projects/obtservices/angular/src/classes.ts → dist/obtservices/angular/classes.d.ts} +0 -0
  883. /package/{projects/obtservices/angular/src/components.ts → dist/obtservices/angular/components.d.ts} +0 -0
  884. /package/{projects/obtservices/angular/src/public_api.ts → dist/obtservices/angular/public_api.d.ts} +0 -0
  885. /package/{projects/obtservices/angular/src/services.ts → dist/obtservices/angular/services.d.ts} +0 -0
  886. /package/{projects/obtservices/angular/src/types.ts → dist/obtservices/angular/types.d.ts} +0 -0
  887. /package/{projects/obtservices/angular/src/updaters.ts → dist/obtservices/angular/updaters.d.ts} +0 -0
  888. /package/{projects/obtservices/base/src/classes.ts → dist/obtservices/base/classes.d.ts} +0 -0
  889. /package/{projects/obtservices/base/src/interfaces.ts → dist/obtservices/base/interfaces.d.ts} +0 -0
  890. /package/{projects/obtservices/base/src/models.ts → dist/obtservices/base/models.d.ts} +0 -0
  891. /package/{projects/obtservices/base/src/public_api.ts → dist/obtservices/base/public_api.d.ts} +0 -0
  892. /package/{projects/obtservices/base/src/services.ts → dist/obtservices/base/services.d.ts} +0 -0
  893. /package/{projects/obtservices/angular/src/testers.ts → dist/obtservices/base/testers.d.ts} +0 -0
  894. /package/{projects/obtservices/base/src/types.ts → dist/obtservices/base/types.d.ts} +0 -0
  895. /package/{projects/obtservices/base/src/updaters.ts → dist/obtservices/base/updaters.d.ts} +0 -0
@@ -0,0 +1,165 @@
1
+ import { BehaviorSubject } from 'rxjs';
2
+ import { take } from 'rxjs/operators';
3
+ const SESSION_NAME = 'results_hotel_avallibility';
4
+ export class BaseHotelAvalibilityService {
5
+ constructor(avalibilityFethcer, sessionStorage, helpers, environment) {
6
+ this.avalibilityFethcer = avalibilityFethcer;
7
+ this.sessionStorage = sessionStorage;
8
+ this.helpers = helpers;
9
+ this.environment = environment;
10
+ this.data = null;
11
+ this.behaviours = {};
12
+ this.toFetch = [];
13
+ this.fetching = new BehaviorSubject(false);
14
+ this.currencies = {};
15
+ }
16
+ readFromSession() {
17
+ const data = this.sessionStorage.getSessionItem(SESSION_NAME) || {};
18
+ Object.values(data).forEach((item) => {
19
+ this.behaviours[item.hotelId] =
20
+ new BehaviorSubject(item);
21
+ });
22
+ return data;
23
+ }
24
+ reset() {
25
+ this.data = {};
26
+ this.currencies = {};
27
+ this.sessionStorage.removeSessionItem(SESSION_NAME);
28
+ Object.values(this.data).forEach((item) => {
29
+ this.behaviours[item.hotelId].complete();
30
+ delete this.behaviours[item.hotelId];
31
+ });
32
+ this.behaviours = {};
33
+ }
34
+ getAvailabilityForId(hotel) {
35
+ this.data = this.data || this.readFromSession();
36
+ return (this.behaviours[hotel.hotel] ||
37
+ this._getAvailabilityForId(hotel));
38
+ }
39
+ getAvailabilityValue(hotel) {
40
+ var _a;
41
+ this.data = this.data || this.readFromSession();
42
+ return (((_a = this.behaviours[hotel.id]) === null || _a === void 0 ? void 0 : _a.value) ||
43
+ {});
44
+ }
45
+ _getAvailabilityForId(hotel) {
46
+ if (this.timeout) {
47
+ window.clearTimeout(this.timeout);
48
+ this.timeout = 0;
49
+ }
50
+ if (!this.fetching.value) {
51
+ this.timeout = window.setTimeout(this.fetchAvalilbility.bind(this), this.environment.autoFetchHotelTimeout);
52
+ }
53
+ this.toFetch.push(hotel);
54
+ if (!this.fetching.value &&
55
+ this.toFetch.length >= this.environment.numberOfHotelsToFetch) {
56
+ this.fetchAvalilbility();
57
+ }
58
+ this.behaviours[hotel.hotel] =
59
+ new BehaviorSubject(null);
60
+ return this.behaviours[hotel.hotel];
61
+ }
62
+ fetchAvalilbility() {
63
+ this.fetching.next(true);
64
+ if (this.timeout) {
65
+ window.clearTimeout(this.timeout);
66
+ this.timeout = 0;
67
+ }
68
+ const toFetch = this.toFetch.slice(0, this.environment.numberOfHotelsToFetch);
69
+ this.toFetch = this.toFetch.slice(this.environment.numberOfHotelsToFetch);
70
+ console.log('Hotels still to fetch', this.toFetch.length);
71
+ const query = {
72
+ hotel: toFetch.map((hotel) => hotel.hotel),
73
+ currency: toFetch[0].currency,
74
+ endDate: toFetch[0].endDate,
75
+ startDate: toFetch[0].startDate,
76
+ occupants: toFetch[0].occupants,
77
+ rooms: toFetch[0].rooms
78
+ };
79
+ this.avalibilityFethcer
80
+ .fetchList(query)
81
+ .pipe(take(1))
82
+ .subscribe((hotels) => {
83
+ hotels.forEach((hotel) => {
84
+ hotel = this.helpers.clone(hotel);
85
+ hotel.rooms = (hotel.rooms || [])
86
+ .filter((room) => {
87
+ return room.total > 0;
88
+ })
89
+ .map((room) => {
90
+ room = this.helpers.clone(room);
91
+ room.LocalPrice = room.currencyConversion
92
+ ? room.currencyConversion.localTotal
93
+ : room.total;
94
+ room.LocalCurrency = room.currencyConversion
95
+ ? room.currencyConversion.localCode
96
+ : room.currencyCode;
97
+ return room;
98
+ });
99
+ hotel.currencies = hotel.rooms.reduce((details, room) => {
100
+ if (room.currencyConversion) {
101
+ details[room.currencyConversion.convertedCode] = details[room.currencyConversion.convertedCode] || {
102
+ maxprice: Number.MIN_VALUE,
103
+ minprice: Number.MAX_VALUE
104
+ };
105
+ details[room.currencyConversion.convertedCode].maxprice =
106
+ Math.max(details[room.currencyConversion.convertedCode].maxprice, room.currencyConversion.convertedTotal);
107
+ details[room.currencyConversion.convertedCode].minprice =
108
+ Math.min(details[room.currencyConversion.convertedCode].minprice, room.currencyConversion.convertedTotal);
109
+ this.currencies[room.currencyConversion.convertedCode] = this
110
+ .currencies[room.currencyConversion.convertedCode] || {
111
+ maxprice: Number.MIN_VALUE,
112
+ minprice: Number.MAX_VALUE
113
+ };
114
+ this.currencies[room.currencyConversion.convertedCode].minprice = Math.ceil(Math.min(this.currencies[room.currencyConversion.convertedCode]
115
+ .minprice, room.currencyConversion.convertedTotal));
116
+ this.currencies[room.currencyConversion.convertedCode].maxprice = Math.ceil(Math.max(this.currencies[room.currencyConversion.convertedCode]
117
+ .maxprice, room.currencyConversion.convertedTotal));
118
+ }
119
+ return details;
120
+ }, {});
121
+ const roomPrices = hotel.rooms.map(this.helpers.mapFieldFromObject('total'));
122
+ if (!roomPrices.length)
123
+ roomPrices.push(0);
124
+ hotel.minprice = Math.min(...roomPrices);
125
+ hotel.maxprice = Math.max(...roomPrices);
126
+ hotel.rooms = hotel.rooms;
127
+ if (hotel === null || hotel === void 0 ? void 0 : hotel.hotelId) {
128
+ this.data[hotel.hotelId] = hotel;
129
+ this.behaviours[hotel.hotelId].next(hotel);
130
+ }
131
+ });
132
+ // this.sessionStorage.setSessionItem(SESSION_NAME, this.data);
133
+ this.sessionStorage.setSessionItem(SESSION_NAME, hotels);
134
+ if (this.toFetch.length > 0) {
135
+ setTimeout(() => {
136
+ this.fetchAvalilbility();
137
+ }, this.environment.hotelAvalibilityTimeout);
138
+ }
139
+ else {
140
+ this.fetching.next(false);
141
+ }
142
+ });
143
+ }
144
+ maxPriceForCurrency(currency) {
145
+ return (this.currencies[currency] || {
146
+ maxprice: Number.MAX_VALUE,
147
+ minprice: Number.MIN_VALUE
148
+ }).maxprice;
149
+ }
150
+ /**
151
+ * @description - return the number of hotels that have a price (prpn value)
152
+ */
153
+ numberOfHotelsWithPrice() {
154
+ let count = 0;
155
+ if (this.data) {
156
+ for (const [key, value] of Object.entries(this.data)) {
157
+ if (value === null || value === void 0 ? void 0 : value.prpn) {
158
+ count++;
159
+ }
160
+ }
161
+ }
162
+ return count;
163
+ }
164
+ }
165
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG90ZWwtYXZhbGxpYmlsaXR5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vYnRzZXJ2aWNlcy9iYXNlL3NyYy9saWIvdmVuZG9yL3NlcnZpY2VzL2hvdGVsLWF2YWxsaWJpbGl0eS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBcUJ0QyxNQUFNLFlBQVksR0FBRyw0QkFBNEIsQ0FBQztBQUVsRCxNQUFNLE9BQU8sMkJBQTJCO0lBYXRDLFlBQ1Usa0JBQXVELEVBQ3ZELGNBQWtDLEVBQ2xDLE9BQTJCLEVBQzNCLFdBQTRCO1FBSDVCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBcUM7UUFDdkQsbUJBQWMsR0FBZCxjQUFjLENBQW9CO1FBQ2xDLFlBQU8sR0FBUCxPQUFPLENBQW9CO1FBQzNCLGdCQUFXLEdBQVgsV0FBVyxDQUFpQjtRQWQ5QixTQUFJLEdBQWUsSUFBSSxDQUFDO1FBQ3hCLGVBQVUsR0FFZCxFQUFFLENBQUM7UUFFQyxZQUFPLEdBQTRCLEVBQUUsQ0FBQztRQUN2QyxhQUFRLEdBQTZCLElBQUksZUFBZSxDQUM3RCxLQUFLLENBQ04sQ0FBQztRQUNGLGVBQVUsR0FBb0IsRUFBRSxDQUFDO0lBTTlCLENBQUM7SUFFSSxlQUFlO1FBQ3JCLE1BQU0sSUFBSSxHQUNSLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFhLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQWlDLEVBQUUsRUFBRTtZQUNoRSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7Z0JBQzNCLElBQUksZUFBZSxD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QzNCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsbUJBQW1CLENBQUMsUUFBZ0I7UUFDbEMsT0FBTyxDQUNMLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUk7WUFDM0IsUUFBUSxFQUFFLE1BQU0sQ0FBQyxTQUFTO1lBQzFCLFFBQVEsRUFBRSxNQUFNLENBQUMsU0FBUztTQUMzQixDQUNGLENBQUMsUUFBUSxDQUFDO0lBQ2IsQ0FBQztJQUVEOztPQUVHO0lBQ0gsdUJBQXVCO1FBQ3JCLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNkLElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNiLEtBQUssTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDcEQsSUFBSSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsSUFBSSxFQUFFO29CQUNmLEtBQUssRUFBRSxDQUFDO2lCQUNUO2FBQ0Y7U0FDRjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztDQUVGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEJhc2VFbnZpcm9ubWVudCB9IGZyb20gJy4uL2NsYXNzZXMvZW52aXJvbWVudCc7XHJcbmltcG9ydCB7IEJhc2VIZWxwZXJSb3V0aW5lcyB9IGZyb20gJy4uL2NsYXNzZXMvaGVscGVycyc7XHJcbmltcG9ydCB7XHJcbiAgQmFzZUhvdGVsQXZhbGliaWxpdHlRdW90ZUZldGNoZXIsXHJcbiAgSG90ZWxBdmFsaW5pbGl0eUZldGNoZXJUeXBlXHJcbn0gZnJvbSAnLi4vZmV0Y2hlcnMvaG90ZWwtYXZhbGlhYmlsaXR5LWZldGNoZXInO1xyXG5pbXBvcnQgeyBIb3RlbERldGFpbHMgfSBmcm9tICcuLi9pbnRlcmZhY2VzL0lob3RlbC1lbnRlcnByaXNlLXNlYXJjaCc7XHJcbmltcG9ydCB7IFF1ZXJ5R2V0TXVsdGlwbGVIb3RlbHNBdmFpbGFiaWxpdHlBcmdzIH0gZnJvbSAnLi4vdHlwZXMvZ3JhcGhxbC50eXBlcyc7XHJcbmltcG9ydCB7XHJcbiAgQ3VycmVuY3lEZXRhaWxzLFxyXG4gIEhvdGVsQXZhbGliaWxpdHlRdWVyeSxcclxuICBIb3RlbEF2YWxpYmlsaXR5UXVvdGVSZXN1bHQsXHJcbiAgSG90ZWxBdmFsaWJpbGl0eVF1b3RlUmVzdWx0QXJyYXksXHJcbiAgSG90ZWxSb29tV2l0aExvY2FsUHJpY2VcclxufSBmcm9tICcuLi90eXBlcy90eXBlcyc7XHJcblxyXG5pbXBvcnQgeyBCYXNlU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuL3N0b3JhZ2Uuc2VydmljZSc7XHJcblxyXG50eXBlIFN0b3JlZERhdGEgPSB7IFtrZXk6IHN0cmluZ106IEhvdGVsQXZhbGliaWxpdHlRdW90ZVJlc3VsdCB9O1xyXG5cclxuY29uc3QgU0VTU0lPTl9OQU1FID0gJ3Jlc3VsdHNfaG90ZWxfYXZhbGxpYmlsaXR5JztcclxuXHJcbmV4cG9ydCBjbGFzcyBCYXNlSG90ZWxBdmFsaWJpbGl0eVNlcnZpY2U8XHJcbiAgUSBleHRlbmRzIEhvdGVsQXZhbGluaWxpdHlGZXRjaGVyVHlwZVxyXG4+IHtcclxuICBwcml2YXRlIGRhdGE6IFN0b3JlZERhdGEgPSBudWxsO1xyXG4gIHByaXZhdGUgYmVoYXZpb3Vyczoge1xyXG4gICAgW2tleTogc3RyaW5nXTogQmVoYXZpb3JTdWJqZWN0PEhvdGVsQXZhbGliaWxpdHlRdW90ZVJlc3VsdD47XHJcbiAgfSA9IHt9O1xyXG4gIHByaXZhdGUgdGltZW91dDogbnVtYmVyO1xyXG4gIHByaXZhdGUgdG9GZXRjaDogSG90ZWxBdmFsaWJpbGl0eVF1ZXJ5W10gPSBbXTtcclxuICBwdWJsaWMgZmV0Y2hpbmc6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oXHJcbiAgICBmYWxzZVxyXG4gICk7XHJcbiAgY3VycmVuY2llczogQ3VycmVuY3lEZXRhaWxzID0ge307XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGF2YWxpYmlsaXR5RmV0aGNlcjogQmFzZUhvdGVsQXZhbGliaWxpdHlRdW90ZUZldGNoZXI8UT4sXHJcbiAgICBwcml2YXRlIHNlc3Npb25TdG9yYWdlOiBCYXNlU3RvcmFnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGhlbHBlcnM6IEJhc2VIZWxwZXJSb3V0aW5lcyxcclxuICAgIHByaXZhdGUgZW52aXJvbm1lbnQ6IEJhc2VFbnZpcm9ubWVudFxyXG4gICkge31cclxuXHJcbiAgcHJpdmF0ZSByZWFkRnJvbVNlc3Npb24oKSB7XHJcbiAgICBjb25zdCBkYXRhID1cclxuICAgICAgdGhpcy5zZXNzaW9uU3RvcmFnZS5nZXRTZXNzaW9uSXRlbTxTdG9yZWREYXRhPihTRVNTSU9OX05BTUUpIHx8IHt9O1xyXG4gICAgT2JqZWN0LnZhbHVlcyhkYXRhKS5mb3JFYWNoKChpdGVtOiBIb3RlbEF2YWxpYmlsaXR5UXVvdGVSZXN1bHQpID0+IHtcclxuICAgICAgdGhpcy5iZWhhdmlvdXJzW2l0ZW0uaG90ZWxJZF0gPVxyXG4gICAgICAgIG5ldyBCZWhhdmlvclN1YmplY3Q8SG90ZWxBdmFsaWJpbGl0eVF1b3RlUmVzdWx0PihpdGVtKTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGRhdGE7XHJcbiAgfVxyXG5cclxuICByZXNldCgpIHtcclxuICAgIHRoaXMuZGF0YSA9IHt9O1xyXG4gICAgdGhpcy5jdXJyZW5jaWVzID0ge307XHJcbiAgICB0aGlzLnNlc3Npb25TdG9yYWdlLnJlbW92ZVNlc3Npb25JdGVtKFNFU1NJT05fTkFNRSk7XHJcbiAgICBPYmplY3QudmFsdWVzKHRoaXMuZGF0YSkuZm9yRWFjaCgoaXRlbTogSG90ZWxBdmFsaWJpbGl0eVF1b3RlUmVzdWx0KSA9PiB7XHJcbiAgICAgIHRoaXMuYmVoYXZpb3Vyc1tpdGVtLmhvdGVsSWRdLmNvbXBsZXRlKCk7XHJcbiAgICAgIGRlbGV0ZSB0aGlzLmJlaGF2aW91cnNbaXRlbS5ob3RlbElkXTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5iZWhhdmlvdXJzID0ge307XHJcbiAgfVxyXG5cclxuICBnZXRBdmFpbGFiaWxpdHlGb3JJZChcclxuICAgIGhvdGVsOiBIb3RlbEF2YWxpYmlsaXR5UXVlcnlcclxuICApOiBCZWhhdmlvclN1YmplY3Q8SG90ZWxBdmFsaWJpbGl0eVF1b3RlUmVzdWx0PiB7XHJcbiAgICB0aGlzLmRhdGEgPSB0aGlzLmRhdGEgfHwgdGhpcy5yZWFkRnJvbVNlc3Npb24oKTtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIHRoaXMuYmVoYXZpb3Vyc1tob3RlbC5ob3RlbCBhcyBzdHJpbmddIHx8XHJcbiAgICAgIHRoaXMuX2dldEF2YWlsYWJpbGl0eUZvcklkKGhvdGVsKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldEF2YWlsYWJpbGl0eVZhbHVlKGhvdGVsOiBIb3RlbERldGFpbHMpOiBIb3RlbEF2YWxpYmlsaXR5UXVvdGVSZXN1bHQge1xyXG4gICAgdGhpcy5kYXRhID0gdGhpcy5kYXRhIHx8IHRoaXMucmVhZEZyb21TZXNzaW9uKCk7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICB0aGlzLmJlaGF2aW91cnNbaG90ZWwuaWQgYXMgc3RyaW5nXT8udmFsdWUgfHxcclxuICAgICAgKHt9IGFzIEhvdGVsQXZhbGliaWxpdHlRdW90ZVJlc3VsdClcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9nZXRBdmFpbGFiaWxpdHlGb3JJZChcclxuICAgIGhvdGVsOiBIb3RlbEF2YWxpYmlsaXR5UXVlcnlcclxuICApOiBCZWhhdmlvclN1YmplY3Q8SG90ZWxBdmFsaWJpbGl0eVF1b3RlUmVzdWx0PiB7XHJcbiAgICBpZiAodGhpcy50aW1lb3V0KSB7XHJcbiAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQodGhpcy50aW1lb3V0KTtcclxuICAgICAgdGhpcy50aW1lb3V0ID0gMDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIXRoaXMuZmV0Y2hpbmcudmFsdWUpIHtcclxuICAgICAgdGhpcy50aW1lb3V0ID0gd2luZG93LnNldFRpbWVvdXQoXHJcbiAgICAgICAgdGhpcy5mZXRjaEF2YWxpbGJpbGl0eS5iaW5kKHRoaXMpLFxyXG4gICAgICAgIHRoaXMuZW52aXJvbm1lbnQuYXV0b0ZldGNoSG90ZWxUaW1lb3V0XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnRvRmV0Y2gucHVzaChob3RlbCk7XHJcbiAgICBpZiAoXHJcbiAgICAgICF0aGlzLmZldGNoaW5nLnZhbHVlICYmXHJcbiAgICAgIHRoaXMudG9GZXRjaC5sZW5ndGggPj0gdGhpcy5lbnZpcm9ubWVudC5udW1iZXJPZkhvdGVsc1RvRmV0Y2hcclxuICAgICkge1xyXG4gICAgICB0aGlzLmZldGNoQXZhbGlsYmlsaXR5KCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmJlaGF2aW91cnNbaG90ZWwuaG90ZWwgYXMgc3RyaW5nXSA9XHJcbiAgICAgIG5ldyBCZWhhdmlvclN1YmplY3Q8SG90ZWxBdmFsaWJpbGl0eVF1b3RlUmVzdWx0PihudWxsKTtcclxuICAgIHJldHVybiB0aGlzLmJlaGF2aW91cnNbaG90ZWwuaG90ZWwgYXMgc3RyaW5nXTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZmV0Y2hBdmFsaWxiaWxpdHkoKSB7XHJcbiAgICB0aGlzLmZldGNoaW5nLm5leHQodHJ1ZSk7XHJcbiAgICBpZiAodGhpcy50aW1lb3V0KSB7XHJcbiAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQodGhpcy50aW1lb3V0KTtcclxuICAgICAgdGhpcy50aW1lb3V0ID0gMDtcclxuICAgIH1cclxuICAgIGNvbnN0IHRvRmV0Y2ggPSB0aGlzLnRvRmV0Y2guc2xpY2UoXHJcbiAgICAgIDAsXHJcbiAgICAgIHRoaXMuZW52aXJvbm1lbnQubnVtYmVyT2ZIb3RlbHNUb0ZldGNoXHJcbiAgICApO1xyXG4gICAgdGhpcy50b0ZldGNoID0gdGhpcy50b0ZldGNoLnNsaWNlKHRoaXMuZW52aXJvbm1lbnQubnVtYmVyT2ZIb3RlbHNUb0ZldGNoKTtcclxuXHJcbiAgICBjb25zb2xlLmxvZygnSG90ZWxzIHN0aWxsIHRvIGZldGNoJywgdGhpcy50b0ZldGNoLmxlbmd0aCk7XHJcblxyXG4gICAgY29uc3QgcXVlcnk6IFF1ZXJ5R2V0TXVsdGlwbGVIb3RlbHNBdmFpbGFiaWxpdHlBcmdzID0ge1xyXG4gICAgICBob3RlbDogdG9GZXRjaC5tYXAoKGhvdGVsKSA9PiBob3RlbC5ob3RlbCkgYXMgc3RyaW5nW10sXHJcbiAgICAgIGN1cnJlbmN5OiB0b0ZldGNoWzBdLmN1cnJlbmN5LFxyXG4gICAgICBlbmREYXRlOiB0b0ZldGNoWzBdLmVuZERhdGUsXHJcbiAgICAgIHN0YXJ0RGF0ZTogdG9GZXRjaFswXS5zdGFydERhdGUsXHJcbiAgICAgIG9jY3VwYW50czogdG9GZXRjaFswXS5vY2N1cGFudHMsXHJcbiAgICAgIHJvb21zOiB0b0ZldGNoWzBdLnJvb21zXHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMuYXZhbGliaWxpdHlGZXRoY2VyXHJcbiAgICAgIC5mZXRjaExpc3QocXVlcnkpXHJcbiAgICAgIC5waXBlKHRha2UoMSkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKGhvdGVsczogSG90ZWxBdmFsaWJpbGl0eVF1b3RlUmVzdWx0QXJyYXkpID0+IHtcclxuICAgICAgICBob3RlbHMuZm9yRWFjaCgoaG90ZWw6IEhvdGVsQXZhbGliaWxpdHlRdW90ZVJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgaG90ZWwgPSB0aGlzLmhlbHBlcnMuY2xvbmUoaG90ZWwpO1xyXG4gICAgICAgICAgaG90ZWwucm9vbXMgPSAoaG90ZWwucm9vbXMgfHwgW10pXHJcbiAgICAgICAgICAgIC5maWx0ZXIoKHJvb206IEhvdGVsUm9vbVdpdGhMb2NhbFByaWNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHJvb20udG90YWwgPiAwO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAubWFwKChyb29tOiBIb3RlbFJvb21XaXRoTG9jYWxQcmljZSkgPT4ge1xyXG4gICAgICAgICAgICAgIHJvb20gPSB0aGlzLmhlbHBlcnMuY2xvbmU8SG90ZWxSb29tV2l0aExvY2FsUHJpY2U+KHJvb20pO1xyXG4gICAgICAgICAgICAgIHJvb20uTG9jYWxQcmljZSA9IHJvb20uY3VycmVuY3lDb252ZXJzaW9uXHJcbiAgICAgICAgICAgICAgICA/IHJvb20uY3VycmVuY3lDb252ZXJzaW9uLmxvY2FsVG90YWxcclxuICAgICAgICAgICAgICAgIDogcm9vbS50b3RhbDtcclxuICAgICAgICAgICAgICByb29tLkxvY2FsQ3VycmVuY3kgPSByb29tLmN1cnJlbmN5Q29udmVyc2lvblxyXG4gICAgICAgICAgICAgICAgPyByb29tLmN1cnJlbmN5Q29udmVyc2lvbi5sb2NhbENvZGVcclxuICAgICAgICAgICAgICAgIDogcm9vbS5jdXJyZW5jeUNvZGU7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHJvb207XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgaG90ZWwuY3VycmVuY2llcyA9IGhvdGVsLnJvb21zLnJlZHVjZShcclxuICAgICAgICAgICAgKGRldGFpbHM6IEN1cnJlbmN5RGV0YWlscywgcm9vbTogSG90ZWxSb29tV2l0aExvY2FsUHJpY2UpID0+IHtcclxuICAgICAgICAgICAgICBpZiAocm9vbS5jdXJyZW5jeUNvbnZlcnNpb24pIHtcclxuICAgICAgICAgICAgICAgIGRldGFpbHNbcm9vbS5jdXJyZW5jeUNvbnZlcnNpb24uY29udmVydGVkQ29kZV0gPSBkZXRhaWxzW1xyXG4gICAgICAgICAgICAgICAgICByb29tLmN1cnJlbmN5Q29udmVyc2lvbi5jb252ZXJ0ZWRDb2RlXHJcbiAgICAgICAgICAgICAgICBdIHx8IHtcclxuICAgICAgICAgICAgICAgICAgbWF4cHJpY2U6IE51bWJlci5NSU5fVkFMVUUsXHJcbiAgICAgICAgICAgICAgICAgIG1pbnByaWNlOiBOdW1iZXIuTUFYX1ZBTFVFXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgZGV0YWlsc1tyb29tLmN1cnJlbmN5Q29udmVyc2lvbi5jb252ZXJ0ZWRDb2RlXS5tYXhwcmljZSA9XHJcbiAgICAgICAgICAgICAgICAgIE1hdGgubWF4KFxyXG4gICAgICAgICAgICAgICAgICAgIGRldGFpbHNbcm9vbS5jdXJyZW5jeUNvbnZlcnNpb24uY29udmVydGVkQ29kZV0ubWF4cHJpY2UsXHJcbiAgICAgICAgICAgICAgICAgICAgcm9vbS5jdXJyZW5jeUNvbnZlcnNpb24uY29udmVydGVkVG90YWxcclxuICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIGRldGFpbHNbcm9vbS5jdXJyZW5jeUNvbnZlcnNpb24uY29udmVydGVkQ29kZV0ubWlucHJpY2UgPVxyXG4gICAgICAgICAgICAgICAgICBNYXRoLm1pbihcclxuICAgICAgICAgICAgICAgICAgICBkZXRhaWxzW3Jvb20uY3VycmVuY3lDb252ZXJzaW9uLmNvbnZlcnRlZENvZGVdLm1pbnByaWNlLFxyXG4gICAgICAgICAgICAgICAgICAgIHJvb20uY3VycmVuY3lDb252ZXJzaW9uLmNvbnZlcnRlZFRvdGFsXHJcbiAgICAgICAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW5jaWVzW3Jvb20uY3VycmVuY3lDb252ZXJzaW9uLmNvbnZlcnRlZENvZGVdID0gdGhpc1xyXG4gICAgICAgICAgICAgICAgICAuY3VycmVuY2llc1tyb29tLmN1cnJlbmN5Q29udmVyc2lvbi5jb252ZXJ0ZWRDb2RlXSB8fCB7XHJcbiAgICAgICAgICAgICAgICAgIG1heHByaWNlOiBOdW1iZXIuTUlOX1ZBTFVFLFxyXG4gICAgICAgICAgICAgICAgICBtaW5wcmljZTogTnVtYmVyLk1BWF9WQUxVRVxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVuY2llc1tcclxuICAgICAgICAgICAgICAgICAgcm9vbS5jdXJyZW5jeUNvbnZlcnNpb24uY29udmVydGVkQ29kZVxyXG4gICAgICAgICAgICAgICAgXS5taW5wcmljZSA9IE1hdGguY2VpbChcclxuICAgICAgICAgICAgICAgICAgTWF0aC5taW4oXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW5jaWVzW3Jvb20uY3VycmVuY3lDb252ZXJzaW9uLmNvbnZlcnRlZENvZGVdXHJcbiAgICAgICAgICAgICAgICAgICAgICAubWlucHJpY2UsXHJcbiAgICAgICAgICAgICAgICAgICAgcm9vbS5jdXJyZW5jeUNvbnZlcnNpb24uY29udmVydGVkVG90YWxcclxuICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVuY2llc1tcclxuICAgICAgICAgICAgICAgICAgcm9vbS5jdXJyZW5jeUNvbnZlcnNpb24uY29udmVydGVkQ29kZVxyXG4gICAgICAgICAgICAgICAgXS5tYXhwcmljZSA9IE1hdGguY2VpbChcclxuICAgICAgICAgICAgICAgICAgTWF0aC5tYXgoXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW5jaWVzW3Jvb20uY3VycmVuY3lDb252ZXJzaW9uLmNvbnZlcnRlZENvZGVdXHJcbiAgICAgICAgICAgICAgICAgICAgICAubWF4cHJpY2UsXHJcbiAgICAgICAgICAgICAgICAgICAgcm9vbS5jdXJyZW5jeUNvbnZlcnNpb24uY29udmVydGVkVG90YWxcclxuICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgcmV0dXJuIGRldGFpbHM7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHt9IGFzIEN1cnJlbmN5RGV0YWlsc1xyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIGNvbnN0IHJvb21QcmljZXMgPSBob3RlbC5yb29tcy5tYXAoXHJcbiAgICAgICAgICAgIHRoaXMuaGVscGVycy5tYXBGaWVsZEZyb21PYmplY3Q8c3RyaW5nLCBudW1iZXI+KCd0b3RhbCcpXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgaWYgKCFyb29tUHJpY2VzLmxlbmd0aCkgcm9vbVByaWNlcy5wdXNoKDApO1xyXG4gICAgICAgICAgaG90ZWwubWlucHJpY2UgPSBNYXRoLm1pbiguLi5yb29tUHJpY2VzKTtcclxuICAgICAgICAgIGhvdGVsLm1heHByaWNlID0gTWF0aC5tYXgoLi4ucm9vbVByaWNlcyk7XHJcblxyXG4gICAgICAgICAgaG90ZWwucm9vbXMgPSBob3RlbC5yb29tcztcclxuICAgICAgICAgIGlmIChob3RlbD8uaG90ZWxJZCkge1xyXG4gICAgICAgICAgICB0aGlzLmRhdGFbaG90ZWwuaG90ZWxJZF0gPSBob3RlbDtcclxuICAgICAgICAgICAgdGhpcy5iZWhhdmlvdXJzW2hvdGVsLmhvdGVsSWRdLm5leHQoaG90ZWwpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICAvLyB0aGlzLnNlc3Npb25TdG9yYWdlLnNldFNlc3Npb25JdGVtKFNFU1NJT05fTkFNRSwgdGhpcy5kYXRhKTtcclxuICAgICAgICB0aGlzLnNlc3Npb25TdG9yYWdlLnNldFNlc3Npb25JdGVtKFNFU1NJT05fTkFNRSwgaG90ZWxzKTtcclxuICAgICAgICBpZiAodGhpcy50b0ZldGNoLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmZldGNoQXZhbGlsYmlsaXR5KCk7XHJcbiAgICAgICAgICB9LCB0aGlzLmVudmlyb25tZW50LmhvdGVsQXZhbGliaWxpdHlUaW1lb3V0KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5mZXRjaGluZy5uZXh0KGZhbHNlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbWF4UHJpY2VGb3JDdXJyZW5jeShjdXJyZW5jeTogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICB0aGlzLmN1cnJlbmNpZXNbY3VycmVuY3ldIHx8IHtcclxuICAgICAgICBtYXhwcmljZTogTnVtYmVyLk1BWF9WQUxVRSxcclxuICAgICAgICBtaW5wcmljZTogTnVtYmVyLk1JTl9WQUxVRVxyXG4gICAgICB9XHJcbiAgICApLm1heHByaWNlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGRlc2NyaXB0aW9uIC0gcmV0dXJuIHRoZSBudW1iZXIgb2YgaG90ZWxzIHRoYXQgaGF2ZSBhIHByaWNlIChwcnBuIHZhbHVlKVxyXG4gICAqL1xyXG4gIG51bWJlck9mSG90ZWxzV2l0aFByaWNlKCk6IG51bWJlciB7XHJcbiAgICBsZXQgY291bnQgPSAwO1xyXG4gICAgaWYgKHRoaXMuZGF0YSkge1xyXG4gICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyh0aGlzLmRhdGEpKSB7XHJcbiAgICAgICAgaWYgKHZhbHVlPy5wcnBuKSB7XHJcbiAgICAgICAgICBjb3VudCsrO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGNvdW50O1xyXG4gIH1cclxuXHJcbn1cclxuIl19
@@ -0,0 +1,16 @@
1
+ export class AbstractHttpCallService {
2
+ /*
3
+ * Using the keys of the given object as parameter names create a parameter string url encoding the values.
4
+ * The function expects the values to be strings.
5
+ * @param obj
6
+ */
7
+ serialize(obj) {
8
+ return Object.keys(obj).reduce((toReturn, key) => {
9
+ return ((toReturn.length ? toReturn + '&' : '') +
10
+ key +
11
+ '=' +
12
+ encodeURIComponent(typeof obj[key] === 'object' ? JSON.stringify(obj[key]) : obj[key]));
13
+ }, '');
14
+ }
15
+ }
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1jYWxsLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vYnRzZXJ2aWNlcy9iYXNlL3NyYy9saWIvdmVuZG9yL3NlcnZpY2VzL2h0dHAtY2FsbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sT0FBZ0IsdUJBQXVCO0lBaUMzQzs7OztPQUlHO0lBQ0ksU0FBUyxDQUFDLEdBQThCO1FBQzdDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFnQixFQUFFLEdBQVcsRUFBRSxFQUFFO1lBQy9ELE9BQU8sQ0FDTCxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDdkMsR0FBRztnQkFDSCxHQUFHO2dCQUNILGtCQUFrQixDQUNoQixPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FDbkUsQ0FDRixDQUFDO1FBQ0osQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ1QsQ0FBQztDQUlGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBVUkxTIH0gZnJvbSAnLi91cmwuc2VydmljZSc7XHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RIdHRwQ2FsbFNlcnZpY2Uge1xyXG4gIGFic3RyYWN0IGZvcm1FbmNvZGVkUG9zdCh1cmw6IFVSTFMsIGJvZHk/OiBhbnksIHJlc3BvbnNlVHlwZT86ICdqc29uJyB8ICd0ZXh0Jyk6IE9ic2VydmFibGU8YW55PjtcclxuXHJcbiAgYWJzdHJhY3QgdGltZW91dEZvcm1FbmNvZGVkUG9zdChcclxuICAgIHVybDogVVJMUyxcclxuICAgIGJvZHk/OiBhbnksXHJcbiAgICByZVRpbWVvdXQ/OiBudW1iZXJcclxuICApOiBPYnNlcnZhYmxlPGFueT47XHJcblxyXG4gIGFic3RyYWN0IGZvcm1FbmNvZGVkUG9zdE5vRXJyb3JIYW5kbGluZyhcclxuICAgIHVybDogVVJMUyxcclxuICAgIGJvZHk/OiBhbnlcclxuICApOiBPYnNlcnZhYmxlPGFueT47XHJcblxyXG4gIC8qXHJcblx0XHRAZGVzYyAtIGNhbGwgYSB1cmwgdGhyb3VnaCBwb3N0LCB3aXRoIGEgSnNvbiBPYmplY3QgYXMgZGF0YSAoYW5ndWxhciBkZWZhdWx0KVxyXG5cdCoqL1xyXG4gIGFic3RyYWN0IHBvc3QodXJsOiBVUkxTLCBkYXRhPzogYW55KTogT2JzZXJ2YWJsZTxhbnk+O1xyXG4gIC8qXHJcblx0XHRAZGVzYyAtIGNhbGwgYSBBbmd1bGFyIHN0YW5kYXJkIGdldCByZXF1ZXN0IChhcHBsaWNhdGlvbi9qc29uIGhlYWRlcnMpXHJcblx0KiovXHJcbiAgYWJzdHJhY3QgZ2V0KHVybDogVVJMUywgcGFyYW1zPzogYW55KTogT2JzZXJ2YWJsZTxhbnk+O1xyXG5cclxuICAvKlxyXG5cdFx0QGRlc2MgLSB0aGlzIHdpbGwgZGV0ZXJtaW5lIGlmIHRoZXJlIGlzIGEgbG9naW4gZXJyb3IgZm9yIHRoZSByZXF1ZXN0IG9yIG5vdCwgc2luY2UgdGhpcyBpcyBhIHBvdGVudGlhbCBlcnJvciBmb3IgZXZlcnkgY2FsbFxyXG5cdCoqL1xyXG4gIGFic3RyYWN0IGhhbmRsZVJlc3BvbnNlKGRhdGE6IGFueSk6IGFueTtcclxuICBhYnN0cmFjdCByZXNldExvZ291dCgpOiB2b2lkO1xyXG4gIC8qXHJcblx0XHRAZGVzYyAtIGhhbmRsZSBhbnkgZmF0YWwgZXJyb3JzIDQwNCdzIDUwMCdzIG90aGVyIGdlbmVyaWMgaHR0cCBlcnJvcnNcclxuXHQqKi9cclxuICBhYnN0cmFjdCBoYW5kbGVFcnJvcihlcnJvclZhbDogYW55LCBza2lwVGltZW91dE1lc3NhZ2U/OiBib29sZWFuKTogYW55O1xyXG5cclxuICAvKlxyXG4gICAqIFVzaW5nIHRoZSBrZXlzIG9mIHRoZSBnaXZlbiBvYmplY3QgYXMgcGFyYW1ldGVyIG5hbWVzIGNyZWF0ZSBhIHBhcmFtZXRlciBzdHJpbmcgdXJsIGVuY29kaW5nIHRoZSB2YWx1ZXMuXHJcbiAgICogVGhlIGZ1bmN0aW9uIGV4cGVjdHMgdGhlIHZhbHVlcyB0byBiZSBzdHJpbmdzLlxyXG4gICAqIEBwYXJhbSBvYmpcclxuICAgKi9cclxuICBwdWJsaWMgc2VyaWFsaXplKG9iajogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gT2JqZWN0LmtleXMob2JqKS5yZWR1Y2UoKHRvUmV0dXJuOiBzdHJpbmcsIGtleTogc3RyaW5nKSA9PiB7XHJcbiAgICAgIHJldHVybiAoXHJcbiAgICAgICAgKHRvUmV0dXJuLmxlbmd0aCA/IHRvUmV0dXJuICsgJyYnIDogJycpICtcclxuICAgICAgICBrZXkgK1xyXG4gICAgICAgICc9JyArXHJcbiAgICAgICAgZW5jb2RlVVJJQ29tcG9uZW50KFxyXG4gICAgICAgICAgdHlwZW9mIG9ialtrZXldID09PSAnb2JqZWN0JyA/IEpTT04uc3RyaW5naWZ5KG9ialtrZXldKSA6IG9ialtrZXldXHJcbiAgICAgICAgKVxyXG4gICAgICApO1xyXG4gICAgfSwgJycpO1xyXG4gIH1cclxuXHJcbiAgYWJzdHJhY3QgZ2V0SGVhZGVycygpOiBhbnk7XHJcbiAgYWJzdHJhY3QgbWFrZVVybCh1cmw6IFVSTFMpOiBzdHJpbmc7XHJcbn1cclxuIl19
@@ -0,0 +1,177 @@
1
+ import { USER_SIGNEDOUT } from './user.service';
2
+ import { map, take } from 'rxjs/operators';
3
+ import { URLS } from './url.service';
4
+ import { UserFavorurite } from '../classes/user-favourite.enum';
5
+ import { of } from 'rxjs';
6
+ import { ModalTypes } from '../classes/modal-types.enum';
7
+ export class BaseLogonService {
8
+ constructor(userService, modalService, http, router, eventMessenager, storageService, environment) {
9
+ this.userService = userService;
10
+ this.modalService = modalService;
11
+ this.http = http;
12
+ this.router = router;
13
+ this.eventMessenager = eventMessenager;
14
+ this.storageService = storageService;
15
+ this.environment = environment;
16
+ this.loading = false;
17
+ this.isLoggedIn = false;
18
+ this.redirectUrl = '';
19
+ this.refreshPromise = null;
20
+ }
21
+ checkLogin() {
22
+ return this.refreshToken();
23
+ }
24
+ refreshToken() {
25
+ this.refreshPromise =
26
+ this.refreshPromise ||
27
+ new Promise((resolve, reject) => {
28
+ this.clearRefresh();
29
+ this.http
30
+ .formEncodedPostNoErrorHandling(URLS.Refresh, {})
31
+ .pipe(take(1), map((data) => {
32
+ return this.handleResponse(data);
33
+ }))
34
+ .subscribe((data) => {
35
+ if (typeof data === 'string') {
36
+ resolve(false);
37
+ if (this.router.url !== 'login') {
38
+ const logoutDialog = this.modalService
39
+ .open(ModalTypes.BaseModalComponent, {}, {
40
+ title: 'Auto Logout',
41
+ body: '',
42
+ isLoading: false,
43
+ options: {
44
+ buttonCancel: false,
45
+ buttonOk: true,
46
+ buttonOkText: 'Continue'
47
+ }
48
+ })
49
+ .then(() => {
50
+ this.logout();
51
+ resolve(false);
52
+ });
53
+ }
54
+ }
55
+ else {
56
+ resolve(true);
57
+ this.setRefresh();
58
+ }
59
+ }, (error) => {
60
+ resolve(false);
61
+ });
62
+ })
63
+ .then((data) => {
64
+ this.refreshPromise = null;
65
+ return data;
66
+ })
67
+ .catch((error) => {
68
+ this.refreshPromise = null;
69
+ throw error;
70
+ });
71
+ return this.refreshPromise;
72
+ }
73
+ clearRefresh() {
74
+ if (this.timeoutSubscription) {
75
+ clearTimeout(this.timeoutSubscription);
76
+ this.timeoutSubscription = null;
77
+ }
78
+ }
79
+ setRefresh() {
80
+ this.timeoutSubscription = window.setTimeout(this.refreshToken.bind(this), this.environment.authRefreshTimeout * 1000);
81
+ }
82
+ login(username, password, again) {
83
+ this.userService.emptyUserData();
84
+ this.storageService.clearSessionData();
85
+ this.clearRefresh();
86
+ return this.http
87
+ .formEncodedPostNoErrorHandling(URLS.AccessToken, {
88
+ username,
89
+ password
90
+ })
91
+ .pipe(take(1), map((value, index) => {
92
+ this.setRefresh();
93
+ return this.handleResponse(value);
94
+ }));
95
+ }
96
+ /*
97
+ @desc - this will determine if there is a login error for the request or not, since this is a potential error for every call
98
+ **/
99
+ handleResponse(data) {
100
+ if (typeof data === 'object' && data.jwt) {
101
+ this.userService.setUser(data.jwtObject);
102
+ delete data.jwt;
103
+ delete data.jwtObject;
104
+ }
105
+ return data;
106
+ }
107
+ cookieLogin(username) {
108
+ // const sso = sessionStorage.getItem('sso_query');
109
+ /*
110
+ this.userService.emptyUserData();
111
+ this.userService.setUserAgent(username);
112
+ sessionStorage.setItem('sso_query', sso);
113
+ this.authInfo = new AuthInfo(username, '', false);*/
114
+ // return this.http.get(URLS.NUMBER_ONCE_TOKEN_URL);
115
+ return of(null);
116
+ }
117
+ logout() {
118
+ const isSSO = this.userService.isUserFavoriteSet(UserFavorurite.SSO_no_password);
119
+ this.clearRefresh();
120
+ this.isLoggedIn = false;
121
+ this.userService.emptyUserData();
122
+ this.storageService.clearSessionData();
123
+ this.http.post(URLS.LOGOUT_URL).subscribe((data) => {
124
+ if (!data.LogoutSuccess) {
125
+ // tslint:disable-next-line: quotemark
126
+ console.warn("You're not logged in, cannot log out.");
127
+ }
128
+ }, () => {
129
+ this.eventMessenager.emit(USER_SIGNEDOUT, {});
130
+ if (this.userService.isUserFavoriteSet(UserFavorurite.SSO_no_password)) {
131
+ this.router.navigate(['logOutDigitsUser']);
132
+ }
133
+ else {
134
+ this.router.navigate(['logon']);
135
+ }
136
+ });
137
+ }
138
+ changePassword(authInfo) {
139
+ // return this.http
140
+ // .formEncodedPost(URLS.CHANGE_PASSWORD, authInfo.getChangePassTokenStr())
141
+ // .pipe(
142
+ // map((res: PasswordChangeResponse) => {
143
+ // if (res.success) {
144
+ // return res;
145
+ // } else {
146
+ // throw new LoginError(LoginErrorReason.PASSWORD_CHANGE, res);
147
+ // }
148
+ // })
149
+ // );
150
+ return of(null);
151
+ }
152
+ resetPassword(passwordResetToken, newPassword) {
153
+ return this.http.formEncodedPost(URLS.RESET_PASSWORD, {
154
+ passwordResetToken,
155
+ newPassword
156
+ });
157
+ }
158
+ /*
159
+ @desc - actaually call the backend perl for recover pass
160
+ **/
161
+ recoverPassword(username) {
162
+ return this.http.formEncodedPost(URLS.RECOVER_PASSWORD_URL, {
163
+ username: `${username}`,
164
+ }, 'text');
165
+ }
166
+ /*
167
+ * @desc - error handling, opens a modal with the passed in error message
168
+ **/
169
+ handleError(error) {
170
+ // this.userService.becomingUser = false;
171
+ const modalValues = {
172
+ error
173
+ };
174
+ this.modalService.open(ModalTypes.ModalErrorComponent, {}, modalValues);
175
+ }
176
+ }
177
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29idHNlcnZpY2VzL2Jhc2Uvc3JjL2xpYi92ZW5kb3Ivc2VydmljZXMvbG9nb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUkzQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRSxPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR3RDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQVd6RCxNQUFNLE9BQU8sZ0JBQWdCO0lBUzNCLFlBQ1UsV0FBaUMsRUFDakMsWUFBb0MsRUFDcEMsSUFBNkIsRUFDN0IsTUFBYyxFQUNkLGVBQW9DLEVBQ3BDLGNBQWtDLEVBQ2xDLFdBQTRCO1FBTjVCLGdCQUFXLEdBQVgsV0FBVyxDQUFzQjtRQUNqQyxpQkFBWSxHQUFaLFlBQVksQ0FBd0I7UUFDcEMsU0FBSSxHQUFKLElBQUksQ0FBeUI7UUFDN0IsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLG9CQUFlLEdBQWYsZUFBZSxDQUFxQjtRQUNwQyxtQkFBYyxHQUFkLGNBQWMsQ0FBb0I7UUFDbEMsZ0JBQVcsR0FBWCxXQUFXLENBQWlCO1FBZnRDLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUlqQixtQkFBYyxHQUFxQixJQUFJLENBQUM7SUFVckMsQ0FBQztJQUVKLFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQyxZQUFZLEVB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SSxDQUFDLGVBQWUsQ0FDOUIsSUFBSSxDQUFDLG9CQUFvQixFQUN6QjtZQUNFLFFBQVEsRUFBQyxHQUFHLFFBQVEsRUFBRTtTQUN2QixFQUNELE1BQU0sQ0FDUCxDQUFBO0lBQ0gsQ0FBQztJQUVEOztRQUVJO0lBQ0osV0FBVyxDQUFDLEtBQWE7UUFDdkIseUNBQXlDO1FBQ3pDLE1BQU0sV0FBVyxHQUFHO1lBQ2xCLEtBQUs7U0FDTixDQUFDO1FBQ0YsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLG1CQUFtQixFQUFFLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUMxRSxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBVU0VSX1NJR05FRE9VVCB9IGZyb20gJy4vdXNlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgbWFwLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBCYXNlTW9kYWxPcGVuZXJTZXJ2aWNlIH0gZnJvbSAnLi9tb2RhbC1vcGVuZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IEJhc2VTdG9yYWdlU2VydmljZSB9IGZyb20gJy4vc3RvcmFnZS5zZXJ2aWNlJztcclxuXHJcbmltcG9ydCB7IFVSTFMgfSBmcm9tICcuL3VybC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVXNlckZhdm9ydXJpdGUgfSBmcm9tICcuLi9jbGFzc2VzL3VzZXItZmF2b3VyaXRlLmVudW0nO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBCYXNlRXZlbnRNZXNzZW5hZ2VyIH0gZnJvbSAnLi4vY2xhc3Nlcy9ldmVudC1tZXNzZW5hZ2VyJztcclxuaW1wb3J0IHsgQmFzZUVudmlyb25tZW50IH0gZnJvbSAnLi4vY2xhc3Nlcy9lbnZpcm9tZW50JztcclxuaW1wb3J0IHsgTW9kYWxUeXBlcyB9IGZyb20gJy4uL2NsYXNzZXMvbW9kYWwtdHlwZXMuZW51bSc7XHJcbmltcG9ydCB7IFVzZXJEYXRhIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy91c2VyLmRhdGEnO1xyXG5pbXBvcnQge1xyXG4gIEF1dGhJbmZvLFxyXG4gIExvZ2luUmVzcG9uc2UsXHJcbiAgUGFzc3dvcmRDaGFuZ2VSZXNwb25zZVxyXG59IGZyb20gJy4uL21vZGVscy9sb2dpbi5tb2RlbCc7XHJcbmltcG9ydCB7IFVzZXJTZXJ2aWNlSW50ZXJmYWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9JdXNlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RIdHRwQ2FsbFNlcnZpY2UgfSBmcm9tICcuL2h0dHAtY2FsbC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnLi4vdHlwZXMvdHlwZXMnO1xyXG5cclxuZXhwb3J0IGNsYXNzIEJhc2VMb2dvblNlcnZpY2Uge1xyXG4gIGxvYWRpbmcgPSBmYWxzZTtcclxuICBpc0xvZ2dlZEluID0gZmFsc2U7XHJcbiAgcmVkaXJlY3RVcmwgPSAnJztcclxuICBhdXRoSW5mbzogQXV0aEluZm87XHJcbiAgbG9naW5SZXNwb25zZTogTG9naW5SZXNwb25zZTtcclxuICB0aW1lb3V0U3Vic2NyaXB0aW9uOiBudW1iZXI7XHJcbiAgcmVmcmVzaFByb21pc2U6IFByb21pc2U8Ym9vbGVhbj4gPSBudWxsO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlSW50ZXJmYWNlLFxyXG4gICAgcHJpdmF0ZSBtb2RhbFNlcnZpY2U6IEJhc2VNb2RhbE9wZW5lclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGh0dHA6IEFic3RyYWN0SHR0cENhbGxTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgZXZlbnRNZXNzZW5hZ2VyOiBCYXNlRXZlbnRNZXNzZW5hZ2VyLFxyXG4gICAgcHJpdmF0ZSBzdG9yYWdlU2VydmljZTogQmFzZVN0b3JhZ2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBlbnZpcm9ubWVudDogQmFzZUVudmlyb25tZW50XHJcbiAgKSB7fVxyXG5cclxuICBjaGVja0xvZ2luKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG4gICAgcmV0dXJuIHRoaXMucmVmcmVzaFRva2VuKCk7XHJcbiAgfVxyXG5cclxuICByZWZyZXNoVG9rZW4oKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICB0aGlzLnJlZnJlc2hQcm9taXNlID1cclxuICAgICAgdGhpcy5yZWZyZXNoUHJvbWlzZSB8fFxyXG4gICAgICBuZXcgUHJvbWlzZShcclxuICAgICAgICAocmVzb2x2ZTogKHZhbHVlOiBib29sZWFuKSA9PiB2b2lkLCByZWplY3Q6IChlcnJvcjogYW55KSA9PiB2b2lkKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmNsZWFyUmVmcmVzaCgpO1xyXG4gICAgICAgICAgdGhpcy5odHRwXHJcbiAgICAgICAgICAgIC5mb3JtRW5jb2RlZFBvc3ROb0Vycm9ySGFuZGxpbmcoVVJMUy5SZWZyZXNoLCB7fSlcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgdGFrZSgxKSxcclxuICAgICAgICAgICAgICBtYXAoKGRhdGEpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmhhbmRsZVJlc3BvbnNlKGRhdGEpO1xyXG4gICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAgICAgICAoZGF0YSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBkYXRhID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgICAgICAgICByZXNvbHZlKGZhbHNlKTtcclxuICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucm91dGVyLnVybCAhPT0gJ2xvZ2luJykge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGxvZ291dERpYWxvZyA9IHRoaXMubW9kYWxTZXJ2aWNlXHJcbiAgICAgICAgICAgICAgICAgICAgICAub3BlbihcclxuICAgICAgICAgICAgICAgICAgICAgICAgTW9kYWxUeXBlcy5CYXNlTW9kYWxDb21wb25lbnQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICdBdXRvIExvZ291dCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYm9keTogJycsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBidXR0b25DYW5jZWw6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnV0dG9uT2s6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBidXR0b25Pa1RleHQ6ICdDb250aW51ZSdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2dvdXQoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgcmVzb2x2ZSh0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5zZXRSZWZyZXNoKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAoZXJyb3IpID0+IHtcclxuICAgICAgICAgICAgICAgIHJlc29sdmUoZmFsc2UpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICAgIClcclxuICAgICAgICAudGhlbigoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnJlZnJlc2hQcm9taXNlID0gbnVsbDtcclxuICAgICAgICAgIHJldHVybiBkYXRhO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChlcnJvcjogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnJlZnJlc2hQcm9taXNlID0gbnVsbDtcclxuICAgICAgICAgIHRocm93IGVycm9yO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgIHJldHVybiB0aGlzLnJlZnJlc2hQcm9taXNlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjbGVhclJlZnJlc2goKSB7XHJcbiAgICBpZiAodGhpcy50aW1lb3V0U3Vic2NyaXB0aW9uKSB7XHJcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVvdXRTdWJzY3JpcHRpb24pO1xyXG4gICAgICB0aGlzLnRpbWVvdXRTdWJzY3JpcHRpb24gPSBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRSZWZyZXNoKCkge1xyXG4gICAgdGhpcy50aW1lb3V0U3Vic2NyaXB0aW9uID0gd2luZG93LnNldFRpbWVvdXQoXHJcbiAgICAgIHRoaXMucmVmcmVzaFRva2VuLmJpbmQodGhpcyksXHJcbiAgICAgIHRoaXMuZW52aXJvbm1lbnQuYXV0aFJlZnJlc2hUaW1lb3V0ICogMTAwMFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGxvZ2luKFxyXG4gICAgdXNlcm5hbWU6IHN0cmluZyxcclxuICAgIHBhc3N3b3JkOiBzdHJpbmcsXHJcbiAgICBhZ2Fpbj86IGJvb2xlYW5cclxuICApOiBPYnNlcnZhYmxlPFVzZXJEYXRhPiB7XHJcbiAgICB0aGlzLnVzZXJTZXJ2aWNlLmVtcHR5VXNlckRhdGEoKTtcclxuXHJcbiAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmNsZWFyU2Vzc2lvbkRhdGEoKTtcclxuICAgIHRoaXMuY2xlYXJSZWZyZXNoKCk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5mb3JtRW5jb2RlZFBvc3ROb0Vycm9ySGFuZGxpbmcoVVJMUy5BY2Nlc3NUb2tlbiwge1xyXG4gICAgICAgIHVzZXJuYW1lLFxyXG4gICAgICAgIHBhc3N3b3JkXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHRha2UoMSksXHJcbiAgICAgICAgbWFwKCh2YWx1ZTogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnNldFJlZnJlc2goKTtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmhhbmRsZVJlc3BvbnNlKHZhbHVlKTtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgLypcclxuXHRcdEBkZXNjIC0gdGhpcyB3aWxsIGRldGVybWluZSBpZiB0aGVyZSBpcyBhIGxvZ2luIGVycm9yIGZvciB0aGUgcmVxdWVzdCBvciBub3QsIHNpbmNlIHRoaXMgaXMgYSBwb3RlbnRpYWwgZXJyb3IgZm9yIGV2ZXJ5IGNhbGxcclxuXHQqKi9cclxuICBoYW5kbGVSZXNwb25zZShkYXRhOiBhbnkpOiBhbnkge1xyXG4gICAgaWYgKHR5cGVvZiBkYXRhID09PSAnb2JqZWN0JyAmJiBkYXRhLmp3dCkge1xyXG4gICAgICB0aGlzLnVzZXJTZXJ2aWNlLnNldFVzZXIoZGF0YS5qd3RPYmplY3QpO1xyXG4gICAgICBkZWxldGUgZGF0YS5qd3Q7XHJcbiAgICAgIGRlbGV0ZSBkYXRhLmp3dE9iamVjdDtcclxuICAgIH1cclxuICAgIHJldHVybiBkYXRhO1xyXG4gIH1cclxuXHJcbiAgY29va2llTG9naW4odXNlcm5hbWU6IHN0cmluZyk6IE9ic2VydmFibGU8VXNlckRhdGE+IHtcclxuICAgIC8vIGNvbnN0IHNzbyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ3Nzb19xdWVyeScpO1xyXG4gICAgLypcclxuICAgIHRoaXMudXNlclNlcnZpY2UuZW1wdHlVc2VyRGF0YSgpO1xyXG4gICAgdGhpcy51c2VyU2VydmljZS5zZXRVc2VyQWdlbnQodXNlcm5hbWUpO1xyXG4gICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnc3NvX3F1ZXJ5Jywgc3NvKTtcclxuICAgIHRoaXMuYXV0aEluZm8gPSBuZXcgQXV0aEluZm8odXNlcm5hbWUsICcnLCBmYWxzZSk7Ki9cclxuICAgIC8vIHJldHVybiB0aGlzLmh0dHAuZ2V0KFVSTFMuTlVNQkVSX09OQ0VfVE9LRU5fVVJMKTtcclxuICAgIHJldHVybiBvZihudWxsKTtcclxuICB9XHJcblxyXG4gIGxvZ291dCgpIHtcclxuICAgIGNvbnN0IGlzU1NPID0gdGhpcy51c2VyU2VydmljZS5pc1VzZXJGYXZvcml0ZVNldChcclxuICAgICAgVXNlckZhdm9ydXJpdGUuU1NPX25vX3Bhc3N3b3JkXHJcbiAgICApO1xyXG4gICAgdGhpcy5jbGVhclJlZnJlc2goKTtcclxuICAgIHRoaXMuaXNMb2dnZWRJbiA9IGZhbHNlO1xyXG4gICAgdGhpcy51c2VyU2VydmljZS5lbXB0eVVzZXJEYXRhKCk7XHJcblxyXG4gICAgdGhpcy5zdG9yYWdlU2VydmljZS5jbGVhclNlc3Npb25EYXRhKCk7XHJcbiAgICB0aGlzLmh0dHAucG9zdChVUkxTLkxPR09VVF9VUkwpLnN1YnNjcmliZShcclxuICAgICAgKGRhdGEpID0+IHtcclxuICAgICAgICBpZiAoIWRhdGEuTG9nb3V0U3VjY2Vzcykge1xyXG4gICAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBxdW90ZW1hcmtcclxuICAgICAgICAgIGNvbnNvbGUud2FybihcIllvdSdyZSBub3QgbG9nZ2VkIGluLCBjYW5ub3QgbG9nIG91dC5cIik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5ldmVudE1lc3NlbmFnZXIuZW1pdChVU0VSX1NJR05FRE9VVCwge30pO1xyXG5cclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICB0aGlzLnVzZXJTZXJ2aWNlLmlzVXNlckZhdm9yaXRlU2V0KFVzZXJGYXZvcnVyaXRlLlNTT19ub19wYXNzd29yZClcclxuICAgICAgICApIHtcclxuICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnbG9nT3V0RGlnaXRzVXNlciddKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWydsb2dvbiddKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBjaGFuZ2VQYXNzd29yZChhdXRoSW5mbzogQXV0aEluZm8pOiBPYnNlcnZhYmxlPFBhc3N3b3JkQ2hhbmdlUmVzcG9uc2U+IHtcclxuICAgIC8vIHJldHVybiB0aGlzLmh0dHBcclxuICAgIC8vICAgLmZvcm1FbmNvZGVkUG9zdChVUkxTLkNIQU5HRV9QQVNTV09SRCwgYXV0aEluZm8uZ2V0Q2hhbmdlUGFzc1Rva2VuU3RyKCkpXHJcbiAgICAvLyAgIC5waXBlKFxyXG4gICAgLy8gICAgIG1hcCgocmVzOiBQYXNzd29yZENoYW5nZVJlc3BvbnNlKSA9PiB7XHJcbiAgICAvLyAgICAgICBpZiAocmVzLnN1Y2Nlc3MpIHtcclxuICAgIC8vICAgICAgICAgcmV0dXJuIHJlcztcclxuICAgIC8vICAgICAgIH0gZWxzZSB7XHJcbiAgICAvLyAgICAgICAgIHRocm93IG5ldyBMb2dpbkVycm9yKExvZ2luRXJyb3JSZWFzb24uUEFTU1dPUkRfQ0hBTkdFLCByZXMpO1xyXG4gICAgLy8gICAgICAgfVxyXG4gICAgLy8gICAgIH0pXHJcbiAgICAvLyAgICk7XHJcbiAgICByZXR1cm4gb2YobnVsbCk7XHJcbiAgfVxyXG5cclxuICByZXNldFBhc3N3b3JkKHBhc3N3b3JkUmVzZXRUb2tlbjogc3RyaW5nLCBuZXdQYXNzd29yZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxQYXNzd29yZENoYW5nZVJlc3BvbnNlPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmZvcm1FbmNvZGVkUG9zdChcclxuICAgICAgVVJMUy5SRVNFVF9QQVNTV09SRCxcclxuICAgICAge1xyXG4gICAgICAgIHBhc3N3b3JkUmVzZXRUb2tlbixcclxuICAgICAgICBuZXdQYXNzd29yZFxyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLypcclxuXHRcdEBkZXNjIC0gYWN0YXVhbGx5IGNhbGwgdGhlIGJhY2tlbmQgcGVybCBmb3IgcmVjb3ZlciBwYXNzXHJcblx0KiovXHJcbiAgcmVjb3ZlclBhc3N3b3JkKHVzZXJuYW1lOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5mb3JtRW5jb2RlZFBvc3QoXHJcbiAgICAgIFVSTFMuUkVDT1ZFUl9QQVNTV09SRF9VUkwsXHJcbiAgICAgIHtcclxuICAgICAgICB1c2VybmFtZTpgJHt1c2VybmFtZX1gLFxyXG4gICAgICB9LFxyXG4gICAgICAndGV4dCdcclxuICAgIClcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgICpcdEBkZXNjIC0gZXJyb3IgaGFuZGxpbmcsIG9wZW5zIGEgbW9kYWwgd2l0aCB0aGUgcGFzc2VkIGluIGVycm9yIG1lc3NhZ2VcclxuICAgKiovXHJcbiAgaGFuZGxlRXJyb3IoZXJyb3I6IHN0cmluZykge1xyXG4gICAgLy8gdGhpcy51c2VyU2VydmljZS5iZWNvbWluZ1VzZXIgPSBmYWxzZTtcclxuICAgIGNvbnN0IG1vZGFsVmFsdWVzID0ge1xyXG4gICAgICBlcnJvclxyXG4gICAgfTtcclxuICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oTW9kYWxUeXBlcy5Nb2RhbEVycm9yQ29tcG9uZW50LCB7fSwgbW9kYWxWYWx1ZXMpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,20 @@
1
+ import { Subject } from 'rxjs';
2
+ export class BaseModalOpenerService {
3
+ constructor() {
4
+ this.openModalEvent = new Subject();
5
+ }
6
+ open(type, options = null, data = null) {
7
+ return new Promise((resolve, reject) => {
8
+ this.openModalEvent.next({
9
+ type,
10
+ data: data || {},
11
+ options: options || {},
12
+ results: resolve
13
+ });
14
+ });
15
+ }
16
+ subscribe(next) {
17
+ return this.openModalEvent.subscribe(next);
18
+ }
19
+ }
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtb3BlbmVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vYnRzZXJ2aWNlcy9iYXNlL3NyYy9saWIvdmVuZG9yL3NlcnZpY2VzL21vZGFsLW9wZW5lci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFVL0IsTUFBTSxPQUFPLHNCQUFzQjtJQUdqQztRQUZRLG1CQUFjLEdBQUcsSUFBSSxPQUFPLEVBQWMsQ0FBQztJQUVwQyxDQUFDO0lBRWhCLElBQUksQ0FBQyxJQUFnQixFQUFFLFVBQWUsSUFBSSxFQUFFLE9BQVksSUFBSTtRQUMxRCxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ3JDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDO2dCQUN2QixJQUFJO2dCQUNKLElBQUksRUFBRSxJQUFJLElBQUksRUFBRTtnQkFDaEIsT0FBTyxFQUFFLE9BQU8sSUFBSSxFQUFFO2dCQUN0QixPQUFPLEVBQUUsT0FBTzthQUNqQixDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxTQUFTLENBQUMsSUFBeUI7UUFDakMsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3QyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IE1vZGFsVHlwZXMgfSBmcm9tICcuLi9jbGFzc2VzL21vZGFsLXR5cGVzLmVudW0nO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBNb2RhbEV2ZW50IHtcclxuICB0eXBlOiBNb2RhbFR5cGVzO1xyXG4gIGRhdGE6IGFueTtcclxuICBvcHRpb25zOiBvYmplY3Q7XHJcbiAgcmVzdWx0czogKGRhdGE6IGFueSkgPT4gdm9pZDtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEJhc2VNb2RhbE9wZW5lclNlcnZpY2Uge1xyXG4gIHByaXZhdGUgb3Blbk1vZGFsRXZlbnQgPSBuZXcgU3ViamVjdDxNb2RhbEV2ZW50PigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHt9XHJcblxyXG4gIG9wZW4odHlwZTogTW9kYWxUeXBlcywgb3B0aW9uczogYW55ID0gbnVsbCwgZGF0YTogYW55ID0gbnVsbCk6IFByb21pc2U8YW55PiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICB0aGlzLm9wZW5Nb2RhbEV2ZW50Lm5leHQoe1xyXG4gICAgICAgIHR5cGUsXHJcbiAgICAgICAgZGF0YTogZGF0YSB8fCB7fSxcclxuICAgICAgICBvcHRpb25zOiBvcHRpb25zIHx8IHt9LFxyXG4gICAgICAgIHJlc3VsdHM6IHJlc29sdmVcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHN1YnNjcmliZShuZXh0OiAoZGF0YTogYW55KSA9PiB2b2lkKSB7XHJcbiAgICByZXR1cm4gdGhpcy5vcGVuTW9kYWxFdmVudC5zdWJzY3JpYmUobmV4dCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,124 @@
1
+ import { BehaviorSubject, of } from 'rxjs';
2
+ import { map, take } from 'rxjs/operators';
3
+ import { BasketStatus, ServiceType } from '../types/graphql.types';
4
+ export class BaseEnterpriseMyBookingsService {
5
+ constructor(getUserBasketsFetcher, searchUserCanBookFor) {
6
+ this.getUserBasketsFetcher = getUserBasketsFetcher;
7
+ this.searchUserCanBookFor = searchUserCanBookFor;
8
+ this.baskets = new BehaviorSubject([]);
9
+ this._basketStatusIconClasses = {
10
+ [BasketStatus.Approved]: 'ico-tick',
11
+ [BasketStatus.AwaitingApproval]: 'ico-clock',
12
+ [BasketStatus.BookingFailed]: 'ico-deny',
13
+ [BasketStatus.Disapproved]: 'ico-deny',
14
+ [BasketStatus.Open]: 'ico-calendar',
15
+ [BasketStatus.PartiallyBooked]: 'ico-deny',
16
+ [BasketStatus.Booked]: 'ico-deny'
17
+ };
18
+ this._serviceTypeIconClasses = {
19
+ [ServiceType.Cab]: 'ico-m-taxi',
20
+ [ServiceType.Car]: 'ico-car',
21
+ [ServiceType.Coach]: 'ico-bus',
22
+ [ServiceType.Flight]: 'ico-flight',
23
+ [ServiceType.Hotel]: 'ico-bed',
24
+ [ServiceType.FastTrack]: '',
25
+ [ServiceType.InternationalRail]: 'ico-rail',
26
+ [ServiceType.Lounge]: 'ico-material ico-lounge',
27
+ [ServiceType.Parking]: 'ico-material ico-parking',
28
+ [ServiceType.Rail]: 'ico-rail',
29
+ [ServiceType.Eurostar]: 'ico-rail'
30
+ };
31
+ }
32
+ getUserBaskets(query, isLoading) {
33
+ isLoading.next(true);
34
+ this.getUserBasketsFetcher
35
+ .fetchList(query)
36
+ .pipe(take(1))
37
+ .subscribe((baskets) => {
38
+ this.baskets.next(baskets);
39
+ isLoading.next(false);
40
+ }, (error) => {
41
+ console.error(error);
42
+ isLoading.next(false);
43
+ });
44
+ }
45
+ getSearchUserCanBookFor(search, isLoading) {
46
+ if (search.length > 2) {
47
+ isLoading.next(true);
48
+ return this.searchUserCanBookFor
49
+ .fetchList({
50
+ email: search
51
+ })
52
+ .pipe(take(1), map((results) => {
53
+ isLoading.next(false);
54
+ return results;
55
+ }));
56
+ }
57
+ return of([]);
58
+ }
59
+ getServiceTypeFilters(searchService) {
60
+ const serviceTypeFilters = [];
61
+ for (const [key] of Object.entries(searchService.search_objects)) {
62
+ serviceTypeFilters.push(key);
63
+ }
64
+ return serviceTypeFilters;
65
+ }
66
+ getBasketStatusFilters() {
67
+ const basketStatusFilters = [];
68
+ Object.values(BasketStatus).forEach((basketStatus) => basketStatusFilters.push(basketStatus));
69
+ return basketStatusFilters;
70
+ }
71
+ getServiceTypeFilterVanityName(serviceType) {
72
+ switch (serviceType) {
73
+ case ServiceType.Cab:
74
+ return 'Taxi';
75
+ case ServiceType.InternationalRail:
76
+ return 'European Rail';
77
+ default:
78
+ return serviceType;
79
+ }
80
+ }
81
+ getBasketStatusIconClass(status) {
82
+ return this._basketStatusIconClasses[status] || 'ico-exclamation';
83
+ }
84
+ getServiceTypeIconClass(basketItem) {
85
+ return (this._serviceTypeIconClasses[basketItem.service.type] || 'ico-exclamation');
86
+ }
87
+ getTotalPriceForBasketItems(basketItems) {
88
+ return basketItems.reduce((total, basketItem) => {
89
+ return total + basketItem.price;
90
+ }, 0);
91
+ }
92
+ getTravellerNamesFromBasketItems(basketItems) {
93
+ let travellerNames = [];
94
+ basketItems.map((basketItem) => basketItem.users.map((user) => travellerNames.push(`${user.forename} ${user.surname}`)));
95
+ travellerNames = [...new Set(travellerNames)]; // remove any duplicate traveller names
96
+ return travellerNames;
97
+ }
98
+ allBasketItemsMatchStatus(basketItems, basketItemStatus) {
99
+ return basketItems.every((basketItem) => basketItem.status === basketItemStatus);
100
+ }
101
+ getHotelAddress(hotelAddress) {
102
+ const { county, postcode, streetName, town } = hotelAddress;
103
+ const hotelAddressArr = [];
104
+ if (streetName)
105
+ hotelAddressArr.push(streetName);
106
+ if (town)
107
+ hotelAddressArr.push(town);
108
+ if (county)
109
+ hotelAddressArr.push(county);
110
+ if (postcode)
111
+ hotelAddressArr.push(postcode);
112
+ return hotelAddressArr.join(', ');
113
+ }
114
+ getHotelLocation(hotelAddress) {
115
+ const { county, town } = hotelAddress;
116
+ const hotelAddressArr = [];
117
+ if (town)
118
+ hotelAddressArr.push(town);
119
+ if (county)
120
+ hotelAddressArr.push(county);
121
+ return hotelAddressArr.join(', ');
122
+ }
123
+ }
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXktYm9va2luZ3Muc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29idHNlcnZpY2VzL2Jhc2Uvc3JjL2xpYi92ZW5kb3Ivc2VydmljZXMvbXktYm9va2luZ3Muc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2RCxPQUFPLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBVzNDLE9BQU8sRUFHTCxZQUFZLEVBRVosV0FBVyxFQUVaLE1BQU0sd0JBQXdCLENBQUM7QUFHaEMsTUFBTSxPQUFPLCtCQUErQjtJQWlDMUMsWUFDVSxxQkFBdUQsRUFDdkQsb0JBQStEO1FBRC9ELDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBa0M7UUFDdkQseUJBQW9CLEdBQXBCLG9CQUFvQixDQUEyQztRQTlCbEUsWUFBTyxHQUF3QyxJQUFJLGVBQWUsQ0FFdkUsRUFBRSxDQUFDLENBQUM7UUFFRSw2QkFBd0IsR0FBaUM7WUFDL0QsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEVBQUUsVUFBVTtZQUNuQyxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLFdBQVc7WUFDNUMsQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLEVBQUUsVUFBVTtZQUN4QyxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsRUFBRSxVQUFVO1lBQ3RDLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFLGNBQWM7WUFDbkMsQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLEVBQUUsVUFBVTtZQUMxQyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxVQUFVO1NBQ2xDLENBQUM7UUFFTSw0QkFBdUIsR0FBZ0M7WUFDN0QsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEVBQUUsWUFBWTtZQUMvQixD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RSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEtBQUssZ0JBQWdCLENBQ3ZELENBQUM7SUFDSixDQUFDO0lBRUQsZUFBZSxDQUFDLFlBQXVDO1FBQ3JELE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsR0FBRyxZQUFZLENBQUM7UUFDNUQsTUFBTSxlQUFlLEdBQUcsRUFBRSxDQUFDO1FBQzNCLElBQUksVUFBVTtZQUFFLGVBQWUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDakQsSUFBSSxJQUFJO1lBQUUsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyQyxJQUFJLE1BQU07WUFBRSxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3pDLElBQUksUUFBUTtZQUFFLGVBQWUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0MsT0FBTyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxZQUF1QztRQUN0RCxNQUFNLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLFlBQVksQ0FBQztRQUN0QyxNQUFNLGVBQWUsR0FBRyxFQUFFLENBQUM7UUFDM0IsSUFBSSxJQUFJO1lBQUUsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyQyxJQUFJLE1BQU07WUFBRSxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3pDLE9BQU8sZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgRW50ZXJwcmlzZU15Qm9va2luZ3NTZXJ2aWNlSW50ZXJmYWNlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9JbXlib29raW5ncy5zZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuICBCYXNlU2VhcmNoVXNlcnNDYW5Cb29rRm9yRmV0Y2hlcixcclxuICBTZWFyY2hVc2VyQ2FuQm9va0ZvckZldGNoZXJUeXBlXHJcbn0gZnJvbSAnLi4vZmV0Y2hlcnMvc2VhcmNoLXVzZXJzLWNhbi1ib29rLWZvci1mZXRjaGVyJztcclxuaW1wb3J0IHtcclxuICBCYXNlR2V0VXNlckJhc2tldHNGZXRjaGVyLFxyXG4gIEdldFVzZXJCYXNrZXRzRmV0Y2hlclR5cGVcclxufSBmcm9tICcuLi9mZXRjaGVycy9nZXQtdXNlcnMtYmFza2V0cy1mZXRjaGVyJztcclxuaW1wb3J0IHsgVXNlckJhc2tldFJlc3VsdCB9IGZyb20gJy4uL3R5cGVzL3R5cGVzJztcclxuaW1wb3J0IHtcclxuICBCYXNrZXRJdGVtLFxyXG4gIEJhc2tldEl0ZW1TdGF0dXMsXHJcbiAgQmFza2V0U3RhdHVzLFxyXG4gIFF1ZXJ5R2V0VXNlckJhc2tldHNBcmdzLFxyXG4gIFNlcnZpY2VUeXBlLFxyXG4gIFVzZXJcclxufSBmcm9tICcuLi90eXBlcy9ncmFwaHFsLnR5cGVzJztcclxuaW1wb3J0IHsgRW50ZXJwcmlzZVNlYXJjaFNlcnZpY2VJbnRlcmZhY2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzL0lzZWFyY2guc2VydmljZSc7XHJcblxyXG5leHBvcnQgY2xhc3MgQmFzZUVudGVycHJpc2VNeUJvb2tpbmdzU2VydmljZTxcclxuICBHVUJfUSBleHRlbmRzIEdldFVzZXJCYXNrZXRzRmV0Y2hlclR5cGUsXHJcbiAgU1VDQkZfUSBleHRlbmRzIFNlYXJjaFVzZXJDYW5Cb29rRm9yRmV0Y2hlclR5cGVcclxuPiBpbXBsZW1lbnRzIEVudGVycHJpc2VNeUJvb2tpbmdzU2VydmljZUludGVyZmFjZVxyXG57XHJcbiAgcHVibGljIGJhc2tldHM6IEJlaGF2aW9yU3ViamVjdDxVc2VyQmFza2V0UmVzdWx0W10+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxcclxuICAgIFVzZXJCYXNrZXRSZXN1bHRbXVxyXG4gID4oW10pO1xyXG5cclxuICBwcml2YXRlIF9iYXNrZXRTdGF0dXNJY29uQ2xhc3NlczogUmVjb3JkPEJhc2tldFN0YXR1cywgc3RyaW5nPiA9IHtcclxuICAgIFtCYXNrZXRTdGF0dXMuQXBwcm92ZWRdOiAnaWNvLXRpY2snLFxyXG4gICAgW0Jhc2tldFN0YXR1cy5Bd2FpdGluZ0FwcHJvdmFsXTogJ2ljby1jbG9jaycsXHJcbiAgICBbQmFza2V0U3RhdHVzLkJvb2tpbmdGYWlsZWRdOiAnaWNvLWRlbnknLFxyXG4gICAgW0Jhc2tldFN0YXR1cy5EaXNhcHByb3ZlZF06ICdpY28tZGVueScsXHJcbiAgICBbQmFza2V0U3RhdHVzLk9wZW5dOiAnaWNvLWNhbGVuZGFyJyxcclxuICAgIFtCYXNrZXRTdGF0dXMuUGFydGlhbGx5Qm9va2VkXTogJ2ljby1kZW55JyxcclxuICAgIFtCYXNrZXRTdGF0dXMuQm9va2VkXTogJ2ljby1kZW55J1xyXG4gIH07XHJcblxyXG4gIHByaXZhdGUgX3NlcnZpY2VUeXBlSWNvbkNsYXNzZXM6IFJlY29yZDxTZXJ2aWNlVHlwZSwgc3RyaW5nPiA9IHtcclxuICAgIFtTZXJ2aWNlVHlwZS5DYWJdOiAnaWNvLW0tdGF4aScsXHJcbiAgICBbU2VydmljZVR5cGUuQ2FyXTogJ2ljby1jYXInLFxyXG4gICAgW1NlcnZpY2VUeXBlLkNvYWNoXTogJ2ljby1idXMnLFxyXG4gICAgW1NlcnZpY2VUeXBlLkZsaWdodF06ICdpY28tZmxpZ2h0JyxcclxuICAgIFtTZXJ2aWNlVHlwZS5Ib3RlbF06ICdpY28tYmVkJyxcclxuICAgIFtTZXJ2aWNlVHlwZS5GYXN0VHJhY2tdOiAnJyxcclxuICAgIFtTZXJ2aWNlVHlwZS5JbnRlcm5hdGlvbmFsUmFpbF06ICdpY28tcmFpbCcsXHJcbiAgICBbU2VydmljZVR5cGUuTG91bmdlXTogJ2ljby1tYXRlcmlhbCBpY28tbG91bmdlJyxcclxuICAgIFtTZXJ2aWNlVHlwZS5QYXJraW5nXTogJ2ljby1tYXRlcmlhbCBpY28tcGFya2luZycsXHJcbiAgICBbU2VydmljZVR5cGUuUmFpbF06ICdpY28tcmFpbCcsXHJcbiAgICBbU2VydmljZVR5cGUuRXVyb3N0YXJdOiAnaWNvLXJhaWwnXHJcbiAgfTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGdldFVzZXJCYXNrZXRzRmV0Y2hlcjogQmFzZUdldFVzZXJCYXNrZXRzRmV0Y2hlcjxHVUJfUT4sXHJcbiAgICBwcml2YXRlIHNlYXJjaFVzZXJDYW5Cb29rRm9yOiBCYXNlU2VhcmNoVXNlcnNDYW5Cb29rRm9yRmV0Y2hlcjxTVUNCRl9RPlxyXG4gICkge31cclxuXHJcbiAgZ2V0VXNlckJhc2tldHMoXHJcbiAgICBxdWVyeTogUXVlcnlHZXRVc2VyQmFza2V0c0FyZ3MsXHJcbiAgICBpc0xvYWRpbmc6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPlxyXG4gICk6IHZvaWQge1xyXG4gICAgaXNMb2FkaW5nLm5leHQodHJ1ZSk7XHJcbiAgICB0aGlzLmdldFVzZXJCYXNrZXRzRmV0Y2hlclxyXG4gICAgICAuZmV0Y2hMaXN0KHF1ZXJ5KVxyXG4gICAgICAucGlwZSh0YWtlKDEpKVxyXG4gICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgIChiYXNrZXRzOiBVc2VyQmFza2V0UmVzdWx0W10pID0+IHtcclxuICAgICAgICAgIHRoaXMuYmFza2V0cy5uZXh0KGJhc2tldHMpO1xyXG4gICAgICAgICAgaXNMb2FkaW5nLm5leHQoZmFsc2UpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgKGVycm9yOiBhbnkpID0+IHtcclxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xyXG4gICAgICAgICAgaXNMb2FkaW5nLm5leHQoZmFsc2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIGdldFNlYXJjaFVzZXJDYW5Cb29rRm9yKFxyXG4gICAgc2VhcmNoOiBzdHJpbmcsXHJcbiAgICBpc0xvYWRpbmc6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPlxyXG4gICk6IE9ic2VydmFibGU8VXNlcltdPiB7XHJcbiAgICBpZiAoc2VhcmNoLmxlbmd0aCA+IDIpIHtcclxuICAgICAgaXNMb2FkaW5nLm5leHQodHJ1ZSk7XHJcbiAgICAgIHJldHVybiB0aGlzLnNlYXJjaFVzZXJDYW5Cb29rRm9yXHJcbiAgICAgICAgLmZldGNoTGlzdCh7XHJcbiAgICAgICAgICBlbWFpbDogc2VhcmNoXHJcbiAgICAgICAgfSlcclxuICAgICAgICAucGlwZShcclxuICAgICAgICAgIHRha2UoMSksXHJcbiAgICAgICAgICBtYXAoKHJlc3VsdHM6IFVzZXJbXSkgPT4ge1xyXG4gICAgICAgICAgICBpc0xvYWRpbmcubmV4dChmYWxzZSk7XHJcbiAgICAgICAgICAgIHJldHVybiByZXN1bHRzO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICApO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG9mKFtdKTtcclxuICB9XHJcblxyXG4gIGdldFNlcnZpY2VUeXBlRmlsdGVycyhcclxuICAgIHNlYXJjaFNlcnZpY2U6IEVudGVycHJpc2VTZWFyY2hTZXJ2aWNlSW50ZXJmYWNlXHJcbiAgKTogc3RyaW5nW10ge1xyXG4gICAgY29uc3Qgc2VydmljZVR5cGVGaWx0ZXJzOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgZm9yIChjb25zdCBba2V5XSBvZiBPYmplY3QuZW50cmllcyhzZWFyY2hTZXJ2aWNlLnNlYXJjaF9vYmplY3RzKSkge1xyXG4gICAgICBzZXJ2aWNlVHlwZUZpbHRlcnMucHVzaChrZXkpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHNlcnZpY2VUeXBlRmlsdGVycztcclxuICB9XHJcblxyXG4gIGdldEJhc2tldFN0YXR1c0ZpbHRlcnMoKTogc3RyaW5nW10ge1xyXG4gICAgY29uc3QgYmFza2V0U3RhdHVzRmlsdGVyczogc3RyaW5nW10gPSBbXTtcclxuICAgIE9iamVjdC52YWx1ZXMoQmFza2V0U3RhdHVzKS5mb3JFYWNoKChiYXNrZXRTdGF0dXMpID0+XHJcbiAgICAgIGJhc2tldFN0YXR1c0ZpbHRlcnMucHVzaChiYXNrZXRTdGF0dXMpXHJcbiAgICApO1xyXG4gICAgcmV0dXJuIGJhc2tldFN0YXR1c0ZpbHRlcnM7XHJcbiAgfVxyXG5cclxuICBnZXRTZXJ2aWNlVHlwZUZpbHRlclZhbml0eU5hbWUoc2VydmljZVR5cGU6IFNlcnZpY2VUeXBlKTogc3RyaW5nIHtcclxuICAgIHN3aXRjaCAoc2VydmljZVR5cGUpIHtcclxuICAgICAgY2FzZSBTZXJ2aWNlVHlwZS5DYWI6XHJcbiAgICAgICAgcmV0dXJuICdUYXhpJztcclxuICAgICAgY2FzZSBTZXJ2aWNlVHlwZS5JbnRlcm5hdGlvbmFsUmFpbDpcclxuICAgICAgICByZXR1cm4gJ0V1cm9wZWFuIFJhaWwnO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiBzZXJ2aWNlVHlwZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldEJhc2tldFN0YXR1c0ljb25DbGFzcyhzdGF0dXM6IEJhc2tldFN0YXR1cyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fYmFza2V0U3RhdHVzSWNvbkNsYXNzZXNbc3RhdHVzXSB8fCAnaWNvLWV4Y2xhbWF0aW9uJztcclxuICB9XHJcblxyXG4gIGdldFNlcnZpY2VUeXBlSWNvbkNsYXNzKGJhc2tldEl0ZW06IEJhc2tldEl0ZW0pOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgdGhpcy5fc2VydmljZVR5cGVJY29uQ2xhc3Nlc1tiYXNrZXRJdGVtLnNlcnZpY2UudHlwZV0gfHwgJ2ljby1leGNsYW1hdGlvbidcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRUb3RhbFByaWNlRm9yQmFza2V0SXRlbXMoYmFza2V0SXRlbXM6IEJhc2tldEl0ZW1bXSk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gYmFza2V0SXRlbXMucmVkdWNlKCh0b3RhbCwgYmFza2V0SXRlbSkgPT4ge1xyXG4gICAgICByZXR1cm4gdG90YWwgKyBiYXNrZXRJdGVtLnByaWNlO1xyXG4gICAgfSwgMCk7XHJcbiAgfVxyXG5cclxuICBnZXRUcmF2ZWxsZXJOYW1lc0Zyb21CYXNrZXRJdGVtcyhiYXNrZXRJdGVtczogQmFza2V0SXRlbVtdKTogc3RyaW5nW10ge1xyXG4gICAgbGV0IHRyYXZlbGxlck5hbWVzOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgYmFza2V0SXRlbXMubWFwKChiYXNrZXRJdGVtKSA9PlxyXG4gICAgICBiYXNrZXRJdGVtLnVzZXJzLm1hcCgodXNlcikgPT5cclxuICAgICAgICB0cmF2ZWxsZXJOYW1lcy5wdXNoKGAke3VzZXIuZm9yZW5hbWV9ICR7dXNlci5zdXJuYW1lfWApXHJcbiAgICAgIClcclxuICAgICk7XHJcbiAgICB0cmF2ZWxsZXJOYW1lcyA9IFsuLi5uZXcgU2V0KHRyYXZlbGxlck5hbWVzKV07IC8vIHJlbW92ZSBhbnkgZHVwbGljYXRlIHRyYXZlbGxlciBuYW1lc1xyXG4gICAgcmV0dXJuIHRyYXZlbGxlck5hbWVzO1xyXG4gIH1cclxuXHJcbiAgYWxsQmFza2V0SXRlbXNNYXRjaFN0YXR1cyhcclxuICAgIGJhc2tldEl0ZW1zOiBCYXNrZXRJdGVtW10sXHJcbiAgICBiYXNrZXRJdGVtU3RhdHVzOiBCYXNrZXRJdGVtU3RhdHVzXHJcbiAgKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gYmFza2V0SXRlbXMuZXZlcnkoXHJcbiAgICAgIChiYXNrZXRJdGVtKSA9PiBiYXNrZXRJdGVtLnN0YXR1cyA9PT0gYmFza2V0SXRlbVN0YXR1c1xyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldEhvdGVsQWRkcmVzcyhob3RlbEFkZHJlc3M6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0pOiBzdHJpbmcge1xyXG4gICAgY29uc3QgeyBjb3VudHksIHBvc3Rjb2RlLCBzdHJlZXROYW1lLCB0b3duIH0gPSBob3RlbEFkZHJlc3M7XHJcbiAgICBjb25zdCBob3RlbEFkZHJlc3NBcnIgPSBbXTtcclxuICAgIGlmIChzdHJlZXROYW1lKSBob3RlbEFkZHJlc3NBcnIucHVzaChzdHJlZXROYW1lKTtcclxuICAgIGlmICh0b3duKSBob3RlbEFkZHJlc3NBcnIucHVzaCh0b3duKTtcclxuICAgIGlmIChjb3VudHkpIGhvdGVsQWRkcmVzc0Fyci5wdXNoKGNvdW50eSk7XHJcbiAgICBpZiAocG9zdGNvZGUpIGhvdGVsQWRkcmVzc0Fyci5wdXNoKHBvc3Rjb2RlKTtcclxuICAgIHJldHVybiBob3RlbEFkZHJlc3NBcnIuam9pbignLCAnKTtcclxuICB9XHJcblxyXG4gIGdldEhvdGVsTG9jYXRpb24oaG90ZWxBZGRyZXNzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9KTogc3RyaW5nIHtcclxuICAgIGNvbnN0IHsgY291bnR5LCB0b3duIH0gPSBob3RlbEFkZHJlc3M7XHJcbiAgICBjb25zdCBob3RlbEFkZHJlc3NBcnIgPSBbXTtcclxuICAgIGlmICh0b3duKSBob3RlbEFkZHJlc3NBcnIucHVzaCh0b3duKTtcclxuICAgIGlmIChjb3VudHkpIGhvdGVsQWRkcmVzc0Fyci5wdXNoKGNvdW50eSk7XHJcbiAgICByZXR1cm4gaG90ZWxBZGRyZXNzQXJyLmpvaW4oJywgJyk7XHJcbiAgfVxyXG59XHJcbiJdfQ==