@wayke-se/components-react 2.15.0 → 3.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (668) hide show
  1. package/.editorconfig +10 -0
  2. package/.eslintrc.js +54 -0
  3. package/.github/workflows/release-to-production.yaml +41 -0
  4. package/.github/workflows/release-to-test.yaml +42 -0
  5. package/.husky/pre-commit +4 -0
  6. package/.prettierrc +10 -0
  7. package/README.md +0 -2
  8. package/codegen.yml +19 -0
  9. package/dist/index.css +2 -0
  10. package/dist/index.css.map +7 -0
  11. package/dist/index.d.ts +3226 -0
  12. package/dist/index.js +3225 -0
  13. package/dist/index.js.map +7 -0
  14. package/dist/index.mjs +3225 -0
  15. package/dist/index.mjs.map +7 -0
  16. package/esbuild/cdn.js +26 -0
  17. package/esbuild/common.js +15 -0
  18. package/esbuild/lib.js +48 -0
  19. package/esbuild/start.js +20 -0
  20. package/package.json +49 -68
  21. package/{dist-types/@types/action.d.ts → src/@types/action.ts} +1 -1
  22. package/src/@types/codegen.ts +366 -0
  23. package/src/@types/filter.ts +18 -0
  24. package/src/@types/queryFilter.ts +5 -0
  25. package/src/@types/react-panellum.d.ts +1 -0
  26. package/src/@types/search.ts +118 -0
  27. package/src/@types/theme.d.ts +5 -0
  28. package/src/@types/vehicle-properties.ts +33 -0
  29. package/src/State/CentralStorage/CentralStorageContext.ts +10 -0
  30. package/src/State/CentralStorage/CentralStorageProvider.tsx +21 -0
  31. package/src/State/CentralStorage/useCentralStorage.ts +37 -0
  32. package/src/State/Path/PathContext.ts +11 -0
  33. package/src/State/Path/PathProvider.tsx +66 -0
  34. package/src/State/Path/reducer.ts +30 -0
  35. package/src/State/Path/usePath.ts +13 -0
  36. package/src/State/RelatedSearch/RelatedSearchContext.ts +18 -0
  37. package/src/State/RelatedSearch/RelatedSearchProvider.tsx +55 -0
  38. package/src/State/RelatedSearch/useRelatedSearch.ts +20 -0
  39. package/src/State/Search/SearchContext.ts +27 -0
  40. package/src/State/Search/SearchProvider.tsx +243 -0
  41. package/{dist-src/State/Search/useSearch.js → src/State/Search/useSearch.ts} +2 -0
  42. package/src/State/Settings/SettingsContext.ts +15 -0
  43. package/src/State/Settings/SettingsProvider.tsx +23 -0
  44. package/{dist-src/State/Settings/useSettings.js → src/State/Settings/useSettings.ts} +3 -0
  45. package/src/components/Accordion/index.tsx +57 -0
  46. package/{dist-src/components/Accordion/wrapper.js → src/components/Accordion/wrapper.tsx} +27 -12
  47. package/src/components/ActionList/index.tsx +48 -0
  48. package/src/components/ActionList/toggle-item.tsx +59 -0
  49. package/src/components/Avatar/index.tsx +12 -0
  50. package/{dist-src/components/Avatar/wrapper.js → src/components/Avatar/wrapper.tsx} +9 -3
  51. package/src/components/Badge/index.tsx +12 -0
  52. package/src/components/Badge/wrapper.tsx +32 -0
  53. package/src/components/Blockquote/index.tsx +32 -0
  54. package/{dist-src/components/Blockquote/wrapper.js → src/components/Blockquote/wrapper.tsx} +16 -8
  55. package/{dist-src/components/Button/index.js → src/components/Button/index.tsx} +55 -24
  56. package/src/components/CheckMarkList/index.tsx +21 -0
  57. package/{dist-src/components/CheckMarkList/wrapper.js → src/components/CheckMarkList/wrapper.tsx} +10 -5
  58. package/src/components/Checklist/index.tsx +51 -0
  59. package/{dist-src/components/Checklist/wrapper.js → src/components/Checklist/wrapper.tsx} +13 -7
  60. package/src/components/ColorSelect/index.tsx +63 -0
  61. package/{dist-src/components/ColorSelect/wrapper.js → src/components/ColorSelect/wrapper.tsx} +22 -9
  62. package/{dist-src/components/ColumnRow/index.js → src/components/ColumnRow/index.tsx} +5 -2
  63. package/src/components/Container/index.tsx +11 -0
  64. package/{dist-src/components/Container/wrapper.js → src/components/Container/wrapper.tsx} +3 -1
  65. package/src/components/Content/index.tsx +15 -0
  66. package/{dist-src/components/Content/wrapper.js → src/components/Content/wrapper.tsx} +18 -3
  67. package/{dist-src/components/ContentLogo/index.js → src/components/ContentLogo/index.tsx} +7 -3
  68. package/src/components/DataList/index.tsx +25 -0
  69. package/{dist-src/components/DataList/wrapper.js → src/components/DataList/wrapper.tsx} +10 -5
  70. package/src/components/DetailBox/index.tsx +34 -0
  71. package/{dist-src/components/DetailBox/wrapper.js → src/components/DetailBox/wrapper.tsx} +14 -7
  72. package/src/components/ExtendContent/index.tsx +43 -0
  73. package/{dist-src/components/ExtendContent/wrapper.js → src/components/ExtendContent/wrapper.tsx} +14 -5
  74. package/src/components/ExtendInfo/index.tsx +32 -0
  75. package/{dist-src/components/ExtendInfo/wrapper.js → src/components/ExtendInfo/wrapper.tsx} +14 -7
  76. package/src/components/Filter/index.tsx +108 -0
  77. package/{dist-src/components/Filter/wrapper.js → src/components/Filter/wrapper.tsx} +13 -6
  78. package/src/components/FilterPanel/checkListFacet.tsx +46 -0
  79. package/src/components/FilterPanel/colorFacet.tsx +47 -0
  80. package/src/components/FilterPanel/faceSelector.tsx +53 -0
  81. package/src/components/FilterPanel/index.tsx +79 -0
  82. package/src/components/FilterPanel/rangeFacet.tsx +128 -0
  83. package/src/components/FinancialOptions/LoanModal.tsx +223 -0
  84. package/src/components/FinancialOptions/index.tsx +29 -0
  85. package/src/components/FinancialOptions/leasing.tsx +77 -0
  86. package/src/components/FinancialOptions/loan.tsx +87 -0
  87. package/src/components/Gallery/MediaButton.tsx +19 -0
  88. package/src/components/Gallery/index.tsx +227 -0
  89. package/{dist-src/components/Gallery/wrapper.js → src/components/Gallery/wrapper.tsx} +119 -19
  90. package/src/components/Grid/index.tsx +87 -0
  91. package/{dist-src/components/Grid/wrapper.js → src/components/Grid/wrapper.tsx} +7 -3
  92. package/src/components/Heading/index.tsx +72 -0
  93. package/src/components/Icon/index.tsx +87 -0
  94. package/src/components/InputCheckbox/index.tsx +30 -0
  95. package/{dist-src/components/InputCheckbox/wrapper.js → src/components/InputCheckbox/wrapper.tsx} +21 -13
  96. package/{dist-src/components/InputGroup/index.js → src/components/InputGroup/index.tsx} +5 -2
  97. package/src/components/InputLabel/index.tsx +14 -0
  98. package/{dist-src/components/InputLabel/wrapper.js → src/components/InputLabel/wrapper.tsx} +4 -2
  99. package/src/components/InputSearch/index.tsx +51 -0
  100. package/{dist-src/components/InputSearch/wrapper.js → src/components/InputSearch/wrapper.tsx} +17 -10
  101. package/src/components/InputSelect/index.tsx +35 -0
  102. package/{dist-src/components/InputSelect/wrapper.js → src/components/InputSelect/wrapper.tsx} +11 -5
  103. package/src/components/InputText/index.tsx +27 -0
  104. package/{dist-src/components/InputText/wrapper.js → src/components/InputText/wrapper.tsx} +7 -4
  105. package/src/components/InsuranceOptions/Insurance.tsx +60 -0
  106. package/src/components/InsuranceOptions/InsuranceFree.tsx +59 -0
  107. package/src/components/InsuranceOptions/InsuranceFreeModal.tsx +49 -0
  108. package/src/components/InsuranceOptions/InsuranceModal.tsx +253 -0
  109. package/src/components/InsuranceOptions/index.tsx +27 -0
  110. package/src/components/Lightbox/index.tsx +51 -0
  111. package/{dist-src/components/Lightbox/wrapper.js → src/components/Lightbox/wrapper.tsx} +12 -6
  112. package/src/components/Loader/index.tsx +18 -0
  113. package/{dist-src/components/Loader/wrapper.js → src/components/Loader/wrapper.tsx} +21 -8
  114. package/src/components/LogoBox/index.tsx +22 -0
  115. package/{dist-src/components/LogoBox/wrapper.js → src/components/LogoBox/wrapper.tsx} +10 -3
  116. package/src/components/Map/index.tsx +62 -0
  117. package/{dist-src/components/Map/wrapper.js → src/components/Map/wrapper.tsx} +8 -4
  118. package/src/components/Modal/index.tsx +51 -0
  119. package/{dist-src/components/Modal/wrapper.js → src/components/Modal/wrapper.tsx} +30 -16
  120. package/src/components/OpeningHours/index.tsx +145 -0
  121. package/src/components/OptionBox/index.tsx +23 -0
  122. package/{dist-src/components/OptionBox/wrapper.js → src/components/OptionBox/wrapper.tsx} +14 -7
  123. package/src/components/OverflowBox/index.tsx +11 -0
  124. package/{dist-src/components/OverflowBox/wrapper.js → src/components/OverflowBox/wrapper.tsx} +2 -1
  125. package/{dist-src/components/OverflowGrid/index.js → src/components/OverflowGrid/index.tsx} +7 -3
  126. package/src/components/Page/index.tsx +46 -0
  127. package/src/components/Panel/index.tsx +50 -0
  128. package/{dist-src/components/Panel/wrapper.js → src/components/Panel/wrapper.tsx} +28 -16
  129. package/src/components/Pdf/index.tsx +46 -0
  130. package/{dist-src/components/Pdf/wrapper.js → src/components/Pdf/wrapper.tsx} +15 -9
  131. package/src/components/PhoneNumber/index.tsx +33 -0
  132. package/{dist-types/components/Portal/index.d.ts → src/components/Portal/index.ts} +1 -0
  133. package/src/components/Portal/portal-element.tsx +9 -0
  134. package/{dist-src/components/Portal/portal-namespace.js → src/components/Portal/portal-namespace.ts} +0 -0
  135. package/src/components/Portal/portal.tsx +36 -0
  136. package/{dist-src/components/Price/index.js → src/components/Price/index.tsx} +5 -3
  137. package/src/components/PriceTable/index.tsx +34 -0
  138. package/{dist-src/components/PriceTable/wrapper.js → src/components/PriceTable/wrapper.tsx} +9 -4
  139. package/src/components/ProductCard/index.tsx +133 -0
  140. package/{dist-src/components/ProductCard/wrapper.js → src/components/ProductCard/wrapper.tsx} +37 -19
  141. package/{dist-src/components/ProductPage/index.js → src/components/ProductPage/index.tsx} +20 -6
  142. package/src/components/ProgressBar/index.tsx +31 -0
  143. package/{dist-src/components/ProgressBar/wrapper.js → src/components/ProgressBar/wrapper.tsx} +10 -5
  144. package/src/components/RangeSlider/RangeSliderSimple.tsx +90 -0
  145. package/src/components/RangeSlider/SliderWithLabel.tsx +62 -0
  146. package/src/components/RangeSlider/handle.tsx +26 -0
  147. package/src/components/RangeSlider/index.tsx +132 -0
  148. package/src/components/RangeSlider/track.tsx +19 -0
  149. package/{dist-src/components/RangeSlider/wrapper.js → src/components/RangeSlider/wrapper.tsx} +16 -9
  150. package/src/components/RangeSliderLabel/index.tsx +18 -0
  151. package/{dist-src/components/RangeSliderLabel/wrapper.js → src/components/RangeSliderLabel/wrapper.tsx} +16 -7
  152. package/{dist-src/components/Repeat/index.js → src/components/Repeat/index.tsx} +7 -3
  153. package/src/components/Result/index.tsx +91 -0
  154. package/{dist-src/components/Result/wrapper.js → src/components/Result/wrapper.tsx} +19 -9
  155. package/{dist-src/components/Root/index.js → src/components/Root/index.tsx} +4 -2
  156. package/src/components/SearchBar/index.tsx +48 -0
  157. package/src/components/SearchFilter/index.tsx +31 -0
  158. package/src/components/SearchTerm/index.tsx +23 -0
  159. package/{dist-src/components/SearchTerm/wrapper.js → src/components/SearchTerm/wrapper.tsx} +8 -4
  160. package/src/components/SectionHeader/index.tsx +25 -0
  161. package/{dist-src/components/SectionHeader/wrapper.js → src/components/SectionHeader/wrapper.tsx} +7 -3
  162. package/src/components/Snackbar/index.tsx +35 -0
  163. package/src/components/Snackbar/wrapper.tsx +65 -0
  164. package/src/components/SortSelect/index.tsx +35 -0
  165. package/{dist-src/components/SortSelect/wrapper.js → src/components/SortSelect/wrapper.tsx} +11 -5
  166. package/src/components/Sphere/Sphere.tsx +49 -0
  167. package/src/components/Sphere/SphereLightbox.tsx +12 -0
  168. package/src/components/Sphere/SphereViewer.tsx +45 -0
  169. package/{dist-src/components/Sphere/wrapper.js → src/components/Sphere/wrapper.tsx} +7 -1
  170. package/{dist-src/components/SrOnly/index.js → src/components/SrOnly/index.tsx} +2 -1
  171. package/src/components/SwitchBar/index.tsx +55 -0
  172. package/{dist-src/components/SwitchBar/wrapper.js → src/components/SwitchBar/wrapper.tsx} +19 -10
  173. package/{dist-src/components/TableColumn/index.js → src/components/TableColumn/index.tsx} +7 -3
  174. package/{dist-src/components/TableList/index.js → src/components/TableList/index.tsx} +13 -6
  175. package/src/components/Tabs/index.tsx +34 -0
  176. package/{dist-src/components/Tabs/wrapper.js → src/components/Tabs/wrapper.tsx} +22 -8
  177. package/src/components/ThreeSixty/Rotation.tsx +136 -0
  178. package/src/components/ThreeSixty/ThreeSixtLightbox.tsx +34 -0
  179. package/src/components/ThreeSixty/ThreeSixty.tsx +53 -0
  180. package/src/components/UspList/index.tsx +47 -0
  181. package/{dist-src/components/UspList/wrapper.js → src/components/UspList/wrapper.tsx} +15 -8
  182. package/src/components/Utility/index.tsx +17 -0
  183. package/src/components/Video/CustomPlayer.tsx +28 -0
  184. package/src/components/Video/EmbeddedVideoLightbox.tsx +31 -0
  185. package/src/components/Video/EmbededVideo.tsx +72 -0
  186. package/src/components/Video/QuickNavEmbeded.tsx +35 -0
  187. package/src/components/Video/QuickNavVideo.tsx +14 -0
  188. package/src/components/Video/Video.tsx +18 -0
  189. package/src/components/Video/VimeoPlayer.tsx +21 -0
  190. package/src/components/Video/YoutubePlayer.tsx +21 -0
  191. package/src/components/Video/useThumbnail.ts +28 -0
  192. package/src/components/Video/utils.ts +47 -0
  193. package/src/components/Video/wrapper.tsx +29 -0
  194. package/src/hooks/useEcom.ts +21 -0
  195. package/src/hooks/useFetch.ts +88 -0
  196. package/src/hooks/useHasBeenVisible.ts +17 -0
  197. package/src/hooks/useHashGuid.ts +33 -0
  198. package/src/hooks/useInsurance.ts +22 -0
  199. package/src/hooks/useLoan.ts +21 -0
  200. package/src/hooks/useOnScreen.ts +20 -0
  201. package/src/hooks/useOutsideClick.ts +19 -0
  202. package/src/hooks/usePrevious.ts +11 -0
  203. package/src/hooks/useSearchItem.ts +11 -0
  204. package/src/hooks/useSearchItemBranch.ts +14 -0
  205. package/src/hooks/useSessionStorage.ts +32 -0
  206. package/src/hooks/useVimeoThumbnail.ts +31 -0
  207. package/src/images/map/marker.png +0 -0
  208. package/src/images/placeholders/staticmap.jpg +0 -0
  209. package/src/index-dev.tsx +144 -0
  210. package/src/index.ts +70 -0
  211. package/src/layout/helpers.tsx +6 -0
  212. package/{dist-src/layout/keyframes.js → src/layout/keyframes.tsx} +6 -3
  213. package/src/layout/theme.ts +60 -0
  214. package/src/layouts/WaykeComposite.tsx +64 -0
  215. package/src/layouts/WaykeCompositeWithProvider.tsx +17 -0
  216. package/src/layouts/search/index.tsx +124 -0
  217. package/src/layouts/searchItem/Branch.tsx +97 -0
  218. package/src/layouts/searchItem/BranchModal.tsx +67 -0
  219. package/src/layouts/searchItem/CheckList.tsx +146 -0
  220. package/src/layouts/searchItem/ManufacturerPackagesOption.tsx +54 -0
  221. package/src/layouts/searchItem/MetadataItem.tsx +74 -0
  222. package/src/layouts/searchItem/PackageOptionModal.tsx +54 -0
  223. package/src/layouts/searchItem/PackageOptions.tsx +58 -0
  224. package/{dist-src/layouts/searchItem/Page404.js → src/layouts/searchItem/Page404.tsx} +12 -4
  225. package/{dist-src/layouts/searchItem/PageLoading.js → src/layouts/searchItem/PageLoading.tsx} +12 -4
  226. package/src/layouts/searchItem/Property.tsx +134 -0
  227. package/src/layouts/searchItem/Related.tsx +120 -0
  228. package/src/layouts/searchItem/index.tsx +344 -0
  229. package/src/providers/WaykeItemProvidet.tsx +68 -0
  230. package/src/providers/WaykeProvider.tsx +80 -0
  231. package/src/providers/graphqlProvider.tsx +9 -0
  232. package/src/providers/themeProvider.tsx +15 -0
  233. package/{dist-src/queries/INSURANCE_CALCULATION.js → src/queries/INSURANCE_CALCULATION.ts} +10 -2
  234. package/{dist-src/queries/LOAN_CALCULATION.js → src/queries/LOAN_CALCULATION.ts} +5 -2
  235. package/{dist-src/queries/SEARCH_ITEM_BRANCH_QUERY.js → src/queries/SEARCH_ITEM_BRANCH_QUERY.ts} +19 -2
  236. package/{dist-src/queries/SEARCH_ITEM_QUERY.js → src/queries/SEARCH_ITEM_QUERY.ts} +16 -5
  237. package/src/styles.scss +1 -0
  238. package/src/utils/constants.ts +34 -0
  239. package/src/utils/converters.ts +45 -0
  240. package/{dist-src/utils/deep-copy.js → src/utils/deep-copy.ts} +2 -1
  241. package/src/utils/formats.ts +83 -0
  242. package/src/utils/metadata.min.ts +87 -0
  243. package/src/utils/phonenumbers.ts +17 -0
  244. package/src/utils/pubsub/Actions.ts +20 -0
  245. package/src/utils/pubsub/Events.ts +69 -0
  246. package/src/utils/pubsub/pubsub.ts +143 -0
  247. package/src/utils/regex.ts +13 -0
  248. package/src/utils/sortOptions.ts +36 -0
  249. package/src/utils/specification.ts +581 -0
  250. package/src/utils/ssn.ts +1 -0
  251. package/{dist-src/utils/url.js → src/utils/url.ts} +0 -0
  252. package/src/utils/vehicle-properties/compare-basic-properties.ts +63 -0
  253. package/src/utils/vehicle-properties/compare-categories.ts +45 -0
  254. package/src/utils/vehicle-properties/compare-properties.ts +5 -0
  255. package/src/utils/vehicle-properties/custom-property-adder.ts +163 -0
  256. package/src/utils/vehicle-properties/property-hint-enricher.ts +230 -0
  257. package/src/utils/vehicle-properties/property-remover.ts +28 -0
  258. package/src/utils/vehicle-properties/property-tree-creator.ts +171 -0
  259. package/src/utils/vehicle-properties/property-tree-sorter.ts +20 -0
  260. package/tsconfig.build.json +10 -0
  261. package/tsconfig.json +15 -0
  262. package/www/ecom.css +60 -0
  263. package/www/index.html +32 -0
  264. package/www/theme.css +83 -0
  265. package/assets/ajax-loader.gif +0 -0
  266. package/assets/default.css +0 -1
  267. package/assets/fonts/slick.eot +0 -0
  268. package/assets/fonts/slick.svg +0 -14
  269. package/assets/fonts/slick.ttf +0 -0
  270. package/assets/fonts/slick.woff +0 -0
  271. package/dist-node/index.js +0 -6910
  272. package/dist-node/index.js.map +0 -1
  273. package/dist-src/@types/action.js +0 -1
  274. package/dist-src/@types/codegen/types.js +0 -14
  275. package/dist-src/@types/filter.js +0 -1
  276. package/dist-src/@types/queryFilter.js +0 -1
  277. package/dist-src/@types/search.js +0 -1
  278. package/dist-src/@types/vehicle-properties.js +0 -1
  279. package/dist-src/State/CentralStorage/CentralStorageContext.js +0 -4
  280. package/dist-src/State/CentralStorage/CentralStorageProvider.js +0 -9
  281. package/dist-src/State/CentralStorage/useCentralStorage.js +0 -30
  282. package/dist-src/State/Path/PathContext.js +0 -2
  283. package/dist-src/State/Path/PathProvider.js +0 -47
  284. package/dist-src/State/Path/reducer.js +0 -15
  285. package/dist-src/State/Path/usePath.js +0 -10
  286. package/dist-src/State/RelatedSearch/RelatedSearchContext.js +0 -8
  287. package/dist-src/State/RelatedSearch/RelatedSearchProvider.js +0 -27
  288. package/dist-src/State/RelatedSearch/useRelatedSearch.js +0 -15
  289. package/dist-src/State/Search/SearchContext.js +0 -12
  290. package/dist-src/State/Search/SearchProvider.js +0 -179
  291. package/dist-src/State/Settings/SettingsContext.js +0 -2
  292. package/dist-src/State/Settings/SettingsProvider.js +0 -4
  293. package/dist-src/components/Accordion/index.js +0 -18
  294. package/dist-src/components/ActionList/index.js +0 -19
  295. package/dist-src/components/ActionList/toggle-item.js +0 -27
  296. package/dist-src/components/Avatar/index.js +0 -4
  297. package/dist-src/components/Badge/index.js +0 -4
  298. package/dist-src/components/Badge/wrapper.js +0 -24
  299. package/dist-src/components/Blockquote/index.js +0 -12
  300. package/dist-src/components/CheckMarkList/index.js +0 -9
  301. package/dist-src/components/Checklist/index.js +0 -14
  302. package/dist-src/components/ColorSelect/index.js +0 -18
  303. package/dist-src/components/Container/index.js +0 -4
  304. package/dist-src/components/Content/index.js +0 -4
  305. package/dist-src/components/DataList/index.js +0 -6
  306. package/dist-src/components/DetailBox/index.js +0 -17
  307. package/dist-src/components/Ecom/index.js +0 -48
  308. package/dist-src/components/ExtendContent/index.js +0 -24
  309. package/dist-src/components/ExtendInfo/index.js +0 -15
  310. package/dist-src/components/Filter/index.js +0 -59
  311. package/dist-src/components/FilterPanel/checkListFacet.js +0 -29
  312. package/dist-src/components/FilterPanel/colorFacet.js +0 -29
  313. package/dist-src/components/FilterPanel/faceSelector.js +0 -31
  314. package/dist-src/components/FilterPanel/index.js +0 -24
  315. package/dist-src/components/FilterPanel/rangeFacet.js +0 -84
  316. package/dist-src/components/FinancialOptions/LoanModal.js +0 -129
  317. package/dist-src/components/FinancialOptions/index.js +0 -12
  318. package/dist-src/components/FinancialOptions/leasing.js +0 -55
  319. package/dist-src/components/FinancialOptions/loan.js +0 -55
  320. package/dist-src/components/Gallery/MediaButton.js +0 -7
  321. package/dist-src/components/Gallery/index.js +0 -124
  322. package/dist-src/components/Grid/index.js +0 -45
  323. package/dist-src/components/Heading/index.js +0 -54
  324. package/dist-src/components/Icon/index.js +0 -36
  325. package/dist-src/components/InputCheckbox/index.js +0 -10
  326. package/dist-src/components/InputLabel/index.js +0 -4
  327. package/dist-src/components/InputSearch/index.js +0 -12
  328. package/dist-src/components/InputSelect/index.js +0 -10
  329. package/dist-src/components/InputText/index.js +0 -5
  330. package/dist-src/components/InsuranceOptions/InsuranceOptionModal.js +0 -105
  331. package/dist-src/components/InsuranceOptions/index.js +0 -26
  332. package/dist-src/components/Lightbox/index.js +0 -30
  333. package/dist-src/components/Loader/index.js +0 -7
  334. package/dist-src/components/LogoBox/index.js +0 -10
  335. package/dist-src/components/Map/index.js +0 -27
  336. package/dist-src/components/Modal/index.js +0 -20
  337. package/dist-src/components/OpeningHours/index.js +0 -97
  338. package/dist-src/components/OptionBox/index.js +0 -7
  339. package/dist-src/components/OverflowBox/index.js +0 -4
  340. package/dist-src/components/Page/index.js +0 -30
  341. package/dist-src/components/Panel/index.js +0 -20
  342. package/dist-src/components/Pdf/index.js +0 -11
  343. package/dist-src/components/PhoneNumber/index.js +0 -13
  344. package/dist-src/components/Portal/index.js +0 -4
  345. package/dist-src/components/Portal/portal-element.js +0 -3
  346. package/dist-src/components/Portal/portal.js +0 -25
  347. package/dist-src/components/PriceTable/index.js +0 -20
  348. package/dist-src/components/ProductCard/index.js +0 -38
  349. package/dist-src/components/ProgressBar/index.js +0 -16
  350. package/dist-src/components/RangeSlider/RangeSliderSimple.js +0 -26
  351. package/dist-src/components/RangeSlider/SliderWithLabel.js +0 -21
  352. package/dist-src/components/RangeSlider/handle.js +0 -5
  353. package/dist-src/components/RangeSlider/index.js +0 -50
  354. package/dist-src/components/RangeSlider/track.js +0 -6
  355. package/dist-src/components/RangeSliderLabel/index.js +0 -6
  356. package/dist-src/components/Result/index.js +0 -39
  357. package/dist-src/components/SearchBar/index.js +0 -18
  358. package/dist-src/components/SearchFilter/index.js +0 -23
  359. package/dist-src/components/SearchTerm/index.js +0 -8
  360. package/dist-src/components/SectionHeader/index.js +0 -9
  361. package/dist-src/components/Snackbar/index.js +0 -21
  362. package/dist-src/components/Snackbar/wrapper.js +0 -56
  363. package/dist-src/components/SortSelect/index.js +0 -10
  364. package/dist-src/components/Sphere/Sphere.js +0 -21
  365. package/dist-src/components/Sphere/SphereLightbox.js +0 -4
  366. package/dist-src/components/Sphere/SphereViewer.js +0 -54
  367. package/dist-src/components/SwitchBar/index.js +0 -23
  368. package/dist-src/components/Tabs/index.js +0 -6
  369. package/dist-src/components/ThreeSixty/Rotation.js +0 -95
  370. package/dist-src/components/ThreeSixty/ThreeSixtLightbox.js +0 -15
  371. package/dist-src/components/ThreeSixty/ThreeSixty.js +0 -25
  372. package/dist-src/components/UspList/index.js +0 -18
  373. package/dist-src/components/Utility/index.js +0 -13
  374. package/dist-src/components/Video/CustomPlayer.js +0 -8
  375. package/dist-src/components/Video/EmbeddedVideoLightbox.js +0 -18
  376. package/dist-src/components/Video/EmbededVideo.js +0 -38
  377. package/dist-src/components/Video/QuickNavEmbeded.js +0 -17
  378. package/dist-src/components/Video/QuickNavVideo.js +0 -6
  379. package/dist-src/components/Video/Video.js +0 -8
  380. package/dist-src/components/Video/VimeoPlayer.js +0 -6
  381. package/dist-src/components/Video/YoutubePlayer.js +0 -6
  382. package/dist-src/components/Video/useThumbnail.js +0 -25
  383. package/dist-src/components/Video/utils.js +0 -35
  384. package/dist-src/components/Video/wrapper.js +0 -19
  385. package/dist-src/hooks/useEcom.js +0 -18
  386. package/dist-src/hooks/useFetch.js +0 -69
  387. package/dist-src/hooks/useHasBeenVisible.js +0 -13
  388. package/dist-src/hooks/useHashGuid.js +0 -28
  389. package/dist-src/hooks/useInsurance.js +0 -11
  390. package/dist-src/hooks/useLoan.js +0 -12
  391. package/dist-src/hooks/useOnScreen.js +0 -15
  392. package/dist-src/hooks/useOutsideClick.js +0 -15
  393. package/dist-src/hooks/usePrevious.js +0 -9
  394. package/dist-src/hooks/useSearchItem.js +0 -7
  395. package/dist-src/hooks/useSearchItemBranch.js +0 -7
  396. package/dist-src/hooks/useSessionStorage.js +0 -23
  397. package/dist-src/hooks/useVimeoThumbnail.js +0 -18
  398. package/dist-src/index.js +0 -10
  399. package/dist-src/layout/helpers.js +0 -5
  400. package/dist-src/layout/theme.js +0 -57
  401. package/dist-src/layouts/WaykeComposite.js +0 -23
  402. package/dist-src/layouts/WaykeCompositeWithProvider.js +0 -6
  403. package/dist-src/layouts/search/index.js +0 -55
  404. package/dist-src/layouts/searchItem/Branch.js +0 -54
  405. package/dist-src/layouts/searchItem/BranchModal.js +0 -36
  406. package/dist-src/layouts/searchItem/CheckList.js +0 -65
  407. package/dist-src/layouts/searchItem/ManufacturerPackagesOption.js +0 -26
  408. package/dist-src/layouts/searchItem/MetadataItem.js +0 -34
  409. package/dist-src/layouts/searchItem/PackageOptionModal.js +0 -18
  410. package/dist-src/layouts/searchItem/PackageOptions.js +0 -28
  411. package/dist-src/layouts/searchItem/Property.js +0 -53
  412. package/dist-src/layouts/searchItem/Related.js +0 -65
  413. package/dist-src/layouts/searchItem/index.js +0 -157
  414. package/dist-src/providers/WaykeItemProvidet.js +0 -20
  415. package/dist-src/providers/WaykeProvider.js +0 -22
  416. package/dist-src/providers/graphqlProvider.js +0 -7
  417. package/dist-src/providers/themeProvider.js +0 -5
  418. package/dist-src/utils/constants.js +0 -30
  419. package/dist-src/utils/converters.js +0 -31
  420. package/dist-src/utils/formats.js +0 -60
  421. package/dist-src/utils/metadata.min.js +0 -86
  422. package/dist-src/utils/phonenumbers.js +0 -12
  423. package/dist-src/utils/pubsub/Actions.js +0 -1
  424. package/dist-src/utils/pubsub/Events.js +0 -1
  425. package/dist-src/utils/pubsub/pubsub.js +0 -93
  426. package/dist-src/utils/regex.js +0 -10
  427. package/dist-src/utils/sortOptions.js +0 -26
  428. package/dist-src/utils/specification.js +0 -499
  429. package/dist-src/utils/ssn.js +0 -1
  430. package/dist-src/utils/vehicle-properties/compare-basic-properties.js +0 -36
  431. package/dist-src/utils/vehicle-properties/compare-categories.js +0 -27
  432. package/dist-src/utils/vehicle-properties/compare-properties.js +0 -3
  433. package/dist-src/utils/vehicle-properties/custom-property-adder.js +0 -143
  434. package/dist-src/utils/vehicle-properties/property-hint-enricher.js +0 -190
  435. package/dist-src/utils/vehicle-properties/property-remover.js +0 -20
  436. package/dist-src/utils/vehicle-properties/property-tree-creator.js +0 -127
  437. package/dist-src/utils/vehicle-properties/property-tree-sorter.js +0 -18
  438. package/dist-types/@types/codegen/types.d.ts +0 -334
  439. package/dist-types/@types/filter.d.ts +0 -5
  440. package/dist-types/@types/queryFilter.d.ts +0 -5
  441. package/dist-types/@types/search.d.ts +0 -105
  442. package/dist-types/@types/vehicle-properties.d.ts +0 -29
  443. package/dist-types/State/CentralStorage/CentralStorageContext.d.ts +0 -6
  444. package/dist-types/State/CentralStorage/CentralStorageProvider.d.ts +0 -6
  445. package/dist-types/State/CentralStorage/useCentralStorage.d.ts +0 -6
  446. package/dist-types/State/Path/PathContext.d.ts +0 -9
  447. package/dist-types/State/Path/PathProvider.d.ts +0 -6
  448. package/dist-types/State/Path/reducer.d.ts +0 -14
  449. package/dist-types/State/Path/usePath.d.ts +0 -3
  450. package/dist-types/State/RelatedSearch/RelatedSearchContext.d.ts +0 -10
  451. package/dist-types/State/RelatedSearch/RelatedSearchProvider.d.ts +0 -9
  452. package/dist-types/State/RelatedSearch/useRelatedSearch.d.ts +0 -2
  453. package/dist-types/State/Search/SearchContext.d.ts +0 -15
  454. package/dist-types/State/Search/SearchProvider.d.ts +0 -10
  455. package/dist-types/State/Search/useSearch.d.ts +0 -2
  456. package/dist-types/State/Settings/SettingsContext.d.ts +0 -12
  457. package/dist-types/State/Settings/SettingsProvider.d.ts +0 -10
  458. package/dist-types/State/Settings/useSettings.d.ts +0 -2
  459. package/dist-types/components/Accordion/index.d.ts +0 -13
  460. package/dist-types/components/Accordion/wrapper.d.ts +0 -16
  461. package/dist-types/components/ActionList/index.d.ts +0 -8
  462. package/dist-types/components/ActionList/toggle-item.d.ts +0 -10
  463. package/dist-types/components/Avatar/index.d.ts +0 -7
  464. package/dist-types/components/Avatar/wrapper.d.ts +0 -7
  465. package/dist-types/components/Badge/index.d.ts +0 -7
  466. package/dist-types/components/Badge/wrapper.d.ts +0 -7
  467. package/dist-types/components/Blockquote/index.d.ts +0 -9
  468. package/dist-types/components/Blockquote/wrapper.d.ts +0 -9
  469. package/dist-types/components/Button/index.d.ts +0 -52
  470. package/dist-types/components/CheckMarkList/index.d.ts +0 -7
  471. package/dist-types/components/CheckMarkList/wrapper.d.ts +0 -6
  472. package/dist-types/components/Checklist/index.d.ts +0 -13
  473. package/dist-types/components/Checklist/wrapper.d.ts +0 -11
  474. package/dist-types/components/ColorSelect/index.d.ts +0 -14
  475. package/dist-types/components/ColorSelect/wrapper.d.ts +0 -11
  476. package/dist-types/components/ColumnRow/index.d.ts +0 -2
  477. package/dist-types/components/Container/index.d.ts +0 -6
  478. package/dist-types/components/Container/wrapper.d.ts +0 -1
  479. package/dist-types/components/Content/index.d.ts +0 -6
  480. package/dist-types/components/Content/wrapper.d.ts +0 -4
  481. package/dist-types/components/ContentLogo/index.d.ts +0 -3
  482. package/dist-types/components/DataList/index.d.ts +0 -10
  483. package/dist-types/components/DataList/wrapper.d.ts +0 -6
  484. package/dist-types/components/DetailBox/index.d.ts +0 -8
  485. package/dist-types/components/DetailBox/wrapper.d.ts +0 -13
  486. package/dist-types/components/Ecom/index.d.ts +0 -10
  487. package/dist-types/components/ExtendContent/index.d.ts +0 -8
  488. package/dist-types/components/ExtendContent/wrapper.d.ts +0 -6
  489. package/dist-types/components/ExtendInfo/index.d.ts +0 -7
  490. package/dist-types/components/ExtendInfo/wrapper.d.ts +0 -10
  491. package/dist-types/components/Filter/index.d.ts +0 -7
  492. package/dist-types/components/Filter/wrapper.d.ts +0 -8
  493. package/dist-types/components/FilterPanel/checkListFacet.d.ts +0 -7
  494. package/dist-types/components/FilterPanel/colorFacet.d.ts +0 -7
  495. package/dist-types/components/FilterPanel/faceSelector.d.ts +0 -7
  496. package/dist-types/components/FilterPanel/index.d.ts +0 -18
  497. package/dist-types/components/FilterPanel/rangeFacet.d.ts +0 -9
  498. package/dist-types/components/FinancialOptions/LoanModal.d.ts +0 -9
  499. package/dist-types/components/FinancialOptions/index.d.ts +0 -8
  500. package/dist-types/components/FinancialOptions/leasing.d.ts +0 -7
  501. package/dist-types/components/FinancialOptions/loan.d.ts +0 -8
  502. package/dist-types/components/Gallery/MediaButton.d.ts +0 -7
  503. package/dist-types/components/Gallery/index.d.ts +0 -8
  504. package/dist-types/components/Gallery/wrapper.d.ts +0 -26
  505. package/dist-types/components/Grid/index.d.ts +0 -11
  506. package/dist-types/components/Grid/wrapper.d.ts +0 -3
  507. package/dist-types/components/Heading/index.d.ts +0 -24
  508. package/dist-types/components/Icon/index.d.ts +0 -16
  509. package/dist-types/components/InputCheckbox/index.d.ts +0 -7
  510. package/dist-types/components/InputCheckbox/wrapper.d.ts +0 -13
  511. package/dist-types/components/InputGroup/index.d.ts +0 -2
  512. package/dist-types/components/InputLabel/index.d.ts +0 -7
  513. package/dist-types/components/InputLabel/wrapper.d.ts +0 -3
  514. package/dist-types/components/InputSearch/index.d.ts +0 -9
  515. package/dist-types/components/InputSearch/wrapper.d.ts +0 -15
  516. package/dist-types/components/InputSelect/index.d.ts +0 -14
  517. package/dist-types/components/InputSelect/wrapper.d.ts +0 -6
  518. package/dist-types/components/InputText/index.d.ts +0 -8
  519. package/dist-types/components/InputText/wrapper.d.ts +0 -5
  520. package/dist-types/components/InsuranceOptions/InsuranceOptionModal.d.ts +0 -9
  521. package/dist-types/components/InsuranceOptions/index.d.ts +0 -8
  522. package/dist-types/components/Lightbox/index.d.ts +0 -9
  523. package/dist-types/components/Lightbox/wrapper.d.ts +0 -9
  524. package/dist-types/components/Loader/index.d.ts +0 -7
  525. package/dist-types/components/Loader/wrapper.d.ts +0 -9
  526. package/dist-types/components/LogoBox/index.d.ts +0 -9
  527. package/dist-types/components/LogoBox/wrapper.d.ts +0 -4
  528. package/dist-types/components/Map/index.d.ts +0 -7
  529. package/dist-types/components/Map/wrapper.d.ts +0 -4
  530. package/dist-types/components/Modal/index.d.ts +0 -9
  531. package/dist-types/components/Modal/wrapper.d.ts +0 -21
  532. package/dist-types/components/OpeningHours/index.d.ts +0 -7
  533. package/dist-types/components/OptionBox/index.d.ts +0 -9
  534. package/dist-types/components/OptionBox/wrapper.d.ts +0 -8
  535. package/dist-types/components/OverflowBox/index.d.ts +0 -6
  536. package/dist-types/components/OverflowBox/wrapper.d.ts +0 -1
  537. package/dist-types/components/OverflowGrid/index.d.ts +0 -3
  538. package/dist-types/components/Page/index.d.ts +0 -7
  539. package/dist-types/components/Panel/index.d.ts +0 -10
  540. package/dist-types/components/Panel/wrapper.d.ts +0 -22
  541. package/dist-types/components/Pdf/index.d.ts +0 -11
  542. package/dist-types/components/Pdf/wrapper.d.ts +0 -11
  543. package/dist-types/components/PhoneNumber/index.d.ts +0 -6
  544. package/dist-types/components/Portal/portal-element.d.ts +0 -6
  545. package/dist-types/components/Portal/portal-namespace.d.ts +0 -1
  546. package/dist-types/components/Portal/portal.d.ts +0 -7
  547. package/dist-types/components/Price/index.d.ts +0 -4
  548. package/dist-types/components/PriceTable/index.d.ts +0 -7
  549. package/dist-types/components/PriceTable/wrapper.d.ts +0 -4
  550. package/dist-types/components/ProductCard/index.d.ts +0 -18
  551. package/dist-types/components/ProductCard/wrapper.d.ts +0 -21
  552. package/dist-types/components/ProductPage/index.d.ts +0 -9
  553. package/dist-types/components/ProgressBar/index.d.ts +0 -8
  554. package/dist-types/components/ProgressBar/wrapper.d.ts +0 -6
  555. package/dist-types/components/RangeSlider/RangeSliderSimple.d.ts +0 -13
  556. package/dist-types/components/RangeSlider/SliderWithLabel.d.ts +0 -13
  557. package/dist-types/components/RangeSlider/handle.d.ts +0 -9
  558. package/dist-types/components/RangeSlider/index.d.ts +0 -13
  559. package/dist-types/components/RangeSlider/track.d.ts +0 -9
  560. package/dist-types/components/RangeSlider/wrapper.d.ts +0 -11
  561. package/dist-types/components/RangeSliderLabel/index.d.ts +0 -8
  562. package/dist-types/components/RangeSliderLabel/wrapper.d.ts +0 -10
  563. package/dist-types/components/Repeat/index.d.ts +0 -3
  564. package/dist-types/components/Result/index.d.ts +0 -6
  565. package/dist-types/components/Result/wrapper.d.ts +0 -9
  566. package/dist-types/components/Root/index.d.ts +0 -4
  567. package/dist-types/components/SearchBar/index.d.ts +0 -8
  568. package/dist-types/components/SearchFilter/index.d.ts +0 -3
  569. package/dist-types/components/SearchTerm/index.d.ts +0 -8
  570. package/dist-types/components/SearchTerm/wrapper.d.ts +0 -7
  571. package/dist-types/components/SectionHeader/index.d.ts +0 -8
  572. package/dist-types/components/SectionHeader/wrapper.d.ts +0 -3
  573. package/dist-types/components/Snackbar/index.d.ts +0 -9
  574. package/dist-types/components/Snackbar/wrapper.d.ts +0 -11
  575. package/dist-types/components/SortSelect/index.d.ts +0 -14
  576. package/dist-types/components/SortSelect/wrapper.d.ts +0 -6
  577. package/dist-types/components/Sphere/Sphere.d.ts +0 -10
  578. package/dist-types/components/Sphere/SphereLightbox.d.ts +0 -6
  579. package/dist-types/components/Sphere/SphereViewer.d.ts +0 -10
  580. package/dist-types/components/Sphere/wrapper.d.ts +0 -1
  581. package/dist-types/components/SrOnly/index.d.ts +0 -1
  582. package/dist-types/components/SwitchBar/index.d.ts +0 -10
  583. package/dist-types/components/SwitchBar/wrapper.d.ts +0 -14
  584. package/dist-types/components/TableColumn/index.d.ts +0 -3
  585. package/dist-types/components/TableList/index.d.ts +0 -6
  586. package/dist-types/components/Tabs/index.d.ts +0 -12
  587. package/dist-types/components/Tabs/wrapper.d.ts +0 -12
  588. package/dist-types/components/ThreeSixty/Rotation.d.ts +0 -6
  589. package/dist-types/components/ThreeSixty/ThreeSixtLightbox.d.ts +0 -6
  590. package/dist-types/components/ThreeSixty/ThreeSixty.d.ts +0 -9
  591. package/dist-types/components/UspList/index.d.ts +0 -11
  592. package/dist-types/components/UspList/wrapper.d.ts +0 -11
  593. package/dist-types/components/Utility/index.d.ts +0 -8
  594. package/dist-types/components/Video/CustomPlayer.d.ts +0 -10
  595. package/dist-types/components/Video/EmbeddedVideoLightbox.d.ts +0 -8
  596. package/dist-types/components/Video/EmbededVideo.d.ts +0 -8
  597. package/dist-types/components/Video/QuickNavEmbeded.d.ts +0 -7
  598. package/dist-types/components/Video/QuickNavVideo.d.ts +0 -7
  599. package/dist-types/components/Video/Video.d.ts +0 -5
  600. package/dist-types/components/Video/VimeoPlayer.d.ts +0 -7
  601. package/dist-types/components/Video/YoutubePlayer.d.ts +0 -7
  602. package/dist-types/components/Video/useThumbnail.d.ts +0 -2
  603. package/dist-types/components/Video/utils.d.ts +0 -9
  604. package/dist-types/components/Video/wrapper.d.ts +0 -11
  605. package/dist-types/hooks/useEcom.d.ts +0 -3
  606. package/dist-types/hooks/useFetch.d.ts +0 -7
  607. package/dist-types/hooks/useHasBeenVisible.d.ts +0 -2
  608. package/dist-types/hooks/useHashGuid.d.ts +0 -2
  609. package/dist-types/hooks/useInsurance.d.ts +0 -4
  610. package/dist-types/hooks/useLoan.d.ts +0 -4
  611. package/dist-types/hooks/useOnScreen.d.ts +0 -2
  612. package/dist-types/hooks/useOutsideClick.d.ts +0 -2
  613. package/dist-types/hooks/usePrevious.d.ts +0 -2
  614. package/dist-types/hooks/useSearchItem.d.ts +0 -4
  615. package/dist-types/hooks/useSearchItemBranch.d.ts +0 -4
  616. package/dist-types/hooks/useSessionStorage.d.ts +0 -7
  617. package/dist-types/hooks/useVimeoThumbnail.d.ts +0 -2
  618. package/dist-types/index.d.ts +0 -18
  619. package/dist-types/layout/helpers.d.ts +0 -1
  620. package/dist-types/layout/keyframes.d.ts +0 -3
  621. package/dist-types/layout/theme.d.ts +0 -40
  622. package/dist-types/layouts/WaykeComposite.d.ts +0 -6
  623. package/dist-types/layouts/WaykeCompositeWithProvider.d.ts +0 -9
  624. package/dist-types/layouts/search/index.d.ts +0 -15
  625. package/dist-types/layouts/searchItem/Branch.d.ts +0 -8
  626. package/dist-types/layouts/searchItem/BranchModal.d.ts +0 -9
  627. package/dist-types/layouts/searchItem/CheckList.d.ts +0 -13
  628. package/dist-types/layouts/searchItem/ManufacturerPackagesOption.d.ts +0 -7
  629. package/dist-types/layouts/searchItem/MetadataItem.d.ts +0 -10
  630. package/dist-types/layouts/searchItem/PackageOptionModal.d.ts +0 -17
  631. package/dist-types/layouts/searchItem/PackageOptions.d.ts +0 -7
  632. package/dist-types/layouts/searchItem/Page404.d.ts +0 -3
  633. package/dist-types/layouts/searchItem/PageLoading.d.ts +0 -3
  634. package/dist-types/layouts/searchItem/Property.d.ts +0 -8
  635. package/dist-types/layouts/searchItem/Related.d.ts +0 -9
  636. package/dist-types/layouts/searchItem/index.d.ts +0 -12
  637. package/dist-types/providers/WaykeItemProvidet.d.ts +0 -22
  638. package/dist-types/providers/WaykeProvider.d.ts +0 -24
  639. package/dist-types/providers/graphqlProvider.d.ts +0 -6
  640. package/dist-types/providers/themeProvider.d.ts +0 -6
  641. package/dist-types/queries/INSURANCE_CALCULATION.d.ts +0 -2
  642. package/dist-types/queries/LOAN_CALCULATION.d.ts +0 -2
  643. package/dist-types/queries/SEARCH_ITEM_BRANCH_QUERY.d.ts +0 -2
  644. package/dist-types/queries/SEARCH_ITEM_QUERY.d.ts +0 -2
  645. package/dist-types/utils/constants.d.ts +0 -62
  646. package/dist-types/utils/converters.d.ts +0 -1
  647. package/dist-types/utils/deep-copy.d.ts +0 -5
  648. package/dist-types/utils/formats.d.ts +0 -8
  649. package/dist-types/utils/metadata.min.d.ts +0 -11
  650. package/dist-types/utils/phonenumbers.d.ts +0 -1
  651. package/dist-types/utils/pubsub/Actions.d.ts +0 -16
  652. package/dist-types/utils/pubsub/Events.d.ts +0 -51
  653. package/dist-types/utils/pubsub/pubsub.d.ts +0 -32
  654. package/dist-types/utils/regex.d.ts +0 -3
  655. package/dist-types/utils/sortOptions.d.ts +0 -11
  656. package/dist-types/utils/specification.d.ts +0 -28
  657. package/dist-types/utils/ssn.d.ts +0 -1
  658. package/dist-types/utils/url.d.ts +0 -1
  659. package/dist-types/utils/vehicle-properties/compare-basic-properties.d.ts +0 -3
  660. package/dist-types/utils/vehicle-properties/compare-categories.d.ts +0 -3
  661. package/dist-types/utils/vehicle-properties/compare-properties.d.ts +0 -3
  662. package/dist-types/utils/vehicle-properties/custom-property-adder.d.ts +0 -12
  663. package/dist-types/utils/vehicle-properties/property-hint-enricher.d.ts +0 -10
  664. package/dist-types/utils/vehicle-properties/property-remover.d.ts +0 -7
  665. package/dist-types/utils/vehicle-properties/property-tree-creator.d.ts +0 -31
  666. package/dist-types/utils/vehicle-properties/property-tree-sorter.d.ts +0 -3
  667. package/dist-web/index.js +0 -7545
  668. package/dist-web/index.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../dist-src/layout/theme.js","../dist-src/layout/helpers.js","../dist-src/components/Container/wrapper.js","../dist-src/components/Container/index.js","../dist-src/components/Page/index.js","../dist-src/components/Result/wrapper.js","../dist-src/components/ProgressBar/wrapper.js","../dist-src/components/ProgressBar/index.js","../dist-src/components/Utility/index.js","../dist-src/components/Button/index.js","../dist-src/layout/keyframes.js","../dist-src/components/Loader/wrapper.js","../dist-src/components/SrOnly/index.js","../dist-src/components/Loader/index.js","../dist-src/utils/constants.js","../dist-src/utils/formats.js","../dist-src/State/Search/SearchContext.js","../dist-src/State/Search/useSearch.js","../dist-src/components/SortSelect/wrapper.js","../dist-src/components/Icon/index.js","../dist-src/components/SortSelect/index.js","../dist-src/utils/sortOptions.js","../dist-src/components/Result/index.js","../dist-src/components/Filter/wrapper.js","../dist-src/components/Heading/index.js","../dist-src/components/Panel/wrapper.js","../dist-src/components/Portal/portal-namespace.js","../dist-src/components/Portal/portal-element.js","../dist-src/components/Portal/portal.js","../dist-src/components/Panel/index.js","../dist-src/components/Accordion/wrapper.js","../dist-src/components/Accordion/index.js","../dist-src/components/Repeat/index.js","../dist-src/components/Checklist/wrapper.js","../dist-src/components/Checklist/index.js","../dist-src/components/OverflowBox/wrapper.js","../dist-src/components/OverflowBox/index.js","../dist-src/components/FilterPanel/checkListFacet.js","../dist-src/components/ColorSelect/wrapper.js","../dist-src/components/ColorSelect/index.js","../dist-src/utils/converters.js","../dist-src/components/FilterPanel/colorFacet.js","../dist-src/components/RangeSlider/wrapper.js","../dist-src/components/RangeSlider/handle.js","../dist-src/components/RangeSlider/track.js","../dist-src/components/RangeSlider/index.js","../dist-src/components/FilterPanel/rangeFacet.js","../dist-src/components/FilterPanel/faceSelector.js","../dist-src/components/FilterPanel/index.js","../dist-src/components/Filter/index.js","../dist-src/components/Grid/wrapper.js","../dist-src/components/ProductCard/wrapper.js","../dist-src/components/UspList/wrapper.js","../dist-src/components/UspList/index.js","../dist-src/State/Path/PathContext.js","../dist-src/State/Path/usePath.js","../dist-src/components/ProductCard/index.js","../dist-src/components/Grid/index.js","../dist-src/components/SearchTerm/wrapper.js","../dist-src/components/SearchTerm/index.js","../dist-src/components/InputSearch/wrapper.js","../dist-src/components/InputSearch/index.js","../dist-src/hooks/useOutsideClick.js","../dist-src/components/SearchBar/index.js","../dist-src/components/SearchFilter/index.js","../dist-src/components/Snackbar/wrapper.js","../dist-src/components/Snackbar/index.js","../dist-src/utils/pubsub/pubsub.js","../dist-src/layouts/search/index.js","../dist-src/components/PriceTable/wrapper.js","../dist-src/components/Price/index.js","../dist-src/components/PriceTable/index.js","../dist-src/components/LogoBox/wrapper.js","../dist-src/components/LogoBox/index.js","../dist-src/components/Content/wrapper.js","../dist-src/components/Content/index.js","../dist-src/components/Blockquote/wrapper.js","../dist-src/components/Avatar/wrapper.js","../dist-src/components/Avatar/index.js","../dist-src/components/Blockquote/index.js","../dist-src/components/ExtendContent/wrapper.js","../dist-src/components/ExtendContent/index.js","../dist-src/components/Gallery/wrapper.js","../dist-src/components/Lightbox/wrapper.js","../dist-src/components/Video/utils.js","../dist-src/components/Video/wrapper.js","../dist-src/components/Video/YoutubePlayer.js","../dist-src/components/Video/VimeoPlayer.js","../dist-src/components/Video/Video.js","../dist-src/components/Video/CustomPlayer.js","../dist-src/components/Video/EmbeddedVideoLightbox.js","../dist-src/components/Sphere/wrapper.js","../dist-src/components/Sphere/SphereViewer.js","../dist-src/components/Sphere/SphereLightbox.js","../dist-src/components/Gallery/MediaButton.js","../dist-src/components/ThreeSixty/Rotation.js","../dist-src/components/ThreeSixty/ThreeSixtLightbox.js","../dist-src/components/Lightbox/index.js","../dist-src/hooks/useFetch.js","../dist-src/hooks/useVimeoThumbnail.js","../dist-src/components/Video/useThumbnail.js","../dist-src/components/Modal/wrapper.js","../dist-src/components/Modal/index.js","../dist-src/components/Video/EmbededVideo.js","../dist-src/components/Video/QuickNavEmbeded.js","../dist-src/components/Sphere/Sphere.js","../dist-src/components/ThreeSixty/ThreeSixty.js","../dist-src/components/Gallery/index.js","../dist-src/components/ProductPage/index.js","../dist-src/queries/SEARCH_ITEM_QUERY.js","../dist-src/hooks/useSearchItem.js","../dist-src/components/OptionBox/wrapper.js","../dist-src/components/OptionBox/index.js","../dist-src/components/DataList/wrapper.js","../dist-src/components/DataList/index.js","../dist-src/components/FinancialOptions/leasing.js","../dist-src/queries/LOAN_CALCULATION.js","../dist-src/hooks/useLoan.js","../dist-src/components/ContentLogo/index.js","../dist-src/components/RangeSliderLabel/wrapper.js","../dist-src/components/RangeSliderLabel/index.js","../dist-src/components/RangeSlider/RangeSliderSimple.js","../dist-src/components/RangeSlider/SliderWithLabel.js","../dist-src/components/FinancialOptions/LoanModal.js","../dist-src/components/FinancialOptions/loan.js","../dist-src/components/FinancialOptions/index.js","../dist-src/components/DetailBox/wrapper.js","../dist-src/components/DetailBox/index.js","../dist-src/components/ExtendInfo/wrapper.js","../dist-src/components/ExtendInfo/index.js","../dist-src/components/InputLabel/wrapper.js","../dist-src/components/InputLabel/index.js","../dist-src/components/InputText/wrapper.js","../dist-src/components/InputText/index.js","../dist-src/components/InputCheckbox/wrapper.js","../dist-src/components/InputSelect/wrapper.js","../dist-src/components/InputSelect/index.js","../dist-src/components/InputGroup/index.js","../dist-src/components/ColumnRow/index.js","../dist-src/queries/INSURANCE_CALCULATION.js","../dist-src/hooks/useInsurance.js","../dist-src/utils/ssn.js","../dist-src/@types/codegen/types.js","../dist-src/components/InsuranceOptions/InsuranceOptionModal.js","../dist-src/components/InsuranceOptions/index.js","../dist-src/State/Settings/SettingsContext.js","../dist-src/State/Settings/useSettings.js","../dist-src/components/Ecom/index.js","../dist-src/layouts/searchItem/ManufacturerPackagesOption.js","../dist-src/components/ActionList/toggle-item.js","../dist-src/utils/metadata.min.js","../dist-src/utils/phonenumbers.js","../dist-src/components/ActionList/index.js","../dist-src/components/CheckMarkList/wrapper.js","../dist-src/components/CheckMarkList/index.js","../dist-src/components/SwitchBar/wrapper.js","../dist-src/components/SwitchBar/index.js","../dist-src/State/CentralStorage/CentralStorageContext.js","../dist-src/layouts/searchItem/BranchModal.js","../dist-src/layouts/searchItem/PackageOptionModal.js","../dist-src/layouts/searchItem/CheckList.js","../dist-src/components/SectionHeader/wrapper.js","../dist-src/components/SectionHeader/index.js","../dist-src/components/OverflowGrid/index.js","../dist-src/State/RelatedSearch/RelatedSearchContext.js","../dist-src/State/RelatedSearch/useRelatedSearch.js","../dist-src/utils/regex.js","../dist-src/layouts/searchItem/Related.js","../dist-src/layouts/searchItem/PackageOptions.js","../dist-src/components/TableColumn/index.js","../dist-src/components/Badge/wrapper.js","../dist-src/components/Badge/index.js","../dist-src/components/OpeningHours/index.js","../dist-src/components/PhoneNumber/index.js","../dist-src/components/Map/wrapper.js","../dist-src/components/Map/index.js","../dist-src/layouts/searchItem/Branch.js","../dist-src/queries/SEARCH_ITEM_BRANCH_QUERY.js","../dist-src/hooks/useSearchItemBranch.js","../dist-src/State/CentralStorage/useCentralStorage.js","../dist-src/layouts/searchItem/Page404.js","../dist-src/layouts/searchItem/PageLoading.js","../dist-src/utils/vehicle-properties/property-tree-creator.js","../dist-src/utils/vehicle-properties/compare-categories.js","../dist-src/utils/vehicle-properties/compare-properties.js","../dist-src/utils/vehicle-properties/compare-basic-properties.js","../dist-src/utils/vehicle-properties/property-tree-sorter.js","../dist-src/utils/deep-copy.js","../dist-src/utils/vehicle-properties/property-hint-enricher.js","../dist-src/utils/vehicle-properties/custom-property-adder.js","../dist-src/utils/vehicle-properties/property-remover.js","../dist-src/components/TableList/index.js","../dist-src/layouts/searchItem/MetadataItem.js","../dist-src/components/Tabs/wrapper.js","../dist-src/components/Tabs/index.js","../dist-src/layouts/searchItem/Property.js","../dist-src/components/Pdf/wrapper.js","../dist-src/components/Pdf/index.js","../dist-src/layouts/searchItem/index.js","../dist-src/providers/graphqlProvider.js","../dist-src/providers/themeProvider.js","../dist-src/utils/url.js","../dist-src/State/Search/SearchProvider.js","../dist-src/components/Root/index.js","../dist-src/hooks/useEcom.js","../dist-src/State/Settings/SettingsProvider.js","../dist-src/State/RelatedSearch/RelatedSearchProvider.js","../dist-src/hooks/useSessionStorage.js","../dist-src/State/CentralStorage/CentralStorageProvider.js","../dist-src/hooks/usePrevious.js","../dist-src/State/Path/reducer.js","../dist-src/State/Path/PathProvider.js","../dist-src/providers/WaykeProvider.js","../dist-src/hooks/useHashGuid.js","../dist-src/layouts/WaykeComposite.js","../dist-src/layouts/WaykeCompositeWithProvider.js","../dist-src/providers/WaykeItemProvidet.js"],"sourcesContent":["const _colors = {\n black: '#000',\n white: '#fff',\n gray: '#ddd',\n grayLight: '#f8f8f8',\n grayLightTransparent: 'rgba(248, 248, 248, 0)',\n grayLightDarker: '#ebebeb',\n grayDark: '#717171',\n blue: '#1d61ca',\n ui: {\n greenLight: '#cdf5c8',\n green: '#2b8747',\n redLight: '#ffd0d0',\n red: '#c71f1f',\n yellowLight: '#fff4c7',\n blueLight: '#daf7fc',\n },\n};\nconst theme = {\n color: {\n bg: _colors.white,\n link: _colors.blue,\n accent: _colors.grayLight,\n accentTransparent: _colors.grayLightTransparent,\n accentDark: _colors.grayLightDarker,\n border: _colors.gray,\n textDark: _colors.black,\n textDarkLighten: _colors.grayDark,\n textLight: _colors.white,\n hoverOverlay: 'rgba(0, 0, 0, 0.04)',\n disabledBg: _colors.gray,\n disabledText: _colors.grayDark,\n placeholder: _colors.grayDark,\n ui: {\n positiveLight: _colors.ui.greenLight,\n positive: _colors.ui.green,\n neutralLight: _colors.ui.yellowLight,\n negativeLight: _colors.ui.redLight,\n negative: _colors.ui.red,\n infoLight: _colors.ui.blueLight,\n },\n },\n breakpoint: {\n Sm: '@media (min-width: 600px)',\n LtSm: '@media (max-width: 599px)',\n Md: '@media (min-width: 900px)',\n LtMd: '@media (max-width: 899px)',\n Lg: '@media (min-width: 1200px)',\n LtLg: '@media (max-width: 1199px)',\n },\n distances: {\n baseUnit: '8px',\n inputHeight: '48px',\n containerMaxWidth: '1312px',\n },\n};\nexport default theme;\n","import theme from './theme';\nexport const size = (multiplier = 1) => {\n const baseUnit = parseFloat(theme.distances.baseUnit);\n return `${multiplier * baseUnit}px`;\n};\n","import styled from 'styled-components';\nimport { size } from '../../layout/helpers';\nexport const Wrapper = styled.div `\n width: 100%;\n max-width: ${(props) => props.theme.distances.containerMaxWidth};\n margin: 0 auto;\n padding: 0 ${size(3)};\n\n ${(props) => props.theme.breakpoint.LtSm} {\n padding: 0 ${size(2)};\n }\n`;\n","import React from 'react';\nimport { Wrapper } from './wrapper';\nconst Container = ({ children }) => React.createElement(Wrapper, null, children);\nexport default Container;\n","import styled, { css } from 'styled-components';\nimport { size } from '../../layout/helpers';\nexport const Page = styled.div ``;\nexport const PageSection = styled.section `\n margin-bottom: ${size(4)};\n\n ${({ accent }) => accent &&\n css `\n padding: ${size(4)} 0;\n background-color: ${(props) => props.theme.color.accent};\n margin-bottom: 0;\n `}\n\n ${({ large }) => large &&\n css `\n margin-bottom: ${size(8)};\n `}\n\n ${({ accent, large }) => accent &&\n large &&\n css `\n padding: ${size(8)} 0;\n margin-bottom: 0;\n `}\n\n ${({ fillSpace }) => fillSpace &&\n css `\n flex: 1 1 auto;\n `}\n`;\n","import styled from 'styled-components';\nimport { size } from '../../layout/helpers';\nexport const Wrapper = styled.div ``;\nexport const Header = styled.header `\n display: flex;\n margin-bottom: ${size(4)};\n`;\nexport const HeaderCount = styled.div `\n flex: 1 1 auto;\n`;\nexport const HeaderSort = styled.div `\n flex-shrink: 0;\n`;\nexport const Body = styled.div ``;\nexport const Footer = styled.footer `\n margin-top: ${size(8)};\n text-align: center;\n`;\nexport const FooterProgress = styled.div `\n max-width: 175px;\n margin: 0 auto;\n`;\nexport const FooterAction = styled.div `\n margin-top: ${size(3)};\n`;\nexport const ResultCount = styled.div `\n color: ${(props) => props.theme.color.textDarkLighten};\n font-size: 0.875rem;\n`;\n","import styled from 'styled-components';\nimport { size } from '../../layout/helpers';\nexport const Wrapper = styled.div `\n text-align: center;\n`;\nexport const Description = styled.div `\n margin-bottom: ${size(1.5)};\n font-size: 0.875rem;\n`;\nexport const Bar = styled.div `\n position: relative;\n width: 100%;\n height: 2px;\n background-color: ${(props) => props.theme.color.accentDark};\n`;\nexport const BarActive = styled.div.attrs(() => ({\n role: 'progressbar',\n})) `\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n background-color: ${(props) => props.theme.color.textDark};\n`;\n","import React from 'react';\nimport { Wrapper, Description, Bar, BarActive } from './wrapper';\nconst ProgressBar = ({ unit, valueCurrent, valueMax }) => {\n const barWidth = (valueCurrent / valueMax) * 100;\n return (React.createElement(Wrapper, null,\n React.createElement(Description, null,\n \"Visar \",\n valueCurrent.toString(),\n \" av \",\n valueMax.toString(),\n \" \",\n unit),\n React.createElement(Bar, null,\n React.createElement(BarActive, { style: { width: `${barWidth}%` }, \"aria-valuenow\": valueCurrent, \"aria-valuemin\": 0, \"aria-valuemax\": valueMax }))));\n};\nexport default ProgressBar;\n","import styled from 'styled-components';\nexport const UtilityTextRight = styled.div `\n text-align: right;\n`;\nexport const UtilityFontSizeSmall = styled.span `\n font-size: 0.875rem;\n`;\nexport const UtilityTextPrimary = styled.span.attrs(() => ({\n className: 'wayke__theme wayke__color--primary-text',\n})) ``;\nexport const UtilityTextBold = styled.span.attrs(() => ({\n className: 'wayke__theme wayke__font--bold',\n})) ``;\n","import styled, { css } from 'styled-components';\nimport { size } from '../../layout/helpers';\nimport { UtilityTextRight } from '../Utility/index';\nexport const ButtonReset = styled.button.attrs(() => ({\n type: 'button',\n})) `\n display: inline-block;\n vertical-align: middle;\n padding: 0;\n margin: 0;\n background-color: transparent;\n border: 0;\n border-radius: 0;\n font-family: sans-serif;\n font-weight: 400;\n font-size: 1em;\n color: currentColor;\n line-height: 1.2;\n text-align: center;\n text-decoration: none;\n -webkit-tap-highlight-color: rgba(255, 255, 255, 0.1);\n cursor: pointer;\n\n :focus {\n outline: none;\n }\n\n ::-moz-focus-inner {\n border: 0;\n }\n`;\nconst ButtonBase = styled(ButtonReset) `\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n padding: ${size(1.75)} ${size(6)};\n border-radius: 3px;\n font-size: 1rem;\n line-height: 1.2;\n text-decoration: none;\n transform-origin: 50% 50%;\n transition: 200ms ease, transform 300ms cubic-bezier(0.47, 1.64, 0.41, 0.8);\n\n :before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: ${(props) => props.theme.color.hoverOverlay};\n border-radius: 3px;\n opacity: 0;\n transition: opacity 150ms ease;\n }\n\n :hover {\n :before {\n opacity: 1;\n }\n }\n\n :active {\n transform: scale(0.97);\n }\n\n &[disabled] {\n background-color: ${(props) => props.theme.color.disabledBg};\n border-color: ${(props) => props.theme.color.disabledBg};\n color: ${(props) => props.theme.color.disabledText};\n }\n\n ${({ fullWidth }) => fullWidth &&\n css `\n display: flex;\n width: 100%;\n `}\n\n ${({ inputHeight }) => inputHeight &&\n css `\n height: ${(props) => props.theme.distances.inputHeight};\n `}\n\n ${(props) => props.theme.breakpoint.LtSm} {\n padding: ${size(1.75)} ${size(2.5)};\n font-size: 0.875rem;\n }\n`;\nexport const ButtonPrimary = styled(ButtonBase).attrs(() => ({\n className: 'wayke__theme wayke__color--primary-bg wayke__font--bold',\n})) ``;\nexport const ButtonSecondary = styled(ButtonBase).attrs(() => ({\n className: 'wayke__theme wayke__color--secondary-bg wayke__font--bold',\n})) `\n background-color: ${(props) => props.theme.color.accentDark};\n color: ${(props) => props.theme.color.textDark};\n`;\nexport const ButtonContent = styled.div `\n position: relative;\n z-index: 1;\n\n & + & {\n margin-left: ${size(0.5)};\n }\n`;\nexport const ButtonClear = styled(ButtonReset).attrs(() => ({\n className: 'wayke__theme wayke__color--primary-text wayke__font--bold',\n})) `\n position: relative;\n font-size: 0.875rem;\n padding: ${size(1.5)};\n margin: ${size(-1.5)};\n text-align: left;\n transform-origin: 50% 50%;\n transition: transform 300ms cubic-bezier(0.47, 1.64, 0.41, 0.8);\n\n ${UtilityTextRight} & {\n text-align: right;\n }\n\n :before {\n content: '';\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n background-color: ${(props) => props.theme.color.accentDark};\n border-radius: 3px;\n opacity: 0;\n transition: opacity 200ms ease;\n }\n\n :hover {\n :before {\n opacity: 1;\n }\n }\n\n :active {\n transform: scale(0.95);\n }\n`;\nexport const ButtonInline = styled(ButtonReset).attrs(() => ({\n className: 'wayke__theme wayke__color--primary-text wayke__font--regular',\n})) `\n display: inline-flex;\n vertical-align: baseline;\n text-align: left;\n text-decoration: underline;\n\n :not(:hover) {\n color: ${(props) => props.theme.color.textDark};\n }\n\n ${({ inline }) => inline &&\n css `\n display: inline;\n `}\n`;\nexport const ButtonInlineBold = styled(ButtonReset).attrs(() => ({\n className: 'wayke__theme wayke__color--primary-text wayke__font--bold',\n})) `\n display: inline-flex;\n vertical-align: baseline;\n text-align: left;\n\n :hover {\n text-decoration: underline;\n }\n`;\nexport const ButtonInlineLight = styled(ButtonReset).attrs(() => ({\n className: 'wayke__theme wayke__color--primary-text wayke__font--regular',\n})) `\n display: inline-flex;\n vertical-align: baseline;\n text-align: left;\n text-decoration: none;\n\n :not(:hover) {\n color: ${(props) => props.theme.color.textDarkLighten};\n }\n`;\nexport const ButtonInlinePrimary = styled(ButtonReset).attrs(() => ({\n className: 'wayke__theme wayke__color--primary-text wayke__font--regular',\n})) `\n display: inline-flex;\n vertical-align: baseline;\n text-align: left;\n\n :hover {\n text-decoration: underline;\n }\n`;\n","import { keyframes } from 'styled-components';\nexport const noTransform = keyframes `\n to {\n transform: none;\n }\n`;\nexport const fadeIn = keyframes `\n from {\n opacity: 0;\n }\n\n to {\n opacity: 1;\n }\n`;\nexport const rotate = keyframes `\n to {\n transform: rotate(360deg);\n }\n`;\n","import styled, { css } from 'styled-components';\nimport { size } from '../../layout/helpers';\nimport { rotate } from '../../layout/keyframes';\nexport const Spinner = styled.div `\n display: block;\n margin: 0 auto;\n width: ${size(4)};\n height: ${size(4)};\n border-radius: 50%;\n border: 2px solid currentColor;\n border-top-color: transparent;\n animation: ${rotate} 600ms linear infinite;\n`;\nexport const Wrapper = styled.div.attrs(() => ({\n className: 'wayke__theme wayke__color--primary-text',\n role: 'status',\n})) `\n ${({ inline }) => inline &&\n css `\n display: inline-block;\n vertical-align: middle;\n color: currentColor !important;\n\n ${Spinner} {\n width: 1em;\n height: 1em;\n }\n `}\n\n ${({ center }) => center &&\n css `\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n `}\n`;\n","import styled from 'styled-components';\n// Adds element only visible to screen readers\nexport const SrOnly = styled.div `\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n`;\n","import * as React from 'react';\nimport { Spinner, Wrapper } from './wrapper';\nimport { SrOnly } from '../SrOnly/index';\nconst Loader = ({ inline, center }) => (React.createElement(Wrapper, { inline: inline, center: center },\n React.createElement(Spinner, { \"aria-hidden\": \"true\" }),\n React.createElement(SrOnly, null, \"Laddar...\")));\nexport default Loader;\n","export const MANUFACTURER = 'manufacturer';\nexport const MODEL_SERIES = 'modelSeries';\nexport const FUEL_TYPE = 'fuelType';\nexport const GEARBOX_TYPE = 'gearboxType';\nexport const BRANCH = 'branch';\nexport const COLOR = 'color';\nexport const ENVIRONMENT_CLASS = 'environmentClass';\nexport const SEGMENT = 'properties.segment';\nexport const DRIVING_WHEEL = 'drivingWheel';\nexport const PRICE = 'price';\nexport const MILEAGE = 'mileage';\nexport const MODEL_YEAR = 'modelYear';\nexport const LEASING_PRICE = 'leasingPrice';\nexport const COLOR_WHITE = { displayName: 'Vit', hex: '#ffffff' };\nexport const COLOR_BLACK = { displayName: 'Svart', hex: '#000000' };\nexport const COLOR_GRAY = { displayName: 'Grå', hex: '#808080' };\nexport const COLOR_SILVER = { displayName: 'Silver', hex: '#c0c0c0' };\nexport const COLOR_BLUE = { displayName: 'Blå', hex: '#0000ff' };\nexport const COLOR_RED = { displayName: 'Röd', hex: '#ff0000' };\nexport const COLOR_BROWN = { displayName: 'Brun', hex: '#a52a2a' };\nexport const COLOR_GREEN = { displayName: 'Grön', hex: '#008000' };\nexport const COLOR_ORANGE = { displayName: 'Orange', hex: '#ffa500' };\nexport const COLOR_YELLOW = { displayName: 'Gul', hex: '#ffff00' };\nexport const COLOR_PURPLE = { displayName: 'Lila', hex: '#800080' };\nexport const COLOR_BEIGE = { displayName: 'Beige', hex: '#f5f5dc' };\n/*\nexport const DEFAULT_PLACEHOLDER_IMAGE =\n 'https://cdn.wayke.se/wui/images/placeholders/placeholder_product_card.jpg';\n*/\nexport const DEFAULT_PLACEHOLDER_IMAGE = 'data:image/jpeg;base64,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';\n","import { format as formatFns } from 'date-fns';\nimport { sv } from 'date-fns/locale';\n// Filter function to remove any null/undefined values.\nexport const notEmpty = (value) => value !== null && value !== undefined;\nexport const numberSeparator = (value, n = 0, x = 3, s = ' ', c = '.') => {\n if (value === null || value === undefined) {\n return null;\n }\n const re = `\\\\d(?=(\\\\d{${x || 3}})+${n > 0 ? '\\\\D' : '$'})`;\n const num = value.toFixed(Math.max(0, ~~n));\n return (c ? num.replace('.', c) : num).replace(new RegExp(re, 'g'), `$&${s || ','}`);\n};\nimport { MANUFACTURER, MODEL_SERIES, FUEL_TYPE, GEARBOX_TYPE, ENVIRONMENT_CLASS, SEGMENT, DRIVING_WHEEL, COLOR, PRICE, BRANCH, MILEAGE, MODEL_YEAR, LEASING_PRICE, } from './constants';\nexport const FacetIdToTitle = (f) => {\n switch (f) {\n case MANUFACTURER:\n return 'Tillverkare';\n case MODEL_SERIES:\n return 'Modell';\n case FUEL_TYPE:\n return 'Drivmedel';\n case GEARBOX_TYPE:\n return 'Växellåda';\n case SEGMENT:\n return 'Segment';\n case DRIVING_WHEEL:\n return 'Drivhjul';\n case ENVIRONMENT_CLASS:\n return 'Miljöklass';\n case COLOR:\n return 'Färg';\n case PRICE:\n return 'Pris';\n case BRANCH:\n return 'Anläggning';\n case MILEAGE:\n return 'Miltal';\n case MODEL_YEAR:\n return 'Modellår';\n case LEASING_PRICE:\n return 'Privatleasing';\n default:\n return f;\n }\n};\nexport const dateTimeFormat = {\n YearMonth: 1,\n DayMonth: 2,\n format: (value, format) => {\n const date = new Date(value);\n switch (format) {\n case dateTimeFormat.YearMonth:\n return formatFns(date, 'MMMM yyyy', { locale: sv });\n case dateTimeFormat.DayMonth:\n return formatFns(date, 'd MMMM yyyy', { locale: sv });\n default:\n return formatFns(date, 'yyyy-MM-dd HH:mm', { locale: sv });\n }\n },\n};\n","import { createContext } from 'react';\nexport const SearchContext = createContext({\n loading: false,\n error: false,\n response: undefined,\n documents: undefined,\n initialFacets: undefined,\n queryFilter: { searchParams: new URLSearchParams() },\n onFilterUpdate: (_) => { },\n onLoadMore: () => { },\n onInitialize: (_) => { },\n});\n","import { useContext } from 'react';\nimport { SearchContext } from './SearchContext';\nconst useSearch = () => useContext(SearchContext);\nexport default useSearch;\n","import styled from 'styled-components';\nimport { size } from '../../layout/helpers';\nconst iconSize = '0.875rem';\nexport const Wrapper = styled.div `\n position: relative;\n`;\nexport const Select = styled.select.attrs(() => ({\n className: 'wayke__theme wayke__font--regular',\n})) `\n position: relative;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n -webkit-tap-highlight-color: rgba(255, 255, 255, 0);\n text-indent: 0.01px;\n border: 0;\n padding: 0;\n padding-right: calc(${iconSize} + ${size(1)});\n background-color: transparent;\n color: ${(props) => props.theme.color.textDark};\n border-radius: 0;\n font-size: 16px;\n cursor: pointer;\n z-index: 1;\n\n :focus {\n outline: none;\n text-decoration: underline;\n }\n\n ::-ms-expand {\n display: none;\n }\n\n ::-moz-focus-inner {\n border: 0;\n }\n`;\nexport const Option = styled.option `\n color: ${(props) => props.theme.color.textDark};\n`;\nexport const Icon = styled.div `\n position: absolute;\n top: 50%;\n right: 0;\n transform: translateY(-50%);\n font-size: ${iconSize};\n`;\n","import * as React from 'react';\nimport styled, { css } from 'styled-components';\nconst Icon = styled.svg.attrs(() => ({\n xmlns: 'http://www.w3.org/2000/svg',\n})) `\n display: inline-block;\n vertical-align: middle;\n width: 1em;\n height: 1em;\n fill: currentColor;\n\n ${({ block }) => block &&\n css `\n display: block;\n `}\n`;\nexport const IconInfo = ({ block }) => (React.createElement(Icon, { viewBox: \"0 0 24 24\", block: block },\n React.createElement(\"path\", { d: \"M12 0C5.371 0 0 5.371 0 12s5.371 12 12 12 12-5.371 12-12S18.629 0 12 0zm0 2c5.5234 0 10 4.4766 10 10s-4.4766 10-10 10S2 17.5234 2 12 6.4766 2 12 2zm0 3.8125c-.1836 0-.336-.004-.5.0313-.164.0351-.3164.125-.4375.2187-.121.0938-.211.2227-.2813.375s-.0937.332-.0937.5625c0 .2266.0234.4063.0938.5625.0703.1563.1601.2813.2812.375.121.0938.2734.1484.4375.1875.164.039.3164.0625.5.0625.1797 0 .371-.0234.5313-.0625.1601-.039.2851-.0938.4062-.1875.121-.0938.211-.2188.2813-.375.0703-.1523.125-.336.125-.5625 0-.2305-.0547-.4102-.125-.5625-.0704-.1523-.1602-.2813-.2813-.375-.121-.0938-.246-.1836-.4063-.2188-.1601-.0351-.3515-.0312-.5312-.0312zm-1.2188 3.3438v8.9687h2.4375V9.1562z\" })));\nexport const IconCancel = ({ block }) => (React.createElement(Icon, { viewBox: \"0 0 16 16\", block: block },\n React.createElement(\"path\", { d: \"M15.7 14.3c.4.4.4 1 0 1.4-.2.2-.5.3-.7.3s-.5-.1-.7-.3L8 9.4l-6.3 6.3c-.2.2-.4.3-.7.3s-.5-.1-.7-.3c-.4-.4-.4-1 0-1.4L6.6 8 .3 1.7C-.1 1.3-.1.7.3.3c.4-.4 1-.4 1.4 0L8 6.6 14.3.3c.4-.4 1-.4 1.4 0 .4.4.4 1 0 1.4L9.4 8l6.3 6.3z\" })));\nexport const IconChevronDown = ({ block }) => (React.createElement(Icon, { viewBox: \"0 0 18 18\", block: block },\n React.createElement(\"path\", { d: \"M17.7 5L9 13.7.3 5l.7-.7 8 8 8-8 .7.7z\" })));\nexport const IconChevronLeft = ({ block }) => (React.createElement(Icon, { viewBox: \"0 0 18 18\", block: block },\n React.createElement(\"path\", { d: \"M13 17.7L4.3 9 13 .3l.7.7-8 8 8 8-.7.7z\" })));\nexport const IconChevronRight = ({ block }) => (React.createElement(Icon, { viewBox: \"0 0 18 18\", block: block },\n React.createElement(\"path\", { d: \"M5 .3L13.7 9 5 17.7l-.7-.7 8-8-8-8L5 .3z\" })));\nexport const IconCheck = ({ block }) => (React.createElement(Icon, { viewBox: \"0 0 16 16\", block: block },\n React.createElement(\"path\", { d: \"M15.6 4.3l-9.3 9.4c-.5.5-1.4.5-1.9 0l-4-4c-.5-.5-.5-1.4 0-1.9s1.3-.5 1.9 0l3.1 3.1 8.4-8.5c.5-.5 1.4-.5 1.9 0s.4 1.3-.1 1.9z\" })));\nexport const IconRadio = ({ block }) => (React.createElement(Icon, { viewBox: \"0 0 16 16\", block: block },\n React.createElement(\"path\", { d: \"M13 8c0 2.8-2.2 5-5 5s-5-2.2-5-5 2.2-5 5-5 5 2.2 5 5zm3 0c0 4.4-3.6 8-8 8s-8-3.6-8-8 3.6-8 8-8 8 3.6 8 8zm-1 0c0-3.9-3.1-7-7-7S1 4.1 1 8s3.1 7 7 7 7-3.1 7-7z\" })));\nexport const IconSearch = ({ block }) => (React.createElement(Icon, { viewBox: \"0 0 16 16\", block: block },\n React.createElement(\"path\", { d: \"M15.5 15.3L11 10.8c1.2-1.1 2-2.7 2-4.5C13 2.9 10.2.1 6.8.1S.5 2.8.5 6.2s2.8 6.2 6.2 6.2c1.3 0 2.5-.4 3.5-1.1l4.6 4.6.7-.6zM1.4 6.2C1.4 3.3 3.8 1 6.7 1S12 3.3 12 6.2c0 1.5-.7 2.9-1.7 3.9l-.7.5c-.8.5-1.8.8-2.8.8-3 .1-5.4-2.3-5.4-5.2z\" })));\nexport const IconExclamationCircle = ({ block }) => (React.createElement(Icon, { viewBox: \"0 0 32 32\", block: block },\n React.createElement(\"path\", { d: \"M14.482 21.893c0-0.857 0.694-1.551 1.551-1.551s1.551 0.694 1.551 1.551c0 0.857-0.694 1.551-1.551 1.551s-1.551-0.694-1.551-1.551zM16.033 2.838c-7.271 0-13.187 5.916-13.187 13.187s5.916 13.187 13.187 13.187 13.187-5.916 13.187-13.187c0-7.271-5.916-13.187-13.187-13.187zM16.033 27.203c-6.163 0-11.178-5.015-11.178-11.178s5.015-11.178 11.178-11.178c6.164 0 11.178 5.015 11.178 11.178s-5.014 11.178-11.178 11.178zM16.033 8.308c-0.555 0-1.004 0.45-1.004 1.004v8.227c0 0.555 0.45 1.004 1.004 1.004s1.004-0.45 1.004-1.004v-8.227c0-0.555-0.45-1.004-1.004-1.004z\" })));\nexport const IconExclamationTriangle = ({ block }) => (React.createElement(Icon, { viewBox: \"0 0 32 32\", block: block },\n React.createElement(\"path\", { d: \"M15.951 19.663c-0.457 0-0.828-0.37-0.828-0.828v-4.357c0-0.457 0.37-0.828 0.828-0.828s0.828 0.37 0.828 0.828v4.357c0 0.457-0.371 0.828-0.828 0.828zM15.952 22.906c-0.305 0-0.606-0.126-0.821-0.341s-0.338-0.514-0.338-0.818 0.122-0.606 0.338-0.821c0.431-0.43 1.209-0.43 1.639 0 0.215 0.215 0.341 0.516 0.341 0.821s-0.126 0.603-0.341 0.818c-0.215 0.215-0.513 0.341-0.818 0.341zM27.049 27.070h-22.196c-0.352 0-0.677-0.186-0.855-0.489s-0.184-0.677-0.014-0.985l11.098-20.105c0.175-0.317 0.508-0.513 0.87-0.513s0.695 0.197 0.87 0.513l11.098 20.105c0.17 0.308 0.165 0.683-0.014 0.985s-0.504 0.489-0.856 0.489zM6.536 25.083h18.83l-9.415-17.056-9.415 17.056z\" })));\n","import React from 'react';\nimport { Wrapper, Select, Option, Icon } from './wrapper';\nimport { IconChevronDown } from '../Icon/index';\nconst SortSelect = ({ value, options, onChange, unit }) => (React.createElement(Wrapper, null,\n React.createElement(Select, { value: value, onChange: onChange, title: \"Sortering\", \"aria-label\": \"Sortering\" }, options.map((option) => (React.createElement(Option, { key: option.value, value: option.value },\n option.displayName || option.value,\n unit ? ` ${unit}` : '')))),\n React.createElement(Icon, null,\n React.createElement(IconChevronDown, { block: true }))));\nexport default SortSelect;\n","const SortOptionDisplayName = {\n PublishedAsc: 'published-asc',\n PublishedDesc: 'published-desc',\n PriceAsc: 'price-asc',\n Pricedesc: 'price-desc',\n ModelAsc: 'model-asc',\n Modeldesc: 'model-desc',\n};\nexport const getTranslatedSortOptionDisplayName = (str) => {\n switch (str) {\n case SortOptionDisplayName.PublishedAsc:\n return 'Publicerad äldst';\n case SortOptionDisplayName.PublishedDesc:\n return 'Publicerad senast';\n case SortOptionDisplayName.PriceAsc:\n return 'Pris lägst';\n case SortOptionDisplayName.Pricedesc:\n return 'Pris högst';\n case SortOptionDisplayName.ModelAsc:\n return 'Årsmodell äldst';\n case SortOptionDisplayName.Modeldesc:\n return 'Årsmodell nyast';\n default:\n return str;\n }\n};\n","import React, { useCallback } from 'react';\nimport { Wrapper, Header, HeaderCount, HeaderSort, Body, Footer, FooterProgress, FooterAction, ResultCount, } from './wrapper';\nimport ProgressBar from '../ProgressBar/index';\nimport { ButtonSecondary, ButtonContent } from '../Button/index';\nimport Loader from '../Loader/index';\nimport { numberSeparator } from '../../utils/formats';\nimport useSearch from '../../State/Search/useSearch';\nimport SortSelect from '../SortSelect/index';\nimport { getTranslatedSortOptionDisplayName } from '../../utils/sortOptions';\nconst Result = ({ children }) => {\n var _a;\n const { loading, response, documents, queryFilter, onLoadMore, onFilterUpdate } = useSearch();\n const onSortOptionChange = useCallback((e) => onFilterUpdate(e.currentTarget.value), []);\n const numberOfDocuments = (documents === null || documents === void 0 ? void 0 : documents.length) || 0;\n const numberOfHits = (response === null || response === void 0 ? void 0 : response.documentList.numberOfHits) || 0;\n const useSkeletons = !!(queryFilter === null || queryFilter === void 0 ? void 0 : queryFilter.concatResult);\n const selectedSortOption = (_a = response === null || response === void 0 ? void 0 : response.documentList.sortOptions.find((x) => x.selected)) === null || _a === void 0 ? void 0 : _a.query;\n const sortOptions = response === null || response === void 0 ? void 0 : response.documentList.sortOptions.filter((x) => x.displayName !== 'relevance').map((so) => ({\n value: so.query,\n displayName: getTranslatedSortOptionDisplayName(so.displayName),\n }));\n if (loading && !useSkeletons) {\n return React.createElement(Loader, null);\n }\n return (React.createElement(Wrapper, null,\n React.createElement(Header, null,\n React.createElement(HeaderCount, null,\n React.createElement(ResultCount, null, `${numberSeparator(numberOfHits)} ${numberOfHits === 1 ? 'bil' : 'bilar'}`)),\n sortOptions && selectedSortOption && (React.createElement(HeaderSort, null,\n React.createElement(SortSelect, { value: selectedSortOption, options: sortOptions, onChange: onSortOptionChange })))),\n React.createElement(Body, null, children),\n React.createElement(Footer, null,\n React.createElement(FooterProgress, null,\n React.createElement(ProgressBar, { unit: \"bilar\", valueCurrent: numberOfDocuments, valueMax: numberOfHits })),\n numberOfDocuments !== numberOfHits && (React.createElement(FooterAction, null,\n React.createElement(ButtonSecondary, { disabled: loading, onClick: onLoadMore, title: \"Visa fler\", \"aria-label\": \"Visa fler\" },\n React.createElement(ButtonContent, null, \"Visa fler\")))))));\n};\nexport default Result;\n","import styled from 'styled-components';\nimport { size } from '../../layout/helpers';\nimport { ButtonReset } from '../Button/index';\nexport const List = styled.ul `\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n list-style: none;\n padding: 0;\n margin: ${size(-0.5)};\n`;\nexport const Item = styled.li `\n padding: ${size(0.5)};\n`;\nexport const Action = styled(ButtonReset) `\n position: relative;\n display: flex;\n align-items: center;\n padding: ${size(1.5)} ${size(3)};\n background-color: ${(props) => props.theme.color.accentDark};\n border-radius: 3px;\n font-size: 0.875rem;\n line-height: 1;\n transform-origin: 50% 50%;\n transition: transform 150ms ease;\n\n :before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: ${(props) => props.theme.color.hoverOverlay};\n border-radius: 3px;\n opacity: 0;\n transition: opacity 150ms ease;\n }\n\n :hover {\n :before {\n opacity: 1;\n }\n }\n\n :active {\n transform: scale(0.95);\n }\n`;\nexport const Label = styled.div `\n z-index: 1;\n`;\nexport const Indicator = styled.div `\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0 ${size(0.375)};\n margin-left: ${size(0.5)};\n background-color: currentColor;\n min-width: 1em;\n height: 1em;\n border-radius: 999px;\n z-index: 1;\n`;\nexport const IndicatorValue = styled.div `\n font-family: sans-serif; // Default font to guarantee visibility\n font-size: 0.75rem;\n font-weight: bold;\n color: white;\n mix-blend-mode: difference;\n`;\n","import styled, { css } from 'styled-components';\nimport { size } from '../../layout/helpers';\nconst HeadingBase = styled.div.attrs(() => ({\n className: 'wayke__theme wayke__font--bold',\n})) `\n margin-top: 0;\n margin-bottom: ${size(2)};\n font-weight: normal;\n line-height: 1.2;\n\n ${({ noMargin }) => noMargin &&\n css `\n margin-bottom: 0;\n `}\n`;\nexport const H1 = styled(HeadingBase).attrs((props) => ({\n as: props.as || 'h1',\n})) `\n font-size: 1.875rem;\n`;\nexport const H2 = styled(HeadingBase).attrs((props) => ({\n as: props.as || 'h2',\n})) `\n font-size: 1.5rem;\n`;\n/*\nexport const H3 = styled(HeadingBase).attrs<{ as: string }>((props) => ({\n as: props.as || 'h3',\n}))`\n font-size: 1.125rem;\n`;\n*/\nexport const H4 = styled(HeadingBase).attrs((props) => ({\n as: props.as || 'h4',\n})) `\n font-size: 1rem;\n`;\nexport const H5 = styled(HeadingBase).attrs((props) => ({\n as: props.as || 'h5',\n})) `\n font-size: 0.875rem;\n`;\n/*\nexport const H6 = styled(HeadingBase).attrs<{ as: string }>((props) => ({\n as: props.as || 'h6',\n}))`\n font-size: 0.67rem;\n`;\n*/\nexport const VisualHeading = styled.div.attrs(() => ({\n className: 'wayke__theme wayke__font--bold',\n})) `\n font-size: 1em;\n`;\n","import styled from 'styled-components';\nimport { size } from '../../layout/helpers';\nimport { fadeIn, noTransform } from '../../layout/keyframes';\nimport { ButtonReset } from '../Button/index';\nimport { H1 } from '../Heading/index';\nexport const Wrapper = styled.div.attrs(() => ({\n role: 'dialog',\n})) `\n position: relative;\n z-index: 80;\n`;\nexport const UiBlock = styled.div.attrs(() => ({\n 'aria-hidden': 'true',\n role: 'button',\n})) `\n position: fixed;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n background-color: rgba(0, 0, 0, 0.35);\n animation: ${fadeIn} 200ms ease;\n`;\nexport const PanelWrapper = styled.article.attrs(() => ({\n className: 'wayke__theme wayke__font--regular',\n})) `\n display: flex;\n flex-direction: column;\n position: fixed;\n top: 0;\n bottom: 0;\n right: 0;\n width: 100%;\n background-color: ${(props) => props.theme.color.accent};\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.05);\n z-index: 1;\n animation: ${noTransform} 200ms ease forwards;\n\n ${(props) => props.theme.breakpoint.Sm} {\n max-width: 450px;\n transform: translateX(100%);\n }\n\n ${(props) => props.theme.breakpoint.LtSm} {\n top: auto;\n max-height: 100%;\n transform: translateY(100%);\n }\n`;\nexport const Header = styled.header `\n position: relative;\n display: flex;\n flex-shrink: 0;\n align-items: center;\n min-height: 45px;\n padding: ${size(3)};\n padding-bottom: 0;\n\n :after {\n content: '';\n position: absolute;\n top: 100%;\n left: 0;\n right: 0;\n height: ${size(3)};\n background-image: linear-gradient(\n ${(props) => props.theme.color.accent},\n ${(props) => props.theme.color.accentTransparent}\n );\n z-index: 1;\n }\n`;\nexport const Heading = styled.div `\n flex: 1 1 auto;\n\n ${H1} {\n font-size: 1.5rem;\n }\n`;\nexport const Close = styled.div `\n flex-shrink: 0;\n margin: ${size(-2)};\n padding-left: ${size(3)};\n`;\nexport const CloseBtn = styled(ButtonReset) `\n position: relative;\n display: block;\n padding: ${size(2)};\n transform-origin: 50% 50%;\n transition: transform 200ms ease;\n z-index: 2;\n\n :before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border-radius: 50%;\n background-color: ${(props) => props.theme.color.accent};\n opacity: 0;\n transition: opacity 200ms ease;\n z-index: -1;\n }\n\n :active {\n transform: scale(0.9);\n }\n\n :hover {\n :before {\n opacity: 1;\n }\n }\n`;\nexport const Body = styled.div `\n flex: 1 1 auto;\n overflow: auto;\n -webkit-overflow-scrolling: touch;\n padding: ${size(3)};\n`;\nexport const Footer = styled.footer `\n position: relative;\n flex-shrink: 0;\n padding: ${size(3)};\n border-top: 1px solid ${(props) => props.theme.color.border};\n`;\nexport const FooterAction = styled.div.attrs(() => ({\n role: 'group',\n})) `\n display: flex;\n align-items: center;\n margin: ${size(-0.5)};\n`;\nexport const FooterActionItem = styled.div `\n flex: 1 1 50%;\n padding: ${size(0.5)};\n\n ${ButtonReset} {\n padding: ${size(1.75)} ${size(2)};\n }\n`;\n","export const DefaultPortal = 'DEFAULT_PORTAL';\n","import * as React from 'react';\nconst PortalElement = ({ id }) => React.createElement(\"div\", { id: id });\nexport default PortalElement;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nconst Portal = ({ id, children }) => {\n const el = React.useRef(document.getElementById(id) || document.createElement('div'));\n if (!el.current) {\n return null;\n }\n const { current } = el;\n const [dynamic] = React.useState(!current.parentElement);\n React.useEffect(() => {\n if (dynamic) {\n current.id = id;\n if (document.body) {\n document.body.appendChild(current);\n }\n }\n return () => {\n if (dynamic && current.parentElement) {\n current.parentElement.removeChild(current);\n }\n };\n }, [id]);\n return ReactDOM.createPortal(children, current);\n};\nexport default React.memo(Portal);\n","import * as React from 'react';\nimport { PanelWrapper, Close, CloseBtn, Header, Heading, Body, Footer, UiBlock, Wrapper, } from './wrapper';\nimport { Portal, PortalNamespace } from '../Portal/index';\nimport { H1 } from '../Heading/index';\nimport { IconCancel } from '../Icon/index';\nconst Panel = ({ id, title, footer, onClose, children }) => {\n return (React.createElement(Portal, { id: id || PortalNamespace.DefaultPortal },\n React.createElement(Wrapper, null,\n React.createElement(UiBlock, { title: \"St\\u00E4ng panel\", onClick: onClose }),\n React.createElement(PanelWrapper, null,\n React.createElement(Header, null,\n React.createElement(Heading, null,\n React.createElement(H1, { noMargin: true }, title)),\n React.createElement(Close, null,\n React.createElement(CloseBtn, { title: \"St\\u00E4ng panel\", \"aria-label\": \"St\\u00E4ng panel\", onClick: onClose },\n React.createElement(IconCancel, { block: true })))),\n React.createElement(Body, null, children),\n footer && React.createElement(Footer, null, footer)))));\n};\nexport default Panel;\n","import styled, { css } from 'styled-components';\nimport { size } from '../../layout/helpers';\nimport { ButtonReset } from '../Button/index';\nexport const List = styled.ul `\n list-style: none;\n padding: 0;\n margin: ${size(-1)} 0;\n font-size: 1rem;\n`;\nexport const Header = styled(ButtonReset) `\n display: flex;\n align-items: center;\n width: 100%;\n padding: ${size(3)} 0;\n text-align: left;\n font: inherit;\n`;\nexport const Label = styled.div `\n display: flex;\n align-items: center;\n flex: 1 1 auto;\n`;\nexport const Heading = styled.div `\n line-height: 1;\n`;\nexport const Indicator = styled.div.attrs(() => ({\n className: 'wayke__theme wayke__color--primary-bg',\n})) `\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0 ${size(0.375)};\n margin-left: ${size(0.5)};\n min-width: 1em;\n height: 1em;\n border-radius: 999px;\n z-index: 1;\n`;\nexport const IndicatorValue = styled.div `\n font-family: sans-serif; // Default font to guarantee visibility\n font-size: 0.75rem;\n font-weight: bold;\n`;\nexport const Icon = styled.div `\n position: relative;\n flex-shrink: 0;\n padding-left: ${size(1)};\n transition: color 150ms ease;\n\n :before {\n content: '';\n position: absolute;\n top: ${size(-1)};\n bottom: ${size(-1)};\n left: 0;\n right: ${size(-1)};\n border-radius: 50%;\n background-color: ${(props) => props.theme.color.accent};\n z-index: -1;\n opacity: 0;\n transition: opacity 200ms ease;\n }\n\n ${Header}:hover & {\n :before {\n opacity: 1;\n }\n }\n`;\nexport const Body = styled.div `\n display: none;\n padding-bottom: ${size(3)};\n`;\nexport const Item = styled.li `\n & + & {\n border-top: 1px solid ${(props) => props.theme.color.border};\n }\n\n ${({ isOpen }) => isOpen &&\n css `\n ${Body} {\n display: block;\n }\n\n ${Icon} {\n svg {\n transform: rotate(180deg);\n }\n }\n `}\n`;\n","import React, { useState, useCallback } from 'react';\nimport { List, Item, Header, Label, Heading, Indicator, IndicatorValue, Icon, Body, } from './wrapper';\nimport { IconChevronDown } from '../Icon/index';\nexport const AccordionItem = ({ heading, children, activeCount, isActive }) => {\n const [extend, setExtend] = useState(isActive || false);\n const onToggleExtend = useCallback(() => setExtend(!extend), [extend]);\n return (React.createElement(Item, { isOpen: extend },\n React.createElement(Header, { onClick: onToggleExtend, title: \"Visa mer\" },\n React.createElement(Label, null,\n React.createElement(Heading, { className: activeCount && activeCount > 0 ? 'wayke__theme wayke__font--bold' : '' }, heading),\n activeCount && activeCount > 0 && (React.createElement(Indicator, null,\n React.createElement(IndicatorValue, null, activeCount)))),\n React.createElement(Icon, null,\n React.createElement(IconChevronDown, { block: true }))),\n React.createElement(Body, null, children)));\n};\nconst Accordion = ({ children }) => React.createElement(List, null, children);\nexport default Accordion;\n","import styled from 'styled-components';\nimport { size } from '../../layout/helpers';\nexport const Repeat = styled.div `\n & + & {\n margin-top: ${size(3)};\n }\n`;\nexport const RepeatTiny = styled.div `\n & + & {\n margin-top: ${size(1)};\n }\n`;\nexport const RepeatSmall = styled.div `\n & + & {\n margin-top: ${size(2)};\n }\n`;\n","import styled from 'styled-components';\nimport { size } from '../../layout/helpers';\nimport { ButtonReset } from '../Button/index';\nexport const List = styled.ul.attrs(() => ({\n className: 'wayke__theme wayke__font--regular',\n})) `\n list-style: none;\n padding: 0;\n margin: ${size(-1)} 0;\n font-size: 0.875rem;\n overflow: hidden;\n`;\nexport const Item = styled.li `\n ${List} {\n padding-left: ${size(5)};\n margin: 0;\n }\n`;\nexport const Action = styled(ButtonReset) `\n position: relative;\n display: block;\n width: 100%;\n text-align: left;\n font: inherit;\n padding: ${size(1)} 0;\n\n :before {\n content: '';\n position: absolute;\n left: 0;\n width: ${size(2)};\n height: ${size(2)};\n border-radius: 3px;\n background-color: ${(props) => props.theme.color.accentDark};\n margin-top: 2px; // Magic number\n }\n`;\nexport const ActionIcon = styled.div.attrs(() => ({\n className: 'wayke__theme wayke__color--primary-text',\n})) `\n position: absolute;\n top: ${size(1)};\n left: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n width: ${size(2)};\n height: ${size(2)};\n margin-top: 2px; // Magic number\n font-size: ${size(1.5)};\n`;\nexport const ActionLabel = styled.div `\n padding-left: ${size(3)};\n transition: transform 150ms ease;\n\n ${Action}:hover & {\n transform: translateX(${size(0.5)});\n }\n`;\n","import React from 'react';\nimport { List, Item, Action, ActionIcon, ActionLabel } from './wrapper';\nimport { IconCheck, IconRadio } from '../Icon/index';\nconst ChecklistItem = ({ label, onClick, active, radio }) => (React.createElement(Item, null,\n React.createElement(Action, { onClick: onClick },\n active && React.createElement(ActionIcon, null, radio ? React.createElement(IconRadio, { block: true }) : React.createElement(IconCheck, { block: true })),\n React.createElement(ActionLabel, { className: active ? 'wayke__theme wayke__font--bold wayke__color--primary-text' : '' }, label))));\nconst Checklist = ({ items, radio }) => {\n if (!(items === null || items === void 0 ? void 0 : items.length)) {\n return null;\n }\n return (React.createElement(List, null, items.map((item) => (React.createElement(ChecklistItem, { key: item.label, label: item.label, onClick: item.onClick, active: item.active, radio: radio })))));\n};\nexport default Checklist;\n","import styled from 'styled-components';\nexport const Wrapper = styled.div `\n max-height: 400px;\n overflow: auto;\n -webkit-overflow-scrolling: touch;\n`;\n","import React from 'react';\nimport { Wrapper } from './wrapper';\nconst OverflowBox = ({ children }) => React.createElement(Wrapper, null, children);\nexport default OverflowBox;\n","import React, { useState, useEffect, useCallback } from 'react';\nimport Checklist from '../Checklist/index';\nimport OverflowBox from '../OverflowBox/index';\nimport useSearch from '../../State/Search/useSearch';\nconst ChecklistFacet = ({ facet }) => {\n const { loading, error, onFilterUpdate } = useSearch();\n const [selected, setSelected] = useState();\n useEffect(() => {\n setSelected(undefined);\n }, [facet, error]);\n const onClick = useCallback((f) => {\n if (!loading) {\n setSelected({\n ...selected,\n [f.displayName]: !f.selected,\n });\n onFilterUpdate(f.query);\n }\n }, [loading]);\n return (React.createElement(OverflowBox, null,\n React.createElement(Checklist, { items: facet.filters\n .sort((a, b) => a.displayName.localeCompare(b.displayName))\n .map((f) => ({\n label: f.displayName,\n onClick: () => onClick(f),\n active: (selected === null || selected === void 0 ? void 0 : selected[f.displayName]) !== undefined ? selected[f.displayName] : f.selected,\n })) })));\n};\nexport default ChecklistFacet;\n","import styled, { css } from 'styled-components';\nimport { size } from '../../layout/helpers';\nimport { ButtonReset } from '../Button/index';\nexport const List = styled.ul `\n display: flex;\n flex-wrap: wrap;\n list-style: none;\n padding: 0;\n margin: ${size(-1.5)};\n`;\nexport const Item = styled.li `\n flex: 1 1 auto;\n width: 33.333%;\n max-width: 33.333%;\n padding: ${size(1.5)};\n`;\nexport const Action = styled(ButtonReset) `\n display: flex;\n flex-direction: column;\n align-items: center;\n width: 100%;\n font: inherit;\n\n &[disabled] {\n opacity: 0.4;\n cursor: default;\n }\n`;\nexport const Color = styled.div `\n position: relative;\n width: ${size(3.75)};\n height: ${size(3.75)};\n border-radius: 50%;\n color: ${(props) => props.theme.color.border};\n\n :before {\n content: '';\n position: absolute;\n top: -5px;\n bottom: -5px;\n left: -5px;\n right: -5px;\n border: 2px solid;\n border-radius: 50%;\n display: none;\n }\n\n ${Action}:not([disabled]):hover & {\n :before {\n display: block;\n }\n }\n\n ${({ active }) => active &&\n css `\n :before {\n display: block;\n }\n `}\n\n ${({ boxShadow }) => boxShadow &&\n css `\n box-shadow: 0 0 4px rgba(0, 0, 0, 0.2);\n `}\n`;\nexport const Label = styled.div `\n margin-top: ${size(1.25)};\n font-size: 0.875rem;\n`;\n","import React from 'react';\nimport { List, Item, Action, Color, Label } from './wrapper';\nconst ColorSelectItem = ({ label, hex, onClick, active, disabled, boxShadow }) => {\n return (React.createElement(Item, null,\n React.createElement(Action, { onClick: onClick, disabled: disabled, title: label, \"aria-label\": label },\n React.createElement(Color, { style: {\n backgroundColor: hex.length === 1 ? hex[0] : '',\n backgroundImage: hex.length > 1 ? `linear-gradient(${hex.join()})` : '',\n }, active: active, boxShadow: boxShadow, className: active ? 'wayke__theme wayke__color--primary-text' : '' }),\n React.createElement(Label, { className: active ? 'wayke__theme wayke__color--primary-text wayke__font--bold' : '' }, label))));\n};\nconst ColorSelect = ({ items }) => {\n if (!items) {\n return null;\n }\n return (React.createElement(List, null, items.map((item) => (React.createElement(ColorSelectItem, { key: item.label, label: item.label, hex: item.hex, onClick: item.onClick, active: item.active, disabled: item.disabled, boxShadow: item.boxShadow })))));\n};\nexport default ColorSelect;\n","import { COLOR_WHITE, COLOR_BLACK, COLOR_GRAY, COLOR_SILVER, COLOR_BLUE, COLOR_RED, COLOR_BROWN, COLOR_GREEN, COLOR_ORANGE, COLOR_YELLOW, COLOR_PURPLE, COLOR_BEIGE, } from './constants';\nexport const getHexColorFromDisplayName = (displayName) => {\n switch (displayName) {\n case COLOR_WHITE.displayName:\n return COLOR_WHITE.hex;\n case COLOR_BLACK.displayName:\n return COLOR_BLACK.hex;\n case COLOR_GRAY.displayName:\n return COLOR_GRAY.hex;\n case COLOR_SILVER.displayName:\n return COLOR_SILVER.hex;\n case COLOR_BLUE.displayName:\n return COLOR_BLUE.hex;\n case COLOR_RED.displayName:\n return COLOR_RED.hex;\n case COLOR_BROWN.displayName:\n return COLOR_BROWN.hex;\n case COLOR_GREEN.displayName:\n return COLOR_GREEN.hex;\n case COLOR_ORANGE.displayName:\n return COLOR_ORANGE.hex;\n case COLOR_YELLOW.displayName:\n return COLOR_YELLOW.hex;\n case COLOR_PURPLE.displayName:\n return COLOR_PURPLE.hex;\n case COLOR_BEIGE.displayName:\n return COLOR_BEIGE.hex;\n default:\n return '#fff';\n }\n};\n","import React, { useState, useEffect, useCallback } from 'react';\nimport ColorSelect from '../ColorSelect/index';\nimport useSearch from '../../State/Search/useSearch';\nimport { getHexColorFromDisplayName } from '../../utils/converters';\nconst ColorSelectFacet = ({ facet }) => {\n const { loading, error, onFilterUpdate } = useSearch();\n const [selected, setSelected] = useState();\n useEffect(() => {\n setSelected(undefined);\n }, [facet, error]);\n const onClick = useCallback((f) => {\n if (!loading) {\n setSelected({\n ...selected,\n [f.displayName]: !f.selected,\n });\n onFilterUpdate(f.query);\n }\n }, [loading]);\n return (React.createElement(ColorSelect, { items: facet.filters\n .sort((a, b) => a.displayName.localeCompare(b.displayName))\n .map((f) => ({\n label: f.displayName,\n onClick: () => onClick(f),\n active: (selected === null || selected === void 0 ? void 0 : selected[f.displayName]) !== undefined ? selected[f.displayName] : f.selected,\n hex: [getHexColorFromDisplayName(f.displayName)],\n })) }));\n};\nexport default ColorSelectFacet;\n","import styled from 'styled-components';\nimport { size } from '../../layout/helpers';\nexport const RangeSpan = styled.div `\n display: flex;\n align-items: center;\n margin-top: ${size(1)};\n user-select: none;\n`;\nexport const RangeSpanItem = styled.div `\n font-size: 0.875rem;\n color: ${(props) => props.theme.color.textDarkLighten};\n\n :first-child {\n flex: 1 1 auto;\n }\n\n :last-child {\n flex-shrink: 0;\n }\n`;\nexport const Slider = styled.div `\n padding: 10px 12px;\n`;\nexport const Bar = styled.div `\n position: relative;\n height: 4px;\n\n :before {\n content: '';\n position: absolute;\n top: 0;\n bottom: 0;\n left: -12px;\n right: -12px;\n background-color: ${(props) => props.theme.color.accentDark};\n }\n`;\nexport const Track = styled.div.attrs(() => ({\n className: 'wayke__theme wayke__color--primary-bg',\n})) `\n position: absolute;\n top: 0;\n height: 4px;\n margin-left: -12px;\n margin-right: -12px;\n`;\nexport const Handle = styled.div.attrs(() => ({\n role: 'slider',\n className: 'wayke__theme wayke__color--primary-bg',\n})) `\n position: absolute;\n top: 50%;\n transform-origin: 50% 50%;\n display: block;\n width: 24px;\n height: 24px;\n margin-top: -12px;\n margin-left: -12px;\n border-radius: 50%;\n cursor: move;\n cursor: ew-resize;\n cursor: -webkit-grab;\n cursor: grab;\n transition: transform 150ms ease;\n\n :before {\n content: '';\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n border-radius: 50%;\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);\n opacity: 0;\n transition: opacity 150ms ease;\n }\n\n :active {\n transform: scale(1.3);\n\n :before {\n opacity: 1;\n }\n }\n`;\n","import React from 'react';\nimport { Handle as OwnHandle } from './wrapper';\nexport const Handle = ({ domain: [min, max], handle: { id, value, percent }, getHandleProps, }) => (React.createElement(OwnHandle, { role: \"slider\", \"aria-valuemin\": min, \"aria-valuemax\": max, \"aria-valuenow\": value, style: {\n left: `${percent}%`,\n }, ...getHandleProps(id) }));\n","import React from 'react';\nimport { Track as OwnTrack } from './wrapper';\nexport const Track = ({ source, target, getTrackProps }) => (React.createElement(OwnTrack, { style: {\n left: `${source.percent}%`,\n width: `${target.percent - source.percent}%`,\n }, ...getTrackProps() }));\n","import React, { useState, useCallback, useEffect } from 'react';\nimport { Slider, Rail, Handles, Tracks } from 'react-compound-slider';\nimport { Bar, RangeSpan, RangeSpanItem, Slider as OwnSlider, Track as OwnTrack, Handle as OwnHandle, } from './wrapper';\nimport { Handle } from './handle';\nimport { Track } from './track';\nimport { numberSeparator } from '../../utils/formats';\nconst getSteps = (steps) => {\n let current = Number.MAX_SAFE_INTEGER;\n steps.forEach((step, index) => {\n if (index !== 0) {\n const c = step - steps[index - 1];\n if (c < current) {\n current = c;\n }\n }\n });\n return current;\n};\nconst RangeSlider = ({ loading, values, domain, steps, unit, formatValues, maxPrefix, onChange, }) => {\n const [current, setCurrent] = useState(values);\n const onUpdate = useCallback((nextValues) => {\n if (!isNaN(nextValues[0]) && !isNaN(nextValues[1])) {\n setCurrent(nextValues.slice());\n }\n }, [values]);\n const step = getSteps(steps);\n const currentMin = formatValues ? numberSeparator(current[0]) : current[0];\n const currentMax = formatValues ? numberSeparator(current[1]) : current[1];\n const equal = domain[0] === domain[1];\n const _maxPrefix = maxPrefix && domain[1] === current[1] ? maxPrefix : undefined;\n useEffect(() => {\n if (values[0] !== current[0] || values[1] !== current[1]) {\n setCurrent(values);\n }\n }, [values]);\n return (React.createElement(React.Fragment, null,\n equal ? (React.createElement(OwnSlider, null,\n React.createElement(Bar, null,\n React.createElement(OwnTrack, { style: { left: '0', width: '100%' } }),\n React.createElement(OwnHandle, { role: \"slider\", \"aria-disabled\": true, style: { left: '0' } }),\n React.createElement(OwnHandle, { role: \"slider\", \"aria-disabled\": true, style: { left: '100%' } })))) : (React.createElement(OwnSlider, null,\n React.createElement(Slider, { disabled: loading, mode: 1, step: step, domain: domain, onChange: onChange, onUpdate: onUpdate, values: values, rootStyle: { position: 'relative' } },\n React.createElement(Rail, null, ({ getRailProps }) => React.createElement(Bar, { ...getRailProps() })),\n React.createElement(Handles, null, ({ handles, getHandleProps }) => (React.createElement(\"div\", { className: \"slider-handles\" }, handles.map((handle) => (React.createElement(Handle, { key: handle.id, handle: handle, domain: domain, getHandleProps: getHandleProps })))))),\n React.createElement(Tracks, { left: false, right: false }, ({ tracks, getTrackProps }) => (React.createElement(\"div\", { className: \"slider-tracks\" }, tracks.map(({ id, source, target }) => (React.createElement(Track, { key: id, source: source, target: target, getTrackProps: getTrackProps }))))))))),\n React.createElement(RangeSpan, null,\n React.createElement(RangeSpanItem, null, `${currentMin}${unit ? ` ${unit}` : ''}`),\n React.createElement(RangeSpanItem, null, `${currentMax}${_maxPrefix ? _maxPrefix : ''}${unit ? ` ${unit}` : ''}`))));\n};\nexport default RangeSlider;\n","import React, { useCallback, useState, useEffect } from 'react';\nimport RangeSlider from '../RangeSlider/index';\nimport useSearch from '../../State/Search/useSearch';\nconst getInitialValues = (domain, facet, searchParams) => {\n const facetMin = domain[0]; //parseInt(facet.filters[0].displayName, 10);\n const _queryMin = (searchParams === null || searchParams === void 0 ? void 0 : searchParams.get(`${facet.id}.min`)) || null;\n const facetMax = domain[domain.length - 1]; //parseInt(facet.filters[facet.filters.length - 1].displayName, 10);\n const _queryMax = (searchParams === null || searchParams === void 0 ? void 0 : searchParams.get(`${facet.id}.max`)) || null;\n const queryMin = parseInt(_queryMin === null ? `${facetMin}` : _queryMin, 10);\n const min = facetMin > queryMin ? facetMin : queryMin;\n const queryMax = parseInt(_queryMax === null ? `${facetMax}` : _queryMax, 10);\n const max = queryMax > facetMax ? facetMin : queryMax;\n return min || max ? [min ? min : domain[0], max ? max : domain[1]] : domain;\n};\nconst averageDelta = ([x, ...xs]) => {\n if (x === undefined)\n return NaN;\n return xs.reduce(([acc, last], x) => [acc + (x - last), x], [0, x])[0] / xs.length;\n};\nconst getSteps = (initialAllValues) => {\n const delta = averageDelta(initialAllValues);\n const max = Math.floor(initialAllValues[initialAllValues.length - 1] * 1000) / 1000;\n if (delta > 1000)\n return new Array(max / 1000 + 1).fill('').map((x, i) => i * 1000);\n if (delta <= 1000 && delta >= 500)\n return new Array(max / 500 + 1).fill('').map((x, i) => i * 500);\n return initialAllValues;\n};\nconst RangeFacet = ({ facet, unit, formatValues }) => {\n var _a, _b, _c;\n const { loading, queryFilter, initialFacets, onFilterUpdate } = useSearch();\n const initialFacet = initialFacets === null || initialFacets === void 0 ? void 0 : initialFacets.find((x) => x.id === facet.id);\n const maxPrefix = (_b = (_a = initialFacet === null || initialFacet === void 0 ? void 0 : initialFacet.filters[(initialFacet === null || initialFacet === void 0 ? void 0 : initialFacet.filters.length) - 1]) === null || _a === void 0 ? void 0 : _a.displayName) === null || _b === void 0 ? void 0 : _b.includes('+');\n const [state, setValues] = useState(undefined);\n useEffect(() => {\n const _initialAllValues = (initialFacet === null || initialFacet === void 0 ? void 0 : initialFacet.filters.map((f) => parseInt(f.displayName.replace(/[\\<\\>+-]+/g, ''), 10))) || [1, 2];\n const _steps = getSteps(_initialAllValues);\n const domain = [_steps[0], _steps[_steps.length - 1]];\n setValues({\n id: initialFacet === null || initialFacet === void 0 ? void 0 : initialFacet.id,\n steps: _steps,\n domain: [_steps[0], _steps[_steps.length - 1]],\n values: (initialFacet === null || initialFacet === void 0 ? void 0 : initialFacet.filters.length)\n ? getInitialValues(domain, initialFacet, queryFilter.searchParams)\n : [0, 0],\n });\n }, [initialFacet === null || initialFacet === void 0 ? void 0 : initialFacet.id]);\n useEffect(() => {\n var _a, _b;\n if (state === null || state === void 0 ? void 0 : state.id) {\n const init = (initialFacet === null || initialFacet === void 0 ? void 0 : initialFacet.filters.length)\n ? getInitialValues(state.domain, initialFacet, queryFilter.searchParams)\n : [0, 0];\n const minStr = (_a = queryFilter.searchParams) === null || _a === void 0 ? void 0 : _a.get(`${facet.id}.min`);\n const maxStr = (_b = queryFilter.searchParams) === null || _b === void 0 ? void 0 : _b.get(`${facet.id}.max`);\n const min = minStr ? parseFloat(minStr) : init[0];\n const max = maxStr ? parseFloat(maxStr) : init[1];\n if (min !== state.values[0] || max !== state.values[1]) {\n onChange([min, max]);\n }\n }\n }, [(_c = queryFilter.searchParams) === null || _c === void 0 ? void 0 : _c.toString()]);\n const onChange = useCallback((nextValues) => {\n if (state === null || state === void 0 ? void 0 : state.id) {\n if (state.values[0] !== nextValues[0] || state.values[1] !== nextValues[1]) {\n setValues({ ...state, values: nextValues.slice() });\n const query = new URLSearchParams(queryFilter.searchParams);\n query.set('hits', '30');\n query.delete(`${facet.id}.min`);\n query.delete(`${facet.id}.max`);\n if (nextValues[0] !== state.domain[0]) {\n query.set(`${facet.id}.min`, `${nextValues[0]}`);\n }\n if (nextValues[1] !== state.domain[1]) {\n query.set(`${facet.id}.max`, `${nextValues[1]}`);\n }\n query.sort();\n onFilterUpdate(query.toString());\n }\n }\n }, [queryFilter.searchParams, state]);\n return (React.createElement(React.Fragment, null, state && (React.createElement(RangeSlider, { loading: loading, domain: state.domain, values: state.values, maxPrefix: maxPrefix ? '+' : undefined, steps: state.steps, unit: unit, onChange: onChange, formatValues: formatValues }))));\n};\nexport default RangeFacet;\n","import React from 'react';\nimport CheckListFacet from './checkListFacet';\nimport ColorSelectFacet from './colorFacet';\nimport RangeFacet from './rangeFacet';\nimport { MANUFACTURER, MODEL_SERIES, FUEL_TYPE, GEARBOX_TYPE, ENVIRONMENT_CLASS, SEGMENT, DRIVING_WHEEL, COLOR, PRICE, BRANCH, MILEAGE, MODEL_YEAR, LEASING_PRICE, } from '../../utils/constants';\nconst FacetSelector = ({ facet }) => {\n switch (facet.id) {\n case MANUFACTURER:\n case MODEL_SERIES:\n case FUEL_TYPE:\n case GEARBOX_TYPE:\n case BRANCH:\n case ENVIRONMENT_CLASS:\n case SEGMENT:\n case DRIVING_WHEEL:\n return React.createElement(CheckListFacet, { facet: facet });\n case COLOR:\n return React.createElement(ColorSelectFacet, { facet: facet });\n case PRICE:\n return React.createElement(RangeFacet, { facet: facet, unit: \"kr\", formatValues: true });\n case LEASING_PRICE:\n return React.createElement(RangeFacet, { facet: facet, unit: \"kr/m\\u00E5n\", formatValues: true });\n case MILEAGE:\n return React.createElement(RangeFacet, { facet: facet, unit: \"mil\", formatValues: true });\n case MODEL_YEAR:\n return React.createElement(RangeFacet, { facet: facet, unit: \"\\u00E5r\" });\n default:\n return null;\n }\n};\nexport default FacetSelector;\n","import React, { useCallback } from 'react';\nimport Panel from '../Panel/index';\nimport { FooterAction, FooterActionItem } from '../Panel/wrapper';\nimport { ButtonSecondary, ButtonContent, ButtonPrimary } from '../Button/index';\nimport Accordion, { AccordionItem } from '../Accordion/index';\nimport { Repeat } from '../Repeat/index';\nimport FacetSelector from './faceSelector';\nconst FilterPanel = ({ facet, filteredFacets, numberOfHits, loading, onFilterUpdate, onClose, }) => {\n const onClearFilters = useCallback(() => onFilterUpdate(''), []);\n return (React.createElement(Panel, { title: \"Filtrera\", onClose: onClose, footer: React.createElement(React.Fragment, null,\n React.createElement(FooterAction, null,\n React.createElement(FooterActionItem, null,\n React.createElement(ButtonSecondary, { fullWidth: true, disabled: loading, onClick: onClearFilters },\n React.createElement(ButtonContent, null, \"Rensa alla\"))),\n React.createElement(FooterActionItem, null,\n React.createElement(ButtonPrimary, { fullWidth: true, disabled: loading, onClick: onClose },\n React.createElement(ButtonContent, null, `Visa ${numberOfHits} ${numberOfHits === 1 ? 'bil' : 'bilar'}`))))) },\n React.createElement(Accordion, null, filteredFacets\n .filter((x) => x.filters.length)\n .map((f) => (React.createElement(AccordionItem, { key: f.displayName, heading: f.displayName, isActive: f.id === (facet === null || facet === void 0 ? void 0 : facet.id) },\n React.createElement(Repeat, null,\n React.createElement(FacetSelector, { facet: f }))))))));\n};\nexport default FilterPanel;\n","import React, { useState, useCallback } from 'react';\nimport { List, Item, Action, Label, Indicator, IndicatorValue } from './wrapper';\nimport { FacetIdToTitle } from '../../utils/formats';\nimport { PRICE, MILEAGE, MODEL_YEAR } from '../../utils/constants';\nimport useSearch from '../../State/Search/useSearch';\nimport FilterPanel from '../FilterPanel/index';\nconst isSelected = (f, searchParams) => {\n switch (f.id) {\n case PRICE:\n case MILEAGE:\n case MODEL_YEAR:\n return searchParams.has(`${f.id}.min`) || searchParams.has(`${f.id}.max`) ? 1 : 0;\n default:\n return f.filters.filter((filter) => filter.selected).length;\n }\n};\nconst Filter = ({ filterList }) => {\n var _a;\n const { queryFilter, initialFacets, loading, response, onFilterUpdate } = useSearch();\n const facets = response === null || response === void 0 ? void 0 : response.facets;\n const [facet, setFacet] = useState();\n const onSelectFacet = useCallback((nextFacet) => setFacet(nextFacet), []);\n const onClose = useCallback(() => setFacet(undefined), []);\n if (!facets) {\n return null;\n }\n const filterNames = filterList ? filterList.map((x) => x.filterName) : undefined;\n const filteredFacets = (_a = facets === null || facets === void 0 ? void 0 : facets.filter((x) => x.id !== 'segment')) === null || _a === void 0 ? void 0 : _a.filter((f) => (filterNames ? filterNames.includes(f.id) : true)).sort((a, b) => filterNames\n ? filterNames.indexOf(a.id) -\n filterNames.indexOf(b.id)\n : 0).map((x) => {\n const match = filterList === null || filterList === void 0 ? void 0 : filterList.find((y) => y.filterName === x.id);\n if (match === null || match === void 0 ? void 0 : match.displayName) {\n return {\n ...x,\n displayName: match.displayName,\n };\n }\n return {\n ...x,\n displayName: FacetIdToTitle(x.id),\n };\n });\n return (React.createElement(React.Fragment, null,\n initialFacets && facet && (React.createElement(FilterPanel, { filterList: filterList, facet: facet, loading: loading, filteredFacets: filteredFacets, numberOfHits: (response === null || response === void 0 ? void 0 : response.documentList.numberOfHits) || 0, onFilterUpdate: onFilterUpdate, onClose: onClose })),\n React.createElement(List, null, filteredFacets\n .filter((x) => x.filters.length)\n .map((f) => {\n const selected = isSelected(f, queryFilter.searchParams);\n return (React.createElement(Item, { key: f.id },\n React.createElement(Action, { onClick: () => onSelectFacet(f), title: f.displayName, \"aria-label\": f.displayName, className: selected > 0\n ? 'wayke__theme wayke__color--primary-bg wayke__font--bold'\n : 'wayke__theme wayke__font--regular' },\n React.createElement(Label, null, f.displayName),\n selected > 0 && (React.createElement(Indicator, null,\n React.createElement(IndicatorValue, null, selected))))));\n }))));\n};\nexport default Filter;\n","import styled from 'styled-components';\nimport { size } from '../../layout/helpers';\nexport const Wrapper = styled.div ``;\nexport const List = styled.ul `\n display: flex;\n flex-wrap: wrap;\n list-style: none;\n padding: 0;\n margin: ${size(-2)} ${size(-1)};\n`;\nexport const Item = styled.li `\n flex: 1 1 auto;\n width: 100%;\n max-width: 100%;\n padding: ${size(2)} ${size(1)};\n\n ${(props) => props.theme.breakpoint.Sm} {\n width: 50%;\n max-width: 50%;\n }\n\n ${(props) => props.theme.breakpoint.Md} {\n width: 33.333%;\n max-width: 33.333%;\n }\n`;\n","import styled from 'styled-components';\nimport { size } from '../../layout/helpers';\nexport const Wrapper = styled.article `\n position: relative;\n height: 100%;\n display: flex;\n flex-direction: column;\n transform-origin: 50% 50%;\n transition: transform 150ms ease;\n\n :active {\n transform: scale(0.98);\n }\n`;\nexport const Image = styled.div `\n flex-shrink: 0;\n position: relative;\n height: 0;\n padding-bottom: 66.666%;\n background-color: ${(props) => props.theme.color.accentDark};\n border-radius: 3px;\n\n :before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);\n border-radius: 3px;\n opacity: 0;\n transition: opacity 200ms ease;\n }\n\n ${Wrapper}:hover & {\n :before {\n opacity: 1;\n }\n }\n`;\nexport const Picture = styled.picture ``;\nexport const Source = styled.source ``;\nexport const Img = styled.img `\n position: absolute;\n width: 100%;\n height: 100%;\n object-fit: cover;\n top: auto;\n left: auto;\n border-radius: 3px;\n`;\nexport const Content = styled.div `\n flex: 1 1 auto;\n display: flex;\n flex-direction: column;\n margin-top: ${size(2)};\n`;\nexport const ContentBody = styled.div ``;\nexport const ContentFooter = styled.div `\n margin-top: auto;\n padding-top: ${size(1)};\n`;\nexport const Heading = styled.h1.attrs(() => ({\n className: 'wayke__theme wayke__font--bold',\n})) `\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n font-weight: 400;\n margin: 0;\n font-size: 1rem;\n`;\nexport const Link = styled.a `\n display: block;\n color: inherit;\n text-decoration: none;\n -webkit-tap-highlight-color: rgba(255, 255, 255, 0);\n\n :before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n }\n\n :focus {\n text-decoration: underline;\n }\n`;\nexport const Description = styled.div `\n font-size: 0.875rem;\n display: -webkit-box;\n -webkit-line-clamp: 3;\n -webkit-box-orient: vertical;\n overflow: hidden;\n margin-top: ${size(0.25)};\n`;\nexport const Usp = styled.div `\n margin-top: ${size(1)};\n`;\nexport const Price = styled.div `\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n width: 100%;\n`;\nexport const CurrentPrice = styled.div.attrs(() => ({\n className: 'wayke__theme wayke__color--primary-text wayke__font--bold',\n})) `\n font-size: 1rem;\n margin-right: ${size(1)};\n`;\nexport const PriceCell = styled.div `\n flex: 1 1 auto;\n padding-right: ${size(1)};\n`;\nexport const OldPrice = styled.div `\n text-decoration: line-through;\n color: ${(props) => props.theme.color.textDarkLighten};\n font-size: 0.875rem;\n`;\nexport const Label = styled.label `\n color: ${(props) => props.theme.color.disabledText};\n font-size: 0.875rem;\n`;\n","import styled, { css } from 'styled-components';\nimport { size } from '../../layout/helpers';\nimport { ButtonReset } from '../Button/index';\nexport const Item = styled.li `\n padding: ${size(0.5)};\n`;\nexport const Box = styled.div `\n display: flex;\n align-items: center;\n background-color: ${(props) => props.theme.color.accentDark};\n padding: ${size(1)} ${size(1.5)};\n border-radius: 3px;\n font-size: 0.875rem;\n overflow-wrap: break-word;\n hyphens: auto;\n`;\nexport const ItemSection = styled.div `\n & + & {\n margin-left: ${size(1)};\n }\n`;\nexport const Action = styled(ButtonReset).attrs(() => ({\n className: 'wayke__theme wayke__color--primary-text',\n})) `\n position: relative;\n display: block;\n transform-origin: 50% 50%;\n transition: transform 300ms cubic-bezier(0.47, 1.64, 0.41, 0.8);\n\n :before {\n content: '';\n position: absolute;\n top: ${size(-0.5)};\n bottom: ${size(-0.5)};\n left: ${size(-0.5)};\n right: ${size(-0.5)};\n background-color: ${(props) => props.theme.color.accent};\n border-radius: 50%;\n opacity: 0;\n transition: opacity 200ms ease;\n }\n\n > * {\n position: relative;\n z-index: 1;\n }\n\n :hover {\n :before {\n opacity: 1;\n }\n }\n\n :active {\n transform: scale(0.95);\n }\n`;\nexport const List = styled.ul `\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n list-style: none;\n padding: 0;\n margin: ${size(-0.5)};\n\n ${({ isSmall }) => isSmall &&\n css `\n margin: ${size(-0.25)};\n\n ${Item} {\n padding: ${size(0.25)};\n }\n\n ${Box} {\n padding: ${size(0.5)} ${size(1)};\n font-size: 0.75rem;\n }\n\n ${ItemSection} {\n & + & {\n margin-left: ${size(0.5)};\n }\n }\n `}\n`;\n","import React from 'react';\nimport { List, Item, Box, ItemSection, Action } from './wrapper';\nimport { IconInfo } from '../Icon/index';\nconst UspItem = ({ title, onClick }) => {\n return (React.createElement(Item, null,\n React.createElement(Box, null,\n React.createElement(ItemSection, null, title),\n onClick && (React.createElement(ItemSection, null,\n React.createElement(Action, { onClick: onClick },\n React.createElement(IconInfo, { block: true })))))));\n};\nconst UspList = ({ items, small }) => {\n if (!items) {\n return null;\n }\n return (React.createElement(List, { isSmall: small }, items.map((item, index) => (React.createElement(UspItem, { key: `${item.title}-${index}`, title: item.title, onClick: item.onClick })))));\n};\nexport default UspList;\n","import { createContext } from 'react';\nexport const PathContext = createContext(undefined);\n","import { useContext } from 'react';\nimport { PathContext } from './PathContext';\nconst usePath = () => {\n const context = useContext(PathContext);\n if (!context) {\n throw new Error('usePath must be used within a PathProvider');\n }\n return context;\n};\nexport default usePath;\n","import React, { useCallback, useMemo } from 'react';\nimport LazyLoad from 'react-lazyload';\nimport { Wrapper, Image, Picture, Source, Img, Content, ContentBody, ContentFooter, Heading, Link, Description, Usp, Price, CurrentPrice, OldPrice, PriceCell, Label, } from './wrapper';\nimport UspList from '../UspList/index';\nimport { DEFAULT_PLACEHOLDER_IMAGE } from '../../utils/constants';\nimport usePath from '../../State/Path/usePath';\nconst ProductCard = ({ id, title, href, image, pathRoute, placeholderImage, description, uspList, price, oldPrice, leasingPrice, onClick, }) => {\n const { pushState } = usePath();\n const _onClick = useMemo(() => (onClick ? () => onClick(id) : undefined), [id]);\n const onHrefClick = useCallback((e) => {\n if (!!pathRoute && href) {\n e.preventDefault();\n pushState(href);\n }\n }, [id, pathRoute, href]);\n return (React.createElement(Wrapper, { onClick: _onClick },\n React.createElement(Image, null,\n React.createElement(LazyLoad, null, image ? (React.createElement(React.Fragment, null,\n React.createElement(Picture, null,\n React.createElement(Source, { type: \"image/webp\", srcSet: `${image}?spec=822x548&format=webp 822w, ${image}?spec=750x500&format=webp 750w, ${image}?spec=411x274&format=webp 411w`, sizes: \"(min-width: 600px) calc(((100vw - 48px) / 2) - 8px), (min-width: 900px) calc(((100vw - 48px) / 3) - 10.666px), (min-width: 1312px) 410px, calc(100vw - 32px)\" }),\n React.createElement(Img, { srcSet: `${image}?spec=822x548 822w, ${image}?spec=750x500 750w, ${image}?spec=411x274 411w`, sizes: \"(min-width: 600px) calc(((100vw - 48px) / 2) - 8px), (min-width: 900px) calc(((100vw - 48px) / 3) - 10.666px), (min-width: 1312px) 410px, calc(100vw - 32px)\", src: `${image}?spec=411x274`, alt: title })))) : (React.createElement(Picture, null,\n React.createElement(Img, { src: placeholderImage || DEFAULT_PLACEHOLDER_IMAGE }))))),\n React.createElement(Content, null,\n React.createElement(ContentBody, null,\n React.createElement(Heading, null, href ? (React.createElement(Link, { onClick: onHrefClick, href: href, title: title, \"aria-label\": title }, title)) : (title)),\n description && React.createElement(Description, null, description),\n uspList && (React.createElement(Usp, null,\n React.createElement(UspList, { small: true, items: uspList })))),\n React.createElement(ContentFooter, null,\n React.createElement(Price, null,\n React.createElement(PriceCell, null,\n oldPrice ? React.createElement(OldPrice, null, oldPrice) : React.createElement(Label, null, \"Pris\"),\n React.createElement(CurrentPrice, null, price)),\n leasingPrice && (React.createElement(PriceCell, null,\n React.createElement(Label, null, \"Leasingpris\"),\n React.createElement(CurrentPrice, null, leasingPrice))))))));\n};\nexport default ProductCard;\n","import React from 'react';\nimport { Wrapper, List, Item } from './wrapper';\nimport ProductCard from '../ProductCard/index';\nimport { numberSeparator } from '../../utils/formats';\nconst resolveImage = (document) => {\n var _a, _b, _c;\n const img = (_c = (_b = (_a = document.featuredImage) === null || _a === void 0 ? void 0 : _a.files) === null || _b === void 0 ? void 0 : _b[0]) === null || _c === void 0 ? void 0 : _c.url;\n if (img) {\n return `${img}?w=567&q=72`;\n }\n return undefined;\n};\nconst Grid = ({ documents, placeholderImage, hashRoute, pathRoute, onClickItem }) => {\n if (!documents) {\n return null;\n }\n return (React.createElement(Wrapper, null,\n React.createElement(List, null, documents.map((document) => {\n const _path = pathRoute === null || pathRoute === void 0 ? void 0 : pathRoute.replace(/^\\/|\\/$/g, '');\n const prefix = _path ? `/${_path}/` : '/';\n const pathRouteUrl = window.location.pathname === '/'\n ? `${prefix}${document._id}`\n : `${window.location.pathname}${prefix}${document._id}`;\n return (React.createElement(Item, { key: document._id },\n React.createElement(ProductCard, { id: document._id, onClick: onClickItem, title: document.title, pathRoute: pathRoute, href: pathRoute ? pathRouteUrl : hashRoute ? `#${document._id}` : undefined, image: resolveImage(document), placeholderImage: placeholderImage, description: document.shortDescription, uspList: [\n {\n title: document.modelYear,\n },\n {\n title: `${numberSeparator(document.mileage)} mil`,\n },\n {\n title: document.gearboxType,\n },\n {\n title: document.fuelType,\n },\n ], price: `${numberSeparator(document.price)} kr`, leasingPrice: document.leasingPrice !== undefined\n ? `${numberSeparator(document.leasingPrice)} kr`\n : undefined, oldPrice: document.oldPrice !== undefined && document.price < document.oldPrice\n ? `${numberSeparator(document.oldPrice)} kr`\n : undefined })));\n }))));\n};\nexport default Grid;\n","import styled from 'styled-components';\nimport { size } from '../../layout/helpers';\nimport { ButtonReset } from '../Button/index';\nexport const Wrapper = styled.div `\n display: flex;\n align-items: center;\n`;\nexport const Query = styled.div.attrs(() => ({\n className: 'wayke__theme wayke__font--bold',\n})) `\n font-size: 2.25rem;\n min-width: 0;\n overflow-wrap: break-word;\n hyphens: auto;\n\n :before,\n :after {\n content: '\"';\n }\n`;\nexport const Clear = styled(ButtonReset) `\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n width: ${size(2)};\n height: ${size(2)};\n border-radius: 50%;\n background-color: ${(props) => props.theme.color.accentDark};\n margin-left: ${size(1)};\n font-size: ${size(1)};\n transform-origin: 50% 50%;\n transition: transform 150ms ease;\n\n :before {\n content: '';\n position: absolute;\n top: ${size(-1)};\n bottom: ${size(-1)};\n left: ${size(-1)};\n right: ${size(-1)};\n border-radius: 50%;\n }\n\n :after {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: ${(props) => props.theme.color.hoverOverlay};\n border-radius: 50%;\n opacity: 0;\n transition: opacity 150ms ease;\n }\n\n :hover {\n :after {\n opacity: 1;\n }\n }\n\n :active {\n transform: scale(0.95);\n }\n`;\n","import React from 'react';\nimport { Wrapper, Query, Clear } from './wrapper';\nimport { IconCancel } from '../Icon/index';\nconst SearchTerm = ({ children, onClear, clearTitle }) => (React.createElement(Wrapper, null,\n React.createElement(Query, null, children),\n onClear && (React.createElement(Clear, { onClick: onClear, title: clearTitle ? clearTitle : 'Rensa fritext' },\n React.createElement(IconCancel, { block: true })))));\nexport default SearchTerm;\n","import styled from 'styled-components';\nimport { size } from '../../layout/helpers';\nimport { ButtonReset } from '../Button/index';\nexport const Wrapper = styled.div.attrs(() => ({\n role: 'search',\n})) `\n display: flex;\n align-items: stretch;\n border-radius: 3px;\n`;\nexport const Label = styled.label `\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n`;\nexport const Search = styled.div `\n flex: 1 1 auto;\n position: relative;\n display: flex;\n align-items: stretch;\n background-color: ${(props) => props.theme.color.accentDark};\n border-top-left-radius: 3px;\n border-bottom-left-radius: 3px;\n`;\nexport const Action = styled.div `\n flex-shrink: 0;\n`;\nexport const ActionBtn = styled(ButtonReset).attrs(() => ({\n className: 'wayke__theme wayke__color--primary-bg',\n})) `\n display: flex;\n align-items: center;\n justify-content: center;\n width: ${(props) => props.theme.distances.inputHeight};\n height: ${(props) => props.theme.distances.inputHeight};\n border-top-right-radius: 3px;\n border-bottom-right-radius: 3px;\n font-size: 1rem;\n`;\nexport const Input = styled.input.attrs(() => ({\n type: 'search',\n className: 'wayke__theme wayke__font--regular',\n})) `\n flex: 1 1 auto;\n display: block;\n width: 100%;\n height: ${(props) => props.theme.distances.inputHeight};\n padding: 0 ${size(2)};\n background-color: transparent;\n font-size: 16px;\n border: none;\n border-radius: 0;\n box-shadow: none;\n -moz-appearance: none;\n -webkit-appearance: none;\n\n :focus {\n outline: none;\n }\n\n &::-webkit-input-placeholder {\n font-family: inherit;\n color: ${(props) => props.theme.color.textDarkLighten};\n font-size: 1em;\n }\n\n &:-moz-placeholder {\n font-family: inherit;\n color: ${(props) => props.theme.color.textDarkLighten};\n font-size: 1em;\n }\n\n &::-moz-placeholder {\n font-family: inherit;\n color: ${(props) => props.theme.color.textDarkLighten};\n font-size: 1em;\n }\n\n &:-ms-input-placeholder {\n font-family: inherit;\n color: ${(props) => props.theme.color.textDarkLighten};\n font-size: 1em;\n }\n`;\n","import React from 'react';\nimport { Wrapper, Search, Action, ActionBtn, Input, Label } from './wrapper';\nimport { IconSearch } from '../Icon/index';\nconst InputSearch = React.forwardRef(({ placeholder, label, value, id, onSearch, onChange, onKeyDown }, ref) => (React.createElement(Wrapper, { ref: ref },\n React.createElement(Label, { htmlFor: id }, label),\n React.createElement(Search, null,\n React.createElement(Input, { placeholder: placeholder, name: \"search\", value: value, id: id, onChange: onChange, onKeyDown: onKeyDown })),\n React.createElement(Action, null,\n React.createElement(ActionBtn, { onClick: onSearch, title: `Genomför ${label}`, \"aria-label\": `Genomför ${label}` },\n React.createElement(IconSearch, { block: true }))))));\nInputSearch.displayName = 'InputSearch';\nexport default InputSearch;\n","import { useEffect } from 'react';\nconst useOutsideClick = (ref, callback) => {\n const handleClick = (e) => {\n if (ref.current && e.target && !ref.current.contains(e.target)) {\n callback();\n }\n };\n useEffect(() => {\n document.addEventListener('click', handleClick);\n return () => {\n document.removeEventListener('click', handleClick);\n };\n });\n};\nexport default useOutsideClick;\n","import React, { useCallback, useRef } from 'react';\nimport InputSearch from '../InputSearch/index';\nimport useOutsideClick from '../../hooks/useOutsideClick';\nconst SearchBar = ({ value, setValue, onSearch }) => {\n const ref = useRef(null);\n const onChange = useCallback((e) => setValue(e.currentTarget.value), []);\n useOutsideClick(ref, () => setValue(''));\n const _onSearch = useCallback(() => {\n onSearch(value);\n }, [value]);\n const onKeyDown = useCallback((e) => {\n if (e.keyCode === 13) {\n _onSearch();\n }\n }, [value, _onSearch]);\n return (React.createElement(InputSearch, { ref: ref, value: value, onChange: onChange, onKeyDown: onKeyDown, onSearch: _onSearch, placeholder: \"S\\u00F6k\", label: \"S\\u00F6k\", id: \"main-search\" }));\n};\nexport default SearchBar;\n","import React, { useCallback, useState } from 'react';\nimport useSearch from '../../State/Search/useSearch';\nimport SearchBar from '../SearchBar/index';\nconst SearchFilter = () => {\n const [value, setValue] = useState('');\n const { queryFilter, onFilterUpdate } = useSearch();\n const onSearch = useCallback((value) => {\n const nextQuery = new URLSearchParams(queryFilter.searchParams);\n if (value === nextQuery.get('query')) {\n return;\n }\n if (value) {\n nextQuery.set('query', value);\n }\n else {\n nextQuery.delete('qquery');\n }\n onFilterUpdate(nextQuery.toString());\n setValue('');\n }, [queryFilter]);\n return React.createElement(SearchBar, { value: value, setValue: setValue, onSearch: onSearch });\n};\nexport default SearchFilter;\n","import styled from 'styled-components';\nimport { size } from '../../layout/helpers';\nimport theme from '../../layout/theme';\nconst getSnackbarBg = (severity) => {\n let bg = theme.color.accent;\n if (severity === 'error') {\n bg = theme.color.ui.negativeLight;\n }\n else if (severity === 'warning') {\n bg = theme.color.ui.neutralLight;\n }\n else if (severity === 'info') {\n bg = theme.color.ui.infoLight;\n }\n else if (severity === 'success') {\n bg = theme.color.ui.positiveLight;\n }\n return bg;\n};\nexport const Wrapper = styled.div.attrs(() => ({\n role: 'alert',\n})) `\n display: flex;\n align-items: center;\n padding: ${size(1.5)} ${size(2)};\n background-color: ${(props) => getSnackbarBg(props.severity)};\n color: ${(props) => props.theme.color.textDark};\n border-radius: 3px;\n`;\nexport const Icon = styled.div `\n flex-shrink: 0;\n padding-right: ${size(2)};\n font-size: ${size(3)};\n\n > svg {\n display: block;\n }\n`;\nexport const Content = styled.div `\n flex: 1 1 auto;\n font-size: 1rem;\n`;\nexport const Heading = styled.div `\n font-weight: 700;\n`;\nexport const Message = styled.div `\n > * {\n &:first-child {\n margin-top: 0;\n }\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n`;\n","import React from 'react';\nimport { Wrapper, Icon, Content, Heading, Message } from './wrapper';\nimport { IconCheck, IconInfo, IconExclamationCircle, IconExclamationTriangle } from '../Icon/index';\nconst Snackbar = ({ severity, icon, heading, children }) => {\n let iconSelector = React.createElement(IconInfo, { block: true });\n if (severity === 'error') {\n iconSelector = React.createElement(IconExclamationCircle, { block: true });\n }\n else if (severity === 'warning') {\n iconSelector = React.createElement(IconExclamationTriangle, { block: true });\n }\n else if (severity === 'success') {\n iconSelector = React.createElement(IconCheck, { block: true });\n }\n return (React.createElement(Wrapper, { severity: severity },\n icon && React.createElement(Icon, null, iconSelector),\n React.createElement(Content, null,\n heading && React.createElement(Heading, null, heading),\n React.createElement(Message, null, children))));\n};\nexport default Snackbar;\n","class PubSub {\n}\nPubSub.events = {\n HashRouteChange: [],\n ItemClicked: [],\n EcomOnInit: [],\n EcomOnUserEvent: [],\n EcomOnExit: [],\n ImagesClick: [],\n OptionsClick: [],\n PhonenumberVisible: [],\n PhonenumberCall: [],\n MailVisible: [],\n InsuranceInterest: [],\n FinanceInterest: [],\n All: [],\n};\nPubSub.actions = {\n onFilterUpdate: [],\n All: [],\n};\nPubSub.subscribeAction = (event) => PubSub.actions[event.actionName].push(event);\nPubSub.unsubscribeAction = (event) => {\n if (PubSub.actions[event.actionName]) {\n for (let i = 0; i < PubSub.actions[event.actionName].length; i++) {\n if (PubSub.actions[event.actionName][i] === event) {\n PubSub.actions[event.actionName].splice(i, 1);\n break;\n }\n }\n }\n};\nPubSub.publishAction = (eventName, ...args) => {\n if (PubSub.actions.All) {\n PubSub.events.All.forEach((event) => event.callback(eventName, args));\n }\n if (PubSub.actions[eventName]) {\n PubSub.actions[eventName].forEach((event) => {\n switch (eventName) {\n case 'onFilterUpdate':\n event.callback(args[0]);\n break;\n default:\n break;\n }\n });\n }\n};\nPubSub.subscribe = (event) => PubSub.events[event.eventName].push(event);\nPubSub.unsubscribe = (event) => {\n if (PubSub.events[event.eventName]) {\n for (let i = 0; i < PubSub.events[event.eventName].length; i++) {\n if (PubSub.events[event.eventName][i] === event) {\n PubSub.events[event.eventName].splice(i, 1);\n break;\n }\n }\n }\n};\nPubSub.publish = (eventName, ...args) => {\n if (PubSub.events.All) {\n PubSub.events.All.forEach((event) => event.callback(eventName, args));\n }\n if (PubSub.events[eventName]) {\n PubSub.events[eventName].forEach((event) => {\n switch (eventName) {\n case 'HashRouteChange':\n event.callback(args[0]);\n break;\n case 'ItemClicked':\n event.callback(args[0]);\n break;\n case 'EcomOnUserEvent':\n event.callback(args[0], args[1]);\n break;\n case 'EcomOnInit':\n case 'EcomOnExit':\n case 'ImagesClick':\n case 'OptionsClick':\n case 'PhonenumberVisible':\n case 'PhonenumberCall':\n case 'MailVisible':\n case 'InsuranceInterest':\n case 'FinanceInterest':\n event.callback();\n break;\n default:\n break;\n }\n });\n }\n};\nexport default PubSub;\n","import React, { useEffect, useCallback, useMemo } from 'react';\nimport Container from '../../components/Container/index';\nimport { Page, PageSection } from '../../components/Page/index';\nimport Result from '../../components/Result/index';\nimport Filter from '../../components/Filter/index';\nimport Grid from '../../components/Grid/index';\nimport SearchTerm from '../../components/SearchTerm/index';\nimport { PortalElement, PortalNamespace } from '../../components/Portal/index';\nimport SearchFilter from '../../components/SearchFilter/index';\nimport Snackbar from '../../components/Snackbar/index';\nimport useSearch from '../../State/Search/useSearch';\nimport PubSub from '../../utils/pubsub/pubsub';\nconst WaykeSearch = ({ filterList, initialQueryParams, hashRoute, pathRoute, removeSearchBar, placeholderImage, removeFilterOptions, modifyDocumentTitleSearch, onClickSearchItem, }) => {\n const { error, documents, queryFilter, onFilterUpdate, onInitialize } = useSearch();\n useEffect(() => {\n if (modifyDocumentTitleSearch) {\n document.title = modifyDocumentTitleSearch;\n }\n onInitialize(typeof initialQueryParams === 'string'\n ? new URLSearchParams(initialQueryParams)\n : initialQueryParams);\n }, []);\n const onItemClicked = useCallback((id) => {\n PubSub.publish('ItemClicked', id);\n if (onClickSearchItem) {\n onClickSearchItem(id);\n }\n }, []);\n const onClearQuery = useCallback(() => {\n const nextQuery = new URLSearchParams(queryFilter.searchParams);\n nextQuery.delete('query');\n onFilterUpdate(nextQuery.toString());\n }, [queryFilter.searchParams]);\n const searchQuery = useMemo(() => queryFilter.searchParams.get('query'), [documents]);\n return (React.createElement(React.Fragment, null,\n React.createElement(Page, null,\n !removeSearchBar && (React.createElement(PageSection, null,\n React.createElement(Container, null,\n React.createElement(SearchFilter, null)))),\n searchQuery && (React.createElement(PageSection, null,\n React.createElement(Container, null,\n React.createElement(SearchTerm, { onClear: onClearQuery }, searchQuery)))),\n !removeFilterOptions && (React.createElement(PageSection, null,\n React.createElement(Container, null,\n React.createElement(Filter, { filterList: filterList })))),\n React.createElement(PageSection, { accent: true, fillSpace: true, className: \"wayke__theme wayke__color--accent-bg\" },\n React.createElement(Container, null,\n React.createElement(Result, null,\n React.createElement(React.Fragment, null,\n error && (React.createElement(Snackbar, { severity: \"error\", icon: true, heading: \"Ett fel har intr\\u00E4ffat\" }, \"V\\u00E4nligen f\\u00F6rs\\u00F6k igen.\")),\n !error && documents && documents.length > 0 && (React.createElement(Grid, { hashRoute: hashRoute, pathRoute: pathRoute, onClickItem: onItemClicked, documents: documents, placeholderImage: placeholderImage })),\n !error && documents && documents.length === 0 && (React.createElement(Snackbar, { severity: \"warning\", icon: true, heading: \"Inga resultat\" }, \"Det finns inga resultat som matchar din s\\u00F6kning.\"))))))),\n React.createElement(PortalElement, { id: PortalNamespace.DefaultPortal })));\n};\nexport default WaykeSearch;\n","import styled from 'styled-components';\nimport { size } from '../../layout/helpers';\nexport const List = styled.ul `\n list-style: none;\n padding: 0;\n margin: 0;\n`;\nexport const Item = styled.li `\n display: flex;\n align-items: flex-end;\n line-height: 1;\n\n & + & {\n margin-top: ${size(0.5)};\n }\n`;\nexport const Label = styled.div `\n flex: 1 1 auto;\n`;\nexport const Value = styled.div `\n flex-shrink: 0;\n`;\n","import styled from 'styled-components';\nexport const Price = styled.div.attrs(() => ({\n className: 'wayke__theme wayke__color--primary-text wayke__font--bold',\n})) `\n font-size: 1.375rem;\n`;\nexport const OldPrice = styled.div `\n color: ${(props) => props.theme.color.textDarkLighten};\n text-decoration: line-through;\n`;\n","import React from 'react';\nimport { List, Item, Value, Label } from './wrapper';\nimport { VisualHeading } from '../Heading/index';\nimport { Price, OldPrice } from '../Price/index';\nimport { numberSeparator } from '../../utils/formats';\nconst PriceTable = ({ price, oldPrice }) => (React.createElement(List, null,\n React.createElement(Item, null,\n React.createElement(Label, null,\n React.createElement(VisualHeading, null, \"Pris\")),\n React.createElement(Value, null,\n React.createElement(Price, null,\n numberSeparator(price),\n \" kr\"))),\n oldPrice !== undefined && (React.createElement(Item, null,\n React.createElement(Label, null),\n React.createElement(Value, null,\n React.createElement(OldPrice, null,\n numberSeparator(oldPrice),\n \" kr\"))))));\nexport default PriceTable;\n","import styled, { css } from 'styled-components';\nimport { size } from '../../layout/helpers';\nexport const Logo = styled.img `\n display: block;\n max-width: ${size(9.5)};\n max-height: ${size(6)};\n\n ${({ wide }) => wide &&\n css `\n max-width: ${size(20)};\n `}\n`;\n","import * as React from 'react';\nimport { Logo } from './wrapper';\nconst LogoBox = ({ logo, logo2x, alt, wide }) => {\n let logoRetina = logo;\n if (logo2x) {\n logoRetina = `${logo2x} 2x`;\n }\n return React.createElement(Logo, { src: logo, srcSet: logoRetina, alt: alt, wide: wide });\n};\nexport default LogoBox;\n","import styled, { css } from 'styled-components';\nimport { size } from '../../layout/helpers';\nexport const Wrapper = styled.div `\n font-size: 1rem;\n line-height: 1.5;\n\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n margin-top: ${size(4)};\n margin-bottom: ${size(1)};\n\n :first-child {\n margin-top: 0;\n }\n\n :last-child {\n margin-bottom: 0;\n }\n\n & + p,\n & + table {\n margin-top: ${size(1)};\n }\n }\n\n p {\n margin: ${size(2)} 0;\n\n :first-child {\n margin-top: 0;\n }\n\n :last-child {\n margin-bottom: 0;\n }\n }\n\n ${({ small }) => small &&\n css `\n font-size: 0.875rem;\n `}\n`;\n","import React from 'react';\nimport { Wrapper } from './wrapper';\nconst Content = ({ children, small, dangerouslySetInnerHTML }) => (React.createElement(Wrapper, { small: small, dangerouslySetInnerHTML: dangerouslySetInnerHTML }, children));\nexport default Content;\n","import styled from 'styled-components';\nimport { size } from '../../layout/helpers';\nexport const Wrapper = styled.blockquote `\n display: flex;\n flex-direction: column;\n max-width: 600px;\n margin: 0 auto;\n\n ${(props) => props.theme.breakpoint.Sm} {\n align-items: center;\n }\n`;\nexport const Quote = styled.div `\n > * {\n :first-child {\n margin-top: 0;\n }\n\n :last-child {\n margin-bottom: 0;\n }\n }\n`;\nexport const Author = styled.footer `\n display: inline-flex;\n align-items: center;\n margin-top: ${size(3)};\n\n ${(props) => props.theme.breakpoint.Md} {\n margin-top: ${size(4)};\n }\n`;\nexport const AvatarWrapper = styled.div `\n flex-shrink: 0;\n padding-right: ${size(1.5)};\n`;\nexport const Info = styled.div `\n flex: 1 1 auto;\n font-size: 0.875rem;\n`;\nexport const Name = styled.div.attrs(() => ({\n className: 'wayke__theme wayke__font--bold',\n})) ``;\nexport const Date = styled.div ``;\n","import styled from 'styled-components';\nimport { size } from '../../layout/helpers';\nexport const Wrapper = styled.div.attrs(() => ({\n role: 'image',\n})) `\n display: block;\n width: ${size(5)};\n height: ${size(5)};\n border-radius: 50%;\n background-image: ${(props) => `url(${props.image})`};\n background-size: cover;\n background-position: center;\n background-repeat: no-repeat;\n background-color: ${(props) => props.theme.color.accent};\n`;\n","import React from 'react';\nimport { Wrapper } from './wrapper';\nconst Avatar = ({ image, alt }) => React.createElement(Wrapper, { image: image, \"aria-label\": alt });\nexport default Avatar;\n","import React from 'react';\nimport { Wrapper, Quote, Author, AvatarWrapper, Info, Name, Date } from './wrapper';\nimport Avatar from '../Avatar/index';\nconst Blockquote = ({ children, author, avatar, date }) => (React.createElement(Wrapper, null,\n React.createElement(Quote, null, children),\n author && (React.createElement(Author, null,\n avatar && (React.createElement(AvatarWrapper, null,\n React.createElement(Avatar, { image: avatar, alt: `${author} avatar` }))),\n React.createElement(Info, null,\n React.createElement(Name, null, author),\n date && React.createElement(Date, null, date))))));\nexport default Blockquote;\n","import styled, { css } from 'styled-components';\nimport { size } from '../../layout/helpers';\nexport const Wrapper = styled.div ``;\nexport const Extend = styled.div `\n position: relative;\n max-height: 175px;\n overflow: hidden;\n\n :after {\n content: '';\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n height: ${size(6)};\n background-image: linear-gradient(rgba(255, 255, 255, 0), rgba(255, 255, 255, 1));\n }\n\n ${({ extended }) => extended &&\n css `\n max-height: none;\n\n :after {\n content: none;\n }\n `}\n`;\nexport const Action = styled.div `\n display: flex;\n justify-content: flex-end;\n margin-top: ${size(2)};\n`;\n","import React, { useState, useCallback } from 'react';\nimport { Wrapper, Extend, Action } from './wrapper';\nimport { ButtonClear, ButtonContent } from '../Button/index';\nconst ExtendContent = ({ children, actionTitle, onClick }) => {\n const [extend, setExtend] = useState(false);\n const onExtend = useCallback(() => {\n setExtend(true);\n if (onClick) {\n onClick();\n }\n }, []);\n const onRef = (ref) => {\n const refHeight = (ref === null || ref === void 0 ? void 0 : ref.clientHeight) || 0;\n if (refHeight < 207) {\n setExtend(true);\n }\n };\n return (React.createElement(Wrapper, { ref: onRef },\n React.createElement(Extend, { extended: extend }, children),\n !extend && (React.createElement(Action, null,\n React.createElement(ButtonClear, { onClick: onExtend, title: actionTitle },\n React.createElement(ButtonContent, null, actionTitle))))));\n};\nexport default ExtendContent;\n","import styled, { css } from 'styled-components';\nimport { size } from '../../layout/helpers';\nimport { ButtonReset } from '../Button/index';\nimport { Wrapper as Container } from '../Container/wrapper';\nconst quickNavWidth = 83; // 75px + 8px\nexport const Wrapper = styled.div `\n ${(props) => props.theme.breakpoint.LtMd} {\n ${Container} & {\n margin-left: ${size(-3)};\n margin-right: ${size(-3)};\n }\n }\n\n ${(props) => props.theme.breakpoint.LtSm} {\n ${Container} & {\n margin-left: ${size(-2)};\n margin-right: ${size(-2)};\n }\n }\n\n ${(props) => props.theme.breakpoint.Md} {\n position: relative;\n padding-right: ${quickNavWidth}px;\n }\n`;\nexport const Main = styled.div `\n position: relative;\n height: 0;\n padding-bottom: 66.66666667%;\n\n ${(props) => props.theme.breakpoint.Md} {\n //background-color: ${(props) => props.theme.color.accent};\n }\n\n .slick-slider,\n .slick-list,\n .slick-track,\n .slick-slide,\n .slick-slide > * {\n height: 100%;\n }\n\n .slick-slide > * {\n font-size: 0;\n\n > * {\n font-size: 1rem;\n }\n }\n`;\nexport const Alt = styled.div `\n position: absolute;\n top: 0;\n bottom: 0;\n right: 0;\n width: ${quickNavWidth}px;\n padding-left: ${size(1)};\n\n ${(props) => props.theme.breakpoint.LtMd} {\n display: none;\n }\n\n :after {\n content: '';\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n height: ${size(2.5)};\n background-image: linear-gradient(rgba(255, 255, 255, 0), rgba(255, 255, 255, 1));\n pointer-events: none;\n }\n`;\nexport const Item = styled.div `\n position: relative;\n width: 100%;\n height: 100%;\n overflow: hidden;\n\n :focus {\n outline: none;\n }\n\n ${(props) => props.theme.breakpoint.LtMd} {\n //background-color: ${(props) => props.theme.color.textDark};\n transition: border-radius 150ms ease;\n }\n`;\nexport const SliderWrapper = styled.div `\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n\n .slick-slider {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n }\n\n ${(props) => props.theme.breakpoint.LtMd} {\n overflow: hidden;\n\n .slick-list {\n overflow: visible;\n width: 95%;\n }\n\n .slick-slide {\n border-right: ${size(1)} solid ${(props) => props.theme.color.bg};\n //transform: scale(0.95);\n transform-origin: 0 50%;\n transition: transform 150ms ease;\n }\n\n .slick-slide.slick-active {\n transform: none;\n\n ${Item} {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n }\n }\n`;\nexport const Image = styled.img `\n display: block;\n position: absolute;\n left: 0;\n top: 0;\n right: 0;\n bottom: 0;\n margin: auto;\n max-width: 100%;\n max-height: 100%;\n object-fit: cover;\n cursor: pointer;\n`;\nexport const ImageFull = styled.img `\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n`;\n// Arrow Nav\nconst Arrow = styled(ButtonReset) `\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n display: flex;\n align-items: center;\n justify-content: center;\n width: ${size(4)};\n height: ${size(4)};\n border-radius: 50%;\n font-size: 1rem;\n line-height: 1;\n background-color: rgba(255, 255, 255, 0.4);\n backdrop-filter: blur(5px);\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n color: ${(props) => props.theme.color.textDark};\n transform-origin: 50% 50%;\n transition: transform 200ms ease;\n\n :before {\n content: '';\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n border-radius: 50%;\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);\n opacity: 0;\n transition: opacity 200ms ease;\n }\n\n :hover {\n :before {\n opacity: 1;\n }\n }\n\n :active {\n transform: translateY(-50%) scale(0.95);\n }\n\n ${(props) => props.theme.breakpoint.LtSm} {\n display: none;\n }\n`;\nexport const ArrowLeft = styled(Arrow) `\n left: ${size(2)};\n`;\nexport const ArrowRight = styled(Arrow) `\n right: ${size(2)};\n`;\n// Quick Nav\nexport const QuickNav = styled.ul `\n position: relative;\n max-height: 100%;\n list-style: none;\n padding: 0;\n margin: 0;\n overflow: auto;\n -webkit-overflow-scrolling: touch;\n`;\nexport const QuickNavItem = styled.li.attrs(() => ({\n className: 'wayke__theme wayke__color--primary-text',\n})) `\n position: relative;\n\n & + & {\n margin-top: ${size(1)};\n }\n\n ${({ active }) => active &&\n css `\n :before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 3px solid currentColor;\n z-index: 2;\n }\n `}\n`;\nexport const QuickNavBtn = styled(ButtonReset) `\n position: relative;\n display: block;\n width: 100%;\n height: 0;\n padding-bottom: 66.66666667%; // 3:2\n transform-origin: 50% 50%;\n transition: transform 300ms cubic-bezier(0.47, 1.64, 0.41, 0.8);\n\n :before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: rgba(0, 0, 0, 0.15);\n opacity: 0;\n z-index: 1;\n transition: opacity 150ms ease;\n }\n\n :hover {\n :before {\n opacity: 1;\n }\n }\n\n :active {\n transform: scale(0.95);\n }\n`;\nexport const QuickNavImg = styled.img `\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n`;\n// Media Button\nexport const MediaButtonWrapper = styled.div `\n position: absolute;\n bottom: ${size(2)};\n left: 50%;\n transform: translateX(-50%);\n z-index: 1;\n`;\n// Sphere Close Button\nexport const EnableNavigationButton = styled.div `\n position: absolute;\n bottom: ${size(2)};\n left: 50%;\n transform: translateX(-50%);\n z-index: 1;\n`;\n","import styled from 'styled-components';\nimport { size } from '../../layout/helpers';\nimport { ButtonReset } from '../Button/index';\nexport const Wrapper = styled.div `\n position: fixed;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n padding: ${size(3)};\n z-index: 90;\n overflow: auto;\n\n ${(props) => props.theme.breakpoint.LtSm} {\n padding: ${size(2)};\n }\n`;\nexport const UiBlock = styled.div.attrs(() => ({\n role: 'button',\n})) `\n position: fixed;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n background-color: rgba(0, 0, 0, 0.3);\n z-index: -1;\n`;\nexport const Item = styled.div `\n position: relative;\n\n & + & {\n margin-top: ${size(1)};\n }\n`;\nexport const Img = styled.img `\n position: relative;\n display: block;\n max-width: 100%;\n max-height: calc(100vh - ${size(6)});\n margin: 0 auto;\n z-index: 1;\n\n ${(props) => props.theme.breakpoint.LtSm} {\n max-height: calc(100vh - ${size(4)});\n }\n`;\nexport const CloseBtn = styled(ButtonReset) `\n display: flex;\n align-items: center;\n justify-content: center;\n position: fixed;\n top: ${size(2)};\n right: ${size(2)};\n width: ${size(5)};\n height: ${size(5)};\n border-radius: 50%;\n background-color: ${(props) => props.theme.color.bg};\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n transform-origin: 50% 50%;\n transition: 200ms ease, transform 300ms cubic-bezier(0.47, 1.64, 0.41, 0.8);\n z-index: 1;\n\n :before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: ${(props) => props.theme.color.hoverOverlay};\n border-radius: 50%;\n opacity: 0;\n transition: opacity 150ms ease;\n }\n\n :hover {\n :before {\n opacity: 1;\n }\n }\n\n :active {\n transform: scale(0.97);\n }\n\n ${(props) => props.theme.breakpoint.LtSm} {\n top: ${size(1)};\n right: ${size(1)};\n }\n`;\n","export const getVimeoId = (url) => {\n const regExp = /\\/(\\d+)/;\n const match = url.match(regExp);\n return match && match[1].length > 3 ? match[1] : '';\n};\nexport const getYouTubeId = (url) => {\n const regExp = /^.*((youtu.be\\/)|(v\\/)|(\\/u\\/\\w\\/)|(embed\\/)|(watch\\?))\\??v?=?([^#\\&\\?]*).*/;\n const match = url.match(regExp);\n return match && match[7].length === 11 ? match[7] : '';\n};\nconst youtubeBase = 'https://img.youtube.com/vi/';\nexport const getYoutubeThumbnail = (url) => {\n const id = getYouTubeId(url);\n if (!id) {\n return undefined;\n }\n return {\n maxresdefault: `${youtubeBase}${id}/maxresdefault.jpg`,\n hqdefault: `${youtubeBase}${id}/hqdefault.jpg`,\n mqdefault: `${youtubeBase}${id}/mqdefault.jpg`,\n };\n};\nexport const onImageLoad = (e, thumbnail) => {\n if ((thumbnail === null || thumbnail === void 0 ? void 0 : thumbnail.length) === 2 &&\n e.currentTarget.src === thumbnail[0] &&\n e.currentTarget.naturalWidth === 120 &&\n e.currentTarget.naturalHeight === 90) {\n e.currentTarget.src = thumbnail[1];\n }\n};\nexport const onImageError = (e, thumbnail) => {\n if ((thumbnail === null || thumbnail === void 0 ? void 0 : thumbnail.length) === 2) {\n e.currentTarget.src = thumbnail[1];\n }\n};\n","import styled from 'styled-components';\nexport const Wrapper = styled.div `\n position: relative;\n width: 100%;\n height: ${(props) => (props.isPreview ? '100%' : 0)};\n padding-bottom: ${(props) => (props.ratio ? props.ratio : '56.25%')};\n`;\nexport const Iframe = styled.iframe.attrs(() => ({\n width: '100%',\n height: '100%',\n allowFullScreen: true,\n frameBorder: '0',\n})) `\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n`;\n","import React from 'react';\nimport { getYouTubeId } from './utils';\nimport { Wrapper, Iframe } from './wrapper';\nconst YouTubePlayer = ({ url, autoplay }) => (React.createElement(Wrapper, null,\n React.createElement(Iframe, { src: `https://www.youtube.com/embed/${getYouTubeId(url)}?&enablejsapi=1&?rel=0${autoplay ? '&autoplay=1' : ''}` })));\nexport default YouTubePlayer;\n","import React from 'react';\nimport { getVimeoId } from './utils';\nimport { Wrapper, Iframe } from './wrapper';\nconst VimeoPlayer = ({ url, autoplay }) => (React.createElement(Wrapper, null,\n React.createElement(Iframe, { src: `https://player.vimeo.com/video/${getVimeoId(url)}?${autoplay ? '&autoplay=1' : ''}&loop=0&autopause=0` })));\nexport default VimeoPlayer;\n","import styled from 'styled-components';\nconst Video = styled.video `\n position: absolute;\n top: 0;\n left: 0;\n object-fit: ${({ modal }) => (modal ? 'contain' : 'cover')};\n`;\nexport default Video;\n","import React from 'react';\nimport { Wrapper } from './wrapper';\nimport Video from './Video';\nconst CustomPlayer = ({ url, controls, modal, ratio = '56.25%', isPreview }) => {\n return (React.createElement(Wrapper, { ratio: ratio, isPreview: isPreview },\n React.createElement(Video, { key: url, modal: modal, preload: \"metadata\", controls: controls, width: \"100%\", height: \"100%\", src: url })));\n};\nexport default CustomPlayer;\n","import React from 'react';\nimport YouTubePlayer from './YoutubePlayer';\nimport VimeoPlayer from './VimeoPlayer';\nimport CustomPlayer from '../Video/CustomPlayer';\nconst ytNames = ['youtube.com', 'youtu.be'];\nconst isYouTubeVideo = (url) => ytNames.some((host) => url.indexOf(host) >= 0);\nconst vNames = ['vimeo.com'];\nconst isVimeoVideo = (url) => vNames.some((host) => url.indexOf(host) >= 0);\nconst VideoPlayer = ({ url, autoplay = false, controls = true }) => {\n if (!url)\n return null;\n if (isYouTubeVideo(url))\n return React.createElement(YouTubePlayer, { url: url, autoplay: autoplay });\n if (isVimeoVideo(url))\n return React.createElement(VimeoPlayer, { url: url, autoplay: autoplay });\n return React.createElement(CustomPlayer, { ratio: \"56.25%\", controls: controls, url: url });\n};\nexport default VideoPlayer;\n","import styled from 'styled-components';\nimport { size } from '../../layout/helpers';\nconst compassSize = size(4);\nconst controlBtnSize = size(4);\nexport const Wrapper = styled.div `\n width: 100%;\n height: 0 !important;\n padding-bottom: 66.666% !important; // 3:2\n\n .pnlm-container {\n background-image: none;\n background-color: ${(props) => props.theme.color.accentDark};\n }\n\n // Compass\n\n .pnlm-compass {\n width: ${compassSize};\n height: ${compassSize};\n border-radius: 50%;\n bottom: ${size(2)};\n left: ${size(2)};\n right: auto;\n margin-top: 0;\n border: 5px solid transparent;\n border-top-color: ${(props) => props.theme.color.textLight};\n background-color: rgba(255, 255, 255, 0.4);\n background-image: none;\n backdrop-filter: blur(5px);\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n box-sizing: border-box;\n\n &:hover {\n background-color: red;\n }\n }\n\n // Controls (zoom & fullscreen button)\n\n .pnlm-grab,\n .pnlm-grabbing {\n .pnlm-controls-container {\n display: block;\n }\n }\n\n .pnlm-controls-container {\n display: none;\n top: ${size(2)};\n left: ${size(2)};\n }\n\n .pnlm-controls {\n margin-top: 0;\n\n & + .pnlm-controls {\n margin-top: ${size(1)};\n }\n }\n\n // Fullscreen button\n\n .pnlm-fullscreen-toggle-button {\n display: none;\n position: relative;\n width: ${controlBtnSize};\n height: ${controlBtnSize};\n background-image: none;\n background-color: rgba(255, 255, 255, 0.4);\n backdrop-filter: blur(5px);\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n color: ${(props) => props.theme.color.textDark};\n border: 0;\n border-radius: 50%;\n\n &:hover {\n background-color: rgba(255, 255, 255, 0.6);\n }\n\n &:before {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n font-size: 0.875rem;\n }\n }\n\n .pnlm-fullscreen-toggle-button-inactive {\n &:before {\n content: '⤢';\n }\n\n &.pnlm-fullscreen-toggle-button-active {\n &:before {\n content: '⤢';\n }\n }\n }\n\n // Gyroscope (Orientation)\n\n .pnlm-orientation-button {\n background-image: none;\n width: ${controlBtnSize};\n height: ${controlBtnSize};\n background-color: ${(props) => props.theme.color.accentDark};\n color: ${(props) => props.theme.color.textDark};\n border: 0;\n border-radius: 999px;\n\n &:hover {\n background-color: red;\n }\n\n &:before {\n content: 'A';\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n font-size: 0.875rem;\n }\n\n &.pnlm-orientation-button-active {\n background-color: green;\n\n &:hover {\n background-color: pink;\n }\n }\n }\n\n // Zoom controls\n\n .pnlm-zoom-controls {\n display: none;\n height: auto;\n width: auto;\n background-color: transparent;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n border: 0;\n border-radius: 999px;\n\n > * {\n &:first-child {\n border-top-left-radius: 999px;\n border-top-right-radius: 999px;\n }\n\n &:last-child {\n border-bottom-left-radius: 999px;\n border-bottom-right-radius: 999px;\n }\n }\n }\n\n .pnlm-zoom-in,\n .pnlm-zoom-out {\n position: relative;\n display: block;\n width: ${controlBtnSize};\n height: ${controlBtnSize};\n background-image: none;\n background-color: rgba(255, 255, 255, 0.4);\n backdrop-filter: blur(5px);\n color: ${(props) => props.theme.color.textDark};\n border-radius: 0;\n\n &:before {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n\n &:hover {\n background-color: rgba(255, 255, 255, 0.6);\n }\n }\n\n .pnlm-zoom-in {\n top: auto;\n\n &:before {\n content: '+';\n }\n }\n\n .pnlm-zoom-out {\n bottom: auto;\n border-top: 1px solid ${(props) => props.theme.color.textDark};\n\n &:before {\n content: '-';\n }\n }\n\n // Load Button\n\n .pnlm-load-button {\n top: auto;\n bottom: ${size(2)};\n transform: translateX(-50%);\n width: auto;\n height: auto;\n padding: ${size(1.75)} ${size(2)};\n border-radius: 3px;\n margin: 0;\n background-color: ${(props) => props.theme.color.accentDark};\n color: ${(props) => props.theme.color.textDark};\n line-height: 1.1;\n user-select: none;\n\n &:hover {\n background-color: ${(props) => props.theme.color.accentDark};\n }\n\n p {\n margin: 0;\n font-size: 0.875rem;\n }\n }\n\n // Load box\n\n .pnlm-load-box {\n background-color: transparent;\n height: auto;\n margin: 0;\n width: 150px;\n transform: translate(-50%, -50%);\n\n > p {\n display: none;\n }\n }\n\n // Load bar\n\n .pnlm-lbar {\n width: 100%;\n background-color: rgba(255, 255, 255, 0.4);\n border: 0;\n }\n\n .pnlm-lbar-fill {\n background-color: ${(props) => props.theme.color.textLight};\n }\n`;\n","import React, { lazy, useState, useEffect } from 'react';\nimport { Wrapper } from './wrapper';\nimport Loader from '../Loader/index';\nconst ReactPannellum = lazy(() => import('react-pannellum'));\nconst config = {\n type: 'equirectangular',\n autoRotate: -2,\n autoLoad: true,\n uiText: {\n bylineLabel: 'by %s',\n noPanoramaError: 'No panorama image was specified.',\n fileAccessError: 'The file %s could not be accessed.',\n malformedURLError: 'There is something wrong with the panorama URL.',\n iOS8WebGLError: \"Due to iOS 8's broken WebGL implementation, only progressive encoded JPEGs work for your device (this panorama uses standard encoding).\",\n genericWebGLError: 'Your browser does not have the necessary WebGL support to display this panorama.',\n textureSizeError: \"This panorama is too big for your device! It's %spx wide, but your device only supports images up to %spx wide. Try another device. (If you're the author, try scaling down the image.)\",\n unknownError: 'Unknown error. Check developer console.',\n loadButtonLabel: 'Starta 360° interiört',\n loadingLabel: 'Laddar...',\n },\n preview: '/images/placeholders/placeholder_product_card.jpg',\n compass: true,\n showZoomCtrl: true,\n keyboardZoom: false,\n mouseZoom: false,\n hfov: 180,\n};\nconst style = {\n height: 0,\n width: '100%',\n paddingBottom: '66.666%',\n touchAction: 'manipulation',\n};\nconst SphereViewer = ({ id, src, preview, autoLoad, onStart }) => {\n const [number] = useState(Math.floor(100000000 + Math.random() * 900000000));\n useEffect(() => {\n setTimeout(() => {\n if (onStart) {\n const startBtn = document.querySelector('.pnlm-load-button');\n if (startBtn)\n startBtn.addEventListener('click', onStart);\n }\n }, 100);\n }, []);\n const c = {\n ...config,\n preview,\n autoLoad,\n };\n return (React.createElement(Wrapper, null,\n React.createElement(React.Suspense, { fallback: React.createElement(Loader, null) },\n React.createElement(ReactPannellum, { id: `a-${id}-${number}`, sceneId: src, imageSource: src, config: c, style: style }))));\n};\nexport default SphereViewer;\n","import React from 'react';\nimport SphereViewer from './SphereViewer';\nconst SphereLightbox = ({ url }) => React.createElement(SphereViewer, { id: url, src: url, preview: url });\nexport default SphereLightbox;\n","import React from 'react';\nimport { MediaButtonWrapper } from './wrapper';\nimport { ButtonSecondary, ButtonContent } from '../Button/index';\nconst MediaButton = ({ text, onClick }) => (React.createElement(MediaButtonWrapper, null,\n React.createElement(ButtonSecondary, { onClick: onClick, title: text },\n React.createElement(ButtonContent, null, text))));\nexport default MediaButton;\n","import React, { useState, useEffect, useRef, cloneElement, Children } from 'react';\nconst calculateCurrentFrame = (startFrame, delta, length) => {\n const frame = (startFrame + delta) % length;\n if (frame < 0) {\n return frame + length;\n }\n return frame;\n};\nconst Rotation = ({ children }) => {\n const startFrame = useRef(0);\n const pointerPosition = useRef();\n const max = useRef(0);\n const [state, setState] = useState({\n current: 0,\n outsideMouseMove: false,\n });\n useEffect(() => {\n document.addEventListener('mouseup', touchEnd);\n return () => {\n window.document.removeEventListener('mouseup', touchEnd);\n window.document.body.removeEventListener('mousemove', mouseMove);\n window.document.body.removeEventListener('mouseup', mouseUp);\n };\n }, []);\n const touchMove = (event) => {\n const notTouched = typeof pointerPosition.current !== 'number';\n event.preventDefault();\n if (notTouched) {\n return;\n }\n const childCount = Children.count(children);\n const { offsetWidth } = event.currentTarget;\n const pointer = calculatePointerPosition(event);\n const max = offsetWidth;\n const offset = pointer - (pointerPosition.current || 0);\n const delta = Math.floor((offset / max) * childCount);\n setCurrentFrame(calculateCurrentFrame(startFrame.current, delta, childCount));\n };\n const mouseMove = (event) => {\n const notTouched = typeof pointerPosition.current !== 'number';\n event.preventDefault();\n if (notTouched || !state.outsideMouseMove)\n return;\n const childCount = Children.count(children);\n const pointer = calculatePointerPosition(event);\n const offset = pointer - (pointerPosition.current || 0);\n const delta = Math.floor((offset / max.current) * childCount);\n setCurrentFrame(calculateCurrentFrame(startFrame.current, delta, childCount));\n };\n const mouseUp = () => {\n window.document.body.removeEventListener('mousemove', mouseMove);\n window.document.body.removeEventListener('mouseup', mouseUp);\n pointerPosition.current = undefined;\n startFrame.current = 0;\n };\n const touchStart = (event) => {\n event.preventDefault();\n pointerPosition.current = calculatePointerPosition(event);\n startFrame.current = state.current;\n const { offsetWidth } = event.currentTarget;\n max.current = offsetWidth;\n window.document.body.addEventListener('mousemove', mouseMove);\n window.document.body.addEventListener('mouseup', mouseUp);\n };\n const touchEnd = (event) => {\n event.preventDefault();\n pointerPosition.current = undefined;\n startFrame.current = 0;\n };\n const onMouseEnter = () => {\n if (state.outsideMouseMove)\n setState({ ...state, outsideMouseMove: false });\n };\n const onMouseLeave = () => {\n if (!state.outsideMouseMove)\n setState({ ...state, outsideMouseMove: true });\n };\n const setCurrentFrame = (current) => {\n if (current !== state.current) {\n setState({ ...state, current });\n }\n };\n const calculatePointerPosition = (event) => {\n const { clientX } = event.type.indexOf('touch') === 0 ? event.changedTouches[0] : event;\n const { offsetLeft } = event.currentTarget;\n return clientX - offsetLeft;\n };\n return (React.createElement(\"div\", { onTouchStart: touchStart, onTouchMove: touchMove, onTouchEnd: touchEnd, onMouseDown: touchStart, onMouseMove: touchMove, onMouseEnter: onMouseEnter, onMouseLeave: onMouseLeave }, Children.map(children, (child, i) => cloneElement(child, {\n style: {\n width: '100%',\n display: state.current === i ? 'block' : 'none',\n },\n }))));\n};\nexport default Rotation;\n","import React, { useState, useCallback } from 'react';\nimport { Item, Img } from '../Lightbox/wrapper';\nimport MediaButton from '../Gallery/MediaButton';\nimport Rotation from './Rotation';\nconst ThreeSixtyLightbox = ({ urls }) => {\n const [started, setStarted] = useState(false);\n const onStart = useCallback(() => setStarted(true), []);\n if (!started) {\n return (React.createElement(Item, null,\n React.createElement(Img, { src: urls[0], alt: \"alt\" }),\n React.createElement(MediaButton, { text: \"Starta 360\\u00B0 exteri\\u00F6rt\", onClick: onStart })));\n }\n return (React.createElement(Rotation, null, urls.map((image, i) => (React.createElement(Img, { key: image, src: image, alt: `Bild ${i + 1}` })))));\n};\nexport default ThreeSixtyLightbox;\n","import React from 'react';\nimport { Wrapper, UiBlock, Item, Img, CloseBtn } from './wrapper';\nimport { IconCancel } from '../Icon/index';\nimport EmbeddedVideoLightbox from '../Video/EmbeddedVideoLightbox';\nimport SphereLightbox from '../Sphere/SphereLightbox';\nimport ThreeSixtyLightbox from '../ThreeSixty/ThreeSixtLightbox';\nconst Lightbox = ({ index, media, onClose }) => {\n const onRef = (ref) => {\n if (ref) {\n setTimeout(() => {\n ref.scrollIntoView();\n }, 300);\n }\n };\n const onKeyDown = (e) => {\n if (e.keyCode === 27) {\n onClose();\n }\n };\n return (React.createElement(Wrapper, { ref: (ref) => ref === null || ref === void 0 ? void 0 : ref.focus(), onKeyDown: onKeyDown, tabIndex: 0 },\n React.createElement(UiBlock, { onClick: onClose, \"aria-hidden\": true }),\n media.map((m, i) => (React.createElement(Item, { key: i, ref: index === i ? onRef : undefined },\n m.type === 'image' && (React.createElement(Img, { id: `lightbox-image-${i}`, src: m.files[0].url, alt: `Bild ${i + 1}` })),\n m.type === 'threesixty' && React.createElement(ThreeSixtyLightbox, { urls: m.files.map((x) => x.url) }),\n m.type === 'sphere' && React.createElement(SphereLightbox, { url: m.files[0].url }),\n m.type === 'embedded' && React.createElement(EmbeddedVideoLightbox, { url: m.files[0].url })))),\n React.createElement(CloseBtn, { onClick: onClose, title: \"St\\u00E4ng\" },\n React.createElement(IconCancel, { block: true }))));\n};\nexport default Lightbox;\n","import { useEffect, useState, useCallback } from 'react';\nconst cache = {};\nconst getCachedResult = (key) => (cache === null || cache === void 0 ? void 0 : cache[key]) || undefined;\nconst setCachedResult = (key, value) => {\n cache[key] = value;\n};\n/**\n * Reusing already fired request by attaching to same promise.\n * Usefull if multiple request is fetching from same endpoint, while\n * the first request has not been finished (so no cache exist yet).\n */\nlet pendingPromise = {};\nconst isPendingPromise = (url) => !!pendingPromise[url];\nconst setPendingPromise = (url, promise) => {\n pendingPromise = {\n ...pendingPromise,\n [url]: promise,\n };\n};\nconst clearPendingPromise = (url) => {\n delete pendingPromise[url];\n};\nconst useFetch = (path, options, skip, promiseCache) => {\n const [data, setData] = useState();\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState(false);\n const doFetch = useCallback(async () => {\n const key = path.toString();\n const cached = getCachedResult(key);\n setError(false);\n if (cached) {\n setData(cached);\n return;\n }\n setLoading(true);\n try {\n const reusePromise = promiseCache && isPendingPromise(key);\n const request = reusePromise ? pendingPromise[key] : fetch(path, options);\n if (promiseCache) {\n setPendingPromise(key, request);\n }\n const result = await request;\n if (result.ok) {\n const json = await result.clone().json();\n setCachedResult(key, json);\n setData(json);\n }\n }\n catch (e) {\n setError(true);\n }\n finally {\n setLoading(false);\n clearPendingPromise(key);\n }\n return;\n }, [path, options]);\n useEffect(() => {\n if (!skip) {\n doFetch();\n }\n }, [path, skip]);\n return {\n loading,\n data,\n error,\n };\n};\nexport default useFetch;\n","import { useEffect, useState } from 'react';\nimport useFetch from './useFetch';\nconst useVimeoThumbnail = (id, small) => {\n const [thumbnail, setThumbnail] = useState();\n const { data } = useFetch(`http://vimeo.com/api/v2/video/${id}.json`, {}, !id || !!thumbnail, true);\n useEffect(() => {\n if (data === null || data === void 0 ? void 0 : data[0]) {\n if (small && data[0].thumbnail_small) {\n setThumbnail(data[0].thumbnail_small);\n }\n else if (data[0].thumbnail_large) {\n setThumbnail(data[0].thumbnail_large);\n }\n }\n }, [data]);\n return thumbnail;\n};\nexport default useVimeoThumbnail;\n","import { useEffect, useState } from 'react';\nimport { getVimeoId, getYoutubeThumbnail } from './utils';\nimport useVimeoThumbnail from '../../hooks/useVimeoThumbnail';\nconst useThumbnail = (url, small) => {\n if (url === null || url === void 0 ? void 0 : url.toLowerCase().endsWith('.mp4'))\n return;\n const [thumbnail, setThumbnail] = useState();\n const vimeoId = url ? getVimeoId(url) : undefined;\n const vimeoThumbnail = useVimeoThumbnail(vimeoId, small);\n useEffect(() => {\n if (url) {\n const youtubeThumbnail = getYoutubeThumbnail(url);\n if (youtubeThumbnail) {\n if (small) {\n setThumbnail([youtubeThumbnail.mqdefault]);\n }\n else {\n setThumbnail([youtubeThumbnail.maxresdefault, youtubeThumbnail.hqdefault]);\n }\n }\n }\n }, [url]);\n return vimeoThumbnail ? [vimeoThumbnail] : thumbnail;\n};\nexport default useThumbnail;\n","import styled from 'styled-components';\nimport { size } from '../../layout/helpers';\nimport { fadeIn, noTransform } from '../../layout/keyframes';\nimport { ButtonReset } from '../Button/index';\nimport { H1 } from '../Heading/index';\nexport const Wrapper = styled.div.attrs(() => ({\n role: 'dialog',\n})) `\n position: fixed;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n width: 100%;\n white-space: normal;\n text-align: left;\n z-index: 90;\n display: flex;\n align-items: center;\n justify-content: center;\n\n ${(props) => props.theme.breakpoint.Sm} {\n padding: ${size(2)};\n }\n`;\nexport const UiBlock = styled.div.attrs(() => ({\n 'aria-hidden': 'true',\n role: 'button',\n})) `\n position: fixed;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n background-color: rgba(0, 0, 0, 0.35);\n z-index: -1;\n\n ${(props) => props.theme.breakpoint.LtMd} {\n animation: ${fadeIn} 300ms ease forwards;\n }\n\n ${(props) => props.theme.breakpoint.Md} {\n animation: ${fadeIn} 400ms ease forwards;\n }\n`;\nexport const Dialog = styled.article.attrs(() => ({\n className: 'wayke__theme wayke__font--regular',\n})) `\n display: flex;\n flex-direction: column;\n background-color: ${(props) => props.theme.color.bg};\n z-index: 1;\n width: 100%;\n max-width: 680px;\n max-height: 100%;\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.05);\n overflow: hidden;\n\n ${(props) => props.theme.breakpoint.LtSm} {\n align-self: flex-end;\n transform: translateY(100%);\n animation: ${noTransform} 300ms ease forwards;\n }\n\n ${(props) => props.theme.breakpoint.Sm} {\n transform: translateY(${size(2)});\n animation: ${fadeIn} 400ms ease, ${noTransform} 400ms ease forwards;\n }\n`;\nexport const Content = styled.div `\n flex: 1 1 auto;\n overflow: auto;\n -webkit-overflow-scrolling: touch;\n`;\nexport const Header = styled.header `\n display: flex;\n align-items: center;\n min-height: 60px;\n padding: ${size(3)};\n padding-bottom: 0;\n`;\nexport const Heading = styled.div `\n flex: 1 1 auto;\n\n ${H1} {\n font-size: 1.5rem;\n }\n`;\nexport const Close = styled.div `\n flex-shrink: 0;\n margin: ${size(-2)};\n padding-left: ${size(3)};\n`;\nexport const CloseBtn = styled(ButtonReset) `\n display: block;\n padding: ${size(2)};\n`;\nexport const Body = styled.div `\n padding: ${size(3)};\n`;\nexport const Image = styled.img `\n display: block;\n width: calc(100% + ${size(6)});\n margin-left: ${size(-3)};\n margin-bottom: ${size(3)};\n`;\nexport const ModalFoldout = styled.div `\n background-color: ${(props) => props.theme.color.accent};\n margin: ${size(-3)};\n margin-top: ${size(3)};\n padding: ${size(3)};\n`;\nexport const ModalFoldoutBody = styled.div ``;\n","import * as React from 'react';\nimport { Portal, PortalNamespace } from '../Portal/index';\nimport { H1 } from '../Heading/index';\nimport { IconCancel } from '../Icon/index';\nimport { Body, Content, Dialog, Header, Heading, UiBlock, Wrapper, Close, CloseBtn, } from './wrapper';\nconst Modal = ({ id, title, onClose, children }) => {\n return (React.createElement(Portal, { id: id || PortalNamespace.DefaultPortal },\n React.createElement(Wrapper, { onClick: (e) => e.stopPropagation() },\n React.createElement(UiBlock, { onClick: onClose, title: \"St\\u00E4ng modal\" }),\n React.createElement(Dialog, null,\n React.createElement(Content, null,\n React.createElement(Header, null,\n React.createElement(Heading, null,\n React.createElement(H1, { noMargin: true }, title)),\n React.createElement(Close, null,\n React.createElement(CloseBtn, { onClick: onClose, title: \"St\\u00E4ng modal\" },\n React.createElement(IconCancel, { block: true })))),\n React.createElement(Body, null, children))))));\n};\nexport default Modal;\n","import React, { useState, useCallback } from 'react';\nimport useThumbnail from './useThumbnail';\nimport { ImageFull } from '../Gallery/wrapper';\nimport MediaButton from '../Gallery/MediaButton';\nimport Modal from '../Modal/index';\nimport VideoPlayer from './EmbeddedVideoLightbox';\nimport { onImageLoad, onImageError } from './utils';\nimport CustomPlayer from '../Video/CustomPlayer';\nconst GalleryEmbed = ({ src, index }) => {\n const [modal, setModal] = useState();\n const thumbnail = useThumbnail(src);\n const onClick = (e) => {\n e.stopPropagation();\n setModal(src);\n };\n const onCloseModal = (e) => {\n e.stopPropagation();\n setModal(undefined);\n };\n const onError = useCallback((e) => onImageError(e, thumbnail), [thumbnail]);\n const onLoad = useCallback((e) => onImageLoad(e, thumbnail), [thumbnail]);\n const customVideo = src.toLowerCase().endsWith('.mp4');\n if ((thumbnail === null || thumbnail === void 0 ? void 0 : thumbnail.length) && !customVideo) {\n return (React.createElement(React.Fragment, null,\n React.createElement(ImageFull, { onLoad: onLoad, src: thumbnail[0], onError: onError, alt: `Bild ${index + 1}` }),\n React.createElement(MediaButton, { text: \"Spela video\", onClick: onClick }),\n modal && (React.createElement(Modal, { title: \"Video\", onClose: onCloseModal },\n React.createElement(VideoPlayer, { url: modal })))));\n }\n if (customVideo)\n return (React.createElement(React.Fragment, null,\n React.createElement(CustomPlayer, { ratio: \"66.66%\", isPreview: true, controls: false, url: src }),\n React.createElement(MediaButton, { text: \"Spela video\", onClick: onClick }),\n modal && (React.createElement(Modal, { title: \"Video\", onClose: onCloseModal },\n React.createElement(VideoPlayer, { url: modal })))));\n return null;\n};\nexport default GalleryEmbed;\n","import React, { useCallback } from 'react';\nimport useThumbnail from './useThumbnail';\nimport { QuickNavImg } from '../Gallery/wrapper';\nimport { onImageLoad, onImageError } from './utils';\nimport CustomPlayer from '../Video/CustomPlayer';\nconst QuickNavEmbeded = ({ src, index }) => {\n const thumbnail = useThumbnail(src);\n const onError = useCallback((e) => onImageError(e, thumbnail), [thumbnail]);\n const onLoad = useCallback((e) => onImageLoad(e, thumbnail), [thumbnail]);\n const customVideo = src === null || src === void 0 ? void 0 : src.toLowerCase().endsWith('.mp4');\n if ((thumbnail === null || thumbnail === void 0 ? void 0 : thumbnail.length) && !customVideo)\n return (React.createElement(QuickNavImg, { onLoad: onLoad, src: thumbnail[0], onError: onError, alt: `Bild ${index + 1}` }));\n if (customVideo)\n return React.createElement(CustomPlayer, { key: index, url: src, ratio: \"66.66%\" });\n return null;\n};\nexport default QuickNavEmbeded;\n","import React from 'react';\nimport SphereViewer from './SphereViewer';\nimport { ImageFull } from '../Gallery/wrapper';\nimport MediaButton from '../Gallery/MediaButton';\nconst onMediaClick = (e, func) => {\n e.stopPropagation();\n e.preventDefault();\n func();\n};\nconst Sphere = ({ url, preview, visible, onDisableNavigation, navigationDisabled }) => {\n if (!visible || (!navigationDisabled && visible)) {\n return (React.createElement(React.Fragment, null,\n React.createElement(ImageFull, { src: preview, alt: \"alt\" }),\n React.createElement(MediaButton, { text: \"Starta 360\\u00B0 interi\\u00F6rt\", onClick: (e) => onMediaClick(e, onDisableNavigation) })));\n }\n if (navigationDisabled && visible) {\n return (React.createElement(SphereViewer, { id: url, preview: url, src: url, autoLoad: true, onStart: onDisableNavigation }));\n }\n return null;\n};\nexport default Sphere;\n","import React from 'react';\nimport { Image } from '../Gallery/wrapper';\nimport MediaButton from '../Gallery/MediaButton';\nimport Rotation from './Rotation';\nconst onMediaClick = (e, func) => {\n e.stopPropagation();\n e.preventDefault();\n func();\n};\nconst ThreeSixty = ({ urls, visible, onDisableNavigation, navigationDisabled }) => {\n if (!visible || (!navigationDisabled && visible)) {\n return (React.createElement(React.Fragment, null,\n React.createElement(Image, { src: urls[0], alt: \"alt\" }),\n React.createElement(MediaButton, { text: \"Starta 360\\u00B0 exteri\\u00F6rt\", onClick: (e) => onMediaClick(e, onDisableNavigation) })));\n }\n if (navigationDisabled && visible) {\n return (React.createElement(\"div\", { onClick: (e) => {\n e.stopPropagation();\n e.preventDefault();\n } },\n React.createElement(Rotation, null, urls.map((image, i) => (React.createElement(Image, { key: image, src: image, alt: `Bild ${i + 1}` }))))));\n }\n return null;\n};\nexport default ThreeSixty;\n","import React, { useState, useCallback, useRef, useMemo } from 'react';\nimport Slider from 'react-slick';\nimport scrollIntoView from 'scroll-into-view-if-needed';\nimport { Wrapper, SliderWrapper, Item, Image, ArrowLeft, ArrowRight, Main, Alt, QuickNav, QuickNavItem, QuickNavBtn, QuickNavImg, EnableNavigationButton, } from './wrapper';\nimport { IconChevronLeft, IconChevronRight } from '../Icon/index';\nimport { ButtonSecondary, ButtonContent } from '../Button/index';\nimport Lightbox from '../Lightbox/index';\nimport EmbededVideo from '../Video/EmbededVideo';\nimport QuickNavEmbeded from '../Video/QuickNavEmbeded';\nimport Sphere from '../Sphere/Sphere';\nimport { notEmpty } from '../../utils/formats';\nimport ThreeSixty from '../ThreeSixty/ThreeSixty';\nimport PubSub from '../../utils/pubsub/pubsub';\nimport { DEFAULT_PLACEHOLDER_IMAGE } from '../../utils/constants';\nconst sliderSettings = {\n dots: false,\n arrows: false,\n infinite: true,\n speed: 300,\n slidesToShow: 1,\n slidesToScroll: 1,\n};\nconst Gallery = ({ media, placeholderImage }) => {\n const slider = useRef(null);\n const quickNavRef = useRef(null);\n const isDragging = useRef(false);\n const [index, setIndex] = useState(0);\n const [lightbox, setLightbox] = useState(false);\n const [navigationDisabled, setNavigationDisabled] = useState(false);\n const beforeChange = useCallback((_, newIndex) => {\n var _a, _b;\n const element = (_b = (_a = quickNavRef.current) === null || _a === void 0 ? void 0 : _a.querySelectorAll('li')) === null || _b === void 0 ? void 0 : _b[newIndex];\n if (element) {\n scrollIntoView(element, { scrollMode: 'if-needed', block: 'nearest', inline: 'nearest' });\n }\n setIndex(newIndex);\n }, []);\n const onMouseDown = useCallback(() => {\n if (isDragging.current) {\n isDragging.current = false;\n }\n }, []);\n const onMouseMove = useCallback(() => {\n if (!isDragging.current) {\n isDragging.current = true;\n }\n }, []);\n const onClick = useCallback(() => {\n PubSub.publish('ImagesClick');\n if (!isDragging.current && !lightbox && !!(media === null || media === void 0 ? void 0 : media.length)) {\n setLightbox(true);\n }\n }, [lightbox, media]);\n const nextImage = useCallback(() => {\n if (!slider || !slider.current) {\n return;\n }\n slider.current.slickNext();\n }, [slider]);\n const prevImage = useCallback(() => {\n if (!slider || !slider.current) {\n return;\n }\n slider.current.slickPrev();\n }, [slider]);\n const goTo = (target) => {\n if (!slider || !slider.current) {\n return;\n }\n if (slider.current) {\n setIndex(target);\n slider.current.slickGoTo(target);\n }\n };\n const onDisableNavigation = () => {\n if (!isDragging.current)\n setNavigationDisabled(true);\n };\n const onEnableNavigation = (e) => {\n e.stopPropagation();\n isDragging.current = false;\n setNavigationDisabled(false);\n };\n const onToggleLightbox = useCallback(() => setLightbox(!lightbox), [lightbox]);\n const mediaLength = (media === null || media === void 0 ? void 0 : media.length) || 0;\n const placeholder = useMemo(() => placeholderImage || DEFAULT_PLACEHOLDER_IMAGE, [placeholderImage]);\n return (React.createElement(React.Fragment, null,\n React.createElement(Wrapper, null,\n React.createElement(Main, null,\n React.createElement(SliderWrapper, { onMouseDown: onMouseDown, onMouseMove: onMouseMove, onClick: onClick },\n React.createElement(Slider, { ...sliderSettings, swipe: !navigationDisabled, touchMove: !navigationDisabled, swipeToSlide: !navigationDisabled, ref: slider, beforeChange: beforeChange }, !!(media === null || media === void 0 ? void 0 : media.length) ? (media.map((m, i) => {\n var _a;\n return (React.createElement(Item, { key: m.files[0].url || i },\n m.type === 'image' && (React.createElement(Image, { src: (_a = m.files[0].formats.filter(notEmpty).find((x) => x.format === '1170x')) === null || _a === void 0 ? void 0 : _a.url, alt: `Bild ${i + 1}` })),\n m.type === 'threesixty' && (React.createElement(ThreeSixty, { urls: m.files.map((x) => x.url), visible: i === index, onDisableNavigation: onDisableNavigation, navigationDisabled: navigationDisabled })),\n m.type === 'embedded' && React.createElement(EmbededVideo, { src: m.files[0].url, index: i + 1 }),\n m.type === 'sphere' && (React.createElement(Sphere, { visible: i === index, url: m.files[0].url, preview: m.files[0].url, onDisableNavigation: onDisableNavigation, navigationDisabled: navigationDisabled }))));\n })) : (React.createElement(Item, { key: placeholder },\n React.createElement(Image, { src: placeholder, alt: `Bild 1` })))),\n navigationDisabled && mediaLength > 1 && (React.createElement(EnableNavigationButton, null,\n React.createElement(ButtonSecondary, { onClick: onEnableNavigation, title: \"St\\u00E4ng\" },\n React.createElement(ButtonContent, null, \"St\\u00E4ng\"))))),\n !navigationDisabled && mediaLength > 1 && (React.createElement(React.Fragment, null,\n React.createElement(ArrowLeft, { onClick: prevImage, title: \"F\\u00F6reg\\u00E5ende bild\" },\n React.createElement(IconChevronLeft, { block: true })),\n React.createElement(ArrowRight, { onClick: nextImage, title: \"N\\u00E4sta bild\" },\n React.createElement(IconChevronRight, { block: true }))))),\n React.createElement(Alt, null,\n React.createElement(QuickNav, { ref: quickNavRef }, !!(media === null || media === void 0 ? void 0 : media.length) ? (media.map((m, i) => {\n var _a;\n const src = ((_a = m.files[0].formats.filter(notEmpty).find((x) => x.format === '225x150')) === null || _a === void 0 ? void 0 : _a.url) ||\n m.files[0].url;\n return (React.createElement(QuickNavItem, { key: src || i, active: index === i },\n React.createElement(QuickNavBtn, { onClick: () => goTo(i), title: `Gå till bild ${i + 1}` },\n m.type === 'image' && React.createElement(QuickNavImg, { src: src, alt: `Bild ${i + 1}` }),\n m.type === 'threesixty' && React.createElement(QuickNavImg, { src: src, alt: `Bild ${i + 1}` }),\n m.type === 'embedded' && React.createElement(QuickNavEmbeded, { src: src, index: i }),\n m.type === 'sphere' && (React.createElement(QuickNavImg, { src: m.files[0].url, alt: `Bild ${i + 1}` })))));\n })) : (React.createElement(QuickNavItem, { key: placeholder, active: true },\n React.createElement(QuickNavBtn, { onClick: () => goTo(0), title: `Gå till bild 0` },\n React.createElement(QuickNavImg, { src: placeholder, alt: `Bild 1` }))))))),\n lightbox && !!(media === null || media === void 0 ? void 0 : media.length) && (React.createElement(Lightbox, { media: media, index: index, onClose: onToggleLightbox }))));\n};\nexport default Gallery;\n","import styled from 'styled-components';\nimport { size } from '../../layout/helpers';\nimport { Wrapper as Container } from '../Container/wrapper';\nexport const ProductPage = styled.div `\n display: flex;\n flex-direction: column;\n\n ${(props) => props.theme.breakpoint.Md} {\n flex-direction: row;\n }\n`;\nexport const ProductPageAside = styled.div `\n ${(props) => props.theme.breakpoint.LtMd} {\n display: contents;\n }\n\n ${(props) => props.theme.breakpoint.Md} {\n flex-shrink: 0;\n width: calc(375px + ${size(2)});\n padding-right: ${size(2)};\n }\n`;\nexport const ProductPageMain = styled.div `\n ${(props) => props.theme.breakpoint.LtMd} {\n display: contents;\n }\n\n ${(props) => props.theme.breakpoint.Md} {\n flex: 1 1 100%;\n min-width: 0;\n padding-left: ${size(2)};\n }\n`;\nexport const ProductPageAsideSection = styled.div `\n ${(props) => props.theme.breakpoint.LtMd} {\n order: ${(props) => props.mobileOrder};\n\n & + & {\n margin-top: ${size(2)};\n }\n\n :last-child {\n margin-bottom: ${size(4)};\n }\n\n ${ProductPageMain} & {\n margin-top: ${size(2)};\n }\n }\n\n ${(props) => props.theme.breakpoint.Md} {\n & + & {\n margin-top: ${size(4)};\n }\n\n ${ProductPageMain} & {\n margin-bottom: ${size(8)};\n }\n }\n`;\nexport const ProductPageMainSection = styled.div `\n ${(props) => props.theme.breakpoint.LtMd} {\n order: 99;\n padding: ${size(4)} 0;\n border-top: ${size(1)} solid ${(props) => props.theme.color.accent};\n\n ${Container} & {\n margin-left: ${size(-2)};\n margin-right: ${size(-2)};\n padding-left: ${size(2)};\n padding-right: ${size(2)};\n }\n }\n\n ${(props) => props.theme.breakpoint.Md} {\n & + & {\n margin-top: ${size(8)};\n padding-top: ${size(8)};\n border-top: 1px solid ${(props) => props.theme.color.border};\n }\n }\n`;\nexport const ProductPageContentLimit = styled.div `\n max-width: 420px;\n`;\n","import { gql } from '@apollo/client';\nconst FinancialOptionDetail = gql `\n fragment FinancialOptionDetail on FinancialOptionDetail {\n current\n default\n max\n min\n step\n }\n`;\nconst HoursOpen = gql `\n fragment HoursOpen on HoursOpen {\n from\n until\n }\n`;\nconst SEARCH_ITEM_QUERY = gql `\n query SearchItem($id: ID!) {\n vehicle(id: $id) {\n id\n documents\n contact {\n name\n email\n phonenumber\n avatar\n }\n manufacturer {\n description\n logotype\n name\n packageOption {\n description\n image\n link {\n title\n url\n }\n title\n }\n }\n packageOptions {\n description\n image\n link {\n title\n url\n }\n title\n }\n publishedAt\n branch {\n connections {\n id\n name\n location {\n city\n county\n streetAddress\n postalCode\n position {\n latitude\n longitude\n }\n }\n }\n contact {\n name\n email\n phonenumber\n avatar\n }\n id\n description\n name\n homepage\n flags {\n mrf\n centralStorage\n ecommerce\n }\n logotype\n openingHours {\n monday {\n ...HoursOpen\n }\n tuesday {\n ...HoursOpen\n }\n wednesday {\n ...HoursOpen\n }\n thursday {\n ...HoursOpen\n }\n friday {\n ...HoursOpen\n }\n saturday {\n ...HoursOpen\n }\n sunday {\n ...HoursOpen\n }\n }\n organization {\n branches {\n id\n }\n parent {\n id\n }\n }\n location {\n position {\n latitude\n longitude\n }\n city\n county\n streetAddress\n postalCode\n }\n promos {\n description\n image\n title\n }\n services {\n markdown\n title\n }\n }\n data {\n enginePower\n equipmentLevel\n fuelType\n gearbox\n gearboxType\n manufactureYear\n manufacturer\n mileage\n modelName\n modelSeries\n modelYear\n properties\n propertySet\n options\n registrationNumber\n salesName\n vin\n }\n description\n ecommerce {\n enabled\n reserved\n withTradeIn\n withHomeDelivery\n }\n insuranceOptions {\n description\n logotype\n url\n name\n terms\n }\n financialOptions {\n description\n administrationFee\n downPayment {\n ...FinancialOptionDetail\n }\n duration {\n ...FinancialOptionDetail\n }\n effectiveInterest\n image\n includes\n includes\n interest\n link {\n title\n url\n }\n loanAmount\n logotype\n mileage {\n ...FinancialOptionDetail\n }\n monthlyCost\n name\n residual {\n ...FinancialOptionDetail\n }\n setupFee\n terms\n totalCreditCost\n totalResidualValue\n type\n url\n }\n media {\n type\n files {\n formats {\n format\n url\n }\n url\n }\n }\n location {\n city\n county\n streetAddress\n postalCode\n }\n price\n shortDescription\n title\n }\n }\n ${HoursOpen}\n ${FinancialOptionDetail}\n`;\nexport default SEARCH_ITEM_QUERY;\n","import { useQuery } from '@apollo/client';\nimport SEARCH_ITEM_QUERY from '../queries/SEARCH_ITEM_QUERY';\nconst useSearchItem = (id) => useQuery(SEARCH_ITEM_QUERY, {\n variables: { id: id },\n skip: !id,\n});\nexport default useSearchItem;\n","import styled from 'styled-components';\nimport { size } from '../../layout/helpers';\nexport const Wrapper = styled.div `\n display: flex;\n align-items: center;\n padding: ${size(1)};\n border: 1px solid ${(props) => props.theme.color.border};\n border-radius: 3px;\n\n & + & {\n margin-top: ${size(1)};\n }\n`;\nexport const Logo = styled.div `\n position: relative;\n flex-shrink: 0;\n margin-right: ${size(1)};\n width: ${size(9.5)};\n height: ${size(6)};\n`;\nexport const LogoImg = styled.img `\n display: block;\n position: absolute;\n left: 0;\n top: 0;\n right: auto;\n bottom: 0;\n margin: auto;\n max-width: 100%;\n max-height: 100%;\n`;\nexport const Content = styled.div `\n flex: 1 1 auto;\n text-align: right;\n line-height: 1.4;\n`;\nexport const OptionBoxHeading = styled.div.attrs(() => ({\n className: 'wayke__theme wayke__font--bold',\n})) `\n font-size: 1rem;\n`;\nexport const OptionBoxContent = styled.div `\n margin-top: ${size(0.5)};\n font-size: 0.875rem;\n\n p {\n margin: 0;\n }\n`;\n","import * as React from 'react';\nimport { Logo, LogoImg, Content, Wrapper } from './wrapper';\nconst OptionBox = ({ logo, logo2x, logoAlt, children }) => (React.createElement(Wrapper, null,\n logo && (React.createElement(Logo, null,\n React.createElement(LogoImg, { src: logo, srcSet: logo2x, alt: logoAlt }))),\n React.createElement(Content, null, children)));\nexport default OptionBox;\n","import styled from 'styled-components';\nimport { size } from '../../layout/helpers';\nexport const List = styled.ul `\n list-style: none;\n padding: 0;\n margin: 0;\n`;\nexport const Item = styled.li `\n display: flex;\n align-items: flex-start;\n\n & + & {\n margin-top: ${size(1)};\n }\n`;\nexport const Label = styled.div `\n flex: 1 1 auto;\n`;\nexport const Value = styled.div.attrs(() => ({\n className: 'wayke__theme wayke__font--bold',\n})) `\n flex-shrink: 0;\n padding-left: ${size(2)};\n`;\n","import React from 'react';\nimport { List, Item, Label, Value } from './wrapper';\nconst DataList = ({ items }) => (React.createElement(List, null, items.map((item) => (React.createElement(Item, { key: item.label },\n React.createElement(Label, null, item.label),\n React.createElement(Value, null, item.value))))));\nexport default DataList;\n","import React, { useState, useCallback } from 'react';\nimport OptionBox from '../OptionBox/index';\nimport { OptionBoxHeading, OptionBoxContent } from '../OptionBox/wrapper';\nimport { UtilityTextPrimary } from '../Utility/index';\nimport { ButtonInline } from '../Button/index';\nimport { numberSeparator } from '../../utils/formats';\nimport Modal from '../Modal/index';\nimport { Image, ModalFoldout, ModalFoldoutBody } from '../Modal/wrapper';\nimport Content from '../Content/index';\nimport DataList from '../DataList/index';\nconst Leasing = ({ financialOption }) => {\n const [modal, setModal] = useState(false);\n const toggleModal = useCallback(() => setModal(!modal), [modal]);\n const { image, description, monthlyCost, duration, mileage } = financialOption;\n return (React.createElement(React.Fragment, null,\n modal && (React.createElement(Modal, { title: \"Privatleasing\", onClose: toggleModal },\n image && React.createElement(Image, { src: image, alt: \"Privatleasing\" }),\n description && React.createElement(Content, { dangerouslySetInnerHTML: { __html: description } }),\n React.createElement(ModalFoldout, null,\n React.createElement(ModalFoldoutBody, null,\n React.createElement(DataList, { items: [\n {\n label: 'Månadskostnad',\n value: `${numberSeparator(monthlyCost || 0)} kr/mån`,\n },\n {\n label: 'Bindningstid',\n value: `${duration === null || duration === void 0 ? void 0 : duration.current} månader`,\n },\n {\n label: 'Årlig körsträcka',\n value: `${numberSeparator((mileage === null || mileage === void 0 ? void 0 : mileage.current) || 0)} mil/år`,\n },\n ] }))))),\n React.createElement(OptionBox, null,\n React.createElement(React.Fragment, null, monthlyCost !== null && monthlyCost !== undefined && (React.createElement(OptionBoxHeading, null, `ca ${numberSeparator(monthlyCost)} kr/mån`))),\n React.createElement(OptionBoxContent, null,\n React.createElement(\"p\", null,\n \"Privatleasing\",\n ' ',\n (mileage === null || mileage === void 0 ? void 0 : mileage.current) && (duration === null || duration === void 0 ? void 0 : duration.current) && (React.createElement(React.Fragment, null,\n React.createElement(UtilityTextPrimary, null,\n numberSeparator(mileage === null || mileage === void 0 ? void 0 : mileage.current),\n \" mil/\\u00E5r\"),\n ' ',\n \"i \",\n React.createElement(UtilityTextPrimary, null, duration === null || duration === void 0 ? void 0 :\n duration.current,\n \" m\\u00E5n\"),\n \".\",\n ' '))),\n React.createElement(\"p\", null,\n React.createElement(ButtonInline, { onClick: toggleModal }, \"L\\u00E4s mer\"))))));\n};\nexport default Leasing;\n","import { gql } from '@apollo/client';\nconst FinancialOptionDetail = gql `\n fragment FinancialOptionDetail on FinancialOptionDetail {\n current\n default\n max\n min\n step\n }\n`;\nconst LOAN_CALCULATION = gql `\n query LoanCalculation($id: ID!, $duration: Int!, $downPayment: Int!, $residual: Float!) {\n loan(id: $id, duration: $duration, downPayment: $downPayment, residual: $residual) {\n downPayment {\n ...FinancialOptionDetail\n }\n effectiveInterest\n duration {\n ...FinancialOptionDetail\n }\n residual {\n ...FinancialOptionDetail\n }\n mileage {\n ...FinancialOptionDetail\n }\n interest\n loanAmount\n totalCreditCost\n totalResidualValue\n monthlyCost\n }\n }\n ${FinancialOptionDetail}\n`;\nexport default LOAN_CALCULATION;\n","import { useQuery } from '@apollo/client';\nimport LOAN_CALCULATION from '../queries/LOAN_CALCULATION';\nconst useLoanCalculation = (id, duration, downPayment, residual) => useQuery(LOAN_CALCULATION, {\n variables: {\n id,\n duration: duration,\n downPayment: downPayment,\n residual: residual || 0,\n },\n skip: duration === undefined || downPayment === undefined,\n});\nexport default useLoanCalculation;\n","import styled from 'styled-components';\nimport { size } from '../../layout/helpers';\nexport const ContentLogo = styled.div `\n ${(props) => props.theme.breakpoint.Sm} {\n display: flex;\n align-items: flex-start;\n }\n`;\nexport const ContentLogoText = styled.div `\n ${(props) => props.theme.breakpoint.Sm} {\n flex: 1 1 auto;\n }\n`;\nexport const ContentLogoMedia = styled.div `\n ${(props) => props.theme.breakpoint.LtSm} {\n margin-top: ${size(2)};\n }\n\n ${(props) => props.theme.breakpoint.Sm} {\n flex-shrink: 0;\n padding-left: ${size(4)};\n }\n`;\n","import styled, { css } from 'styled-components';\nimport { size } from '../../layout/helpers';\nexport const Wrapper = styled.div `\n display: flex;\n align-items: flex-end;\n`;\nexport const Label = styled.div.attrs(() => ({\n className: 'wayke__theme wayke__font--bold',\n})) `\n flex: 1 1 auto;\n`;\nexport const Value = styled.div.attrs(() => ({\n className: 'wayke__theme wayke__font--bold wayke__color--primary-text',\n})) `\n flex-shrink: 0;\n padding-left: ${size(2)};\n font-size: 1.125rem;\n\n ${({ isHighlighted }) => isHighlighted &&\n css `\n font-size: 1.375rem;\n color: ${(props) => props.theme.color.textDark} !important;\n `}\n`;\n","import React from 'react';\nimport { Wrapper, Label, Value } from './wrapper';\nconst RangeSliderLabel = ({ label, value, highlight }) => (React.createElement(Wrapper, null,\n React.createElement(Label, null, label),\n value && React.createElement(Value, { isHighlighted: highlight }, value)));\nexport default RangeSliderLabel;\n","import React from 'react';\nimport { Slider, Rail, Handles, Tracks } from 'react-compound-slider';\nimport { Bar, RangeSpan, RangeSpanItem, Slider as OwnSlider } from './wrapper';\nimport { Handle } from './handle';\nimport { Track } from './track';\nimport { numberSeparator } from '../../utils/formats';\nconst RangeSliderSimple = ({ loading, values, domain, steps, unit, formatValues, onChange, onUpdate, }) => {\n const first = steps[0];\n const second = steps[1];\n const step = second - first;\n const currentMin = formatValues ? numberSeparator(domain[0]) : domain[0];\n const currentMax = formatValues ? numberSeparator(domain[1]) : domain[1];\n if (steps.length < 2) {\n return null;\n }\n return (React.createElement(React.Fragment, null,\n React.createElement(OwnSlider, null,\n React.createElement(Slider, { disabled: loading, mode: 1, step: step, domain: domain, onChange: onChange, onUpdate: onUpdate, values: values, rootStyle: { position: 'relative' } },\n React.createElement(Rail, null, ({ getRailProps }) => React.createElement(Bar, { ...getRailProps() })),\n React.createElement(Handles, null, ({ handles, getHandleProps }) => (React.createElement(\"div\", { className: \"slider-handles\" }, handles.map((handle) => (React.createElement(Handle, { key: handle.id, handle: handle, domain: domain, getHandleProps: getHandleProps })))))),\n React.createElement(Tracks, { right: false }, ({ tracks, getTrackProps }) => (React.createElement(\"div\", { className: \"slider-tracks\" }, tracks.map(({ id, source, target }) => (React.createElement(Track, { key: id, source: source, target: target, getTrackProps: getTrackProps })))))))),\n false && (React.createElement(RangeSpan, null,\n React.createElement(RangeSpanItem, null, `${currentMin}${unit ? ` ${unit}` : ''}`),\n React.createElement(RangeSpanItem, null, `${currentMax}${unit ? ` ${unit}` : ''}`)))));\n};\nexport default RangeSliderSimple;\n","import React, { useCallback, useEffect, useState } from 'react';\nimport { numberSeparator } from '../../utils/formats';\nimport RangeSliderLabel from '../RangeSliderLabel/index';\nimport { RepeatTiny } from '../Repeat/index';\nimport RangeSliderSimple from './RangeSliderSimple';\nconst SliderWithLabel = ({ label, values, domain, steps, loading, unit, formatValues, onChange, }) => {\n const [local, setLocal] = useState(steps);\n const onUpdate = useCallback((nextValues) => {\n setLocal([...nextValues]);\n }, []);\n useEffect(() => {\n if (!loading)\n setLocal(undefined);\n }, [loading]);\n return (React.createElement(React.Fragment, null,\n React.createElement(RepeatTiny, null,\n React.createElement(RangeSliderLabel, { label: label, value: `${numberSeparator((local === null || local === void 0 ? void 0 : local[0]) || values[0])}${unit ? ` ${unit}` : ''}` })),\n React.createElement(RepeatTiny, null,\n React.createElement(RangeSliderSimple, { loading: loading, values: values, domain: domain, steps: steps, onChange: onChange, onUpdate: onUpdate, unit: unit, formatValues: formatValues }))));\n};\nexport default SliderWithLabel;\n","import React, { useState, useCallback, useEffect } from 'react';\nimport useLoanCalculation from '../../hooks/useLoan';\nimport Modal from '../Modal/index';\nimport { ModalFoldout, ModalFoldoutBody } from '../Modal/wrapper';\nimport Content from '../Content/index';\nimport LogoBox from '../LogoBox/index';\nimport { Repeat, RepeatSmall, RepeatTiny } from '../Repeat/index';\nimport { numberSeparator } from '../../utils/formats';\nimport { ButtonClear, ButtonContent } from '../Button/index';\nimport { ContentLogo, ContentLogoText, ContentLogoMedia } from '../ContentLogo/index';\nimport DataList from '../DataList/index';\nimport PubSub from '../../utils/pubsub/pubsub';\nimport SliderWithLabel from '../RangeSlider/SliderWithLabel';\nconst stepGenerator = (step, max, steps = [], current) => {\n if (step === 0 && current === undefined)\n return steps;\n if (current !== undefined && current >= max && step !== 0) {\n return steps;\n }\n const nextCurrent = current ? step + current : step;\n steps.push(nextCurrent);\n return stepGenerator(step, max, steps, nextCurrent);\n};\nconst LoanModal = ({ id, financialOption, onClose }) => {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;\n const [tmp, setTmp] = useState();\n const [extend, setExtend] = React.useState(false);\n const onToggleExtend = React.useCallback(() => {\n if (!extend) {\n PubSub.publish('FinanceInterest');\n }\n setExtend(!extend);\n }, [extend]);\n const [variables, setVariables] = useState({\n duration: (_a = financialOption.duration) === null || _a === void 0 ? void 0 : _a.current,\n downPayment: (_b = financialOption.downPayment) === null || _b === void 0 ? void 0 : _b.current,\n residual: (_c = financialOption.residual) === null || _c === void 0 ? void 0 : _c.current,\n });\n const { duration, downPayment, residual } = variables;\n const { loading, data } = useLoanCalculation(id, duration, downPayment, residual);\n useEffect(() => {\n var _a, _b, _c, _d, _e, _f;\n if (data) {\n setTmp(data);\n setVariables({\n duration: ((_b = (_a = data === null || data === void 0 ? void 0 : data.loan) === null || _a === void 0 ? void 0 : _a.duration) === null || _b === void 0 ? void 0 : _b.current) || 0,\n downPayment: ((_d = (_c = data === null || data === void 0 ? void 0 : data.loan) === null || _c === void 0 ? void 0 : _c.downPayment) === null || _d === void 0 ? void 0 : _d.current) || 0,\n residual: ((_f = (_e = data === null || data === void 0 ? void 0 : data.loan) === null || _e === void 0 ? void 0 : _e.residual) === null || _f === void 0 ? void 0 : _f.current) || 0,\n });\n }\n }, [data]);\n const loan = (data === null || data === void 0 ? void 0 : data.loan) || (tmp === null || tmp === void 0 ? void 0 : tmp.loan);\n const downPaymentCurrent = ((_d = loan === null || loan === void 0 ? void 0 : loan.downPayment) === null || _d === void 0 ? void 0 : _d.current) || 0;\n const downPaymentMin = ((_e = loan === null || loan === void 0 ? void 0 : loan.downPayment) === null || _e === void 0 ? void 0 : _e.min) || 0;\n const downPaymentMax = ((_f = loan === null || loan === void 0 ? void 0 : loan.downPayment) === null || _f === void 0 ? void 0 : _f.max) || 0;\n const downPaymentStep = ((_g = loan === null || loan === void 0 ? void 0 : loan.downPayment) === null || _g === void 0 ? void 0 : _g.step) || 0;\n const downPaymentSteps = stepGenerator(downPaymentStep, downPaymentMax);\n const onDownPaymentChange = useCallback((values) => {\n PubSub.publish('FinanceInterest');\n setVariables({ ...variables, downPayment: values[0] });\n }, [variables]);\n const durationCurrent = ((_h = loan === null || loan === void 0 ? void 0 : loan.duration) === null || _h === void 0 ? void 0 : _h.current) || 0;\n const durationMin = ((_j = loan === null || loan === void 0 ? void 0 : loan.duration) === null || _j === void 0 ? void 0 : _j.min) || 0;\n const durationMax = ((_k = loan === null || loan === void 0 ? void 0 : loan.duration) === null || _k === void 0 ? void 0 : _k.max) || 0;\n const durationStep = ((_l = loan === null || loan === void 0 ? void 0 : loan.duration) === null || _l === void 0 ? void 0 : _l.step) || 0;\n const durationSteps = stepGenerator(durationStep, durationMax);\n const onDurationChange = useCallback((values) => {\n PubSub.publish('FinanceInterest');\n setVariables({ ...variables, duration: values[0] });\n }, [variables]);\n const residualCurrent = (((_m = loan === null || loan === void 0 ? void 0 : loan.residual) === null || _m === void 0 ? void 0 : _m.current) || 0) * 100 || 0;\n const residualMin = (((_o = loan === null || loan === void 0 ? void 0 : loan.residual) === null || _o === void 0 ? void 0 : _o.min) || 0) * 100 || 0;\n const residualMax = (((_p = loan === null || loan === void 0 ? void 0 : loan.residual) === null || _p === void 0 ? void 0 : _p.max) || 0) * 100 || 0;\n const residualStep = (((_q = loan === null || loan === void 0 ? void 0 : loan.residual) === null || _q === void 0 ? void 0 : _q.step) || 0) * 100 || 0;\n const residualSteps = stepGenerator(residualStep, residualMax);\n const onResidualChange = useCallback((values) => {\n PubSub.publish('FinanceInterest');\n setVariables({ ...variables, residual: values[0] / 100 });\n }, [variables]);\n const interestText = (((loan === null || loan === void 0 ? void 0 : loan.interest) || 0) * 100).toFixed(2);\n const effectiveInterestText = (((loan === null || loan === void 0 ? void 0 : loan.effectiveInterest) || 0) * 100).toFixed(2);\n return (React.createElement(Modal, { title: \"L\\u00E5nealternativ\", onClose: onClose },\n React.createElement(Repeat, null,\n React.createElement(ContentLogo, null,\n (financialOption === null || financialOption === void 0 ? void 0 : financialOption.description) && (React.createElement(ContentLogoText, null,\n React.createElement(Content, null,\n React.createElement(\"p\", null, financialOption.description)))),\n (financialOption === null || financialOption === void 0 ? void 0 : financialOption.image) && (React.createElement(ContentLogoMedia, null,\n React.createElement(LogoBox, { logo: financialOption.image, alt: financialOption.name || 'Logotyp', wide: true }))))),\n React.createElement(Repeat, null,\n React.createElement(RepeatSmall, null,\n React.createElement(SliderWithLabel, { label: \"Kontantinsatts\", values: [downPaymentCurrent], domain: [downPaymentMin, downPaymentMax], steps: downPaymentSteps, unit: \"kr\", formatValues: true, loading: loading, onChange: onDownPaymentChange })),\n React.createElement(RepeatSmall, null,\n React.createElement(SliderWithLabel, { label: \"Avbetalning\", values: [durationCurrent], domain: [durationMin, durationMax], steps: durationSteps, unit: \"m\\u00E5n\", loading: loading, onChange: onDurationChange })),\n residual !== undefined && residualMax !== 0 && (React.createElement(RepeatSmall, null,\n React.createElement(SliderWithLabel, { label: \"Restskuld\", values: [residualCurrent], domain: [residualMin, residualMax], steps: residualSteps, unit: \"%\", loading: loading, onChange: onResidualChange }))),\n React.createElement(RepeatSmall, null,\n React.createElement(RepeatTiny, null,\n React.createElement(Content, { small: true },\n React.createElement(\"p\", null, `*Beräknat på ${interestText} % ränta (effektivt ${effectiveInterestText} %)${(loan === null || loan === void 0 ? void 0 : loan.mileage) !== null ? `och en årlig körsträcka om ${loan === null || loan === void 0 ? void 0 : loan.mileage} mil.` : ''}`)))),\n React.createElement(RepeatSmall, null,\n React.createElement(ButtonClear, { onClick: onToggleExtend, title: extend ? 'Visa mindre information' : 'Visa mer information' },\n React.createElement(ButtonContent, null, extend ? 'Mindre information' : 'Mer information'))),\n React.createElement(React.Fragment, null, extend && (React.createElement(ModalFoldout, null,\n React.createElement(ModalFoldoutBody, null,\n React.createElement(DataList, { items: [\n {\n label: 'Ränta',\n value: `${interestText} %`,\n },\n {\n label: 'Effektiv ränta',\n value: `${effectiveInterestText} %`,\n },\n {\n label: 'Uppläggningskostnad',\n value: `${numberSeparator((financialOption === null || financialOption === void 0 ? void 0 : financialOption.setupFee) || 0)} kr`,\n },\n {\n label: 'Administrativa avgifter',\n value: `${numberSeparator((financialOption === null || financialOption === void 0 ? void 0 : financialOption.administrationFee) || 0)} kr/mån`,\n },\n {\n label: 'Total kreditkostnad',\n value: `${numberSeparator((loan === null || loan === void 0 ? void 0 : loan.totalCreditCost) || 0)} kr`,\n },\n ] }))))))));\n};\nexport default LoanModal;\n","import React, { useState, useCallback } from 'react';\nimport OptionBox from '../OptionBox/index';\nimport { OptionBoxHeading, OptionBoxContent } from '../OptionBox/wrapper';\nimport { UtilityTextPrimary } from '../Utility/index';\nimport { ButtonInline } from '../Button/index';\nimport { numberSeparator } from '../../utils/formats';\nimport useLoanCalculation from '../../hooks/useLoan';\nimport LoanModal from './LoanModal';\nconst Loan = ({ id, financialOption }) => {\n var _a, _b, _c, _d, _e, _f, _g;\n const [modal, setModal] = useState(false);\n const toggleModal = useCallback(() => setModal(!modal), [modal]);\n const { data } = useLoanCalculation(id, (_a = financialOption.duration) === null || _a === void 0 ? void 0 : _a.current, (_b = financialOption.downPayment) === null || _b === void 0 ? void 0 : _b.current, (_c = financialOption.residual) === null || _c === void 0 ? void 0 : _c.current);\n const interest = (_d = data === null || data === void 0 ? void 0 : data.loan) === null || _d === void 0 ? void 0 : _d.interest;\n const duration = (_f = (_e = data === null || data === void 0 ? void 0 : data.loan) === null || _e === void 0 ? void 0 : _e.duration) === null || _f === void 0 ? void 0 : _f.current;\n const monthlyCost = (_g = data === null || data === void 0 ? void 0 : data.loan) === null || _g === void 0 ? void 0 : _g.monthlyCost;\n const logo = (financialOption === null || financialOption === void 0 ? void 0 : financialOption.logotype) || 'https://placehold.it/67x10';\n // Skeleton?\n if (financialOption.loanAmount === undefined ||\n financialOption.loanAmount === null ||\n interest === undefined ||\n duration === undefined ||\n monthlyCost === undefined ||\n interest === null ||\n duration === null ||\n monthlyCost === null) {\n return (React.createElement(OptionBox, { logo: logo, logoAlt: \"Logotyp\" },\n React.createElement(OptionBoxHeading, null, \"Laddar...\"),\n React.createElement(OptionBoxContent, null,\n React.createElement(\"p\", null, \"Laddar...\"))));\n }\n return (React.createElement(React.Fragment, null,\n modal && React.createElement(LoanModal, { id: id, financialOption: financialOption, onClose: toggleModal }),\n React.createElement(OptionBox, { logo: logo, logoAlt: \"Logotyp\" },\n React.createElement(React.Fragment, null,\n React.createElement(OptionBoxHeading, null, `${numberSeparator(monthlyCost)} kr/mån*`),\n React.createElement(OptionBoxContent, null,\n React.createElement(\"p\", null,\n \"Delbetala\",\n ' ',\n financialOption.loanAmount && duration && (React.createElement(React.Fragment, null,\n React.createElement(UtilityTextPrimary, null,\n numberSeparator(financialOption.loanAmount),\n \" kr\"),\n ' ',\n \"i \",\n React.createElement(UtilityTextPrimary, null,\n duration,\n \" m\\u00E5n\"),\n \".\"))),\n React.createElement(\"p\", null,\n `*Beräknat på ${(interest * 100).toFixed(2)}% ränta. `,\n React.createElement(ButtonInline, { onClick: toggleModal }, \"L\\u00E4s mer\")))))));\n};\nexport default Loan;\n","import React, { Fragment } from 'react';\nimport { Repeat, RepeatTiny } from '../Repeat/index';\nimport { VisualHeading } from '../Heading/index';\nimport Leasing from './leasing';\nimport Loan from './loan';\nconst FinancialOptions = ({ id, financialOptions }) => (React.createElement(Repeat, null,\n React.createElement(RepeatTiny, null,\n React.createElement(VisualHeading, null, \"Andra finansieringsalternativ\")),\n React.createElement(RepeatTiny, null, financialOptions.map((financialOption, index) => (React.createElement(Fragment, { key: index },\n financialOption.type === 'leasing' && React.createElement(Leasing, { financialOption: financialOption }),\n financialOption.type === 'loan' && React.createElement(Loan, { id: id, financialOption: financialOption })))))));\nexport default FinancialOptions;\n","import styled from 'styled-components';\nimport { size } from '../../layout/helpers';\nimport { H2 } from '../Heading/index';\nexport const Wrapper = styled.article `\n box-shadow: 2px 2px 8px rgba(0, 0, 0, 0.1);\n border-radius: 3px;\n overflow: hidden;\n`;\nexport const Main = styled.div `\n padding: ${size(2.5)};\n`;\nexport const Heading = styled(H2).attrs(() => ({\n as: 'h1',\n})) `\n margin-bottom: 0;\n`;\nexport const Description = styled.div `\n margin-top: ${size(1)};\n`;\nexport const Footer = styled.div `\n margin-top: ${size(1)};\n color: red;\n`;\nexport const Foldout = styled.div `\n background-color: ${(props) => props.theme.color.accent};\n padding: ${size(2.5)};\n`;\n","import React from 'react';\nimport { Wrapper, Main, Heading, Description, Footer, Foldout } from './wrapper';\nimport { ButtonClear, ButtonContent } from '../Button/index';\nconst DetailBox = ({ heading, description, children }) => {\n const [extend, setExtend] = React.useState(false);\n const onToggleExtend = React.useCallback(() => setExtend(!extend), [extend]);\n const extendBtnText = extend ? 'Mindre information' : 'Mer information';\n return (React.createElement(Wrapper, null,\n React.createElement(Main, null,\n React.createElement(Heading, null, heading),\n description && React.createElement(Description, null, description),\n React.createElement(Footer, null,\n React.createElement(ButtonClear, { onClick: onToggleExtend },\n React.createElement(ButtonContent, null, extendBtnText)))),\n extend && React.createElement(Foldout, null, children)));\n};\nexport default DetailBox;\n","import styled from 'styled-components';\nimport { size } from '../../layout/helpers';\nimport { ButtonReset } from '../Button/index';\nexport const Wrapper = styled.div ``;\nexport const Header = styled.div `\n display: flex;\n align-items: center;\n`;\nexport const Title = styled.div ``;\nexport const Info = styled.div `\n margin-left: ${size(1)};\n`;\nexport const InfoBtn = styled(ButtonReset).attrs(() => ({\n className: 'wayke__theme wayke__color--primary-text',\n})) `\n position: relative;\n display: block;\n font: inherit;\n font-size: 1em;\n transform-origin: 50% 50%;\n transition: transform 300ms cubic-bezier(0.47, 1.64, 0.41, 0.8);\n\n :before {\n content: '';\n position: absolute;\n top: ${size(-0.5)};\n bottom: ${size(-0.5)};\n left: ${size(-0.5)};\n right: ${size(-0.5)};\n background-color: ${(props) => props.theme.color.accentDark};\n border-radius: 50%;\n opacity: 0;\n transition: opacity 200ms ease;\n }\n\n > * {\n position: relative;\n z-index: 1;\n }\n\n :hover {\n :before {\n opacity: 1;\n }\n }\n\n :active {\n transform: scale(0.95);\n }\n`;\nexport const Extend = styled.div `\n padding-top: ${size(1)};\n margin-top: ${size(1)};\n border-top: 1px solid ${(props) => props.theme.color.border};\n font-size: 0.875em;\n`;\n","import React, { useState, useCallback } from 'react';\nimport { Wrapper, Header, Title, Info, InfoBtn, Extend } from './wrapper';\nimport { IconInfo } from '../Icon/index';\nconst ExtendInfo = ({ title, children }) => {\n const [extend, setExtend] = useState(false);\n const onToggleExtend = useCallback(() => setExtend(!extend), [extend]);\n return (React.createElement(Wrapper, null,\n React.createElement(Header, null,\n React.createElement(Title, null, title),\n children && (React.createElement(Info, null,\n React.createElement(InfoBtn, { onClick: onToggleExtend, title: \"Mer information\" },\n React.createElement(IconInfo, { block: true }))))),\n extend && React.createElement(Extend, null, children)));\n};\nexport default ExtendInfo;\n","import styled from 'styled-components';\nimport { size } from '../../layout/helpers';\nexport const Wrapper = styled.label.attrs(() => ({\n className: 'wayke__theme wayke__font--bold',\n})) `\n margin-bottom: ${size(0.5)};\n font-size: 0.875rem;\n`;\n","import React from 'react';\nimport { Wrapper } from './wrapper';\nconst InputLabel = ({ children, htmlFor }) => (React.createElement(Wrapper, { htmlFor: htmlFor }, children));\nexport default InputLabel;\n","import styled from 'styled-components';\nimport { size } from '../../layout/helpers';\nexport const Wrapper = styled.div `\n position: relative;\n display: flex;\n align-items: stretch;\n background-color: ${(props) => props.theme.color.accent};\n border-radius: 3px;\n`;\nexport const Input = styled.input.attrs(() => ({\n type: 'text',\n className: 'wayke__theme wayke__font--regular',\n})) `\n flex: 1 1 auto;\n display: block;\n width: 100%;\n height: ${(props) => props.theme.distances.inputHeight};\n padding: 0 ${size(2)};\n background-color: transparent;\n font-size: 16px;\n border: none;\n border-radius: 0;\n box-shadow: none;\n -moz-appearance: none;\n -webkit-appearance: none;\n\n :focus {\n outline: none;\n }\n\n &::-webkit-input-placeholder {\n font-family: inherit;\n color: ${(props) => props.theme.color.textDarkLighten};\n font-size: 1em;\n }\n\n &:-moz-placeholder {\n font-family: inherit;\n color: ${(props) => props.theme.color.textDarkLighten};\n font-size: 1em;\n }\n\n &::-moz-placeholder {\n font-family: inherit;\n color: ${(props) => props.theme.color.textDarkLighten};\n font-size: 1em;\n }\n\n &:-ms-input-placeholder {\n font-family: inherit;\n color: ${(props) => props.theme.color.textDarkLighten};\n font-size: 1em;\n }\n`;\n","import React from 'react';\nimport { Wrapper, Input } from './wrapper';\nconst InputText = ({ placeholder, label, value, id, onChange, onKeyDown }) => (React.createElement(Wrapper, null,\n React.createElement(Input, { placeholder: placeholder, value: value, id: id, \"aria-label\": label, onChange: onChange, onKeyDown: onKeyDown })));\nexport default InputText;\n","import * as React from 'react';\nimport styled, { css } from 'styled-components';\nimport { size } from '../../layout/helpers';\nexport const Label = styled.label.attrs(() => ({\n className: 'wayke__theme wayke__color--primary-text',\n})) `\n position: relative;\n display: flex;\n align-items: flex-start;\n font-size: 1rem;\n line-height: 1.2;\n cursor: pointer;\n\n :before {\n content: '';\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: ${size(2.5)};\n height: ${size(2.5)};\n margin-right: ${size(1)};\n background-color: ${(props) => props.theme.color.accent};\n color: currentColor;\n border: none;\n box-shadow: inset 1px 1px 2px rgba(0, 0, 0, 0.07);\n text-align: center;\n font-size: 15px;\n cursor: pointer;\n border-radius: 3px;\n margin-top: -2px;\n }\n`;\nexport const Wrapper = styled((props) => React.createElement(\"div\", { ...props })).attrs(({ type, checked }) => ({\n role: type || 'checkbox',\n 'aria-checked': checked,\n})) `\n ${({ error }) => error &&\n css `\n ${Label} {\n color: ${(props) => props.theme.color.ui.negative};\n\n :before {\n background-color: ${(props) => props.theme.color.ui.negativeLight};\n }\n }\n `}\n`;\nexport const Input = styled((props) => (React.createElement(\"input\", { ...props, className: `${props.checked ? 'checked' : undefined} ${props.className}` }))).attrs(({ type, checked }) => ({\n checked,\n type: type || 'checkbox',\n})) `\n position: fixed;\n left: -9999px;\n opacity: 0;\n\n &[disabled] {\n & + ${Label} {\n color: ${(props) => props.theme.color.disabledText};\n\n &:before {\n background-color: ${(props) => props.theme.color.disabledBg};\n cursor: not-allowed;\n }\n }\n }\n\n &:checked,\n &.checked {\n & + ${Label} {\n :before {\n content: '✓';\n }\n }\n }\n`;\nexport const LabelText = styled.div `\n color: ${(props) => props.theme.color.textDark};\n`;\n","import styled from 'styled-components';\nimport { size } from '../../layout/helpers';\nconst iconSize = '0.875rem';\nconst selectPadding = size(2);\nexport const Wrapper = styled.div `\n position: relative;\n background-color: ${(props) => props.theme.color.accent};\n border-radius: 3px;\n`;\nexport const Select = styled.select.attrs(() => ({\n className: 'wayke__theme wayke__font--regular',\n})) `\n position: relative;\n display: block;\n width: 100%;\n height: ${(props) => props.theme.distances.inputHeight};\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n -webkit-tap-highlight-color: rgba(255, 255, 255, 0);\n text-indent: 0.01px;\n border: 0;\n padding: 0 ${selectPadding};\n padding-right: calc(${iconSize} + ${selectPadding});\n background-color: transparent;\n color: ${(props) => props.theme.color.textDark};\n border-radius: 0;\n font-size: 16px;\n cursor: pointer;\n z-index: 1;\n\n :focus {\n outline: none;\n }\n\n ::-ms-expand {\n display: none;\n }\n\n ::-moz-focus-inner {\n border: 0;\n }\n`;\nexport const Option = styled.option `\n color: ${(props) => props.theme.color.textDark};\n`;\nexport const Icon = styled.div `\n position: absolute;\n top: 50%;\n right: ${selectPadding};\n transform: translateY(-50%);\n font-size: ${iconSize};\n`;\n","import React from 'react';\nimport { Wrapper, Select, Option, Icon } from './wrapper';\nimport { IconChevronDown } from '../Icon/index';\nconst InputSelect = ({ value, options, onChange, unit, title }) => (React.createElement(Wrapper, null,\n React.createElement(Select, { value: value, onChange: onChange, title: title, \"aria-label\": title }, options === null || options === void 0 ? void 0 : options.map((option) => (React.createElement(Option, { key: option.value, value: option.value },\n option.displayName || option.value,\n unit ? ` ${unit}` : '')))),\n React.createElement(Icon, null,\n React.createElement(IconChevronDown, { block: true }))));\nexport default InputSelect;\n","import styled from 'styled-components';\nimport { size } from '../../layout/helpers';\nexport const InputGroup = styled.div `\n ${(props) => props.theme.breakpoint.Sm} {\n display: flex;\n align-items: flex-start;\n margin: ${size(-0.5)};\n }\n`;\nexport const InputGroupColumn = styled.div `\n ${(props) => props.theme.breakpoint.LtSm} {\n & + & {\n margin-top: ${size(1)};\n }\n }\n\n ${(props) => props.theme.breakpoint.Sm} {\n flex: 1 1 50%;\n padding: ${size(0.5)};\n }\n`;\n","import styled from 'styled-components';\nimport { size } from '../../layout/helpers';\nexport const ColumnRow = styled.div `\n display: flex;\n align-items: flex-start;\n`;\nexport const ColumnRowItem = styled.div `\n flex: 1 1 auto;\n\n :last-child:not(:only-child) {\n flex: 0 0 auto;\n }\n\n & + & {\n padding-left: ${size(2)};\n }\n`;\n","import { gql } from '@apollo/client';\nconst INSURANCE_CALCULATION = gql `\n query InsuranceCalculation(\n $id: ID!\n $personalNumber: PersonalNumber!\n $drivingDistance: DrivingDistance!\n ) {\n insurances(id: $id, personalNumber: $personalNumber, drivingDistance: $drivingDistance) {\n name\n price\n unit\n description\n logotype\n addons {\n id\n title\n description\n price\n unit\n exclusions\n }\n items {\n name\n description\n }\n legality {\n description\n url\n }\n terms\n url\n }\n }\n`;\nexport default INSURANCE_CALCULATION;\n","import { useQuery } from '@apollo/client';\nimport INSURANCE_CALCULATION from '../queries/INSURANCE_CALCULATION';\nconst useInsuranceCalculation = (id, personalNumber, drivingDistance) => useQuery(INSURANCE_CALCULATION, {\n variables: {\n id,\n personalNumber: personalNumber,\n drivingDistance: drivingDistance,\n },\n skip: personalNumber === undefined || drivingDistance === undefined,\n});\nexport default useInsuranceCalculation;\n","export const ssnIsValid = (s) => (s ? /^\\d{2,4}\\d{2}\\d{2}\\-?\\d{4}$/.test(s) : false);\n","export var DrivingDistance;\n(function (DrivingDistance) {\n DrivingDistance[\"Between0And1000\"] = \"BETWEEN0AND1000\";\n DrivingDistance[\"Between1000And1500\"] = \"BETWEEN1000AND1500\";\n DrivingDistance[\"Between1500And2000\"] = \"BETWEEN1500AND2000\";\n DrivingDistance[\"Between2000And2500\"] = \"BETWEEN2000AND2500\";\n DrivingDistance[\"Over2500\"] = \"OVER2500\";\n})(DrivingDistance || (DrivingDistance = {}));\nexport var FinancialOptionInclusion;\n(function (FinancialOptionInclusion) {\n FinancialOptionInclusion[\"IncludesInsurance\"] = \"INCLUDES_INSURANCE\";\n FinancialOptionInclusion[\"IncludesService\"] = \"INCLUDES_SERVICE\";\n FinancialOptionInclusion[\"IncludesWintertires\"] = \"INCLUDES_WINTERTIRES\";\n})(FinancialOptionInclusion || (FinancialOptionInclusion = {}));\n","import React, { useState, useCallback } from 'react';\nimport Modal from '../Modal/index';\nimport Content from '../Content/index';\nimport { Repeat, RepeatTiny, RepeatSmall } from '../Repeat/index';\nimport LogoBox from '../LogoBox/index';\nimport DetailBox from '../DetailBox/index';\nimport ExtendInfo from '../ExtendInfo/index';\nimport Snackbar from '../Snackbar/index';\nimport { UtilityTextBold } from '../Utility/index';\nimport InputLabel from '../InputLabel/index';\nimport InputText from '../InputText/index';\nimport InputCheckbox from '../InputCheckbox/index';\nimport InputSelect from '../InputSelect/index';\nimport { H4 } from '../Heading/index';\nimport { InputGroup, InputGroupColumn } from '../InputGroup/index';\nimport { ButtonPrimary, ButtonContent, ButtonInline } from '../Button/index';\nimport { ContentLogo, ContentLogoText, ContentLogoMedia } from '../ContentLogo/index';\nimport { ColumnRow, ColumnRowItem } from '../ColumnRow/index';\nimport useInsuranceCalculation from '../../hooks/useInsurance';\nimport { ssnIsValid } from '../../utils/ssn';\nimport Loader from '../Loader/index';\nimport { numberSeparator } from '../../utils/formats';\nimport { DrivingDistance } from '../../@types/codegen/types';\nimport PubSub from '../../utils/pubsub/pubsub';\nconst InsuranceOptionModal = ({ id, onClose, insuranceOptions }) => {\n const [form, setForm] = useState({\n ssn: '',\n drivingDistance: DrivingDistance.Between0And1000,\n });\n const [payload, setPayload] = useState();\n const { loading, data, error } = useInsuranceCalculation(id, ssnIsValid(payload === null || payload === void 0 ? void 0 : payload.ssn) ? payload === null || payload === void 0 ? void 0 : payload.ssn : undefined, payload === null || payload === void 0 ? void 0 : payload.drivingDistance);\n const onChangeSsn = useCallback((e) => setForm({ ...form, ssn: e.currentTarget.value }), [form]);\n const onChangeDrivingDistance = useCallback((e) => setForm({ ...form, drivingDistance: e.currentTarget.value }), [form]);\n const onShowInsurances = useCallback(() => {\n PubSub.publish('InsuranceInterest');\n setPayload(form);\n }, [form]);\n const onKeyDown = useCallback((e) => {\n if (e.keyCode === 13 && ssnIsValid(form.ssn) && !loading) {\n onShowInsurances();\n }\n }, [form]);\n const options = [\n { value: DrivingDistance.Between0And1000, displayName: '0 - 1000' },\n { value: DrivingDistance.Between1000And1500, displayName: '1000 - 1500' },\n { value: DrivingDistance.Between1500And2000, displayName: '1500 - 2000' },\n { value: DrivingDistance.Between2000And2500, displayName: '2000 - 2500' },\n { value: DrivingDistance.Over2500, displayName: '2500+' },\n ];\n return (React.createElement(Modal, { title: \"F\\u00F6rs\\u00E4kring\", onClose: onClose },\n ((insuranceOptions === null || insuranceOptions === void 0 ? void 0 : insuranceOptions.description) || (insuranceOptions === null || insuranceOptions === void 0 ? void 0 : insuranceOptions.logotype)) && (React.createElement(Repeat, null,\n React.createElement(ContentLogo, null,\n insuranceOptions.description && (React.createElement(ContentLogoText, null,\n React.createElement(Content, null,\n React.createElement(\"p\", null, insuranceOptions.description)))),\n insuranceOptions.logotype && (React.createElement(ContentLogoMedia, null,\n React.createElement(LogoBox, { logo: insuranceOptions.logotype, alt: insuranceOptions.name || 'Logotyp', wide: true })))))),\n React.createElement(Repeat, null,\n React.createElement(RepeatSmall, null,\n React.createElement(RepeatTiny, null,\n React.createElement(InputGroup, null,\n React.createElement(InputGroupColumn, null,\n React.createElement(InputLabel, { htmlFor: \"input-insurance-personalnumber\" }, \"Personnummer\"),\n React.createElement(InputText, { placeholder: \"\\u00C5\\u00C5\\u00C5\\u00C5MMDD-XXXX\", label: \"Personnummer\", value: form.ssn, onChange: onChangeSsn, onKeyDown: onKeyDown, id: \"input-insurance-personalnumber\" })),\n React.createElement(InputGroupColumn, null,\n React.createElement(InputLabel, { htmlFor: \"input-insurance-mileage\" }, \"Uppskattad k\\u00F6rstr\\u00E4cka per \\u00E5r\"),\n React.createElement(InputSelect, { value: form.drivingDistance, onChange: onChangeDrivingDistance, options: options, unit: \"mil\", title: \"Uppskattad k\\u00F6rstr\\u00E4cka per \\u00E5r\" })))),\n React.createElement(RepeatTiny, null,\n React.createElement(ButtonPrimary, { fullWidth: true, disabled: !ssnIsValid(form.ssn) || loading, onClick: onShowInsurances },\n React.createElement(ButtonContent, null, \"Visa f\\u00F6rs\\u00E4kringar\")))),\n false && (React.createElement(RepeatSmall, null,\n React.createElement(InputCheckbox, { id: \"input-insurance-save-personalnumber\" }, \"Spara personnummer p\\u00E5 denna enhet\"))),\n React.createElement(RepeatSmall, null,\n React.createElement(Content, { small: true },\n React.createElement(\"p\", null, \"Spara personnummer p\\u00E5 denna dator f\\u00F6r att direkt visa f\\u00F6rs\\u00E4kringskostnaderna i Wayke. Personnumret lagras inte hos Wayke utan finns bara sparad i din webbl\\u00E4sare.\")))),\n loading && (React.createElement(Repeat, null,\n React.createElement(Loader, null))),\n error && (React.createElement(Repeat, null,\n React.createElement(Snackbar, { severity: \"error\", icon: true, heading: \"Ett fel har intr\\u00E4ffat\" }, \"Kunde inte h\\u00E4mta f\\u00F6rs\\u00E4kringar. V\\u00E4nligen f\\u00F6rs\\u00F6k igen.\"))),\n React.createElement(React.Fragment, null, (data === null || data === void 0 ? void 0 : data.insurances) && (React.createElement(Repeat, null, data === null || data === void 0 ? void 0 : data.insurances.map((insurance) => (React.createElement(Repeat, { key: insurance.name },\n React.createElement(DetailBox, { heading: `${numberSeparator(insurance.price)} ${insurance.unit}`, description: insurance.name },\n React.createElement(Repeat, null,\n React.createElement(React.Fragment, null, insurance.description && (React.createElement(RepeatTiny, null,\n React.createElement(Content, null,\n React.createElement(\"p\", null, insurance.description))))),\n React.createElement(React.Fragment, null, insurance.url && (React.createElement(RepeatTiny, null,\n React.createElement(ButtonInline, { as: \"a\", href: insurance.url || '', target: \"_blank\", rel: \"noopener noreferrer nofollow\" }, \"F\\u00F6rk\\u00F6psinformation och villkor (\\u00F6ppnas i ny flik)\"))))),\n insurance.items && insurance.items.length > 0 && (React.createElement(Repeat, null,\n React.createElement(H4, null, \"F\\u00F6rs\\u00E4kringen inneh\\u00E5ller\"),\n insurance.items.map((item) => (React.createElement(RepeatSmall, { key: item.name || '' },\n React.createElement(ExtendInfo, { title: item.name || '' }, item.description)))))),\n insurance.addons && insurance.addons.length > 0 && (React.createElement(Repeat, null,\n React.createElement(H4, null, \"V\\u00E4lj till\"),\n insurance.addons.map((addon) => (React.createElement(RepeatSmall, { key: addon.title || '' },\n React.createElement(ColumnRow, null,\n React.createElement(ColumnRowItem, null,\n React.createElement(ExtendInfo, { title: addon.title || '' }, addon.description)),\n React.createElement(ColumnRowItem, null,\n React.createElement(UtilityTextBold, null,\n \"+\",\n addon.price,\n \" \",\n addon.unit)))))))))))))))));\n};\nexport default InsuranceOptionModal;\n","import React, { useState, useCallback } from 'react';\nimport { Repeat, RepeatTiny } from '../Repeat/index';\nimport { VisualHeading } from '../Heading/index';\nimport OptionBox from '../OptionBox/index';\nimport { OptionBoxHeading, OptionBoxContent } from '../OptionBox/wrapper';\nimport { ButtonInline } from '../Button/index';\nimport InsuranceOptionModal from './InsuranceOptionModal';\nconst InsuranceOptions = ({ id, insuranceOptions }) => {\n const [modal, setModal] = useState(false);\n const toggleModal = useCallback(() => setModal(!modal), [modal]);\n if (!insuranceOptions.length) {\n return null;\n }\n return (React.createElement(React.Fragment, null,\n modal && (React.createElement(InsuranceOptionModal, { id: id, onClose: toggleModal, insuranceOptions: insuranceOptions[0] })),\n React.createElement(Repeat, null,\n React.createElement(RepeatTiny, null,\n React.createElement(VisualHeading, null, \"V\\u00E4lj till f\\u00F6rs\\u00E4kring\")),\n React.createElement(RepeatTiny, null,\n React.createElement(React.Fragment, null, insuranceOptions.map((insuranceOption, index) => (React.createElement(OptionBox, { key: `${insuranceOption.url}-${index}`, logo: insuranceOption.logotype || undefined, logoAlt: insuranceOption.name || 'Logotyp' },\n React.createElement(OptionBoxHeading, null, \"F\\u00E5 prisf\\u00F6rslag\"),\n React.createElement(OptionBoxContent, null,\n React.createElement(\"p\", null,\n React.createElement(ButtonInline, { onClick: toggleModal }, \"Mer information\")))))))))));\n};\nexport default InsuranceOptions;\n","import { createContext } from 'react';\nexport const SettingsContext = createContext({});\n","import { useContext } from 'react';\nimport { SettingsContext } from './SettingsContext';\nconst useSettings = () => useContext(SettingsContext);\nexport default useSettings;\n","import React, { useCallback, useEffect } from 'react';\nimport EcomBase from '@wayke-se/ecom-react';\nimport useSettings from '../../State/Settings/useSettings';\nimport PubSub from '../../utils/pubsub/pubsub';\nconst Ecom = ({ vehicle, manufacturer, onExit, onUserEvent }) => {\n var _a, _b, _c;\n const { ecomSettings } = useSettings();\n useEffect(() => {\n PubSub.publish('EcomOnInit');\n }, []);\n const onUserEventLocal = useCallback((userEvent, currentStep) => {\n PubSub.publish('EcomOnUserEvent', userEvent, currentStep);\n if (onUserEvent) {\n onUserEvent(userEvent, currentStep);\n }\n }, []);\n const onExitLocal = useCallback(() => {\n PubSub.publish('EcomOnExit');\n if (onExit) {\n onExit();\n }\n }, []);\n const { id, title, shortDescription, price, data, media } = vehicle;\n const { modelYear, mileage, gearbox, fuelType } = data;\n const imageUrl = (_c = (_b = (_a = media === null || media === void 0 ? void 0 : media[0]) === null || _a === void 0 ? void 0 : _a.files) === null || _b === void 0 ? void 0 : _b[0]) === null || _c === void 0 ? void 0 : _c.url;\n const ecomData = {\n vehicle: {\n id,\n title,\n shortDescription: shortDescription || '',\n price,\n imageUrl,\n modelYear,\n milage: `${mileage}`,\n gearBox: gearbox || '',\n fuelType: fuelType || '',\n },\n serviceLogotypeUrl: (ecomSettings === null || ecomSettings === void 0 ? void 0 : ecomSettings.serviceLogotypeUrl) ||\n (manufacturer === null || manufacturer === void 0 ? void 0 : manufacturer.logotype) ||\n 'https://cdn.wayke.se/wui/images/ecom/wayke-logo.svg',\n onExit: onExitLocal,\n onUserEvent: onUserEventLocal,\n useBankId: ecomSettings === null || ecomSettings === void 0 ? void 0 : ecomSettings.useBankId,\n displayBankIdAlert: ecomSettings === null || ecomSettings === void 0 ? void 0 : ecomSettings.displayBankIdAlert,\n };\n return React.createElement(EcomBase, { ...ecomData });\n};\nexport default Ecom;\n","import React from 'react';\nimport { marked } from 'marked';\nimport { Repeat } from '../../components/Repeat/index';\nimport { ProductPageMainSection } from '../../components/ProductPage/index';\nimport Content from '../../components/Content/index';\nimport { H2 } from '../../components/Heading/index';\nimport { ButtonInline } from '../../components/Button/index';\nimport LogoBox from '../../components/LogoBox/index';\nconst ManufacturerPackageOption = ({ packageOption }) => {\n var _a;\n if (!packageOption) {\n return null;\n }\n return (React.createElement(ProductPageMainSection, null,\n React.createElement(Repeat, null,\n React.createElement(H2, { noMargin: true }, packageOption.title)),\n packageOption.description && (React.createElement(Repeat, null,\n React.createElement(Content, { dangerouslySetInnerHTML: { __html: marked(packageOption.description) } }))),\n ((_a = packageOption.link) === null || _a === void 0 ? void 0 : _a.url) && (React.createElement(Repeat, null,\n React.createElement(ButtonInline, { as: \"a\", href: packageOption.link.url, target: \"_blank\", rel: \"noopener noreferrer\" }, packageOption.link.title\n ? packageOption.link.title\n : 'Läs mer (Öppnas i ett nytt fönster)'))),\n packageOption.image && (React.createElement(Repeat, null,\n React.createElement(LogoBox, { logo: packageOption.image, alt: \"Logotyp\", wide: true })))));\n};\nexport default ManufacturerPackageOption;\n","import React, { useState, useCallback } from 'react';\nimport { ButtonSecondary, ButtonContent } from '../Button/index';\nimport { RepeatTiny } from '../Repeat/index';\nconst initialValue = {};\nconst getInitialValue = (title) => title && !!initialValue[title];\nconst ToggleItem = ({ title, value, type, onClickVisible, onClickValue }) => {\n const [visible, setVisible] = useState(() => getInitialValue(type));\n const _onClickValue = useCallback(() => {\n if (onClickValue) {\n onClickValue();\n }\n }, []);\n const onClick = useCallback(() => {\n if (!visible) {\n initialValue[type] = true;\n setVisible(true);\n if (onClickVisible) {\n onClickVisible();\n }\n }\n }, [visible]);\n const visibleTitle = type === 'tel' ? 'Ring' : type === 'mailto' ? 'Skicka ett mail till' : '';\n return (React.createElement(RepeatTiny, null, visible ? (React.createElement(ButtonSecondary, { onClick: _onClickValue, as: \"a\", href: `${type}:${value}`, title: `${visibleTitle} ${value}`, fullWidth: true },\n React.createElement(ButtonContent, null, value))) : (React.createElement(ButtonSecondary, { onClick: onClick, title: title, fullWidth: true },\n React.createElement(ButtonContent, null, title)))));\n};\nexport default ToggleItem;\n","const Metadata = {\n version: '1.7.53',\n country_calling_codes: { '46': ['SE'] },\n countries: {\n SE: [\n '46',\n '00',\n '(?:[26]\\\\d\\\\d|9)\\\\d{9}|[1-9]\\\\d{8}|[1-689]\\\\d{7}|[1-4689]\\\\d{6}|2\\\\d{5}',\n [6, 7, 8, 9, 10],\n [\n ['(\\\\d{2})(\\\\d{2,3})(\\\\d{2})', '$1-$2 $3', ['20'], '0$1', 0, '$1 $2 $3'],\n ['(\\\\d{3})(\\\\d{4})', '$1-$2', ['9(?:00|39|44)'], '0$1', 0, '$1 $2'],\n [\n '(\\\\d{2})(\\\\d{3})(\\\\d{2})',\n '$1-$2 $3',\n ['[12][136]|3[356]|4[0246]|6[03]|90[1-9]'],\n '0$1',\n 0,\n '$1 $2 $3',\n ],\n ['(\\\\d)(\\\\d{2,3})(\\\\d{2})(\\\\d{2})', '$1-$2 $3 $4', ['8'], '0$1', 0, '$1 $2 $3 $4'],\n [\n '(\\\\d{3})(\\\\d{2,3})(\\\\d{2})',\n '$1-$2 $3',\n [\n '1[2457]|2(?:[247-9]|5[0138])|3[0247-9]|4[1357-9]|5[0-35-9]|6(?:[125689]|4[02-57]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])',\n ],\n '0$1',\n 0,\n '$1 $2 $3',\n ],\n ['(\\\\d{3})(\\\\d{2,3})(\\\\d{3})', '$1-$2 $3', ['9(?:00|39|44)'], '0$1', 0, '$1 $2 $3'],\n [\n '(\\\\d{2})(\\\\d{2,3})(\\\\d{2})(\\\\d{2})',\n '$1-$2 $3 $4',\n ['1[13689]|2[0136]|3[1356]|4[0246]|54|6[03]|90[1-9]'],\n '0$1',\n 0,\n '$1 $2 $3 $4',\n ],\n ['(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})', '$1-$2 $3 $4', ['10|7'], '0$1', 0, '$1 $2 $3 $4'],\n ['(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{2})', '$1-$2 $3 $4', ['8'], '0$1', 0, '$1 $2 $3 $4'],\n [\n '(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})',\n '$1-$2 $3 $4',\n ['[13-5]|2(?:[247-9]|5[0138])|6(?:[124-689]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])'],\n '0$1',\n 0,\n '$1 $2 $3 $4',\n ],\n ['(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{3})', '$1-$2 $3 $4', ['9'], '0$1', 0, '$1 $2 $3 $4'],\n [\n '(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})',\n '$1-$2 $3 $4 $5',\n ['[26]'],\n '0$1',\n 0,\n '$1 $2 $3 $4 $5',\n ],\n ],\n '0',\n 0,\n 0,\n 0,\n 0,\n 0,\n [\n [\n '(?:(?:[12][136]|3[356]|4[0246]|6[03]|8\\\\d)\\\\d|90[1-9])\\\\d{4,6}|(?:1(?:2[0-35]|4[0-4]|5[0-25-9]|7[13-6]|[89]\\\\d)|2(?:2[0-7]|4[0136-8]|5[0138]|7[018]|8[01]|9[0-57])|3(?:0[0-4]|1\\\\d|2[0-25]|4[056]|7[0-2]|8[0-3]|9[023])|4(?:1[013-8]|3[0135]|5[14-79]|7[0-246-9]|8[0156]|9[0-689])|5(?:0[0-6]|[15][0-5]|2[0-68]|3[0-4]|4\\\\d|6[03-5]|7[013]|8[0-79]|9[01])|6(?:1[1-3]|2[0-4]|4[02-57]|5[0-37]|6[0-3]|7[0-2]|8[0247]|9[0-356])|9(?:1[0-68]|2\\\\d|3[02-5]|4[0-3]|5[0-4]|[68][01]|7[0135-8]))\\\\d{5,6}',\n [7, 8, 9],\n ],\n ['7[02369]\\\\d{7}', [9]],\n ['20\\\\d{4,7}', [6, 7, 8, 9]],\n ['649\\\\d{6}|9(?:00|39|44)[1-8]\\\\d{3,6}', [7, 8, 9, 10]],\n ['75[1-8]\\\\d{6}', [9]],\n 0,\n ['10[1-8]\\\\d{6}', [9]],\n ['74[02-9]\\\\d{6}', [9]],\n 0,\n ['77[0-7]\\\\d{6}', [9]],\n ],\n ],\n },\n nonGeographic: {},\n};\nexport default Metadata;\n","import { parsePhoneNumberFromString } from 'libphonenumber-js/core';\nimport metadata from './metadata.min';\nconst typedMetadata = metadata;\nexport const formatPhonenumber = (text) => {\n try {\n const parsed = parsePhoneNumberFromString(text.replace('-', '').replace(/ /g, ''), typedMetadata);\n return (parsed === null || parsed === void 0 ? void 0 : parsed.formatNational()) || text;\n }\n catch (e) {\n return text;\n }\n};\n","import React, { useCallback } from 'react';\nimport ToggleItem from './toggle-item';\nimport { formatPhonenumber } from '../../utils/phonenumbers';\nimport PubSub from '../../utils/pubsub/pubsub';\nconst ActionList = ({ contact, branch }) => {\n var _a, _b;\n const email = (contact === null || contact === void 0 ? void 0 : contact.email) || ((_a = branch === null || branch === void 0 ? void 0 : branch.contact) === null || _a === void 0 ? void 0 : _a.email);\n const phonenumber = (contact === null || contact === void 0 ? void 0 : contact.phonenumber) || ((_b = branch === null || branch === void 0 ? void 0 : branch.contact) === null || _b === void 0 ? void 0 : _b.phonenumber);\n const onClickMailVisible = useCallback(() => PubSub.publish('MailVisible'), []);\n const onClickPhoneVisible = useCallback(() => PubSub.publish('PhonenumberVisible'), []);\n const onClickPhoneValue = useCallback(() => PubSub.publish('PhonenumberCall'), []);\n if (!email && !phonenumber) {\n return null;\n }\n return (React.createElement(React.Fragment, null,\n email && (React.createElement(ToggleItem, { onClickVisible: onClickMailVisible, title: \"Visa mailadress\", value: email, type: \"mailto\" })),\n phonenumber && (React.createElement(ToggleItem, { title: \"Visa telefonnummer\", value: formatPhonenumber(phonenumber), type: \"tel\", onClickVisible: onClickPhoneVisible, onClickValue: onClickPhoneValue }))));\n};\nexport default ActionList;\n","import styled from 'styled-components';\nimport { size } from '../../layout/helpers';\nexport const List = styled.ul `\n list-style: none;\n padding: 0;\n margin: 0;\n`;\nexport const Item = styled.li `\n position: relative;\n font-size: 0.875rem;\n\n & + & {\n margin-top: ${size(0.5)};\n }\n`;\nexport const Icon = styled.div.attrs(() => ({\n className: 'wayke__theme wayke__color--primary-text',\n})) `\n position: absolute;\n left: 0;\n top: 4px; // Magic number\n font-size: 0.875em;\n`;\nexport const Label = styled.div `\n padding-left: calc(1em + ${size(1)});\n`;\n","import React from 'react';\nimport { List, Item, Icon, Label } from './wrapper';\nimport { IconCheck } from '../Icon/index';\nexport const CheckMarkListItem = ({ children }) => (React.createElement(Item, null,\n React.createElement(Icon, null,\n React.createElement(IconCheck, { block: true })),\n React.createElement(Label, null, children)));\nconst CheckMarkList = ({ children }) => React.createElement(List, null, children);\nexport default CheckMarkList;\n","import styled from 'styled-components';\nimport { size } from '../../layout/helpers';\nimport { ButtonReset } from '../Button/index';\nexport const Wrapper = styled.div `\n padding: ${size(1.5)} ${size(2)};\n background-color: ${(props) => props.theme.color.accentDark};\n border-radius: 3px;\n font-size: 0.875rem;\n`;\nexport const Header = styled.div `\n display: flex;\n align-items: center;\n`;\nexport const Body = styled.div `\n font-size: 0.875rem;\n margin-top: ${size(1)};\n`;\nexport const Info = styled.div `\n flex: 1 1 auto;\n display: flex;\n align-items: center;\n`;\nexport const Action = styled.div `\n flex-shrink: 0;\n padding-left: ${size(1.5)};\n font-size: 0.875rem;\n`;\nexport const InfoContent = styled.div `\n & + & {\n margin-left: ${size(0.75)};\n }\n`;\nexport const InfoBtn = styled(ButtonReset).attrs(() => ({\n className: 'wayke__theme wayke__color--primary-text',\n})) `\n position: relative;\n display: block;\n\n :before {\n content: '';\n position: absolute;\n top: ${size(-0.5)};\n bottom: ${size(-0.5)};\n left: ${size(-0.5)};\n right: ${size(-0.5)};\n background-color: ${(props) => props.theme.color.accentDark};\n border-radius: 50%;\n opacity: 0;\n transition: opacity 200ms ease;\n }\n\n > * {\n position: relative;\n z-index: 1;\n }\n\n :hover {\n :before {\n opacity: 1;\n }\n }\n\n :active {\n transform: scale(0.95);\n }\n`;\nexport const Title = styled.div.attrs(() => ({\n className: 'wayke__theme wayke__font--bold',\n})) `\n font-size: 1rem;\n`;\n","import React, { useState, useCallback } from 'react';\nimport { Wrapper, Header, Body, Info, Action, InfoContent, InfoBtn, Title } from './wrapper';\nimport Modal from '../Modal/index';\nimport { ButtonInline } from '../Button/index';\nimport { IconInfo } from '../Icon/index';\nconst SwitchBar = ({ title, body, actionTitle, children, onClick }) => {\n const [info, setInfo] = useState(false);\n const onToggleInfo = useCallback(() => setInfo(!info), [info]);\n return (React.createElement(React.Fragment, null,\n React.createElement(Wrapper, null,\n React.createElement(Header, null,\n React.createElement(Info, null,\n React.createElement(InfoContent, null,\n React.createElement(Title, null, title)),\n children && (React.createElement(InfoContent, null,\n React.createElement(InfoBtn, { onClick: onToggleInfo, title: \"Mer information\" },\n React.createElement(IconInfo, { block: true }))))),\n actionTitle && (React.createElement(Action, null,\n React.createElement(ButtonInline, { onClick: onClick, title: actionTitle }, actionTitle)))),\n body && React.createElement(Body, null, body)),\n info && (React.createElement(Modal, { title: title, onClose: onToggleInfo }, children))));\n};\nexport default SwitchBar;\n","import { createContext } from 'react';\nexport const CentralStorageContext = createContext({\n setCentralStorageId: (_) => { },\n});\n","import React, { useState, useCallback, useContext } from 'react';\nimport { Repeat, RepeatTiny } from '../../components/Repeat/index';\nimport InputSelect from '../../components/InputSelect/index';\nimport { ButtonPrimary, ButtonContent } from '../../components/Button/index';\nimport Modal from '../../components/Modal/index';\nimport Content from '../../components/Content/index';\nimport InputLabel from '../../components/InputLabel/index';\nimport { CentralStorageContext } from '../../State/CentralStorage/CentralStorageContext';\nconst BranchModal = ({ loading, connections, onClose }) => {\n const { centralStorageId, setCentralStorageId } = useContext(CentralStorageContext);\n const [localValue, setLocalValue] = useState(centralStorageId);\n const onConfirm = useCallback((id) => {\n if (id) {\n setCentralStorageId(id);\n }\n }, []);\n const onChange = useCallback((e) => setLocalValue(e.currentTarget.value), []);\n if (!localValue) {\n return null;\n }\n return (React.createElement(Modal, { title: \"Byt anl\\u00E4ggning\", onClose: onClose },\n React.createElement(Repeat, null,\n React.createElement(RepeatTiny, null,\n React.createElement(Content, null,\n React.createElement(\"p\", null, \"V\\u00E4lj den anl\\u00E4ggning du vill visa kontaktuppgifter f\\u00F6r.\"))),\n React.createElement(RepeatTiny, null,\n React.createElement(InputLabel, null, \"V\\u00E4lj anl\\u00E4ggning\"),\n React.createElement(InputSelect, { value: localValue, onChange: onChange, options: connections === null || connections === void 0 ? void 0 : connections.map((x) => ({\n value: x.id,\n displayName: x.name,\n })), title: \"V\\u00E4lj anl\\u00E4ggning\" }))),\n React.createElement(Repeat, null,\n React.createElement(ButtonPrimary, { disabled: loading, fullWidth: true, onClick: () => onConfirm(localValue) },\n React.createElement(ButtonContent, null, \"V\\u00E4lj\")))));\n};\nexport default BranchModal;\n","import React from 'react';\nimport { marked } from 'marked';\nimport { Repeat } from '../../components/Repeat/index';\nimport { ButtonInline } from '../../components/Button/index';\nimport Modal from '../../components/Modal/index';\nimport Content from '../../components/Content/index';\nimport LogoBox from '../../components/LogoBox/index';\nconst PackageOptionModal = ({ packageOption, onClose }) => {\n var _a;\n return (React.createElement(Modal, { title: packageOption.title || '', onClose: onClose },\n packageOption.image && (React.createElement(Repeat, null,\n React.createElement(LogoBox, { logo: packageOption.image, alt: packageOption.title || undefined, wide: true }))),\n packageOption.description && (React.createElement(Repeat, null,\n React.createElement(Content, { dangerouslySetInnerHTML: { __html: marked(packageOption.description) } }))),\n ((_a = packageOption.link) === null || _a === void 0 ? void 0 : _a.href) && packageOption.link.title && (React.createElement(Repeat, null,\n React.createElement(ButtonInline, { as: \"a\", href: packageOption.link.href, target: \"_blank\", rel: \"noopener noreferrer nofollow\" }, packageOption.link.title)))));\n};\nexport default PackageOptionModal;\n","import React, { useState, useCallback, useEffect } from 'react';\nimport { Repeat, RepeatTiny } from '../../components/Repeat/index';\nimport ActionList from '../../components/ActionList/index';\nimport { ButtonPrimary, ButtonContent, ButtonInline } from '../../components/Button/index';\nimport CheckMarkList, { CheckMarkListItem } from '../../components/CheckMarkList/index';\nimport Content from '../../components/Content/index';\nimport SwitchBar from '../../components/SwitchBar/index';\nimport BranchModal from './BranchModal';\nimport PackageOptionModal from './PackageOptionModal';\nconst CheckList = ({ manufacturer, packageOptions, ecommerce, branch, contact, toggleEcomModal, loadingCentralStorageVehicle, }) => {\n const [modalBranch, setModalBranch] = useState(false);\n const openModalBranch = useCallback(() => setModalBranch(true), []);\n const closeModalBranch = useCallback(() => setModalBranch(false), []);\n const [modal, setModal] = useState();\n const onOpen = useCallback((nextModal) => setModal(nextModal), []);\n const onClose = useCallback(() => setModal(undefined), []);\n useEffect(() => {\n if ((branch || contact) && modalBranch) {\n setModalBranch(false);\n }\n }, [branch, contact]);\n const packageOption = manufacturer === null || manufacturer === void 0 ? void 0 : manufacturer.packageOption;\n return (React.createElement(React.Fragment, null,\n modalBranch && (React.createElement(BranchModal, { loading: loadingCentralStorageVehicle, connections: branch === null || branch === void 0 ? void 0 : branch.connections, onClose: closeModalBranch })),\n modal && React.createElement(PackageOptionModal, { packageOption: modal, onClose: onClose }),\n React.createElement(Repeat, null,\n React.createElement(CheckMarkList, null,\n (packageOption === null || packageOption === void 0 ? void 0 : packageOption.title) && (React.createElement(CheckMarkListItem, null,\n React.createElement(React.Fragment, null,\n \"Inkl.\",\n ' ',\n React.createElement(ButtonInline, { onClick: () => onOpen({\n title: packageOption === null || packageOption === void 0 ? void 0 : packageOption.title,\n image: packageOption === null || packageOption === void 0 ? void 0 : packageOption.image,\n description: packageOption === null || packageOption === void 0 ? void 0 : packageOption.description,\n link: packageOption === null || packageOption === void 0 ? void 0 : packageOption.link,\n }) }, packageOption.title),\n ' ',\n \"begagnatgaranti\"))), packageOptions === null || packageOptions === void 0 ? void 0 :\n packageOptions.map((packageOption, index) => (React.createElement(CheckMarkListItem, { key: packageOption.title || index },\n React.createElement(React.Fragment, null,\n \"Inkl.\",\n ' ',\n React.createElement(ButtonInline, { onClick: () => onOpen({\n title: packageOption === null || packageOption === void 0 ? void 0 : packageOption.title,\n image: packageOption === null || packageOption === void 0 ? void 0 : packageOption.image,\n description: packageOption === null || packageOption === void 0 ? void 0 : packageOption.description,\n link: packageOption === null || packageOption === void 0 ? void 0 : packageOption.link,\n }) }, packageOption.title))))),\n (ecommerce === null || ecommerce === void 0 ? void 0 : ecommerce.withHomeDelivery) && React.createElement(CheckMarkListItem, null, \"Hemleverans\"))),\n React.createElement(Repeat, null,\n ecommerce && ecommerce.enabled && (React.createElement(RepeatTiny, null,\n React.createElement(ButtonPrimary, { disabled: !!ecommerce.reserved, fullWidth: true, onClick: toggleEcomModal },\n React.createElement(ButtonContent, null, \"K\\u00F6p bilen online\")))),\n (ecommerce === null || ecommerce === void 0 ? void 0 : ecommerce.reserved) && (React.createElement(RepeatTiny, null,\n React.createElement(SwitchBar, { title: \"Bilen \\u00E4r reserverad\", body: \"Denna bil \\u00E4r reserverad av en annan k\\u00F6pare.\" },\n React.createElement(Content, null,\n React.createElement(\"p\", null, \"Denna bil \\u00E4r reserverad av en annan k\\u00F6pare.\"))))),\n React.createElement(ActionList, { branch: branch, contact: contact })),\n ((branch === null || branch === void 0 ? void 0 : branch.connections.length) || 0) > 1 && (React.createElement(Repeat, null,\n React.createElement(SwitchBar, { title: \"Centrallagerbil\", actionTitle: \"Byt anl\\u00E4ggning\", onClick: openModalBranch },\n React.createElement(Content, null,\n React.createElement(\"p\", null, \"Denna bil tillh\\u00F6r ett centrallager och g\\u00E5r att k\\u00F6pa genom flera anl\\u00E4ggningar. Byt anl\\u00E4ggning f\\u00F6r att visa kontaktuppgifter till just den anl\\u00E4ggningen.\")))))));\n};\nexport default CheckList;\n","import styled from 'styled-components';\nimport { size } from '../../layout/helpers';\nexport const Wrapper = styled.div `\n display: flex;\n align-items: center;\n`;\nexport const Heading = styled.div `\n flex: 1 1 auto;\n`;\nexport const Action = styled.div `\n flex-shrink: 0;\n padding-left: ${size(2)};\n`;\n","import React from 'react';\nimport { Wrapper, Heading, Action } from './wrapper';\nimport { ButtonClear, ButtonContent } from '../Button/index';\nconst SectionHeader = ({ children, onClick, actionTitle }) => (React.createElement(Wrapper, null,\n React.createElement(Heading, null, children),\n onClick && actionTitle && (React.createElement(Action, null,\n React.createElement(ButtonClear, { as: \"a\", href: \"#\", onClick: onClick },\n React.createElement(ButtonContent, null, actionTitle))))));\nexport default SectionHeader;\n","import styled from 'styled-components';\nimport { size } from '../../layout/helpers';\nimport { Wrapper as Container } from '../Container/wrapper';\nexport const OverflowGrid = styled.div `\n ${(props) => props.theme.breakpoint.LtMd} {\n ${Container} & {\n margin-left: ${size(-3)};\n margin-right: ${size(-2)};\n }\n }\n\n ${(props) => props.theme.breakpoint.LtSm} {\n ${Container} & {\n margin-left: ${size(-2)};\n margin-right: ${size(-1)};\n }\n }\n`;\nexport const OverflowGridList = styled.ul `\n display: flex;\n align-items: flex-start;\n list-style: none;\n padding: 0;\n margin: ${size(-1)};\n\n ${(props) => props.theme.breakpoint.LtMd} {\n ${Container} & {\n overflow: auto;\n -webkit-overflow-scrolling: touch;\n padding: 0 ${size(3)};\n\n :after {\n content: '';\n flex: 0 0 auto;\n height: 1px;\n width: ${size(2)};\n }\n }\n }\n\n ${(props) => props.theme.breakpoint.LtSm} {\n ${Container} & {\n padding: 0 ${size(2)};\n\n :after {\n width: ${size(1)};\n }\n }\n }\n`;\nexport const OverflowGridItem = styled.li `\n flex: 1 0 auto;\n width: calc(100% - ${size(2)});\n max-width: calc(100% - ${size(2)});\n padding: ${size(1)};\n\n ${(props) => props.theme.breakpoint.Sm} {\n width: calc(50% - ${size(3)});\n max-width: calc(50% - ${size(3)});\n }\n\n ${(props) => props.theme.breakpoint.Md} {\n width: 33.333%;\n max-width: 33.333%;\n }\n`;\n","import { createContext } from 'react';\nexport const RelatedSearchContext = createContext({\n moreLikeThisUrl: false,\n loading: false,\n error: false,\n response: undefined,\n fetchRelated: (_) => { },\n});\n","import { useContext, useEffect } from 'react';\nimport { RelatedSearchContext } from './RelatedSearchContext';\nconst useRelatedSearch = (id) => {\n const data = useContext(RelatedSearchContext);\n useEffect(() => {\n const searchParams = new URLSearchParams();\n searchParams.set('hits', '3');\n if (data.moreLikeThisUrl && id) {\n searchParams.set('id', id);\n }\n data.fetchRelated(searchParams);\n }, [id]);\n return data;\n};\nexport default useRelatedSearch;\n","export const regexGuid = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i;\nconst regexEndGuid = /[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/;\nexport const escapeRegExpString = (s) => s.replace(/[-[\\]/{}()*+?.\\\\^$|]/g, '\\\\$&');\nexport const regexPathGuid = (path) => {\n if (!path) {\n return regexEndGuid;\n }\n const r = new RegExp(`${escapeRegExpString(path)}${regexEndGuid.source}`, 'gi');\n return r;\n};\n","import React, { useCallback } from 'react';\nimport Container from '../../components/Container/index';\nimport { Repeat } from '../../components/Repeat/index';\nimport { PageSection } from '../../components/Page/index';\nimport SectionHeader from '../../components/SectionHeader/index';\nimport { OverflowGridList, OverflowGrid, OverflowGridItem, } from '../../components/OverflowGrid/index';\nimport ProductCard from '../../components/ProductCard/index';\nimport { H2 } from '../../components/Heading/index';\nimport useRelatedSearch from '../../State/RelatedSearch/useRelatedSearch';\nimport Loader from '../../components/Loader/index';\nimport { numberSeparator } from '../../utils/formats';\nimport PubSub from '../../utils/pubsub/pubsub';\nimport { regexPathGuid } from '../../utils/regex';\nconst Related = ({ id, hashRoute, pathRoute, onClickSearchItem }) => {\n const { loading, response, moreLikeThisUrl } = useRelatedSearch(id);\n const onItemClicked = useCallback((id) => {\n PubSub.publish('ItemClicked', id);\n if (onClickSearchItem) {\n onClickSearchItem(id);\n }\n }, []);\n if (!(response === null || response === void 0 ? void 0 : response.documentList.documents.length) || (response === null || response === void 0 ? void 0 : response.documentList.documents.length) === 0) {\n return null;\n }\n if (loading) {\n return React.createElement(Loader, null);\n }\n return (React.createElement(PageSection, { accent: true, large: true, className: \"wayke__theme wayke__color--accent-bg\" },\n React.createElement(Container, null,\n moreLikeThisUrl ? (React.createElement(Repeat, null,\n React.createElement(SectionHeader, { onClick: () => { } },\n React.createElement(H2, { noMargin: true }, \"Relaterade fordon\")))) : (React.createElement(Repeat, null,\n React.createElement(SectionHeader, { onClick: () => { }, actionTitle: \"Visa alla\" },\n React.createElement(H2, { noMargin: true }, \"Senast inkomna\")))),\n React.createElement(Repeat, null,\n React.createElement(OverflowGrid, null,\n React.createElement(OverflowGridList, null, response === null || response === void 0 ? void 0 : response.documentList.documents.map((document) => {\n var _a, _b, _c;\n const prefix = pathRoute ? `/${pathRoute}` : '/';\n const r = regexPathGuid(pathRoute);\n const pathRouteUrl = window.location.pathname === '/'\n ? `${prefix}${document._id}`\n : r.test(`${pathRoute}${id}`)\n ? window.location.pathname.replace(r, `${pathRoute}${document._id}`)\n : `${window.location.pathname}${prefix}${document._id}`;\n return (React.createElement(OverflowGridItem, { key: document._id },\n React.createElement(ProductCard, { id: document._id, onClick: onItemClicked, title: document.title, href: pathRoute ? pathRouteUrl : hashRoute ? `#${document._id}` : undefined, image: (_c = (_b = (_a = document.featuredImage) === null || _a === void 0 ? void 0 : _a.files) === null || _b === void 0 ? void 0 : _b[0]) === null || _c === void 0 ? void 0 : _c.url, description: document.shortDescription, uspList: [\n {\n title: document.modelYear,\n },\n {\n title: `${numberSeparator(document.mileage)} mil`,\n },\n {\n title: document.gearboxType,\n },\n {\n title: document.fuelType,\n },\n ], price: `${numberSeparator(document.price)} kr`, oldPrice: document.oldPrice !== undefined && document.price < document.oldPrice\n ? `${numberSeparator(document.oldPrice)} kr`\n : undefined, pathRoute: pathRoute })));\n })))))));\n};\nexport default Related;\n","import React from 'react';\nimport { marked } from 'marked';\nimport { Repeat } from '../../components/Repeat/index';\nimport { ProductPageMainSection } from '../../components/ProductPage/index';\nimport Content from '../../components/Content/index';\nimport { H2 } from '../../components/Heading/index';\nimport { ButtonInline } from '../../components/Button/index';\nimport LogoBox from '../../components/LogoBox/index';\nconst PackageOptions = ({ packageOptions }) => {\n if (!packageOptions) {\n return null;\n }\n return (React.createElement(React.Fragment, null, packageOptions.map((packageOption, index) => {\n var _a;\n return (React.createElement(ProductPageMainSection, { key: packageOption.title || index },\n React.createElement(Repeat, null,\n React.createElement(H2, { noMargin: true }, packageOption.title)),\n packageOption.description && (React.createElement(Repeat, null,\n React.createElement(Content, { dangerouslySetInnerHTML: { __html: marked(packageOption.description) } }))),\n ((_a = packageOption.link) === null || _a === void 0 ? void 0 : _a.url) && (React.createElement(Repeat, null,\n React.createElement(ButtonInline, { as: \"a\", href: packageOption.link.url, target: \"_blank\", rel: \"noopener noreferrer\" }, packageOption.link.title\n ? packageOption.link.title\n : 'Läs mer (Öppnas i ett nytt fönster)'))),\n packageOption.image && (React.createElement(Repeat, null,\n React.createElement(LogoBox, { logo: packageOption.image, alt: \"Logotyp\", wide: true })))));\n })));\n};\nexport default PackageOptions;\n","import styled from 'styled-components';\nimport { size } from '../../layout/helpers';\nexport const TableColumn = styled.div `\n line-height: 1.2;\n`;\nexport const TableColumnRow = styled.div `\n display: flex;\n align-items: flex-start;\n margin: ${size(-1)};\n`;\nexport const TableColumnCell = styled.div `\n flex: 1 0 50%;\n padding: ${size(1)};\n`;\n","import styled from 'styled-components';\nimport { size } from '../../layout/helpers';\nimport theme from '../../layout/theme';\nconst getBg = (severity) => {\n let bg = theme.color.textDark;\n if (severity === 'positive') {\n bg = theme.color.ui.positive;\n }\n else if (severity === 'negative') {\n bg = theme.color.ui.negative;\n }\n return bg;\n};\nexport const Wrapper = styled.div.attrs(() => ({\n className: 'wayke__theme wayke__font--bold',\n})) `\n display: inline-block;\n background-color: ${(props) => getBg(props.severity)};\n padding: ${size(0.75)} ${size(1.5)};\n color: ${(props) => props.theme.color.textLight};\n border-radius: 3px;\n font-size: 0.75rem;\n line-height: 1.2;\n`;\n","import React from 'react';\nimport { Wrapper } from './wrapper';\nconst Badge = ({ label, severity }) => React.createElement(Wrapper, { severity: severity }, label);\nexport default Badge;\n","import React, { useMemo } from 'react';\nimport { RepeatSmall } from '../Repeat/index';\nimport Badge from '../Badge/index';\nimport { TableColumn, TableColumnRow, TableColumnCell } from '../TableColumn/index';\nimport { UtilityTextBold } from '../Utility/index';\nconst KeyOrder = [\n 'monday',\n 'tuesday',\n 'wednesday',\n 'thursday',\n 'friday',\n 'saturday',\n 'sunday',\n];\nconst TranslateWeekDays = (d) => {\n switch (d) {\n case 'monday':\n return 'Mån';\n case 'tuesday':\n return 'Tis';\n case 'wednesday':\n return 'Ons';\n case 'thursday':\n return 'Tor';\n case 'friday':\n return 'Fre';\n case 'saturday':\n return 'Lör';\n case 'sunday':\n return 'Sön';\n }\n};\nconst arr = [];\nconst GetOpeningHours = (o) => KeyOrder.reduce((prev, current) => {\n const title = TranslateWeekDays(current);\n const item = o[current];\n const previous = prev === null || prev === void 0 ? void 0 : prev[prev.length - 1];\n if (previous && previous.from == (item === null || item === void 0 ? void 0 : item.from) && previous.until === (item === null || item === void 0 ? void 0 : item.until)) {\n prev[prev.length - 1].titleTo = title;\n }\n else {\n prev.push({\n titleFrom: title,\n from: item === null || item === void 0 ? void 0 : item.from,\n until: item === null || item === void 0 ? void 0 : item.until,\n });\n }\n return prev;\n}, arr.slice());\nconst GetOpeningHoursToday = (o) => {\n const dayNumber = new Date().getDay();\n const day = KeyOrder[dayNumber === 0 ? 6 : dayNumber - 1];\n const current = o[day];\n return {\n title: current ? 'Öppetider idag' : 'Stängt idag',\n from: current === null || current === void 0 ? void 0 : current.from,\n until: current === null || current === void 0 ? void 0 : current.until,\n };\n};\nconst valuOfDateString = (s) => {\n const splitted = s.split(':').map((x) => parseInt(x, 10));\n return new Date().setHours(splitted[0], splitted[1]).valueOf();\n};\nconst OpeningHours = ({ openingHours }) => {\n const today = useMemo(() => (openingHours ? GetOpeningHoursToday(openingHours) : null), [openingHours]);\n const currentlyOpen = useMemo(() => {\n try {\n if ((today === null || today === void 0 ? void 0 : today.from) && (today === null || today === void 0 ? void 0 : today.until)) {\n const currentDate = new Date().valueOf();\n const from = valuOfDateString(today.from);\n const until = valuOfDateString(today.until);\n return currentDate >= from && currentDate <= until;\n }\n }\n catch (e) {\n return false;\n }\n }, [today]);\n const oh = useMemo(() => (openingHours ? GetOpeningHours(openingHours) : null), [openingHours]);\n if (!oh) {\n return null;\n }\n return (React.createElement(React.Fragment, null,\n React.createElement(RepeatSmall, null,\n React.createElement(Badge, { label: currentlyOpen ? 'Öppet' : 'Stängt', severity: currentlyOpen ? 'positive' : 'negative' })),\n React.createElement(RepeatSmall, null,\n React.createElement(TableColumn, null,\n React.createElement(TableColumnRow, null,\n React.createElement(TableColumnCell, null,\n React.createElement(UtilityTextBold, null, today === null || today === void 0 ? void 0 : today.title)),\n React.createElement(TableColumnCell, null,\n React.createElement(UtilityTextBold, null, (today === null || today === void 0 ? void 0 : today.from) ? `${today.from}-${today.until}` : 'Stängt'))),\n oh.map((o) => (React.createElement(TableColumnRow, { key: o.titleFrom },\n React.createElement(TableColumnCell, null, o.titleTo ? `${o.titleFrom}-${o.titleTo}` : o.titleFrom),\n React.createElement(TableColumnCell, null, o.from ? `${o.from}-${o.until}` : 'Stängt'))))))));\n};\nexport default OpeningHours;\n","import React, { useState, useCallback } from 'react';\nimport { TableColumnRow, TableColumnCell } from '../TableColumn/index';\nimport { ButtonContent, ButtonInlineBold } from '../Button/index';\nconst PhoneNumber = ({ phoneNumber }) => {\n const [visible, setVisible] = useState(false);\n const onClick = useCallback(() => !visible && setVisible(true), [visible]);\n return (React.createElement(TableColumnRow, null,\n React.createElement(TableColumnCell, null, \"Telefonnummer\"),\n React.createElement(TableColumnCell, null, visible ? (React.createElement(ButtonInlineBold, { as: \"a\", href: `tel:${phoneNumber}`, title: `Ring ${phoneNumber}` },\n React.createElement(ButtonContent, null, phoneNumber))) : (React.createElement(ButtonInlineBold, { onClick: onClick, title: \"Visa telefonnummer\" },\n React.createElement(ButtonContent, null, \"Visa telefonnummer\"))))));\n};\nexport default PhoneNumber;\n","import styled from 'styled-components';\nexport const Wrapper = styled.a `\n display: block;\n`;\nexport const Image = styled.img `\n display: block;\n width: 100%;\n border-radius: 3px;\n`;\nexport const Placeholder = styled.a `\n display: block;\n position: relative;\n width: 100%;\n height: 0;\n padding-bottom: 43.75%; // Proportions of Google Static Map (640x280)\n background-image: linear-gradient(-15deg, #dfe4ce, #c1d6ea, #dfe4ce);\n border-radius: 3px;\n color: ${(props) => props.theme.color.textDark};\n`;\nexport const PlaceholderAction = styled.div `\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n`;\n","import React, { useState, useCallback } from 'react';\nimport useSettings from '../../State/Settings/useSettings';\nimport { Wrapper, Image, Placeholder, PlaceholderAction } from './wrapper';\nimport { ButtonSecondary, ButtonContent } from '../Button/index';\nconst StaticMap = ({ position }) => {\n const { googleMapsApiKey, googleMapsMarker } = useSettings();\n const [visible, setVisible] = useState(false);\n const onShowMap = useCallback((e) => {\n if (googleMapsApiKey) {\n e.preventDefault();\n setVisible(true);\n }\n }, []);\n if (!position) {\n return null;\n }\n const { latitude, longitude } = position;\n if (visible && googleMapsApiKey) {\n return (React.createElement(Wrapper, { href: `http://maps.google.com/maps?q=${latitude},${longitude}`, title: \"Visa p\\u00E5 Google Maps\", target: \"_blank\", rel: \"nofollow noopener noreferrer\" },\n React.createElement(Image, { src: `https://maps.googleapis.com/maps/api/staticmap?center=${latitude},${longitude}&zoom=10&size=640x280&maptype=roadmap&markers=${googleMapsMarker ? `icon:${encodeURIComponent(googleMapsMarker)}` : ''}%7C${latitude},${longitude}&key=${googleMapsApiKey}`, alt: \"Karta\" })));\n }\n return (React.createElement(Placeholder, { href: `http://maps.google.com/maps?q=${latitude},${longitude}`, target: \"_blank\", rel: \"noopener noreferrer nofollow\", onClick: onShowMap },\n React.createElement(PlaceholderAction, null,\n React.createElement(ButtonSecondary, { as: \"div\" },\n React.createElement(ButtonContent, null, \"Visa karta\")))));\n};\nexport default StaticMap;\n","import React, { useState, useCallback, useEffect } from 'react';\nimport { Repeat } from '../../components/Repeat/index';\nimport Content from '../../components/Content/index';\nimport { ProductPageContentLimit } from '../../components/ProductPage/index';\nimport { H2 } from '../../components/Heading/index';\nimport { ButtonContent, ButtonInline, ButtonInlineBold } from '../../components/Button/index';\nimport { TableColumn, TableColumnRow, TableColumnCell } from '../../components/TableColumn/index';\nimport OpeningHours from '../../components/OpeningHours/index';\nimport PhoneNumber from '../../components/PhoneNumber/index';\nimport Map from '../../components/Map/index';\nimport BranchModal from './BranchModal';\nimport { formatPhonenumber } from '../../utils/phonenumbers';\nconst Branch = ({ branch, loading }) => {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j;\n const [modal, setModal] = useState(false);\n const openModal = useCallback(() => setModal(true), []);\n const closeModal = useCallback(() => setModal(false), []);\n useEffect(() => {\n if (branch && modal) {\n setModal(false);\n }\n }, [branch]);\n if (!branch) {\n return null;\n }\n return (React.createElement(React.Fragment, null,\n modal && (React.createElement(BranchModal, { loading: loading, connections: branch === null || branch === void 0 ? void 0 : branch.connections, onClose: closeModal })),\n React.createElement(Repeat, null,\n React.createElement(H2, { noMargin: true }, ((_a = branch === null || branch === void 0 ? void 0 : branch.location) === null || _a === void 0 ? void 0 : _a.city)\n ? `Den här bilen finns på vår anläggning i ${(_b = branch === null || branch === void 0 ? void 0 : branch.location) === null || _b === void 0 ? void 0 : _b.city}`\n : 'Kontakt')),\n React.createElement(Repeat, null,\n React.createElement(Map, { position: (_c = branch === null || branch === void 0 ? void 0 : branch.location) === null || _c === void 0 ? void 0 : _c.position })),\n (((_d = branch === null || branch === void 0 ? void 0 : branch.connections) === null || _d === void 0 ? void 0 : _d.length) || 0) > 1 && (React.createElement(Repeat, null,\n React.createElement(Content, null,\n React.createElement(\"p\", null,\n \"Denna bil tillh\\u00F6r ett centrallager och g\\u00E5r att k\\u00F6pa genom flera anl\\u00E4ggningar.\",\n ' ',\n React.createElement(ButtonInline, { as: \"span\", role: \"button\", onClick: openModal, inline: true }, \"Klicka h\\u00E4r f\\u00F6r att visa kontaktuppgifter till en annan anl\\u00E4ggning\"),\n \".\")))),\n React.createElement(Repeat, null,\n React.createElement(ProductPageContentLimit, null,\n React.createElement(Repeat, null,\n React.createElement(TableColumn, null,\n ((_e = branch === null || branch === void 0 ? void 0 : branch.location) === null || _e === void 0 ? void 0 : _e.streetAddress) && ((_f = branch === null || branch === void 0 ? void 0 : branch.location) === null || _f === void 0 ? void 0 : _f.city) && (React.createElement(TableColumnRow, null,\n React.createElement(TableColumnCell, null, \"Adress\"),\n React.createElement(TableColumnCell, null,\n React.createElement(ButtonInlineBold, null,\n React.createElement(ButtonContent, null, `${(_g = branch === null || branch === void 0 ? void 0 : branch.location) === null || _g === void 0 ? void 0 : _g.streetAddress}, ${(_h = branch === null || branch === void 0 ? void 0 : branch.location) === null || _h === void 0 ? void 0 : _h.city}`))))),\n ((_j = branch === null || branch === void 0 ? void 0 : branch.contact) === null || _j === void 0 ? void 0 : _j.phonenumber) && (React.createElement(PhoneNumber, { phoneNumber: formatPhonenumber(branch.contact.phonenumber) })))),\n (branch === null || branch === void 0 ? void 0 : branch.openingHours) && (React.createElement(Repeat, null,\n React.createElement(OpeningHours, { openingHours: branch.openingHours })))))));\n};\nexport default Branch;\n","import { gql } from '@apollo/client';\nconst HoursOpen = gql `\n fragment HoursOpen on HoursOpen {\n from\n until\n }\n`;\nconst SEARCH_ITEM_BRANCH_QUERY = gql `\n query SearchItemBranch($id: ID!, $branch: ID) {\n vehicle(id: $id, branch: $branch) {\n contact {\n name\n email\n phonenumber\n avatar\n }\n branch {\n connections {\n id\n name\n location {\n city\n county\n streetAddress\n postalCode\n position {\n latitude\n longitude\n }\n }\n }\n contact {\n name\n email\n phonenumber\n avatar\n }\n id\n description\n name\n homepage\n flags {\n mrf\n centralStorage\n ecommerce\n }\n logotype\n openingHours {\n monday {\n ...HoursOpen\n }\n tuesday {\n ...HoursOpen\n }\n wednesday {\n ...HoursOpen\n }\n thursday {\n ...HoursOpen\n }\n friday {\n ...HoursOpen\n }\n saturday {\n ...HoursOpen\n }\n sunday {\n ...HoursOpen\n }\n }\n organization {\n branches {\n id\n }\n parent {\n id\n }\n }\n location {\n position {\n latitude\n longitude\n }\n city\n county\n streetAddress\n postalCode\n }\n promos {\n description\n image\n title\n }\n services {\n markdown\n title\n }\n }\n }\n }\n ${HoursOpen}\n`;\nexport default SEARCH_ITEM_BRANCH_QUERY;\n","import { useQuery } from '@apollo/client';\nimport SEARCH_ITEM_BRANCH_QUERY from '../queries/SEARCH_ITEM_BRANCH_QUERY';\nconst useSearchItemBranch = (id, branch) => useQuery(SEARCH_ITEM_BRANCH_QUERY, {\n variables: { id: id, branch: branch },\n skip: !id || !branch,\n});\nexport default useSearchItemBranch;\n","import { useContext, useEffect } from 'react';\nimport { CentralStorageContext } from './CentralStorageContext';\nimport useSearchItemBranch from '../../hooks/useSearchItemBranch';\nconst useCentralStorage = (vehicle) => {\n var _a, _b;\n const { centralStorageId, setCentralStorageId } = useContext(CentralStorageContext);\n const connections = (_a = vehicle === null || vehicle === void 0 ? void 0 : vehicle.branch) === null || _a === void 0 ? void 0 : _a.connections;\n const branchId = centralStorageId\n ? (_b = connections === null || connections === void 0 ? void 0 : connections.find((x) => x.id === centralStorageId)) === null || _b === void 0 ? void 0 : _b.id\n : undefined;\n const { data, loading } = useSearchItemBranch(vehicle === null || vehicle === void 0 ? void 0 : vehicle.id, branchId);\n useEffect(() => {\n if (((connections === null || connections === void 0 ? void 0 : connections.length) || 0) > 0) {\n const match = centralStorageId\n ? connections === null || connections === void 0 ? void 0 : connections.find((x) => x.id === centralStorageId)\n : undefined;\n if (!match) {\n const first = connections === null || connections === void 0 ? void 0 : connections[0];\n if (first) {\n setCentralStorageId(first.id);\n }\n }\n }\n }, [connections]);\n return {\n vehicle: ((connections === null || connections === void 0 ? void 0 : connections.length) || 0) > 0 ? data === null || data === void 0 ? void 0 : data.vehicle : vehicle,\n loading,\n };\n};\nexport default useCentralStorage;\n","import React from 'react';\nimport Container from '../../components/Container/index';\nimport { Page, PageSection } from '../../components/Page/index';\nimport { H1 } from '../../components/Heading/index';\nconst Page404 = () => (React.createElement(Page, null,\n React.createElement(PageSection, { large: true },\n React.createElement(Container, null,\n React.createElement(H1, { noMargin: true }, \"404\")))));\nexport default Page404;\n","import React from 'react';\nimport Container from '../../components/Container/index';\nimport { Page, PageSection } from '../../components/Page/index';\nimport Loader from '../../components/Loader/index';\nconst PageLoading = () => (React.createElement(Page, null,\n React.createElement(PageSection, { large: true },\n React.createElement(Container, null,\n React.createElement(Loader, null)))));\nexport default PageLoading;\n","class PropertyTreeCreator {\n constructor(properties) {\n this.propertiesWithCategory = (propertyKey) => { var _a; return !!((_a = this.properties[propertyKey].category) === null || _a === void 0 ? void 0 : _a.id); };\n this.propertiesWithoutCategory = (propertyKey) => !this.propertiesWithCategory(propertyKey);\n this.isList = (property) => property.type === PropertyTreeCreator.TEXT_LIST_TYPE;\n this.isNonList = (property) => !this.isList(property);\n this.hasCategoryWithId = (propertyKey, categoryId) => { var _a; return ((_a = this.properties[propertyKey].category) === null || _a === void 0 ? void 0 : _a.id) === categoryId; };\n this.propertiesWithSubCategory = (propertyKey) => { var _a, _b; return !!((_b = (_a = this.properties[propertyKey].category) === null || _a === void 0 ? void 0 : _a.subCategory) === null || _b === void 0 ? void 0 : _b.id); };\n this.propertiesWithoutSubCategory = (propertyKey) => !this.propertiesWithSubCategory(propertyKey);\n this.hasSubCategoryWithId = (propertyKey, categoryId) => { var _a, _b; return ((_b = (_a = this.properties[propertyKey].category) === null || _a === void 0 ? void 0 : _a.subCategory) === null || _b === void 0 ? void 0 : _b.id) === categoryId; };\n this.properties = properties;\n }\n create() {\n const categories = this.createTreeCategories();\n const rootProperties = this.getRootProperties();\n if (rootProperties.length) {\n categories.push({\n name: PropertyTreeCreator.DEFAULT_CATEGORY_NAME,\n id: PropertyTreeCreator.DEFAULT_CATEGORY_ID,\n subCategories: [],\n properties: rootProperties,\n });\n }\n const tree = {\n categories,\n };\n return tree;\n }\n getRootProperties() {\n const rootProperties = Object.keys(this.properties)\n .filter(this.propertiesWithoutCategory)\n .map((key) => this.properties[key])\n .filter(this.isNonList);\n return rootProperties;\n }\n createTreeCategories() {\n const categories = this.getCategories();\n const treeCategories = this.convertToTreeCategories(categories);\n return treeCategories;\n }\n getCategories() {\n const categories = Object.keys(this.properties)\n .filter(this.propertiesWithCategory)\n .map((key) => this.properties[key].category)\n .filter(PropertyTreeCreator.distinctCategories);\n return categories;\n }\n convertToTreeCategories(categories) {\n return categories.map((category) => {\n const properties = Object.keys(this.properties)\n .filter((key) => this.hasCategoryWithId(key, category.id))\n .filter(this.propertiesWithoutSubCategory)\n .map((key) => this.properties[key])\n .filter(this.isNonList);\n const subCategories = this.createTreeSubCategories(category.id);\n return {\n id: category.id,\n name: category.name,\n properties,\n subCategories,\n };\n });\n }\n createTreeSubCategories(categoryId) {\n const subCategories = this.getSubCategoriesOfCategory(categoryId);\n const convertedSubCategories = subCategories\n .map((subCategory) => this.convertSubCategory(subCategory))\n .filter((category) => category.properties.length > 0);\n const createdSubCategories = this.createListSubCategories(categoryId);\n const treeCategories = convertedSubCategories.concat(createdSubCategories);\n return treeCategories;\n }\n getSubCategoriesOfCategory(id) {\n const categories = Object.keys(this.properties)\n .filter((key) => this.hasCategoryWithId(key, id))\n .filter(this.propertiesWithSubCategory)\n .map((key) => { var _a; return (_a = this.properties[key].category) === null || _a === void 0 ? void 0 : _a.subCategory; })\n .filter(PropertyTreeCreator.distinctCategories);\n return categories;\n }\n convertSubCategory(subCategory) {\n const properties = Object.keys(this.properties)\n .filter((key) => this.hasSubCategoryWithId(key, subCategory.id))\n .map((key) => this.properties[key])\n .filter(this.isNonList);\n return {\n id: subCategory.id,\n name: subCategory.name,\n properties,\n subCategories: [],\n };\n }\n createListSubCategories(categoryId) {\n const listProperties = Object.keys(this.properties)\n .filter((key) => this.hasCategoryWithId(key, categoryId))\n .map((key) => this.properties[key])\n .filter(this.isList)\n .filter((prop) => prop.value.length > 0);\n const createdSubCategories = listProperties.map((property, index) => ({\n id: PropertyTreeCreator.LIST_CATEGORY_START_ID + index,\n name: property.name,\n properties: this.asBoolProperties(property),\n subCategories: [],\n }));\n return createdSubCategories;\n }\n asBoolProperties(listProperty) {\n const values = listProperty.value;\n const boolProperties = values.map((prop) => ({\n name: prop,\n value: true,\n type: 'bool',\n unit: listProperty.unit,\n hint: listProperty.hint,\n }));\n return boolProperties;\n }\n}\nPropertyTreeCreator.distinctCategories = (category, index, self) => {\n const firstOccuranceOfId = self.find((value) => value.id === category.id);\n return !!firstOccuranceOfId && self.indexOf(firstOccuranceOfId) === index;\n};\nPropertyTreeCreator.DEFAULT_CATEGORY_NAME = 'Okategoriserat';\nPropertyTreeCreator.DEFAULT_CATEGORY_ID = 0;\nPropertyTreeCreator.TEXT_LIST_TYPE = 'text-list';\nPropertyTreeCreator.LIST_CATEGORY_START_ID = 100000;\nexport default PropertyTreeCreator;\n","const ID_ORDER = Object.freeze({\n '1000': 1,\n '71': 2,\n '2': 3,\n '1': 4,\n '8': 5,\n '6': 6,\n '119': 7,\n});\nconst compareById = (firstId, secondId) => {\n const firstOrder = ID_ORDER[firstId] || Number.MAX_SAFE_INTEGER;\n const secondOrder = ID_ORDER[secondId] || Number.MAX_SAFE_INTEGER;\n if (firstOrder < secondOrder) {\n return -1;\n }\n else if (secondOrder < firstOrder) {\n return 1;\n }\n return 0;\n};\nexport default (first, second) => {\n const result = compareById(`${first.id}`, `${second.id}`);\n if (result !== 0) {\n return result;\n }\n return first.name.localeCompare(second.name);\n};\n","export default (first, second) => {\n return first.name.localeCompare(second.name);\n};\n","import compareProperties from './compare-properties';\nconst ORDER = Object.freeze({\n Varumärke: 1,\n Modell: 2,\n Version: 3,\n Modellår: 4,\n Tillverkningsår: 5,\n Mätarställning: 6,\n Växellåda: 7,\n Färg: 8,\n Registreringsnummer: 9,\n Bränslegrupp: 10,\n Kaross: 11,\n Segment: 12,\n Skatt: 13,\n Malus: 14,\n Bonus: 15,\n});\nconst compareByPredefinedOrder = (firstId, secondId) => {\n const firstOrder = ORDER[firstId] || Number.MAX_SAFE_INTEGER;\n const secondOrder = ORDER[secondId] || Number.MAX_SAFE_INTEGER;\n if (firstOrder < secondOrder) {\n return -1;\n }\n else if (secondOrder < firstOrder) {\n return 1;\n }\n return 0;\n};\nexport default (first, second) => {\n const result = compareByPredefinedOrder(`${first.name}`, `${second.name}`);\n if (result !== 0) {\n return result;\n }\n return compareProperties(first, second);\n};\n","import compareCategories from './compare-categories';\nimport compareBasicProperties from './compare-basic-properties';\nimport compareProperties from './compare-properties';\nconst sort = (tree) => {\n tree.categories.sort(compareCategories);\n tree.categories.forEach((category) => {\n if (category.id === 1000) {\n category.properties.sort(compareBasicProperties);\n }\n else {\n category.properties.sort(compareProperties);\n category.subCategories.forEach((subCategory) => {\n subCategory.properties.sort(compareProperties);\n });\n }\n });\n};\nexport default sort;\n","/**\n * Does not copy complex objects such as Date, functions etc.\n */\nconst deepCopy = (object) => JSON.parse(JSON.stringify(object));\nexport default deepCopy;\n","import deepCopy from '../deep-copy';\nexport const HINTS = Object.freeze({\n abs: 'Förhindrar att bromsarna låser sig och reducerar bromssträckan.',\n acceleration: 'Antal sekunder som bilen behöver för att ta sig till 100 km/h.',\n adultOccupantNCAP: 'Poängen för skydd av vuxna bestäms genom tester av frontalkrockar, sidokrockar och whiplash som utförs för att bedöma det skydd som bilen erbjuder för vuxna förare och passagerare samt bedöma tillgängliga åtgärder för snabb och säker räddning.',\n aeb: 'Bilen är utrustad med ett bromssystem som hjälper dig att undvika olyckor. Beroende på vilken nivå av AEB bilen är utrustad med kan de upptäcka även cyklister och fotgängare, främst i lägre hastigheter i stadsmiljö men även vid högre hastigheter och landsvägskörning. Bilen förvarnar föraren om potentiell fara och hjälper även till att bromsa för att säkerställa att olyckor undviks så långt det går.',\n airbagCutOffSwitch: 'Det går att koppla ur krockkudden på passagerarsidan för att kunna sätta dit en barnstol.',\n airbagDriver: 'Krockkudde för föraren.',\n airbagFrontal: '',\n airbagFrontalHead: '',\n airbagKnees: '',\n airbagPassenger: 'Krockkudde för passagerare.',\n airbagSideChest: '',\n airbagSidePelvis: '',\n alcolock: 'För att kunna starta bilen behövs ett blåstest som mäter alkoholnivån.',\n androidAuto: 'Bilen har stöd för dig med Androidtelefon att koppla upp den direkt till bilen. Då följer bland annat navigering, meddelanden samt musiken med från telefonen.',\n annualBonus: 'Det här fordonet är berättigat till klimatbonus. Bonusen delas ut till den första registrerade ägaren efter 6 månader. Klicka <a target=\"_blank\" rel=\"noopener noreferrer\" title=\"Läs mer om bonus/malus\" href=\"https://www.transportstyrelsen.se/bonusmalus\">här</a> för att läsa mer.',\n annualMalus: 'Bilen har en förhöjd skatt de tre första åren och därefter gäller ordinarie skatt.',\n annualTax: 'Summan fordonsskatt som måste betalas varje år.',\n antiTheftAlarm: 'Bilen har ett larmsystem vid försök till inbrott.',\n appConnect: 'Med App Connect kan du koppla din mobiltelefon så att anpassade appar syns direkt i bilens display. Fungerar både för iPhone och Android.',\n appleCarPlay: 'Bilen har stöd för Apple i bilens inbyggda display, så du enkelt kan koppla upp din telefon och prata med bilen med hjälp av Siri.',\n aux: 'Bilen har en AUX-ingång, för att exempelvis spela musik från en telefon.',\n auxiliaryLamps: '',\n batteryCapacity: 'Anger hur många kilowatt-timmar batteriet innehar.',\n batteryWarrantyDistance: '',\n batteryWarrantyTime: '',\n blindSpotWarner: 'En varningslampa indikerar i ytterbackspegeln när ett fordon befinner sig i döda vinkeln.',\n bluetooth: 'Bilen kan ansluta enheter via Bluetooth, för exempelvis mobilsamtal eller musik.',\n bluetoothAudio: 'Bilen kan ansluta enheter via Bluetooth för att lyssna på musik.',\n bluetoothPhone: 'Bilen kan ansluta enheter via Bluetooth för telefonsamtal.',\n brakeAssistance: 'Säkerhetssystem som kan hjälpa till att bromsa och undvika olyckor.',\n carDamageWarrantyDistance: '',\n carDamageWarrantyTime: '',\n centerDisplay: 'Bilen har en skärm mitt i bilen, mellan förare och passagerare.',\n centralLocking: 'Elektriskt låssystem, som gör att alla dörrar låses och öppnas samtidigt.',\n chargeTimeNormal: 'Hur lång tid tar det att ladda bilen i ett standard elnät.',\n chargeTimeQuick: 'Hur lång tid tar det att ladda bilen med en snabbladdare anpassad för laddning av elbilar.',\n chassis: 'Vilken typ/form bilen har.',\n childOccupantNCAP: 'Bedömningen av skyddet av barn täcker tre viktiga aspekter: det skydd som erbjuds av bilbarnstolar i frontal- och sidokrockstest; fordonets möjligheter att inhysa bilbarnstolar med olika storlek och utformning; och tillgängliga åtgärder för säker transport av barn i bilen.',\n childSafetyLocks: 'Dörrarna låses automatiskt när man kör iväg, så att de inte ska öppnas under körning.',\n childSeatBeltPassenger: 'Passagerarsätet har utfällbar sittkudde för barn.',\n childSeatBeltRear: 'Baksätet har utfällbar sittkudde för barn.',\n co2: 'Anger hur mycket koldioxid fordonet släpper ut enligt mätmetoden NEDC baserat på teoretisk körning.',\n colorName: '',\n combinedEmissionsWLTP: 'Anger hur mycket koldioxid fordonet släpper ut enligt mätmetoden WLTP baserat på verklig körning.',\n cruiseControl: 'Hjälpmedel som håller bilens hastighet automatiskt.',\n curtainAirbags: '',\n displacementCC: 'Den sammanlagda volymen av motorns cylindrar. Mäts i kubikcentimeter.',\n displacementLitres: 'Den sammanlagda volymen av motorns cylindrar. Mäts i liter.',\n driverAlertnessDetection: 'Varningssignal uppstår när körningssättet tyder på bristande uppmärksamhet.',\n drivingWheel: 'Vilka hjul som motorn ger kraft till och snurrar.',\n electricalEngine: '',\n electricalRange: 'Räckvidd enligt mätmetoden WLTP baserat på verklig körning',\n electricalRangeEPA: 'Räckvidd enligt den amerikanska mätmetoden EPA. Enligt många den allra strängaste metoden.',\n electricalRangeNEDC: 'Räckvidd enligt mätmetoden NEDC baserat på teoretisk körning.',\n electricalRangeWLTP: 'Räckvidd enligt mätmetoden WLTP baserat på verklig körning.',\n electricalSeatDriver: 'Bilens förarstol går att manövrera med el för mjukare och mer precis positionering.',\n electricalSeatPassenger: 'Bilens passagerarstol går att manövrera med el.',\n emergencyCalling: 'Bilen kan automatiskt larma SOS vid en olycka.',\n engineConfiguration: 'Anger fordonets typ av motor, vilken typ av cylindrar den innehar.',\n engineCylinders: \"Antalet ger en indikation på motorns storlek. Ett 'vanligt' antal ligger på 4 st.\",\n engineName: '',\n engineVolume: '',\n enrichmentProviderEquipPackages: '',\n enrichmentProviderExteriorPackages: '',\n enrichmentProviderInteriorPackages: '',\n enrichmentProviderTrimPackages: '',\n environmentClass: 'Används för att ställa krav på fordonets utsläpp.',\n finish: '',\n fuelConsumptionCityDriving: 'Bränsleförbrukning vid stadskörning.',\n fuelConsumptionCountryRoadDriving: 'Bränsleförbrukning vid landsvägskörning.',\n fuelConsumptionMixedDriving: 'Bränsleförbrukning vid blandad körning. Dvs. stadskörning och landsvägskörning under en och samma färd.',\n fuelType: 'Vad bilen ska tankas med och drivs av.',\n gearboxName: '',\n gestureControls: 'Mittskärmen går att manövrera med rörelser.',\n gps: 'Bilen är utrustad med navigationsutrustning så du enkelt kan ta dig dit du ska.',\n grossWeight: 'Anger bilens vikt inklusive max tillåten lastvikt.',\n groundClearence: 'Avståndet mellan bilens undersida och marken.',\n hasAutomaticGearbox: '',\n hdmi: 'Bilen har en HDMI-port.',\n headRoomFront: 'Lägsta takhöjden i framsätet.',\n headRoomRear: 'Lägsta takhöjden i baksätet.',\n headUpDisplay: 'Bilen är utrustad med en projicerad display i ditt synfält, så du kan se exempelvis nuvarande hastighet utan att behöva vända bort blicken från vägen.',\n heatedSteeringWheel: '',\n height: 'Avståndet från bilens undersida till översida.',\n hybridComponentsWarrantyDistance: '',\n hybridComponentsWarrantyTime: '',\n interiorMaterial: 'Material på interiören i bilen, dvs detaljer i bilens insida.',\n isofixRearSeat: 'Universell fästanordning för barnstolar.',\n keylessEntry: 'Bilens dörrar och bagage öppnas när den känner av att bilnyckeln är i närheten och du tar tag i handtaget. Du behöver därmed inte använda nyckeln i sig för att öppna bilens dörrar. ',\n keylessStart: 'Bilen startas med ett knapptryck istället för att bilnyckeln behöver vridas om. Det räcker med att bilnyckeln befinner sig i bilen (kan du mao ha den i fickan hela bilresan).',\n laneAssistance: 'Funktion som hjälper till att hålla bilen inom körfältet.',\n legRoomFront: 'Avstånd mellan instrumentpanelen och framsäte.',\n legRoomRear: 'Avstånd mellan framsätets rygg och baksätet',\n length: 'Avståndet från bilens baksida till framsida.',\n lowBeam: '',\n mainBeam: '',\n mainBeamAssistance: 'Bilen slår på och av helljuset per automatik, så du slipper göra det själv.',\n manufactureYear: 'Året bilen tillverkades.',\n massage: 'Bilens säte har inbyggd massage.',\n maxLoadWeight: '',\n maxRoofWeight: 'Hur många kilo last taket klarar av.',\n maxSpeed: 'Högsta hastigheten som bilen går att köra.',\n maxTrailerLoadBraked8Percent: '',\n maxTrailerLoadUnbraked: 'Vikten du får dra på ett släp som inte är utrustat med egna bromsar.',\n mildHybrid: 'Bilen är utrustad med en elmotor som fungerar både som startmotor och generator och stöttar förbränningsmotorn, vilket ger lägre bränsleförbrukning och därmed minskade utsläppsnivåer.',\n mileage: 'Antal mil som bilen har körts. I bilen anges det i kilometer istället.',\n modelName: 'Vilket utförande av bilmodellen det är.',\n modelYear: 'Modellår sätts av tillverkaren. Handlaren ändrar ibland modellåret för att matcha transportstyrelsens definition för <i>årsmodell</i>. Definitionen för årsmodell innebär att bilar tillverkade andra halvan av året får nästa års modellår.',\n ncapStar: 'Universellt säkerhetsbetyg för bilar, fler stjärnor innebär högre säkerhet. Skalan går från 0 till 5 där 5 är det högsta betyget. Så här beskriver Euro NCAP själva att slutbetyget ska utläsas: <br/>' +\n '<br/>' +\n '5 stjärnor: Som helhet utmärkt prestanda inom krockskydd och väl utrustad med omfattande teknik för att undvika kollisioner<br/><br/>' +\n '4 stjärnor: Som helhet bra prestanda inom krockskydd, det kan finnas ytterligare teknik för att undvika kollisioner<br/><br/>' +\n '3 stjärnor: Åtminstone genomsnittligt passagerarskydd men inte alltid utrustad med de senaste funktionerna för att undvika kollisioner<br/><br/>' +\n '2 stjärnor: Nominellt krockskydd men saknar teknik för att undvika kollisioner<br/><br/>' +\n '1 stjärna: Marginellt krockskydd och viss teknik för att undvika kollisioner<br/><br/>' +\n '0 stjärnor: Uppfyller standarder för typgodkännande så att fordonet får säljas men saknar kritisk modern säkerhetsteknik.',\n ncapYear: 'Året som bilen säkerhets- och krocktestades.',\n newVehicleWarrantyDistance: '',\n newVehicleWarrantyTime: '',\n noiseReducingWindows: 'Bilens rutor är ljudisolerade för högre komfort.',\n numberOfGears: 'Antal växlar i växellådan.',\n numberOfSpeakers: 'Anger totalt antal högtalare i bilen, ju fler högtalare desto häftigare ljud!',\n numberOfUSBPorts: '',\n otherAirbags: '',\n parkingAssistance: 'Funktion som assisterar vid fickparkering.',\n parkingSensorsFront: 'Ljudsignal som indikerar när bilens främre del närmar sig ett objekt.',\n parkingSensorsRear: 'Ljudsignal som indikerar när bilens bakre del närmar sig ett objekt.',\n pedestrianNCAP: 'Euro NCAP bedömer hur väl bilar skyddar sina passagerare men testar även hur bilar skyddar oskyddade trafikanter – fotgängare och cyklister – som de kan kollidera med.',\n preHeater: 'Värmer motorn när det är kallt ute för att underlätta start.',\n rainSensors: 'Vindrutetorkarna aktiveras och anpassas automatiskt i förhållande till regnet.',\n remoteStart: 'Möjliggör att du kan starta bilens motor med hjälp av exempelvis en app i telefonen',\n rimSize: 'Fälgstorlek angivet i tum.',\n roofColor: 'Någon del av bilen, ex taket skiljer sig i kulör mot övriga bilen.',\n roofRailing: 'Bilen har takreling som du kan fästa takräcken i.',\n safetyAssistNCAP: 'Poängen för förarstödsystem bestäms genom tester av de viktigaste förarstöd teknikerna som stöder säker körning för att undvika och begränsa olyckor.',\n seats: 'Antal personer som får åka i bilen.',\n segment: 'Vilken typ av bil det handlar om - t.ex. familjebil',\n serviceWeight: 'Anger hur mycket bilen väger med en passagerare som väger ca 75kg.',\n shoulderRoomFront: 'Avstånd i bredd för bilens framsäte.',\n shoulderRoomRear: 'Avstånd i bredd för bilens baksäte.',\n sideMirrorFolding: 'Bilens yttre backspeglar går att automatiskt fälla in, exempelvis bra på trånga parkeringar.',\n speakerBrand: '',\n startAndStop: 'Bilens motor stoppas när bilen står still för att minska utsläppen.',\n steeringWheelMaterial: '',\n sunRoof: '',\n tankVolume: 'Antal liter bränsle som ryms i tanken.',\n timingBeltServiceIntervalDistance: 'Bilen är utrustad med kamrem som måste bytas vid olika distansintervall.',\n timingBeltServiceIntervalTime: 'Bilen är utrustad med kamrem som måste bytas vid olika tidsintervall.',\n tintedWindows: 'Bilens rutor har en mörkare toning.',\n tiresFront: 'Däckdimension fram. Presenteras i höjd/bredd och inom ett spann. Däcken som sitter på bilen måste alltså falla inom det spannet.',\n tiresRear: 'Däckdimension bak. Presenteras i höjd/bredd och inom ett spann. Däcken som sitter på bilen måste alltså falla inom det spannet.',\n torque: 'Bilens vridkraft. Hög siffra möjliggör att t.ex. dra tunga släp. Dieselmotorer har generellt mer vridmoment.',\n touchScreen: 'Mittskärmen i bilen är en pekskärm.',\n towHitch: '',\n towHitchDetachable: '',\n towHitchFoldable: '',\n trafficSignRecognition: 'Bilen är utrustad med kameror som läser av gällande trafikskyltar.',\n trailerTotalWeightB: 'Vikten man får dra med släp och ett vanligt B-körkort.',\n transmissionKnobMaterial: '',\n trcSystem: 'Får bilen att skicka kraft till hjulet som har bästa kontakt med underlaget.',\n tripComputer: 'I färddatorn som sitter framför ratten kan du se lite information om motorn och bränsleförbrukningen, bland annat kan du ofta läsa ut den återstående körsträckan på nuvarande bränslevolym.',\n trunkDepth: '',\n trunkHeight: '',\n trunkOutlet: '',\n trunkSpace: 'Volym på bagageutrymmet med uppfällda säten. Det mäts i liter.',\n trunkSpaceFront: '',\n trunkWidth: '',\n typeOfElectricCar: 'Anger om bilen drivs av el eller om den är en hybrid av el och bränsle.',\n upholstery: '',\n usb: 'Bilen är utrustad med en USB-port',\n ventilatedSeats: 'Bilens stolar har ventilation inbyggd, bland annat bra för att få bort fukt från sätena.',\n wheelBase: 'Avståndet mellan fram- och bakhjul.',\n wiFi: 'Bilen är utrustad med ett internt WIFI som du kan koppla upp dina egna enheter mot.',\n width: 'Avståndet mellan bilens båda yttre långsidor.',\n windowLifts: '',\n wirelessPhoneCharger: 'Bilen är utrustad med induktionsladdare, så att telefoner som stödjer trådlös laddning kan laddas i bilen utan laddningssladd.',\n});\nconst enrichWithHint = (properties) => {\n const clone = deepCopy(properties);\n const keys = Object.keys(clone);\n keys.forEach((key) => {\n if (!!HINTS[key]) {\n clone[key].hint = HINTS[key];\n }\n });\n return clone;\n};\nexport default enrichWithHint;\n","import deepCopy from '../deep-copy';\nexport const TEXT_TYPE = 'text';\nexport const NUMBER_TYPE = 'number';\nexport const BASIC_CATEGORY = Object.freeze({\n id: 1000,\n name: 'Basuppgifter',\n subCategory: null,\n});\nexport const ENGINE_SUBCATEGORY = Object.freeze({\n id: 6,\n name: 'Motor & Prestanda',\n subCategory: {\n id: 54,\n name: 'Motor',\n subCategory: null,\n },\n});\nclass PropertyBuilder {\n constructor() {\n this.name = '';\n this.value = '';\n this.type = 'unknown';\n this.unit = null;\n this.hint = null;\n this.category = null;\n }\n withName(name) {\n this.name = name;\n return this;\n }\n withValue(value) {\n this.value = value;\n return this;\n }\n withType(type) {\n this.type = type;\n return this;\n }\n withCategory(category) {\n this.category = category;\n return this;\n }\n withUnit(unit) {\n this.unit = unit;\n return this;\n }\n build() {\n return {\n name: this.name,\n value: this.value,\n type: this.type,\n unit: this.unit,\n hint: this.hint,\n category: this.category,\n };\n }\n}\nexport default (item, properties) => {\n const newProperties = deepCopy(properties);\n if (!!item.manufacturer) {\n newProperties.manufacturer = new PropertyBuilder()\n .withName('Varumärke')\n .withValue(item.manufacturer)\n .withType(TEXT_TYPE)\n .withCategory(BASIC_CATEGORY)\n .build();\n }\n if (!!item.modelSeries) {\n newProperties.modelSeries = new PropertyBuilder()\n .withName('Modell')\n .withValue(item.modelSeries)\n .withType(TEXT_TYPE)\n .withCategory(BASIC_CATEGORY)\n .build();\n }\n if (!!item.modelName) {\n newProperties.modelName = new PropertyBuilder()\n .withName('Version')\n .withValue(item.modelName)\n .withType(TEXT_TYPE)\n .withCategory(BASIC_CATEGORY)\n .build();\n }\n if (!!item.modelYear) {\n newProperties.modelYear = new PropertyBuilder()\n .withName('Modellår')\n .withValue(item.modelYear)\n .withType(NUMBER_TYPE)\n .withCategory(BASIC_CATEGORY)\n .build();\n }\n if (!!item.manufactureYear) {\n newProperties.manufactureYear = new PropertyBuilder()\n .withName('Tillverkningsår')\n .withValue(item.manufactureYear)\n .withType(NUMBER_TYPE)\n .withCategory(BASIC_CATEGORY)\n .build();\n }\n if (!!item.mileage) {\n newProperties.mileage = new PropertyBuilder()\n .withName('Mätarställning')\n .withValue(item.mileage)\n .withType(NUMBER_TYPE)\n .withCategory(BASIC_CATEGORY)\n .withUnit('mil')\n .build();\n }\n if (!!item.gearboxType) {\n newProperties.gearboxType = new PropertyBuilder()\n .withName('Växellåda')\n .withValue(item.gearboxType)\n .withType(TEXT_TYPE)\n .withCategory(BASIC_CATEGORY)\n .build();\n }\n if (!!item.registrationNumber) {\n newProperties.registrationNumber = new PropertyBuilder()\n .withName('Registreringsnummer')\n .withValue(item.registrationNumber)\n .withType(TEXT_TYPE)\n .withCategory(BASIC_CATEGORY)\n .build();\n }\n if (!!item.fuelType) {\n newProperties.fuelType = new PropertyBuilder()\n .withName('Bränslegrupp')\n .withValue(item.fuelType)\n .withType(TEXT_TYPE)\n .withCategory(BASIC_CATEGORY)\n .build();\n }\n if (item.enginePower) {\n newProperties.enginePower = new PropertyBuilder()\n .withName('Effekt')\n .withValue(item.enginePower)\n .withUnit('hk')\n .withType(NUMBER_TYPE)\n .withCategory(ENGINE_SUBCATEGORY)\n .build();\n }\n return newProperties;\n};\n","import deepCopy from '../deep-copy';\nconst PROPERTY_BLACK_LIST = Object.freeze(['towHitchFoldable']);\nconst isForbiddenProperty = (key) => PROPERTY_BLACK_LIST.includes(key);\nconst CATEGORY_WHITE_LIST = Object.freeze([1, 2, 6, 8, 71, 119, 1000]);\nconst hasForbiddenCategory = (property) => !property.category ||\n !property.category.id ||\n !CATEGORY_WHITE_LIST.includes(property.category.id);\nexport default (properties) => {\n const newProperties = deepCopy(properties);\n Object.keys(properties).forEach((key) => {\n const property = properties[key];\n if (hasForbiddenCategory(property)) {\n delete newProperties[key];\n }\n else if (isForbiddenProperty(key)) {\n delete newProperties[key];\n }\n });\n return newProperties;\n};\n","import styled from 'styled-components';\nimport { size } from '../../layout/helpers';\nexport const TableList = styled.ul `\n list-style: none;\n padding: 0;\n margin: 0;\n border-top: 1px solid ${(props) => props.theme.color.border};\n border-bottom: 1px solid ${(props) => props.theme.color.border};\n font-size: 0.875rem;\n`;\nexport const TableListItem = styled.li `\n display: flex;\n align-items: center;\n padding: ${size(1)} 0;\n\n & + & {\n border-top: 1px solid ${(props) => props.theme.color.border};\n }\n`;\nexport const TableListKey = styled.div `\n flex: 1 1 auto;\n`;\nexport const TableListValue = styled.div `\n flex-shrink: 0;\n padding-left: ${size(1)};\n`;\nexport const TableListBooleanPos = styled.div `\n color: ${(props) => props.theme.color.ui.positive};\n`;\nexport const TableListBooleanNeg = styled.div `\n color: ${(props) => props.theme.color.ui.negative};\n`;\n","import React, { useState, useCallback } from 'react';\nimport { TableListItem, TableListKey, TableListValue, TableListBooleanPos, TableListBooleanNeg, } from '../../components/TableList/index';\nimport { IconCheck, IconCancel } from '../../components/Icon/index';\nimport { SrOnly } from '../../components/SrOnly/index';\nimport { ButtonInline } from '../../components/Button/index';\nimport Modal from '../../components/Modal/index';\nimport Content from '../../components/Content/index';\nconst formatValue = (value, unit) => {\n if (typeof value === 'boolean') {\n return value ? (React.createElement(TableListBooleanPos, { title: \"Ja\" },\n React.createElement(SrOnly, null, \"Ja\"),\n React.createElement(IconCheck, { block: true }))) : (React.createElement(TableListBooleanNeg, { title: \"Nej\" },\n React.createElement(SrOnly, null, \"Nej\"),\n React.createElement(IconCancel, { block: true })));\n }\n if (Array.isArray(value)) {\n return value.join(', ');\n }\n if (!!value && !!unit) {\n return `${value} ${unit}`;\n }\n return value;\n};\nconst MetadataItem = ({ name, hint, value, unit }) => {\n const [foldout, setFoldout] = useState(false);\n const onToggleFoldout = useCallback(() => setFoldout(!foldout), [foldout]);\n const presentedValue = formatValue(value, unit);\n return (React.createElement(TableListItem, null,\n React.createElement(TableListKey, null, hint ? (React.createElement(ButtonInline, { onClick: onToggleFoldout, title: `Mer information om ${name}` }, name)) : (name)),\n React.createElement(TableListValue, null, value !== undefined ? presentedValue : 'Uppgift saknas'),\n hint && foldout && (React.createElement(Modal, { title: name, onClose: onToggleFoldout },\n React.createElement(Content, { dangerouslySetInnerHTML: { __html: hint } })))));\n};\nexport default MetadataItem;\n","import styled, { css } from 'styled-components';\nimport { ButtonReset } from '../Button/index';\nimport { size } from '../../layout/helpers';\nexport const Wrapper = styled.div `\n overflow: hidden;\n margin-top: ${size(-1)};\n margin-left: ${size(-1)};\n margin-right: ${size(-1)};\n\n ${(props) => props.theme.breakpoint.LtSm} {\n margin-left: ${size(-2)};\n margin-right: ${size(-2)};\n }\n`;\nexport const List = styled.ul `\n list-style: none;\n padding: 0;\n margin: 0;\n overflow: auto;\n -webkit-overflow-scrolling: touch;\n white-space: nowrap;\n font-size: 0;\n\n ${(props) => props.theme.breakpoint.LtSm} {\n padding-left: ${size(1)};\n padding-right: ${size(1)};\n }\n`;\nexport const Item = styled.li `\n display: inline-block;\n vertical-align: bottom;\n font-size: 1rem;\n`;\nexport const Action = styled(ButtonReset).attrs(() => ({\n role: 'tab',\n className: 'wayke__theme wayke__font--bold',\n})) `\n position: relative;\n display: block;\n padding: ${size(1)};\n color: ${(props) => props.theme.color.textDarkLighten};\n\n :hover {\n color: ${(props) => props.theme.color.textDark};\n }\n\n :after {\n content: '';\n position: absolute;\n bottom: 0;\n left: ${size(1)};\n right: ${size(1)};\n height: 2px;\n background-color: ${(props) => props.theme.color.textDark};\n transform: scaleY(0);\n transition: transform 200ms ease;\n z-index: 1;\n }\n\n ${(props) => props.active &&\n css `\n color: ${(props) => props.theme.color.textDark};\n\n :after {\n transform: scaleY(1);\n }\n `}\n`;\n","import * as React from 'react';\nimport { Action, Item, List, Wrapper } from './wrapper';\nconst Tabs = ({ tabs, active, onClick }) => (React.createElement(Wrapper, null,\n React.createElement(List, null, tabs.map((tab) => (React.createElement(Item, { key: tab.name },\n React.createElement(Action, { title: tab.displayName, onClick: onClick ? () => onClick(tab.name) : undefined, active: tab.name === active ? 'true' : undefined }, tab.displayName)))))));\nexport default Tabs;\n","import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport PropertyTreeCreator from '../../utils/vehicle-properties/property-tree-creator';\nimport sortTree from '../../utils/vehicle-properties/property-tree-sorter';\nimport enrichWithHint from '../../utils/vehicle-properties/property-hint-enricher';\nimport addCustomProperties from '../../utils/vehicle-properties/custom-property-adder';\nimport removeProperties from '../../utils/vehicle-properties/property-remover';\nimport MetadataItem from './MetadataItem';\nimport { H5 } from '../../components/Heading/index';\nimport { Repeat } from '../../components/Repeat/index';\nimport { TableList } from '../../components/TableList/index';\nimport Tabs from '../../components/Tabs/index';\nconst MetadataSubCategory = ({ name, properties }) => (React.createElement(Repeat, null,\n React.createElement(H5, { as: \"h3\" }, name),\n React.createElement(TableList, null, !!properties.length &&\n properties.map((property, index) => (React.createElement(MetadataItem, { name: property.name, hint: property.hint, value: property.value, unit: property.unit, key: `${property.name}-${index}` }))))));\nconst MetadataCategory = ({ properties, subCategories }) => (React.createElement(\"div\", { className: \"tab-section\" },\n !!properties.length && (React.createElement(Repeat, null,\n React.createElement(TableList, null, properties.map((property, index) => (React.createElement(MetadataItem, { name: property.name, hint: property.hint, value: property.value, unit: property.unit, key: `${property.name}-${index}` })))))),\n !!subCategories.length &&\n subCategories.map((subCategory, index) => (React.createElement(MetadataSubCategory, { name: subCategory.name, properties: subCategory.properties, key: `${subCategory.name}-${index}` })))));\nconst PropertySet = ({ propertySet, vehicleData }) => {\n var _a, _b;\n const [activeCategoryId, setActiveCategoryId] = useState(-1);\n const mappedProperties = useMemo(() => {\n if (!propertySet) {\n return undefined;\n }\n let newProperties = removeProperties(propertySet);\n newProperties = addCustomProperties(vehicleData, newProperties);\n const enrichedProperties = enrichWithHint(newProperties);\n const tree = new PropertyTreeCreator(enrichedProperties).create();\n sortTree(tree);\n return tree;\n }, [propertySet]);\n useEffect(() => {\n var _a;\n const categories = ((_a = mappedProperties === null || mappedProperties === void 0 ? void 0 : mappedProperties.categories) === null || _a === void 0 ? void 0 : _a.length) !== undefined ? mappedProperties === null || mappedProperties === void 0 ? void 0 : mappedProperties.categories : undefined;\n if (activeCategoryId < 0 && categories !== undefined && categories.length > 0) {\n setActiveCategoryId(categories[0].id);\n }\n }, [mappedProperties]);\n const onTab = useCallback((id) => setActiveCategoryId(parseInt(id, 10)), []);\n const activeCategory = (_a = mappedProperties === null || mappedProperties === void 0 ? void 0 : mappedProperties.categories) === null || _a === void 0 ? void 0 : _a.find((category) => category.id === activeCategoryId);\n return (React.createElement(React.Fragment, null,\n React.createElement(Repeat, null,\n React.createElement(Tabs, { tabs: ((_b = mappedProperties === null || mappedProperties === void 0 ? void 0 : mappedProperties.categories) === null || _b === void 0 ? void 0 : _b.map((category) => ({\n name: `${category.id}`,\n displayName: category.name,\n }))) || [], active: `${activeCategoryId}`, onClick: onTab })),\n activeCategory && (React.createElement(Repeat, null,\n React.createElement(MetadataCategory, { properties: activeCategory.properties, subCategories: activeCategory.subCategories })))));\n};\nexport default PropertySet;\n","import styled from 'styled-components';\nimport { size } from '../../layout/helpers';\nexport const PdfListItem = styled.li.attrs(() => ({\n className: 'wayke__theme wayke__color--primary-text',\n})) `\n flex: 0 0 50%;\n padding: ${size(1)};\n\n ${({ theme }) => theme.breakpoint.LtSm} {\n flex: 0 0 100%;\n }\n`;\nexport const PdfContainer = styled.ul `\n list-style: none;\n padding: 0;\n display: flex;\n flex-wrap: wrap;\n margin: ${size(-1)};\n`;\nexport const PdfLink = styled.a.attrs(() => ({\n className: 'wayke__theme wayke__color--primary-text wayke__font--bold',\n})) `\n text-decoration: none;\n font-size: 0.875rem;\n &:after {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n }\n`;\nexport const PdfTitle = styled.div `\n color: ${(props) => props.theme.color.textDark};\n`;\nexport const PdfSubtitle = styled.div `\n color: ${(props) => props.theme.color.textDarkLighten};\n`;\nexport const PdfColumn = styled.div `\n flex 0 0 auto;\n &:first-child {\n flex: 1 1 auto;\n }\n`;\nexport const PdfListInner = styled.div `\n position: relative;\n border: 1px solid ${(props) => props.theme.color.border};\n padding: ${size(1.5)};\n display: flex;\n align-items: center;\n :hover {\n background-color: ${(props) => props.theme.color.hoverOverlay};\n }\n`;\n","import React from 'react';\nimport { PdfListItem, PdfSubtitle, PdfTitle, PdfContainer, PdfListInner, PdfLink, PdfColumn, } from './wrapper';\nexport const PdfDownloadItem = ({ document }) => (React.createElement(PdfListItem, null,\n React.createElement(PdfListInner, null,\n React.createElement(PdfColumn, null,\n React.createElement(PdfTitle, null, document.name),\n React.createElement(PdfSubtitle, null, document.contentType)),\n React.createElement(PdfColumn, null,\n React.createElement(PdfLink, { href: document.url, rel: \"noopener noreferrer nofollow\", target: \"_blank\" }, \"\\u00D6ppna\")))));\nexport const PdfDownloadContainer = ({ documents }) => (React.createElement(PdfContainer, null, documents.map((document, i) => (React.createElement(PdfDownloadItem, { key: `${document.url}-${i}`, document: document })))));\nexport default PdfDownloadContainer;\n","import React, { useMemo, useState, useCallback, useEffect } from 'react';\nimport Container from '../../components/Container/index';\nimport UspList from '../../components/UspList/index';\nimport { Repeat, RepeatSmall } from '../../components/Repeat/index';\nimport PriceTable from '../../components/PriceTable/index';\nimport LogoBox from '../../components/LogoBox/index';\nimport Content from '../../components/Content/index';\nimport Blockquote from '../../components/Blockquote/index';\nimport ExtendContent from '../../components/ExtendContent/index';\nimport Gallery from '../../components/Gallery/index';\nimport { Page, PageSection } from '../../components/Page/index';\nimport { ProductPage, ProductPageMainSection, ProductPageAside, ProductPageMain, ProductPageAsideSection, } from '../../components/ProductPage/index';\nimport { H1, H2 } from '../../components/Heading/index';\nimport { ButtonPrimary, ButtonContent, ButtonInlineLight } from '../../components/Button/index';\nimport { UtilityFontSizeSmall } from '../../components/Utility/index';\nimport { IconChevronLeft } from '../../components/Icon/index';\nimport useSearchItem from '../../hooks/useSearchItem';\nimport { notEmpty, numberSeparator, dateTimeFormat } from '../../utils/formats';\nimport { PortalNamespace, PortalElement } from '../../components/Portal/index';\nimport Modal from '../../components/Modal/index';\nimport FinancialOptions from '../../components/FinancialOptions/index';\nimport InsuranceOptions from '../../components/InsuranceOptions/index';\nimport Ecom from '../../components/Ecom/index';\nimport ManufacturerPackageOption from './ManufacturerPackagesOption';\nimport CheckList from './CheckList';\nimport Related from './Related';\nimport PackageOptions from './PackageOptions';\nimport Branch from './Branch';\nimport useCentralStorage from '../../State/CentralStorage/useCentralStorage';\nimport Page404 from './Page404';\nimport PageLoading from './PageLoading';\nimport PubSub from '../../utils/pubsub/pubsub';\nimport Property from './Property';\nimport PdfDownloadContainer from '../../components/Pdf/index';\nconst WaykeSearchItem = ({ id, hashRoute, pathRoute, disableResetScrollOnInit, placeholderImage, modifyDocumentTitleItem, onClickSearchItem, }) => {\n var _a, _b, _c;\n const [ecomModal, setEcomModal] = useState(false);\n const { loading, data: result } = useSearchItem(id);\n const toggleEcomModal = useCallback(() => setEcomModal(!ecomModal), [ecomModal]);\n const { vehicle: centralStorageVehicle, loading: loadingCentralStorageVehicle } = useCentralStorage(result === null || result === void 0 ? void 0 : result.vehicle);\n useEffect(() => {\n if (!disableResetScrollOnInit) {\n window.scrollTo(0, 0);\n }\n }, []);\n useEffect(() => {\n var _a;\n if (((_a = result === null || result === void 0 ? void 0 : result.vehicle) === null || _a === void 0 ? void 0 : _a.data) && modifyDocumentTitleItem) {\n const { vehicle } = result;\n const { registrationNumber } = vehicle.data;\n document.title = `${registrationNumber} | ${vehicle.title} | ${vehicle.shortDescription}`;\n }\n }, [result]);\n const options = useMemo(() => { var _a, _b, _c; return (_c = (_b = (_a = result === null || result === void 0 ? void 0 : result.vehicle) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.options) === null || _c === void 0 ? void 0 : _c.filter(notEmpty).map((opt) => ({ title: opt })); }, [(_b = (_a = result === null || result === void 0 ? void 0 : result.vehicle) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.options]);\n const onShowMoreOptionsClick = useCallback(() => PubSub.publish('OptionsClick'), []);\n if (loading) {\n return React.createElement(PageLoading, null);\n }\n if (!((_c = result === null || result === void 0 ? void 0 : result.vehicle) === null || _c === void 0 ? void 0 : _c.data)) {\n return React.createElement(Page404, null);\n }\n const { vehicle } = result;\n const contact = centralStorageVehicle === null || centralStorageVehicle === void 0 ? void 0 : centralStorageVehicle.contact;\n const branch = centralStorageVehicle === null || centralStorageVehicle === void 0 ? void 0 : centralStorageVehicle.branch;\n const { title, shortDescription, media, description, price, financialOptions, insuranceOptions, manufacturer, ecommerce, packageOptions, publishedAt, documents, } = vehicle;\n const { fuelType, mileage, gearbox, modelYear, propertySet } = vehicle.data;\n const uspList = [\n {\n title: modelYear,\n },\n {\n title: `${numberSeparator(mileage)} mil`,\n },\n ];\n if (gearbox) {\n uspList.push({ title: gearbox });\n }\n if (fuelType) {\n uspList.push({ title: fuelType });\n }\n return (React.createElement(React.Fragment, null,\n ecomModal && React.createElement(Ecom, { vehicle: vehicle, manufacturer: manufacturer, onExit: toggleEcomModal }),\n React.createElement(Page, null,\n React.createElement(PageSection, { large: true },\n React.createElement(Container, null,\n React.createElement(ProductPage, null,\n React.createElement(ProductPageAside, null,\n React.createElement(ProductPageAsideSection, { mobileOrder: 1 },\n !pathRoute && hashRoute ? (React.createElement(Repeat, null,\n React.createElement(UtilityFontSizeSmall, null,\n React.createElement(ButtonInlineLight, { as: \"a\", href: \"#\", title: \"Tillbaka till bils\\u00F6k\" },\n React.createElement(ButtonContent, null,\n React.createElement(IconChevronLeft, { block: true })),\n React.createElement(ButtonContent, null, \"Tillbaka till bils\\u00F6k\"))))) : null,\n (manufacturer === null || manufacturer === void 0 ? void 0 : manufacturer.logotype) && (React.createElement(Repeat, null,\n React.createElement(LogoBox, { logo: manufacturer.logotype, alt: manufacturer.name }))),\n React.createElement(Repeat, null,\n React.createElement(RepeatSmall, null,\n React.createElement(H1, { noMargin: true }, title)),\n shortDescription && (React.createElement(RepeatSmall, null,\n React.createElement(\"div\", null, shortDescription))),\n React.createElement(RepeatSmall, null,\n React.createElement(UspList, { small: true, items: uspList })))),\n React.createElement(ProductPageAsideSection, { mobileOrder: 2 },\n React.createElement(PriceTable, { price: price })),\n (financialOptions.length > 0 || insuranceOptions.length > 0) && (React.createElement(ProductPageAsideSection, { mobileOrder: 4 },\n financialOptions.length > 0 && (React.createElement(FinancialOptions, { id: id, financialOptions: financialOptions })),\n insuranceOptions.length > 0 && (React.createElement(InsuranceOptions, { id: id, insuranceOptions: insuranceOptions })))),\n React.createElement(ProductPageAsideSection, { mobileOrder: 5 },\n React.createElement(CheckList, { manufacturer: manufacturer, packageOptions: packageOptions, ecommerce: ecommerce, branch: branch, contact: centralStorageVehicle === null || centralStorageVehicle === void 0 ? void 0 : centralStorageVehicle.contact, loadingCentralStorageVehicle: loadingCentralStorageVehicle, toggleEcomModal: toggleEcomModal }))),\n React.createElement(ProductPageMain, null,\n React.createElement(ProductPageAsideSection, { mobileOrder: 3 },\n React.createElement(Gallery, { media: media, placeholderImage: placeholderImage })),\n React.createElement(ProductPageMainSection, null,\n React.createElement(Repeat, null,\n React.createElement(H2, { noMargin: true }, \"Biluppgifter\")),\n React.createElement(Repeat, null,\n React.createElement(Content, null,\n React.createElement(\"p\", null, \"Information direkt fr\\u00E5n Transportstyrelsen och tillverkaren.\"))),\n React.createElement(Repeat, null,\n React.createElement(Property, { propertySet: propertySet, vehicleData: vehicle.data }))),\n description && (React.createElement(ProductPageMainSection, null,\n React.createElement(Blockquote, { author: contact && contact.name ? contact.name : null, date: publishedAt\n ? dateTimeFormat.format(publishedAt, dateTimeFormat.DayMonth)\n : undefined, avatar: (contact === null || contact === void 0 ? void 0 : contact.avatar) || undefined }, !!description && React.createElement(\"p\", null, description)))),\n ((options === null || options === void 0 ? void 0 : options.length) || 0) > 0 && (React.createElement(ProductPageMainSection, null,\n React.createElement(Repeat, null,\n React.createElement(H2, { noMargin: true }, \"Utrustning\")),\n React.createElement(Repeat, null,\n React.createElement(Content, null,\n React.createElement(\"p\", null, \"Kompletterande uppgifter om bilen.\"))),\n React.createElement(Repeat, null,\n React.createElement(ExtendContent, { actionTitle: \"Visa mer\", onClick: onShowMoreOptionsClick },\n React.createElement(UspList, { items: options }))))),\n (documents.length || 0) > 0 && (React.createElement(ProductPageMainSection, null,\n React.createElement(Repeat, null,\n React.createElement(H2, { noMargin: true }, \"Dokument\")),\n React.createElement(Repeat, null,\n React.createElement(Content, null,\n React.createElement(\"p\", null, \"Tillh\\u00F6rande dokument f\\u00F6r bilen.\"))),\n React.createElement(Repeat, null,\n React.createElement(PdfDownloadContainer, { documents: documents })))),\n React.createElement(ProductPageMainSection, null,\n React.createElement(Branch, { branch: branch, loading: loadingCentralStorageVehicle }),\n ecommerce && ecommerce.enabled && (React.createElement(Repeat, null,\n React.createElement(ButtonPrimary, { disabled: !!ecommerce.reserved, title: \"K\\u00F6p bilen online\", onClick: toggleEcomModal }, \"K\\u00F6p bilen online\")))),\n React.createElement(PackageOptions, { packageOptions: packageOptions }),\n React.createElement(ManufacturerPackageOption, { packageOption: manufacturer === null || manufacturer === void 0 ? void 0 : manufacturer.packageOption }))))),\n React.createElement(Related, { id: id, hashRoute: hashRoute, pathRoute: pathRoute, onClickSearchItem: onClickSearchItem })),\n false && (React.createElement(Modal, { title: \"Modal\", onClose: () => { } },\n React.createElement(Content, null,\n React.createElement(\"p\", null,\n \"Priset \\u00E4r ett cirkapris och baserat p\\u00E5 ditt avtals antal m\\u00E5nader och din ber\\u00E4knade \\u00E5rliga k\\u00F6rstr\\u00E4cka. Kostnad f\\u00F6r f\\u00F6rs\\u00E4kring och serviceavtal tillkommer. Kontakta s\\u00E4ljare f\\u00F6r komplett kostnadsf\\u00F6rslag.\",\n ' ')))),\n React.createElement(PortalElement, { id: PortalNamespace.DefaultPortal })));\n};\nexport default WaykeSearchItem;\n","import React from 'react';\nimport { ApolloProvider as ApolloProviderBase, ApolloClient, InMemoryCache } from '@apollo/client';\nconst GraphqlProvider = ({ uri, children }) => {\n const client = new ApolloClient({ uri, cache: new InMemoryCache() });\n return React.createElement(ApolloProviderBase, { client: client }, children);\n};\nexport default GraphqlProvider;\n","import React from 'react';\nimport { ThemeProvider as ThemeProviderBase } from 'styled-components';\nimport theme from '../layout/theme';\nconst ThemeProvider = ({ children }) => (React.createElement(ThemeProviderBase, { theme: theme }, children));\nexport default ThemeProvider;\n","export const getUrlSearchParamsFromUrl = () => new URLSearchParams(window.location.search);\n","import React, { useState, useEffect, useCallback } from 'react';\nimport useFetch from '../../hooks/useFetch';\nimport { SearchContext } from './SearchContext';\nimport { getUrlSearchParamsFromUrl } from '../../utils/url';\nimport { WaykePubSub } from '../../index';\nimport usePath from '../Path/usePath';\nconst initialSearchParams = new URLSearchParams();\ninitialSearchParams.set('hits', '30');\ninitialSearchParams.set('sort', 'published-desc');\nconst SearchProvider = ({ url, apiKey, useQueryParamsFromUrl, pathRoute, children, }) => {\n const { replaceState, pushState } = usePath();\n const [queryFilter, setQueryFilter] = useState({\n searchParams: initialSearchParams,\n });\n const [initialFacets, setInitialFacets] = useState();\n const [documents, setDocuments] = useState();\n const [initialize, setInitialize] = useState(false);\n const { data: initialDataRepsonse } = useFetch(`${url}?hits=0`, {\n headers: apiKey\n ? {\n 'x-api-key': apiKey,\n }\n : {},\n }, !!initialFacets);\n const query = queryFilter.searchParams.toString();\n const { loading, data: response, error, } = useFetch(`${url}${query ? `?${query}` : ''}`, {\n headers: apiKey\n ? {\n 'x-api-key': apiKey,\n }\n : {},\n }, !initialize || !!(queryFilter === null || queryFilter === void 0 ? void 0 : queryFilter.block));\n const popStateEvent = (event) => {\n const { currentTarget } = event;\n if (currentTarget) {\n const nextSearchParams = new URLSearchParams(currentTarget.location.search);\n if (!nextSearchParams.has('sort')) {\n nextSearchParams.set('sort', 'published-desc');\n }\n setQueryFilter({\n searchParams: nextSearchParams,\n });\n }\n };\n useEffect(() => {\n if (useQueryParamsFromUrl) {\n window.addEventListener('popstate', popStateEvent);\n }\n const onFilterUpdateEvent = {\n actionName: 'onFilterUpdate',\n callback: onFilterUpdate,\n };\n WaykePubSub.subscribeAction(onFilterUpdateEvent);\n return () => {\n window.removeEventListener('popstate', popStateEvent);\n WaykePubSub.unsubscribeAction(onFilterUpdateEvent);\n };\n }, []);\n useEffect(() => {\n if (initialDataRepsonse) {\n setInitialFacets(initialDataRepsonse.facets);\n }\n }, [initialDataRepsonse]);\n useEffect(() => {\n if (useQueryParamsFromUrl) {\n const nextSearchParams = new URLSearchParams(queryFilter.searchParams);\n nextSearchParams.delete('hits');\n nextSearchParams.delete('offset');\n if (nextSearchParams.get('sort') === 'published-desc') {\n nextSearchParams.delete('sort');\n }\n const nextSearch = nextSearchParams.toString() ? `?${nextSearchParams}` : '';\n if (initialize) {\n if (window.location.search.localeCompare(nextSearch) !== 0) {\n const _path = pathRoute === null || pathRoute === void 0 ? void 0 : pathRoute.replace(/^\\/|\\/$/g, '');\n const prefix = _path ? `/${_path}/` : '/';\n const index = _path ? window.location.pathname.indexOf(prefix) : -1;\n let pathname = window.location.pathname;\n if (index > -1) {\n pathname = pathname.substr(0, index);\n }\n pushState(`${pathname}${nextSearch}`);\n }\n }\n }\n }, [queryFilter, initialize, useQueryParamsFromUrl]);\n useEffect(() => {\n var _a;\n if (response) {\n if (!initialFacets && !useQueryParamsFromUrl) {\n setInitialFacets(response.facets);\n }\n if (useQueryParamsFromUrl && ((_a = response.query) === null || _a === void 0 ? void 0 : _a.parameters)) {\n const nextSearchParams = new URLSearchParams(response.query.parameters);\n nextSearchParams.delete('hits');\n nextSearchParams.delete('offset');\n const nextSearch = nextSearchParams.toString() ? `?${nextSearchParams}` : '';\n if (window.location.search.localeCompare(nextSearch) !== 0) {\n replaceState(`${window.location.pathname}${nextSearch}`);\n setQueryFilter({\n searchParams: new URLSearchParams(nextSearch),\n block: true,\n });\n }\n }\n if (queryFilter === null || queryFilter === void 0 ? void 0 : queryFilter.concatResult) {\n setDocuments([...(documents || []), ...(response.documentList.documents || [])]);\n }\n else {\n setDocuments(response.documentList.documents || []);\n }\n }\n }, [response, useQueryParamsFromUrl]);\n const onFilterUpdate = useCallback((nextQuery) => {\n {\n if (!initialize) {\n setInitialize(true);\n }\n setQueryFilter({\n searchParams: new URLSearchParams(nextQuery),\n });\n }\n }, [initialize]);\n const onLoadMore = useCallback(() => {\n var _a;\n if (response) {\n setQueryFilter({\n searchParams: new URLSearchParams((_a = response === null || response === void 0 ? void 0 : response.documentList.pagination.nextPage) === null || _a === void 0 ? void 0 : _a.query),\n concatResult: true,\n });\n }\n }, [response]);\n const onInitialize = useCallback((_initialQueryParams) => {\n if (!initialize) {\n const searchParamsFromUrl = getUrlSearchParamsFromUrl();\n const initialQueryParams = useQueryParamsFromUrl\n ? searchParamsFromUrl\n : _initialQueryParams;\n if (useQueryParamsFromUrl && _initialQueryParams) {\n _initialQueryParams.forEach((value, key) => {\n var _a;\n if (!((_a = initialQueryParams === null || initialQueryParams === void 0 ? void 0 : initialQueryParams.getAll(key)) === null || _a === void 0 ? void 0 : _a.some((v) => v === value))) {\n initialQueryParams === null || initialQueryParams === void 0 ? void 0 : initialQueryParams.append(key, value);\n }\n });\n }\n if (initialQueryParams) {\n const nextSearchParams = new URLSearchParams(initialQueryParams);\n nextSearchParams.delete('hits');\n nextSearchParams.delete('offset');\n if (!initialQueryParams.has('hits')) {\n initialQueryParams.set('hits', '30');\n }\n if (!initialQueryParams.has('sort')) {\n initialQueryParams.set('sort', 'published-desc');\n }\n const nextSearch = nextSearchParams.toString() ? `?${nextSearchParams}` : '';\n setQueryFilter({\n searchParams: initialQueryParams,\n });\n replaceState(`${window.location.pathname}${nextSearch}`);\n }\n setInitialize(true);\n }\n }, [initialize]);\n const value = {\n loading,\n error,\n response,\n documents,\n initialFacets,\n queryFilter,\n onFilterUpdate,\n onLoadMore,\n onInitialize,\n };\n return React.createElement(SearchContext.Provider, { value: value }, children);\n};\nexport default SearchProvider;\n","import styled from 'styled-components';\nconst Root = styled.div.attrs(() => ({\n className: 'wayke__theme wayke__font--regular',\n})) `\n background-color: ${(props) => props.theme.color.bg};\n color: ${(props) => props.theme.color.textDark};\n font-size: 1rem;\n line-height: 1.5;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n\n *,\n *:before,\n *:after {\n box-sizing: border-box;\n }\n\n a img {\n border: 0;\n }\n`;\nexport default Root;\n","const useEcom = (ecomSettings) => {\n if (ecomSettings === null || ecomSettings === void 0 ? void 0 : ecomSettings.url) {\n import('@wayke-se/ecom').then(({ config }) => {\n config.bind({\n api: {\n address: ecomSettings.url,\n },\n /** Specifying an origin is optional **/\n origin: {\n topic: 'Wayke',\n channel: 'wayke.se',\n },\n bankIdThumbprint: ecomSettings.bankIdThumbprint,\n });\n });\n }\n};\nexport default useEcom;\n","import React from 'react';\nimport { SettingsContext } from './SettingsContext';\nconst SettingsProvider = ({ googleMapsApiKey, googleMapsMarker, ecomSettings, children, }) => (React.createElement(SettingsContext.Provider, { value: { ecomSettings, googleMapsApiKey, googleMapsMarker } }, children));\nexport default SettingsProvider;\n","import React, { useState, useCallback } from 'react';\nimport useFetch from '../../hooks/useFetch';\nimport { RelatedSearchContext } from './RelatedSearchContext';\nconst RelatedSearchProvider = ({ url, urlMlt, apiKey, children }) => {\n const [queryFilter, setQueryFilter] = useState();\n const query = queryFilter === null || queryFilter === void 0 ? void 0 : queryFilter.searchParams.toString();\n const { loading, data: response, error, } = useFetch(`${urlMlt || url}${query ? `?${query}` : ''}`, {\n headers: apiKey\n ? {\n 'x-api-key': apiKey,\n }\n : {},\n }, !queryFilter);\n const fetchRelated = useCallback((searchParams) => setQueryFilter({\n searchParams,\n }), []);\n const value = {\n moreLikeThisUrl: !!urlMlt,\n loading,\n error,\n response,\n queryFilter,\n fetchRelated,\n };\n return React.createElement(RelatedSearchContext.Provider, { value: value }, children);\n};\nexport default RelatedSearchProvider;\n","import { useState, useCallback } from 'react';\nconst useSessionStorage = (key) => {\n const [value, setValue] = useState(sessionStorage.getItem(key));\n const set = useCallback((v) => {\n sessionStorage.setItem(key, v);\n setValue(v);\n }, [key]);\n const remove = useCallback(() => {\n sessionStorage.removeItem(key);\n setValue(null);\n }, [key]);\n const clear = useCallback(() => {\n sessionStorage.clear();\n setValue(null);\n }, [key]);\n return {\n value,\n set,\n remove,\n clear,\n };\n};\nexport default useSessionStorage;\n","import React, { useCallback } from 'react';\nimport { CentralStorageContext } from './CentralStorageContext';\nimport useSessionStorage from '../../hooks/useSessionStorage';\nconst CentralStorageProvider = ({ children }) => {\n const { value, set, remove } = useSessionStorage('centralStorage');\n const setCentralStorageId = useCallback((id) => (id ? set(id) : remove()), []);\n return (React.createElement(CentralStorageContext.Provider, { value: { centralStorageId: value, setCentralStorageId } }, children));\n};\nexport default CentralStorageProvider;\n","import { useRef, useEffect } from 'react';\nconst usePrevious = (value) => {\n const ref = useRef();\n useEffect(() => {\n ref.current = value;\n });\n return ref.current;\n};\nexport default usePrevious;\n","export const SET_PATH = 'SET_PATH';\nexport const initialState = {\n path: window.location.pathname,\n};\nconst pathReducer = (state, action) => {\n const next = { ...state };\n switch (action.type) {\n case SET_PATH:\n next.path = action.path;\n return next;\n default:\n throw new Error(`Unsupported action type`);\n }\n};\nexport default pathReducer;\n","import React, { useCallback, useEffect, useMemo, useReducer } from 'react';\nimport usePrevious from '../../hooks/usePrevious';\nimport { PathContext } from './PathContext';\nimport reducer, { initialState, SET_PATH } from './reducer';\nconst regexGuidAnyWhere = /(\\{){0,1}[0-9a-fA-F]{8}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{4}\\-[0-9a-fA-F]{12}(\\}){0,1}/g;\nconst POP_STATE = 'popstate';\nconst PathProvider = ({ children }) => {\n const [state, dispatch] = useReducer(reducer, initialState);\n const previousPath = usePrevious(state.path);\n useEffect(() => {\n const onPopState = () => {\n dispatch({ type: SET_PATH, path: window.location.pathname });\n };\n window.addEventListener(POP_STATE, onPopState);\n return () => {\n window.removeEventListener(POP_STATE, onPopState);\n };\n }, []);\n const pushState = useCallback((path) => {\n const h1 = window.location.hash;\n history.pushState(null, '', `${path}`);\n const h2 = window.location.hash;\n if (h1.localeCompare(h2) !== 0) {\n window.dispatchEvent(new HashChangeEvent('hashchange'));\n }\n dispatch({ type: SET_PATH, path });\n }, []);\n const replaceState = useCallback((path) => {\n const h1 = window.location.hash;\n history.replaceState(null, '', path);\n const h2 = window.location.hash;\n if (h1.localeCompare(h2) !== 0) {\n window.dispatchEvent(new HashChangeEvent('hashchange'));\n }\n dispatch({ type: SET_PATH, path });\n }, []);\n const id = useMemo(() => { var _a; return (_a = state.path.match(regexGuidAnyWhere)) === null || _a === void 0 ? void 0 : _a.pop(); }, [state.path]);\n const value = useMemo(() => ({\n ...state,\n previousPath,\n id,\n pushState,\n replaceState,\n }), [state]);\n return React.createElement(PathContext.Provider, { value: value }, children);\n};\nexport default PathProvider;\n","import React from 'react';\nimport GraphqlProvider from './graphqlProvider';\nimport Theme from './themeProvider';\nimport SearchProvider from '../State/Search/SearchProvider';\nimport Root from '../components/Root/index';\nimport useEcom from '../hooks/useEcom';\nimport SettingsProvider from '../State/Settings/SettingsProvider';\nimport RelatedSearchProvider from '../State/RelatedSearch/RelatedSearchProvider';\nimport CentralStorageProvider from '../State/CentralStorage/CentralStorageProvider';\nimport PathProvider from '../State/Path/PathProvider';\nconst WaykeProvider = ({ url, urlMlt, apiKey, ecomSettings, graphQlUrl, googleMapsApiKey, googleMapsMarker, useQueryParamsFromUrl, pathRoute, children, }) => {\n useEcom(ecomSettings);\n return (React.createElement(PathProvider, null,\n React.createElement(SettingsProvider, { googleMapsApiKey: googleMapsApiKey, googleMapsMarker: googleMapsMarker, ecomSettings: ecomSettings },\n React.createElement(CentralStorageProvider, null,\n React.createElement(GraphqlProvider, { uri: graphQlUrl },\n React.createElement(SearchProvider, { url: url, apiKey: apiKey, useQueryParamsFromUrl: useQueryParamsFromUrl, pathRoute: pathRoute },\n React.createElement(RelatedSearchProvider, { url: url, urlMlt: urlMlt, apiKey: apiKey },\n React.createElement(Theme, null,\n React.createElement(Root, null, children)))))))));\n};\nexport default WaykeProvider;\n","import { useState, useEffect } from 'react';\nconst regexGuid = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i;\nconst HASH_CHANGE = 'hashchange';\nconst getGuid = () => {\n const guid = window.location.hash.substr(1, window.location.hash.length);\n return regexGuid.test(guid) || !guid ? guid : undefined;\n};\nconst useHashGuid = () => {\n const [id, setId] = useState(() => getGuid());\n const onHashChange = () => {\n const guid = window.location.hash.substr(1, window.location.hash.length);\n if (regexGuid.test(guid) || !guid) {\n setId(window.location.hash.substr(1, window.location.hash.length));\n }\n else {\n throw 'Invalid Guid';\n }\n };\n useEffect(() => {\n onHashChange();\n window.addEventListener(HASH_CHANGE, onHashChange);\n return () => {\n window.removeEventListener(HASH_CHANGE, onHashChange);\n };\n }, []);\n return id;\n};\nexport default useHashGuid;\n","import React, { useEffect } from 'react';\nimport useHashGuid from '../hooks/useHashGuid';\nimport PubSub from '../utils/pubsub/pubsub';\nimport WaykeSearch from './search/index';\nimport WaykeSearchItem from './searchItem/index';\nimport usePath from '../State/Path/usePath';\nconst WaykeComposite = ({ filterList, initialQueryParams, removeSearchBar, removeFilterOptions, disableResetScrollOnInit, placeholderImage, pathRoute, modifyDocumentTitleItem, modifyDocumentTitleSearch, }) => {\n const hashId = useHashGuid();\n const { id: pathId } = usePath();\n useEffect(() => {\n if (!pathRoute) {\n if (hashId) {\n PubSub.publish('HashRouteChange', hashId);\n }\n else {\n PubSub.publish('HashRouteChange');\n }\n }\n }, [hashId]);\n const id = pathId || hashId;\n return (React.createElement(React.Fragment, null, id ? (React.createElement(WaykeSearchItem, { id: id, hashRoute: !pathRoute, disableResetScrollOnInit: disableResetScrollOnInit, placeholderImage: placeholderImage, pathRoute: pathRoute, modifyDocumentTitleItem: modifyDocumentTitleItem })) : (React.createElement(WaykeSearch, { filterList: filterList, initialQueryParams: initialQueryParams, removeSearchBar: removeSearchBar, hashRoute: !pathRoute, placeholderImage: placeholderImage, pathRoute: pathRoute, removeFilterOptions: removeFilterOptions, modifyDocumentTitleSearch: modifyDocumentTitleSearch }))));\n};\nexport default WaykeComposite;\n","import React from 'react';\nimport WaykeProvider from '../providers/WaykeProvider';\nimport WaykeComposite from './WaykeComposite';\nconst WaykeCompositeWithProvider = ({ provider, composite }) => (React.createElement(WaykeProvider, { ...provider },\n React.createElement(WaykeComposite, { ...composite })));\nexport default WaykeCompositeWithProvider;\n","import React from 'react';\nimport GraphqlProvider from './graphqlProvider';\nimport Theme from './themeProvider';\nimport Root from '../components/Root/index';\nimport useEcom from '../hooks/useEcom';\nimport SettingsProvider from '../State/Settings/SettingsProvider';\nimport RelatedSearchProvider from '../State/RelatedSearch/RelatedSearchProvider';\nimport CentralStorageProvider from '../State/CentralStorage/CentralStorageProvider';\nimport PathProvider from '../State/Path/PathProvider';\nconst WaykeItemProvider = ({ url, urlMlt, apiKey, ecomSettings, graphQlUrl, googleMapsApiKey, googleMapsMarker, children, }) => {\n useEcom(ecomSettings);\n return (React.createElement(PathProvider, null,\n React.createElement(SettingsProvider, { googleMapsApiKey: googleMapsApiKey, googleMapsMarker: googleMapsMarker, ecomSettings: ecomSettings },\n React.createElement(CentralStorageProvider, null,\n React.createElement(GraphqlProvider, { uri: graphQlUrl },\n React.createElement(RelatedSearchProvider, { url: url, urlMlt: urlMlt, apiKey: apiKey },\n React.createElement(Theme, null,\n React.createElement(Root, null, children))))))));\n};\nexport default WaykeItemProvider;\n"],"names":["_colors","black","white","gray","grayLight","grayLightTransparent","grayLightDarker","grayDark","blue","ui","greenLight","green","redLight","red","yellowLight","blueLight","theme","color","bg","link","accent","accentTransparent","accentDark","border","textDark","textDarkLighten","textLight","hoverOverlay","disabledBg","disabledText","placeholder","positiveLight","positive","neutralLight","negativeLight","negative","infoLight","breakpoint","Sm","LtSm","Md","LtMd","Lg","LtLg","distances","baseUnit","inputHeight","containerMaxWidth","size","multiplier","parseFloat","Wrapper","styled","div","props","Container","children","React","createElement","Page","PageSection","section","css","large","fillSpace","Header","header","HeaderCount","HeaderSort","Body","Footer","footer","FooterProgress","FooterAction","ResultCount","Description","Bar","BarActive","attrs","role","ProgressBar","unit","valueCurrent","valueMax","barWidth","toString","style","width","UtilityTextRight","UtilityFontSizeSmall","span","UtilityTextPrimary","className","UtilityTextBold","ButtonReset","button","type","ButtonBase","fullWidth","ButtonPrimary","ButtonSecondary","ButtonContent","ButtonClear","ButtonInline","inline","ButtonInlineBold","ButtonInlineLight","ButtonInlinePrimary","noTransform","keyframes","fadeIn","rotate","Spinner","center","SrOnly","Loader","MANUFACTURER","MODEL_SERIES","FUEL_TYPE","GEARBOX_TYPE","BRANCH","COLOR","ENVIRONMENT_CLASS","SEGMENT","DRIVING_WHEEL","PRICE","MILEAGE","MODEL_YEAR","LEASING_PRICE","COLOR_WHITE","displayName","hex","COLOR_BLACK","COLOR_GRAY","COLOR_SILVER","COLOR_BLUE","COLOR_RED","COLOR_BROWN","COLOR_GREEN","COLOR_ORANGE","COLOR_YELLOW","COLOR_PURPLE","COLOR_BEIGE","DEFAULT_PLACEHOLDER_IMAGE","notEmpty","value","undefined","numberSeparator","n","x","s","c","re","num","toFixed","Math","max","replace","RegExp","FacetIdToTitle","f","dateTimeFormat","YearMonth","DayMonth","format","date","Date","formatFns","locale","sv","SearchContext","createContext","loading","error","response","documents","initialFacets","queryFilter","searchParams","URLSearchParams","onFilterUpdate","_","onLoadMore","onInitialize","useSearch","useContext","iconSize","Select","select","Option","option","Icon","svg","xmlns","block","IconInfo","viewBox","d","IconCancel","IconChevronDown","IconChevronLeft","IconChevronRight","IconCheck","IconRadio","IconSearch","IconExclamationCircle","IconExclamationTriangle","SortSelect","options","onChange","title","map","key","SortOptionDisplayName","PublishedAsc","PublishedDesc","PriceAsc","Pricedesc","ModelAsc","Modeldesc","getTranslatedSortOptionDisplayName","str","Result","_a","onSortOptionChange","useCallback","e","currentTarget","numberOfDocuments","length","numberOfHits","documentList","useSkeletons","concatResult","selectedSortOption","sortOptions","find","selected","query","filter","so","disabled","onClick","List","ul","Item","li","Action","Label","Indicator","IndicatorValue","HeadingBase","noMargin","H1","as","H2","H4","H5","VisualHeading","UiBlock","PanelWrapper","article","Heading","Close","CloseBtn","FooterActionItem","DefaultPortal","PortalElement","id","Portal","el","useRef","document","getElementById","current","dynamic","useState","parentElement","useEffect","body","appendChild","removeChild","ReactDOM","createPortal","memo","Panel","onClose","PortalNamespace","isOpen","AccordionItem","heading","activeCount","isActive","extend","setExtend","onToggleExtend","Accordion","Repeat","RepeatTiny","RepeatSmall","ActionIcon","ActionLabel","ChecklistItem","label","active","radio","Checklist","items","item","OverflowBox","ChecklistFacet","facet","setSelected","filters","sort","a","b","localeCompare","Color","boxShadow","ColorSelectItem","backgroundColor","backgroundImage","join","ColorSelect","getHexColorFromDisplayName","ColorSelectFacet","RangeSpan","RangeSpanItem","Slider","Track","Handle","domain","min","handle","percent","getHandleProps","OwnHandle","left","source","target","getTrackProps","OwnTrack","getSteps","steps","Number","MAX_SAFE_INTEGER","forEach","step","index","RangeSlider","values","formatValues","maxPrefix","setCurrent","onUpdate","nextValues","isNaN","slice","currentMin","currentMax","equal","_maxPrefix","Fragment","OwnSlider","mode","rootStyle","position","Rail","getRailProps","Handles","handles","Tracks","right","tracks","getInitialValues","facetMin","_queryMin","get","facetMax","_queryMax","queryMin","parseInt","queryMax","averageDelta","xs","NaN","reduce","acc","last","initialAllValues","delta","floor","Array","fill","i","RangeFacet","_b","_c","initialFacet","includes","state","setValues","_initialAllValues","_steps","init","minStr","maxStr","set","delete","FacetSelector","CheckListFacet","FilterPanel","filteredFacets","onClearFilters","isSelected","has","Filter","filterList","facets","setFacet","onSelectFacet","nextFacet","filterNames","filterName","indexOf","match","y","Image","Picture","picture","Source","Img","img","Content","ContentBody","ContentFooter","h1","Link","Usp","Price","CurrentPrice","PriceCell","OldPrice","Box","ItemSection","isSmall","UspItem","UspList","small","PathContext","usePath","context","Error","ProductCard","href","image","pathRoute","placeholderImage","description","uspList","price","oldPrice","leasingPrice","pushState","_onClick","useMemo","onHrefClick","preventDefault","LazyLoad","srcSet","sizes","src","alt","resolveImage","featuredImage","files","url","Grid","hashRoute","onClickItem","_path","prefix","pathRouteUrl","window","location","pathname","_id","shortDescription","modelYear","mileage","gearboxType","fuelType","Query","Clear","SearchTerm","onClear","clearTitle","Search","ActionBtn","Input","input","InputSearch","forwardRef","onSearch","onKeyDown","ref","htmlFor","name","useOutsideClick","callback","handleClick","contains","addEventListener","removeEventListener","SearchBar","setValue","_onSearch","keyCode","SearchFilter","nextQuery","getSnackbarBg","severity","Message","Snackbar","icon","iconSelector","PubSub","events","HashRouteChange","ItemClicked","EcomOnInit","EcomOnUserEvent","EcomOnExit","ImagesClick","OptionsClick","PhonenumberVisible","PhonenumberCall","MailVisible","InsuranceInterest","FinanceInterest","All","actions","subscribeAction","event","actionName","push","unsubscribeAction","splice","publishAction","eventName","args","subscribe","unsubscribe","publish","WaykeSearch","initialQueryParams","removeSearchBar","removeFilterOptions","modifyDocumentTitleSearch","onClickSearchItem","onItemClicked","onClearQuery","searchQuery","Value","PriceTable","Logo","wide","LogoBox","logo","logo2x","logoRetina","dangerouslySetInnerHTML","blockquote","Quote","Author","AvatarWrapper","Info","Name","Avatar","Blockquote","author","avatar","Extend","extended","ExtendContent","actionTitle","onExtend","onRef","refHeight","clientHeight","quickNavWidth","Main","Alt","SliderWrapper","ImageFull","Arrow","ArrowLeft","ArrowRight","QuickNav","QuickNavItem","QuickNavBtn","QuickNavImg","MediaButtonWrapper","EnableNavigationButton","getVimeoId","regExp","getYouTubeId","youtubeBase","getYoutubeThumbnail","maxresdefault","hqdefault","mqdefault","onImageLoad","thumbnail","naturalWidth","naturalHeight","onImageError","isPreview","ratio","Iframe","iframe","height","allowFullScreen","frameBorder","YouTubePlayer","autoplay","VimeoPlayer","Video","video","modal","CustomPlayer","controls","preload","ytNames","isYouTubeVideo","some","host","vNames","isVimeoVideo","VideoPlayer","compassSize","controlBtnSize","ReactPannellum","lazy","config","autoRotate","autoLoad","uiText","bylineLabel","noPanoramaError","fileAccessError","malformedURLError","iOS8WebGLError","genericWebGLError","textureSizeError","unknownError","loadButtonLabel","loadingLabel","preview","compass","showZoomCtrl","keyboardZoom","mouseZoom","hfov","paddingBottom","touchAction","SphereViewer","onStart","number","random","setTimeout","startBtn","querySelector","Suspense","fallback","sceneId","imageSource","SphereLightbox","MediaButton","text","calculateCurrentFrame","startFrame","frame","Rotation","pointerPosition","setState","outsideMouseMove","touchEnd","mouseMove","mouseUp","touchMove","notTouched","childCount","Children","count","offsetWidth","pointer","calculatePointerPosition","offset","setCurrentFrame","touchStart","onMouseEnter","onMouseLeave","clientX","changedTouches","offsetLeft","onTouchStart","onTouchMove","onTouchEnd","onMouseDown","onMouseMove","child","cloneElement","display","ThreeSixtyLightbox","urls","started","setStarted","Lightbox","media","scrollIntoView","focus","tabIndex","m","EmbeddedVideoLightbox","cache","getCachedResult","setCachedResult","pendingPromise","isPendingPromise","setPendingPromise","promise","clearPendingPromise","useFetch","path","skip","promiseCache","data","setData","setLoading","setError","doFetch","cached","reusePromise","request","fetch","result","ok","json","clone","useVimeoThumbnail","setThumbnail","thumbnail_small","thumbnail_large","useThumbnail","toLowerCase","endsWith","vimeoId","vimeoThumbnail","youtubeThumbnail","Dialog","ModalFoldout","ModalFoldoutBody","Modal","stopPropagation","GalleryEmbed","setModal","onCloseModal","onError","onLoad","customVideo","QuickNavEmbeded","onMediaClick","func","Sphere","visible","onDisableNavigation","navigationDisabled","ThreeSixty","sliderSettings","dots","arrows","infinite","speed","slidesToShow","slidesToScroll","Gallery","slider","quickNavRef","isDragging","setIndex","lightbox","setLightbox","setNavigationDisabled","beforeChange","newIndex","element","querySelectorAll","scrollMode","nextImage","slickNext","prevImage","slickPrev","goTo","slickGoTo","onEnableNavigation","onToggleLightbox","mediaLength","swipe","swipeToSlide","formats","EmbededVideo","ProductPage","ProductPageAside","ProductPageMain","ProductPageAsideSection","mobileOrder","ProductPageMainSection","ProductPageContentLimit","FinancialOptionDetail","gql","HoursOpen","SEARCH_ITEM_QUERY","useSearchItem","useQuery","variables","LogoImg","OptionBoxHeading","OptionBoxContent","OptionBox","logoAlt","DataList","Leasing","financialOption","toggleModal","monthlyCost","duration","__html","LOAN_CALCULATION","useLoanCalculation","downPayment","residual","ContentLogo","ContentLogoText","ContentLogoMedia","isHighlighted","RangeSliderLabel","highlight","RangeSliderSimple","first","second","SliderWithLabel","local","setLocal","stepGenerator","nextCurrent","LoanModal","_d","_e","_f","_g","_h","_j","_k","_l","_m","_o","_p","_q","tmp","setTmp","setVariables","loan","downPaymentCurrent","downPaymentMin","downPaymentMax","downPaymentStep","downPaymentSteps","onDownPaymentChange","durationCurrent","durationMin","durationMax","durationStep","durationSteps","onDurationChange","residualCurrent","residualMin","residualMax","residualStep","residualSteps","onResidualChange","interestText","interest","effectiveInterestText","effectiveInterest","setupFee","administrationFee","totalCreditCost","Loan","logotype","loanAmount","FinancialOptions","financialOptions","Foldout","DetailBox","extendBtnText","Title","InfoBtn","ExtendInfo","InputLabel","InputText","checked","LabelText","selectPadding","InputSelect","InputGroup","InputGroupColumn","ColumnRow","ColumnRowItem","INSURANCE_CALCULATION","useInsuranceCalculation","personalNumber","drivingDistance","ssnIsValid","test","DrivingDistance","FinancialOptionInclusion","InsuranceOptionModal","insuranceOptions","form","setForm","ssn","Between0And1000","payload","setPayload","onChangeSsn","onChangeDrivingDistance","onShowInsurances","Between1000And1500","Between1500And2000","Between2000And2500","Over2500","insurances","insurance","rel","addons","addon","InsuranceOptions","insuranceOption","SettingsContext","useSettings","Ecom","vehicle","manufacturer","onExit","onUserEvent","ecomSettings","onUserEventLocal","userEvent","currentStep","onExitLocal","gearbox","imageUrl","ecomData","milage","gearBox","serviceLogotypeUrl","useBankId","displayBankIdAlert","EcomBase","ManufacturerPackageOption","packageOption","marked","initialValue","getInitialValue","ToggleItem","onClickVisible","onClickValue","setVisible","_onClickValue","visibleTitle","Metadata","version","country_calling_codes","countries","SE","nonGeographic","typedMetadata","metadata","formatPhonenumber","parsed","parsePhoneNumberFromString","formatNational","ActionList","contact","branch","email","phonenumber","onClickMailVisible","onClickPhoneVisible","onClickPhoneValue","CheckMarkListItem","CheckMarkList","InfoContent","SwitchBar","info","setInfo","onToggleInfo","CentralStorageContext","setCentralStorageId","BranchModal","connections","centralStorageId","localValue","setLocalValue","onConfirm","PackageOptionModal","CheckList","packageOptions","ecommerce","toggleEcomModal","loadingCentralStorageVehicle","modalBranch","setModalBranch","openModalBranch","closeModalBranch","onOpen","nextModal","withHomeDelivery","enabled","reserved","SectionHeader","OverflowGrid","OverflowGridList","OverflowGridItem","RelatedSearchContext","moreLikeThisUrl","fetchRelated","useRelatedSearch","regexEndGuid","escapeRegExpString","regexPathGuid","r","Related","PackageOptions","TableColumn","TableColumnRow","TableColumnCell","getBg","Badge","KeyOrder","TranslateWeekDays","arr","GetOpeningHours","o","prev","previous","from","until","titleTo","titleFrom","GetOpeningHoursToday","dayNumber","getDay","day","valuOfDateString","splitted","split","setHours","valueOf","OpeningHours","openingHours","today","currentlyOpen","currentDate","oh","PhoneNumber","phoneNumber","Placeholder","PlaceholderAction","StaticMap","googleMapsApiKey","googleMapsMarker","onShowMap","latitude","longitude","encodeURIComponent","Branch","openModal","closeModal","city","Map","streetAddress","SEARCH_ITEM_BRANCH_QUERY","useSearchItemBranch","useCentralStorage","branchId","Page404","PageLoading","PropertyTreeCreator","constructor","properties","propertiesWithCategory","propertyKey","category","propertiesWithoutCategory","isList","property","TEXT_LIST_TYPE","isNonList","hasCategoryWithId","categoryId","propertiesWithSubCategory","subCategory","propertiesWithoutSubCategory","hasSubCategoryWithId","create","categories","createTreeCategories","rootProperties","getRootProperties","DEFAULT_CATEGORY_NAME","DEFAULT_CATEGORY_ID","subCategories","tree","Object","keys","getCategories","treeCategories","convertToTreeCategories","distinctCategories","createTreeSubCategories","getSubCategoriesOfCategory","convertedSubCategories","convertSubCategory","createdSubCategories","createListSubCategories","concat","listProperties","prop","LIST_CATEGORY_START_ID","asBoolProperties","listProperty","boolProperties","hint","self","firstOccuranceOfId","ID_ORDER","freeze","compareById","firstId","secondId","firstOrder","secondOrder","ORDER","Varumärke","Modell","Version","Modellår","Tillverkningsår","Mätarställning","Växellåda","Färg","Registreringsnummer","Bränslegrupp","Kaross","Segment","Skatt","Malus","Bonus","compareByPredefinedOrder","compareProperties","compareCategories","compareBasicProperties","deepCopy","object","JSON","parse","stringify","HINTS","abs","acceleration","adultOccupantNCAP","aeb","airbagCutOffSwitch","airbagDriver","airbagFrontal","airbagFrontalHead","airbagKnees","airbagPassenger","airbagSideChest","airbagSidePelvis","alcolock","androidAuto","annualBonus","annualMalus","annualTax","antiTheftAlarm","appConnect","appleCarPlay","aux","auxiliaryLamps","batteryCapacity","batteryWarrantyDistance","batteryWarrantyTime","blindSpotWarner","bluetooth","bluetoothAudio","bluetoothPhone","brakeAssistance","carDamageWarrantyDistance","carDamageWarrantyTime","centerDisplay","centralLocking","chargeTimeNormal","chargeTimeQuick","chassis","childOccupantNCAP","childSafetyLocks","childSeatBeltPassenger","childSeatBeltRear","co2","colorName","combinedEmissionsWLTP","cruiseControl","curtainAirbags","displacementCC","displacementLitres","driverAlertnessDetection","drivingWheel","electricalEngine","electricalRange","electricalRangeEPA","electricalRangeNEDC","electricalRangeWLTP","electricalSeatDriver","electricalSeatPassenger","emergencyCalling","engineConfiguration","engineCylinders","engineName","engineVolume","enrichmentProviderEquipPackages","enrichmentProviderExteriorPackages","enrichmentProviderInteriorPackages","enrichmentProviderTrimPackages","environmentClass","finish","fuelConsumptionCityDriving","fuelConsumptionCountryRoadDriving","fuelConsumptionMixedDriving","gearboxName","gestureControls","gps","grossWeight","groundClearence","hasAutomaticGearbox","hdmi","headRoomFront","headRoomRear","headUpDisplay","heatedSteeringWheel","hybridComponentsWarrantyDistance","hybridComponentsWarrantyTime","interiorMaterial","isofixRearSeat","keylessEntry","keylessStart","laneAssistance","legRoomFront","legRoomRear","lowBeam","mainBeam","mainBeamAssistance","manufactureYear","massage","maxLoadWeight","maxRoofWeight","maxSpeed","maxTrailerLoadBraked8Percent","maxTrailerLoadUnbraked","mildHybrid","modelName","ncapStar","ncapYear","newVehicleWarrantyDistance","newVehicleWarrantyTime","noiseReducingWindows","numberOfGears","numberOfSpeakers","numberOfUSBPorts","otherAirbags","parkingAssistance","parkingSensorsFront","parkingSensorsRear","pedestrianNCAP","preHeater","rainSensors","remoteStart","rimSize","roofColor","roofRailing","safetyAssistNCAP","seats","segment","serviceWeight","shoulderRoomFront","shoulderRoomRear","sideMirrorFolding","speakerBrand","startAndStop","steeringWheelMaterial","sunRoof","tankVolume","timingBeltServiceIntervalDistance","timingBeltServiceIntervalTime","tintedWindows","tiresFront","tiresRear","torque","touchScreen","towHitch","towHitchDetachable","towHitchFoldable","trafficSignRecognition","trailerTotalWeightB","transmissionKnobMaterial","trcSystem","tripComputer","trunkDepth","trunkHeight","trunkOutlet","trunkSpace","trunkSpaceFront","trunkWidth","typeOfElectricCar","upholstery","usb","ventilatedSeats","wheelBase","wiFi","windowLifts","wirelessPhoneCharger","enrichWithHint","TEXT_TYPE","NUMBER_TYPE","BASIC_CATEGORY","ENGINE_SUBCATEGORY","PropertyBuilder","withName","withValue","withType","withCategory","withUnit","build","newProperties","modelSeries","registrationNumber","enginePower","PROPERTY_BLACK_LIST","isForbiddenProperty","CATEGORY_WHITE_LIST","hasForbiddenCategory","TableList","TableListItem","TableListKey","TableListValue","TableListBooleanPos","TableListBooleanNeg","formatValue","isArray","MetadataItem","foldout","setFoldout","onToggleFoldout","presentedValue","Tabs","tabs","tab","MetadataSubCategory","MetadataCategory","PropertySet","propertySet","vehicleData","activeCategoryId","setActiveCategoryId","mappedProperties","removeProperties","addCustomProperties","enrichedProperties","sortTree","onTab","activeCategory","PdfListItem","PdfContainer","PdfLink","PdfTitle","PdfSubtitle","PdfColumn","PdfListInner","PdfDownloadItem","contentType","PdfDownloadContainer","WaykeSearchItem","disableResetScrollOnInit","modifyDocumentTitleItem","ecomModal","setEcomModal","centralStorageVehicle","scrollTo","opt","onShowMoreOptionsClick","publishedAt","Property","GraphqlProvider","uri","client","ApolloClient","InMemoryCache","ApolloProviderBase","ThemeProvider","ThemeProviderBase","getUrlSearchParamsFromUrl","search","initialSearchParams","SearchProvider","apiKey","useQueryParamsFromUrl","replaceState","setQueryFilter","setInitialFacets","setDocuments","initialize","setInitialize","initialDataRepsonse","headers","popStateEvent","nextSearchParams","onFilterUpdateEvent","WaykePubSub","nextSearch","substr","parameters","pagination","nextPage","_initialQueryParams","searchParamsFromUrl","getAll","v","append","Provider","Root","useEcom","then","bind","api","address","origin","topic","channel","bankIdThumbprint","SettingsProvider","RelatedSearchProvider","urlMlt","useSessionStorage","sessionStorage","getItem","setItem","remove","removeItem","clear","CentralStorageProvider","usePrevious","SET_PATH","initialState","pathReducer","action","next","regexGuidAnyWhere","POP_STATE","PathProvider","dispatch","useReducer","reducer","previousPath","onPopState","hash","history","h2","dispatchEvent","HashChangeEvent","pop","WaykeProvider","graphQlUrl","Theme","regexGuid","HASH_CHANGE","getGuid","guid","useHashGuid","setId","onHashChange","WaykeComposite","hashId","pathId","WaykeCompositeWithProvider","provider","composite","WaykeItemProvider"],"mappings":"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I,CAAC,CAAD,CAhBW,EAiBdA,IAAI,CAAC,CAAD,CAjBU,EAkBJM,KAAD,IAAWA,KAAK,CAACtC,KAAN,CAAYC,KAAZ,CAAkBM,MAlBxB,CAA5B;AAsBP,AAAO,MAAM4xB,uBAAuB,GAAG/vB,eAAM,CAACC,GAAV;AAAA;AAAA,wBAA7B;;ACjFP,MAAM+vB,qBAAqB,GAAGC,UAAK;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CARA;AASA,MAAMC,SAAS,GAAGD,UAAK;AACvB;AACA;AACA;AACA;AACA,CALA;AAMA,MAAME,iBAAiB,GAAGF,UAAK;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA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"}