@norwegian/core-components 5.18.0 → 5.18.2

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 (515) hide show
  1. package/esm2020/lib/components/accordion/accordion.component.mjs +148 -0
  2. package/esm2020/lib/components/accordion/accordion.module.mjs +20 -0
  3. package/esm2020/lib/components/airport-select/airport-select-dropdown/airport-select-dropdown.component.mjs +610 -0
  4. package/esm2020/lib/components/airport-select/airport-select.component.mjs +438 -0
  5. package/esm2020/lib/components/airport-select/airport-select.module.mjs +42 -0
  6. package/esm2020/lib/components/airport-select/services/airport-select-dropdown.service.mjs +35 -0
  7. package/esm2020/lib/components/airport-select/services/airport-select.service.mjs +38 -0
  8. package/esm2020/lib/components/autocomplete/autocomplete.component.mjs +287 -0
  9. package/esm2020/lib/components/autocomplete/autocomplete.module.mjs +43 -0
  10. package/esm2020/lib/components/backdrop/backdrop.component.mjs +56 -0
  11. package/esm2020/lib/components/backdrop/backdrop.module.mjs +24 -0
  12. package/esm2020/lib/components/box/box.component.mjs +68 -0
  13. package/esm2020/lib/components/box/box.module.mjs +19 -0
  14. package/esm2020/lib/components/button/button.component.mjs +167 -0
  15. package/esm2020/lib/components/button/button.module.mjs +20 -0
  16. package/esm2020/lib/components/checkbox/checkbox.component.mjs +148 -0
  17. package/esm2020/lib/components/checkbox/checkbox.module.mjs +20 -0
  18. package/esm2020/lib/components/chip/chip.component.mjs +53 -0
  19. package/esm2020/lib/components/chip/chip.module.mjs +24 -0
  20. package/esm2020/lib/components/container/container.component.mjs +50 -0
  21. package/esm2020/lib/components/container/container.module.mjs +19 -0
  22. package/esm2020/lib/components/continue/continue.component.mjs +194 -0
  23. package/esm2020/lib/components/continue/continue.module.mjs +34 -0
  24. package/esm2020/lib/components/cover/cover.component.mjs +75 -0
  25. package/esm2020/lib/components/cover/cover.module.mjs +21 -0
  26. package/esm2020/lib/components/datepicker/calendar/calendar.component.mjs +583 -0
  27. package/esm2020/lib/components/datepicker/datepicker.component.mjs +550 -0
  28. package/esm2020/lib/components/datepicker/datepicker.module.mjs +55 -0
  29. package/esm2020/lib/components/datepicker/services/calendar.service.mjs +213 -0
  30. package/esm2020/lib/components/datepicker-combo/datepicker-combo.component.mjs +355 -0
  31. package/esm2020/lib/components/datepicker-combo/datepicker-combo.module.mjs +31 -0
  32. package/esm2020/lib/components/divider/divider.component.mjs +61 -0
  33. package/esm2020/lib/components/divider/divider.module.mjs +20 -0
  34. package/esm2020/lib/components/dropdown/dropdown.component.mjs +169 -0
  35. package/esm2020/lib/components/dropdown/dropdown.module.mjs +32 -0
  36. package/esm2020/lib/components/filter/filter.component.mjs +1253 -0
  37. package/esm2020/lib/components/filter/filter.module.mjs +73 -0
  38. package/esm2020/lib/components/grid/col/col.component.mjs +49 -0
  39. package/esm2020/lib/components/grid/grid.component.mjs +72 -0
  40. package/esm2020/lib/components/grid/grid.module.mjs +20 -0
  41. package/esm2020/lib/components/icon/icon.component.mjs +44 -0
  42. package/esm2020/lib/components/icon/icon.module.mjs +24 -0
  43. package/esm2020/lib/components/icon-list/icon-list.component.mjs +50 -0
  44. package/esm2020/lib/components/icon-list/icon-list.module.mjs +20 -0
  45. package/esm2020/lib/components/info/info.component.mjs +106 -0
  46. package/esm2020/lib/components/info/info.module.mjs +36 -0
  47. package/esm2020/lib/components/input/input.component.mjs +179 -0
  48. package/esm2020/lib/components/input/input.module.mjs +21 -0
  49. package/esm2020/lib/components/journey/journey.component.mjs +126 -0
  50. package/esm2020/lib/components/journey/journey.module.mjs +28 -0
  51. package/esm2020/lib/components/journey-availability/journey-availability.component.mjs +126 -0
  52. package/esm2020/lib/components/journey-availability/journey-availability.module.mjs +39 -0
  53. package/esm2020/lib/components/journey-availability-list/journey-availability-list.component.mjs +185 -0
  54. package/{esm2015/lib/components/journey-availability-list/journey-availability-list.module.js → esm2020/lib/components/journey-availability-list/journey-availability-list.module.mjs} +27 -14
  55. package/esm2020/lib/components/journey-selection/journey-selection.component.mjs +112 -0
  56. package/esm2020/lib/components/journey-selection/journey-selection.module.mjs +35 -0
  57. package/esm2020/lib/components/journey-stopover/journey-stopover.component.mjs +125 -0
  58. package/esm2020/lib/components/journey-stopover/journey-stopover.module.mjs +28 -0
  59. package/esm2020/lib/components/list/list-item/list-item.component.mjs +52 -0
  60. package/esm2020/lib/components/list/list.component.mjs +78 -0
  61. package/esm2020/lib/components/list/list.module.mjs +20 -0
  62. package/esm2020/lib/components/modal/modal.component.mjs +141 -0
  63. package/esm2020/lib/components/modal/modal.module.mjs +38 -0
  64. package/esm2020/lib/components/number-field/number-field.component.mjs +135 -0
  65. package/esm2020/lib/components/number-field/number-field.module.mjs +39 -0
  66. package/esm2020/lib/components/page-footer/page-footer.component.mjs +54 -0
  67. package/esm2020/lib/components/page-footer/page-footer.module.mjs +21 -0
  68. package/esm2020/lib/components/page-header/hamburger/hamburger.component.mjs +22 -0
  69. package/esm2020/lib/components/page-header/page-header.component.mjs +142 -0
  70. package/esm2020/lib/components/page-header/page-header.module.mjs +23 -0
  71. package/esm2020/lib/components/page-header/search/search.component.mjs +49 -0
  72. package/{esm2015/lib/components/passenger-select/models/passengers.model.js → esm2020/lib/components/passenger-select/models/passengers.model.mjs} +1 -1
  73. package/esm2020/lib/components/passenger-select/passenger-select.component.mjs +225 -0
  74. package/esm2020/lib/components/passenger-select/passenger-select.module.mjs +28 -0
  75. package/esm2020/lib/components/phone-number/phone-number.component.mjs +148 -0
  76. package/esm2020/lib/components/phone-number/phone-number.module.mjs +44 -0
  77. package/esm2020/lib/components/premium-toggle/premium-toggle.component.mjs +69 -0
  78. package/esm2020/lib/components/premium-toggle/premium-toggle.module.mjs +28 -0
  79. package/esm2020/lib/components/radio/radio.component.mjs +98 -0
  80. package/esm2020/lib/components/radio/radio.module.mjs +20 -0
  81. package/esm2020/lib/components/select/optgroup/optgroup.component.mjs +29 -0
  82. package/esm2020/lib/components/select/option/option.component.mjs +26 -0
  83. package/esm2020/lib/components/select/select.component.mjs +354 -0
  84. package/esm2020/lib/components/select/select.module.mjs +30 -0
  85. package/esm2020/lib/components/simple-list/simple-list.component.mjs +48 -0
  86. package/esm2020/lib/components/simple-list/simple-list.module.mjs +19 -0
  87. package/esm2020/lib/components/slide-toggle/slide-toggle.component.mjs +111 -0
  88. package/esm2020/lib/components/slide-toggle/slide-toggle.module.mjs +31 -0
  89. package/esm2020/lib/components/slider/slider.component.mjs +501 -0
  90. package/esm2020/lib/components/slider/slider.module.mjs +28 -0
  91. package/esm2020/lib/components/sort/sort.component.mjs +93 -0
  92. package/esm2020/lib/components/sort/sort.module.mjs +36 -0
  93. package/esm2020/lib/components/spinner/spinner.component.mjs +112 -0
  94. package/esm2020/lib/components/spinner/spinner.module.mjs +19 -0
  95. package/esm2020/lib/components/subsidy-discount/subsidy-discount.component.mjs +110 -0
  96. package/esm2020/lib/components/subsidy-discount/subsidy-discount.module.mjs +36 -0
  97. package/esm2020/lib/components/suggestions/suggestions.component.mjs +43 -0
  98. package/esm2020/lib/components/suggestions/suggestions.module.mjs +28 -0
  99. package/esm2020/lib/components/tab-group/tab/tab.component.mjs +131 -0
  100. package/esm2020/lib/components/tab-group/tab-group.component.mjs +87 -0
  101. package/esm2020/lib/components/tab-group/tab-group.module.mjs +29 -0
  102. package/esm2020/lib/components/table/column/column.component.mjs +16 -0
  103. package/esm2020/lib/components/table/column-group/column-group.component.mjs +30 -0
  104. package/esm2020/lib/components/table/services/table.service.mjs +21 -0
  105. package/esm2020/lib/components/table/table-body/table-body.component.mjs +23 -0
  106. package/esm2020/lib/components/table/table-foot/table-foot.component.mjs +23 -0
  107. package/esm2020/lib/components/table/table-head/table-head.component.mjs +23 -0
  108. package/esm2020/lib/components/table/table-row/table-data/table-data.component.mjs +15 -0
  109. package/esm2020/lib/components/table/table-row/table-header/table-header.component.mjs +15 -0
  110. package/esm2020/lib/components/table/table-row/table-row.component.mjs +23 -0
  111. package/esm2020/lib/components/table/table.component.mjs +29 -0
  112. package/esm2020/lib/components/table/table.module.mjs +68 -0
  113. package/esm2020/lib/components/textarea/textarea.component.mjs +93 -0
  114. package/esm2020/lib/components/textarea/textarea.module.mjs +31 -0
  115. package/esm2020/lib/components/toggle/toggle.component.mjs +103 -0
  116. package/esm2020/lib/components/toggle/toggle.module.mjs +35 -0
  117. package/esm2020/lib/components/trip-summary/trip-summary.component.mjs +170 -0
  118. package/esm2020/lib/components/trip-summary/trip-summary.module.mjs +36 -0
  119. package/esm2020/lib/components/weather-icon/weather-icon.component.mjs +60 -0
  120. package/esm2020/lib/components/weather-icon/weather-icon.module.mjs +19 -0
  121. package/esm2020/lib/core/base/nas-component.base.mjs +47 -0
  122. package/esm2020/lib/core/directives/nas-class/nas-class.directive.mjs +80 -0
  123. package/esm2020/lib/core/directives/nas-class/nas-class.module.mjs +22 -0
  124. package/{esm2015/lib/core/extensions/html-element.extension.js → esm2020/lib/core/extensions/html-element.extension.mjs} +1 -1
  125. package/esm2020/lib/core/services/abandoned-basket/abandoned-basket.service.mjs +58 -0
  126. package/esm2020/lib/core/services/animate-helper/animate-helper.service.mjs +49 -0
  127. package/esm2020/lib/core/services/bem-helper/bem-helper.service.mjs +44 -0
  128. package/esm2020/lib/core/services/date/date-helper.service.mjs +199 -0
  129. package/esm2020/lib/core/services/device/device-helper.service.mjs +46 -0
  130. package/esm2020/lib/core/services/geolocation/geolocation.service.mjs +63 -0
  131. package/esm2020/lib/core/services/language/language-helper.service.mjs +129 -0
  132. package/esm2020/lib/core/services/sort/sort.service.mjs +22 -0
  133. package/esm2020/lib/core/services/viewport/viewport.service.mjs +32 -0
  134. package/esm2020/lib/services/get-position.service.mjs +23 -0
  135. package/esm2020/norwegian-core-components.mjs +5 -0
  136. package/fesm2015/norwegian-core-components.mjs +11843 -0
  137. package/fesm2015/norwegian-core-components.mjs.map +1 -0
  138. package/fesm2020/norwegian-core-components.mjs +11829 -0
  139. package/fesm2020/norwegian-core-components.mjs.map +1 -0
  140. package/index.d.ts +5 -0
  141. package/lib/components/accordion/accordion.component.d.ts +3 -0
  142. package/lib/components/accordion/accordion.module.d.ts +8 -0
  143. package/lib/components/airport-select/airport-select-dropdown/airport-select-dropdown.component.d.ts +5 -2
  144. package/lib/components/airport-select/airport-select.component.d.ts +5 -2
  145. package/lib/components/airport-select/airport-select.module.d.ts +11 -0
  146. package/lib/components/airport-select/services/airport-select-dropdown.service.d.ts +3 -0
  147. package/lib/components/airport-select/services/airport-select.service.d.ts +3 -0
  148. package/lib/components/autocomplete/autocomplete.component.d.ts +5 -2
  149. package/lib/components/autocomplete/autocomplete.module.d.ts +11 -0
  150. package/lib/components/backdrop/backdrop.component.d.ts +3 -0
  151. package/lib/components/backdrop/backdrop.module.d.ts +7 -0
  152. package/lib/components/box/box.component.d.ts +3 -4
  153. package/lib/components/box/box.module.d.ts +7 -0
  154. package/lib/components/button/button.component.d.ts +3 -0
  155. package/lib/components/button/button.module.d.ts +8 -0
  156. package/lib/components/checkbox/checkbox.component.d.ts +5 -2
  157. package/lib/components/checkbox/checkbox.module.d.ts +8 -0
  158. package/lib/components/chip/chip.component.d.ts +3 -0
  159. package/lib/components/chip/chip.module.d.ts +7 -0
  160. package/lib/components/container/container.component.d.ts +3 -4
  161. package/lib/components/container/container.module.d.ts +7 -0
  162. package/lib/components/continue/continue.component.d.ts +3 -0
  163. package/lib/components/continue/continue.module.d.ts +9 -0
  164. package/lib/components/cover/cover.component.d.ts +3 -0
  165. package/lib/components/cover/cover.module.d.ts +9 -0
  166. package/lib/components/datepicker/calendar/calendar.component.d.ts +5 -2
  167. package/lib/components/datepicker/datepicker.component.d.ts +5 -2
  168. package/lib/components/datepicker/datepicker.module.d.ts +14 -0
  169. package/lib/components/datepicker/services/calendar.service.d.ts +3 -0
  170. package/lib/components/datepicker-combo/datepicker-combo.component.d.ts +3 -0
  171. package/lib/components/datepicker-combo/datepicker-combo.module.d.ts +8 -0
  172. package/lib/components/divider/divider.component.d.ts +3 -4
  173. package/lib/components/divider/divider.module.d.ts +8 -0
  174. package/lib/components/dropdown/dropdown.component.d.ts +3 -0
  175. package/lib/components/dropdown/dropdown.module.d.ts +9 -0
  176. package/lib/components/filter/filter.component.d.ts +5 -2
  177. package/lib/components/filter/filter.module.d.ts +18 -0
  178. package/lib/components/grid/col/col.component.d.ts +4 -1
  179. package/lib/components/grid/grid.component.d.ts +3 -4
  180. package/lib/components/grid/grid.module.d.ts +8 -0
  181. package/lib/components/icon/icon.component.d.ts +3 -4
  182. package/lib/components/icon/icon.module.d.ts +7 -0
  183. package/lib/components/icon-list/icon-list.component.d.ts +3 -0
  184. package/lib/components/icon-list/icon-list.module.d.ts +8 -0
  185. package/lib/components/info/info.component.d.ts +3 -0
  186. package/lib/components/info/info.module.d.ts +10 -0
  187. package/lib/components/input/input.component.d.ts +5 -2
  188. package/lib/components/input/input.module.d.ts +9 -0
  189. package/lib/components/journey/journey.component.d.ts +3 -0
  190. package/lib/components/journey/journey.module.d.ts +8 -0
  191. package/lib/components/journey-availability/journey-availability.component.d.ts +3 -0
  192. package/lib/components/journey-availability/journey-availability.module.d.ts +10 -0
  193. package/lib/components/journey-availability-list/journey-availability-list.component.d.ts +3 -0
  194. package/lib/components/journey-availability-list/journey-availability-list.module.d.ts +10 -0
  195. package/lib/components/journey-selection/journey-selection.component.d.ts +3 -0
  196. package/lib/components/journey-selection/journey-selection.module.d.ts +9 -0
  197. package/lib/components/journey-stopover/journey-stopover.component.d.ts +3 -0
  198. package/lib/components/journey-stopover/journey-stopover.module.d.ts +8 -0
  199. package/lib/components/list/list-item/list-item.component.d.ts +3 -0
  200. package/lib/components/list/list.component.d.ts +4 -1
  201. package/lib/components/list/list.module.d.ts +8 -0
  202. package/lib/components/modal/modal.component.d.ts +3 -0
  203. package/lib/components/modal/modal.module.d.ts +10 -0
  204. package/lib/components/number-field/number-field.component.d.ts +5 -2
  205. package/lib/components/number-field/number-field.module.d.ts +10 -0
  206. package/lib/components/page-footer/page-footer.component.d.ts +3 -0
  207. package/lib/components/page-footer/page-footer.module.d.ts +9 -0
  208. package/lib/components/page-header/hamburger/hamburger.component.d.ts +3 -0
  209. package/lib/components/page-header/page-header.component.d.ts +3 -0
  210. package/lib/components/page-header/page-header.module.d.ts +11 -0
  211. package/lib/components/page-header/search/search.component.d.ts +3 -0
  212. package/lib/components/passenger-select/models/passengers.model.d.ts +2 -2
  213. package/lib/components/passenger-select/passenger-select.component.d.ts +5 -2
  214. package/lib/components/passenger-select/passenger-select.module.d.ts +8 -0
  215. package/lib/components/phone-number/phone-number.component.d.ts +5 -2
  216. package/lib/components/phone-number/phone-number.module.d.ts +11 -0
  217. package/lib/components/premium-toggle/premium-toggle.component.d.ts +3 -0
  218. package/lib/components/premium-toggle/premium-toggle.module.d.ts +8 -0
  219. package/lib/components/radio/radio.component.d.ts +5 -2
  220. package/lib/components/radio/radio.module.d.ts +8 -0
  221. package/lib/components/select/optgroup/optgroup.component.d.ts +3 -0
  222. package/lib/components/select/option/option.component.d.ts +3 -0
  223. package/lib/components/select/select.component.d.ts +6 -3
  224. package/lib/components/select/select.module.d.ts +10 -0
  225. package/lib/components/simple-list/simple-list.component.d.ts +4 -1
  226. package/lib/components/simple-list/simple-list.module.d.ts +7 -0
  227. package/lib/components/slide-toggle/slide-toggle.component.d.ts +5 -2
  228. package/lib/components/slide-toggle/slide-toggle.module.d.ts +8 -0
  229. package/lib/components/slider/slider.component.d.ts +5 -2
  230. package/lib/components/slider/slider.module.d.ts +8 -0
  231. package/lib/components/sort/sort.component.d.ts +3 -0
  232. package/lib/components/sort/sort.module.d.ts +10 -0
  233. package/lib/components/spinner/spinner.component.d.ts +11 -4
  234. package/lib/components/spinner/spinner.module.d.ts +7 -0
  235. package/lib/components/subsidy-discount/subsidy-discount.component.d.ts +3 -0
  236. package/lib/components/subsidy-discount/subsidy-discount.module.d.ts +10 -0
  237. package/lib/components/suggestions/suggestions.component.d.ts +3 -0
  238. package/lib/components/suggestions/suggestions.module.d.ts +8 -0
  239. package/lib/components/tab-group/tab/tab.component.d.ts +3 -0
  240. package/lib/components/tab-group/tab-group.component.d.ts +3 -0
  241. package/lib/components/tab-group/tab-group.module.d.ts +9 -0
  242. package/lib/components/table/column/column.component.d.ts +3 -0
  243. package/lib/components/table/column-group/column-group.component.d.ts +3 -0
  244. package/lib/components/table/services/table.service.d.ts +3 -0
  245. package/lib/components/table/table-body/table-body.component.d.ts +3 -0
  246. package/lib/components/table/table-foot/table-foot.component.d.ts +3 -0
  247. package/lib/components/table/table-head/table-head.component.d.ts +3 -0
  248. package/lib/components/table/table-row/table-data/table-data.component.d.ts +3 -0
  249. package/lib/components/table/table-row/table-header/table-header.component.d.ts +3 -0
  250. package/lib/components/table/table-row/table-row.component.d.ts +3 -0
  251. package/lib/components/table/table.component.d.ts +3 -0
  252. package/lib/components/table/table.module.d.ts +15 -0
  253. package/lib/components/textarea/textarea.component.d.ts +5 -2
  254. package/lib/components/textarea/textarea.module.d.ts +8 -0
  255. package/lib/components/toggle/toggle.component.d.ts +6 -3
  256. package/lib/components/toggle/toggle.module.d.ts +9 -0
  257. package/lib/components/trip-summary/trip-summary.component.d.ts +3 -0
  258. package/lib/components/trip-summary/trip-summary.module.d.ts +10 -0
  259. package/lib/components/weather-icon/weather-icon.component.d.ts +3 -0
  260. package/lib/components/weather-icon/weather-icon.module.d.ts +7 -0
  261. package/lib/core/directives/nas-class/nas-class.directive.d.ts +3 -0
  262. package/lib/core/directives/nas-class/nas-class.module.d.ts +6 -0
  263. package/lib/core/services/abandoned-basket/abandoned-basket.service.d.ts +3 -0
  264. package/lib/core/services/animate-helper/animate-helper.service.d.ts +3 -0
  265. package/lib/core/services/bem-helper/bem-helper.service.d.ts +3 -0
  266. package/lib/core/services/date/date-helper.service.d.ts +3 -0
  267. package/lib/core/services/device/device-helper.service.d.ts +3 -0
  268. package/lib/core/services/geolocation/geolocation.service.d.ts +3 -0
  269. package/lib/core/services/language/language-helper.service.d.ts +3 -0
  270. package/lib/core/services/sort/sort.service.d.ts +3 -0
  271. package/lib/core/services/viewport/viewport.service.d.ts +3 -0
  272. package/lib/services/get-position.service.d.ts +3 -0
  273. package/package.json +21 -9
  274. package/bundles/norwegian-core-components.umd.js +0 -12174
  275. package/bundles/norwegian-core-components.umd.js.map +0 -1
  276. package/esm2015/lib/components/accordion/accordion.component.js +0 -130
  277. package/esm2015/lib/components/accordion/accordion.module.js +0 -15
  278. package/esm2015/lib/components/airport-select/airport-select-dropdown/airport-select-dropdown.component.js +0 -583
  279. package/esm2015/lib/components/airport-select/airport-select.component.js +0 -400
  280. package/esm2015/lib/components/airport-select/airport-select.module.js +0 -27
  281. package/esm2015/lib/components/airport-select/services/airport-select-dropdown.service.js +0 -34
  282. package/esm2015/lib/components/airport-select/services/airport-select.service.js +0 -37
  283. package/esm2015/lib/components/autocomplete/autocomplete.component.js +0 -265
  284. package/esm2015/lib/components/autocomplete/autocomplete.module.js +0 -26
  285. package/esm2015/lib/components/backdrop/backdrop.component.js +0 -54
  286. package/esm2015/lib/components/backdrop/backdrop.module.js +0 -17
  287. package/esm2015/lib/components/box/box.component.js +0 -61
  288. package/esm2015/lib/components/box/box.module.js +0 -14
  289. package/esm2015/lib/components/button/button.component.js +0 -140
  290. package/esm2015/lib/components/button/button.module.js +0 -15
  291. package/esm2015/lib/components/checkbox/checkbox.component.js +0 -127
  292. package/esm2015/lib/components/checkbox/checkbox.module.js +0 -15
  293. package/esm2015/lib/components/chip/chip.component.js +0 -50
  294. package/esm2015/lib/components/chip/chip.module.js +0 -17
  295. package/esm2015/lib/components/container/container.component.js +0 -47
  296. package/esm2015/lib/components/container/container.module.js +0 -14
  297. package/esm2015/lib/components/continue/continue.component.js +0 -173
  298. package/esm2015/lib/components/continue/continue.module.js +0 -23
  299. package/esm2015/lib/components/cover/cover.component.js +0 -61
  300. package/esm2015/lib/components/cover/cover.module.js +0 -16
  301. package/esm2015/lib/components/datepicker/calendar/calendar.component.js +0 -560
  302. package/esm2015/lib/components/datepicker/datepicker.component.js +0 -515
  303. package/esm2015/lib/components/datepicker/datepicker.module.js +0 -34
  304. package/esm2015/lib/components/datepicker/services/calendar.service.js +0 -217
  305. package/esm2015/lib/components/datepicker-combo/datepicker-combo.component.js +0 -317
  306. package/esm2015/lib/components/datepicker-combo/datepicker-combo.module.js +0 -22
  307. package/esm2015/lib/components/divider/divider.component.js +0 -53
  308. package/esm2015/lib/components/divider/divider.module.js +0 -15
  309. package/esm2015/lib/components/dropdown/dropdown.component.js +0 -150
  310. package/esm2015/lib/components/dropdown/dropdown.module.js +0 -21
  311. package/esm2015/lib/components/filter/filter.component.js +0 -1122
  312. package/esm2015/lib/components/filter/filter.module.js +0 -44
  313. package/esm2015/lib/components/grid/col/col.component.js +0 -49
  314. package/esm2015/lib/components/grid/grid.component.js +0 -63
  315. package/esm2015/lib/components/grid/grid.module.js +0 -15
  316. package/esm2015/lib/components/icon/icon.component.js +0 -42
  317. package/esm2015/lib/components/icon/icon.module.js +0 -17
  318. package/esm2015/lib/components/icon-list/icon-list.component.js +0 -46
  319. package/esm2015/lib/components/icon-list/icon-list.module.js +0 -15
  320. package/esm2015/lib/components/info/info.component.js +0 -94
  321. package/esm2015/lib/components/info/info.module.js +0 -23
  322. package/esm2015/lib/components/input/input.component.js +0 -148
  323. package/esm2015/lib/components/input/input.module.js +0 -16
  324. package/esm2015/lib/components/journey/journey.component.js +0 -122
  325. package/esm2015/lib/components/journey/journey.module.js +0 -19
  326. package/esm2015/lib/components/journey-availability/journey-availability.component.js +0 -125
  327. package/esm2015/lib/components/journey-availability/journey-availability.module.js +0 -26
  328. package/esm2015/lib/components/journey-availability-list/journey-availability-list.component.js +0 -175
  329. package/esm2015/lib/components/journey-selection/journey-selection.component.js +0 -110
  330. package/esm2015/lib/components/journey-selection/journey-selection.module.js +0 -24
  331. package/esm2015/lib/components/journey-stopover/journey-stopover.component.js +0 -121
  332. package/esm2015/lib/components/journey-stopover/journey-stopover.module.js +0 -19
  333. package/esm2015/lib/components/list/list-item/list-item.component.js +0 -56
  334. package/esm2015/lib/components/list/list.component.js +0 -75
  335. package/esm2015/lib/components/list/list.module.js +0 -15
  336. package/esm2015/lib/components/modal/modal.component.js +0 -131
  337. package/esm2015/lib/components/modal/modal.module.js +0 -25
  338. package/esm2015/lib/components/number-field/number-field.component.js +0 -118
  339. package/esm2015/lib/components/number-field/number-field.module.js +0 -24
  340. package/esm2015/lib/components/page-footer/page-footer.component.js +0 -49
  341. package/esm2015/lib/components/page-footer/page-footer.module.js +0 -16
  342. package/esm2015/lib/components/page-header/hamburger/hamburger.component.js +0 -24
  343. package/esm2015/lib/components/page-header/page-header.component.js +0 -126
  344. package/esm2015/lib/components/page-header/page-header.module.js +0 -18
  345. package/esm2015/lib/components/page-header/search/search.component.js +0 -47
  346. package/esm2015/lib/components/passenger-select/passenger-select.component.js +0 -207
  347. package/esm2015/lib/components/passenger-select/passenger-select.module.js +0 -19
  348. package/esm2015/lib/components/phone-number/phone-number.component.js +0 -115
  349. package/esm2015/lib/components/phone-number/phone-number.module.js +0 -27
  350. package/esm2015/lib/components/premium-toggle/premium-toggle.component.js +0 -66
  351. package/esm2015/lib/components/premium-toggle/premium-toggle.module.js +0 -19
  352. package/esm2015/lib/components/radio/radio.component.js +0 -79
  353. package/esm2015/lib/components/radio/radio.module.js +0 -15
  354. package/esm2015/lib/components/select/optgroup/optgroup.component.js +0 -31
  355. package/esm2015/lib/components/select/option/option.component.js +0 -29
  356. package/esm2015/lib/components/select/select.component.js +0 -325
  357. package/esm2015/lib/components/select/select.module.js +0 -21
  358. package/esm2015/lib/components/simple-list/simple-list.component.js +0 -42
  359. package/esm2015/lib/components/simple-list/simple-list.module.js +0 -14
  360. package/esm2015/lib/components/slide-toggle/slide-toggle.component.js +0 -105
  361. package/esm2015/lib/components/slide-toggle/slide-toggle.module.js +0 -20
  362. package/esm2015/lib/components/slider/slider.component.js +0 -475
  363. package/esm2015/lib/components/slider/slider.module.js +0 -19
  364. package/esm2015/lib/components/sort/sort.component.js +0 -87
  365. package/esm2015/lib/components/sort/sort.module.js +0 -23
  366. package/esm2015/lib/components/spinner/spinner.component.js +0 -84
  367. package/esm2015/lib/components/spinner/spinner.module.js +0 -14
  368. package/esm2015/lib/components/subsidy-discount/subsidy-discount.component.js +0 -101
  369. package/esm2015/lib/components/subsidy-discount/subsidy-discount.module.js +0 -23
  370. package/esm2015/lib/components/suggestions/suggestions.component.js +0 -40
  371. package/esm2015/lib/components/suggestions/suggestions.module.js +0 -19
  372. package/esm2015/lib/components/tab-group/tab/tab.component.js +0 -123
  373. package/esm2015/lib/components/tab-group/tab-group.component.js +0 -85
  374. package/esm2015/lib/components/tab-group/tab-group.module.js +0 -20
  375. package/esm2015/lib/components/table/column/column.component.js +0 -17
  376. package/esm2015/lib/components/table/column-group/column-group.component.js +0 -34
  377. package/esm2015/lib/components/table/services/table.service.js +0 -20
  378. package/esm2015/lib/components/table/table-body/table-body.component.js +0 -27
  379. package/esm2015/lib/components/table/table-foot/table-foot.component.js +0 -27
  380. package/esm2015/lib/components/table/table-head/table-head.component.js +0 -27
  381. package/esm2015/lib/components/table/table-row/table-data/table-data.component.js +0 -15
  382. package/esm2015/lib/components/table/table-row/table-header/table-header.component.js +0 -15
  383. package/esm2015/lib/components/table/table-row/table-row.component.js +0 -27
  384. package/esm2015/lib/components/table/table.component.js +0 -29
  385. package/esm2015/lib/components/table/table.module.js +0 -45
  386. package/esm2015/lib/components/textarea/textarea.component.js +0 -73
  387. package/esm2015/lib/components/textarea/textarea.module.js +0 -20
  388. package/esm2015/lib/components/toggle/toggle.component.js +0 -86
  389. package/esm2015/lib/components/toggle/toggle.module.js +0 -22
  390. package/esm2015/lib/components/trip-summary/trip-summary.component.js +0 -152
  391. package/esm2015/lib/components/trip-summary/trip-summary.module.js +0 -23
  392. package/esm2015/lib/components/weather-icon/weather-icon.component.js +0 -56
  393. package/esm2015/lib/components/weather-icon/weather-icon.module.js +0 -14
  394. package/esm2015/lib/core/base/nas-component.base.js +0 -48
  395. package/esm2015/lib/core/directives/nas-class/nas-class.directive.js +0 -75
  396. package/esm2015/lib/core/directives/nas-class/nas-class.module.js +0 -17
  397. package/esm2015/lib/core/services/abandoned-basket/abandoned-basket.service.js +0 -55
  398. package/esm2015/lib/core/services/animate-helper/animate-helper.service.js +0 -47
  399. package/esm2015/lib/core/services/bem-helper/bem-helper.service.js +0 -41
  400. package/esm2015/lib/core/services/date/date-helper.service.js +0 -196
  401. package/esm2015/lib/core/services/device/device-helper.service.js +0 -43
  402. package/esm2015/lib/core/services/geolocation/geolocation.service.js +0 -60
  403. package/esm2015/lib/core/services/language/language-helper.service.js +0 -162
  404. package/esm2015/lib/core/services/sort/sort.service.js +0 -19
  405. package/esm2015/lib/core/services/viewport/viewport.service.js +0 -29
  406. package/esm2015/lib/services/get-position.service.js +0 -21
  407. package/esm2015/norwegian-core-components.js +0 -12
  408. package/fesm2015/norwegian-core-components.js +0 -10835
  409. package/fesm2015/norwegian-core-components.js.map +0 -1
  410. package/norwegian-core-components.d.ts +0 -11
  411. package/norwegian-core-components.metadata.json +0 -1
  412. /package/{esm2015/lib/components/accordion/index.js → esm2020/lib/components/accordion/index.mjs} +0 -0
  413. /package/{esm2015/lib/components/airport-select/index.js → esm2020/lib/components/airport-select/index.mjs} +0 -0
  414. /package/{esm2015/lib/components/airport-select/models/airport.model.js → esm2020/lib/components/airport-select/models/airport.model.mjs} +0 -0
  415. /package/{esm2015/lib/components/airport-select/models/results-labels.model.js → esm2020/lib/components/airport-select/models/results-labels.model.mjs} +0 -0
  416. /package/{esm2015/lib/components/autocomplete/index.js → esm2020/lib/components/autocomplete/index.mjs} +0 -0
  417. /package/{esm2015/lib/components/autocomplete/models/autocomplete.model.js → esm2020/lib/components/autocomplete/models/autocomplete.model.mjs} +0 -0
  418. /package/{esm2015/lib/components/backdrop/index.js → esm2020/lib/components/backdrop/index.mjs} +0 -0
  419. /package/{esm2015/lib/components/box/index.js → esm2020/lib/components/box/index.mjs} +0 -0
  420. /package/{esm2015/lib/components/button/index.js → esm2020/lib/components/button/index.mjs} +0 -0
  421. /package/{esm2015/lib/components/checkbox/index.js → esm2020/lib/components/checkbox/index.mjs} +0 -0
  422. /package/{esm2015/lib/components/chip/index.js → esm2020/lib/components/chip/index.mjs} +0 -0
  423. /package/{esm2015/lib/components/container/index.js → esm2020/lib/components/container/index.mjs} +0 -0
  424. /package/{esm2015/lib/components/continue/index.js → esm2020/lib/components/continue/index.mjs} +0 -0
  425. /package/{esm2015/lib/components/cover/index.js → esm2020/lib/components/cover/index.mjs} +0 -0
  426. /package/{esm2015/lib/components/datepicker/calendar/calendar-date.model.js → esm2020/lib/components/datepicker/calendar/calendar-date.model.mjs} +0 -0
  427. /package/{esm2015/lib/components/datepicker/calendar/enums/week-start.enum.js → esm2020/lib/components/datepicker/calendar/enums/week-start.enum.mjs} +0 -0
  428. /package/{esm2015/lib/components/datepicker/calendar/models/day.model.js → esm2020/lib/components/datepicker/calendar/models/day.model.mjs} +0 -0
  429. /package/{esm2015/lib/components/datepicker/calendar/models/select-option.model.js → esm2020/lib/components/datepicker/calendar/models/select-option.model.mjs} +0 -0
  430. /package/{esm2015/lib/components/datepicker/calendar/models/week.model.js → esm2020/lib/components/datepicker/calendar/models/week.model.mjs} +0 -0
  431. /package/{esm2015/lib/components/datepicker/index.js → esm2020/lib/components/datepicker/index.mjs} +0 -0
  432. /package/{esm2015/lib/components/datepicker-combo/index.js → esm2020/lib/components/datepicker-combo/index.mjs} +0 -0
  433. /package/{esm2015/lib/components/divider/index.js → esm2020/lib/components/divider/index.mjs} +0 -0
  434. /package/{esm2015/lib/components/dropdown/index.js → esm2020/lib/components/dropdown/index.mjs} +0 -0
  435. /package/{esm2015/lib/components/filter/enums/trip-type.enum.js → esm2020/lib/components/filter/enums/trip-type.enum.mjs} +0 -0
  436. /package/{esm2015/lib/components/filter/index.js → esm2020/lib/components/filter/index.mjs} +0 -0
  437. /package/{esm2015/lib/components/grid/index.js → esm2020/lib/components/grid/index.mjs} +0 -0
  438. /package/{esm2015/lib/components/icon/index.js → esm2020/lib/components/icon/index.mjs} +0 -0
  439. /package/{esm2015/lib/components/icon-list/icon-list.model.js → esm2020/lib/components/icon-list/icon-list.model.mjs} +0 -0
  440. /package/{esm2015/lib/components/icon-list/index.js → esm2020/lib/components/icon-list/index.mjs} +0 -0
  441. /package/{esm2015/lib/components/index.js → esm2020/lib/components/index.mjs} +0 -0
  442. /package/{esm2015/lib/components/info/index.js → esm2020/lib/components/info/index.mjs} +0 -0
  443. /package/{esm2015/lib/components/info/models/info.model.js → esm2020/lib/components/info/models/info.model.mjs} +0 -0
  444. /package/{esm2015/lib/components/input/index.js → esm2020/lib/components/input/index.mjs} +0 -0
  445. /package/{esm2015/lib/components/journey/index.js → esm2020/lib/components/journey/index.mjs} +0 -0
  446. /package/{esm2015/lib/components/journey/models/journey-flight.model.js → esm2020/lib/components/journey/models/journey-flight.model.mjs} +0 -0
  447. /package/{esm2015/lib/components/journey/models/journey.model.js → esm2020/lib/components/journey/models/journey.model.mjs} +0 -0
  448. /package/{esm2015/lib/components/journey-availability/index.js → esm2020/lib/components/journey-availability/index.mjs} +0 -0
  449. /package/{esm2015/lib/components/journey-availability-list/enums/availability-sort-option.enum.js → esm2020/lib/components/journey-availability-list/enums/availability-sort-option.enum.mjs} +0 -0
  450. /package/{esm2015/lib/components/journey-availability-list/index.js → esm2020/lib/components/journey-availability-list/index.mjs} +0 -0
  451. /package/{esm2015/lib/components/journey-selection/index.js → esm2020/lib/components/journey-selection/index.mjs} +0 -0
  452. /package/{esm2015/lib/components/journey-selection/models/journey-selection-collapsed.model.js → esm2020/lib/components/journey-selection/models/journey-selection-collapsed.model.mjs} +0 -0
  453. /package/{esm2015/lib/components/journey-selection/models/journey-selection-common.model.js → esm2020/lib/components/journey-selection/models/journey-selection-common.model.mjs} +0 -0
  454. /package/{esm2015/lib/components/journey-selection/models/journey-selection-expanded.model.js → esm2020/lib/components/journey-selection/models/journey-selection-expanded.model.mjs} +0 -0
  455. /package/{esm2015/lib/components/journey-selection/models/journey-selection.model.js → esm2020/lib/components/journey-selection/models/journey-selection.model.mjs} +0 -0
  456. /package/{esm2015/lib/components/journey-stopover/index.js → esm2020/lib/components/journey-stopover/index.mjs} +0 -0
  457. /package/{esm2015/lib/components/journey-stopover/models/stopover-time.model.js → esm2020/lib/components/journey-stopover/models/stopover-time.model.mjs} +0 -0
  458. /package/{esm2015/lib/components/list/index.js → esm2020/lib/components/list/index.mjs} +0 -0
  459. /package/{esm2015/lib/components/modal/index.js → esm2020/lib/components/modal/index.mjs} +0 -0
  460. /package/{esm2015/lib/components/number-field/index.js → esm2020/lib/components/number-field/index.mjs} +0 -0
  461. /package/{esm2015/lib/components/page-footer/index.js → esm2020/lib/components/page-footer/index.mjs} +0 -0
  462. /package/{esm2015/lib/components/page-header/index.js → esm2020/lib/components/page-header/index.mjs} +0 -0
  463. /package/{esm2015/lib/components/passenger-select/enums/passenger-type.enum.js → esm2020/lib/components/passenger-select/enums/passenger-type.enum.mjs} +0 -0
  464. /package/{esm2015/lib/components/passenger-select/index.js → esm2020/lib/components/passenger-select/index.mjs} +0 -0
  465. /package/{esm2015/lib/components/phone-number/index.js → esm2020/lib/components/phone-number/index.mjs} +0 -0
  466. /package/{esm2015/lib/components/premium-toggle/index.js → esm2020/lib/components/premium-toggle/index.mjs} +0 -0
  467. /package/{esm2015/lib/components/radio/index.js → esm2020/lib/components/radio/index.mjs} +0 -0
  468. /package/{esm2015/lib/components/select/index.js → esm2020/lib/components/select/index.mjs} +0 -0
  469. /package/{esm2015/lib/components/select/models/select-option.model.js → esm2020/lib/components/select/models/select-option.model.mjs} +0 -0
  470. /package/{esm2015/lib/components/simple-list/index.js → esm2020/lib/components/simple-list/index.mjs} +0 -0
  471. /package/{esm2015/lib/components/slide-toggle/index.js → esm2020/lib/components/slide-toggle/index.mjs} +0 -0
  472. /package/{esm2015/lib/components/slider/index.js → esm2020/lib/components/slider/index.mjs} +0 -0
  473. /package/{esm2015/lib/components/sort/index.js → esm2020/lib/components/sort/index.mjs} +0 -0
  474. /package/{esm2015/lib/components/spinner/index.js → esm2020/lib/components/spinner/index.mjs} +0 -0
  475. /package/{esm2015/lib/components/subsidy-discount/index.js → esm2020/lib/components/subsidy-discount/index.mjs} +0 -0
  476. /package/{esm2015/lib/components/subsidy-discount/models/subsidy-discount.model.js → esm2020/lib/components/subsidy-discount/models/subsidy-discount.model.mjs} +0 -0
  477. /package/{esm2015/lib/components/suggestions/index.js → esm2020/lib/components/suggestions/index.mjs} +0 -0
  478. /package/{esm2015/lib/components/tab-group/index.js → esm2020/lib/components/tab-group/index.mjs} +0 -0
  479. /package/{esm2015/lib/components/table/index.js → esm2020/lib/components/table/index.mjs} +0 -0
  480. /package/{esm2015/lib/components/textarea/index.js → esm2020/lib/components/textarea/index.mjs} +0 -0
  481. /package/{esm2015/lib/components/toggle/index.js → esm2020/lib/components/toggle/index.mjs} +0 -0
  482. /package/{esm2015/lib/components/toggle/models/options.model.js → esm2020/lib/components/toggle/models/options.model.mjs} +0 -0
  483. /package/{esm2015/lib/components/trip-summary/index.js → esm2020/lib/components/trip-summary/index.mjs} +0 -0
  484. /package/{esm2015/lib/components/weather-icon/index.js → esm2020/lib/components/weather-icon/index.mjs} +0 -0
  485. /package/{esm2015/lib/core/decorators/debounce.decorator.js → esm2020/lib/core/decorators/debounce.decorator.mjs} +0 -0
  486. /package/{esm2015/lib/core/directives/index.js → esm2020/lib/core/directives/index.mjs} +0 -0
  487. /package/{esm2015/lib/core/index.js → esm2020/lib/core/index.mjs} +0 -0
  488. /package/{esm2015/lib/core/models/abandoned-basket-item.model.js → esm2020/lib/core/models/abandoned-basket-item.model.mjs} +0 -0
  489. /package/{esm2015/lib/core/models/animate.model.js → esm2020/lib/core/models/animate.model.mjs} +0 -0
  490. /package/{esm2015/lib/core/models/class.model.js → esm2020/lib/core/models/class.model.mjs} +0 -0
  491. /package/{esm2015/lib/core/models/index.js → esm2020/lib/core/models/index.mjs} +0 -0
  492. /package/{esm2015/lib/core/models/link.model.js → esm2020/lib/core/models/link.model.mjs} +0 -0
  493. /package/{esm2015/lib/core/models/position.model.js → esm2020/lib/core/models/position.model.mjs} +0 -0
  494. /package/{esm2015/lib/core/models/utc-date.model.js → esm2020/lib/core/models/utc-date.model.mjs} +0 -0
  495. /package/{esm2015/lib/core/services/date/date-compare.enum.js → esm2020/lib/core/services/date/date-compare.enum.mjs} +0 -0
  496. /package/{esm2015/lib/core/services/geolocation/geolocation-state.enum.js → esm2020/lib/core/services/geolocation/geolocation-state.enum.mjs} +0 -0
  497. /package/{esm2015/lib/core/services/index.js → esm2020/lib/core/services/index.mjs} +0 -0
  498. /package/{esm2015/lib/index.js → esm2020/lib/index.mjs} +0 -0
  499. /package/{esm2015/lib/services/index.js → esm2020/lib/services/index.mjs} +0 -0
  500. /package/{esm2015/lib/shared/index.js → esm2020/lib/shared/index.mjs} +0 -0
  501. /package/{esm2015/lib/shared/models/flight-details.js → esm2020/lib/shared/models/flight-details.mjs} +0 -0
  502. /package/{esm2015/lib/shared/models/index.js → esm2020/lib/shared/models/index.mjs} +0 -0
  503. /package/{esm2015/lib/shared/models/journey-availability-sort.model.js → esm2020/lib/shared/models/journey-availability-sort.model.mjs} +0 -0
  504. /package/{esm2015/lib/shared/models/journey-availability.model.js → esm2020/lib/shared/models/journey-availability.model.mjs} +0 -0
  505. /package/{esm2015/lib/shared/models/journey-details.model.js → esm2020/lib/shared/models/journey-details.model.mjs} +0 -0
  506. /package/{esm2015/lib/shared/models/journey-duration.model.js → esm2020/lib/shared/models/journey-duration.model.mjs} +0 -0
  507. /package/{esm2015/lib/shared/models/journey-stopover.model.js → esm2020/lib/shared/models/journey-stopover.model.mjs} +0 -0
  508. /package/{esm2015/lib/shared/models/journey-transit-info.model.js → esm2020/lib/shared/models/journey-transit-info.model.mjs} +0 -0
  509. /package/{esm2015/lib/shared/models/operating-carrier.model.js → esm2020/lib/shared/models/operating-carrier.model.mjs} +0 -0
  510. /package/{esm2015/lib/shared/models/sort-option.model.js → esm2020/lib/shared/models/sort-option.model.mjs} +0 -0
  511. /package/{esm2015/lib/shared/models/sort.model.js → esm2020/lib/shared/models/sort.model.mjs} +0 -0
  512. /package/{esm2015/lib/shared/models/trip-item-details.model.js → esm2020/lib/shared/models/trip-item-details.model.mjs} +0 -0
  513. /package/{esm2015/lib/shared/models/trip-summary-details.model.js → esm2020/lib/shared/models/trip-summary-details.model.mjs} +0 -0
  514. /package/{esm2015/lib/shared/models/trip-summary.model.js → esm2020/lib/shared/models/trip-summary.model.mjs} +0 -0
  515. /package/{esm2015/public_api.js → esm2020/public_api.mjs} +0 -0
@@ -1,48 +0,0 @@
1
- import { isDevMode } from '@angular/core';
2
- export class NasComponentBase {
3
- constructor(block) {
4
- if (block) {
5
- this.cssClassBlock = block;
6
- }
7
- }
8
- getContainerClass(element, modifiersInput) {
9
- return [
10
- {
11
- block: 'container'
12
- },
13
- this.getClass(element, modifiersInput)
14
- ];
15
- }
16
- getClass(element, modifiersInput) {
17
- let modifiers = modifiersInput;
18
- if (typeof modifiersInput === 'string' || modifiersInput instanceof String) {
19
- modifiers = [modifiersInput];
20
- }
21
- return {
22
- block: this.cssClassBlock,
23
- element: element,
24
- modifiers: modifiers
25
- };
26
- }
27
- exists(value) {
28
- return value !== undefined && value !== null && value !== false;
29
- }
30
- removeHostElement(elementRef) {
31
- var _a;
32
- if (!((_a = elementRef === null || elementRef === void 0 ? void 0 : elementRef.nativeElement) === null || _a === void 0 ? void 0 : _a.parentElement)) {
33
- return;
34
- }
35
- const nativeElement = elementRef.nativeElement;
36
- const parentElement = nativeElement.parentElement;
37
- while (nativeElement.firstChild) {
38
- parentElement.insertBefore(nativeElement.firstChild, nativeElement);
39
- }
40
- parentElement.removeChild(nativeElement);
41
- }
42
- warnMissingAccessibiltyInput(input) {
43
- if (isDevMode()) {
44
- console.warn(`Missing required input for accessibilty: [${input}]`);
45
- }
46
- }
47
- }
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFzLWNvbXBvbmVudC5iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS1jb21wb25lbnRzL3NyYy9saWIvY29yZS9iYXNlL25hcy1jb21wb25lbnQuYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3RELE1BQU0sT0FBTyxnQkFBZ0I7SUFHM0IsWUFBWSxLQUFjO1FBQ3hCLElBQUksS0FBSyxFQUFFO1lBQ1QsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7U0FDNUI7SUFDSCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsT0FBZ0IsRUFBRSxjQUFvQjtRQUN0RCxPQUFPO1lBQ0w7Z0JBQ0UsS0FBSyxFQUFFLFdBQVc7YUFDbkI7WUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxjQUFjLENBQUM7U0FDdkMsQ0FBQztJQUNKLENBQUM7SUFFRCxRQUFRLENBQUMsT0FBZ0IsRUFBRSxjQUFvQjtRQUM3QyxJQUFJLFNBQVMsR0FBRyxjQUFjLENBQUM7UUFFL0IsSUFBSSxPQUFPLGNBQWMsS0FBSyxRQUFRLElBQUksY0FBYyxZQUFZLE1BQU0sRUFBRTtZQUMxRSxTQUFTLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztTQUM5QjtRQUVELE9BQU87WUFDTCxLQUFLLEVBQUUsSUFBSSxDQUFDLGFBQWE7WUFDekIsT0FBTyxFQUFFLE9BQU87WUFDaEIsU0FBUyxFQUFFLFNBQVM7U0FDckIsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBYztRQUNuQixPQUFPLEtBQUssS0FBSyxTQUFTLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssS0FBSyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxVQUFtQzs7UUFDbkQsSUFBSSxDQUFDLENBQUEsTUFBQSxVQUFVLGFBQVYsVUFBVSx1QkFBVixVQUFVLENBQUUsYUFBYSwwQ0FBRSxhQUFhLENBQUEsRUFBRTtZQUM3QyxPQUFPO1NBQ1I7UUFDRCxNQUFNLGFBQWEsR0FBZ0IsVUFBVSxDQUFDLGFBQWEsQ0FBQztRQUM1RCxNQUFNLGFBQWEsR0FBZ0IsYUFBYSxDQUFDLGFBQWEsQ0FBQztRQUUvRCxPQUFPLGFBQWEsQ0FBQyxVQUFVLEVBQUU7WUFDL0IsYUFBYSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsVUFBVSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1NBQ3JFO1FBRUQsYUFBYSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsNEJBQTRCLENBQUMsS0FBYTtRQUN4QyxJQUFJLFNBQVMsRUFBRSxFQUFFO1lBQ2YsT0FBTyxDQUFDLElBQUksQ0FBQyw2Q0FBNkMsS0FBSyxHQUFHLENBQUMsQ0FBQztTQUNyRTtJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnRSZWYsIGlzRGV2TW9kZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2xhc3NNb2RlbCB9IGZyb20gJy4uL21vZGVscyc7XG5cbmV4cG9ydCBjbGFzcyBOYXNDb21wb25lbnRCYXNlIHtcbiAgY3NzQ2xhc3NCbG9jazogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKGJsb2NrPzogc3RyaW5nKSB7XG4gICAgaWYgKGJsb2NrKSB7XG4gICAgICB0aGlzLmNzc0NsYXNzQmxvY2sgPSBibG9jaztcbiAgICB9XG4gIH1cblxuICBnZXRDb250YWluZXJDbGFzcyhlbGVtZW50Pzogc3RyaW5nLCBtb2RpZmllcnNJbnB1dD86IGFueSk6IEFycmF5PENsYXNzTW9kZWw+IHtcbiAgICByZXR1cm4gW1xuICAgICAge1xuICAgICAgICBibG9jazogJ2NvbnRhaW5lcidcbiAgICAgIH0sXG4gICAgICB0aGlzLmdldENsYXNzKGVsZW1lbnQsIG1vZGlmaWVyc0lucHV0KVxuICAgIF07XG4gIH1cblxuICBnZXRDbGFzcyhlbGVtZW50Pzogc3RyaW5nLCBtb2RpZmllcnNJbnB1dD86IGFueSk6IENsYXNzTW9kZWwge1xuICAgIGxldCBtb2RpZmllcnMgPSBtb2RpZmllcnNJbnB1dDtcblxuICAgIGlmICh0eXBlb2YgbW9kaWZpZXJzSW5wdXQgPT09ICdzdHJpbmcnIHx8IG1vZGlmaWVyc0lucHV0IGluc3RhbmNlb2YgU3RyaW5nKSB7XG4gICAgICBtb2RpZmllcnMgPSBbbW9kaWZpZXJzSW5wdXRdO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBibG9jazogdGhpcy5jc3NDbGFzc0Jsb2NrLFxuICAgICAgZWxlbWVudDogZWxlbWVudCxcbiAgICAgIG1vZGlmaWVyczogbW9kaWZpZXJzXG4gICAgfTtcbiAgfVxuXG4gIGV4aXN0cyh2YWx1ZTogYm9vbGVhbik6IGJvb2xlYW4ge1xuICAgIHJldHVybiB2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSBmYWxzZTtcbiAgfVxuXG4gIHJlbW92ZUhvc3RFbGVtZW50KGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KSB7XG4gICAgaWYgKCFlbGVtZW50UmVmPy5uYXRpdmVFbGVtZW50Py5wYXJlbnRFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IG5hdGl2ZUVsZW1lbnQ6IEhUTUxFbGVtZW50ID0gZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIGNvbnN0IHBhcmVudEVsZW1lbnQ6IEhUTUxFbGVtZW50ID0gbmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50O1xuXG4gICAgd2hpbGUgKG5hdGl2ZUVsZW1lbnQuZmlyc3RDaGlsZCkge1xuICAgICAgcGFyZW50RWxlbWVudC5pbnNlcnRCZWZvcmUobmF0aXZlRWxlbWVudC5maXJzdENoaWxkLCBuYXRpdmVFbGVtZW50KTtcbiAgICB9XG5cbiAgICBwYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKG5hdGl2ZUVsZW1lbnQpO1xuICB9XG5cbiAgd2Fybk1pc3NpbmdBY2Nlc3NpYmlsdHlJbnB1dChpbnB1dDogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKGlzRGV2TW9kZSgpKSB7XG4gICAgICBjb25zb2xlLndhcm4oYE1pc3NpbmcgcmVxdWlyZWQgaW5wdXQgZm9yIGFjY2Vzc2liaWx0eTogWyR7aW5wdXR9XWApO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -1,75 +0,0 @@
1
- import { Directive, HostBinding, Input } from '@angular/core';
2
- import { BemHelper } from '../../services/bem-helper/bem-helper.service';
3
- export class NasClassDirective {
4
- constructor(bem) {
5
- this.bem = bem;
6
- this.models = new Array();
7
- }
8
- set nasClass(value) {
9
- if (!value) {
10
- return;
11
- }
12
- if (typeof value === 'string' || value instanceof String) {
13
- const cssClasses = value.split(' ');
14
- for (const cssClass of cssClasses) {
15
- const model = { block: cssClass };
16
- this.models.push(model);
17
- }
18
- }
19
- else {
20
- if (Array.isArray(value)) {
21
- this.models = new Array();
22
- for (const cssClass of value) {
23
- this.pushClassToModels(cssClass);
24
- }
25
- }
26
- else {
27
- this.models = new Array();
28
- this.pushClassToModels(value);
29
- }
30
- }
31
- if (!this.models || this.models.length <= 0) {
32
- return;
33
- }
34
- const classes = new Array();
35
- for (const model of this.models) {
36
- const cssClasses = this.bem.class(model.block, model.element, model.modifiers, model.addition);
37
- classes.push(cssClasses);
38
- }
39
- this.elementClass = classes.join(' ');
40
- }
41
- get elementClass() {
42
- return this.elementClassValue;
43
- }
44
- set elementClass(value) {
45
- this.elementClassValue = value;
46
- }
47
- pushClassToModels(cssClass) {
48
- const model = {
49
- block: cssClass.block,
50
- element: cssClass.element,
51
- modifiers: new Array()
52
- };
53
- if (cssClass.modifiers && cssClass.modifiers.length > 0) {
54
- for (const modifier of cssClass.modifiers) {
55
- if (modifier) {
56
- model.modifiers.push(modifier);
57
- }
58
- }
59
- }
60
- this.models.push(model);
61
- }
62
- }
63
- NasClassDirective.decorators = [
64
- { type: Directive, args: [{
65
- selector: '[nasClass]'
66
- },] }
67
- ];
68
- NasClassDirective.ctorParameters = () => [
69
- { type: BemHelper }
70
- ];
71
- NasClassDirective.propDecorators = {
72
- nasClass: [{ type: Input }],
73
- elementClass: [{ type: Input, args: ['attr.class',] }, { type: HostBinding, args: ['attr.class',] }]
74
- };
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFzLWNsYXNzLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUtY29tcG9uZW50cy9zcmMvbGliL2NvcmUvZGlyZWN0aXZlcy9uYXMtY2xhc3MvbmFzLWNsYXNzLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFOUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBS3pFLE1BQU0sT0FBTyxpQkFBaUI7SUFxRDVCLFlBQW9CLEdBQWM7UUFBZCxRQUFHLEdBQUgsR0FBRyxDQUFXO1FBSDFCLFdBQU0sR0FBRyxJQUFJLEtBQUssRUFBYyxDQUFDO0lBSXpDLENBQUM7SUFyREQsSUFDSSxRQUFRLENBQUMsS0FBVTtRQUNyQixJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsT0FBTztTQUNSO1FBRUQsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxZQUFZLE1BQU0sRUFBRTtZQUN4RCxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBRXBDLEtBQUssTUFBTSxRQUFRLElBQUksVUFBVSxFQUFFO2dCQUNqQyxNQUFNLEtBQUssR0FBRyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsQ0FBQztnQkFDbEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDekI7U0FFRjthQUFNO1lBQ0wsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUN4QixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksS0FBSyxFQUFjLENBQUM7Z0JBQ3RDLEtBQUssTUFBTSxRQUFRLElBQUksS0FBSyxFQUFFO29CQUM1QixJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLENBQUM7aUJBQ2xDO2FBQ0Y7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLEtBQUssRUFBYyxDQUFDO2dCQUN0QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDL0I7U0FDRjtRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRTtZQUMzQyxPQUFPO1NBQ1I7UUFFRCxNQUFNLE9BQU8sR0FBRyxJQUFJLEtBQUssRUFBVSxDQUFDO1FBRXBDLEtBQUssTUFBTSxLQUFLLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUMvQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDL0YsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUMxQjtRQUVELElBQUksQ0FBQyxZQUFZLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsSUFFSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDaEMsQ0FBQztJQUNELElBQUksWUFBWSxDQUFDLEtBQWE7UUFDNUIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQztJQUNqQyxDQUFDO0lBUU8saUJBQWlCLENBQUMsUUFBYTtRQUNyQyxNQUFNLEtBQUssR0FBRztZQUNaLEtBQUssRUFBRSxRQUFRLENBQUMsS0FBSztZQUNyQixPQUFPLEVBQUUsUUFBUSxDQUFDLE9BQU87WUFDekIsU0FBUyxFQUFFLElBQUksS0FBSyxFQUFVO1NBQy9CLENBQUM7UUFDRixJQUFJLFFBQVEsQ0FBQyxTQUFTLElBQUksUUFBUSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3ZELEtBQUssTUFBTSxRQUFRLElBQUksUUFBUSxDQUFDLFNBQVMsRUFBRTtnQkFDekMsSUFBSSxRQUFRLEVBQUU7b0JBQ1osS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7aUJBQ2hDO2FBQ0Y7U0FDRjtRQUNELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFCLENBQUM7OztZQXpFRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLFlBQVk7YUFDdkI7OztZQUpRLFNBQVM7Ozt1QkFNZixLQUFLOzJCQXdDTCxLQUFLLFNBQUMsWUFBWSxjQUNsQixXQUFXLFNBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSG9zdEJpbmRpbmcsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDbGFzc01vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2NsYXNzLm1vZGVsJztcbmltcG9ydCB7IEJlbUhlbHBlciB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2JlbS1oZWxwZXIvYmVtLWhlbHBlci5zZXJ2aWNlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW25hc0NsYXNzXSdcbn0pXG5leHBvcnQgY2xhc3MgTmFzQ2xhc3NEaXJlY3RpdmUge1xuICBASW5wdXQoKVxuICBzZXQgbmFzQ2xhc3ModmFsdWU6IGFueSkge1xuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyB8fCB2YWx1ZSBpbnN0YW5jZW9mIFN0cmluZykge1xuICAgICAgY29uc3QgY3NzQ2xhc3NlcyA9IHZhbHVlLnNwbGl0KCcgJyk7XG5cbiAgICAgIGZvciAoY29uc3QgY3NzQ2xhc3Mgb2YgY3NzQ2xhc3Nlcykge1xuICAgICAgICBjb25zdCBtb2RlbCA9IHsgYmxvY2s6IGNzc0NsYXNzIH07XG4gICAgICAgIHRoaXMubW9kZWxzLnB1c2gobW9kZWwpO1xuICAgICAgfVxuXG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICB0aGlzLm1vZGVscyA9IG5ldyBBcnJheTxDbGFzc01vZGVsPigpO1xuICAgICAgICBmb3IgKGNvbnN0IGNzc0NsYXNzIG9mIHZhbHVlKSB7XG4gICAgICAgICAgdGhpcy5wdXNoQ2xhc3NUb01vZGVscyhjc3NDbGFzcyk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubW9kZWxzID0gbmV3IEFycmF5PENsYXNzTW9kZWw+KCk7XG4gICAgICAgIHRoaXMucHVzaENsYXNzVG9Nb2RlbHModmFsdWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghdGhpcy5tb2RlbHMgfHwgdGhpcy5tb2RlbHMubGVuZ3RoIDw9IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjbGFzc2VzID0gbmV3IEFycmF5PHN0cmluZz4oKTtcblxuICAgIGZvciAoY29uc3QgbW9kZWwgb2YgdGhpcy5tb2RlbHMpIHtcbiAgICAgIGNvbnN0IGNzc0NsYXNzZXMgPSB0aGlzLmJlbS5jbGFzcyhtb2RlbC5ibG9jaywgbW9kZWwuZWxlbWVudCwgbW9kZWwubW9kaWZpZXJzLCBtb2RlbC5hZGRpdGlvbik7XG4gICAgICBjbGFzc2VzLnB1c2goY3NzQ2xhc3Nlcyk7XG4gICAgfVxuXG4gICAgdGhpcy5lbGVtZW50Q2xhc3MgPSBjbGFzc2VzLmpvaW4oJyAnKTtcbiAgfVxuXG4gIEBJbnB1dCgnYXR0ci5jbGFzcycpXG4gIEBIb3N0QmluZGluZygnYXR0ci5jbGFzcycpXG4gIGdldCBlbGVtZW50Q2xhc3MoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50Q2xhc3NWYWx1ZTtcbiAgfVxuICBzZXQgZWxlbWVudENsYXNzKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLmVsZW1lbnRDbGFzc1ZhbHVlID0gdmFsdWU7XG4gIH1cblxuICBwcml2YXRlIG1vZGVscyA9IG5ldyBBcnJheTxDbGFzc01vZGVsPigpO1xuICBwcml2YXRlIGVsZW1lbnRDbGFzc1ZhbHVlOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBiZW06IEJlbUhlbHBlcikge1xuICB9XG5cbiAgcHJpdmF0ZSBwdXNoQ2xhc3NUb01vZGVscyhjc3NDbGFzczogYW55KSB7XG4gICAgY29uc3QgbW9kZWwgPSB7XG4gICAgICBibG9jazogY3NzQ2xhc3MuYmxvY2ssXG4gICAgICBlbGVtZW50OiBjc3NDbGFzcy5lbGVtZW50LFxuICAgICAgbW9kaWZpZXJzOiBuZXcgQXJyYXk8c3RyaW5nPigpXG4gICAgfTtcbiAgICBpZiAoY3NzQ2xhc3MubW9kaWZpZXJzICYmIGNzc0NsYXNzLm1vZGlmaWVycy5sZW5ndGggPiAwKSB7XG4gICAgICBmb3IgKGNvbnN0IG1vZGlmaWVyIG9mIGNzc0NsYXNzLm1vZGlmaWVycykge1xuICAgICAgICBpZiAobW9kaWZpZXIpIHtcbiAgICAgICAgICBtb2RlbC5tb2RpZmllcnMucHVzaChtb2RpZmllcik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5tb2RlbHMucHVzaChtb2RlbCk7XG4gIH1cbn1cbiJdfQ==
@@ -1,17 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { NasClassDirective } from './nas-class.directive';
4
- import { BemHelper } from '../../services/bem-helper/bem-helper.service';
5
- export class NasClassModule {
6
- }
7
- NasClassModule.decorators = [
8
- { type: NgModule, args: [{
9
- imports: [
10
- CommonModule
11
- ],
12
- declarations: [NasClassDirective],
13
- exports: [NasClassDirective],
14
- providers: [BemHelper]
15
- },] }
16
- ];
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFzLWNsYXNzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUtY29tcG9uZW50cy9zcmMvbGliL2NvcmUvZGlyZWN0aXZlcy9uYXMtY2xhc3MvbmFzLWNsYXNzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sOENBQThDLENBQUM7QUFVekUsTUFBTSxPQUFPLGNBQWM7OztZQVIxQixRQUFRLFNBQUM7Z0JBQ1IsT0FBTyxFQUFFO29CQUNQLFlBQVk7aUJBQ2I7Z0JBQ0QsWUFBWSxFQUFFLENBQUMsaUJBQWlCLENBQUM7Z0JBQ2pDLE9BQU8sRUFBRSxDQUFDLGlCQUFpQixDQUFDO2dCQUM1QixTQUFTLEVBQUUsQ0FBQyxTQUFTLENBQUM7YUFDdkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuaW1wb3J0IHsgTmFzQ2xhc3NEaXJlY3RpdmUgfSBmcm9tICcuL25hcy1jbGFzcy5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQmVtSGVscGVyIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYmVtLWhlbHBlci9iZW0taGVscGVyLnNlcnZpY2UnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW05hc0NsYXNzRGlyZWN0aXZlXSxcbiAgZXhwb3J0czogW05hc0NsYXNzRGlyZWN0aXZlXSxcbiAgcHJvdmlkZXJzOiBbQmVtSGVscGVyXVxufSlcbmV4cG9ydCBjbGFzcyBOYXNDbGFzc01vZHVsZSB7IH1cbiJdfQ==
@@ -1,55 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- export class AbandonedBasketService {
3
- constructor() {
4
- this.abandonedBasketKey = 'ngStorage-abandonedBasket';
5
- }
6
- getAll() {
7
- let abandonedBasket = [];
8
- try {
9
- if (!localStorage) {
10
- return [];
11
- }
12
- abandonedBasket = JSON.parse(localStorage.getItem(this.abandonedBasketKey)) || [];
13
- }
14
- catch (error) {
15
- return [];
16
- }
17
- if (!Array.isArray(abandonedBasket) || abandonedBasket.length <= 0) {
18
- this.remove();
19
- return [];
20
- }
21
- abandonedBasket = abandonedBasket.filter(x => {
22
- const departureDateParsed = Date.parse(x.departureDate);
23
- if (isNaN(departureDateParsed)) {
24
- return false;
25
- }
26
- const today = new Date();
27
- today.setHours(0, 0, 0, 0);
28
- const todayParsed = Date.parse(today.toString());
29
- if (departureDateParsed < todayParsed) {
30
- return false;
31
- }
32
- return true;
33
- });
34
- this.replace(abandonedBasket);
35
- return abandonedBasket;
36
- }
37
- remove() {
38
- try {
39
- localStorage.removeItem(this.abandonedBasketKey);
40
- }
41
- catch (error) {
42
- }
43
- }
44
- replace(abandonedBasket) {
45
- try {
46
- localStorage.setItem(this.abandonedBasketKey, JSON.stringify(abandonedBasket));
47
- }
48
- catch (error) {
49
- }
50
- }
51
- }
52
- AbandonedBasketService.decorators = [
53
- { type: Injectable }
54
- ];
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJhbmRvbmVkLWJhc2tldC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS1jb21wb25lbnRzL3NyYy9saWIvY29yZS9zZXJ2aWNlcy9hYmFuZG9uZWQtYmFza2V0L2FiYW5kb25lZC1iYXNrZXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSTNDLE1BQU0sT0FBTyxzQkFBc0I7SUFEbkM7UUFFVSx1QkFBa0IsR0FBRywyQkFBMkIsQ0FBQztJQTBEM0QsQ0FBQztJQXhEQyxNQUFNO1FBQ0osSUFBSSxlQUFlLEdBQUcsRUFBRSxDQUFDO1FBRXpCLElBQUk7WUFDRixJQUFJLENBQUMsWUFBWSxFQUFFO2dCQUNqQixPQUFPLEVBQUUsQ0FBQzthQUNYO1lBRUQsZUFBZSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUNuRjtRQUFDLE9BQU8sS0FBSyxFQUFFO1lBQ2QsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUVELElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxJQUFJLGVBQWUsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO1lBQ2xFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNkLE9BQU8sRUFBRSxDQUFDO1NBQ1g7UUFFRCxlQUFlLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUMzQyxNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBRXhELElBQUksS0FBSyxDQUFDLG1CQUFtQixDQUFDLEVBQUU7Z0JBQzlCLE9BQU8sS0FBSyxDQUFDO2FBQ2Q7WUFFRCxNQUFNLEtBQUssR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ3pCLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFFM0IsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUVqRCxJQUFJLG1CQUFtQixHQUFHLFdBQVcsRUFBRTtnQkFDckMsT0FBTyxLQUFLLENBQUM7YUFDZDtZQUVELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRTlCLE9BQU8sZUFBZSxDQUFDO0lBQ3pCLENBQUM7SUFFTyxNQUFNO1FBQ1osSUFBSTtZQUNGLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7U0FDbEQ7UUFBQyxPQUFPLEtBQUssRUFBRTtTQUNmO0lBQ0gsQ0FBQztJQUVPLE9BQU8sQ0FBQyxlQUFnRDtRQUM5RCxJQUFJO1lBQ0YsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO1NBRWhGO1FBQUMsT0FBTyxLQUFLLEVBQUU7U0FDZjtJQUNILENBQUM7OztZQTNERixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJhbmRvbmVkQmFza2V0SXRlbU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2FiYW5kb25lZC1iYXNrZXQtaXRlbS5tb2RlbCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBYmFuZG9uZWRCYXNrZXRTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBhYmFuZG9uZWRCYXNrZXRLZXkgPSAnbmdTdG9yYWdlLWFiYW5kb25lZEJhc2tldCc7XG5cbiAgZ2V0QWxsKCk6IEFycmF5PEFiYW5kb25lZEJhc2tldEl0ZW1Nb2RlbD4ge1xuICAgIGxldCBhYmFuZG9uZWRCYXNrZXQgPSBbXTtcblxuICAgIHRyeSB7XG4gICAgICBpZiAoIWxvY2FsU3RvcmFnZSkge1xuICAgICAgICByZXR1cm4gW107XG4gICAgICB9XG5cbiAgICAgIGFiYW5kb25lZEJhc2tldCA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5hYmFuZG9uZWRCYXNrZXRLZXkpKSB8fCBbXTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGlmICghQXJyYXkuaXNBcnJheShhYmFuZG9uZWRCYXNrZXQpIHx8IGFiYW5kb25lZEJhc2tldC5sZW5ndGggPD0gMCkge1xuICAgICAgdGhpcy5yZW1vdmUoKTtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBhYmFuZG9uZWRCYXNrZXQgPSBhYmFuZG9uZWRCYXNrZXQuZmlsdGVyKHggPT4ge1xuICAgICAgY29uc3QgZGVwYXJ0dXJlRGF0ZVBhcnNlZCA9IERhdGUucGFyc2UoeC5kZXBhcnR1cmVEYXRlKTtcblxuICAgICAgaWYgKGlzTmFOKGRlcGFydHVyZURhdGVQYXJzZWQpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgdG9kYXkgPSBuZXcgRGF0ZSgpO1xuICAgICAgdG9kYXkuc2V0SG91cnMoMCwgMCwgMCwgMCk7XG5cbiAgICAgIGNvbnN0IHRvZGF5UGFyc2VkID0gRGF0ZS5wYXJzZSh0b2RheS50b1N0cmluZygpKTtcblxuICAgICAgaWYgKGRlcGFydHVyZURhdGVQYXJzZWQgPCB0b2RheVBhcnNlZCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0pO1xuXG4gICAgdGhpcy5yZXBsYWNlKGFiYW5kb25lZEJhc2tldCk7XG5cbiAgICByZXR1cm4gYWJhbmRvbmVkQmFza2V0O1xuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmUoKSB7XG4gICAgdHJ5IHtcbiAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKHRoaXMuYWJhbmRvbmVkQmFza2V0S2V5KTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVwbGFjZShhYmFuZG9uZWRCYXNrZXQ6IEFycmF5PEFiYW5kb25lZEJhc2tldEl0ZW1Nb2RlbD4pIHtcbiAgICB0cnkge1xuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5hYmFuZG9uZWRCYXNrZXRLZXksIEpTT04uc3RyaW5naWZ5KGFiYW5kb25lZEJhc2tldCkpO1xuXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -1,47 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- export class AnimateHelper {
3
- constructor() { }
4
- animateFromElement(from, to, time = 800) {
5
- const fromPos = from.getBoundingClientRect();
6
- const fromWidth = fromPos.width;
7
- const fromHeight = fromPos.height;
8
- const fromTop = fromPos.top;
9
- const fromLeft = fromPos.left;
10
- const toPos = to.getBoundingClientRect();
11
- const scaleX = ((fromWidth * 100) / toPos.width / 100).toFixed(3);
12
- const scaleY = ((fromHeight * 100) / toPos.height / 100).toFixed(3);
13
- const left = (fromLeft - toPos.left).toFixed(3);
14
- const top = (fromTop - toPos.top).toFixed(3);
15
- return `${this.makeAnimation(`
16
- transform-origin: left top;
17
- transform: translate(${left}px, ${top}px) scale(${scaleX}, ${scaleY});
18
- opacity: 0;
19
- `, 'transform-origin: left top;', time)} ${time}ms cubic-bezier(0.19, 1, 0.22, 1) both`;
20
- }
21
- makeAnimation(from, to, time) {
22
- const animationName = `animation-${Math.random()
23
- .toString(36)
24
- .substr(2, 9)}`;
25
- this.makeKeyframe(`
26
- @keyframes ${animationName} {
27
- ${`from { ${from} }`}
28
- ${`to { ${to} }`}
29
- }
30
- `, time);
31
- return animationName;
32
- }
33
- makeKeyframe(keyframes, time) {
34
- const style = document.createElement('style');
35
- const head = document.getElementsByTagName('head')[0];
36
- style.innerHTML = keyframes;
37
- head.appendChild(style);
38
- setTimeout(() => {
39
- head.removeChild(style);
40
- }, time + 3000);
41
- }
42
- }
43
- AnimateHelper.decorators = [
44
- { type: Injectable }
45
- ];
46
- AnimateHelper.ctorParameters = () => [];
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5pbWF0ZS1oZWxwZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUtY29tcG9uZW50cy9zcmMvbGliL2NvcmUvc2VydmljZXMvYW5pbWF0ZS1oZWxwZXIvYW5pbWF0ZS1oZWxwZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE1BQU0sT0FBTyxhQUFhO0lBRXhCLGdCQUFnQixDQUFDO0lBRWpCLGtCQUFrQixDQUFDLElBQWlCLEVBQUUsRUFBZSxFQUFFLE9BQWUsR0FBRztRQUN2RSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUM3QyxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQ2hDLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFDbEMsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQztRQUM1QixNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO1FBRTlCLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQ3pDLE1BQU0sTUFBTSxHQUFHLENBQUMsQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEUsTUFBTSxNQUFNLEdBQUcsQ0FBQyxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwRSxNQUFNLElBQUksR0FBRyxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2hELE1BQU0sR0FBRyxHQUFHLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFN0MsT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7OytCQUVGLElBQUksT0FBTyxHQUFHLGFBQWEsTUFBTSxLQUFLLE1BQU07O09BRXBFLEVBQ0QsNkJBQTZCLEVBQzdCLElBQUksQ0FDTCxJQUFJLElBQUksd0NBQXdDLENBQUM7SUFDcEQsQ0FBQztJQUVPLGFBQWEsQ0FBQyxJQUFZLEVBQUUsRUFBVSxFQUFFLElBQVk7UUFDMUQsTUFBTSxhQUFhLEdBQ2pCLGFBQWEsSUFBSSxDQUFDLE1BQU0sRUFBRTthQUN2QixRQUFRLENBQUMsRUFBRSxDQUFDO2FBQ1osTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDO1FBRXBCLElBQUksQ0FBQyxZQUFZLENBQ2Y7bUJBQ2EsYUFBYTtVQUN0QixVQUFVLElBQUksSUFBSTtVQUNsQixRQUFRLEVBQUUsSUFBSTs7S0FFbkIsRUFDQyxJQUFJLENBQ0wsQ0FBQztRQUVGLE9BQU8sYUFBYSxDQUFDO0lBQ3ZCLENBQUM7SUFFTyxZQUFZLENBQUMsU0FBaUIsRUFBRSxJQUFZO1FBQ2xELE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDOUMsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RELEtBQUssQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQzVCLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFeEIsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUIsQ0FBQyxFQUFFLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQztJQUNsQixDQUFDOzs7WUF4REYsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFuaW1hdGVIZWxwZXIge1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgYW5pbWF0ZUZyb21FbGVtZW50KGZyb206IEhUTUxFbGVtZW50LCB0bzogSFRNTEVsZW1lbnQsIHRpbWU6IG51bWJlciA9IDgwMCkge1xuICAgIGNvbnN0IGZyb21Qb3MgPSBmcm9tLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IGZyb21XaWR0aCA9IGZyb21Qb3Mud2lkdGg7XG4gICAgY29uc3QgZnJvbUhlaWdodCA9IGZyb21Qb3MuaGVpZ2h0O1xuICAgIGNvbnN0IGZyb21Ub3AgPSBmcm9tUG9zLnRvcDtcbiAgICBjb25zdCBmcm9tTGVmdCA9IGZyb21Qb3MubGVmdDtcblxuICAgIGNvbnN0IHRvUG9zID0gdG8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgY29uc3Qgc2NhbGVYID0gKChmcm9tV2lkdGggKiAxMDApIC8gdG9Qb3Mud2lkdGggLyAxMDApLnRvRml4ZWQoMyk7XG4gICAgY29uc3Qgc2NhbGVZID0gKChmcm9tSGVpZ2h0ICogMTAwKSAvIHRvUG9zLmhlaWdodCAvIDEwMCkudG9GaXhlZCgzKTtcbiAgICBjb25zdCBsZWZ0ID0gKGZyb21MZWZ0IC0gdG9Qb3MubGVmdCkudG9GaXhlZCgzKTtcbiAgICBjb25zdCB0b3AgPSAoZnJvbVRvcCAtIHRvUG9zLnRvcCkudG9GaXhlZCgzKTtcblxuICAgIHJldHVybiBgJHt0aGlzLm1ha2VBbmltYXRpb24oYFxuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IHRvcDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoJHtsZWZ0fXB4LCAke3RvcH1weCkgc2NhbGUoJHtzY2FsZVh9LCAke3NjYWxlWX0pO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgYCxcbiAgICAgICd0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0IHRvcDsnLFxuICAgICAgdGltZSxcbiAgICApfSAke3RpbWV9bXMgY3ViaWMtYmV6aWVyKDAuMTksIDEsIDAuMjIsIDEpIGJvdGhgO1xuICB9XG5cbiAgcHJpdmF0ZSBtYWtlQW5pbWF0aW9uKGZyb206IHN0cmluZywgdG86IHN0cmluZywgdGltZTogbnVtYmVyKSB7XG4gICAgY29uc3QgYW5pbWF0aW9uTmFtZSA9XG4gICAgICBgYW5pbWF0aW9uLSR7TWF0aC5yYW5kb20oKVxuICAgICAgICAudG9TdHJpbmcoMzYpXG4gICAgICAgIC5zdWJzdHIoMiwgOSl9YDtcblxuICAgIHRoaXMubWFrZUtleWZyYW1lKFxuICAgICAgYFxuICAgICAgQGtleWZyYW1lcyAke2FuaW1hdGlvbk5hbWV9IHtcbiAgICAgICAgJHtgZnJvbSB7ICR7ZnJvbX0gfWB9XG4gICAgICAgICR7YHRvIHsgJHt0b30gfWB9XG4gICAgICB9XG4gICAgYCxcbiAgICAgIHRpbWUsXG4gICAgKTtcblxuICAgIHJldHVybiBhbmltYXRpb25OYW1lO1xuICB9XG5cbiAgcHJpdmF0ZSBtYWtlS2V5ZnJhbWUoa2V5ZnJhbWVzOiBzdHJpbmcsIHRpbWU6IG51bWJlcikge1xuICAgIGNvbnN0IHN0eWxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTtcbiAgICBjb25zdCBoZWFkID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2hlYWQnKVswXTtcbiAgICBzdHlsZS5pbm5lckhUTUwgPSBrZXlmcmFtZXM7XG4gICAgaGVhZC5hcHBlbmRDaGlsZChzdHlsZSk7XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGhlYWQucmVtb3ZlQ2hpbGQoc3R5bGUpO1xuICAgIH0sIHRpbWUgKyAzMDAwKTtcbiAgfVxufVxuIl19
@@ -1,41 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- export class BemHelper {
3
- getClasses(block) {
4
- const blockClass = block || '';
5
- return (element, modifier, addition) => {
6
- const elementClass = element ? `__${element}` : '';
7
- let modifierClass = '';
8
- if (Array.isArray(modifier)) {
9
- // If it's an array we loop through it
10
- modifierClass = ` ${modifier
11
- .filter(item => item !== null && item !== undefined)
12
- .map(item => `${blockClass}${elementClass}--${item.toString().toLowerCase()}`)
13
- .join(' ')}`;
14
- }
15
- else if ((typeof modifier).toUpperCase() === 'OBJECT') {
16
- // If it's an object we convert it to an array and loop through it
17
- const modifierArray = Object.keys(modifier)
18
- .filter(key => modifier[key] !== undefined &&
19
- modifier[key] !== false &&
20
- modifier[key] !== null) // Filter if the value is undefined
21
- .map(key => key);
22
- modifierClass = ` ${modifierArray
23
- .map(item => `${blockClass}${elementClass}--${item.toString().toLowerCase()}`)
24
- .join(' ')}`;
25
- }
26
- else if (modifier) {
27
- // If it's a string we just make the classname
28
- modifierClass = ` ${blockClass}${elementClass}--${modifier.toString().toLowerCase()}`;
29
- }
30
- const additionClass = addition ? ` ${addition}` : '';
31
- return `${blockClass}${elementClass}${modifierClass}${additionClass}`;
32
- };
33
- }
34
- class(block, element, modifiers, addition) {
35
- return this.getClasses(block)(element, modifiers, addition);
36
- }
37
- }
38
- BemHelper.decorators = [
39
- { type: Injectable }
40
- ];
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVtLWhlbHBlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS1jb21wb25lbnRzL3NyYy9saWIvY29yZS9zZXJ2aWNlcy9iZW0taGVscGVyL2JlbS1oZWxwZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE1BQU0sT0FBTyxTQUFTO0lBRXBCLFVBQVUsQ0FBQyxLQUFhO1FBQ3RCLE1BQU0sVUFBVSxHQUFHLEtBQUssSUFBSSxFQUFFLENBQUM7UUFFL0IsT0FBTyxDQUFDLE9BQWEsRUFBRSxRQUFjLEVBQUUsUUFBYyxFQUFFLEVBQUU7WUFDdkQsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFFbkQsSUFBSSxhQUFhLEdBQUcsRUFBRSxDQUFDO1lBRXZCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFDM0Isc0NBQXNDO2dCQUN0QyxhQUFhLEdBQUcsSUFBSSxRQUFRO3FCQUN6QixNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssSUFBSSxJQUFJLElBQUksS0FBSyxTQUFTLENBQUM7cUJBQ25ELEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsVUFBVSxHQUFHLFlBQVksS0FBSyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztxQkFDN0UsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7YUFDaEI7aUJBQU0sSUFBSSxDQUFDLE9BQU8sUUFBUSxDQUFDLENBQUMsV0FBVyxFQUFFLEtBQUssUUFBUSxFQUFFO2dCQUN2RCxrRUFBa0U7Z0JBQ2xFLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO3FCQUN4QyxNQUFNLENBQ0wsR0FBRyxDQUFDLEVBQUUsQ0FDSixRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssU0FBUztvQkFDM0IsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEtBQUs7b0JBQ3ZCLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxJQUFJLENBQzNCLENBQUMsbUNBQW1DO3FCQUNsQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFFbkIsYUFBYSxHQUFHLElBQUksYUFBYTtxQkFDOUIsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxVQUFVLEdBQUcsWUFBWSxLQUFLLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO3FCQUM3RSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQzthQUNoQjtpQkFBTSxJQUFJLFFBQVEsRUFBRTtnQkFDbkIsOENBQThDO2dCQUM5QyxhQUFhLEdBQUcsSUFBSSxVQUFVLEdBQUcsWUFBWSxLQUFLLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO2FBQ3ZGO1lBRUQsTUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFFckQsT0FBTyxHQUFHLFVBQVUsR0FBRyxZQUFZLEdBQUcsYUFBYSxHQUFHLGFBQWEsRUFBRSxDQUFDO1FBQ3hFLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRCxLQUFLLENBQUMsS0FBYSxFQUFFLE9BQWdCLEVBQUUsU0FBZSxFQUFFLFFBQWlCO1FBQ3ZFLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzlELENBQUM7OztZQTVDRixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQmVtSGVscGVyIHtcblxuICBnZXRDbGFzc2VzKGJsb2NrOiBzdHJpbmcpOiBhbnkge1xuICAgIGNvbnN0IGJsb2NrQ2xhc3MgPSBibG9jayB8fCAnJztcblxuICAgIHJldHVybiAoZWxlbWVudD86IGFueSwgbW9kaWZpZXI/OiBhbnksIGFkZGl0aW9uPzogYW55KSA9PiB7XG4gICAgICBjb25zdCBlbGVtZW50Q2xhc3MgPSBlbGVtZW50ID8gYF9fJHtlbGVtZW50fWAgOiAnJztcblxuICAgICAgbGV0IG1vZGlmaWVyQ2xhc3MgPSAnJztcblxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkobW9kaWZpZXIpKSB7XG4gICAgICAgIC8vIElmIGl0J3MgYW4gYXJyYXkgd2UgbG9vcCB0aHJvdWdoIGl0XG4gICAgICAgIG1vZGlmaWVyQ2xhc3MgPSBgICR7bW9kaWZpZXJcbiAgICAgICAgICAuZmlsdGVyKGl0ZW0gPT4gaXRlbSAhPT0gbnVsbCAmJiBpdGVtICE9PSB1bmRlZmluZWQpXG4gICAgICAgICAgLm1hcChpdGVtID0+IGAke2Jsb2NrQ2xhc3N9JHtlbGVtZW50Q2xhc3N9LS0ke2l0ZW0udG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpfWApXG4gICAgICAgICAgLmpvaW4oJyAnKX1gO1xuICAgICAgfSBlbHNlIGlmICgodHlwZW9mIG1vZGlmaWVyKS50b1VwcGVyQ2FzZSgpID09PSAnT0JKRUNUJykge1xuICAgICAgICAvLyBJZiBpdCdzIGFuIG9iamVjdCB3ZSBjb252ZXJ0IGl0IHRvIGFuIGFycmF5IGFuZCBsb29wIHRocm91Z2ggaXRcbiAgICAgICAgY29uc3QgbW9kaWZpZXJBcnJheSA9IE9iamVjdC5rZXlzKG1vZGlmaWVyKVxuICAgICAgICAgIC5maWx0ZXIoXG4gICAgICAgICAgICBrZXkgPT5cbiAgICAgICAgICAgICAgbW9kaWZpZXJba2V5XSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICAgIG1vZGlmaWVyW2tleV0gIT09IGZhbHNlICYmXG4gICAgICAgICAgICAgIG1vZGlmaWVyW2tleV0gIT09IG51bGwsXG4gICAgICAgICkgLy8gRmlsdGVyIGlmIHRoZSB2YWx1ZSBpcyB1bmRlZmluZWRcbiAgICAgICAgICAubWFwKGtleSA9PiBrZXkpO1xuXG4gICAgICAgIG1vZGlmaWVyQ2xhc3MgPSBgICR7bW9kaWZpZXJBcnJheVxuICAgICAgICAgIC5tYXAoaXRlbSA9PiBgJHtibG9ja0NsYXNzfSR7ZWxlbWVudENsYXNzfS0tJHtpdGVtLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKX1gKVxuICAgICAgICAgIC5qb2luKCcgJyl9YDtcbiAgICAgIH0gZWxzZSBpZiAobW9kaWZpZXIpIHtcbiAgICAgICAgLy8gSWYgaXQncyBhIHN0cmluZyB3ZSBqdXN0IG1ha2UgdGhlIGNsYXNzbmFtZVxuICAgICAgICBtb2RpZmllckNsYXNzID0gYCAke2Jsb2NrQ2xhc3N9JHtlbGVtZW50Q2xhc3N9LS0ke21vZGlmaWVyLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKX1gO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBhZGRpdGlvbkNsYXNzID0gYWRkaXRpb24gPyBgICR7YWRkaXRpb259YCA6ICcnO1xuXG4gICAgICByZXR1cm4gYCR7YmxvY2tDbGFzc30ke2VsZW1lbnRDbGFzc30ke21vZGlmaWVyQ2xhc3N9JHthZGRpdGlvbkNsYXNzfWA7XG4gICAgfTtcbiAgfVxuXG4gIGNsYXNzKGJsb2NrOiBzdHJpbmcsIGVsZW1lbnQ/OiBzdHJpbmcsIG1vZGlmaWVycz86IGFueSwgYWRkaXRpb24/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldENsYXNzZXMoYmxvY2spKGVsZW1lbnQsIG1vZGlmaWVycywgYWRkaXRpb24pO1xuICB9XG59XG4iXX0=
@@ -1,196 +0,0 @@
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, false, false) === 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+IHRvZGF5LnllYXIpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9IGVsc2UgaWYgKGRhdGUueWVhciA8IHRvZGF5LnllYXIpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGlmIChkYXRlLm1vbnRoID4gdG9kYXkubW9udGgpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9IGVsc2UgaWYgKGRhdGUubW9udGggPCB0b2RheS5tb250aCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaWYgKCFpZ25vcmVEYXRlKSB7XG4gICAgICBpZiAoZGF0ZS5kYXRlID4gdG9kYXkuZGF0ZSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIGlmICghaWdub3JlSG91cnMpIHtcbiAgICAgICAgaWYgKGRhdGUuaG91cnMgPiB0b2RheS5ob3Vycykge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghaWdub3JlTWludXRlcykge1xuICAgICAgICAgIHJldHVybiBkYXRlLm1pbnV0ZXMgPCB0b2RheS5taW51dGVzO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gZGF0ZS5kYXRlICE9PSB0b2RheS5kYXRlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlzU2FtZU1vbnRoKGRhdGUxOiBVdGNEYXRlLCBkYXRlMjogVXRjRGF0ZSk6IGJvb2xlYW4ge1xuICAgIGlmICghZGF0ZTEgfHwgIWRhdGUyKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gZGF0ZTEueWVhciA9PT0gZGF0ZTIueWVhciAmJiBkYXRlMS5tb250aCA9PT0gZGF0ZTIubW9udGg7XG4gIH1cblxuICBpc1NhbWVEYXRlKGRhdGUxOiBVdGNEYXRlLCBkYXRlMjogVXRjRGF0ZSk6IGJvb2xlYW4ge1xuICAgIGlmICghZGF0ZTEgfHwgIWRhdGUyKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuY29tcGFyZShkYXRlMSwgZGF0ZTIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpID09PSBEYXRlQ29tcGFyZS5lcXVhbDtcbiAgfVxuXG4gIGdldFV0Y051bWJlck9mTW9udGhCZXR3ZWVuKGRhdGUxOiBVdGNEYXRlLCBkYXRlMjogVXRjRGF0ZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TnVtYmVyT2ZNb250aEJldHdlZW4odGhpcy5kYXRlKGRhdGUxKSwgdGhpcy5kYXRlKGRhdGUyKSk7XG4gIH1cblxuICBnZXRVdGNOdW1iZXJPZkRheXNCZXR3ZWVuKGRhdGUxOiBVdGNEYXRlLCBkYXRlMjogVXRjRGF0ZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TnVtYmVyT2ZEYXlzQmV0d2Vlbih0aGlzLmRhdGUoZGF0ZTEpLCB0aGlzLmRhdGUoZGF0ZTIpKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0TnVtYmVyT2ZEYXlzQmV0d2VlbihkYXRlMTogRGF0ZSwgZGF0ZTI6IERhdGUpOiBudW1iZXIge1xuICAgIGNvbnN0IHRpbWVEaWZmZXJlbmNlID0gZGF0ZTIuZ2V0VGltZSgpIC0gZGF0ZTEuZ2V0VGltZSgpO1xuICAgIGNvbnN0IGRheXNCZXR3ZWVuID0gdGltZURpZmZlcmVuY2UgLyAoMTAwMCAqIDM2MDAgKiAyNCk7XG4gICAgcmV0dXJuIGRheXNCZXR3ZWVuO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXROdW1iZXJPZk1vbnRoQmV0d2VlbihkYXRlMTogRGF0ZSwgZGF0ZTI6IERhdGUpOiBudW1iZXIge1xuICAgIGxldCBtb250aHM6IG51bWJlcjtcbiAgICBtb250aHMgPSAoZGF0ZTIuZ2V0VVRDRnVsbFllYXIoKSAtIGRhdGUxLmdldFVUQ0Z1bGxZZWFyKCkpICogMTI7XG4gICAgbW9udGhzIC09IGRhdGUxLmdldFVUQ01vbnRoKCkgKyAxO1xuICAgIG1vbnRocyArPSBkYXRlMi5nZXRVVENNb250aCgpO1xuICAgIHJldHVybiBtb250aHMgPD0gMCA/IDAgOiBtb250aHM7XG4gIH1cblxuICBwcml2YXRlIGNvbXBhcmUoXG4gICAgZGF0ZTE6IFV0Y0RhdGUsXG4gICAgZGF0ZTI6IFV0Y0RhdGUsXG4gICAgaWdub3JlRGF0ZTogYm9vbGVhbiA9IGZhbHNlLFxuICAgIGlnbm9yZUhvdXJzOiBib29sZWFuID0gZmFsc2UsXG4gICAgaWdub3JlTWludXRlczogYm9vbGVhbiA9IGZhbHNlKTogRGF0ZUNvbXBhcmUge1xuICAgIGlmICghZGF0ZTEgfHwgIWRhdGUyKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAoZGF0ZTEueWVhciA+IGRhdGUyLnllYXIpIHtcbiAgICAgIHJldHVybiBEYXRlQ29tcGFyZS5ncmVhdGVyVGhhbjtcbiAgICB9IGVsc2UgaWYgKGRhdGUxLnllYXIgPCBkYXRlMi55ZWFyKSB7XG4gICAgICByZXR1cm4gRGF0ZUNvbXBhcmUubGVzc1RoYW47XG4gICAgfVxuXG4gICAgaWYgKGRhdGUxLm1vbnRoID4gZGF0ZTIubW9udGgpIHtcbiAgICAgIHJldHVybiBEYXRlQ29tcGFyZS5ncmVhdGVyVGhhbjtcbiAgICB9IGVsc2UgaWYgKGRhdGUxLm1vbnRoIDwgZGF0ZTIubW9udGgpIHtcbiAgICAgIHJldHVybiBEYXRlQ29tcGFyZS5sZXNzVGhhbjtcbiAgICB9XG5cbiAgICBpZiAoIWlnbm9yZURhdGUpIHtcbiAgICAgIGlmIChkYXRlMS5kYXRlID4gZGF0ZTIuZGF0ZSkge1xuICAgICAgICByZXR1cm4gRGF0ZUNvbXBhcmUuZ3JlYXRlclRoYW47XG4gICAgICB9IGVsc2UgaWYgKGRhdGUxLmRhdGUgPCBkYXRlMi5kYXRlKSB7XG4gICAgICAgIHJldHVybiBEYXRlQ29tcGFyZS5sZXNzVGhhbjtcbiAgICAgIH1cblxuICAgICAgaWYgKCFpZ25vcmVIb3Vycykge1xuICAgICAgICBpZiAoZGF0ZTEuaG91cnMgPiBkYXRlMi5ob3Vycykge1xuICAgICAgICAgIHJldHVybiBEYXRlQ29tcGFyZS5ncmVhdGVyVGhhbjtcbiAgICAgICAgfSBlbHNlIGlmIChkYXRlMS5ob3VycyA8IGRhdGUyLmhvdXJzKSB7XG4gICAgICAgICAgcmV0dXJuIERhdGVDb21wYXJlLmxlc3NUaGFuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFpZ25vcmVNaW51dGVzKSB7XG4gICAgICAgICAgaWYgKGRhdGUxLm1pbnV0ZXMgPiBkYXRlMi5taW51dGVzKSB7XG4gICAgICAgICAgICByZXR1cm4gRGF0ZUNvbXBhcmUuZ3JlYXRlclRoYW47XG4gICAgICAgICAgfSBlbHNlIGlmIChkYXRlMS5taW51dGVzIDwgZGF0ZTIubWludXRlcykge1xuICAgICAgICAgICAgcmV0dXJuIERhdGVDb21wYXJlLmxlc3NUaGFuO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBEYXRlQ29tcGFyZS5lcXVhbDtcbiAgfVxufVxuIl19
@@ -1,43 +0,0 @@
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