@sabstravtech/obtservices 0.0.0

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 (420) hide show
  1. package/.editorconfig +13 -0
  2. package/.gitmodules +0 -0
  3. package/.vscode/settings.json +4 -0
  4. package/README.md +27 -0
  5. package/angular.json +45 -0
  6. package/audit.config.json +6 -0
  7. package/codegen.yml +18 -0
  8. package/ng-package.json +7 -0
  9. package/package.json +84 -0
  10. package/projects/obtservices/README.md +24 -0
  11. package/projects/obtservices/angular/package.json +3 -0
  12. package/projects/obtservices/angular/src/classes.ts +3 -0
  13. package/projects/obtservices/angular/src/components/basket-panel.ts +139 -0
  14. package/projects/obtservices/angular/src/components/with-component.ts +40 -0
  15. package/projects/obtservices/angular/src/components.ts +2 -0
  16. package/projects/obtservices/angular/src/data.ts +5 -0
  17. package/projects/obtservices/angular/src/fetchers.ts +32 -0
  18. package/projects/obtservices/angular/src/lib/vendor/classes/environment.ts +5 -0
  19. package/projects/obtservices/angular/src/lib/vendor/classes/event-messenager.ts +11 -0
  20. package/projects/obtservices/angular/src/lib/vendor/classes/helpers.ts +87 -0
  21. package/projects/obtservices/angular/src/lib/vendor/data/airports.data.json +5508 -0
  22. package/projects/obtservices/angular/src/lib/vendor/data/animations.ts +38 -0
  23. package/projects/obtservices/angular/src/lib/vendor/data/booking-expected-responses.json +100 -0
  24. package/projects/obtservices/angular/src/lib/vendor/data/cities.data.json +31499 -0
  25. package/projects/obtservices/angular/src/lib/vendor/data/countries.json +1212 -0
  26. package/projects/obtservices/angular/src/lib/vendor/data/flight-booking.data.json +136 -0
  27. package/projects/obtservices/angular/src/lib/vendor/data/postcodes1.json +194 -0
  28. package/projects/obtservices/angular/src/lib/vendor/data/rail_addresses.json +2524 -0
  29. package/projects/obtservices/angular/src/lib/vendor/fetchers/basket-fetcher.ts +14 -0
  30. package/projects/obtservices/angular/src/lib/vendor/fetchers/cabhire-quote-fetcher.ts +15 -0
  31. package/projects/obtservices/angular/src/lib/vendor/fetchers/carhire-availability-detail.fetcher.ts +17 -0
  32. package/projects/obtservices/angular/src/lib/vendor/fetchers/carhire-quote-fetcher.ts +16 -0
  33. package/projects/obtservices/angular/src/lib/vendor/fetchers/conferma-office-names.fetcher.ts +16 -0
  34. package/projects/obtservices/angular/src/lib/vendor/fetchers/conferma-quicklist.fetcher.ts +16 -0
  35. package/projects/obtservices/angular/src/lib/vendor/fetchers/eurostar-quote.fetcher.ts +16 -0
  36. package/projects/obtservices/angular/src/lib/vendor/fetchers/flight-quote.fetcher.ts +16 -0
  37. package/projects/obtservices/angular/src/lib/vendor/fetchers/get-rail-cards.fetcher.ts +16 -0
  38. package/projects/obtservices/angular/src/lib/vendor/fetchers/get-rail-station.fetcher.ts +16 -0
  39. package/projects/obtservices/angular/src/lib/vendor/fetchers/get-risk-alerts.fetcher.ts +18 -0
  40. package/projects/obtservices/angular/src/lib/vendor/fetchers/get-user-company-offices.fetcher.ts +16 -0
  41. package/projects/obtservices/angular/src/lib/vendor/fetchers/get-user-current-carbon-allowance.fetcher.ts +16 -0
  42. package/projects/obtservices/angular/src/lib/vendor/fetchers/get-user-recent-searches.fetcher.ts +16 -0
  43. package/projects/obtservices/angular/src/lib/vendor/fetchers/get-users-baskets-fetcher.ts +16 -0
  44. package/projects/obtservices/angular/src/lib/vendor/fetchers/getMiAutoSugestions.fetcher.ts +16 -0
  45. package/projects/obtservices/angular/src/lib/vendor/fetchers/hotel-avaliability-fetcher.ts +17 -0
  46. package/projects/obtservices/angular/src/lib/vendor/fetchers/hotel-quote-fetcher.ts +16 -0
  47. package/projects/obtservices/angular/src/lib/vendor/fetchers/irl-quote-fetcher.ts +16 -0
  48. package/projects/obtservices/angular/src/lib/vendor/fetchers/lounge-quote.fetcher.ts +16 -0
  49. package/projects/obtservices/angular/src/lib/vendor/fetchers/parking-quote-fetcher.ts +16 -0
  50. package/projects/obtservices/angular/src/lib/vendor/fetchers/rail-quote-fetcher.ts +16 -0
  51. package/projects/obtservices/angular/src/lib/vendor/fetchers/search-airlines-fetcher.ts +14 -0
  52. package/projects/obtservices/angular/src/lib/vendor/fetchers/search-airports-fetcher.ts +14 -0
  53. package/projects/obtservices/angular/src/lib/vendor/fetchers/search-cities.fetcher.ts +16 -0
  54. package/projects/obtservices/angular/src/lib/vendor/fetchers/search-conferma-cities.fetcher.ts +14 -0
  55. package/projects/obtservices/angular/src/lib/vendor/fetchers/search-depots.fetcher.ts +18 -0
  56. package/projects/obtservices/angular/src/lib/vendor/fetchers/search-hotel-chains.fetcher.ts +16 -0
  57. package/projects/obtservices/angular/src/lib/vendor/fetchers/search-postcodes.fetcher.ts +16 -0
  58. package/projects/obtservices/angular/src/lib/vendor/fetchers/search-rail-stations.fetcher.ts +16 -0
  59. package/projects/obtservices/angular/src/lib/vendor/fetchers/search-users-can-book-for-fetcher.ts +16 -0
  60. package/projects/obtservices/angular/src/lib/vendor/fetchers/user-addresses.fetcher.ts +16 -0
  61. package/projects/obtservices/angular/src/lib/vendor/fetchers/user-fetcher.ts +14 -0
  62. package/projects/obtservices/angular/src/lib/vendor/fetchers/user-message.fetcher.ts +16 -0
  63. package/projects/obtservices/angular/src/lib/vendor/fetchers/user-products-fetcher.ts +16 -0
  64. package/projects/obtservices/angular/src/lib/vendor/fetchers/user-ui-configs-fetcher.ts +16 -0
  65. package/projects/obtservices/angular/src/lib/vendor/services/enterprise-basket.service.ts +133 -0
  66. package/projects/obtservices/angular/src/lib/vendor/services/hotel-avallibility.service.ts +19 -0
  67. package/projects/obtservices/angular/src/lib/vendor/services/http-call.service.ts +252 -0
  68. package/projects/obtservices/angular/src/lib/vendor/services/logon.service.ts +40 -0
  69. package/projects/obtservices/angular/src/lib/vendor/services/modal-opener.service.ts +9 -0
  70. package/projects/obtservices/angular/src/lib/vendor/services/my-bookings.service.ts +21 -0
  71. package/projects/obtservices/angular/src/lib/vendor/services/route-happy.service.ts +11 -0
  72. package/projects/obtservices/angular/src/lib/vendor/services/search.service.ts +213 -0
  73. package/projects/obtservices/angular/src/lib/vendor/services/storage.service.ts +82 -0
  74. package/projects/obtservices/angular/src/lib/vendor/services/user.service.ts +36 -0
  75. package/projects/obtservices/angular/src/lib/vendor/services/webtoken.service.ts +62 -0
  76. package/projects/obtservices/angular/src/lib/vendor/testers/postcode-validate.tester.ts +14 -0
  77. package/projects/obtservices/angular/src/lib/vendor/testers/validate-mi-free-value.tester.ts +14 -0
  78. package/projects/obtservices/angular/src/lib/vendor/types/graphql.angular.types.ts +11081 -0
  79. package/projects/obtservices/angular/src/lib/vendor/updaters/accept-new-price.updater.ts +14 -0
  80. package/projects/obtservices/angular/src/lib/vendor/updaters/add-item-to-basket.updater.ts +14 -0
  81. package/projects/obtservices/angular/src/lib/vendor/updaters/addUserToBasketItem.ts +14 -0
  82. package/projects/obtservices/angular/src/lib/vendor/updaters/book-basket-updater.ts +14 -0
  83. package/projects/obtservices/angular/src/lib/vendor/updaters/create-basket-updater.ts +14 -0
  84. package/projects/obtservices/angular/src/lib/vendor/updaters/move-basket-item-to-basket.ts +14 -0
  85. package/projects/obtservices/angular/src/lib/vendor/updaters/remove-basket-updater.ts +14 -0
  86. package/projects/obtservices/angular/src/lib/vendor/updaters/remove-item-from-basket.updater.ts +14 -0
  87. package/projects/obtservices/angular/src/lib/vendor/updaters/remove-recent-search.updater.ts +14 -0
  88. package/projects/obtservices/angular/src/lib/vendor/updaters/remove-user-address.updater.ts +14 -0
  89. package/projects/obtservices/angular/src/lib/vendor/updaters/revalidate-basket-updater.ts +14 -0
  90. package/projects/obtservices/angular/src/lib/vendor/updaters/save-recent-search.updater.ts +14 -0
  91. package/projects/obtservices/angular/src/lib/vendor/updaters/save-user-address.updater.ts +11 -0
  92. package/projects/obtservices/angular/src/lib/vendor/updaters/send-basket-for-approval.updater.ts +14 -0
  93. package/projects/obtservices/angular/src/lib/vendor/updaters/set-basket-item-lead-passenger.updater.ts +14 -0
  94. package/projects/obtservices/angular/src/lib/vendor/updaters/set-basket-item-mi-group.ts +14 -0
  95. package/projects/obtservices/angular/src/lib/vendor/updaters/set-basket-item-mi-value-updater.ts +15 -0
  96. package/projects/obtservices/angular/src/lib/vendor/updaters/set-payment-option.updater.ts +15 -0
  97. package/projects/obtservices/angular/src/lib/vendor/updaters/update-basket-notes-updater.ts +14 -0
  98. package/projects/obtservices/angular/src/lib/vendor/updaters/update-basket-title-updater.ts +14 -0
  99. package/projects/obtservices/angular/src/obtservices.module.ts +131 -0
  100. package/projects/obtservices/angular/src/public_api.ts +8 -0
  101. package/projects/obtservices/angular/src/services.ts +11 -0
  102. package/projects/obtservices/angular/src/testers.ts +2 -0
  103. package/projects/obtservices/angular/src/types.ts +1 -0
  104. package/projects/obtservices/angular/src/updaters.ts +13 -0
  105. package/projects/obtservices/base/package.json +3 -0
  106. package/projects/obtservices/base/src/classes.ts +27 -0
  107. package/projects/obtservices/base/src/custom.d.ts +3 -0
  108. package/projects/obtservices/base/src/fetchers.ts +36 -0
  109. package/projects/obtservices/base/src/interfaces.ts +29 -0
  110. package/projects/obtservices/base/src/lib/vendor/classes/base-enterprise.ts +126 -0
  111. package/projects/obtservices/base/src/lib/vendor/classes/base-network-call.ts +40 -0
  112. package/projects/obtservices/base/src/lib/vendor/classes/basket-info-mi-details.impl.ts +68 -0
  113. package/projects/obtservices/base/src/lib/vendor/classes/bookable-basket.ts +343 -0
  114. package/projects/obtservices/base/src/lib/vendor/classes/cabhire-enterprise-search.ts +907 -0
  115. package/projects/obtservices/base/src/lib/vendor/classes/carhire-enterprise-search.ts +1597 -0
  116. package/projects/obtservices/base/src/lib/vendor/classes/empty-enterprise-search.ts +75 -0
  117. package/projects/obtservices/base/src/lib/vendor/classes/enviroment.ts +25 -0
  118. package/projects/obtservices/base/src/lib/vendor/classes/eurostar-enterprise-search.ts +2126 -0
  119. package/projects/obtservices/base/src/lib/vendor/classes/eurostar-search-type.enum.ts +4 -0
  120. package/projects/obtservices/base/src/lib/vendor/classes/event-messenager.ts +23 -0
  121. package/projects/obtservices/base/src/lib/vendor/classes/flight-enterprise-search.ts +2399 -0
  122. package/projects/obtservices/base/src/lib/vendor/classes/flight-search-type.enum.ts +5 -0
  123. package/projects/obtservices/base/src/lib/vendor/classes/helpers.ts +1233 -0
  124. package/projects/obtservices/base/src/lib/vendor/classes/hotel-enterprise-search.ts +1370 -0
  125. package/projects/obtservices/base/src/lib/vendor/classes/irl-enterprise-search.ts +1380 -0
  126. package/projects/obtservices/base/src/lib/vendor/classes/limited-cache.class.ts +70 -0
  127. package/projects/obtservices/base/src/lib/vendor/classes/lounges-enterprise-search.ts +444 -0
  128. package/projects/obtservices/base/src/lib/vendor/classes/management-info-and-valid.ts +268 -0
  129. package/projects/obtservices/base/src/lib/vendor/classes/modal-types.enum.ts +28 -0
  130. package/projects/obtservices/base/src/lib/vendor/classes/parking-enterprise-search.ts +541 -0
  131. package/projects/obtservices/base/src/lib/vendor/classes/rail-direction.enum.ts +4 -0
  132. package/projects/obtservices/base/src/lib/vendor/classes/rail-enterprise-search.ts +1751 -0
  133. package/projects/obtservices/base/src/lib/vendor/classes/routehappy-request.ts +146 -0
  134. package/projects/obtservices/base/src/lib/vendor/classes/routehappy-response.ts +128 -0
  135. package/projects/obtservices/base/src/lib/vendor/classes/supplementary-booking-info-impl.ts +375 -0
  136. package/projects/obtservices/base/src/lib/vendor/classes/user-favourite.enum.ts +12 -0
  137. package/projects/obtservices/base/src/lib/vendor/classes/validator.checker.ts +7 -0
  138. package/projects/obtservices/base/src/lib/vendor/data/airports.data.json +5508 -0
  139. package/projects/obtservices/base/src/lib/vendor/data/booking-expected-responses.json +100 -0
  140. package/projects/obtservices/base/src/lib/vendor/data/cities.data.json +31499 -0
  141. package/projects/obtservices/base/src/lib/vendor/data/countries.json +1212 -0
  142. package/projects/obtservices/base/src/lib/vendor/data/euro-stations.json +30 -0
  143. package/projects/obtservices/base/src/lib/vendor/data/flight-booking.data.json +136 -0
  144. package/projects/obtservices/base/src/lib/vendor/data/postcodes1.json +194 -0
  145. package/projects/obtservices/base/src/lib/vendor/data/rail_addresses.json +2524 -0
  146. package/projects/obtservices/base/src/lib/vendor/fetchers/basket-fetcher.ts +29 -0
  147. package/projects/obtservices/base/src/lib/vendor/fetchers/cabhire-quote-fetcher.ts +34 -0
  148. package/projects/obtservices/base/src/lib/vendor/fetchers/carhire-availability-detail.fetcher.ts +35 -0
  149. package/projects/obtservices/base/src/lib/vendor/fetchers/carhire-quote-fetcher.ts +34 -0
  150. package/projects/obtservices/base/src/lib/vendor/fetchers/conferma-office-names.fetcher.ts +34 -0
  151. package/projects/obtservices/base/src/lib/vendor/fetchers/conferma-quicklist.fetcher.ts +35 -0
  152. package/projects/obtservices/base/src/lib/vendor/fetchers/eurostar-quote.fetcher.ts +35 -0
  153. package/projects/obtservices/base/src/lib/vendor/fetchers/flight-quote.fetcher.ts +35 -0
  154. package/projects/obtservices/base/src/lib/vendor/fetchers/get-rail-cards.fetcher.ts +35 -0
  155. package/projects/obtservices/base/src/lib/vendor/fetchers/get-rail-station.fetcher.ts +35 -0
  156. package/projects/obtservices/base/src/lib/vendor/fetchers/get-risk-alerts.fetcher.ts +35 -0
  157. package/projects/obtservices/base/src/lib/vendor/fetchers/get-user-company-offices.fetcher.ts +34 -0
  158. package/projects/obtservices/base/src/lib/vendor/fetchers/get-user-current-carbon-allowance.fetcher.ts +35 -0
  159. package/projects/obtservices/base/src/lib/vendor/fetchers/get-user-recent-searches.fetcher.ts +36 -0
  160. package/projects/obtservices/base/src/lib/vendor/fetchers/get-users-baskets-fetcher.ts +33 -0
  161. package/projects/obtservices/base/src/lib/vendor/fetchers/getMiAutoSugestions.fetcher.ts +35 -0
  162. package/projects/obtservices/base/src/lib/vendor/fetchers/hotel-avaliability-fetcher.ts +53 -0
  163. package/projects/obtservices/base/src/lib/vendor/fetchers/hotel-quote-fetcher.ts +35 -0
  164. package/projects/obtservices/base/src/lib/vendor/fetchers/irl-quote-fetcher.ts +34 -0
  165. package/projects/obtservices/base/src/lib/vendor/fetchers/list-fetchable-enterprise.ts +59 -0
  166. package/projects/obtservices/base/src/lib/vendor/fetchers/lounge-quote.fetcher.ts +34 -0
  167. package/projects/obtservices/base/src/lib/vendor/fetchers/object-fetchable-enterprise.ts +20 -0
  168. package/projects/obtservices/base/src/lib/vendor/fetchers/parking-quote-fetcher.ts +34 -0
  169. package/projects/obtservices/base/src/lib/vendor/fetchers/rail-quote-fetcher.ts +34 -0
  170. package/projects/obtservices/base/src/lib/vendor/fetchers/search-airlines.fetcher.ts +30 -0
  171. package/projects/obtservices/base/src/lib/vendor/fetchers/search-airports-fetcher.ts +29 -0
  172. package/projects/obtservices/base/src/lib/vendor/fetchers/search-cities.fetcher.ts +34 -0
  173. package/projects/obtservices/base/src/lib/vendor/fetchers/search-conferma-cities.fetcher.ts +32 -0
  174. package/projects/obtservices/base/src/lib/vendor/fetchers/search-depots.fetcher.ts +34 -0
  175. package/projects/obtservices/base/src/lib/vendor/fetchers/search-hotel-chains.fetcher.ts +34 -0
  176. package/projects/obtservices/base/src/lib/vendor/fetchers/search-postcodes.fetcher.ts +37 -0
  177. package/projects/obtservices/base/src/lib/vendor/fetchers/search-rail-stations.fetcher.ts +35 -0
  178. package/projects/obtservices/base/src/lib/vendor/fetchers/search-users-can-book-for-fetcher.ts +35 -0
  179. package/projects/obtservices/base/src/lib/vendor/fetchers/user-addresses.fetcher.ts +34 -0
  180. package/projects/obtservices/base/src/lib/vendor/fetchers/user-fetcher.ts +27 -0
  181. package/projects/obtservices/base/src/lib/vendor/fetchers/user-message.fetcher.ts +34 -0
  182. package/projects/obtservices/base/src/lib/vendor/fetchers/user-products-fetcher.ts +35 -0
  183. package/projects/obtservices/base/src/lib/vendor/fetchers/user-ui-configs-fetcher.ts +35 -0
  184. package/projects/obtservices/base/src/lib/vendor/interfaces/Icabhire-enterprise-search.ts +174 -0
  185. package/projects/obtservices/base/src/lib/vendor/interfaces/Icarhire-enterprise-search.ts +143 -0
  186. package/projects/obtservices/base/src/lib/vendor/interfaces/Ienterprise-basket.service.ts +127 -0
  187. package/projects/obtservices/base/src/lib/vendor/interfaces/Ieurostar-enterprise-search.ts +197 -0
  188. package/projects/obtservices/base/src/lib/vendor/interfaces/Iflight-enterprise-search.ts +196 -0
  189. package/projects/obtservices/base/src/lib/vendor/interfaces/Ihotel-enterprise-search.ts +219 -0
  190. package/projects/obtservices/base/src/lib/vendor/interfaces/Iirl-enterprise-search.ts +135 -0
  191. package/projects/obtservices/base/src/lib/vendor/interfaces/Ilounges-enterprise-search.ts +58 -0
  192. package/projects/obtservices/base/src/lib/vendor/interfaces/Imybookings.service.ts +27 -0
  193. package/projects/obtservices/base/src/lib/vendor/interfaces/Iparking-enterprise-search.ts +72 -0
  194. package/projects/obtservices/base/src/lib/vendor/interfaces/Irail-enterprise-search.ts +161 -0
  195. package/projects/obtservices/base/src/lib/vendor/interfaces/Isearch.service.ts +178 -0
  196. package/projects/obtservices/base/src/lib/vendor/interfaces/Isupplementary-booking-info-impl.ts +63 -0
  197. package/projects/obtservices/base/src/lib/vendor/interfaces/Iuser.service.ts +87 -0
  198. package/projects/obtservices/base/src/lib/vendor/interfaces/car-hire-classes.interface.ts +8 -0
  199. package/projects/obtservices/base/src/lib/vendor/interfaces/car-hire-filters.interface.ts +11 -0
  200. package/projects/obtservices/base/src/lib/vendor/interfaces/car-hire-sort.interface.ts +4 -0
  201. package/projects/obtservices/base/src/lib/vendor/interfaces/cheapest-price.ts +4 -0
  202. package/projects/obtservices/base/src/lib/vendor/interfaces/code-name.ts +4 -0
  203. package/projects/obtservices/base/src/lib/vendor/interfaces/flight-filters.interface.ts +41 -0
  204. package/projects/obtservices/base/src/lib/vendor/interfaces/flight-multi-destination.interface.ts +8 -0
  205. package/projects/obtservices/base/src/lib/vendor/interfaces/rail-airport-express-stations.interface.ts +4 -0
  206. package/projects/obtservices/base/src/lib/vendor/interfaces/rail-basket-item.interface.ts +79 -0
  207. package/projects/obtservices/base/src/lib/vendor/interfaces/rail-journey-leg.interface.ts +6 -0
  208. package/projects/obtservices/base/src/lib/vendor/interfaces/rail-recent-search-args.interface.ts +20 -0
  209. package/projects/obtservices/base/src/lib/vendor/interfaces/rail-selected-ticket.interface.ts +11 -0
  210. package/projects/obtservices/base/src/lib/vendor/interfaces/rail-ticket-group.interface.ts +29 -0
  211. package/projects/obtservices/base/src/lib/vendor/interfaces/rail-ticket-groups.interface.ts +5 -0
  212. package/projects/obtservices/base/src/lib/vendor/interfaces/search-objects.interface.ts +17 -0
  213. package/projects/obtservices/base/src/lib/vendor/interfaces/select-filter.interface.ts +5 -0
  214. package/projects/obtservices/base/src/lib/vendor/interfaces/user.data.ts +22 -0
  215. package/projects/obtservices/base/src/lib/vendor/interfaces/value-display.ts +4 -0
  216. package/projects/obtservices/base/src/lib/vendor/models/login.model.ts +97 -0
  217. package/projects/obtservices/base/src/lib/vendor/models/regexp.model.ts +13 -0
  218. package/projects/obtservices/base/src/lib/vendor/models/traveller.object.ts +61 -0
  219. package/projects/obtservices/base/src/lib/vendor/services/enterprise-basket.service.ts +1150 -0
  220. package/projects/obtservices/base/src/lib/vendor/services/hotel-avallibility.service.ts +251 -0
  221. package/projects/obtservices/base/src/lib/vendor/services/http-call.service.ts +57 -0
  222. package/projects/obtservices/base/src/lib/vendor/services/logon.service.ts +245 -0
  223. package/projects/obtservices/base/src/lib/vendor/services/modal-opener.service.ts +30 -0
  224. package/projects/obtservices/base/src/lib/vendor/services/my-bookings.service.ts +184 -0
  225. package/projects/obtservices/base/src/lib/vendor/services/routehappy.service.ts +275 -0
  226. package/projects/obtservices/base/src/lib/vendor/services/search.service.ts +2026 -0
  227. package/projects/obtservices/base/src/lib/vendor/services/storage.service.ts +15 -0
  228. package/projects/obtservices/base/src/lib/vendor/services/url.service.ts +12 -0
  229. package/projects/obtservices/base/src/lib/vendor/services/user.service.ts +354 -0
  230. package/projects/obtservices/base/src/lib/vendor/services/webtoken.service.ts +66 -0
  231. package/projects/obtservices/base/src/lib/vendor/testers/base.tester.ts +18 -0
  232. package/projects/obtservices/base/src/lib/vendor/testers/postcode-validate.tester.ts +24 -0
  233. package/projects/obtservices/base/src/lib/vendor/testers/validate-mi-free-value.tester.ts +23 -0
  234. package/projects/obtservices/base/src/lib/vendor/types/graphql.types.ts +6184 -0
  235. package/projects/obtservices/base/src/lib/vendor/types/types.ts +630 -0
  236. package/projects/obtservices/base/src/lib/vendor/updaters/accept-new-price.updater.ts +31 -0
  237. package/projects/obtservices/base/src/lib/vendor/updaters/add-item-to-basket.updater.ts +29 -0
  238. package/projects/obtservices/base/src/lib/vendor/updaters/addUserToBasketItem.ts +30 -0
  239. package/projects/obtservices/base/src/lib/vendor/updaters/book-basket-updater.ts +28 -0
  240. package/projects/obtservices/base/src/lib/vendor/updaters/create-basket-updater.ts +29 -0
  241. package/projects/obtservices/base/src/lib/vendor/updaters/move-basket-item-to-basket.ts +30 -0
  242. package/projects/obtservices/base/src/lib/vendor/updaters/object-updater-enterprise.ts +20 -0
  243. package/projects/obtservices/base/src/lib/vendor/updaters/remove-basket-updater.ts +29 -0
  244. package/projects/obtservices/base/src/lib/vendor/updaters/remove-item-from-basket.updater.ts +28 -0
  245. package/projects/obtservices/base/src/lib/vendor/updaters/remove-recent-search-updater.ts +29 -0
  246. package/projects/obtservices/base/src/lib/vendor/updaters/remove-user-address-updater.ts +29 -0
  247. package/projects/obtservices/base/src/lib/vendor/updaters/revalidate-basket-updater.ts +29 -0
  248. package/projects/obtservices/base/src/lib/vendor/updaters/save-recent-search-updater.ts +30 -0
  249. package/projects/obtservices/base/src/lib/vendor/updaters/save-user-address.updater.ts +30 -0
  250. package/projects/obtservices/base/src/lib/vendor/updaters/send-basket-for-approval.updater.ts +31 -0
  251. package/projects/obtservices/base/src/lib/vendor/updaters/set-basket-item-lead-passenger.updater.ts +30 -0
  252. package/projects/obtservices/base/src/lib/vendor/updaters/set-basket-item-mi-group.ts +32 -0
  253. package/projects/obtservices/base/src/lib/vendor/updaters/set-basket-item-mi-value-updater.ts +30 -0
  254. package/projects/obtservices/base/src/lib/vendor/updaters/set-basket-item-paymenr-option.updater.ts +28 -0
  255. package/projects/obtservices/base/src/lib/vendor/updaters/update-basket-notes-updater.ts +30 -0
  256. package/projects/obtservices/base/src/lib/vendor/updaters/update-basket-title-updater.ts +30 -0
  257. package/projects/obtservices/base/src/models.ts +3 -0
  258. package/projects/obtservices/base/src/public_api.ts +8 -0
  259. package/projects/obtservices/base/src/services.ts +12 -0
  260. package/projects/obtservices/base/src/testers.ts +2 -0
  261. package/projects/obtservices/base/src/types.ts +1 -0
  262. package/projects/obtservices/base/src/updaters.ts +20 -0
  263. package/projects/obtservices/graphQL/autogenerated/index.js +2 -0
  264. package/projects/obtservices/graphQL/autogenerated/mutations/acceptNewPrice.gql +1580 -0
  265. package/projects/obtservices/graphQL/autogenerated/mutations/addItemToBasket.gql +1580 -0
  266. package/projects/obtservices/graphQL/autogenerated/mutations/addUsersToBasketItem.gql +1580 -0
  267. package/projects/obtservices/graphQL/autogenerated/mutations/bookBasket.gql +1580 -0
  268. package/projects/obtservices/graphQL/autogenerated/mutations/cancelBooking.gql +6 -0
  269. package/projects/obtservices/graphQL/autogenerated/mutations/confermaCreateCard.gql +23 -0
  270. package/projects/obtservices/graphQL/autogenerated/mutations/confermaDeleteCard.gql +3 -0
  271. package/projects/obtservices/graphQL/autogenerated/mutations/createBasket.gql +1580 -0
  272. package/projects/obtservices/graphQL/autogenerated/mutations/deleteBasket.gql +3 -0
  273. package/projects/obtservices/graphQL/autogenerated/mutations/deleteFavouriteSearch.gql +3 -0
  274. package/projects/obtservices/graphQL/autogenerated/mutations/deleteRecentSearch.gql +3 -0
  275. package/projects/obtservices/graphQL/autogenerated/mutations/deleteUserAddress.gql +3 -0
  276. package/projects/obtservices/graphQL/autogenerated/mutations/index.js +36 -0
  277. package/projects/obtservices/graphQL/autogenerated/mutations/moveItemToADifferentBasket.gql +1580 -0
  278. package/projects/obtservices/graphQL/autogenerated/mutations/removeItemFromBasket.gql +1580 -0
  279. package/projects/obtservices/graphQL/autogenerated/mutations/removeItemsFromBasket.gql +1580 -0
  280. package/projects/obtservices/graphQL/autogenerated/mutations/removeUserFromBasketItem.gql +1580 -0
  281. package/projects/obtservices/graphQL/autogenerated/mutations/reopenBasket.gql +1580 -0
  282. package/projects/obtservices/graphQL/autogenerated/mutations/revalidateBasket.gql +1580 -0
  283. package/projects/obtservices/graphQL/autogenerated/mutations/revalidateBasketItem.gql +1580 -0
  284. package/projects/obtservices/graphQL/autogenerated/mutations/saveFavouriteSearch.gql +348 -0
  285. package/projects/obtservices/graphQL/autogenerated/mutations/saveRecentSearch.gql +348 -0
  286. package/projects/obtservices/graphQL/autogenerated/mutations/saveUserAddress.gql +14 -0
  287. package/projects/obtservices/graphQL/autogenerated/mutations/sendBasketForApproval.gql +1580 -0
  288. package/projects/obtservices/graphQL/autogenerated/mutations/setAddressAsUserPrimary.gql +14 -0
  289. package/projects/obtservices/graphQL/autogenerated/mutations/setBasketItemLeadPassenger.gql +1580 -0
  290. package/projects/obtservices/graphQL/autogenerated/mutations/setBasketItemMIGroup.gql +1580 -0
  291. package/projects/obtservices/graphQL/autogenerated/mutations/setBasketItemMIValue.gql +1580 -0
  292. package/projects/obtservices/graphQL/autogenerated/mutations/setBasketItemPaymentMethod.gql +1580 -0
  293. package/projects/obtservices/graphQL/autogenerated/mutations/setMIDefaultValue.gql +3 -0
  294. package/projects/obtservices/graphQL/autogenerated/mutations/setUserLanguage.gql +339 -0
  295. package/projects/obtservices/graphQL/autogenerated/mutations/updateBasketNotes.gql +1580 -0
  296. package/projects/obtservices/graphQL/autogenerated/mutations/updateBasketTitle.gql +1580 -0
  297. package/projects/obtservices/graphQL/autogenerated/queries/alive.gql +3 -0
  298. package/projects/obtservices/graphQL/autogenerated/queries/carHireAvailabilityDetailRequest.gql +42 -0
  299. package/projects/obtservices/graphQL/autogenerated/queries/confermaBlockClientHotels.gql +23 -0
  300. package/projects/obtservices/graphQL/autogenerated/queries/confermaBlockConsumerHotels.gql +23 -0
  301. package/projects/obtservices/graphQL/autogenerated/queries/confermaListCards.gql +11 -0
  302. package/projects/obtservices/graphQL/autogenerated/queries/confermaUnblockClientHotels.gql +23 -0
  303. package/projects/obtservices/graphQL/autogenerated/queries/confermaUnblockConsumerHotels.gql +23 -0
  304. package/projects/obtservices/graphQL/autogenerated/queries/getCOVIDMicrositeToken.gql +3 -0
  305. package/projects/obtservices/graphQL/autogenerated/queries/getCancellationInfo.gql +7 -0
  306. package/projects/obtservices/graphQL/autogenerated/queries/getCarHireDepots.gql +13 -0
  307. package/projects/obtservices/graphQL/autogenerated/queries/getConfermaOffice.gql +50 -0
  308. package/projects/obtservices/graphQL/autogenerated/queries/getConfermaOfficeNames.gql +26 -0
  309. package/projects/obtservices/graphQL/autogenerated/queries/getConfermaQuicklist.gql +131 -0
  310. package/projects/obtservices/graphQL/autogenerated/queries/getCountries.gql +8 -0
  311. package/projects/obtservices/graphQL/autogenerated/queries/getHotelAvailability.gql +78 -0
  312. package/projects/obtservices/graphQL/autogenerated/queries/getHotelChains.gql +3 -0
  313. package/projects/obtservices/graphQL/autogenerated/queries/getIRLSupplierStation.gql +28 -0
  314. package/projects/obtservices/graphQL/autogenerated/queries/getMultipleHotelsAvailability.gql +78 -0
  315. package/projects/obtservices/graphQL/autogenerated/queries/getPostcodeDetails.gql +25 -0
  316. package/projects/obtservices/graphQL/autogenerated/queries/getRailStation.gql +27 -0
  317. package/projects/obtservices/graphQL/autogenerated/queries/getRailcards.gql +6 -0
  318. package/projects/obtservices/graphQL/autogenerated/queries/getRiskAlerts.gql +17 -0
  319. package/projects/obtservices/graphQL/autogenerated/queries/getUser.gql +339 -0
  320. package/projects/obtservices/graphQL/autogenerated/queries/getUserAddresses.gql +14 -0
  321. package/projects/obtservices/graphQL/autogenerated/queries/getUserBasket.gql +1580 -0
  322. package/projects/obtservices/graphQL/autogenerated/queries/getUserBaskets.gql +1580 -0
  323. package/projects/obtservices/graphQL/autogenerated/queries/getUserCompanyOffices.gql +88 -0
  324. package/projects/obtservices/graphQL/autogenerated/queries/getUserCurrentCarbonAllowance.gql +524 -0
  325. package/projects/obtservices/graphQL/autogenerated/queries/getUserFavouriteSearches.gql +348 -0
  326. package/projects/obtservices/graphQL/autogenerated/queries/getUserMIAutoSuggestValues.gql +10 -0
  327. package/projects/obtservices/graphQL/autogenerated/queries/getUserMessages.gql +10 -0
  328. package/projects/obtservices/graphQL/autogenerated/queries/getUserPhoneNumbers.gql +13 -0
  329. package/projects/obtservices/graphQL/autogenerated/queries/getUserRecentSearches.gql +348 -0
  330. package/projects/obtservices/graphQL/autogenerated/queries/getUserServices.gql +16 -0
  331. package/projects/obtservices/graphQL/autogenerated/queries/getUserTravelRules.gql +111 -0
  332. package/projects/obtservices/graphQL/autogenerated/queries/getUserUIConfigs.gql +52 -0
  333. package/projects/obtservices/graphQL/autogenerated/queries/index.js +64 -0
  334. package/projects/obtservices/graphQL/autogenerated/queries/isPostcodeValid.gql +3 -0
  335. package/projects/obtservices/graphQL/autogenerated/queries/postcodeAutoSuggest.gql +3 -0
  336. package/projects/obtservices/graphQL/autogenerated/queries/searchAirlines.gql +32 -0
  337. package/projects/obtservices/graphQL/autogenerated/queries/searchAirports.gql +60 -0
  338. package/projects/obtservices/graphQL/autogenerated/queries/searchCabHire.gql +63 -0
  339. package/projects/obtservices/graphQL/autogenerated/queries/searchCarHire.gql +104 -0
  340. package/projects/obtservices/graphQL/autogenerated/queries/searchCities.gql +14 -0
  341. package/projects/obtservices/graphQL/autogenerated/queries/searchConfermaCities.gql +11 -0
  342. package/projects/obtservices/graphQL/autogenerated/queries/searchEurostar.gql +833 -0
  343. package/projects/obtservices/graphQL/autogenerated/queries/searchFastTrack.gql +46 -0
  344. package/projects/obtservices/graphQL/autogenerated/queries/searchFlights.gql +23 -0
  345. package/projects/obtservices/graphQL/autogenerated/queries/searchFlightsV2.gql +833 -0
  346. package/projects/obtservices/graphQL/autogenerated/queries/searchHotelChains.gql +3 -0
  347. package/projects/obtservices/graphQL/autogenerated/queries/searchHotels.gql +131 -0
  348. package/projects/obtservices/graphQL/autogenerated/queries/searchIRL.gql +514 -0
  349. package/projects/obtservices/graphQL/autogenerated/queries/searchIRLSupplierStations.gql +28 -0
  350. package/projects/obtservices/graphQL/autogenerated/queries/searchLounges.gql +89 -0
  351. package/projects/obtservices/graphQL/autogenerated/queries/searchParking.gql +70 -0
  352. package/projects/obtservices/graphQL/autogenerated/queries/searchPostcodes.gql +25 -0
  353. package/projects/obtservices/graphQL/autogenerated/queries/searchRail.gql +840 -0
  354. package/projects/obtservices/graphQL/autogenerated/queries/searchRailStations.gql +27 -0
  355. package/projects/obtservices/graphQL/autogenerated/queries/searchUserCanBookFor.gql +339 -0
  356. package/projects/obtservices/graphQL/autogenerated/queries/validateBasketItemMI.gql +3 -0
  357. package/projects/obtservices/graphQL/autogenerated/queries/validateUserMIFreeValue.gql +3 -0
  358. package/projects/obtservices/graphQL/documents/acceptNewPrice.graphql +5 -0
  359. package/projects/obtservices/graphQL/documents/addUserToBasketItem.graphql +9 -0
  360. package/projects/obtservices/graphQL/documents/basket.fragments.graphql +171 -0
  361. package/projects/obtservices/graphQL/documents/baskets.graphql +111 -0
  362. package/projects/obtservices/graphQL/documents/bookBasket.graphql +9 -0
  363. package/projects/obtservices/graphQL/documents/cabhire.graphql +66 -0
  364. package/projects/obtservices/graphQL/documents/carHireAvailabilityDetailRequest.graphql +44 -0
  365. package/projects/obtservices/graphQL/documents/carhire.graphql +117 -0
  366. package/projects/obtservices/graphQL/documents/deleteRecentSearch.graphql +3 -0
  367. package/projects/obtservices/graphQL/documents/deleteUserAddress.graphql +3 -0
  368. package/projects/obtservices/graphQL/documents/error.fragments.graphql +10 -0
  369. package/projects/obtservices/graphQL/documents/flights.graphql +830 -0
  370. package/projects/obtservices/graphQL/documents/getCarHireDepots.graphql +13 -0
  371. package/projects/obtservices/graphQL/documents/getConfermaOfficeNames.graphql +11 -0
  372. package/projects/obtservices/graphQL/documents/getConfermaQuicklist.graphql +108 -0
  373. package/projects/obtservices/graphQL/documents/getRailStation.graphql +31 -0
  374. package/projects/obtservices/graphQL/documents/getRailcards.graphql +6 -0
  375. package/projects/obtservices/graphQL/documents/getRiskAlerts.graphql +24 -0
  376. package/projects/obtservices/graphQL/documents/getUserAddresses.graphql +14 -0
  377. package/projects/obtservices/graphQL/documents/getUserCompanyOffices.graphql +18 -0
  378. package/projects/obtservices/graphQL/documents/getUserCurrentCarbonAllowance.graphql +29 -0
  379. package/projects/obtservices/graphQL/documents/getUserMIAutoSuggestValues.graphql +10 -0
  380. package/projects/obtservices/graphQL/documents/getUserPhoneNumbers.graphql +13 -0
  381. package/projects/obtservices/graphQL/documents/getUserRecentSearches.graphql +20 -0
  382. package/projects/obtservices/graphQL/documents/hotels.graphql +242 -0
  383. package/projects/obtservices/graphQL/documents/isPostcodeValid.graphql +3 -0
  384. package/projects/obtservices/graphQL/documents/lookups.graphql +54 -0
  385. package/projects/obtservices/graphQL/documents/lounges.graphql +88 -0
  386. package/projects/obtservices/graphQL/documents/moveItemToADifferentBasket.graphql +9 -0
  387. package/projects/obtservices/graphQL/documents/parking.graphql +79 -0
  388. package/projects/obtservices/graphQL/documents/rail.graphql +645 -0
  389. package/projects/obtservices/graphQL/documents/saveRecentSearch.graphql +5 -0
  390. package/projects/obtservices/graphQL/documents/saveUserAddress.graphql +14 -0
  391. package/projects/obtservices/graphQL/documents/searchAirlines.graphql +32 -0
  392. package/projects/obtservices/graphQL/documents/searchCities.graphql +14 -0
  393. package/projects/obtservices/graphQL/documents/searchConfermaCities.graphql +11 -0
  394. package/projects/obtservices/graphQL/documents/searchEurostar.graphql +810 -0
  395. package/projects/obtservices/graphQL/documents/searchHotelChains.graphql +3 -0
  396. package/projects/obtservices/graphQL/documents/searchIRL.graphql +521 -0
  397. package/projects/obtservices/graphQL/documents/searchPostcodes.graphql +7 -0
  398. package/projects/obtservices/graphQL/documents/searchRailStations.graphql +27 -0
  399. package/projects/obtservices/graphQL/documents/searchUserAddresses.graphql +14 -0
  400. package/projects/obtservices/graphQL/documents/set-basker-item-mi-group.graphql +9 -0
  401. package/projects/obtservices/graphQL/documents/setBasketItemLeadPassenger.graphql +5 -0
  402. package/projects/obtservices/graphQL/documents/setBasketItemMIValue.graphql +16 -0
  403. package/projects/obtservices/graphQL/documents/setBasketItemPaymentMethod.graphql +12 -0
  404. package/projects/obtservices/graphQL/documents/updateBasketNotes.graphql +10 -0
  405. package/projects/obtservices/graphQL/documents/updateBasketTitle.graphql +10 -0
  406. package/projects/obtservices/graphQL/documents/user.fragments.graphql +65 -0
  407. package/projects/obtservices/graphQL/documents/user.graphql +95 -0
  408. package/projects/obtservices/graphQL/documents/validateUserMIFreeValue.graphql +3 -0
  409. package/projects/obtservices/graphQL/schema/schema.graphql +2635 -0
  410. package/projects/obtservices/karma.conf.js +32 -0
  411. package/projects/obtservices/ng-package.json +7 -0
  412. package/projects/obtservices/package-lock.json +5 -0
  413. package/projects/obtservices/package.json +12 -0
  414. package/projects/obtservices/src/obtservices.ts +0 -0
  415. package/projects/obtservices/src/public_api.ts +1 -0
  416. package/projects/obtservices/tsconfig.lib.json +30 -0
  417. package/projects/obtservices/tsconfig.spec.json +17 -0
  418. package/projects/obtservices/tslint.json +17 -0
  419. package/tsconfig.json +36 -0
  420. package/tslint.json +62 -0
@@ -0,0 +1,541 @@
1
+ import { BehaviorSubject, Observable } from 'rxjs';
2
+ import moment from 'moment';
3
+ import { BaseEnterpriseSearch } from './base-enterprise';
4
+ import { BaseStorageService } from '../services/storage.service';
5
+ import { BaseHelperRoutines } from './helpers';
6
+ import { Traveller } from '../models/traveller.object';
7
+ import {
8
+ NgbDateStruct,
9
+ OBTAirportDetails,
10
+ ParkingQuoteResultArray,
11
+ TerminalsType,
12
+ ParkingFiltersInterface,
13
+ RecentSearch
14
+ } from '../types/types';
15
+ import {
16
+ AirportResults,
17
+ BasketItem,
18
+ ParkingQuote,
19
+ SaveRecentSearchMutationVariables,
20
+ SearchFlightsV2QueryVariables,
21
+ SearchParkingQueryVariables,
22
+ ServiceType
23
+ } from '../types/graphql.types';
24
+ import {
25
+ BaseParkingQuoteFetcher,
26
+ ParkingQuoteFetcherType
27
+ } from '../fetchers/parking-quote-fetcher';
28
+ import {
29
+ EnterpriseBasketServiceInterface,
30
+ InternalBasketInterface
31
+ } from '../interfaces/Ienterprise-basket.service';
32
+ import { EnterpriseSearchServiceInterface } from '../interfaces/Isearch.service';
33
+ import {
34
+ ParkingEnterpriseSearchInterface,
35
+ ParkingTempParams
36
+ } from '../interfaces/Iparking-enterprise-search';
37
+ import { ICheapestPrice } from '../interfaces/cheapest-price';
38
+ export const defaultValidations = {
39
+ AirportFirst: `You must select airport first.`,
40
+ InvardJourney: `Inward journey cannot be in the past.`,
41
+ OutwardJourney: `Outward journey cannot be in the past.`,
42
+ DateOverlapped: `Inward Journey can not be before outward journey`
43
+ };
44
+
45
+ export class ParkingEnterpriseSearch<Q extends ParkingQuoteFetcherType>
46
+ extends BaseEnterpriseSearch<
47
+ ParkingTempParams,
48
+ ParkingQuoteResultArray,
49
+ ParkingQuoteResultArray
50
+ >
51
+ implements ParkingEnterpriseSearchInterface
52
+ {
53
+ static readonly STORAGE_SESSION_PARAMS = 'search_parking';
54
+ static readonly STORAGE_SESSION_RESULTS = 'results_parking';
55
+
56
+ public type: ServiceType = ServiceType.Parking;
57
+ public terminals = new BehaviorSubject<TerminalsType[]>([]);
58
+
59
+ public listViewToggle = new BehaviorSubject<ParkingQuote>(null);
60
+
61
+ public parkingFiltersText: ParkingFiltersInterface = {
62
+ onAirport: 'On Airport',
63
+ meetAndGreet: 'Meet and greet',
64
+ parkAndRide: 'Park and ride',
65
+ parkAndStroll: 'Park and stroll',
66
+ carParkedForYou: 'Car parked for you'
67
+ };
68
+
69
+ private _locationCode: string;
70
+
71
+ get outdate(): NgbDateStruct {
72
+ return this._outdate;
73
+ }
74
+
75
+ set outdate(value: NgbDateStruct) {
76
+ this._outdate = value;
77
+ if (this._outdate && this._outdate) {
78
+ this.arrivalDatetime = this.helpers.ngDateToMoment(
79
+ this._outdate,
80
+ this._outtime
81
+ );
82
+ }
83
+ }
84
+
85
+ get outtime(): string {
86
+ return this._outtime;
87
+ }
88
+
89
+ set outtime(value: string) {
90
+ this._outtime = value;
91
+ if (this._outdate && this._outtime) {
92
+ this.arrivalDatetime = this.helpers.ngDateToMoment(
93
+ this._outdate,
94
+ this._outtime
95
+ );
96
+ }
97
+ }
98
+
99
+ /**
100
+ * The date you need the parking till
101
+ */
102
+ get departDatetime(): moment.Moment {
103
+ return this.tempParams.departDatetime;
104
+ }
105
+
106
+ /**
107
+ * The date you need the parking till
108
+ */
109
+ set departDatetime(value: moment.Moment) {
110
+ this.tempParams.departDatetime = value.isValid() ? value : null;
111
+ if (value && value.isValid()) {
112
+ this._indate = this.helpers.momentToNgDate(value);
113
+ this._intime = this.helpers.formatTimeColon(value);
114
+ }
115
+ this._isValid();
116
+ }
117
+
118
+ get indate(): NgbDateStruct {
119
+ return this._indate;
120
+ }
121
+
122
+ set indate(value: NgbDateStruct) {
123
+ this._indate = value;
124
+ if (this._indate && this._intime) {
125
+ this.departDatetime = this.helpers.ngDateToMoment(
126
+ this._indate,
127
+ this._intime
128
+ );
129
+ }
130
+ }
131
+ get intime(): string {
132
+ return this._intime;
133
+ }
134
+
135
+ set intime(value: string) {
136
+ this._intime = value;
137
+ this.departDatetime = this.helpers.ngDateToMoment(
138
+ this._indate,
139
+ this._intime
140
+ );
141
+ }
142
+
143
+ /**
144
+ * The date you need the parking from
145
+ */
146
+ get arrivalDatetime(): moment.Moment {
147
+ return this.tempParams?.arrivalDatetime;
148
+ }
149
+
150
+ /**
151
+ * The date you need the parking from
152
+ */
153
+ set arrivalDatetime(value: moment.Moment) {
154
+ this.tempParams.arrivalDatetime = value.isValid ? value : null;
155
+ if (value && value.isValid()) {
156
+ this._outdate = this.helpers.momentToNgDate(value);
157
+ this._outtime = this.helpers.formatTimeColon(value);
158
+
159
+ if (
160
+ this.departDatetime &&
161
+ this.departDatetime.isSameOrBefore(this.arrivalDatetime)
162
+ ) {
163
+ const dayAfterArrivalDateTime = this.arrivalDatetime.clone();
164
+ this.departDatetime = dayAfterArrivalDateTime;
165
+ }
166
+ }
167
+ this._isValid();
168
+ }
169
+
170
+ get outFlightNumber(): string {
171
+ return this.tempParams?.outFlightNumber;
172
+ }
173
+
174
+ set outFlightNumber(value: string) {
175
+ this.tempParams.outFlightNumber = value || null;
176
+ this._isValid();
177
+ }
178
+
179
+ get recommended(): boolean | null {
180
+ return !!this.tempParams?.recommended;
181
+ }
182
+ set recommended(value: boolean) {
183
+ this.tempParams.recommended = value || null;
184
+ this._isValid();
185
+ }
186
+ get onAirport(): boolean {
187
+ return !!this.tempParams?.onAirport;
188
+ }
189
+
190
+ set onAirport(value: boolean) {
191
+ this.tempParams.onAirport = value || null;
192
+ this._isValid();
193
+ }
194
+
195
+ get meetAndGreet(): boolean {
196
+ return !!this.tempParams?.meetAndGreet;
197
+ }
198
+
199
+ set meetAndGreet(value: boolean) {
200
+ this.tempParams.meetAndGreet = value || null;
201
+ this._isValid();
202
+ }
203
+
204
+ get parkAndRide(): boolean {
205
+ return !!this.tempParams?.parkAndRide;
206
+ }
207
+
208
+ set parkAndRide(value: boolean) {
209
+ this.tempParams.parkAndRide = value || null;
210
+ this._isValid();
211
+ }
212
+
213
+ get parkAndStroll(): boolean {
214
+ return !!this.tempParams?.parkAndStroll;
215
+ }
216
+
217
+ set parkAndStroll(value: boolean) {
218
+ this.tempParams.parkAndStroll = value || null;
219
+ this._isValid();
220
+ }
221
+
222
+ get carParkedForYou(): boolean {
223
+ return !!this.tempParams?.carParkedForYou;
224
+ }
225
+
226
+ set carParkedForYou(value: boolean) {
227
+ this.tempParams.carParkedForYou = value || null;
228
+ this._isValid();
229
+ }
230
+
231
+ get terminal(): string {
232
+ return this.tempParams.terminal
233
+ ? this.tempParams.terminal.toString()
234
+ : null;
235
+ }
236
+
237
+ set terminal(input: string) {
238
+ this.tempParams.terminal = input;
239
+ const found: TerminalsType = this.terminals.value.find(
240
+ (terminal: TerminalsType, index: number) => {
241
+ if (terminal.value === input) {
242
+ return true;
243
+ }
244
+ }
245
+ );
246
+
247
+ if (found) {
248
+ this.selectedTerminal = found.key;
249
+ } else {
250
+ if (this.terminals.value && this.terminals.value.length > 0) {
251
+ this.selectedTerminal = this.terminals.value[0].key;
252
+ } else {
253
+ this.selectedTerminal = 'Any Terminal';
254
+ }
255
+ }
256
+ this._isValid();
257
+ }
258
+
259
+ get locationCode(): string | OBTAirportDetails {
260
+ return this.tempParams.locationCode;
261
+ }
262
+
263
+ set locationCode(value: string | OBTAirportDetails) {
264
+ this.tempParams.locationCode = value;
265
+
266
+ if (typeof value === 'string') {
267
+ this._locationCode = null;
268
+ this.terminal = null;
269
+ this.terminals.next([]);
270
+ this.selectedTerminal = null;
271
+ this._isValid();
272
+ } else if (value && value.gateway) {
273
+ this._locationCode = value.gateway;
274
+ this.terminal = null;
275
+ this.terminals.next(value.terminals);
276
+ if (value.terminals.length === 1) {
277
+ this.selectedTerminal = value.terminals[0].key;
278
+ }
279
+ this._isValid();
280
+ } else {
281
+ this._locationCode = null;
282
+ this.terminal = null;
283
+ this.terminals.next([]);
284
+ this.selectedTerminal = null;
285
+ this._isValid();
286
+ }
287
+ }
288
+
289
+ private _selectedTerminal: string = '';
290
+ set selectedTerminal(value: string) {
291
+ this._selectedTerminal = value;
292
+ }
293
+
294
+ get selectedTerminal(): string {
295
+ return this._selectedTerminal;
296
+ }
297
+
298
+ // public variables
299
+ public min_date = {
300
+ year: moment().year(),
301
+ month: moment().month() + 1, // ngbDate months are not 0 indexed
302
+ day: moment().date()
303
+ };
304
+
305
+ public min_return_date = {
306
+ year: moment().year(),
307
+ month: moment().month() + 1, // ngbDate months are not 0 indexed
308
+ day: moment().date() + 1 // min 1 night stay
309
+ };
310
+
311
+ private travellers: Traveller[];
312
+
313
+ constructor(
314
+ private parkingfetcher: BaseParkingQuoteFetcher<Q>,
315
+ private helpers: BaseHelperRoutines,
316
+ private basketService: EnterpriseBasketServiceInterface,
317
+ storageService: BaseStorageService,
318
+ private searchService: EnterpriseSearchServiceInterface
319
+ ) {
320
+ super(storageService);
321
+
322
+ const data: {
323
+ tempParams: ParkingTempParams;
324
+ } = storageService.getSessionItem(
325
+ ParkingEnterpriseSearch.STORAGE_SESSION_PARAMS
326
+ ) || {
327
+ tempParams: {} as ParkingTempParams
328
+ };
329
+
330
+ this.updateTempParams(searchService.makeParkingQuery(data.tempParams));
331
+
332
+ const results =
333
+ storageService.getSessionItemAsList<ParkingQuoteResultArray>(
334
+ this.resultsSessionName
335
+ ) || [];
336
+
337
+ this.results.next(results);
338
+ this._cheapestResultPrice = this.updateLowestPrice(results);
339
+ if (searchService.shouldAddTravellerSubscription()) {
340
+ searchService.travellerInformation.subscribe(
341
+ (travellers: Traveller[]) => {
342
+ this.travellers = travellers;
343
+ this._isValid();
344
+ }
345
+ );
346
+ }
347
+ }
348
+
349
+ protected resultsSessionName =
350
+ ParkingEnterpriseSearch.STORAGE_SESSION_RESULTS;
351
+
352
+ private _outdate: NgbDateStruct = null;
353
+
354
+ private _outtime: string = null;
355
+
356
+ private _indate: NgbDateStruct = null;
357
+
358
+ private _intime: string = null;
359
+
360
+ protected resetQuery(): void {
361
+ this.updateTempParams(this.searchService.makeParkingQuery());
362
+ this._isValid();
363
+ }
364
+
365
+ private _isValid() {
366
+ if (!this.doChecks) {
367
+ return;
368
+ }
369
+ this.storageService.setSessionItem(
370
+ ParkingEnterpriseSearch.STORAGE_SESSION_PARAMS,
371
+ {
372
+ location: this._locationCode,
373
+ travellers: this.travellers,
374
+ tempParams: this.tempParams
375
+ }
376
+ );
377
+
378
+ this.validationMessages = [];
379
+ if (!this._locationCode || this._locationCode === '') {
380
+ this.validationMessages.push(defaultValidations.AirportFirst);
381
+ }
382
+
383
+ // if (!this.query?.terminal) {
384
+ // this.validationMessages.push('Terminal can not be empty.');
385
+ // }
386
+
387
+ if (this.tempParams?.arrivalDatetime.unix() < moment().unix()) {
388
+ this.validationMessages.push(defaultValidations.InvardJourney);
389
+ }
390
+
391
+ if (this.tempParams?.departDatetime.unix() < moment().unix()) {
392
+ this.validationMessages.push(defaultValidations.OutwardJourney);
393
+ }
394
+
395
+ if (
396
+ this.tempParams.departDatetime?.isBefore(this.tempParams.arrivalDatetime)
397
+ ) {
398
+ this.validationMessages.push(defaultValidations.DateOverlapped);
399
+ }
400
+ this.isValid.next(this.validationMessages.length === 0);
401
+ this.messages.next(this.validationMessages);
402
+ }
403
+
404
+ startSearch(): Promise<boolean> {
405
+ this.results.next([]);
406
+ if (this.isValid.value) {
407
+ const query = this.getSearchQuery();
408
+ this.searchService.saveRecentSearch(this.getRecentSearchQuery(query));
409
+ return this._startSearch(
410
+ this.parkingfetcher.fetchList(
411
+ this.helpers.removeNulls<SearchParkingQueryVariables>(
412
+ query
413
+ )
414
+ )
415
+ );
416
+ } else {
417
+ return Promise.resolve(false);
418
+ }
419
+ }
420
+
421
+ getRecentSearchQuery(query: SearchParkingQueryVariables): SaveRecentSearchMutationVariables {
422
+ return {
423
+ serviceType: ServiceType.Parking,
424
+ searchArgs: query,
425
+ travelDate: this.arrivalDatetime.format(),
426
+ travellers: this.helpers.getTravellersId(this.travellers)
427
+ };
428
+ }
429
+
430
+ public startRecentSearch(recentSearch: RecentSearch): void {
431
+ this.arrivalDatetime= moment(recentSearch.searchArgs.arrivalDatetime);
432
+ this.departDatetime = moment(recentSearch.searchArgs.departDatetime);
433
+ this.outFlightNumber = recentSearch.searchArgs.outFlightNumber;
434
+ this.terminal = recentSearch.searchArgs.terminal;
435
+
436
+ this.searchService.getAirportByCode(recentSearch.searchArgs.locationCode).subscribe((airport: AirportResults) => {
437
+ if (airport) {
438
+ this.locationCode = {
439
+ country: airport.iataMatch?.locationDetails?.country,
440
+ countryCode: airport.iataMatch?.locationDetails?.countryCode,
441
+ destination: airport.iataMatch.name,
442
+ gateway: airport.iataMatch.iata,
443
+ postcode: airport.iataMatch?.locationDetails?.postcode,
444
+ terminals: this.searchService.processTerminals(airport.iataMatch.terminals),
445
+ };
446
+ this.searchService.startSearches();
447
+ }
448
+ })
449
+
450
+ this.searchService.startSearches();
451
+ }
452
+
453
+ getSearchQuery(): SearchParkingQueryVariables {
454
+ const query: SearchParkingQueryVariables = {
455
+ arrivalDatetime: this.tempParams.arrivalDatetime,
456
+ departDatetime: this.tempParams.departDatetime,
457
+ locationCode: this._locationCode,
458
+ outFlightNumber: this.tempParams.outFlightNumber,
459
+ recommended: this.tempParams.recommended,
460
+ onAirport: this.tempParams.onAirport,
461
+ meetAndGreet: this.tempParams.meetAndGreet,
462
+ parkAndRide: this.tempParams.parkAndRide,
463
+ parkAndStroll: this.tempParams.parkAndStroll,
464
+ carParkedForYou: this.tempParams.carParkedForYou,
465
+ terminal: this.tempParams.terminal === 'Any' ? null : this.tempParams.terminal
466
+ };
467
+ return this.helpers.removeNulls<SearchParkingQueryVariables>(query);
468
+ }
469
+
470
+ sortByPrice(asc?: boolean) {
471
+ let results = this.helpers.clone(this.results.value) || [];
472
+ if (asc) {
473
+ results = results.sort(
474
+ (a: ParkingQuote, b: ParkingQuote) => b.price - a.price
475
+ );
476
+ } else {
477
+ results = results.sort(
478
+ (a: ParkingQuote, b: ParkingQuote) => a.price - b.price
479
+ );
480
+ }
481
+ this.results.next(results);
482
+ }
483
+
484
+ updateFromPreviousSearches(
485
+ previousItems: Record<ServiceType, BasketItem>
486
+ ): void {
487
+ const flightItem: SearchFlightsV2QueryVariables =
488
+ previousItems[ServiceType.Flight]?.searchQuery;
489
+ if (flightItem) {
490
+ // TODO flights haven't been done yet.
491
+ }
492
+ }
493
+
494
+ async addParkingToBasket(
495
+ parkingQuote: ParkingQuote,
496
+ parkingQuery: SearchParkingQueryVariables
497
+ ): Promise<boolean> {
498
+ const intBasket: InternalBasketInterface =
499
+ await this.basketService.getDefaultBasket();
500
+ const basket = intBasket?.subject.value;
501
+ if (basket) {
502
+ return this.basketService.addToBasket(
503
+ {
504
+ adults: 1,
505
+ basket: basket.id,
506
+ service: parkingQuote.sourceId.toString(),
507
+ detail: {
508
+ arrivalDatetime: parkingQuery.arrivalDatetime.format(),
509
+ departDatetime: parkingQuery.departDatetime.format(),
510
+ locationCode: parkingQuote.carPark.code,
511
+ name: parkingQuote.carPark.name,
512
+ requiredInfo: parkingQuote.requiredInfo,
513
+ airportIata: parkingQuery.locationCode
514
+ },
515
+ price: parkingQuote.price,
516
+ currency: parkingQuote.currency,
517
+ searchQuery: parkingQuery,
518
+ outboundDate: parkingQuery.arrivalDatetime.format(),
519
+ inboundDate: parkingQuery.departDatetime.format()
520
+ },
521
+ intBasket,
522
+ this.searchService,
523
+ this.travellers
524
+ );
525
+ }
526
+ return Promise.resolve(false);
527
+ }
528
+
529
+ updateLowestPrice(results: ParkingQuote[]): ICheapestPrice {
530
+ if (!results.length) return null;
531
+ const currency = results[0].currency;
532
+ return results.reduce(
533
+ (cheapestPrice: ICheapestPrice, result: ParkingQuote) => {
534
+ const price = result.price;
535
+ if (cheapestPrice.amount > price) cheapestPrice.amount = price;
536
+ return cheapestPrice;
537
+ },
538
+ { amount: Number.MAX_SAFE_INTEGER, currencyCode: currency }
539
+ );
540
+ }
541
+ }
@@ -0,0 +1,4 @@
1
+ export enum RailDirection {
2
+ Outbound = 'out',
3
+ Inbound = 'in'
4
+ }