@norwegian/core-components 5.1.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 (1004) hide show
  1. package/README.md +78 -0
  2. package/assets/documentation/accordion/accordion.md +1 -0
  3. package/assets/documentation/airport-select/airport-select.md +0 -0
  4. package/assets/documentation/autocomplete/autocomplete.md +1 -0
  5. package/assets/documentation/box/box.md +1 -0
  6. package/assets/documentation/button/button.md +10 -0
  7. package/assets/documentation/checkbox/checkbox.md +7 -0
  8. package/assets/documentation/chip/chip.md +1 -0
  9. package/assets/documentation/container/container.md +1 -0
  10. package/assets/documentation/continue/continue.md +1 -0
  11. package/assets/documentation/cover/cover.md +1 -0
  12. package/assets/documentation/datepicker/calendar/calendar.md +3 -0
  13. package/assets/documentation/datepicker/datepicker.md +3 -0
  14. package/assets/documentation/datepicker-combo/datepicker-combo.md +1 -0
  15. package/assets/documentation/dropdown/dropdown.md +3 -0
  16. package/assets/documentation/filter/filter.md +0 -0
  17. package/assets/documentation/grid/grid.md +1 -0
  18. package/assets/documentation/icon/icon.md +4 -0
  19. package/assets/documentation/icon-list/icon-list.md +1 -0
  20. package/assets/documentation/info/info.md +1 -0
  21. package/assets/documentation/input/input.md +1 -0
  22. package/assets/documentation/journey/journey.md +1 -0
  23. package/assets/documentation/journey-availability/journey-availability.md +3 -0
  24. package/assets/documentation/journey-availability-list/journey-availability-list.md +9 -0
  25. package/assets/documentation/journey-selection/journey-selection.md +1 -0
  26. package/assets/documentation/journey-stopover/journey-stopover.md +1 -0
  27. package/assets/documentation/list/list.md +1 -0
  28. package/assets/documentation/modal/modal.md +0 -0
  29. package/assets/documentation/number-field/number-field.md +1 -0
  30. package/assets/documentation/page-footer/page-footer.md +1 -0
  31. package/assets/documentation/page-header/page-header.md +1 -0
  32. package/assets/documentation/passenger-select/passenger-select.md +1 -0
  33. package/assets/documentation/phone-number/phone-number.md +2 -0
  34. package/assets/documentation/premium-toggle/premium-toggle.md +9 -0
  35. package/assets/documentation/radio/radio.md +7 -0
  36. package/assets/documentation/select/select.md +1 -0
  37. package/assets/documentation/simple-list/simple-list.md +1 -0
  38. package/assets/documentation/slide-toggle/slide-toggle.md +1 -0
  39. package/assets/documentation/slider/slider.md +1 -0
  40. package/assets/documentation/sort/sort.md +1 -0
  41. package/assets/documentation/spinner/spinner.md +1 -0
  42. package/assets/documentation/subsidy-discount/subsidy-discount.md +3 -0
  43. package/assets/documentation/suggestions/suggestions.md +1 -0
  44. package/assets/documentation/tab-group/tab-group.md +1 -0
  45. package/assets/documentation/table/table.md +8 -0
  46. package/assets/documentation/textarea/textarea.md +1 -0
  47. package/assets/documentation/toggle/toggle.md +5 -0
  48. package/assets/documentation/trip-summary/trip-summary.md +2 -0
  49. package/assets/documentation/weather-icon/weather-icon.md +1 -0
  50. package/assets/fonts/TiemposHeadlineWeb-Bold.eot +0 -0
  51. package/assets/fonts/TiemposHeadlineWeb-Bold.woff +0 -0
  52. package/assets/fonts/TiemposHeadlineWeb-Bold.woff2 +0 -0
  53. package/assets/fonts/TiemposHeadlineWeb-BoldItalic.eot +0 -0
  54. package/assets/fonts/TiemposHeadlineWeb-BoldItalic.woff +0 -0
  55. package/assets/fonts/TiemposHeadlineWeb-BoldItalic.woff2 +0 -0
  56. package/assets/fonts/TiemposText-Medium.eot +0 -0
  57. package/assets/fonts/TiemposText-Medium.woff +0 -0
  58. package/assets/fonts/TiemposText-Medium.woff2 +0 -0
  59. package/assets/fonts/TiemposTextWeb-Italic.eot +0 -0
  60. package/assets/fonts/TiemposTextWeb-Italic.woff +0 -0
  61. package/assets/fonts/TiemposTextWeb-Italic.woff2 +0 -0
  62. package/assets/fonts/TiemposTextWeb-Regular.eot +0 -0
  63. package/assets/fonts/TiemposTextWeb-Regular.woff +0 -0
  64. package/assets/fonts/TiemposTextWeb-Regular.woff2 +0 -0
  65. package/assets/fonts/apercu_bold_italic_pro-web.eot +0 -0
  66. package/assets/fonts/apercu_bold_italic_pro-web.svg +12420 -0
  67. package/assets/fonts/apercu_bold_italic_pro-web.ttf +0 -0
  68. package/assets/fonts/apercu_bold_italic_pro-web.woff +0 -0
  69. package/assets/fonts/apercu_bold_italic_pro-web.woff2 +0 -0
  70. package/assets/fonts/apercu_bold_italic_pro.otf +0 -0
  71. package/assets/fonts/apercu_bold_pro-web.eot +0 -0
  72. package/assets/fonts/apercu_bold_pro-web.svg +10193 -0
  73. package/assets/fonts/apercu_bold_pro-web.ttf +0 -0
  74. package/assets/fonts/apercu_bold_pro-web.woff +0 -0
  75. package/assets/fonts/apercu_bold_pro-web.woff2 +0 -0
  76. package/assets/fonts/apercu_bold_pro.otf +0 -0
  77. package/assets/fonts/apercu_light_italic_pro-web.eot +0 -0
  78. package/assets/fonts/apercu_light_italic_pro-web.svg +12831 -0
  79. package/assets/fonts/apercu_light_italic_pro-web.ttf +0 -0
  80. package/assets/fonts/apercu_light_italic_pro-web.woff +0 -0
  81. package/assets/fonts/apercu_light_italic_pro-web.woff2 +0 -0
  82. package/assets/fonts/apercu_light_pro-web.eot +0 -0
  83. package/assets/fonts/apercu_light_pro-web.svg +9704 -0
  84. package/assets/fonts/apercu_light_pro-web.ttf +0 -0
  85. package/assets/fonts/apercu_light_pro-web.woff +0 -0
  86. package/assets/fonts/apercu_light_pro-web.woff2 +0 -0
  87. package/assets/fonts/apercu_medium_italic_pro-web.eot +0 -0
  88. package/assets/fonts/apercu_medium_italic_pro-web.svg +12354 -0
  89. package/assets/fonts/apercu_medium_italic_pro-web.ttf +0 -0
  90. package/assets/fonts/apercu_medium_italic_pro-web.woff +0 -0
  91. package/assets/fonts/apercu_medium_italic_pro-web.woff2 +0 -0
  92. package/assets/fonts/apercu_medium_italic_pro.otf +0 -0
  93. package/assets/fonts/apercu_medium_pro-web.eot +0 -0
  94. package/assets/fonts/apercu_medium_pro-web.svg +12254 -0
  95. package/assets/fonts/apercu_medium_pro-web.ttf +0 -0
  96. package/assets/fonts/apercu_medium_pro-web.woff +0 -0
  97. package/assets/fonts/apercu_medium_pro-web.woff2 +0 -0
  98. package/assets/fonts/apercu_medium_pro.otf +0 -0
  99. package/assets/fonts/apercu_mono_pro-web.eot +0 -0
  100. package/assets/fonts/apercu_mono_pro-web.svg +538 -0
  101. package/assets/fonts/apercu_mono_pro-web.ttf +0 -0
  102. package/assets/fonts/apercu_mono_pro-web.woff +0 -0
  103. package/assets/fonts/apercu_mono_pro-web.woff2 +0 -0
  104. package/assets/fonts/apercu_regular_italic_pro-web.eot +0 -0
  105. package/assets/fonts/apercu_regular_italic_pro-web.svg +13059 -0
  106. package/assets/fonts/apercu_regular_italic_pro-web.ttf +0 -0
  107. package/assets/fonts/apercu_regular_italic_pro-web.woff +0 -0
  108. package/assets/fonts/apercu_regular_italic_pro-web.woff2 +0 -0
  109. package/assets/fonts/apercu_regular_italic_pro.otf +0 -0
  110. package/assets/fonts/apercu_regular_pro-web.eot +0 -0
  111. package/assets/fonts/apercu_regular_pro-web.svg +11356 -0
  112. package/assets/fonts/apercu_regular_pro-web.ttf +0 -0
  113. package/assets/fonts/apercu_regular_pro-web.woff +0 -0
  114. package/assets/fonts/apercu_regular_pro-web.woff2 +0 -0
  115. package/assets/fonts/apercu_regular_pro.otf +0 -0
  116. package/assets/icons/flags/ar.svg +20 -0
  117. package/assets/icons/flags/br.svg +30 -0
  118. package/assets/icons/flags/ca.svg +18 -0
  119. package/assets/icons/flags/de.svg +20 -0
  120. package/assets/icons/flags/dk.svg +20 -0
  121. package/assets/icons/flags/en.svg +20 -0
  122. package/assets/icons/flags/es.svg +20 -0
  123. package/assets/icons/flags/fi.svg +20 -0
  124. package/assets/icons/flags/fr.svg +20 -0
  125. package/assets/icons/flags/ie.svg +22 -0
  126. package/assets/icons/flags/it.svg +20 -0
  127. package/assets/icons/flags/nl.svg +20 -0
  128. package/assets/icons/flags/no.svg +20 -0
  129. package/assets/icons/flags/pl.svg +20 -0
  130. package/assets/icons/flags/se.svg +20 -0
  131. package/assets/icons/flags/uk.svg +20 -0
  132. package/assets/icons/flags/us.svg +20 -0
  133. package/assets/icons/icon-add--light.svg +11 -0
  134. package/assets/icons/icon-add.svg +7 -0
  135. package/assets/icons/icon-arrow-left--light.svg +7 -0
  136. package/assets/icons/icon-arrow-left.svg +7 -0
  137. package/assets/icons/icon-arrow-right--light.svg +7 -0
  138. package/assets/icons/icon-arrow-right.svg +6 -0
  139. package/assets/icons/icon-check.svg +7 -0
  140. package/assets/icons/icon-chevron-down.svg +1 -0
  141. package/assets/icons/icon-chevron-left--light.svg +1 -0
  142. package/assets/icons/icon-chevron-left-outlined.svg +4 -0
  143. package/assets/icons/icon-chevron-left.svg +1 -0
  144. package/assets/icons/icon-chevron-right--light.svg +1 -0
  145. package/assets/icons/icon-chevron-right-outlined.svg +4 -0
  146. package/assets/icons/icon-chevron-right.svg +1 -0
  147. package/assets/icons/icon-dropdown-arrow--disabled.svg +8 -0
  148. package/assets/icons/icon-dropdown-arrow--light.svg +8 -0
  149. package/assets/icons/icon-dropdown-arrow.svg +8 -0
  150. package/assets/icons/icon-error.svg +11 -0
  151. package/assets/icons/icon-flight-direct.svg +8 -0
  152. package/assets/icons/icon-flight-one-stop.svg +8 -0
  153. package/assets/icons/icon-flight-two-stops.svg +9 -0
  154. package/assets/icons/icon-geolocation--disabled.svg +8 -0
  155. package/assets/icons/icon-geolocation--light.svg +8 -0
  156. package/assets/icons/icon-geolocation.svg +8 -0
  157. package/assets/icons/icon-goto.svg +8 -0
  158. package/assets/icons/icon-home.svg +1 -0
  159. package/assets/icons/icon-marker.svg +8 -0
  160. package/assets/icons/icon-menu--dark.svg +9 -0
  161. package/assets/icons/icon-menu.svg +9 -0
  162. package/assets/icons/icon-nav_right--large.svg +7 -0
  163. package/assets/icons/icon-nav_right--small.svg +7 -0
  164. package/assets/icons/icon-nav_right.svg +7 -0
  165. package/assets/icons/icon-negative.svg +11 -0
  166. package/assets/icons/icon-ol_li.svg +7 -0
  167. package/assets/icons/icon-one-stop-arrow.svg +8 -0
  168. package/assets/icons/icon-passenger--children.svg +1 -0
  169. package/assets/icons/icon-passenger--female.svg +1 -0
  170. package/assets/icons/icon-passenger--infant.svg +1 -0
  171. package/assets/icons/icon-passenger--male.svg +1 -0
  172. package/assets/icons/icon-positive.svg +10 -0
  173. package/assets/icons/icon-red-circle.svg +7 -0
  174. package/assets/icons/icon-remove.svg +8 -0
  175. package/assets/icons/icon-share_facebook.svg +10 -0
  176. package/assets/icons/icon-share_instagram.svg +12 -0
  177. package/assets/icons/icon-share_twitter.svg +13 -0
  178. package/assets/icons/icon-share_youtube.svg +11 -0
  179. package/assets/icons/icon-star.svg +9 -0
  180. package/assets/icons/icon-subtract--light.svg +12 -0
  181. package/assets/icons/icon-subtract.svg +9 -0
  182. package/assets/icons/icon-switch--secondary.svg +1 -0
  183. package/assets/icons/icon-switch.svg +1 -0
  184. package/assets/icons/icon-two-stops-arrow.svg +10 -0
  185. package/assets/icons/large/baggage-hand-baggage.svg +41 -0
  186. package/assets/icons/large/baggage.svg +75 -0
  187. package/assets/icons/large/car-rentals.svg +61 -0
  188. package/assets/icons/large/cashpoints.svg +92 -0
  189. package/assets/icons/large/celebration.svg +77 -0
  190. package/assets/icons/large/central-airports.svg +44 -0
  191. package/assets/icons/large/customer-service.svg +47 -0
  192. package/assets/icons/large/destinations.svg +78 -0
  193. package/assets/icons/large/direct-flights.svg +73 -0
  194. package/assets/icons/large/entertainment.svg +89 -0
  195. package/assets/icons/large/family.svg +88 -0
  196. package/assets/icons/large/fast-track.svg +57 -0
  197. package/assets/icons/large/food.svg +48 -0
  198. package/assets/icons/large/from-a-to-b.svg +66 -0
  199. package/assets/icons/large/hotels.svg +84 -0
  200. package/assets/icons/large/lounge.svg +67 -0
  201. package/assets/icons/large/new-aircrafts.svg +60 -0
  202. package/assets/icons/large/personnel.svg +54 -0
  203. package/assets/icons/large/premium.svg +49 -0
  204. package/assets/icons/large/wifi.svg +112 -0
  205. package/assets/icons/list--journey.svg +207 -0
  206. package/assets/icons/medium/accommodation--light.svg +16 -0
  207. package/assets/icons/medium/accommodation.svg +15 -0
  208. package/assets/icons/medium/alert--error.svg +11 -0
  209. package/assets/icons/medium/alert--light.svg +10 -0
  210. package/assets/icons/medium/alert--success.svg +9 -0
  211. package/assets/icons/medium/alert.svg +11 -0
  212. package/assets/icons/medium/arrow-down--light.svg +11 -0
  213. package/assets/icons/medium/arrow-down.svg +11 -0
  214. package/assets/icons/medium/arrow-left--light.svg +11 -0
  215. package/assets/icons/medium/arrow-left.svg +11 -0
  216. package/assets/icons/medium/arrow-right--light.svg +11 -0
  217. package/assets/icons/medium/arrow-right.svg +11 -0
  218. package/assets/icons/medium/arrow-up--light.svg +11 -0
  219. package/assets/icons/medium/arrow-up.svg +11 -0
  220. package/assets/icons/medium/baggage--light.svg +10 -0
  221. package/assets/icons/medium/baggage-checked-in--light.svg +19 -0
  222. package/assets/icons/medium/baggage-checked-in.svg +20 -0
  223. package/assets/icons/medium/baggage-hand-baggage--light.svg +32 -0
  224. package/assets/icons/medium/baggage-hand-baggage.svg +36 -0
  225. package/assets/icons/medium/baggage-special-baggage--light.svg +21 -0
  226. package/assets/icons/medium/baggage-special-baggage.svg +23 -0
  227. package/assets/icons/medium/baggage-sports-equipment--light.svg +18 -0
  228. package/assets/icons/medium/baggage-sports-equipment.svg +21 -0
  229. package/assets/icons/medium/baggage.svg +11 -0
  230. package/assets/icons/medium/baggages--light.svg +1 -0
  231. package/assets/icons/medium/baggages.svg +1 -0
  232. package/assets/icons/medium/car-rental--light.svg +26 -0
  233. package/assets/icons/medium/car-rental.svg +26 -0
  234. package/assets/icons/medium/card--light.svg +18 -0
  235. package/assets/icons/medium/card.svg +18 -0
  236. package/assets/icons/medium/cashpoints--light.svg +29 -0
  237. package/assets/icons/medium/cashpoints.svg +31 -0
  238. package/assets/icons/medium/central-airports--light.svg +25 -0
  239. package/assets/icons/medium/central-airports.svg +25 -0
  240. package/assets/icons/medium/customer-service--light.svg +19 -0
  241. package/assets/icons/medium/customer-service.svg +22 -0
  242. package/assets/icons/medium/direct-flights--light.svg +24 -0
  243. package/assets/icons/medium/direct-flights.svg +25 -0
  244. package/assets/icons/medium/direct-to-gate--light.svg +18 -0
  245. package/assets/icons/medium/direct-to-gate.svg +18 -0
  246. package/assets/icons/medium/docs--light.svg +10 -0
  247. package/assets/icons/medium/docs.svg +10 -0
  248. package/assets/icons/medium/entertainment--light.svg +71 -0
  249. package/assets/icons/medium/entertainment.svg +81 -0
  250. package/assets/icons/medium/facebook.svg +12 -0
  251. package/assets/icons/medium/family.svg +29 -0
  252. package/assets/icons/medium/fast-track--light.svg +19 -0
  253. package/assets/icons/medium/fast-track.svg +23 -0
  254. package/assets/icons/medium/flexible-tickets--light.svg +16 -0
  255. package/assets/icons/medium/flexible-tickets.svg +18 -0
  256. package/assets/icons/medium/flight-arrival--light.svg +16 -0
  257. package/assets/icons/medium/flight-arrival.svg +15 -0
  258. package/assets/icons/medium/flight-departure--light.svg +12 -0
  259. package/assets/icons/medium/flight-departure.svg +12 -0
  260. package/assets/icons/medium/flight-oneway--light.svg +12 -0
  261. package/assets/icons/medium/flight-oneway.svg +13 -0
  262. package/assets/icons/medium/flight-outbound--light.svg +11 -0
  263. package/assets/icons/medium/flight-outbound.svg +11 -0
  264. package/assets/icons/medium/flight-return--light.svg +11 -0
  265. package/assets/icons/medium/flight-return-trip.svg +13 -0
  266. package/assets/icons/medium/flight-return.svg +11 -0
  267. package/assets/icons/medium/flight-tickets--light.svg +22 -0
  268. package/assets/icons/medium/flight-tickets.svg +21 -0
  269. package/assets/icons/medium/food--light.svg +16 -0
  270. package/assets/icons/medium/food.svg +19 -0
  271. package/assets/icons/medium/frequent-departures--light.svg +16 -0
  272. package/assets/icons/medium/frequent-departures.svg +16 -0
  273. package/assets/icons/medium/from-a-to-b--light.svg +17 -0
  274. package/assets/icons/medium/from-a-to-b.svg +17 -0
  275. package/assets/icons/medium/in-flight-entertainment--light.svg +20 -0
  276. package/assets/icons/medium/in-flight-entertainment.svg +21 -0
  277. package/assets/icons/medium/instagram.svg +14 -0
  278. package/assets/icons/medium/linkedin.svg +17 -0
  279. package/assets/icons/medium/lounge--light.svg +19 -0
  280. package/assets/icons/medium/lounge.svg +21 -0
  281. package/assets/icons/medium/mobile--light.svg +10 -0
  282. package/assets/icons/medium/mobile.svg +9 -0
  283. package/assets/icons/medium/my-profile-female.svg +55 -0
  284. package/assets/icons/medium/my-profile-male.svg +48 -0
  285. package/assets/icons/medium/new-airplanes--light.svg +14 -0
  286. package/assets/icons/medium/new-airplanes.svg +14 -0
  287. package/assets/icons/medium/personnel--light.svg +19 -0
  288. package/assets/icons/medium/personnel.svg +27 -0
  289. package/assets/icons/medium/phone--light.svg +15 -0
  290. package/assets/icons/medium/phone.svg +15 -0
  291. package/assets/icons/medium/premium--light.svg +23 -0
  292. package/assets/icons/medium/premium.svg +23 -0
  293. package/assets/icons/medium/print--light.svg +14 -0
  294. package/assets/icons/medium/printer.svg +14 -0
  295. package/assets/icons/medium/relax--light.svg +27 -0
  296. package/assets/icons/medium/relax.svg +28 -0
  297. package/assets/icons/medium/rewards--light.svg +19 -0
  298. package/assets/icons/medium/rewards-fast-track.svg +17 -0
  299. package/assets/icons/medium/rewards-luggage.svg +22 -0
  300. package/assets/icons/medium/rewards-seat.svg +21 -0
  301. package/assets/icons/medium/rewards.svg +19 -0
  302. package/assets/icons/medium/route-network--light.svg +28 -0
  303. package/assets/icons/medium/route-network.svg +28 -0
  304. package/assets/icons/medium/seat-reservation--light.svg +16 -0
  305. package/assets/icons/medium/seat-reservation.svg +16 -0
  306. package/assets/icons/medium/special-needs--light.svg +15 -0
  307. package/assets/icons/medium/special-needs.svg +15 -0
  308. package/assets/icons/medium/transit-stop--light.svg +30 -0
  309. package/assets/icons/medium/transit-stop.svg +33 -0
  310. package/assets/icons/medium/trash--light.svg +7 -0
  311. package/assets/icons/medium/trash.svg +7 -0
  312. package/assets/icons/medium/travel-deals--light.svg +24 -0
  313. package/assets/icons/medium/travel-deals.svg +24 -0
  314. package/assets/icons/medium/twitter.svg +17 -0
  315. package/assets/icons/medium/type-asia--light.svg +19 -0
  316. package/assets/icons/medium/type-asia.svg +19 -0
  317. package/assets/icons/medium/type-city-vibes--light.svg +14 -0
  318. package/assets/icons/medium/type-city-vibes.svg +14 -0
  319. package/assets/icons/medium/type-greece--light.svg +24 -0
  320. package/assets/icons/medium/type-greece.svg +28 -0
  321. package/assets/icons/medium/type-norway--light.svg +18 -0
  322. package/assets/icons/medium/type-norway.svg +18 -0
  323. package/assets/icons/medium/type-scandinavia--light.svg +32 -0
  324. package/assets/icons/medium/type-scandinavia.svg +32 -0
  325. package/assets/icons/medium/type-shopping--light.svg +20 -0
  326. package/assets/icons/medium/type-shopping.svg +20 -0
  327. package/assets/icons/medium/type-skiing--light.svg +32 -0
  328. package/assets/icons/medium/type-skiing.svg +32 -0
  329. package/assets/icons/medium/type-spain--light.svg +12 -0
  330. package/assets/icons/medium/type-spain.svg +12 -0
  331. package/assets/icons/medium/type-sun-and-sea--light.svg +34 -0
  332. package/assets/icons/medium/type-sun-and-sea.svg +34 -0
  333. package/assets/icons/medium/type-usa--light.svg +46 -0
  334. package/assets/icons/medium/type-usa.svg +46 -0
  335. package/assets/icons/medium/wifi--light.svg +15 -0
  336. package/assets/icons/medium/wifi.svg +15 -0
  337. package/assets/icons/medium/youtube.svg +12 -0
  338. package/assets/icons/mobile-landscape.svg +12 -0
  339. package/assets/icons/mobile-portrait.svg +12 -0
  340. package/assets/icons/small/accommodation--light.svg +15 -0
  341. package/assets/icons/small/accommodation.svg +21 -0
  342. package/assets/icons/small/alert--error.svg +7 -0
  343. package/assets/icons/small/alert--light.svg +10 -0
  344. package/assets/icons/small/alert.svg +10 -0
  345. package/assets/icons/small/arrow-down--light.svg +11 -0
  346. package/assets/icons/small/arrow-down.svg +11 -0
  347. package/assets/icons/small/arrow-left--light.svg +10 -0
  348. package/assets/icons/small/arrow-left.svg +10 -0
  349. package/assets/icons/small/arrow-right--light.svg +11 -0
  350. package/assets/icons/small/arrow-right.svg +11 -0
  351. package/assets/icons/small/arrow-up--light.svg +10 -0
  352. package/assets/icons/small/arrow-up.svg +10 -0
  353. package/assets/icons/small/baggage--light.svg +8 -0
  354. package/assets/icons/small/baggage-checked-in--light.svg +16 -0
  355. package/assets/icons/small/baggage-checked-in.svg +16 -0
  356. package/assets/icons/small/baggage-hand-baggage--light.svg +11 -0
  357. package/assets/icons/small/baggage-hand-baggage.svg +11 -0
  358. package/assets/icons/small/baggage-special-baggage--light.svg +20 -0
  359. package/assets/icons/small/baggage-special-baggage.svg +20 -0
  360. package/assets/icons/small/baggage-sports-equipment--light.svg +25 -0
  361. package/assets/icons/small/baggage-sports-equipment.svg +25 -0
  362. package/assets/icons/small/baggage.svg +10 -0
  363. package/assets/icons/small/baggages--light.svg +1 -0
  364. package/assets/icons/small/baggages.svg +1 -0
  365. package/assets/icons/small/calendar--disabled.svg +14 -0
  366. package/assets/icons/small/calendar--light.svg +14 -0
  367. package/assets/icons/small/calendar.svg +14 -0
  368. package/assets/icons/small/car-rental--light.svg +14 -0
  369. package/assets/icons/small/car-rental.svg +14 -0
  370. package/assets/icons/small/card--light.svg +8 -0
  371. package/assets/icons/small/card.svg +8 -0
  372. package/assets/icons/small/cashpoints--light.svg +21 -0
  373. package/assets/icons/small/cashpoints.svg +21 -0
  374. package/assets/icons/small/central-airports--light.svg +10 -0
  375. package/assets/icons/small/central-airports.svg +10 -0
  376. package/assets/icons/small/check-in--light.svg +11 -0
  377. package/assets/icons/small/check-in.svg +11 -0
  378. package/assets/icons/small/customer-service--light.svg +18 -0
  379. package/assets/icons/small/customer-service.svg +18 -0
  380. package/assets/icons/small/destination--light.svg +9 -0
  381. package/assets/icons/small/destination.svg +9 -0
  382. package/assets/icons/small/direct-flights--light.svg +16 -0
  383. package/assets/icons/small/direct-flights.svg +16 -0
  384. package/assets/icons/small/docs--light.svg +10 -0
  385. package/assets/icons/small/docs.svg +10 -0
  386. package/assets/icons/small/duty-free.svg +24 -0
  387. package/assets/icons/small/email.svg +1 -0
  388. package/assets/icons/small/facebook.svg +12 -0
  389. package/assets/icons/small/family.svg +24 -0
  390. package/assets/icons/small/fast-track--light.svg +15 -0
  391. package/assets/icons/small/fast-track.svg +15 -0
  392. package/assets/icons/small/flexible-tickets--light.svg +12 -0
  393. package/assets/icons/small/flexible-tickets.svg +12 -0
  394. package/assets/icons/small/flight-arrival--light.svg +13 -0
  395. package/assets/icons/small/flight-arrival.svg +16 -0
  396. package/assets/icons/small/flight-departure--light.svg +18 -0
  397. package/assets/icons/small/flight-departure-ground.svg +22 -0
  398. package/assets/icons/small/flight-departure-left.svg +18 -0
  399. package/assets/icons/small/flight-departure.svg +18 -0
  400. package/assets/icons/small/flight-outbound--light.svg +14 -0
  401. package/assets/icons/small/flight-outbound.svg +14 -0
  402. package/assets/icons/small/flight-return--light.svg +14 -0
  403. package/assets/icons/small/flight-return.svg +14 -0
  404. package/assets/icons/small/flight-tickets--light.svg +17 -0
  405. package/assets/icons/small/flight-tickets.svg +17 -0
  406. package/assets/icons/small/food--light.svg +15 -0
  407. package/assets/icons/small/food.svg +15 -0
  408. package/assets/icons/small/from-a-to-b--light.svg +21 -0
  409. package/assets/icons/small/from-a-to-b.svg +23 -0
  410. package/assets/icons/small/google-plus.svg +1 -0
  411. package/assets/icons/small/hotel--light.svg +10 -0
  412. package/assets/icons/small/hotel.svg +11 -0
  413. package/assets/icons/small/in-flight-entertainment--light.svg +10 -0
  414. package/assets/icons/small/in-flight-entertainment.svg +10 -0
  415. package/assets/icons/small/info--light.svg +4 -0
  416. package/assets/icons/small/info--outlined.svg +4 -0
  417. package/assets/icons/small/info.svg +4 -0
  418. package/assets/icons/small/instagram.svg +14 -0
  419. package/assets/icons/small/linkedin.svg +18 -0
  420. package/assets/icons/small/lounge--light.svg +18 -0
  421. package/assets/icons/small/lounge.svg +18 -0
  422. package/assets/icons/small/mail--light.svg +9 -0
  423. package/assets/icons/small/mail.svg +9 -0
  424. package/assets/icons/small/mobile--light.svg +8 -0
  425. package/assets/icons/small/mobile.svg +8 -0
  426. package/assets/icons/small/my-profile--light.svg +14 -0
  427. package/assets/icons/small/my-profile-female--light.svg +49 -0
  428. package/assets/icons/small/my-profile-female.svg +48 -0
  429. package/assets/icons/small/my-profile-male--light.svg +49 -0
  430. package/assets/icons/small/my-profile-male.svg +50 -0
  431. package/assets/icons/small/my-profile.svg +14 -0
  432. package/assets/icons/small/new-airplanes--light.svg +14 -0
  433. package/assets/icons/small/new-airplanes.svg +14 -0
  434. package/assets/icons/small/personnel--light.svg +14 -0
  435. package/assets/icons/small/personnel.svg +14 -0
  436. package/assets/icons/small/pintrest.svg +1 -0
  437. package/assets/icons/small/premium--light.svg +17 -0
  438. package/assets/icons/small/premium.svg +17 -0
  439. package/assets/icons/small/print.svg +14 -0
  440. package/assets/icons/small/reddit.svg +1 -0
  441. package/assets/icons/small/rewards--light.svg +19 -0
  442. package/assets/icons/small/rewards-fast-track.svg +17 -0
  443. package/assets/icons/small/rewards-luggage.svg +22 -0
  444. package/assets/icons/small/rewards-seat.svg +22 -0
  445. package/assets/icons/small/rewards.svg +19 -0
  446. package/assets/icons/small/route-network--light.svg +25 -0
  447. package/assets/icons/small/route-network.svg +25 -0
  448. package/assets/icons/small/search--light.svg +16 -0
  449. package/assets/icons/small/search.svg +16 -0
  450. package/assets/icons/small/seat-reservation--light.svg +14 -0
  451. package/assets/icons/small/seat-reservation.svg +14 -0
  452. package/assets/icons/small/skis--light.svg +24 -0
  453. package/assets/icons/small/skis.svg +24 -0
  454. package/assets/icons/small/special-needs--light.svg +16 -0
  455. package/assets/icons/small/special-needs.svg +16 -0
  456. package/assets/icons/small/sun--light.svg +17 -0
  457. package/assets/icons/small/sun.svg +19 -0
  458. package/assets/icons/small/transit-stop--light.svg +19 -0
  459. package/assets/icons/small/transit-stop.svg +21 -0
  460. package/assets/icons/small/trash--light.svg +7 -0
  461. package/assets/icons/small/trash.svg +7 -0
  462. package/assets/icons/small/travel-deals--light.svg +9 -0
  463. package/assets/icons/small/travel-deals.svg +9 -0
  464. package/assets/icons/small/twitter.svg +17 -0
  465. package/assets/icons/small/type-asia--light.svg +20 -0
  466. package/assets/icons/small/type-asia.svg +20 -0
  467. package/assets/icons/small/type-city-vibes--light.svg +10 -0
  468. package/assets/icons/small/type-city-vibes.svg +10 -0
  469. package/assets/icons/small/type-greece--light.svg +22 -0
  470. package/assets/icons/small/type-greece.svg +22 -0
  471. package/assets/icons/small/type-norway--light.svg +15 -0
  472. package/assets/icons/small/type-norway.svg +15 -0
  473. package/assets/icons/small/type-scandinavia--light.svg +17 -0
  474. package/assets/icons/small/type-scandinavia.svg +35 -0
  475. package/assets/icons/small/type-shopping--light.svg +13 -0
  476. package/assets/icons/small/type-shopping.svg +13 -0
  477. package/assets/icons/small/type-skiing--light.svg +18 -0
  478. package/assets/icons/small/type-skiing.svg +18 -0
  479. package/assets/icons/small/type-spain--light.svg +12 -0
  480. package/assets/icons/small/type-spain.svg +12 -0
  481. package/assets/icons/small/type-sun-and-sea--light.svg +59 -0
  482. package/assets/icons/small/type-sun-and-sea.svg +59 -0
  483. package/assets/icons/small/type-usa--light.svg +24 -0
  484. package/assets/icons/small/type-usa.svg +24 -0
  485. package/assets/icons/small/wifi--light.svg +17 -0
  486. package/assets/icons/small/wifi.svg +17 -0
  487. package/assets/icons/small/youtube.svg +11 -0
  488. package/assets/icons/tablet-landscape.svg +12 -0
  489. package/assets/icons/tablet-portrait.svg +12 -0
  490. package/assets/icons/upgrade.svg +8 -0
  491. package/assets/icons/weather/humidity.svg +1 -0
  492. package/assets/icons/weather/sun.svg +1 -0
  493. package/assets/icons/weather/sunrise.svg +1 -0
  494. package/assets/icons/weather/sunset.svg +1 -0
  495. package/assets/icons/weather/temperature.svg +1 -0
  496. package/assets/icons/weather/weather--cloud.svg +1 -0
  497. package/assets/icons/weather/weather--rain-sun.svg +1 -0
  498. package/assets/icons/weather/weather--rain.svg +1 -0
  499. package/assets/icons/weather/weather--storm.svg +1 -0
  500. package/assets/icons/weather/weather--sun-cloud.svg +1 -0
  501. package/assets/icons/weather/weather--sun.svg +1 -0
  502. package/assets/images/cloud-1.svg +1 -0
  503. package/assets/images/logo--mobile.svg +50 -0
  504. package/assets/images/logo.svg +135 -0
  505. package/assets/images/slider-bar.svg +7 -0
  506. package/assets/images/slider-thumb-disabled.svg +19 -0
  507. package/assets/images/slider-thumb.svg +14 -0
  508. package/bundles/norwegian-core-components.umd.js +11898 -0
  509. package/bundles/norwegian-core-components.umd.js.map +1 -0
  510. package/esm2015/lib/components/accordion/accordion.component.js +118 -0
  511. package/esm2015/lib/components/accordion/accordion.module.js +15 -0
  512. package/esm2015/lib/components/accordion/index.js +3 -0
  513. package/esm2015/lib/components/airport-select/airport-select-dropdown/airport-select-dropdown.component.js +583 -0
  514. package/esm2015/lib/components/airport-select/airport-select.component.js +400 -0
  515. package/esm2015/lib/components/airport-select/airport-select.module.js +27 -0
  516. package/esm2015/lib/components/airport-select/index.js +4 -0
  517. package/esm2015/lib/components/airport-select/models/airport.model.js +2 -0
  518. package/esm2015/lib/components/airport-select/models/results-labels.model.js +3 -0
  519. package/esm2015/lib/components/airport-select/services/airport-select-dropdown.service.js +34 -0
  520. package/esm2015/lib/components/airport-select/services/airport-select.service.js +29 -0
  521. package/esm2015/lib/components/autocomplete/autocomplete.component.js +265 -0
  522. package/esm2015/lib/components/autocomplete/autocomplete.module.js +26 -0
  523. package/esm2015/lib/components/autocomplete/index.js +4 -0
  524. package/esm2015/lib/components/autocomplete/models/autocomplete.model.js +2 -0
  525. package/esm2015/lib/components/backdrop/backdrop.component.js +54 -0
  526. package/esm2015/lib/components/backdrop/backdrop.module.js +17 -0
  527. package/esm2015/lib/components/backdrop/index.js +3 -0
  528. package/esm2015/lib/components/box/box.component.js +61 -0
  529. package/esm2015/lib/components/box/box.module.js +14 -0
  530. package/esm2015/lib/components/box/index.js +3 -0
  531. package/esm2015/lib/components/button/button.component.js +140 -0
  532. package/esm2015/lib/components/button/button.module.js +15 -0
  533. package/esm2015/lib/components/button/index.js +3 -0
  534. package/esm2015/lib/components/checkbox/checkbox.component.js +125 -0
  535. package/esm2015/lib/components/checkbox/checkbox.module.js +15 -0
  536. package/esm2015/lib/components/checkbox/index.js +3 -0
  537. package/esm2015/lib/components/chip/chip.component.js +50 -0
  538. package/esm2015/lib/components/chip/chip.module.js +17 -0
  539. package/esm2015/lib/components/chip/index.js +3 -0
  540. package/esm2015/lib/components/container/container.component.js +47 -0
  541. package/esm2015/lib/components/container/container.module.js +14 -0
  542. package/esm2015/lib/components/container/index.js +3 -0
  543. package/esm2015/lib/components/continue/continue.component.js +173 -0
  544. package/esm2015/lib/components/continue/continue.module.js +23 -0
  545. package/esm2015/lib/components/continue/index.js +3 -0
  546. package/esm2015/lib/components/cover/cover.component.js +61 -0
  547. package/esm2015/lib/components/cover/cover.module.js +16 -0
  548. package/esm2015/lib/components/cover/index.js +3 -0
  549. package/esm2015/lib/components/datepicker/calendar/calendar-date.model.js +2 -0
  550. package/esm2015/lib/components/datepicker/calendar/calendar.component.js +560 -0
  551. package/esm2015/lib/components/datepicker/calendar/enums/week-start.enum.js +6 -0
  552. package/esm2015/lib/components/datepicker/calendar/models/day.model.js +2 -0
  553. package/esm2015/lib/components/datepicker/calendar/models/select-option.model.js +2 -0
  554. package/esm2015/lib/components/datepicker/calendar/models/week.model.js +2 -0
  555. package/esm2015/lib/components/datepicker/datepicker.component.js +511 -0
  556. package/esm2015/lib/components/datepicker/datepicker.module.js +34 -0
  557. package/esm2015/lib/components/datepicker/index.js +5 -0
  558. package/esm2015/lib/components/datepicker/services/calendar.service.js +217 -0
  559. package/esm2015/lib/components/datepicker-combo/datepicker-combo.component.js +306 -0
  560. package/esm2015/lib/components/datepicker-combo/datepicker-combo.module.js +22 -0
  561. package/esm2015/lib/components/datepicker-combo/index.js +3 -0
  562. package/esm2015/lib/components/dropdown/dropdown.component.js +146 -0
  563. package/esm2015/lib/components/dropdown/dropdown.module.js +21 -0
  564. package/esm2015/lib/components/dropdown/index.js +3 -0
  565. package/esm2015/lib/components/filter/enums/trip-type.enum.js +8 -0
  566. package/esm2015/lib/components/filter/filter.component.js +1100 -0
  567. package/esm2015/lib/components/filter/filter.module.js +44 -0
  568. package/esm2015/lib/components/filter/index.js +4 -0
  569. package/esm2015/lib/components/grid/col/col.component.js +47 -0
  570. package/esm2015/lib/components/grid/grid.component.js +55 -0
  571. package/esm2015/lib/components/grid/grid.module.js +15 -0
  572. package/esm2015/lib/components/grid/index.js +4 -0
  573. package/esm2015/lib/components/icon/icon.component.js +42 -0
  574. package/esm2015/lib/components/icon/icon.module.js +17 -0
  575. package/esm2015/lib/components/icon/index.js +3 -0
  576. package/esm2015/lib/components/icon-list/icon-list.component.js +46 -0
  577. package/esm2015/lib/components/icon-list/icon-list.model.js +2 -0
  578. package/esm2015/lib/components/icon-list/icon-list.module.js +15 -0
  579. package/esm2015/lib/components/icon-list/index.js +4 -0
  580. package/esm2015/lib/components/index.js +49 -0
  581. package/esm2015/lib/components/info/index.js +4 -0
  582. package/esm2015/lib/components/info/info.component.js +81 -0
  583. package/esm2015/lib/components/info/info.module.js +21 -0
  584. package/esm2015/lib/components/info/models/info.model.js +2 -0
  585. package/esm2015/lib/components/input/index.js +3 -0
  586. package/esm2015/lib/components/input/input.component.js +139 -0
  587. package/esm2015/lib/components/input/input.module.js +16 -0
  588. package/esm2015/lib/components/journey/index.js +3 -0
  589. package/esm2015/lib/components/journey/journey.component.js +122 -0
  590. package/esm2015/lib/components/journey/journey.module.js +19 -0
  591. package/esm2015/lib/components/journey/models/journey-flight.model.js +2 -0
  592. package/esm2015/lib/components/journey/models/journey.model.js +2 -0
  593. package/esm2015/lib/components/journey-availability/index.js +3 -0
  594. package/esm2015/lib/components/journey-availability/journey-availability.component.js +125 -0
  595. package/esm2015/lib/components/journey-availability/journey-availability.module.js +26 -0
  596. package/esm2015/lib/components/journey-availability-list/enums/availability-sort-option.enum.js +7 -0
  597. package/esm2015/lib/components/journey-availability-list/index.js +3 -0
  598. package/esm2015/lib/components/journey-availability-list/journey-availability-list.component.js +175 -0
  599. package/esm2015/lib/components/journey-availability-list/journey-availability-list.module.js +23 -0
  600. package/esm2015/lib/components/journey-selection/index.js +6 -0
  601. package/esm2015/lib/components/journey-selection/journey-selection.component.js +110 -0
  602. package/esm2015/lib/components/journey-selection/journey-selection.module.js +24 -0
  603. package/esm2015/lib/components/journey-selection/models/journey-selection-collapsed.model.js +2 -0
  604. package/esm2015/lib/components/journey-selection/models/journey-selection-common.model.js +2 -0
  605. package/esm2015/lib/components/journey-selection/models/journey-selection-expanded.model.js +2 -0
  606. package/esm2015/lib/components/journey-selection/models/journey-selection.model.js +2 -0
  607. package/esm2015/lib/components/journey-stopover/index.js +3 -0
  608. package/esm2015/lib/components/journey-stopover/journey-stopover.component.js +121 -0
  609. package/esm2015/lib/components/journey-stopover/journey-stopover.module.js +19 -0
  610. package/esm2015/lib/components/journey-stopover/models/stopover-time.model.js +2 -0
  611. package/esm2015/lib/components/list/index.js +4 -0
  612. package/esm2015/lib/components/list/list-item/list-item.component.js +56 -0
  613. package/esm2015/lib/components/list/list.component.js +75 -0
  614. package/esm2015/lib/components/list/list.module.js +15 -0
  615. package/esm2015/lib/components/modal/index.js +3 -0
  616. package/esm2015/lib/components/modal/modal.component.js +131 -0
  617. package/esm2015/lib/components/modal/modal.module.js +25 -0
  618. package/esm2015/lib/components/number-field/index.js +3 -0
  619. package/esm2015/lib/components/number-field/number-field.component.js +118 -0
  620. package/esm2015/lib/components/number-field/number-field.module.js +24 -0
  621. package/esm2015/lib/components/page-footer/index.js +3 -0
  622. package/esm2015/lib/components/page-footer/page-footer.component.js +49 -0
  623. package/esm2015/lib/components/page-footer/page-footer.module.js +16 -0
  624. package/esm2015/lib/components/page-header/hamburger/hamburger.component.js +24 -0
  625. package/esm2015/lib/components/page-header/index.js +5 -0
  626. package/esm2015/lib/components/page-header/page-header.component.js +119 -0
  627. package/esm2015/lib/components/page-header/page-header.module.js +18 -0
  628. package/esm2015/lib/components/page-header/search/search.component.js +47 -0
  629. package/esm2015/lib/components/passenger-select/enums/passenger-type.enum.js +7 -0
  630. package/esm2015/lib/components/passenger-select/index.js +5 -0
  631. package/esm2015/lib/components/passenger-select/models/passengers.model.js +2 -0
  632. package/esm2015/lib/components/passenger-select/passenger-select.component.js +204 -0
  633. package/esm2015/lib/components/passenger-select/passenger-select.module.js +19 -0
  634. package/esm2015/lib/components/phone-number/index.js +3 -0
  635. package/esm2015/lib/components/phone-number/phone-number.component.js +115 -0
  636. package/esm2015/lib/components/phone-number/phone-number.module.js +27 -0
  637. package/esm2015/lib/components/premium-toggle/index.js +3 -0
  638. package/esm2015/lib/components/premium-toggle/premium-toggle.component.js +66 -0
  639. package/esm2015/lib/components/premium-toggle/premium-toggle.module.js +19 -0
  640. package/esm2015/lib/components/radio/index.js +3 -0
  641. package/esm2015/lib/components/radio/radio.component.js +79 -0
  642. package/esm2015/lib/components/radio/radio.module.js +15 -0
  643. package/esm2015/lib/components/select/index.js +6 -0
  644. package/esm2015/lib/components/select/models/select-option.model.js +2 -0
  645. package/esm2015/lib/components/select/optgroup/optgroup.component.js +31 -0
  646. package/esm2015/lib/components/select/option/option.component.js +29 -0
  647. package/esm2015/lib/components/select/select.component.js +316 -0
  648. package/esm2015/lib/components/select/select.module.js +21 -0
  649. package/esm2015/lib/components/simple-list/index.js +3 -0
  650. package/esm2015/lib/components/simple-list/simple-list.component.js +42 -0
  651. package/esm2015/lib/components/simple-list/simple-list.module.js +14 -0
  652. package/esm2015/lib/components/slide-toggle/index.js +3 -0
  653. package/esm2015/lib/components/slide-toggle/slide-toggle.component.js +105 -0
  654. package/esm2015/lib/components/slide-toggle/slide-toggle.module.js +20 -0
  655. package/esm2015/lib/components/slider/index.js +3 -0
  656. package/esm2015/lib/components/slider/slider.component.js +447 -0
  657. package/esm2015/lib/components/slider/slider.module.js +19 -0
  658. package/esm2015/lib/components/sort/index.js +3 -0
  659. package/esm2015/lib/components/sort/sort.component.js +87 -0
  660. package/esm2015/lib/components/sort/sort.module.js +23 -0
  661. package/esm2015/lib/components/spinner/index.js +3 -0
  662. package/esm2015/lib/components/spinner/spinner.component.js +57 -0
  663. package/esm2015/lib/components/spinner/spinner.module.js +14 -0
  664. package/esm2015/lib/components/subsidy-discount/index.js +4 -0
  665. package/esm2015/lib/components/subsidy-discount/models/subsidy-discount.model.js +2 -0
  666. package/esm2015/lib/components/subsidy-discount/subsidy-discount.component.js +101 -0
  667. package/esm2015/lib/components/subsidy-discount/subsidy-discount.module.js +23 -0
  668. package/esm2015/lib/components/suggestions/index.js +3 -0
  669. package/esm2015/lib/components/suggestions/suggestions.component.js +40 -0
  670. package/esm2015/lib/components/suggestions/suggestions.module.js +19 -0
  671. package/esm2015/lib/components/tab-group/index.js +4 -0
  672. package/esm2015/lib/components/tab-group/tab/tab.component.js +123 -0
  673. package/esm2015/lib/components/tab-group/tab-group.component.js +85 -0
  674. package/esm2015/lib/components/tab-group/tab-group.module.js +20 -0
  675. package/esm2015/lib/components/table/column/column.component.js +17 -0
  676. package/esm2015/lib/components/table/column-group/column-group.component.js +34 -0
  677. package/esm2015/lib/components/table/index.js +11 -0
  678. package/esm2015/lib/components/table/services/table.service.js +20 -0
  679. package/esm2015/lib/components/table/table-body/table-body.component.js +27 -0
  680. package/esm2015/lib/components/table/table-foot/table-foot.component.js +27 -0
  681. package/esm2015/lib/components/table/table-head/table-head.component.js +27 -0
  682. package/esm2015/lib/components/table/table-row/table-data/table-data.component.js +15 -0
  683. package/esm2015/lib/components/table/table-row/table-header/table-header.component.js +15 -0
  684. package/esm2015/lib/components/table/table-row/table-row.component.js +27 -0
  685. package/esm2015/lib/components/table/table.component.js +29 -0
  686. package/esm2015/lib/components/table/table.module.js +45 -0
  687. package/esm2015/lib/components/textarea/index.js +3 -0
  688. package/esm2015/lib/components/textarea/textarea.component.js +73 -0
  689. package/esm2015/lib/components/textarea/textarea.module.js +20 -0
  690. package/esm2015/lib/components/toggle/index.js +3 -0
  691. package/esm2015/lib/components/toggle/models/options.model.js +3 -0
  692. package/esm2015/lib/components/toggle/toggle.component.js +77 -0
  693. package/esm2015/lib/components/toggle/toggle.module.js +22 -0
  694. package/esm2015/lib/components/trip-summary/index.js +3 -0
  695. package/esm2015/lib/components/trip-summary/trip-summary.component.js +152 -0
  696. package/esm2015/lib/components/trip-summary/trip-summary.module.js +23 -0
  697. package/esm2015/lib/components/weather-icon/index.js +3 -0
  698. package/esm2015/lib/components/weather-icon/weather-icon.component.js +56 -0
  699. package/esm2015/lib/components/weather-icon/weather-icon.module.js +14 -0
  700. package/esm2015/lib/core/base/nas-component.base.js +48 -0
  701. package/esm2015/lib/core/decorators/debounce.decorator.js +12 -0
  702. package/esm2015/lib/core/directives/index.js +3 -0
  703. package/esm2015/lib/core/directives/nas-class/nas-class.directive.js +75 -0
  704. package/esm2015/lib/core/directives/nas-class/nas-class.module.js +17 -0
  705. package/esm2015/lib/core/extensions/html-element.extension.js +31 -0
  706. package/esm2015/lib/core/index.js +5 -0
  707. package/esm2015/lib/core/models/abandoned-basket-item.model.js +2 -0
  708. package/esm2015/lib/core/models/animate.model.js +2 -0
  709. package/esm2015/lib/core/models/class.model.js +2 -0
  710. package/esm2015/lib/core/models/index.js +7 -0
  711. package/esm2015/lib/core/models/link.model.js +2 -0
  712. package/esm2015/lib/core/models/position.model.js +2 -0
  713. package/esm2015/lib/core/models/utc-date.model.js +40 -0
  714. package/esm2015/lib/core/services/abandoned-basket/abandoned-basket.service.js +55 -0
  715. package/esm2015/lib/core/services/animate-helper/animate-helper.service.js +47 -0
  716. package/esm2015/lib/core/services/bem-helper/bem-helper.service.js +41 -0
  717. package/esm2015/lib/core/services/date/date-compare.enum.js +7 -0
  718. package/esm2015/lib/core/services/date/date-helper.service.js +196 -0
  719. package/esm2015/lib/core/services/device/device-helper.service.js +43 -0
  720. package/esm2015/lib/core/services/geolocation/geolocation-state.enum.js +8 -0
  721. package/esm2015/lib/core/services/geolocation/geolocation.service.js +60 -0
  722. package/esm2015/lib/core/services/index.js +10 -0
  723. package/esm2015/lib/core/services/language/language-helper.service.js +162 -0
  724. package/esm2015/lib/core/services/sort/sort.service.js +19 -0
  725. package/esm2015/lib/core/services/viewport/viewport.service.js +29 -0
  726. package/esm2015/lib/index.js +5 -0
  727. package/esm2015/lib/services/get-position.service.js +21 -0
  728. package/esm2015/lib/services/index.js +2 -0
  729. package/esm2015/lib/shared/index.js +2 -0
  730. package/esm2015/lib/shared/models/flight-details.js +3 -0
  731. package/esm2015/lib/shared/models/index.js +5 -0
  732. package/esm2015/lib/shared/models/journey-availability-sort.model.js +2 -0
  733. package/esm2015/lib/shared/models/journey-availability.model.js +2 -0
  734. package/esm2015/lib/shared/models/journey-details.model.js +2 -0
  735. package/esm2015/lib/shared/models/journey-duration.model.js +2 -0
  736. package/esm2015/lib/shared/models/journey-stopover.model.js +2 -0
  737. package/esm2015/lib/shared/models/journey-transit-info.model.js +2 -0
  738. package/esm2015/lib/shared/models/operating-carrier.model.js +2 -0
  739. package/esm2015/lib/shared/models/sort-option.model.js +2 -0
  740. package/esm2015/lib/shared/models/sort.model.js +2 -0
  741. package/esm2015/lib/shared/models/trip-item-details.model.js +2 -0
  742. package/esm2015/lib/shared/models/trip-summary-details.model.js +2 -0
  743. package/esm2015/lib/shared/models/trip-summary.model.js +2 -0
  744. package/esm2015/norwegian-core-components.js +12 -0
  745. package/esm2015/public_api.js +2 -0
  746. package/fesm2015/norwegian-core-components.js +10595 -0
  747. package/fesm2015/norwegian-core-components.js.map +1 -0
  748. package/lib/components/accordion/accordion.component.d.ts +205 -0
  749. package/lib/components/accordion/accordion.module.d.ts +2 -0
  750. package/lib/components/accordion/index.d.ts +2 -0
  751. package/lib/components/airport-select/airport-select-dropdown/airport-select-dropdown.component.d.ts +94 -0
  752. package/lib/components/airport-select/airport-select.component.d.ts +256 -0
  753. package/lib/components/airport-select/airport-select.module.d.ts +2 -0
  754. package/lib/components/airport-select/index.d.ts +3 -0
  755. package/lib/components/airport-select/models/airport.model.d.ts +10 -0
  756. package/lib/components/airport-select/models/results-labels.model.d.ts +7 -0
  757. package/lib/components/airport-select/services/airport-select-dropdown.service.d.ts +7 -0
  758. package/lib/components/airport-select/services/airport-select.service.d.ts +5 -0
  759. package/lib/components/autocomplete/autocomplete.component.d.ts +115 -0
  760. package/lib/components/autocomplete/autocomplete.module.d.ts +2 -0
  761. package/lib/components/autocomplete/index.d.ts +3 -0
  762. package/lib/components/autocomplete/models/autocomplete.model.d.ts +5 -0
  763. package/lib/components/backdrop/backdrop.component.d.ts +32 -0
  764. package/lib/components/backdrop/backdrop.module.d.ts +2 -0
  765. package/lib/components/backdrop/index.d.ts +2 -0
  766. package/lib/components/box/box.component.d.ts +69 -0
  767. package/lib/components/box/box.module.d.ts +2 -0
  768. package/lib/components/box/index.d.ts +2 -0
  769. package/lib/components/button/button.component.d.ts +238 -0
  770. package/lib/components/button/button.module.d.ts +2 -0
  771. package/lib/components/button/index.d.ts +2 -0
  772. package/lib/components/checkbox/checkbox.component.d.ts +119 -0
  773. package/lib/components/checkbox/checkbox.module.d.ts +2 -0
  774. package/lib/components/checkbox/index.d.ts +2 -0
  775. package/lib/components/chip/chip.component.d.ts +61 -0
  776. package/lib/components/chip/chip.module.d.ts +2 -0
  777. package/lib/components/chip/index.d.ts +2 -0
  778. package/lib/components/container/container.component.d.ts +47 -0
  779. package/lib/components/container/container.module.d.ts +2 -0
  780. package/lib/components/container/index.d.ts +2 -0
  781. package/lib/components/continue/continue.component.d.ts +154 -0
  782. package/lib/components/continue/continue.module.d.ts +2 -0
  783. package/lib/components/continue/index.d.ts +2 -0
  784. package/lib/components/cover/cover.component.d.ts +112 -0
  785. package/lib/components/cover/cover.module.d.ts +2 -0
  786. package/lib/components/cover/index.d.ts +2 -0
  787. package/lib/components/datepicker/calendar/calendar-date.model.d.ts +5 -0
  788. package/lib/components/datepicker/calendar/calendar.component.d.ts +156 -0
  789. package/lib/components/datepicker/calendar/enums/week-start.enum.d.ts +4 -0
  790. package/lib/components/datepicker/calendar/models/day.model.d.ts +9 -0
  791. package/lib/components/datepicker/calendar/models/select-option.model.d.ts +4 -0
  792. package/lib/components/datepicker/calendar/models/week.model.d.ts +5 -0
  793. package/lib/components/datepicker/datepicker.component.d.ts +235 -0
  794. package/lib/components/datepicker/datepicker.module.d.ts +2 -0
  795. package/lib/components/datepicker/index.d.ts +4 -0
  796. package/lib/components/datepicker/services/calendar.service.d.ts +24 -0
  797. package/lib/components/datepicker-combo/datepicker-combo.component.d.ts +246 -0
  798. package/lib/components/datepicker-combo/datepicker-combo.module.d.ts +2 -0
  799. package/lib/components/datepicker-combo/index.d.ts +2 -0
  800. package/lib/components/dropdown/dropdown.component.d.ts +64 -0
  801. package/lib/components/dropdown/dropdown.module.d.ts +2 -0
  802. package/lib/components/dropdown/index.d.ts +2 -0
  803. package/lib/components/filter/enums/trip-type.enum.d.ts +6 -0
  804. package/lib/components/filter/filter.component.d.ts +693 -0
  805. package/lib/components/filter/filter.module.d.ts +2 -0
  806. package/lib/components/filter/index.d.ts +3 -0
  807. package/lib/components/grid/col/col.component.d.ts +37 -0
  808. package/lib/components/grid/grid.component.d.ts +61 -0
  809. package/lib/components/grid/grid.module.d.ts +2 -0
  810. package/lib/components/grid/index.d.ts +3 -0
  811. package/lib/components/icon/icon.component.d.ts +57 -0
  812. package/lib/components/icon/icon.module.d.ts +2 -0
  813. package/lib/components/icon/index.d.ts +2 -0
  814. package/lib/components/icon-list/icon-list.component.d.ts +41 -0
  815. package/lib/components/icon-list/icon-list.model.d.ts +7 -0
  816. package/lib/components/icon-list/icon-list.module.d.ts +2 -0
  817. package/lib/components/icon-list/index.d.ts +3 -0
  818. package/lib/components/index.d.ts +48 -0
  819. package/lib/components/info/index.d.ts +3 -0
  820. package/lib/components/info/info.component.d.ts +71 -0
  821. package/lib/components/info/info.module.d.ts +2 -0
  822. package/lib/components/info/models/info.model.d.ts +7 -0
  823. package/lib/components/input/index.d.ts +2 -0
  824. package/lib/components/input/input.component.d.ts +163 -0
  825. package/lib/components/input/input.module.d.ts +2 -0
  826. package/lib/components/journey/index.d.ts +2 -0
  827. package/lib/components/journey/journey.component.d.ts +119 -0
  828. package/lib/components/journey/journey.module.d.ts +2 -0
  829. package/lib/components/journey/models/journey-flight.model.d.ts +10 -0
  830. package/lib/components/journey/models/journey.model.d.ts +5 -0
  831. package/lib/components/journey-availability/index.d.ts +2 -0
  832. package/lib/components/journey-availability/journey-availability.component.d.ts +90 -0
  833. package/lib/components/journey-availability/journey-availability.module.d.ts +2 -0
  834. package/lib/components/journey-availability-list/enums/availability-sort-option.enum.d.ts +5 -0
  835. package/lib/components/journey-availability-list/index.d.ts +2 -0
  836. package/lib/components/journey-availability-list/journey-availability-list.component.d.ts +116 -0
  837. package/lib/components/journey-availability-list/journey-availability-list.module.d.ts +2 -0
  838. package/lib/components/journey-selection/index.d.ts +5 -0
  839. package/lib/components/journey-selection/journey-selection.component.d.ts +70 -0
  840. package/lib/components/journey-selection/journey-selection.module.d.ts +2 -0
  841. package/lib/components/journey-selection/models/journey-selection-collapsed.model.d.ts +11 -0
  842. package/lib/components/journey-selection/models/journey-selection-common.model.d.ts +7 -0
  843. package/lib/components/journey-selection/models/journey-selection-expanded.model.d.ts +5 -0
  844. package/lib/components/journey-selection/models/journey-selection.model.d.ts +14 -0
  845. package/lib/components/journey-stopover/index.d.ts +2 -0
  846. package/lib/components/journey-stopover/journey-stopover.component.d.ts +132 -0
  847. package/lib/components/journey-stopover/journey-stopover.module.d.ts +2 -0
  848. package/lib/components/journey-stopover/models/stopover-time.model.d.ts +4 -0
  849. package/lib/components/list/index.d.ts +3 -0
  850. package/lib/components/list/list-item/list-item.component.d.ts +32 -0
  851. package/lib/components/list/list.component.d.ts +65 -0
  852. package/lib/components/list/list.module.d.ts +2 -0
  853. package/lib/components/modal/index.d.ts +2 -0
  854. package/lib/components/modal/modal.component.d.ts +119 -0
  855. package/lib/components/modal/modal.module.d.ts +2 -0
  856. package/lib/components/number-field/index.d.ts +2 -0
  857. package/lib/components/number-field/number-field.component.d.ts +96 -0
  858. package/lib/components/number-field/number-field.module.d.ts +2 -0
  859. package/lib/components/page-footer/index.d.ts +2 -0
  860. package/lib/components/page-footer/page-footer.component.d.ts +57 -0
  861. package/lib/components/page-footer/page-footer.module.d.ts +2 -0
  862. package/lib/components/page-header/hamburger/hamburger.component.d.ts +9 -0
  863. package/lib/components/page-header/index.d.ts +4 -0
  864. package/lib/components/page-header/page-header.component.d.ts +84 -0
  865. package/lib/components/page-header/page-header.module.d.ts +2 -0
  866. package/lib/components/page-header/search/search.component.d.ts +23 -0
  867. package/lib/components/passenger-select/enums/passenger-type.enum.d.ts +5 -0
  868. package/lib/components/passenger-select/index.d.ts +4 -0
  869. package/lib/components/passenger-select/models/passengers.model.d.ts +9 -0
  870. package/lib/components/passenger-select/passenger-select.component.d.ts +111 -0
  871. package/lib/components/passenger-select/passenger-select.module.d.ts +2 -0
  872. package/lib/components/phone-number/index.d.ts +2 -0
  873. package/lib/components/phone-number/phone-number.component.d.ts +278 -0
  874. package/lib/components/phone-number/phone-number.module.d.ts +2 -0
  875. package/lib/components/premium-toggle/index.d.ts +2 -0
  876. package/lib/components/premium-toggle/premium-toggle.component.d.ts +51 -0
  877. package/lib/components/premium-toggle/premium-toggle.module.d.ts +2 -0
  878. package/lib/components/radio/index.d.ts +2 -0
  879. package/lib/components/radio/radio.component.d.ts +115 -0
  880. package/lib/components/radio/radio.module.d.ts +2 -0
  881. package/lib/components/select/index.d.ts +5 -0
  882. package/lib/components/select/models/select-option.model.d.ts +4 -0
  883. package/lib/components/select/optgroup/optgroup.component.d.ts +22 -0
  884. package/lib/components/select/option/option.component.d.ts +21 -0
  885. package/lib/components/select/select.component.d.ts +156 -0
  886. package/lib/components/select/select.module.d.ts +2 -0
  887. package/lib/components/simple-list/index.d.ts +2 -0
  888. package/lib/components/simple-list/simple-list.component.d.ts +49 -0
  889. package/lib/components/simple-list/simple-list.module.d.ts +2 -0
  890. package/lib/components/slide-toggle/index.d.ts +2 -0
  891. package/lib/components/slide-toggle/slide-toggle.component.d.ts +60 -0
  892. package/lib/components/slide-toggle/slide-toggle.module.d.ts +2 -0
  893. package/lib/components/slider/index.d.ts +2 -0
  894. package/lib/components/slider/slider.component.d.ts +177 -0
  895. package/lib/components/slider/slider.module.d.ts +2 -0
  896. package/lib/components/sort/index.d.ts +2 -0
  897. package/lib/components/sort/sort.component.d.ts +47 -0
  898. package/lib/components/sort/sort.module.d.ts +2 -0
  899. package/lib/components/spinner/index.d.ts +2 -0
  900. package/lib/components/spinner/spinner.component.d.ts +58 -0
  901. package/lib/components/spinner/spinner.module.d.ts +2 -0
  902. package/lib/components/subsidy-discount/index.d.ts +3 -0
  903. package/lib/components/subsidy-discount/models/subsidy-discount.model.d.ts +4 -0
  904. package/lib/components/subsidy-discount/subsidy-discount.component.d.ts +57 -0
  905. package/lib/components/subsidy-discount/subsidy-discount.module.d.ts +2 -0
  906. package/lib/components/suggestions/index.d.ts +2 -0
  907. package/lib/components/suggestions/suggestions.component.d.ts +30 -0
  908. package/lib/components/suggestions/suggestions.module.d.ts +2 -0
  909. package/lib/components/tab-group/index.d.ts +3 -0
  910. package/lib/components/tab-group/tab/tab.component.d.ts +84 -0
  911. package/lib/components/tab-group/tab-group.component.d.ts +30 -0
  912. package/lib/components/tab-group/tab-group.module.d.ts +2 -0
  913. package/lib/components/table/column/column.component.d.ts +3 -0
  914. package/lib/components/table/column-group/column-group.component.d.ts +12 -0
  915. package/lib/components/table/index.d.ts +10 -0
  916. package/lib/components/table/services/table.service.d.ts +5 -0
  917. package/lib/components/table/table-body/table-body.component.d.ts +12 -0
  918. package/lib/components/table/table-foot/table-foot.component.d.ts +12 -0
  919. package/lib/components/table/table-head/table-head.component.d.ts +12 -0
  920. package/lib/components/table/table-row/table-data/table-data.component.d.ts +2 -0
  921. package/lib/components/table/table-row/table-header/table-header.component.d.ts +2 -0
  922. package/lib/components/table/table-row/table-row.component.d.ts +12 -0
  923. package/lib/components/table/table.component.d.ts +21 -0
  924. package/lib/components/table/table.module.d.ts +2 -0
  925. package/lib/components/textarea/index.d.ts +2 -0
  926. package/lib/components/textarea/textarea.component.d.ts +121 -0
  927. package/lib/components/textarea/textarea.module.d.ts +2 -0
  928. package/lib/components/toggle/index.d.ts +2 -0
  929. package/lib/components/toggle/models/options.model.d.ts +6 -0
  930. package/lib/components/toggle/toggle.component.d.ts +183 -0
  931. package/lib/components/toggle/toggle.module.d.ts +2 -0
  932. package/lib/components/trip-summary/index.d.ts +2 -0
  933. package/lib/components/trip-summary/trip-summary.component.d.ts +173 -0
  934. package/lib/components/trip-summary/trip-summary.module.d.ts +2 -0
  935. package/lib/components/weather-icon/index.d.ts +2 -0
  936. package/lib/components/weather-icon/weather-icon.component.d.ts +51 -0
  937. package/lib/components/weather-icon/weather-icon.module.d.ts +2 -0
  938. package/lib/core/base/nas-component.base.d.ts +11 -0
  939. package/lib/core/decorators/debounce.decorator.d.ts +1 -0
  940. package/lib/core/directives/index.d.ts +2 -0
  941. package/lib/core/directives/nas-class/nas-class.directive.d.ts +11 -0
  942. package/lib/core/directives/nas-class/nas-class.module.d.ts +2 -0
  943. package/lib/core/extensions/html-element.extension.d.ts +6 -0
  944. package/lib/core/index.d.ts +4 -0
  945. package/lib/core/models/abandoned-basket-item.model.d.ts +14 -0
  946. package/lib/core/models/animate.model.d.ts +6 -0
  947. package/lib/core/models/class.model.d.ts +6 -0
  948. package/lib/core/models/index.d.ts +6 -0
  949. package/lib/core/models/link.model.d.ts +4 -0
  950. package/lib/core/models/position.model.d.ts +4 -0
  951. package/lib/core/models/utc-date.model.d.ts +13 -0
  952. package/lib/core/services/abandoned-basket/abandoned-basket.service.d.ts +7 -0
  953. package/lib/core/services/animate-helper/animate-helper.service.d.ts +6 -0
  954. package/lib/core/services/bem-helper/bem-helper.service.d.ts +4 -0
  955. package/lib/core/services/date/date-compare.enum.d.ts +5 -0
  956. package/lib/core/services/date/date-helper.service.d.ts +19 -0
  957. package/lib/core/services/device/device-helper.service.d.ts +13 -0
  958. package/lib/core/services/geolocation/geolocation-state.enum.d.ts +6 -0
  959. package/lib/core/services/geolocation/geolocation.service.d.ts +6 -0
  960. package/lib/core/services/index.d.ts +9 -0
  961. package/lib/core/services/language/language-helper.service.d.ts +9 -0
  962. package/lib/core/services/sort/sort.service.d.ts +3 -0
  963. package/lib/core/services/viewport/viewport.service.d.ts +8 -0
  964. package/lib/index.d.ts +4 -0
  965. package/lib/services/get-position.service.d.ts +6 -0
  966. package/lib/services/index.d.ts +1 -0
  967. package/lib/shared/index.d.ts +1 -0
  968. package/lib/shared/models/flight-details.d.ts +22 -0
  969. package/lib/shared/models/index.d.ts +4 -0
  970. package/lib/shared/models/journey-availability-sort.model.d.ts +8 -0
  971. package/lib/shared/models/journey-availability.model.d.ts +25 -0
  972. package/lib/shared/models/journey-details.model.d.ts +8 -0
  973. package/lib/shared/models/journey-duration.model.d.ts +7 -0
  974. package/lib/shared/models/journey-stopover.model.d.ts +11 -0
  975. package/lib/shared/models/journey-transit-info.model.d.ts +5 -0
  976. package/lib/shared/models/operating-carrier.model.d.ts +4 -0
  977. package/lib/shared/models/sort-option.model.d.ts +11 -0
  978. package/lib/shared/models/sort.model.d.ts +10 -0
  979. package/lib/shared/models/trip-item-details.model.d.ts +12 -0
  980. package/lib/shared/models/trip-summary-details.model.d.ts +5 -0
  981. package/lib/shared/models/trip-summary.model.d.ts +4 -0
  982. package/norwegian-core-components.d.ts +11 -0
  983. package/norwegian-core-components.metadata.json +1 -0
  984. package/package.json +19 -0
  985. package/public_api.d.ts +1 -0
  986. package/styles/1__settings/_colors.scss +65 -0
  987. package/styles/1__settings/_mixins.scss +226 -0
  988. package/styles/1__settings/_type.scss +53 -0
  989. package/styles/1__settings/_vars.scss +62 -0
  990. package/styles/2__generic/_fonts.scss +99 -0
  991. package/styles/2__generic/_reset.scss +275 -0
  992. package/styles/3__base/_animations.scss +138 -0
  993. package/styles/3__base/_body.scss +23 -0
  994. package/styles/3__base/_fixes.scss +5 -0
  995. package/styles/3__base/_form.scss +18 -0
  996. package/styles/3__base/_grid.scss +115 -0
  997. package/styles/3__base/_heading.scss +110 -0
  998. package/styles/3__base/_hr.scss +30 -0
  999. package/styles/3__base/_input.scss +38 -0
  1000. package/styles/3__base/_link.scss +48 -0
  1001. package/styles/3__base/_table.scss +44 -0
  1002. package/styles/3__base/_type.scss +69 -0
  1003. package/styles/_helpers.scss +4 -0
  1004. package/styles/_index.scss +15 -0
@@ -0,0 +1,196 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { DateCompare } from './date-compare.enum';
3
+ import { UtcDate } from '../../models';
4
+ export class DateHelper {
5
+ utcDate(input) {
6
+ if (!input) {
7
+ input = new Date();
8
+ }
9
+ let utcDate = null;
10
+ if (typeof input === 'string') {
11
+ let inputYearMonthDate = input;
12
+ let inputHoursMinutes = input;
13
+ if (input.indexOf('T') > -1) {
14
+ const indexOfT = input.indexOf('T');
15
+ inputYearMonthDate = input.slice(0, indexOfT);
16
+ inputHoursMinutes = input.slice(indexOfT + 1, indexOfT + 6);
17
+ }
18
+ const yearMonthDateParts = inputYearMonthDate.split('-');
19
+ const year = Number(yearMonthDateParts[0]);
20
+ const month = Number(yearMonthDateParts[1]) - 1;
21
+ const date = Number(yearMonthDateParts[2]) || 1;
22
+ const hoursMinutesParts = inputHoursMinutes.split(':');
23
+ const hours = Number(hoursMinutesParts[0]);
24
+ const minutes = Number(hoursMinutesParts[1]);
25
+ utcDate = new UtcDate(year, month, date, hours, minutes);
26
+ }
27
+ if (input instanceof Date) {
28
+ utcDate = new UtcDate(input.getUTCFullYear(), input.getUTCMonth(), input.getUTCDate(), input.getUTCHours(), input.getUTCMinutes());
29
+ return utcDate;
30
+ }
31
+ return utcDate;
32
+ }
33
+ date(utcDate) {
34
+ if (!utcDate) {
35
+ return null;
36
+ }
37
+ const date = new Date(Date.UTC(utcDate.year, utcDate.month, utcDate.date, utcDate.hours, utcDate.minutes));
38
+ return date;
39
+ }
40
+ getWeekNumber(input) {
41
+ if (!input) {
42
+ return -1;
43
+ }
44
+ const date = new Date(input);
45
+ const day = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()));
46
+ const dayNumber = day.getUTCDay() || 7;
47
+ day.setUTCDate(day.getUTCDate() + 4 - dayNumber);
48
+ const yearStart = new Date(Date.UTC(day.getUTCFullYear(), 0, 1));
49
+ return Math.ceil((((day.getTime() - yearStart.getTime()) / 86400000) + 1) / 7);
50
+ }
51
+ toYearMonthDateString(date) {
52
+ return `${date.year}-${('0' + (date.month + 1)).slice(-2)}-${('0' + date.date).slice(-2)}`;
53
+ }
54
+ toYearMonthString(date) {
55
+ return `${date.year}-${('0' + (date.month + 1)).slice(-2)}`;
56
+ }
57
+ isEqual(date1, date2, ignoreDate = false, ignoreHours = false, ignoreMinutes = false) {
58
+ if (!date1 || !date2) {
59
+ return false;
60
+ }
61
+ let isEqual = false;
62
+ if (!date1 || !date2) {
63
+ isEqual = date1 === date2;
64
+ return isEqual;
65
+ }
66
+ isEqual = this.compare(date1, date2, ignoreDate, ignoreHours, ignoreMinutes) === DateCompare.equal;
67
+ return isEqual;
68
+ }
69
+ isLessThan(date1, date2, ignoreDate = false, ignoreHours = false, ignoreMinutes = false) {
70
+ if (!date1 || !date2) {
71
+ return false;
72
+ }
73
+ const isLessThan = this.compare(date1, date2, ignoreDate, ignoreHours, ignoreMinutes) === DateCompare.lessThan;
74
+ return isLessThan;
75
+ }
76
+ isGreaterThan(date1, date2, ignoreDate = false, ignoreHours = false, ignoreMinutes = false) {
77
+ if (!date1 || !date2) {
78
+ return false;
79
+ }
80
+ const isGreaterThan = this.compare(date1, date2, ignoreDate, ignoreHours, ignoreMinutes) === DateCompare.greaterThan;
81
+ return isGreaterThan;
82
+ }
83
+ isInThePast(date, ignoreDate = false, ignoreHours = false, ignoreMinutes = false) {
84
+ if (!date) {
85
+ return true;
86
+ }
87
+ const today = this.utcDate();
88
+ if (date.year > today.year) {
89
+ return false;
90
+ }
91
+ else if (date.year < today.year) {
92
+ return true;
93
+ }
94
+ if (date.month > today.month) {
95
+ return false;
96
+ }
97
+ else if (date.month < today.month) {
98
+ return true;
99
+ }
100
+ if (!ignoreDate) {
101
+ if (date.date > today.date) {
102
+ return false;
103
+ }
104
+ if (!ignoreHours) {
105
+ if (date.hours > today.hours) {
106
+ return false;
107
+ }
108
+ if (!ignoreMinutes) {
109
+ return date.minutes < today.minutes;
110
+ }
111
+ else {
112
+ return true;
113
+ }
114
+ }
115
+ else {
116
+ return date.date !== today.date;
117
+ }
118
+ }
119
+ }
120
+ isSameMonth(date1, date2) {
121
+ if (!date1 || !date2) {
122
+ return null;
123
+ }
124
+ return date1.year === date2.year && date1.month === date2.month;
125
+ }
126
+ isSameDate(date1, date2) {
127
+ if (!date1 || !date2) {
128
+ return false;
129
+ }
130
+ return this.compare(date1, date2, false, true, true) === DateCompare.equal;
131
+ }
132
+ getUtcNumberOfMonthBetween(date1, date2) {
133
+ return this.getNumberOfMonthBetween(this.date(date1), this.date(date2));
134
+ }
135
+ getUtcNumberOfDaysBetween(date1, date2) {
136
+ return this.getNumberOfDaysBetween(this.date(date1), this.date(date2));
137
+ }
138
+ getNumberOfDaysBetween(date1, date2) {
139
+ const timeDifference = date2.getTime() - date1.getTime();
140
+ const daysBetween = timeDifference / (1000 * 3600 * 24);
141
+ return daysBetween;
142
+ }
143
+ getNumberOfMonthBetween(date1, date2) {
144
+ let months;
145
+ months = (date2.getUTCFullYear() - date1.getUTCFullYear()) * 12;
146
+ months -= date1.getUTCMonth() + 1;
147
+ months += date2.getUTCMonth();
148
+ return months <= 0 ? 0 : months;
149
+ }
150
+ compare(date1, date2, ignoreDate = false, ignoreHours = false, ignoreMinutes = false) {
151
+ if (!date1 || !date2) {
152
+ return null;
153
+ }
154
+ if (date1.year > date2.year) {
155
+ return DateCompare.greaterThan;
156
+ }
157
+ else if (date1.year < date2.year) {
158
+ return DateCompare.lessThan;
159
+ }
160
+ if (date1.month > date2.month) {
161
+ return DateCompare.greaterThan;
162
+ }
163
+ else if (date1.month < date2.month) {
164
+ return DateCompare.lessThan;
165
+ }
166
+ if (!ignoreDate) {
167
+ if (date1.date > date2.date) {
168
+ return DateCompare.greaterThan;
169
+ }
170
+ else if (date1.date < date2.date) {
171
+ return DateCompare.lessThan;
172
+ }
173
+ if (!ignoreHours) {
174
+ if (date1.hours > date2.hours) {
175
+ return DateCompare.greaterThan;
176
+ }
177
+ else if (date1.hours < date2.hours) {
178
+ return DateCompare.lessThan;
179
+ }
180
+ if (!ignoreMinutes) {
181
+ if (date1.minutes > date2.minutes) {
182
+ return DateCompare.greaterThan;
183
+ }
184
+ else if (date1.minutes < date2.minutes) {
185
+ return DateCompare.lessThan;
186
+ }
187
+ }
188
+ }
189
+ }
190
+ return DateCompare.equal;
191
+ }
192
+ }
193
+ DateHelper.decorators = [
194
+ { type: Injectable }
195
+ ];
196
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1oZWxwZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUtY29tcG9uZW50cy9zcmMvbGliL2NvcmUvc2VydmljZXMvZGF0ZS9kYXRlLWhlbHBlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFHdkMsTUFBTSxPQUFPLFVBQVU7SUFDckIsT0FBTyxDQUFDLEtBQXFCO1FBQzNCLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDVixLQUFLLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztTQUNwQjtRQUVELElBQUksT0FBTyxHQUFHLElBQUksQ0FBQztRQUVuQixJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtZQUM3QixJQUFJLGtCQUFrQixHQUFHLEtBQUssQ0FBQztZQUMvQixJQUFJLGlCQUFpQixHQUFHLEtBQUssQ0FBQztZQUU5QixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7Z0JBQzNCLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3BDLGtCQUFrQixHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDO2dCQUM5QyxpQkFBaUIsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxDQUFDLEVBQUUsUUFBUSxHQUFHLENBQUMsQ0FBQyxDQUFDO2FBQzdEO1lBRUQsTUFBTSxrQkFBa0IsR0FBRyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDekQsTUFB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Q0Y7YUFDRjtTQUNGO1FBRUQsT0FBTyxXQUFXLENBQUMsS0FBSyxDQUFDO0lBQzNCLENBQUM7OztZQXpQRixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBEYXRlQ29tcGFyZSB9IGZyb20gJy4vZGF0ZS1jb21wYXJlLmVudW0nO1xuaW1wb3J0IHsgVXRjRGF0ZSB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBEYXRlSGVscGVyIHtcbiAgdXRjRGF0ZShpbnB1dD86IERhdGUgfCBzdHJpbmcpOiBVdGNEYXRlIHwgbnVsbCB7XG4gICAgaWYgKCFpbnB1dCkge1xuICAgICAgaW5wdXQgPSBuZXcgRGF0ZSgpO1xuICAgIH1cblxuICAgIGxldCB1dGNEYXRlID0gbnVsbDtcblxuICAgIGlmICh0eXBlb2YgaW5wdXQgPT09ICdzdHJpbmcnKSB7XG4gICAgICBsZXQgaW5wdXRZZWFyTW9udGhEYXRlID0gaW5wdXQ7XG4gICAgICBsZXQgaW5wdXRIb3Vyc01pbnV0ZXMgPSBpbnB1dDtcblxuICAgICAgaWYgKGlucHV0LmluZGV4T2YoJ1QnKSA+IC0xKSB7XG4gICAgICAgIGNvbnN0IGluZGV4T2ZUID0gaW5wdXQuaW5kZXhPZignVCcpO1xuICAgICAgICBpbnB1dFllYXJNb250aERhdGUgPSBpbnB1dC5zbGljZSgwLCBpbmRleE9mVCk7XG4gICAgICAgIGlucHV0SG91cnNNaW51dGVzID0gaW5wdXQuc2xpY2UoaW5kZXhPZlQgKyAxLCBpbmRleE9mVCArIDYpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB5ZWFyTW9udGhEYXRlUGFydHMgPSBpbnB1dFllYXJNb250aERhdGUuc3BsaXQoJy0nKTtcbiAgICAgIGNvbnN0IHllYXIgPSBOdW1iZXIoeWVhck1vbnRoRGF0ZVBhcnRzWzBdKTtcbiAgICAgIGNvbnN0IG1vbnRoID0gTnVtYmVyKHllYXJNb250aERhdGVQYXJ0c1sxXSkgLSAxO1xuICAgICAgY29uc3QgZGF0ZSA9IE51bWJlcih5ZWFyTW9udGhEYXRlUGFydHNbMl0pIHx8IDE7XG5cblxuICAgICAgY29uc3QgaG91cnNNaW51dGVzUGFydHMgPSBpbnB1dEhvdXJzTWludXRlcy5zcGxpdCgnOicpO1xuICAgICAgY29uc3QgaG91cnMgPSBOdW1iZXIoaG91cnNNaW51dGVzUGFydHNbMF0pO1xuICAgICAgY29uc3QgbWludXRlcyA9IE51bWJlcihob3Vyc01pbnV0ZXNQYXJ0c1sxXSk7XG5cbiAgICAgIHV0Y0RhdGUgPSBuZXcgVXRjRGF0ZSh5ZWFyLCBtb250aCwgZGF0ZSwgaG91cnMsIG1pbnV0ZXMpO1xuICAgIH1cblxuICAgIGlmIChpbnB1dCBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgIHV0Y0RhdGUgPSBuZXcgVXRjRGF0ZShpbnB1dC5nZXRVVENGdWxsWWVhcigpLCBpbnB1dC5nZXRVVENNb250aCgpLCBpbnB1dC5nZXRVVENEYXRlKCksIGlucHV0LmdldFVUQ0hvdXJzKCksIGlucHV0LmdldFVUQ01pbnV0ZXMoKSk7XG4gICAgICByZXR1cm4gdXRjRGF0ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdXRjRGF0ZTtcbiAgfVxuXG4gIGRhdGUodXRjRGF0ZTogVXRjRGF0ZSk6IERhdGUgfCBudWxsIHtcbiAgICBpZiAoIXV0Y0RhdGUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZShEYXRlLlVUQyh1dGNEYXRlLnllYXIsIHV0Y0RhdGUubW9udGgsIHV0Y0RhdGUuZGF0ZSwgdXRjRGF0ZS5ob3VycywgdXRjRGF0ZS5taW51dGVzKSk7XG4gICAgcmV0dXJuIGRhdGU7XG4gIH1cblxuICBnZXRXZWVrTnVtYmVyKGlucHV0OiBEYXRlKTogbnVtYmVyIHtcbiAgICBpZiAoIWlucHV0KSB7XG4gICAgICByZXR1cm4gLTE7XG4gICAgfVxuXG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKGlucHV0KTtcblxuICAgIGNvbnN0IGRheSA9IG5ldyBEYXRlKERhdGUuVVRDKGRhdGUuZ2V0RnVsbFllYXIoKSwgZGF0ZS5nZXRNb250aCgpLCBkYXRlLmdldERhdGUoKSkpO1xuICAgIGNvbnN0IGRheU51bWJlciA9IGRheS5nZXRVVENEYXkoKSB8fCA3O1xuICAgIGRheS5zZXRVVENEYXRlKGRheS5nZXRVVENEYXRlKCkgKyA0IC0gZGF5TnVtYmVyKTtcbiAgICBjb25zdCB5ZWFyU3RhcnQgPSBuZXcgRGF0ZShEYXRlLlVUQyhkYXkuZ2V0VVRDRnVsbFllYXIoKSwgMCwgMSkpO1xuICAgIHJldHVybiBNYXRoLmNlaWwoKCgoZGF5LmdldFRpbWUoKSAtIHllYXJTdGFydC5nZXRUaW1lKCkpIC8gODY0MDAwMDApICsgMSkgLyA3KTtcbiAgfVxuXG4gIHRvWWVhck1vbnRoRGF0ZVN0cmluZyhkYXRlOiBVdGNEYXRlKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7ZGF0ZS55ZWFyfS0keygnMCcgKyAoZGF0ZS5tb250aCArIDEpKS5zbGljZSgtMil9LSR7KCcwJyArIGRhdGUuZGF0ZSkuc2xpY2UoLTIpfWA7XG4gIH1cblxuICB0b1llYXJNb250aFN0cmluZyhkYXRlOiBVdGNEYXRlKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7ZGF0ZS55ZWFyfS0keygnMCcgKyAoZGF0ZS5tb250aCArIDEpKS5zbGljZSgtMil9YDtcbiAgfVxuXG4gIGlzRXF1YWwoXG4gICAgZGF0ZTE6IFV0Y0RhdGUsXG4gICAgZGF0ZTI6IFV0Y0RhdGUsXG4gICAgaWdub3JlRGF0ZTogYm9vbGVhbiA9IGZhbHNlLFxuICAgIGlnbm9yZUhvdXJzOiBib29sZWFuID0gZmFsc2UsXG4gICAgaWdub3JlTWludXRlczogYm9vbGVhbiA9IGZhbHNlKTogYm9vbGVhbiB7XG4gICAgaWYgKCFkYXRlMSB8fCAhZGF0ZTIpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBsZXQgaXNFcXVhbCA9IGZhbHNlO1xuXG4gICAgaWYgKCFkYXRlMSB8fCAhZGF0ZTIpIHtcbiAgICAgIGlzRXF1YWwgPSBkYXRlMSA9PT0gZGF0ZTI7XG4gICAgICByZXR1cm4gaXNFcXVhbDtcbiAgICB9XG5cbiAgICBpc0VxdWFsID0gdGhpcy5jb21wYXJlKGRhdGUxLCBkYXRlMiwgaWdub3JlRGF0ZSwgaWdub3JlSG91cnMsIGlnbm9yZU1pbnV0ZXMpID09PSBEYXRlQ29tcGFyZS5lcXVhbDtcbiAgICByZXR1cm4gaXNFcXVhbDtcbiAgfVxuXG4gIGlzTGVzc1RoYW4oXG4gICAgZGF0ZTE6IFV0Y0RhdGUsXG4gICAgZGF0ZTI6IFV0Y0RhdGUsXG4gICAgaWdub3JlRGF0ZTogYm9vbGVhbiA9IGZhbHNlLFxuICAgIGlnbm9yZUhvdXJzOiBib29sZWFuID0gZmFsc2UsXG4gICAgaWdub3JlTWludXRlczogYm9vbGVhbiA9IGZhbHNlKTogYm9vbGVhbiB7XG4gICAgaWYgKCFkYXRlMSB8fCAhZGF0ZTIpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCBpc0xlc3NUaGFuID0gdGhpcy5jb21wYXJlKGRhdGUxLCBkYXRlMiwgaWdub3JlRGF0ZSwgaWdub3JlSG91cnMsIGlnbm9yZU1pbnV0ZXMpID09PSBEYXRlQ29tcGFyZS5sZXNzVGhhbjtcbiAgICByZXR1cm4gaXNMZXNzVGhhbjtcbiAgfVxuXG4gIGlzR3JlYXRlclRoYW4oXG4gICAgZGF0ZTE6IFV0Y0RhdGUsXG4gICAgZGF0ZTI6IFV0Y0RhdGUsXG4gICAgaWdub3JlRGF0ZTogYm9vbGVhbiA9IGZhbHNlLFxuICAgIGlnbm9yZUhvdXJzOiBib29sZWFuID0gZmFsc2UsXG4gICAgaWdub3JlTWludXRlczogYm9vbGVhbiA9IGZhbHNlKTogYm9vbGVhbiB7XG4gICAgaWYgKCFkYXRlMSB8fCAhZGF0ZTIpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCBpc0dyZWF0ZXJUaGFuID0gdGhpcy5jb21wYXJlKGRhdGUxLCBkYXRlMiwgaWdub3JlRGF0ZSwgaWdub3JlSG91cnMsIGlnbm9yZU1pbnV0ZXMpID09PSBEYXRlQ29tcGFyZS5ncmVhdGVyVGhhbjtcbiAgICByZXR1cm4gaXNHcmVhdGVyVGhhbjtcbiAgfVxuXG4gIGlzSW5UaGVQYXN0KFxuICAgIGRhdGU6IFV0Y0RhdGUsXG4gICAgaWdub3JlRGF0ZTogYm9vbGVhbiA9IGZhbHNlLFxuICAgIGlnbm9yZUhvdXJzOiBib29sZWFuID0gZmFsc2UsXG4gICAgaWdub3JlTWludXRlczogYm9vbGVhbiA9IGZhbHNlKTogYm9vbGVhbiB7XG4gICAgaWYgKCFkYXRlKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBjb25zdCB0b2RheSA9IHRoaXMudXRjRGF0ZSgpO1xuXG4gICAgaWYgKGRhdGUueWVhciA+IHRvZGF5LnllYXIpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9IGVsc2UgaWYgKGRhdGUueWVhciA8IHRvZGF5LnllYXIpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGlmIChkYXRlLm1vbnRoID4gdG9kYXkubW9udGgpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9IGVsc2UgaWYgKGRhdGUubW9udGggPCB0b2RheS5tb250aCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaWYgKCFpZ25vcmVEYXRlKSB7XG4gICAgICBpZiAoZGF0ZS5kYXRlID4gdG9kYXkuZGF0ZSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIGlmICghaWdub3JlSG91cnMpIHtcbiAgICAgICAgaWYgKGRhdGUuaG91cnMgPiB0b2RheS5ob3Vycykge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghaWdub3JlTWludXRlcykge1xuICAgICAgICAgIHJldHVybiBkYXRlLm1pbnV0ZXMgPCB0b2RheS5taW51dGVzO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gZGF0ZS5kYXRlICE9PSB0b2RheS5kYXRlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlzU2FtZU1vbnRoKGRhdGUxOiBVdGNEYXRlLCBkYXRlMjogVXRjRGF0ZSk6IGJvb2xlYW4ge1xuICAgIGlmICghZGF0ZTEgfHwgIWRhdGUyKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gZGF0ZTEueWVhciA9PT0gZGF0ZTIueWVhciAmJiBkYXRlMS5tb250aCA9PT0gZGF0ZTIubW9udGg7XG4gIH1cblxuICBpc1NhbWVEYXRlKGRhdGUxOiBVdGNEYXRlLCBkYXRlMjogVXRjRGF0ZSk6IGJvb2xlYW4ge1xuICAgIGlmICghZGF0ZTEgfHwgIWRhdGUyKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuY29tcGFyZShkYXRlMSwgZGF0ZTIsIGZhbHNlLCB0cnVlLCB0cnVlKSA9PT0gRGF0ZUNvbXBhcmUuZXF1YWw7XG4gIH1cblxuICBnZXRVdGNOdW1iZXJPZk1vbnRoQmV0d2VlbihkYXRlMTogVXRjRGF0ZSwgZGF0ZTI6IFV0Y0RhdGUpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdldE51bWJlck9mTW9udGhCZXR3ZWVuKHRoaXMuZGF0ZShkYXRlMSksIHRoaXMuZGF0ZShkYXRlMikpO1xuICB9XG5cbiAgZ2V0VXRjTnVtYmVyT2ZEYXlzQmV0d2VlbihkYXRlMTogVXRjRGF0ZSwgZGF0ZTI6IFV0Y0RhdGUpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdldE51bWJlck9mRGF5c0JldHdlZW4odGhpcy5kYXRlKGRhdGUxKSwgdGhpcy5kYXRlKGRhdGUyKSk7XG4gIH1cblxuICBwcml2YXRlIGdldE51bWJlck9mRGF5c0JldHdlZW4oZGF0ZTE6IERhdGUsIGRhdGUyOiBEYXRlKTogbnVtYmVyIHtcbiAgICBjb25zdCB0aW1lRGlmZmVyZW5jZSA9IGRhdGUyLmdldFRpbWUoKSAtIGRhdGUxLmdldFRpbWUoKTtcbiAgICBjb25zdCBkYXlzQmV0d2VlbiA9IHRpbWVEaWZmZXJlbmNlIC8gKDEwMDAgKiAzNjAwICogMjQpO1xuICAgIHJldHVybiBkYXlzQmV0d2VlbjtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0TnVtYmVyT2ZNb250aEJldHdlZW4oZGF0ZTE6IERhdGUsIGRhdGUyOiBEYXRlKTogbnVtYmVyIHtcbiAgICBsZXQgbW9udGhzOiBudW1iZXI7XG4gICAgbW9udGhzID0gKGRhdGUyLmdldFVUQ0Z1bGxZZWFyKCkgLSBkYXRlMS5nZXRVVENGdWxsWWVhcigpKSAqIDEyO1xuICAgIG1vbnRocyAtPSBkYXRlMS5nZXRVVENNb250aCgpICsgMTtcbiAgICBtb250aHMgKz0gZGF0ZTIuZ2V0VVRDTW9udGgoKTtcbiAgICByZXR1cm4gbW9udGhzIDw9IDAgPyAwIDogbW9udGhzO1xuICB9XG5cbiAgcHJpdmF0ZSBjb21wYXJlKFxuICAgIGRhdGUxOiBVdGNEYXRlLFxuICAgIGRhdGUyOiBVdGNEYXRlLFxuICAgIGlnbm9yZURhdGU6IGJvb2xlYW4gPSBmYWxzZSxcbiAgICBpZ25vcmVIb3VyczogYm9vbGVhbiA9IGZhbHNlLFxuICAgIGlnbm9yZU1pbnV0ZXM6IGJvb2xlYW4gPSBmYWxzZSk6IERhdGVDb21wYXJlIHtcbiAgICBpZiAoIWRhdGUxIHx8ICFkYXRlMikge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKGRhdGUxLnllYXIgPiBkYXRlMi55ZWFyKSB7XG4gICAgICByZXR1cm4gRGF0ZUNvbXBhcmUuZ3JlYXRlclRoYW47XG4gICAgfSBlbHNlIGlmIChkYXRlMS55ZWFyIDwgZGF0ZTIueWVhcikge1xuICAgICAgcmV0dXJuIERhdGVDb21wYXJlLmxlc3NUaGFuO1xuICAgIH1cblxuICAgIGlmIChkYXRlMS5tb250aCA+IGRhdGUyLm1vbnRoKSB7XG4gICAgICByZXR1cm4gRGF0ZUNvbXBhcmUuZ3JlYXRlclRoYW47XG4gICAgfSBlbHNlIGlmIChkYXRlMS5tb250aCA8IGRhdGUyLm1vbnRoKSB7XG4gICAgICByZXR1cm4gRGF0ZUNvbXBhcmUubGVzc1RoYW47XG4gICAgfVxuXG4gICAgaWYgKCFpZ25vcmVEYXRlKSB7XG4gICAgICBpZiAoZGF0ZTEuZGF0ZSA+IGRhdGUyLmRhdGUpIHtcbiAgICAgICAgcmV0dXJuIERhdGVDb21wYXJlLmdyZWF0ZXJUaGFuO1xuICAgICAgfSBlbHNlIGlmIChkYXRlMS5kYXRlIDwgZGF0ZTIuZGF0ZSkge1xuICAgICAgICByZXR1cm4gRGF0ZUNvbXBhcmUubGVzc1RoYW47XG4gICAgICB9XG5cbiAgICAgIGlmICghaWdub3JlSG91cnMpIHtcbiAgICAgICAgaWYgKGRhdGUxLmhvdXJzID4gZGF0ZTIuaG91cnMpIHtcbiAgICAgICAgICByZXR1cm4gRGF0ZUNvbXBhcmUuZ3JlYXRlclRoYW47XG4gICAgICAgIH0gZWxzZSBpZiAoZGF0ZTEuaG91cnMgPCBkYXRlMi5ob3Vycykge1xuICAgICAgICAgIHJldHVybiBEYXRlQ29tcGFyZS5sZXNzVGhhbjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghaWdub3JlTWludXRlcykge1xuICAgICAgICAgIGlmIChkYXRlMS5taW51dGVzID4gZGF0ZTIubWludXRlcykge1xuICAgICAgICAgICAgcmV0dXJuIERhdGVDb21wYXJlLmdyZWF0ZXJUaGFuO1xuICAgICAgICAgIH0gZWxzZSBpZiAoZGF0ZTEubWludXRlcyA8IGRhdGUyLm1pbnV0ZXMpIHtcbiAgICAgICAgICAgIHJldHVybiBEYXRlQ29tcGFyZS5sZXNzVGhhbjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gRGF0ZUNvbXBhcmUuZXF1YWw7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,43 @@
1
+ import { Injectable } from '@angular/core';
2
+ export class DeviceHelper {
3
+ constructor() {
4
+ this.mobileMaxWidth = 639;
5
+ this.tabletMaxWidth = 999;
6
+ }
7
+ isTouchScreenDevice() {
8
+ return 'ontouchstart' in document.documentElement;
9
+ }
10
+ isMobile() {
11
+ const maxWidth = 414;
12
+ return window.screen.width <= maxWidth && this.isTouchScreenDevice();
13
+ }
14
+ isMobileWidth() {
15
+ return window.innerWidth <= this.mobileMaxWidth;
16
+ }
17
+ isWidthMobile(width) {
18
+ return width <= this.mobileMaxWidth;
19
+ }
20
+ isTabletWidth() {
21
+ return !this.isMobileWidth() && window.innerWidth <= this.tabletMaxWidth;
22
+ }
23
+ isWidthTablet(width) {
24
+ return !this.isWidthMobile(width) && width <= this.tabletMaxWidth;
25
+ }
26
+ isWidthDesktop(width) {
27
+ return !this.isWidthMobile(width)
28
+ && !this.isWidthTablet(width)
29
+ && width > this.tabletMaxWidth;
30
+ }
31
+ isTabletWindow() {
32
+ const MOBILE_MAX_WIDTH = 999;
33
+ return MOBILE_MAX_WIDTH >= window.innerWidth || MOBILE_MAX_WIDTH >= window.innerWidth;
34
+ }
35
+ isIE() {
36
+ const isIEOrEdge = /msie\s|trident\/|edge\//i.test(window.navigator.userAgent);
37
+ return isIEOrEdge;
38
+ }
39
+ }
40
+ DeviceHelper.decorators = [
41
+ { type: Injectable }
42
+ ];
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLWhlbHBlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS1jb21wb25lbnRzL3NyYy9saWIvY29yZS9zZXJ2aWNlcy9kZXZpY2UvZGV2aWNlLWhlbHBlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsTUFBTSxPQUFPLFlBQVk7SUFEekI7UUFHbUIsbUJBQWMsR0FBRyxHQUFHLENBQUM7UUFDckIsbUJBQWMsR0FBRyxHQUFHLENBQUM7SUEwQ3hDLENBQUM7SUF4Q0MsbUJBQW1CO1FBQ2pCLE9BQU8sY0FBYyxJQUFJLFFBQVEsQ0FBQyxlQUFlLENBQUM7SUFDcEQsQ0FBQztJQUVELFFBQVE7UUFDTixNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUM7UUFDckIsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxRQUFRLElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDdkUsQ0FBQztJQUVELGFBQWE7UUFDWCxPQUFPLE1BQU0sQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQWE7UUFDekIsT0FBTyxLQUFLLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsYUFBYTtRQUNYLE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksTUFBTSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQzNFLENBQUM7SUFFRCxhQUFhLENBQUMsS0FBYTtRQUN6QixPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUNwRSxDQUFDO0lBRUQsY0FBYyxDQUFDLEtBQWE7UUFDMUIsT0FBTyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDO2VBQzVCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUM7ZUFDMUIsS0FBSyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDbkMsQ0FBQztJQUVELGNBQWM7UUFDWixNQUFNLGdCQUFnQixHQUFHLEdBQUcsQ0FBQztRQUM3QixPQUFPLGdCQUFnQixJQUFJLE1BQU0sQ0FBQyxVQUFVLElBQUksZ0JBQWdCLElBQUksTUFBTSxDQUFDLFVBQVUsQ0FBQztJQUN4RixDQUFDO0lBRUQsSUFBSTtRQUNGLE1BQU0sVUFBVSxHQUFHLDBCQUEwQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQy9FLE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7OztZQTdDRixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRGV2aWNlSGVscGVyIHtcblxuICBwcml2YXRlIHJlYWRvbmx5IG1vYmlsZU1heFdpZHRoID0gNjM5O1xuICBwcml2YXRlIHJlYWRvbmx5IHRhYmxldE1heFdpZHRoID0gOTk5O1xuXG4gIGlzVG91Y2hTY3JlZW5EZXZpY2UoKSB7XG4gICAgcmV0dXJuICdvbnRvdWNoc3RhcnQnIGluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcbiAgfVxuXG4gIGlzTW9iaWxlKCkge1xuICAgIGNvbnN0IG1heFdpZHRoID0gNDE0O1xuICAgIHJldHVybiB3aW5kb3cuc2NyZWVuLndpZHRoIDw9IG1heFdpZHRoICYmIHRoaXMuaXNUb3VjaFNjcmVlbkRldmljZSgpO1xuICB9XG5cbiAgaXNNb2JpbGVXaWR0aCgpIHtcbiAgICByZXR1cm4gd2luZG93LmlubmVyV2lkdGggPD0gdGhpcy5tb2JpbGVNYXhXaWR0aDtcbiAgfVxuXG4gIGlzV2lkdGhNb2JpbGUod2lkdGg6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIHJldHVybiB3aWR0aCA8PSB0aGlzLm1vYmlsZU1heFdpZHRoO1xuICB9XG5cbiAgaXNUYWJsZXRXaWR0aCgpIHtcbiAgICByZXR1cm4gIXRoaXMuaXNNb2JpbGVXaWR0aCgpICYmIHdpbmRvdy5pbm5lcldpZHRoIDw9IHRoaXMudGFibGV0TWF4V2lkdGg7XG4gIH1cblxuICBpc1dpZHRoVGFibGV0KHdpZHRoOiBudW1iZXIpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuaXNXaWR0aE1vYmlsZSh3aWR0aCkgJiYgd2lkdGggPD0gdGhpcy50YWJsZXRNYXhXaWR0aDtcbiAgfVxuXG4gIGlzV2lkdGhEZXNrdG9wKHdpZHRoOiBudW1iZXIpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuaXNXaWR0aE1vYmlsZSh3aWR0aClcbiAgICAgICYmICF0aGlzLmlzV2lkdGhUYWJsZXQod2lkdGgpXG4gICAgICAmJiB3aWR0aCA+IHRoaXMudGFibGV0TWF4V2lkdGg7XG4gIH1cblxuICBpc1RhYmxldFdpbmRvdygpIHtcbiAgICBjb25zdCBNT0JJTEVfTUFYX1dJRFRIID0gOTk5O1xuICAgIHJldHVybiBNT0JJTEVfTUFYX1dJRFRIID49IHdpbmRvdy5pbm5lcldpZHRoIHx8IE1PQklMRV9NQVhfV0lEVEggPj0gd2luZG93LmlubmVyV2lkdGg7XG4gIH1cblxuICBpc0lFKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGlzSUVPckVkZ2UgPSAvbXNpZVxcc3x0cmlkZW50XFwvfGVkZ2VcXC8vaS50ZXN0KHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50KTtcbiAgICByZXR1cm4gaXNJRU9yRWRnZTtcbiAgfVxufVxuIl19
@@ -0,0 +1,8 @@
1
+ export var GeolocationState;
2
+ (function (GeolocationState) {
3
+ GeolocationState[GeolocationState["granted"] = 0] = "granted";
4
+ GeolocationState[GeolocationState["prompt"] = 1] = "prompt";
5
+ GeolocationState[GeolocationState["denied"] = 2] = "denied";
6
+ GeolocationState[GeolocationState["unknown"] = 3] = "unknown";
7
+ })(GeolocationState || (GeolocationState = {}));
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvbG9jYXRpb24tc3RhdGUuZW51bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUtY29tcG9uZW50cy9zcmMvbGliL2NvcmUvc2VydmljZXMvZ2VvbG9jYXRpb24vZ2VvbG9jYXRpb24tc3RhdGUuZW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxnQkFLWDtBQUxELFdBQVksZ0JBQWdCO0lBQzFCLDZEQUFXLENBQUE7SUFDWCwyREFBVSxDQUFBO0lBQ1YsMkRBQVUsQ0FBQTtJQUNWLDZEQUFXLENBQUE7QUFDYixDQUFDLEVBTFcsZ0JBQWdCLEtBQWhCLGdCQUFnQixRQUszQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIEdlb2xvY2F0aW9uU3RhdGUge1xuICBncmFudGVkID0gMCxcbiAgcHJvbXB0ID0gMSxcbiAgZGVuaWVkID0gMixcbiAgdW5rbm93biA9IDNcbn1cbiJdfQ==
@@ -0,0 +1,60 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { Observable } from 'rxjs';
3
+ import { GeolocationState } from './geolocation-state.enum';
4
+ export class GeolocationService {
5
+ getCurrentPosition() {
6
+ return new Observable(observer => {
7
+ if (window.navigator && window.navigator.geolocation) {
8
+ window.navigator.geolocation.getCurrentPosition((position) => {
9
+ observer.next(position);
10
+ observer.complete();
11
+ }, (error) => observer.error(error));
12
+ }
13
+ else {
14
+ observer.error('Unsupported browser');
15
+ }
16
+ });
17
+ }
18
+ getState() {
19
+ return new Observable(observer => {
20
+ if (window.navigator && window.navigator.geolocation) {
21
+ const permissions = window.navigator.permissions;
22
+ if (permissions) {
23
+ permissions
24
+ .query({ name: 'geolocation' })
25
+ .then((result) => {
26
+ if (result && result.state) {
27
+ switch (result.state) {
28
+ case 'granted':
29
+ observer.next(GeolocationState.granted);
30
+ break;
31
+ case 'prompt':
32
+ observer.next(GeolocationState.prompt);
33
+ break;
34
+ case 'denied':
35
+ observer.next(GeolocationState.denied);
36
+ break;
37
+ default:
38
+ observer.next(GeolocationState.denied);
39
+ break;
40
+ }
41
+ }
42
+ observer.complete();
43
+ });
44
+ }
45
+ else {
46
+ observer.next(GeolocationState.unknown);
47
+ observer.complete();
48
+ }
49
+ }
50
+ else {
51
+ observer.next(GeolocationState.unknown);
52
+ observer.complete();
53
+ }
54
+ });
55
+ }
56
+ }
57
+ GeolocationService.decorators = [
58
+ { type: Injectable }
59
+ ];
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvbG9jYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUtY29tcG9uZW50cy9zcmMvbGliL2NvcmUvc2VydmljZXMvZ2VvbG9jYXRpb24vZ2VvbG9jYXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHNUQsTUFBTSxPQUFPLGtCQUFrQjtJQUU3QixrQkFBa0I7UUFDaEIsT0FBTyxJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUMvQixJQUFJLE1BQU0sQ0FBQyxTQUFTLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUU7Z0JBQ3BELE1BQU0sQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLGtCQUFrQixDQUM3QyxDQUFDLFFBQVEsRUFBRSxFQUFFO29CQUNYLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7b0JBQ3hCLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDdEIsQ0FBQyxFQUNELENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7YUFDckM7aUJBQU07Z0JBQ0wsUUFBUSxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO2FBQ3ZDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDL0IsSUFBSSxNQUFNLENBQUMsU0FBUyxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFO2dCQUNwRCxNQUFNLFdBQVcsR0FBSyxNQUFNLENBQUMsU0FBaUIsQ0FBQyxXQUFtQixDQUFDO2dCQUVuRSxJQUFJLFdBQVcsRUFBRTtvQkFDZixXQUFXO3lCQUNSLEtBQUssQ0FBQyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsQ0FBQzt5QkFDOUIsSUFBSSxDQUFDLENBQUMsTUFBdUIsRUFBRSxFQUFFO3dCQUNoQyxJQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFFOzRCQUMxQixRQUFRLE1BQU0sQ0FBQyxLQUFLLEVBQUU7Z0NBQ3BCLEtBQUssU0FBUztvQ0FDWixRQUFRLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO29DQUN4QyxNQUFNO2dDQUNSLEtBQUssUUFBUTtvQ0FDWCxRQUFRLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO29DQUN2QyxNQUFNO2dDQUNSLEtBQUssUUFBUTtvQ0FDWCxRQUFRLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO29DQUN2QyxNQUFNO2dDQUNSO29DQUNFLFFBQVEsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7b0NBQ3ZDLE1BQU07NkJBQ1Q7eUJBQ0Y7d0JBRUQsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO29CQUN0QixDQUFDLENBQUMsQ0FBQztpQkFDTjtxQkFBTTtvQkFDTCxRQUFRLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO29CQUN4QyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7aUJBQ3JCO2FBQ0Y7aUJBQU07Z0JBQ0wsUUFBUSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDeEMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO2FBQ3JCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzs7WUF2REYsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEdlb2xvY2F0aW9uU3RhdGUgfSBmcm9tICcuL2dlb2xvY2F0aW9uLXN0YXRlLmVudW0nO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgR2VvbG9jYXRpb25TZXJ2aWNlIHtcblxuICBnZXRDdXJyZW50UG9zaXRpb24oKTogT2JzZXJ2YWJsZTxHZW9sb2NhdGlvblBvc2l0aW9uPiB7XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKG9ic2VydmVyID0+IHtcbiAgICAgIGlmICh3aW5kb3cubmF2aWdhdG9yICYmIHdpbmRvdy5uYXZpZ2F0b3IuZ2VvbG9jYXRpb24pIHtcbiAgICAgICAgd2luZG93Lm5hdmlnYXRvci5nZW9sb2NhdGlvbi5nZXRDdXJyZW50UG9zaXRpb24oXG4gICAgICAgICAgKHBvc2l0aW9uKSA9PiB7XG4gICAgICAgICAgICBvYnNlcnZlci5uZXh0KHBvc2l0aW9uKTtcbiAgICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICAoZXJyb3IpID0+IG9ic2VydmVyLmVycm9yKGVycm9yKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvYnNlcnZlci5lcnJvcignVW5zdXBwb3J0ZWQgYnJvd3NlcicpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZ2V0U3RhdGUoKTogT2JzZXJ2YWJsZTxHZW9sb2NhdGlvblN0YXRlPiB7XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKG9ic2VydmVyID0+IHtcbiAgICAgIGlmICh3aW5kb3cubmF2aWdhdG9yICYmIHdpbmRvdy5uYXZpZ2F0b3IuZ2VvbG9jYXRpb24pIHtcbiAgICAgICAgY29uc3QgcGVybWlzc2lvbnMgPSAoKHdpbmRvdy5uYXZpZ2F0b3IgYXMgYW55KS5wZXJtaXNzaW9ucyBhcyBhbnkpO1xuXG4gICAgICAgIGlmIChwZXJtaXNzaW9ucykge1xuICAgICAgICAgIHBlcm1pc3Npb25zXG4gICAgICAgICAgICAucXVlcnkoeyBuYW1lOiAnZ2VvbG9jYXRpb24nIH0pXG4gICAgICAgICAgICAudGhlbigocmVzdWx0OiB7IHN0YXRlOiBhbnk7IH0pID0+IHtcbiAgICAgICAgICAgICAgaWYgKHJlc3VsdCAmJiByZXN1bHQuc3RhdGUpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHJlc3VsdC5zdGF0ZSkge1xuICAgICAgICAgICAgICAgICAgY2FzZSAnZ3JhbnRlZCc6XG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmVyLm5leHQoR2VvbG9jYXRpb25TdGF0ZS5ncmFudGVkKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICBjYXNlICdwcm9tcHQnOlxuICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KEdlb2xvY2F0aW9uU3RhdGUucHJvbXB0KTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICBjYXNlICdkZW5pZWQnOlxuICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KEdlb2xvY2F0aW9uU3RhdGUuZGVuaWVkKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KEdlb2xvY2F0aW9uU3RhdGUuZGVuaWVkKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG9ic2VydmVyLm5leHQoR2VvbG9jYXRpb25TdGF0ZS51bmtub3duKTtcbiAgICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvYnNlcnZlci5uZXh0KEdlb2xvY2F0aW9uU3RhdGUudW5rbm93bik7XG4gICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,10 @@
1
+ export * from './animate-helper/animate-helper.service';
2
+ export * from './bem-helper/bem-helper.service';
3
+ export * from './device/device-helper.service';
4
+ export * from './sort/sort.service';
5
+ export * from './viewport/viewport.service';
6
+ export * from './date/date-helper.service';
7
+ export * from './language/language-helper.service';
8
+ export * from './abandoned-basket/abandoned-basket.service';
9
+ export * from './geolocation/geolocation.service';
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlLWNvbXBvbmVudHMvc3JjL2xpYi9jb3JlL3NlcnZpY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLG1DQUFtQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hbmltYXRlLWhlbHBlci9hbmltYXRlLWhlbHBlci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vYmVtLWhlbHBlci9iZW0taGVscGVyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9kZXZpY2UvZGV2aWNlLWhlbHBlci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc29ydC9zb3J0LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi92aWV3cG9ydC92aWV3cG9ydC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vZGF0ZS9kYXRlLWhlbHBlci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGFuZ3VhZ2UvbGFuZ3VhZ2UtaGVscGVyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9hYmFuZG9uZWQtYmFza2V0L2FiYW5kb25lZC1iYXNrZXQuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2dlb2xvY2F0aW9uL2dlb2xvY2F0aW9uLnNlcnZpY2UnO1xuIl19
@@ -0,0 +1,162 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { registerLocaleData } from '@angular/common';
3
+ import localePt from '@angular/common/locales/pt';
4
+ import localeEsAr from '@angular/common/locales/es-AR';
5
+ import localeEnCa from '@angular/common/locales/en-CA';
6
+ import localeFrCa from '@angular/common/locales/fr-CA';
7
+ import localeDa from '@angular/common/locales/da';
8
+ import localeDe from '@angular/common/locales/de';
9
+ import localeEs from '@angular/common/locales/es';
10
+ import localeFi from '@angular/common/locales/fi';
11
+ import localeFr from '@angular/common/locales/fr';
12
+ import localeEnIe from '@angular/common/locales/en-IE';
13
+ import localeIt from '@angular/common/locales/it';
14
+ import localeEn from '@angular/common/locales/en';
15
+ import localeNo from '@angular/common/locales/nb';
16
+ import localePl from '@angular/common/locales/pl';
17
+ import localeSv from '@angular/common/locales/sv';
18
+ import localeEnGb from '@angular/common/locales/en-GB';
19
+ export class LanguageHelper {
20
+ languageCode() {
21
+ return this.languageCodeValue;
22
+ }
23
+ fallbackLanguageCode() {
24
+ return this.fallbackLanguageCodeValue;
25
+ }
26
+ defaultCountryCode() {
27
+ return this.defaultCountryValue;
28
+ }
29
+ setLanguageBasedOnMarketCode(marketCode) {
30
+ const englishLanguageCode = 'en';
31
+ const spanishLanguageCode = 'es';
32
+ const frenchLanguageCode = 'fr';
33
+ const noDefaultCountry = '';
34
+ this.languageCodeValue = englishLanguageCode;
35
+ this.fallbackLanguageCodeValue = englishLanguageCode;
36
+ this.defaultCountryValue = noDefaultCountry;
37
+ if (marketCode) {
38
+ switch (marketCode.toLowerCase()) {
39
+ case 'ar':
40
+ this.languageCodeValue = 'es-AR';
41
+ this.fallbackLanguageCodeValue = spanishLanguageCode;
42
+ this.defaultCountryValue = 'AR';
43
+ registerLocaleData(localeEsAr, this.languageCodeValue);
44
+ break;
45
+ case 'br':
46
+ this.languageCodeValue = 'pt-BR';
47
+ this.fallbackLanguageCodeValue = englishLanguageCode;
48
+ this.defaultCountryValue = 'BR';
49
+ registerLocaleData(localePt, this.languageCodeValue);
50
+ break;
51
+ case 'en-ca':
52
+ this.languageCodeValue = englishLanguageCode;
53
+ this.fallbackLanguageCodeValue = englishLanguageCode;
54
+ this.defaultCountryValue = 'CA';
55
+ registerLocaleData(localeEnCa, this.languageCodeValue);
56
+ break;
57
+ case 'fr-ca':
58
+ this.languageCodeValue = 'fr-CA';
59
+ this.fallbackLanguageCodeValue = frenchLanguageCode;
60
+ this.defaultCountryValue = 'CA';
61
+ registerLocaleData(localeFrCa, this.languageCodeValue);
62
+ break;
63
+ case 'dk':
64
+ this.languageCodeValue = 'da';
65
+ this.fallbackLanguageCodeValue = englishLanguageCode;
66
+ this.defaultCountryValue = 'DK';
67
+ registerLocaleData(localeDa, this.languageCodeValue);
68
+ break;
69
+ case 'de':
70
+ this.languageCodeValue = 'de';
71
+ this.fallbackLanguageCodeValue = englishLanguageCode;
72
+ this.defaultCountryValue = 'DE';
73
+ registerLocaleData(localeDe, this.languageCodeValue);
74
+ break;
75
+ case 'es':
76
+ this.languageCodeValue = spanishLanguageCode;
77
+ this.fallbackLanguageCodeValue = englishLanguageCode;
78
+ this.defaultCountryValue = 'ES';
79
+ registerLocaleData(localeEs, this.languageCodeValue);
80
+ break;
81
+ case 'fi':
82
+ this.languageCodeValue = 'fi';
83
+ this.fallbackLanguageCodeValue = englishLanguageCode;
84
+ this.defaultCountryValue = 'FI';
85
+ registerLocaleData(localeFi, this.languageCodeValue);
86
+ break;
87
+ case 'fr':
88
+ this.languageCodeValue = frenchLanguageCode;
89
+ this.fallbackLanguageCodeValue = englishLanguageCode;
90
+ this.defaultCountryValue = 'FR';
91
+ registerLocaleData(localeFr, this.languageCodeValue);
92
+ break;
93
+ case 'ie':
94
+ this.languageCodeValue = 'en-IE';
95
+ this.fallbackLanguageCodeValue = englishLanguageCode;
96
+ this.defaultCountryValue = 'IE';
97
+ registerLocaleData(localeEnIe, this.languageCodeValue);
98
+ break;
99
+ case 'it':
100
+ this.languageCodeValue = 'it';
101
+ this.fallbackLanguageCodeValue = englishLanguageCode;
102
+ this.defaultCountryValue = 'IT';
103
+ registerLocaleData(localeIt, this.languageCodeValue);
104
+ break;
105
+ case 'nl':
106
+ this.languageCodeValue = englishLanguageCode;
107
+ this.fallbackLanguageCodeValue = englishLanguageCode;
108
+ this.defaultCountryValue = 'NL';
109
+ registerLocaleData(localeEn, this.languageCodeValue);
110
+ break;
111
+ case 'no':
112
+ this.languageCodeValue = 'no';
113
+ this.fallbackLanguageCodeValue = englishLanguageCode;
114
+ this.defaultCountryValue = 'NO';
115
+ registerLocaleData(localeNo, this.languageCodeValue);
116
+ break;
117
+ case 'en':
118
+ this.languageCodeValue = englishLanguageCode;
119
+ this.fallbackLanguageCodeValue = englishLanguageCode;
120
+ this.defaultCountryValue = noDefaultCountry;
121
+ registerLocaleData(localeEn, this.languageCodeValue);
122
+ break;
123
+ case 'pl':
124
+ this.languageCodeValue = 'pl';
125
+ this.fallbackLanguageCodeValue = englishLanguageCode;
126
+ this.defaultCountryValue = 'PL';
127
+ registerLocaleData(localePl, this.languageCodeValue);
128
+ break;
129
+ case 'sg':
130
+ this.languageCodeValue = englishLanguageCode;
131
+ this.fallbackLanguageCodeValue = englishLanguageCode;
132
+ this.defaultCountryValue = 'SG';
133
+ registerLocaleData(localeEn, this.languageCodeValue);
134
+ break;
135
+ case 'se':
136
+ this.languageCodeValue = 'sv';
137
+ this.fallbackLanguageCodeValue = englishLanguageCode;
138
+ this.defaultCountryValue = 'SE';
139
+ registerLocaleData(localeSv, this.languageCodeValue);
140
+ break;
141
+ case 'uk':
142
+ this.languageCodeValue = englishLanguageCode;
143
+ this.fallbackLanguageCodeValue = englishLanguageCode;
144
+ this.defaultCountryValue = 'GB';
145
+ registerLocaleData(localeEnGb, this.languageCodeValue);
146
+ break;
147
+ case 'us':
148
+ this.languageCodeValue = englishLanguageCode;
149
+ this.fallbackLanguageCodeValue = englishLanguageCode;
150
+ this.defaultCountryValue = 'US';
151
+ registerLocaleData(localeEn, this.languageCodeValue);
152
+ break;
153
+ default:
154
+ break;
155
+ }
156
+ }
157
+ }
158
+ }
159
+ LanguageHelper.decorators = [
160
+ { type: Injectable }
161
+ ];
162
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZ3VhZ2UtaGVscGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlLWNvbXBvbmVudHMvc3JjL2xpYi9jb3JlL3NlcnZpY2VzL2xhbmd1YWdlL2xhbmd1YWdlLWhlbHBlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckQsT0FBTyxRQUFRLE1BQU0sNEJBQTRCLENBQUM7QUFDbEQsT0FBTyxVQUFVLE1BQU0sK0JBQStCLENBQUM7QUFDdkQsT0FBTyxVQUFVLE1BQU0sK0JBQStCLENBQUM7QUFDdkQsT0FBTyxVQUFVLE1BQU0sK0JBQStCLENBQUM7QUFDdkQsT0FBTyxRQUFRLE1BQU0sNEJBQTRCLENBQUM7QUFDbEQsT0FBTyxRQUFRLE1BQU0sNEJBQTRCLENBQUM7QUFDbEQsT0FBTyxRQUFRLE1BQU0sNEJBQTRCLENBQUM7QUFDbEQsT0FBTyxRQUFRLE1BQU0sNEJBQTRCLENBQUM7QUFDbEQsT0FBTyxRQUFRLE1BQU0sNEJBQTRCLENBQUM7QUFDbEQsT0FBTyxVQUFVLE1BQU0sK0JBQStCLENBQUM7QUFDdkQsT0FBTyxRQUFRLE1BQU0sNEJBQTRCLENBQUM7QUFDbEQsT0FBTyxRQUFRLE1BQU0sNEJBQTRCLENBQUM7QUFDbEQsT0FBTyxRQUFRLE1BQU0sNEJBQTRCLENBQUM7QUFDbEQsT0FBTyxRQUFRLE1BQU0sNEJBQTRCLENBQUM7QUFDbEQsT0FBTyxRQUFRLE1BQU0sNEJBQTRCLENBQUM7QUFDbEQsT0FBTyxVQUFVLE1BQU0sK0JBQStCLENBQUM7QUFHdkQsTUFBTSxPQUFPLGNBQWM7SUFLdkIsWUFBWTtRQUNSLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDO0lBQ2xDLENBQUM7SUFFRCxv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R0FBRyxJQUFJLENBQUM7b0JBQ2hDLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztvQkFDckQsTUFBTTtnQkFDVixLQUFLLElBQUk7b0JBQ0wsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztvQkFDOUIsSUFBSSxDQUFDLHlCQUF5QixHQUFHLG1CQUFtQixDQUFDO29CQUNyRCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDO29CQUNoQyxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7b0JBQ3JELE1BQU07Z0JBQ1YsS0FBSyxJQUFJO29CQUNMLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxtQkFBbUIsQ0FBQztvQkFDN0MsSUFBSSxDQUFDLHlCQUF5QixHQUFHLG1CQUFtQixDQUFDO29CQUNyRCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDO29CQUNoQyxrQkFBa0IsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7b0JBQ3ZELE1BQU07Z0JBQ1YsS0FBSyxJQUFJO29CQUNMLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxtQkFBbUIsQ0FBQztvQkFDN0MsSUFBSSxDQUFDLHlCQUF5QixHQUFHLG1CQUFtQixDQUFDO29CQUNyRCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDO29CQUNoQyxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7b0JBQ3JELE1BQU07Z0JBQ1Y7b0JBQ0ksTUFBTTthQUNiO1NBQ0o7SUFDTCxDQUFDOzs7WUFwSkosVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHJlZ2lzdGVyTG9jYWxlRGF0YSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgbG9jYWxlUHQgZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMvcHQnO1xuaW1wb3J0IGxvY2FsZUVzQXIgZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMvZXMtQVInO1xuaW1wb3J0IGxvY2FsZUVuQ2EgZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMvZW4tQ0EnO1xuaW1wb3J0IGxvY2FsZUZyQ2EgZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMvZnItQ0EnO1xuaW1wb3J0IGxvY2FsZURhIGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9sb2NhbGVzL2RhJztcbmltcG9ydCBsb2NhbGVEZSBmcm9tICdAYW5ndWxhci9jb21tb24vbG9jYWxlcy9kZSc7XG5pbXBvcnQgbG9jYWxlRXMgZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMvZXMnO1xuaW1wb3J0IGxvY2FsZUZpIGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9sb2NhbGVzL2ZpJztcbmltcG9ydCBsb2NhbGVGciBmcm9tICdAYW5ndWxhci9jb21tb24vbG9jYWxlcy9mcic7XG5pbXBvcnQgbG9jYWxlRW5JZSBmcm9tICdAYW5ndWxhci9jb21tb24vbG9jYWxlcy9lbi1JRSc7XG5pbXBvcnQgbG9jYWxlSXQgZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMvaXQnO1xuaW1wb3J0IGxvY2FsZUVuIGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9sb2NhbGVzL2VuJztcbmltcG9ydCBsb2NhbGVObyBmcm9tICdAYW5ndWxhci9jb21tb24vbG9jYWxlcy9uYic7XG5pbXBvcnQgbG9jYWxlUGwgZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMvcGwnO1xuaW1wb3J0IGxvY2FsZVN2IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9sb2NhbGVzL3N2JztcbmltcG9ydCBsb2NhbGVFbkdiIGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9sb2NhbGVzL2VuLUdCJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIExhbmd1YWdlSGVscGVyIHtcbiAgICBwcml2YXRlIGxhbmd1YWdlQ29kZVZhbHVlOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBmYWxsYmFja0xhbmd1YWdlQ29kZVZhbHVlOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBkZWZhdWx0Q291bnRyeVZhbHVlOiBzdHJpbmc7XG5cbiAgICBsYW5ndWFnZUNvZGUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubGFuZ3VhZ2VDb2RlVmFsdWU7XG4gICAgfVxuXG4gICAgZmFsbGJhY2tMYW5ndWFnZUNvZGUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmFsbGJhY2tMYW5ndWFnZUNvZGVWYWx1ZTtcbiAgICB9XG5cbiAgICBkZWZhdWx0Q291bnRyeUNvZGUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGVmYXVsdENvdW50cnlWYWx1ZTtcbiAgICB9XG5cbiAgICBzZXRMYW5ndWFnZUJhc2VkT25NYXJrZXRDb2RlKG1hcmtldENvZGU6IHN0cmluZykge1xuICAgICAgICBjb25zdCBlbmdsaXNoTGFuZ3VhZ2VDb2RlID0gJ2VuJztcbiAgICAgICAgY29uc3Qgc3BhbmlzaExhbmd1YWdlQ29kZSA9ICdlcyc7XG4gICAgICAgIGNvbnN0IGZyZW5jaExhbmd1YWdlQ29kZSA9ICdmcic7XG4gICAgICAgIGNvbnN0IG5vRGVmYXVsdENvdW50cnkgPSAnJztcblxuICAgICAgICB0aGlzLmxhbmd1YWdlQ29kZVZhbHVlID0gZW5nbGlzaExhbmd1YWdlQ29kZTtcbiAgICAgICAgdGhpcy5mYWxsYmFja0xhbmd1YWdlQ29kZVZhbHVlID0gZW5nbGlzaExhbmd1YWdlQ29kZTtcbiAgICAgICAgdGhpcy5kZWZhdWx0Q291bnRyeVZhbHVlID0gbm9EZWZhdWx0Q291bnRyeTtcblxuICAgICAgICBpZiAobWFya2V0Q29kZSkge1xuICAgICAgICAgICAgc3dpdGNoIChtYXJrZXRDb2RlLnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgICAgICAgICAgICBjYXNlICdhcic6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubGFuZ3VhZ2VDb2RlVmFsdWUgPSAnZXMtQVInO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZhbGxiYWNrTGFuZ3VhZ2VDb2RlVmFsdWUgPSBzcGFuaXNoTGFuZ3VhZ2VDb2RlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRlZmF1bHRDb3VudHJ5VmFsdWUgPSAnQVInO1xuICAgICAgICAgICAgICAgICAgICByZWdpc3RlckxvY2FsZURhdGEobG9jYWxlRXNBciwgdGhpcy5sYW5ndWFnZUNvZGVWYWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ2JyJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sYW5ndWFnZUNvZGVWYWx1ZSA9ICdwdC1CUic7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmFsbGJhY2tMYW5ndWFnZUNvZGVWYWx1ZSA9IGVuZ2xpc2hMYW5ndWFnZUNvZGU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGVmYXVsdENvdW50cnlWYWx1ZSA9ICdCUic7XG4gICAgICAgICAgICAgICAgICAgIHJlZ2lzdGVyTG9jYWxlRGF0YShsb2NhbGVQdCwgdGhpcy5sYW5ndWFnZUNvZGVWYWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ2VuLWNhJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sYW5ndWFnZUNvZGVWYWx1ZSA9IGVuZ2xpc2hMYW5ndWFnZUNvZGU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmFsbGJhY2tMYW5ndWFnZUNvZGVWYWx1ZSA9IGVuZ2xpc2hMYW5ndWFnZUNvZGU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGVmYXVsdENvdW50cnlWYWx1ZSA9ICdDQSc7XG4gICAgICAgICAgICAgICAgICAgIHJlZ2lzdGVyTG9jYWxlRGF0YShsb2NhbGVFbkNhLCB0aGlzLmxhbmd1YWdlQ29kZVZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnZnItY2EnOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmxhbmd1YWdlQ29kZVZhbHVlID0gJ2ZyLUNBJztcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mYWxsYmFja0xhbmd1YWdlQ29kZVZhbHVlID0gZnJlbmNoTGFuZ3VhZ2VDb2RlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRlZmF1bHRDb3VudHJ5VmFsdWUgPSAnQ0EnO1xuICAgICAgICAgICAgICAgICAgICByZWdpc3RlckxvY2FsZURhdGEobG9jYWxlRnJDYSwgdGhpcy5sYW5ndWFnZUNvZGVWYWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ2RrJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sYW5ndWFnZUNvZGVWYWx1ZSA9ICdkYSc7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmFsbGJhY2tMYW5ndWFnZUNvZGVWYWx1ZSA9IGVuZ2xpc2hMYW5ndWFnZUNvZGU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGVmYXVsdENvdW50cnlWYWx1ZSA9ICdESyc7XG4gICAgICAgICAgICAgICAgICAgIHJlZ2lzdGVyTG9jYWxlRGF0YShsb2NhbGVEYSwgdGhpcy5sYW5ndWFnZUNvZGVWYWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ2RlJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sYW5ndWFnZUNvZGVWYWx1ZSA9ICdkZSc7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmFsbGJhY2tMYW5ndWFnZUNvZGVWYWx1ZSA9IGVuZ2xpc2hMYW5ndWFnZUNvZGU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGVmYXVsdENvdW50cnlWYWx1ZSA9ICdERSc7XG4gICAgICAgICAgICAgICAgICAgIHJlZ2lzdGVyTG9jYWxlRGF0YShsb2NhbGVEZSwgdGhpcy5sYW5ndWFnZUNvZGVWYWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ2VzJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sYW5ndWFnZUNvZGVWYWx1ZSA9IHNwYW5pc2hMYW5ndWFnZUNvZGU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmFsbGJhY2tMYW5ndWFnZUNvZGVWYWx1ZSA9IGVuZ2xpc2hMYW5ndWFnZUNvZGU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGVmYXVsdENvdW50cnlWYWx1ZSA9ICdFUyc7XG4gICAgICAgICAgICAgICAgICAgIHJlZ2lzdGVyTG9jYWxlRGF0YShsb2NhbGVFcywgdGhpcy5sYW5ndWFnZUNvZGVWYWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ2ZpJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sYW5ndWFnZUNvZGVWYWx1ZSA9ICdmaSc7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmFsbGJhY2tMYW5ndWFnZUNvZGVWYWx1ZSA9IGVuZ2xpc2hMYW5ndWFnZUNvZGU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGVmYXVsdENvdW50cnlWYWx1ZSA9ICdGSSc7XG4gICAgICAgICAgICAgICAgICAgIHJlZ2lzdGVyTG9jYWxlRGF0YShsb2NhbGVGaSwgdGhpcy5sYW5ndWFnZUNvZGVWYWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ2ZyJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sYW5ndWFnZUNvZGVWYWx1ZSA9IGZyZW5jaExhbmd1YWdlQ29kZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mYWxsYmFja0xhbmd1YWdlQ29kZVZhbHVlID0gZW5nbGlzaExhbmd1YWdlQ29kZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kZWZhdWx0Q291bnRyeVZhbHVlID0gJ0ZSJztcbiAgICAgICAgICAgICAgICAgICAgcmVnaXN0ZXJMb2NhbGVEYXRhKGxvY2FsZUZyLCB0aGlzLmxhbmd1YWdlQ29kZVZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnaWUnOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmxhbmd1YWdlQ29kZVZhbHVlID0gJ2VuLUlFJztcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mYWxsYmFja0xhbmd1YWdlQ29kZVZhbHVlID0gZW5nbGlzaExhbmd1YWdlQ29kZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kZWZhdWx0Q291bnRyeVZhbHVlID0gJ0lFJztcbiAgICAgICAgICAgICAgICAgICAgcmVnaXN0ZXJMb2NhbGVEYXRhKGxvY2FsZUVuSWUsIHRoaXMubGFuZ3VhZ2VDb2RlVmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdpdCc6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubGFuZ3VhZ2VDb2RlVmFsdWUgPSAnaXQnO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZhbGxiYWNrTGFuZ3VhZ2VDb2RlVmFsdWUgPSBlbmdsaXNoTGFuZ3VhZ2VDb2RlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRlZmF1bHRDb3VudHJ5VmFsdWUgPSAnSVQnO1xuICAgICAgICAgICAgICAgICAgICByZWdpc3RlckxvY2FsZURhdGEobG9jYWxlSXQsIHRoaXMubGFuZ3VhZ2VDb2RlVmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdubCc6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubGFuZ3VhZ2VDb2RlVmFsdWUgPSBlbmdsaXNoTGFuZ3VhZ2VDb2RlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZhbGxiYWNrTGFuZ3VhZ2VDb2RlVmFsdWUgPSBlbmdsaXNoTGFuZ3VhZ2VDb2RlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRlZmF1bHRDb3VudHJ5VmFsdWUgPSAnTkwnO1xuICAgICAgICAgICAgICAgICAgICByZWdpc3RlckxvY2FsZURhdGEobG9jYWxlRW4sIHRoaXMubGFuZ3VhZ2VDb2RlVmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdubyc6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubGFuZ3VhZ2VDb2RlVmFsdWUgPSAnbm8nO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZhbGxiYWNrTGFuZ3VhZ2VDb2RlVmFsdWUgPSBlbmdsaXNoTGFuZ3VhZ2VDb2RlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRlZmF1bHRDb3VudHJ5VmFsdWUgPSAnTk8nO1xuICAgICAgICAgICAgICAgICAgICByZWdpc3RlckxvY2FsZURhdGEobG9jYWxlTm8sIHRoaXMubGFuZ3VhZ2VDb2RlVmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdlbic6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubGFuZ3VhZ2VDb2RlVmFsdWUgPSBlbmdsaXNoTGFuZ3VhZ2VDb2RlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZhbGxiYWNrTGFuZ3VhZ2VDb2RlVmFsdWUgPSBlbmdsaXNoTGFuZ3VhZ2VDb2RlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRlZmF1bHRDb3VudHJ5VmFsdWUgPSBub0RlZmF1bHRDb3VudHJ5O1xuICAgICAgICAgICAgICAgICAgICByZWdpc3RlckxvY2FsZURhdGEobG9jYWxlRW4sIHRoaXMubGFuZ3VhZ2VDb2RlVmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdwbCc6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubGFuZ3VhZ2VDb2RlVmFsdWUgPSAncGwnO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZhbGxiYWNrTGFuZ3VhZ2VDb2RlVmFsdWUgPSBlbmdsaXNoTGFuZ3VhZ2VDb2RlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRlZmF1bHRDb3VudHJ5VmFsdWUgPSAnUEwnO1xuICAgICAgICAgICAgICAgICAgICByZWdpc3RlckxvY2FsZURhdGEobG9jYWxlUGwsIHRoaXMubGFuZ3VhZ2VDb2RlVmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdzZyc6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubGFuZ3VhZ2VDb2RlVmFsdWUgPSBlbmdsaXNoTGFuZ3VhZ2VDb2RlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZhbGxiYWNrTGFuZ3VhZ2VDb2RlVmFsdWUgPSBlbmdsaXNoTGFuZ3VhZ2VDb2RlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRlZmF1bHRDb3VudHJ5VmFsdWUgPSAnU0cnO1xuICAgICAgICAgICAgICAgICAgICByZWdpc3RlckxvY2FsZURhdGEobG9jYWxlRW4sIHRoaXMubGFuZ3VhZ2VDb2RlVmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdzZSc6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubGFuZ3VhZ2VDb2RlVmFsdWUgPSAnc3YnO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZhbGxiYWNrTGFuZ3VhZ2VDb2RlVmFsdWUgPSBlbmdsaXNoTGFuZ3VhZ2VDb2RlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRlZmF1bHRDb3VudHJ5VmFsdWUgPSAnU0UnO1xuICAgICAgICAgICAgICAgICAgICByZWdpc3RlckxvY2FsZURhdGEobG9jYWxlU3YsIHRoaXMubGFuZ3VhZ2VDb2RlVmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICd1ayc6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubGFuZ3VhZ2VDb2RlVmFsdWUgPSBlbmdsaXNoTGFuZ3VhZ2VDb2RlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZhbGxiYWNrTGFuZ3VhZ2VDb2RlVmFsdWUgPSBlbmdsaXNoTGFuZ3VhZ2VDb2RlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRlZmF1bHRDb3VudHJ5VmFsdWUgPSAnR0InO1xuICAgICAgICAgICAgICAgICAgICByZWdpc3RlckxvY2FsZURhdGEobG9jYWxlRW5HYiwgdGhpcy5sYW5ndWFnZUNvZGVWYWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ3VzJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sYW5ndWFnZUNvZGVWYWx1ZSA9IGVuZ2xpc2hMYW5ndWFnZUNvZGU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmFsbGJhY2tMYW5ndWFnZUNvZGVWYWx1ZSA9IGVuZ2xpc2hMYW5ndWFnZUNvZGU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGVmYXVsdENvdW50cnlWYWx1ZSA9ICdVUyc7XG4gICAgICAgICAgICAgICAgICAgIHJlZ2lzdGVyTG9jYWxlRGF0YShsb2NhbGVFbiwgdGhpcy5sYW5ndWFnZUNvZGVWYWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -0,0 +1,19 @@
1
+ import { Injectable } from '@angular/core';
2
+ export class SortService {
3
+ sortByObject(array, order, key) {
4
+ array.sort((a, b) => {
5
+ const A = a[key], B = b[key];
6
+ if (order.indexOf(A) > order.indexOf(B)) {
7
+ return 1;
8
+ }
9
+ else {
10
+ return -1;
11
+ }
12
+ });
13
+ return array;
14
+ }
15
+ }
16
+ SortService.decorators = [
17
+ { type: Injectable }
18
+ ];
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS1jb21wb25lbnRzL3NyYy9saWIvY29yZS9zZXJ2aWNlcy9zb3J0L3NvcnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE1BQU0sT0FBTyxXQUFXO0lBQ3RCLFlBQVksQ0FBQyxLQUFpQixFQUFFLEtBQW9CLEVBQUUsR0FBVztRQUMvRCxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ2xCLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBRTdCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUN2QyxPQUFPLENBQUMsQ0FBQzthQUNWO2lCQUFNO2dCQUNMLE9BQU8sQ0FBQyxDQUFDLENBQUM7YUFDWDtRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOzs7WUFkRixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU29ydFNlcnZpY2Uge1xuICBzb3J0QnlPYmplY3QoYXJyYXk6IEFycmF5PGFueT4sIG9yZGVyOiBBcnJheTxzdHJpbmc+LCBrZXk6IHN0cmluZykge1xuICAgIGFycmF5LnNvcnQoKGEsIGIpID0+IHtcbiAgICAgIGNvbnN0IEEgPSBhW2tleV0sIEIgPSBiW2tleV07XG5cbiAgICAgIGlmIChvcmRlci5pbmRleE9mKEEpID4gb3JkZXIuaW5kZXhPZihCKSkge1xuICAgICAgICByZXR1cm4gMTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiAtMTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBhcnJheTtcbiAgfVxufVxuIl19
@@ -0,0 +1,29 @@
1
+ import { Injectable } from '@angular/core';
2
+ export class ViewPortService {
3
+ isElementInViewport(element) {
4
+ const rect = element.getBoundingClientRect();
5
+ const isInViewPort = rect.top >= 0 &&
6
+ rect.left >= 0 &&
7
+ rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&
8
+ rect.right <= (window.innerWidth || document.documentElement.clientWidth);
9
+ return isInViewPort;
10
+ }
11
+ getElementPosition(element) {
12
+ let el = element;
13
+ let x = 0;
14
+ let y = 0;
15
+ while (el && !isNaN(el.offsetLeft) && !isNaN(el.offsetTop)) {
16
+ x += el.offsetLeft;
17
+ y += el.offsetTop;
18
+ el = el.offsetParent;
19
+ }
20
+ return {
21
+ x: x,
22
+ y: y,
23
+ };
24
+ }
25
+ }
26
+ ViewPortService.decorators = [
27
+ { type: Injectable }
28
+ ];
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld3BvcnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUtY29tcG9uZW50cy9zcmMvbGliL2NvcmUvc2VydmljZXMvdmlld3BvcnQvdmlld3BvcnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE1BQU0sT0FBTyxlQUFlO0lBQzFCLG1CQUFtQixDQUFDLE9BQW9CO1FBQ3RDLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBRTdDLE1BQU0sWUFBWSxHQUNoQixJQUFJLENBQUMsR0FBRyxJQUFJLENBQUM7WUFDYixJQUFJLENBQUMsSUFBSSxJQUFJLENBQUM7WUFDZCxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsSUFBSSxRQUFRLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQztZQUM1RSxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsSUFBSSxRQUFRLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRTVFLE9BQU8sWUFBWSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxPQUFvQjtRQUNyQyxJQUFJLEVBQUUsR0FBUSxPQUFPLENBQUM7UUFDdEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ1YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRVYsT0FBTyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUMxRCxDQUFDLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQztZQUNuQixDQUFDLElBQUksRUFBRSxDQUFDLFNBQVMsQ0FBQztZQUNsQixFQUFFLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQztTQUN0QjtRQUVELE9BQU87WUFDTCxDQUFDLEVBQUUsQ0FBQztZQUNKLENBQUMsRUFBRSxDQUFDO1NBQ0wsQ0FBQztJQUNKLENBQUM7OztZQTdCRixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVmlld1BvcnRTZXJ2aWNlIHtcbiAgaXNFbGVtZW50SW5WaWV3cG9ydChlbGVtZW50OiBIVE1MRWxlbWVudCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHJlY3QgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgY29uc3QgaXNJblZpZXdQb3J0ID1cbiAgICAgIHJlY3QudG9wID49IDAgJiZcbiAgICAgIHJlY3QubGVmdCA+PSAwICYmXG4gICAgICByZWN0LmJvdHRvbSA8PSAod2luZG93LmlubmVySGVpZ2h0IHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQpICYmXG4gICAgICByZWN0LnJpZ2h0IDw9ICh3aW5kb3cuaW5uZXJXaWR0aCB8fCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGgpO1xuXG4gICAgcmV0dXJuIGlzSW5WaWV3UG9ydDtcbiAgfVxuXG4gIGdldEVsZW1lbnRQb3NpdGlvbihlbGVtZW50OiBIVE1MRWxlbWVudCk6IFBvc2l0aW9uIHtcbiAgICBsZXQgZWw6IGFueSA9IGVsZW1lbnQ7XG4gICAgbGV0IHggPSAwO1xuICAgIGxldCB5ID0gMDtcblxuICAgIHdoaWxlIChlbCAmJiAhaXNOYU4oZWwub2Zmc2V0TGVmdCkgJiYgIWlzTmFOKGVsLm9mZnNldFRvcCkpIHtcbiAgICAgIHggKz0gZWwub2Zmc2V0TGVmdDtcbiAgICAgIHkgKz0gZWwub2Zmc2V0VG9wO1xuICAgICAgZWwgPSBlbC5vZmZzZXRQYXJlbnQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIHg6IHgsXG4gICAgICB5OiB5LFxuICAgIH07XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBQb3NpdGlvbiB7XG4gIHg6IG51bWJlcjtcbiAgeTogbnVtYmVyO1xufVxuIl19
@@ -0,0 +1,5 @@
1
+ export * from './components/index';
2
+ export * from './services/index';
3
+ export * from './core/index';
4
+ export * from './shared/index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlLWNvbXBvbmVudHMvc3JjL2xpYi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxnQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL2luZGV4JztcbmV4cG9ydCAqIGZyb20gJy4vY29yZS9pbmRleCc7XG5leHBvcnQgKiBmcm9tICcuL3NoYXJlZC9pbmRleCc7XG4iXX0=