@wayke-se/components-react 3.0.0-beta.13 → 3.0.0-beta.14

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 (482) hide show
  1. package/{dist/ajax-loader-BOAPMZMT.gif → assets/ajax-loader.gif} +0 -0
  2. package/assets/default.css +1 -0
  3. package/{dist/slick-EVLS6IWX.eot → assets/fonts/slick.eot} +0 -0
  4. package/{dist/slick-7CK47X3J.svg → assets/fonts/slick.svg} +0 -0
  5. package/{dist/slick-NKQ64RRA.ttf → assets/fonts/slick.ttf} +0 -0
  6. package/{dist/slick-MU5EZO5G.woff → assets/fonts/slick.woff} +0 -0
  7. package/dist-node/index.js +9130 -0
  8. package/dist-node/index.js.map +1 -0
  9. package/dist-src/@types/action.js +1 -0
  10. package/dist-src/@types/codegen/types.js +14 -0
  11. package/dist-src/@types/filter.js +1 -0
  12. package/dist-src/@types/queryFilter.js +1 -0
  13. package/dist-src/@types/search.js +1 -0
  14. package/dist-src/@types/vehicle-properties.js +1 -0
  15. package/dist-src/State/CentralStorage/CentralStorageContext.js +4 -0
  16. package/dist-src/State/CentralStorage/CentralStorageProvider.js +9 -0
  17. package/dist-src/State/CentralStorage/useCentralStorage.js +29 -0
  18. package/dist-src/State/Path/PathContext.js +2 -0
  19. package/dist-src/State/Path/PathProvider.js +47 -0
  20. package/dist-src/State/Path/reducer.js +15 -0
  21. package/dist-src/State/Path/usePath.js +10 -0
  22. package/dist-src/State/RelatedSearch/RelatedSearchContext.js +8 -0
  23. package/dist-src/State/RelatedSearch/RelatedSearchProvider.js +27 -0
  24. package/dist-src/State/RelatedSearch/useRelatedSearch.js +15 -0
  25. package/dist-src/State/Search/SearchContext.js +12 -0
  26. package/dist-src/State/Search/SearchProvider.js +176 -0
  27. package/dist-src/State/Search/useSearch.js +4 -0
  28. package/dist-src/State/Settings/SettingsContext.js +2 -0
  29. package/dist-src/State/Settings/SettingsProvider.js +4 -0
  30. package/dist-src/State/Settings/useSettings.js +4 -0
  31. package/dist-src/components/Accordion/index.js +18 -0
  32. package/dist-src/components/Accordion/wrapper.js +92 -0
  33. package/dist-src/components/ActionList/index.js +18 -0
  34. package/dist-src/components/ActionList/toggle-item.js +27 -0
  35. package/dist-src/components/Avatar/index.js +4 -0
  36. package/dist-src/components/Avatar/wrapper.js +15 -0
  37. package/dist-src/components/Badge/index.js +4 -0
  38. package/dist-src/components/Badge/wrapper.js +24 -0
  39. package/dist-src/components/Blockquote/index.js +12 -0
  40. package/dist-src/components/Blockquote/wrapper.js +44 -0
  41. package/dist-src/components/Button/index.js +195 -0
  42. package/dist-src/components/CheckMarkList/index.js +9 -0
  43. package/dist-src/components/CheckMarkList/wrapper.js +26 -0
  44. package/dist-src/components/Checklist/index.js +14 -0
  45. package/dist-src/components/Checklist/wrapper.js +59 -0
  46. package/dist-src/components/ColorSelect/index.js +18 -0
  47. package/dist-src/components/ColorSelect/wrapper.js +69 -0
  48. package/dist-src/components/ColumnRow/index.js +17 -0
  49. package/dist-src/components/Container/index.js +4 -0
  50. package/dist-src/components/Container/wrapper.js +12 -0
  51. package/dist-src/components/Content/index.js +4 -0
  52. package/dist-src/components/Content/wrapper.js +51 -0
  53. package/dist-src/components/ContentLogo/index.js +23 -0
  54. package/dist-src/components/DataList/index.js +6 -0
  55. package/dist-src/components/DataList/wrapper.js +24 -0
  56. package/dist-src/components/DetailBox/index.js +17 -0
  57. package/dist-src/components/DetailBox/wrapper.js +27 -0
  58. package/dist-src/components/ExtendContent/index.js +24 -0
  59. package/dist-src/components/ExtendContent/wrapper.js +32 -0
  60. package/dist-src/components/ExtendInfo/index.js +15 -0
  61. package/dist-src/components/ExtendInfo/wrapper.js +56 -0
  62. package/dist-src/components/Filter/index.js +62 -0
  63. package/dist-src/components/Filter/wrapper.js +72 -0
  64. package/dist-src/components/FilterPanel/checkListFacet.js +29 -0
  65. package/dist-src/components/FilterPanel/colorFacet.js +29 -0
  66. package/dist-src/components/FilterPanel/faceSelector.js +31 -0
  67. package/dist-src/components/FilterPanel/index.js +24 -0
  68. package/dist-src/components/FilterPanel/rangeFacet.js +82 -0
  69. package/dist-src/components/FinancialOptions/LoanModal.js +127 -0
  70. package/dist-src/components/FinancialOptions/index.js +12 -0
  71. package/dist-src/components/FinancialOptions/leasing.js +55 -0
  72. package/dist-src/components/FinancialOptions/loan.js +54 -0
  73. package/dist-src/components/Gallery/MediaButton.js +7 -0
  74. package/dist-src/components/Gallery/index.js +119 -0
  75. package/dist-src/components/Gallery/wrapper.js +293 -0
  76. package/dist-src/components/Grid/index.js +44 -0
  77. package/dist-src/components/Grid/wrapper.js +26 -0
  78. package/dist-src/components/Heading/index.js +54 -0
  79. package/dist-src/components/Icon/index.js +36 -0
  80. package/dist-src/components/InputCheckbox/index.js +10 -0
  81. package/dist-src/components/InputCheckbox/wrapper.js +79 -0
  82. package/dist-src/components/InputGroup/index.js +21 -0
  83. package/dist-src/components/InputLabel/index.js +4 -0
  84. package/dist-src/components/InputLabel/wrapper.js +8 -0
  85. package/dist-src/components/InputSearch/index.js +12 -0
  86. package/dist-src/components/InputSearch/wrapper.js +90 -0
  87. package/dist-src/components/InputSelect/index.js +10 -0
  88. package/dist-src/components/InputSelect/wrapper.js +53 -0
  89. package/dist-src/components/InputText/index.js +5 -0
  90. package/dist-src/components/InputText/wrapper.js +54 -0
  91. package/dist-src/components/InsuranceOptions/Insurance.js +26 -0
  92. package/dist-src/components/InsuranceOptions/InsuranceFree.js +30 -0
  93. package/dist-src/components/InsuranceOptions/InsuranceFreeModal.js +19 -0
  94. package/dist-src/components/InsuranceOptions/InsuranceModal.js +105 -0
  95. package/dist-src/components/InsuranceOptions/index.js +15 -0
  96. package/dist-src/components/Lightbox/index.js +30 -0
  97. package/dist-src/components/Lightbox/wrapper.js +91 -0
  98. package/dist-src/components/Loader/index.js +7 -0
  99. package/dist-src/components/Loader/wrapper.js +37 -0
  100. package/dist-src/components/LogoBox/index.js +10 -0
  101. package/dist-src/components/LogoBox/wrapper.js +12 -0
  102. package/dist-src/components/Map/index.js +27 -0
  103. package/dist-src/components/Map/wrapper.js +25 -0
  104. package/dist-src/components/Modal/index.js +20 -0
  105. package/dist-src/components/Modal/wrapper.js +113 -0
  106. package/dist-src/components/OpeningHours/index.js +97 -0
  107. package/dist-src/components/OptionBox/index.js +7 -0
  108. package/dist-src/components/OptionBox/wrapper.js +49 -0
  109. package/dist-src/components/OverflowBox/index.js +4 -0
  110. package/dist-src/components/OverflowBox/wrapper.js +6 -0
  111. package/dist-src/components/OverflowGrid/index.js +66 -0
  112. package/dist-src/components/Page/index.js +30 -0
  113. package/dist-src/components/Panel/index.js +20 -0
  114. package/dist-src/components/Panel/wrapper.js +143 -0
  115. package/dist-src/components/Pdf/index.js +11 -0
  116. package/dist-src/components/Pdf/wrapper.js +55 -0
  117. package/dist-src/components/PhoneNumber/index.js +13 -0
  118. package/dist-src/components/Portal/index.js +4 -0
  119. package/dist-src/components/Portal/portal-element.js +3 -0
  120. package/dist-src/components/Portal/portal-namespace.js +1 -0
  121. package/dist-src/components/Portal/portal.js +25 -0
  122. package/dist-src/components/Price/index.js +10 -0
  123. package/dist-src/components/PriceTable/index.js +20 -0
  124. package/dist-src/components/PriceTable/wrapper.js +22 -0
  125. package/dist-src/components/ProductCard/index.js +38 -0
  126. package/dist-src/components/ProductCard/wrapper.js +129 -0
  127. package/dist-src/components/ProductPage/index.js +85 -0
  128. package/dist-src/components/ProgressBar/index.js +16 -0
  129. package/dist-src/components/ProgressBar/wrapper.js +24 -0
  130. package/dist-src/components/RangeSlider/RangeSliderSimple.js +26 -0
  131. package/dist-src/components/RangeSlider/SliderWithLabel.js +21 -0
  132. package/dist-src/components/RangeSlider/handle.js +5 -0
  133. package/dist-src/components/RangeSlider/index.js +50 -0
  134. package/dist-src/components/RangeSlider/track.js +6 -0
  135. package/dist-src/components/RangeSlider/wrapper.js +86 -0
  136. package/dist-src/components/RangeSliderLabel/index.js +6 -0
  137. package/dist-src/components/RangeSliderLabel/wrapper.js +24 -0
  138. package/dist-src/components/Repeat/index.js +17 -0
  139. package/dist-src/components/Result/index.js +40 -0
  140. package/dist-src/components/Result/wrapper.js +29 -0
  141. package/dist-src/components/Root/index.js +22 -0
  142. package/dist-src/components/SearchBar/index.js +18 -0
  143. package/dist-src/components/SearchFilter/index.js +23 -0
  144. package/dist-src/components/SearchTerm/index.js +8 -0
  145. package/dist-src/components/SearchTerm/wrapper.js +67 -0
  146. package/dist-src/components/SectionHeader/index.js +9 -0
  147. package/dist-src/components/SectionHeader/wrapper.js +13 -0
  148. package/dist-src/components/Snackbar/index.js +21 -0
  149. package/dist-src/components/Snackbar/wrapper.js +56 -0
  150. package/dist-src/components/SortSelect/index.js +10 -0
  151. package/dist-src/components/SortSelect/wrapper.js +48 -0
  152. package/dist-src/components/Sphere/Sphere.js +21 -0
  153. package/dist-src/components/Sphere/SphereLightbox.js +4 -0
  154. package/dist-src/components/Sphere/SphereViewer.js +54 -0
  155. package/dist-src/components/Sphere/wrapper.js +250 -0
  156. package/dist-src/components/SrOnly/index.js +13 -0
  157. package/dist-src/components/SwitchBar/index.js +23 -0
  158. package/dist-src/components/SwitchBar/wrapper.js +71 -0
  159. package/dist-src/components/TableColumn/index.js +14 -0
  160. package/dist-src/components/TableList/index.js +32 -0
  161. package/dist-src/components/Tabs/index.js +6 -0
  162. package/dist-src/components/Tabs/wrapper.js +68 -0
  163. package/dist-src/components/ThreeSixty/Rotation.js +95 -0
  164. package/dist-src/components/ThreeSixty/ThreeSixtLightbox.js +15 -0
  165. package/dist-src/components/ThreeSixty/ThreeSixty.js +25 -0
  166. package/dist-src/components/UspList/index.js +18 -0
  167. package/dist-src/components/UspList/wrapper.js +85 -0
  168. package/dist-src/components/Utility/index.js +13 -0
  169. package/dist-src/components/Video/CustomPlayer.js +8 -0
  170. package/dist-src/components/Video/EmbeddedVideoLightbox.js +18 -0
  171. package/dist-src/components/Video/EmbededVideo.js +38 -0
  172. package/dist-src/components/Video/QuickNavEmbeded.js +17 -0
  173. package/dist-src/components/Video/QuickNavVideo.js +6 -0
  174. package/dist-src/components/Video/Video.js +8 -0
  175. package/dist-src/components/Video/VimeoPlayer.js +6 -0
  176. package/dist-src/components/Video/YoutubePlayer.js +6 -0
  177. package/dist-src/components/Video/useThumbnail.js +25 -0
  178. package/dist-src/components/Video/utils.js +35 -0
  179. package/dist-src/components/Video/wrapper.js +19 -0
  180. package/dist-src/hooks/useFetch.js +69 -0
  181. package/dist-src/hooks/useHasBeenVisible.js +13 -0
  182. package/dist-src/hooks/useHashGuid.js +28 -0
  183. package/dist-src/hooks/useInsurance.js +12 -0
  184. package/dist-src/hooks/useLoan.js +12 -0
  185. package/dist-src/hooks/useOnScreen.js +15 -0
  186. package/dist-src/hooks/useOutsideClick.js +15 -0
  187. package/dist-src/hooks/usePrevious.js +9 -0
  188. package/dist-src/hooks/useSearchItem.js +7 -0
  189. package/dist-src/hooks/useSearchItemBranch.js +7 -0
  190. package/dist-src/hooks/useSessionStorage.js +23 -0
  191. package/dist-src/hooks/useVimeoThumbnail.js +18 -0
  192. package/dist-src/index.js +10 -0
  193. package/dist-src/layout/helpers.js +5 -0
  194. package/dist-src/layout/keyframes.js +20 -0
  195. package/dist-src/layout/theme.js +57 -0
  196. package/dist-src/layouts/WaykeComposite.js +23 -0
  197. package/dist-src/layouts/WaykeCompositeWithProvider.js +6 -0
  198. package/dist-src/layouts/search/index.js +55 -0
  199. package/dist-src/layouts/searchItem/Branch.js +53 -0
  200. package/dist-src/layouts/searchItem/BranchModal.js +36 -0
  201. package/dist-src/layouts/searchItem/CheckList.js +65 -0
  202. package/dist-src/layouts/searchItem/ManufacturerPackagesOption.js +25 -0
  203. package/dist-src/layouts/searchItem/MetadataItem.js +34 -0
  204. package/dist-src/layouts/searchItem/PackageOptionModal.js +15 -0
  205. package/dist-src/layouts/searchItem/PackageOptions.js +25 -0
  206. package/dist-src/layouts/searchItem/Page404.js +9 -0
  207. package/dist-src/layouts/searchItem/PageLoading.js +9 -0
  208. package/dist-src/layouts/searchItem/Property.js +51 -0
  209. package/dist-src/layouts/searchItem/Related.js +64 -0
  210. package/dist-src/layouts/searchItem/index.js +181 -0
  211. package/dist-src/providers/WaykeItemProvidet.js +16 -0
  212. package/dist-src/providers/WaykeProvider.js +18 -0
  213. package/dist-src/providers/graphqlProvider.js +7 -0
  214. package/dist-src/providers/themeProvider.js +5 -0
  215. package/dist-src/queries/INSURANCE_CALCULATION.js +41 -0
  216. package/dist-src/queries/LOAN_CALCULATION.js +36 -0
  217. package/dist-src/queries/SEARCH_ITEM_BRANCH_QUERY.js +117 -0
  218. package/dist-src/queries/SEARCH_ITEM_QUERY.js +233 -0
  219. package/dist-src/utils/constants.js +30 -0
  220. package/dist-src/utils/converters.js +31 -0
  221. package/dist-src/utils/deep-copy.js +5 -0
  222. package/dist-src/utils/formats.js +60 -0
  223. package/dist-src/utils/metadata.min.js +86 -0
  224. package/dist-src/utils/phonenumbers.js +12 -0
  225. package/dist-src/utils/pubsub/Actions.js +1 -0
  226. package/dist-src/utils/pubsub/Events.js +1 -0
  227. package/dist-src/utils/pubsub/pubsub.js +93 -0
  228. package/dist-src/utils/regex.js +10 -0
  229. package/dist-src/utils/sortOptions.js +26 -0
  230. package/dist-src/utils/specification.js +495 -0
  231. package/dist-src/utils/ssn.js +1 -0
  232. package/dist-src/utils/url.js +1 -0
  233. package/dist-src/utils/vehicle-properties/compare-basic-properties.js +36 -0
  234. package/dist-src/utils/vehicle-properties/compare-categories.js +27 -0
  235. package/dist-src/utils/vehicle-properties/compare-properties.js +3 -0
  236. package/dist-src/utils/vehicle-properties/custom-property-adder.js +143 -0
  237. package/dist-src/utils/vehicle-properties/property-hint-enricher.js +190 -0
  238. package/dist-src/utils/vehicle-properties/property-remover.js +20 -0
  239. package/dist-src/utils/vehicle-properties/property-tree-creator.js +127 -0
  240. package/dist-src/utils/vehicle-properties/property-tree-sorter.js +18 -0
  241. package/dist-types/@types/action.d.ts +3 -0
  242. package/dist-types/@types/codegen/types.d.ts +343 -0
  243. package/dist-types/@types/filter.d.ts +5 -0
  244. package/dist-types/@types/queryFilter.d.ts +5 -0
  245. package/dist-types/@types/search.d.ts +105 -0
  246. package/dist-types/@types/vehicle-properties.d.ts +29 -0
  247. package/dist-types/State/CentralStorage/CentralStorageContext.d.ts +6 -0
  248. package/dist-types/State/CentralStorage/CentralStorageProvider.d.ts +6 -0
  249. package/dist-types/State/CentralStorage/useCentralStorage.d.ts +6 -0
  250. package/dist-types/State/Path/PathContext.d.ts +9 -0
  251. package/dist-types/State/Path/PathProvider.d.ts +6 -0
  252. package/dist-types/State/Path/reducer.d.ts +14 -0
  253. package/dist-types/State/Path/usePath.d.ts +3 -0
  254. package/dist-types/State/RelatedSearch/RelatedSearchContext.d.ts +10 -0
  255. package/dist-types/State/RelatedSearch/RelatedSearchProvider.d.ts +9 -0
  256. package/dist-types/State/RelatedSearch/useRelatedSearch.d.ts +2 -0
  257. package/dist-types/State/Search/SearchContext.d.ts +15 -0
  258. package/dist-types/State/Search/SearchProvider.d.ts +10 -0
  259. package/dist-types/State/Search/useSearch.d.ts +2 -0
  260. package/dist-types/State/Settings/SettingsContext.d.ts +13 -0
  261. package/dist-types/State/Settings/SettingsProvider.d.ts +10 -0
  262. package/dist-types/State/Settings/useSettings.d.ts +2 -0
  263. package/dist-types/components/Accordion/index.d.ts +13 -0
  264. package/dist-types/components/Accordion/wrapper.d.ts +16 -0
  265. package/dist-types/components/ActionList/index.d.ts +8 -0
  266. package/dist-types/components/ActionList/toggle-item.d.ts +10 -0
  267. package/dist-types/components/Avatar/index.d.ts +7 -0
  268. package/dist-types/components/Avatar/wrapper.d.ts +7 -0
  269. package/dist-types/components/Badge/index.d.ts +7 -0
  270. package/dist-types/components/Badge/wrapper.d.ts +7 -0
  271. package/dist-types/components/Blockquote/index.d.ts +9 -0
  272. package/dist-types/components/Blockquote/wrapper.d.ts +9 -0
  273. package/dist-types/components/Button/index.d.ts +52 -0
  274. package/dist-types/components/CheckMarkList/index.d.ts +7 -0
  275. package/dist-types/components/CheckMarkList/wrapper.d.ts +6 -0
  276. package/dist-types/components/Checklist/index.d.ts +13 -0
  277. package/dist-types/components/Checklist/wrapper.d.ts +11 -0
  278. package/dist-types/components/ColorSelect/index.d.ts +14 -0
  279. package/dist-types/components/ColorSelect/wrapper.d.ts +11 -0
  280. package/dist-types/components/ColumnRow/index.d.ts +2 -0
  281. package/dist-types/components/Container/index.d.ts +6 -0
  282. package/dist-types/components/Container/wrapper.d.ts +1 -0
  283. package/dist-types/components/Content/index.d.ts +6 -0
  284. package/dist-types/components/Content/wrapper.d.ts +4 -0
  285. package/dist-types/components/ContentLogo/index.d.ts +3 -0
  286. package/dist-types/components/DataList/index.d.ts +10 -0
  287. package/dist-types/components/DataList/wrapper.d.ts +6 -0
  288. package/dist-types/components/DetailBox/index.d.ts +8 -0
  289. package/dist-types/components/DetailBox/wrapper.d.ts +13 -0
  290. package/dist-types/components/ExtendContent/index.d.ts +8 -0
  291. package/dist-types/components/ExtendContent/wrapper.d.ts +6 -0
  292. package/dist-types/components/ExtendInfo/index.d.ts +7 -0
  293. package/dist-types/components/ExtendInfo/wrapper.d.ts +10 -0
  294. package/dist-types/components/Filter/index.d.ts +7 -0
  295. package/dist-types/components/Filter/wrapper.d.ts +8 -0
  296. package/dist-types/components/FilterPanel/checkListFacet.d.ts +7 -0
  297. package/dist-types/components/FilterPanel/colorFacet.d.ts +7 -0
  298. package/dist-types/components/FilterPanel/faceSelector.d.ts +7 -0
  299. package/dist-types/components/FilterPanel/index.d.ts +18 -0
  300. package/dist-types/components/FilterPanel/rangeFacet.d.ts +9 -0
  301. package/dist-types/components/FinancialOptions/LoanModal.d.ts +9 -0
  302. package/dist-types/components/FinancialOptions/index.d.ts +8 -0
  303. package/dist-types/components/FinancialOptions/leasing.d.ts +7 -0
  304. package/dist-types/components/FinancialOptions/loan.d.ts +8 -0
  305. package/dist-types/components/Gallery/MediaButton.d.ts +7 -0
  306. package/dist-types/components/Gallery/index.d.ts +8 -0
  307. package/dist-types/components/Gallery/wrapper.d.ts +26 -0
  308. package/dist-types/components/Grid/index.d.ts +11 -0
  309. package/dist-types/components/Grid/wrapper.d.ts +3 -0
  310. package/dist-types/components/Heading/index.d.ts +24 -0
  311. package/dist-types/components/Icon/index.d.ts +16 -0
  312. package/dist-types/components/InputCheckbox/index.d.ts +7 -0
  313. package/dist-types/components/InputCheckbox/wrapper.d.ts +13 -0
  314. package/dist-types/components/InputGroup/index.d.ts +2 -0
  315. package/dist-types/components/InputLabel/index.d.ts +7 -0
  316. package/dist-types/components/InputLabel/wrapper.d.ts +3 -0
  317. package/dist-types/components/InputSearch/index.d.ts +11 -0
  318. package/dist-types/components/InputSearch/wrapper.d.ts +15 -0
  319. package/dist-types/components/InputSelect/index.d.ts +14 -0
  320. package/dist-types/components/InputSelect/wrapper.d.ts +6 -0
  321. package/dist-types/components/InputText/index.d.ts +8 -0
  322. package/dist-types/components/InputText/wrapper.d.ts +5 -0
  323. package/dist-types/components/InsuranceOptions/Insurance.d.ts +9 -0
  324. package/dist-types/components/InsuranceOptions/InsuranceFree.d.ts +7 -0
  325. package/dist-types/components/InsuranceOptions/InsuranceFreeModal.d.ts +8 -0
  326. package/dist-types/components/InsuranceOptions/InsuranceModal.d.ts +10 -0
  327. package/dist-types/components/InsuranceOptions/index.d.ts +9 -0
  328. package/dist-types/components/Lightbox/index.d.ts +9 -0
  329. package/dist-types/components/Lightbox/wrapper.d.ts +9 -0
  330. package/dist-types/components/Loader/index.d.ts +7 -0
  331. package/dist-types/components/Loader/wrapper.d.ts +9 -0
  332. package/dist-types/components/LogoBox/index.d.ts +9 -0
  333. package/dist-types/components/LogoBox/wrapper.d.ts +4 -0
  334. package/dist-types/components/Map/index.d.ts +7 -0
  335. package/dist-types/components/Map/wrapper.d.ts +4 -0
  336. package/dist-types/components/Modal/index.d.ts +9 -0
  337. package/dist-types/components/Modal/wrapper.d.ts +21 -0
  338. package/dist-types/components/OpeningHours/index.d.ts +7 -0
  339. package/dist-types/components/OptionBox/index.d.ts +9 -0
  340. package/dist-types/components/OptionBox/wrapper.d.ts +8 -0
  341. package/dist-types/components/OverflowBox/index.d.ts +6 -0
  342. package/dist-types/components/OverflowBox/wrapper.d.ts +1 -0
  343. package/dist-types/components/OverflowGrid/index.d.ts +3 -0
  344. package/dist-types/components/Page/index.d.ts +7 -0
  345. package/dist-types/components/Panel/index.d.ts +10 -0
  346. package/dist-types/components/Panel/wrapper.d.ts +22 -0
  347. package/dist-types/components/Pdf/index.d.ts +11 -0
  348. package/dist-types/components/Pdf/wrapper.d.ts +11 -0
  349. package/dist-types/components/PhoneNumber/index.d.ts +6 -0
  350. package/dist-types/components/Portal/index.d.ts +4 -0
  351. package/dist-types/components/Portal/portal-element.d.ts +6 -0
  352. package/dist-types/components/Portal/portal-namespace.d.ts +1 -0
  353. package/dist-types/components/Portal/portal.d.ts +7 -0
  354. package/dist-types/components/Price/index.d.ts +4 -0
  355. package/dist-types/components/PriceTable/index.d.ts +7 -0
  356. package/dist-types/components/PriceTable/wrapper.d.ts +4 -0
  357. package/dist-types/components/ProductCard/index.d.ts +18 -0
  358. package/dist-types/components/ProductCard/wrapper.d.ts +21 -0
  359. package/dist-types/components/ProductPage/index.d.ts +9 -0
  360. package/dist-types/components/ProgressBar/index.d.ts +8 -0
  361. package/dist-types/components/ProgressBar/wrapper.d.ts +6 -0
  362. package/dist-types/components/RangeSlider/RangeSliderSimple.d.ts +13 -0
  363. package/dist-types/components/RangeSlider/SliderWithLabel.d.ts +13 -0
  364. package/dist-types/components/RangeSlider/handle.d.ts +9 -0
  365. package/dist-types/components/RangeSlider/index.d.ts +13 -0
  366. package/dist-types/components/RangeSlider/track.d.ts +9 -0
  367. package/dist-types/components/RangeSlider/wrapper.d.ts +11 -0
  368. package/dist-types/components/RangeSliderLabel/index.d.ts +8 -0
  369. package/dist-types/components/RangeSliderLabel/wrapper.d.ts +10 -0
  370. package/dist-types/components/Repeat/index.d.ts +3 -0
  371. package/dist-types/components/Result/index.d.ts +6 -0
  372. package/dist-types/components/Result/wrapper.d.ts +9 -0
  373. package/dist-types/components/Root/index.d.ts +4 -0
  374. package/dist-types/components/SearchBar/index.d.ts +8 -0
  375. package/dist-types/components/SearchFilter/index.d.ts +3 -0
  376. package/dist-types/components/SearchTerm/index.d.ts +8 -0
  377. package/dist-types/components/SearchTerm/wrapper.d.ts +7 -0
  378. package/dist-types/components/SectionHeader/index.d.ts +8 -0
  379. package/dist-types/components/SectionHeader/wrapper.d.ts +3 -0
  380. package/dist-types/components/Snackbar/index.d.ts +9 -0
  381. package/dist-types/components/Snackbar/wrapper.d.ts +11 -0
  382. package/dist-types/components/SortSelect/index.d.ts +14 -0
  383. package/dist-types/components/SortSelect/wrapper.d.ts +6 -0
  384. package/dist-types/components/Sphere/Sphere.d.ts +10 -0
  385. package/dist-types/components/Sphere/SphereLightbox.d.ts +6 -0
  386. package/dist-types/components/Sphere/SphereViewer.d.ts +10 -0
  387. package/dist-types/components/Sphere/wrapper.d.ts +1 -0
  388. package/dist-types/components/SrOnly/index.d.ts +1 -0
  389. package/dist-types/components/SwitchBar/index.d.ts +10 -0
  390. package/dist-types/components/SwitchBar/wrapper.d.ts +14 -0
  391. package/dist-types/components/TableColumn/index.d.ts +3 -0
  392. package/dist-types/components/TableList/index.d.ts +6 -0
  393. package/dist-types/components/Tabs/index.d.ts +12 -0
  394. package/dist-types/components/Tabs/wrapper.d.ts +12 -0
  395. package/dist-types/components/ThreeSixty/Rotation.d.ts +6 -0
  396. package/dist-types/components/ThreeSixty/ThreeSixtLightbox.d.ts +6 -0
  397. package/dist-types/components/ThreeSixty/ThreeSixty.d.ts +9 -0
  398. package/dist-types/components/UspList/index.d.ts +11 -0
  399. package/dist-types/components/UspList/wrapper.d.ts +11 -0
  400. package/dist-types/components/Utility/index.d.ts +8 -0
  401. package/dist-types/components/Video/CustomPlayer.d.ts +10 -0
  402. package/dist-types/components/Video/EmbeddedVideoLightbox.d.ts +8 -0
  403. package/dist-types/components/Video/EmbededVideo.d.ts +8 -0
  404. package/dist-types/components/Video/QuickNavEmbeded.d.ts +7 -0
  405. package/dist-types/components/Video/QuickNavVideo.d.ts +7 -0
  406. package/dist-types/components/Video/Video.d.ts +5 -0
  407. package/dist-types/components/Video/VimeoPlayer.d.ts +7 -0
  408. package/dist-types/components/Video/YoutubePlayer.d.ts +7 -0
  409. package/dist-types/components/Video/useThumbnail.d.ts +2 -0
  410. package/dist-types/components/Video/utils.d.ts +9 -0
  411. package/dist-types/components/Video/wrapper.d.ts +11 -0
  412. package/dist-types/hooks/useFetch.d.ts +7 -0
  413. package/dist-types/hooks/useHasBeenVisible.d.ts +2 -0
  414. package/dist-types/hooks/useHashGuid.d.ts +2 -0
  415. package/dist-types/hooks/useInsurance.d.ts +4 -0
  416. package/dist-types/hooks/useLoan.d.ts +4 -0
  417. package/dist-types/hooks/useOnScreen.d.ts +2 -0
  418. package/dist-types/hooks/useOutsideClick.d.ts +2 -0
  419. package/dist-types/hooks/usePrevious.d.ts +2 -0
  420. package/dist-types/hooks/useSearchItem.d.ts +4 -0
  421. package/dist-types/hooks/useSearchItemBranch.d.ts +4 -0
  422. package/dist-types/hooks/useSessionStorage.d.ts +7 -0
  423. package/dist-types/hooks/useVimeoThumbnail.d.ts +2 -0
  424. package/dist-types/index.d.ts +18 -0
  425. package/dist-types/layout/helpers.d.ts +1 -0
  426. package/dist-types/layout/keyframes.d.ts +3 -0
  427. package/dist-types/layout/theme.d.ts +40 -0
  428. package/dist-types/layouts/WaykeComposite.d.ts +6 -0
  429. package/dist-types/layouts/WaykeCompositeWithProvider.d.ts +9 -0
  430. package/dist-types/layouts/search/index.d.ts +15 -0
  431. package/dist-types/layouts/searchItem/Branch.d.ts +8 -0
  432. package/dist-types/layouts/searchItem/BranchModal.d.ts +9 -0
  433. package/dist-types/layouts/searchItem/CheckList.d.ts +13 -0
  434. package/dist-types/layouts/searchItem/ManufacturerPackagesOption.d.ts +7 -0
  435. package/dist-types/layouts/searchItem/MetadataItem.d.ts +10 -0
  436. package/dist-types/layouts/searchItem/PackageOptionModal.d.ts +17 -0
  437. package/dist-types/layouts/searchItem/PackageOptions.d.ts +7 -0
  438. package/dist-types/layouts/searchItem/Page404.d.ts +3 -0
  439. package/dist-types/layouts/searchItem/PageLoading.d.ts +3 -0
  440. package/dist-types/layouts/searchItem/Property.d.ts +8 -0
  441. package/dist-types/layouts/searchItem/Related.d.ts +9 -0
  442. package/dist-types/layouts/searchItem/index.d.ts +12 -0
  443. package/dist-types/providers/WaykeItemProvidet.d.ts +22 -0
  444. package/dist-types/providers/WaykeProvider.d.ts +24 -0
  445. package/dist-types/providers/graphqlProvider.d.ts +6 -0
  446. package/dist-types/providers/themeProvider.d.ts +6 -0
  447. package/dist-types/queries/INSURANCE_CALCULATION.d.ts +2 -0
  448. package/dist-types/queries/LOAN_CALCULATION.d.ts +2 -0
  449. package/dist-types/queries/SEARCH_ITEM_BRANCH_QUERY.d.ts +2 -0
  450. package/dist-types/queries/SEARCH_ITEM_QUERY.d.ts +2 -0
  451. package/dist-types/utils/constants.d.ts +62 -0
  452. package/dist-types/utils/converters.d.ts +1 -0
  453. package/dist-types/utils/deep-copy.d.ts +5 -0
  454. package/dist-types/utils/formats.d.ts +8 -0
  455. package/dist-types/utils/metadata.min.d.ts +11 -0
  456. package/dist-types/utils/phonenumbers.d.ts +1 -0
  457. package/dist-types/utils/pubsub/Actions.d.ts +16 -0
  458. package/dist-types/utils/pubsub/Events.d.ts +51 -0
  459. package/dist-types/utils/pubsub/pubsub.d.ts +32 -0
  460. package/dist-types/utils/regex.d.ts +3 -0
  461. package/dist-types/utils/sortOptions.d.ts +11 -0
  462. package/dist-types/utils/specification.d.ts +28 -0
  463. package/dist-types/utils/ssn.d.ts +1 -0
  464. package/dist-types/utils/url.d.ts +1 -0
  465. package/dist-types/utils/vehicle-properties/compare-basic-properties.d.ts +3 -0
  466. package/dist-types/utils/vehicle-properties/compare-categories.d.ts +3 -0
  467. package/dist-types/utils/vehicle-properties/compare-properties.d.ts +3 -0
  468. package/dist-types/utils/vehicle-properties/custom-property-adder.d.ts +12 -0
  469. package/dist-types/utils/vehicle-properties/property-hint-enricher.d.ts +10 -0
  470. package/dist-types/utils/vehicle-properties/property-remover.d.ts +7 -0
  471. package/dist-types/utils/vehicle-properties/property-tree-creator.d.ts +31 -0
  472. package/dist-types/utils/vehicle-properties/property-tree-sorter.d.ts +3 -0
  473. package/dist-web/index.js +7555 -0
  474. package/dist-web/index.js.map +1 -0
  475. package/package.json +27 -68
  476. package/dist/index.css +0 -241
  477. package/dist/index.css.map +0 -7
  478. package/dist/index.d.ts +0 -3299
  479. package/dist/index.js +0 -9021
  480. package/dist/index.js.map +0 -7
  481. package/dist/index.mjs +0 -8998
  482. package/dist/index.mjs.map +0 -7
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,14 @@
1
+ export var DrivingDistance;
2
+ (function (DrivingDistance) {
3
+ DrivingDistance["Between0And1000"] = "BETWEEN0AND1000";
4
+ DrivingDistance["Between1000And1500"] = "BETWEEN1000AND1500";
5
+ DrivingDistance["Between1500And2000"] = "BETWEEN1500AND2000";
6
+ DrivingDistance["Between2000And2500"] = "BETWEEN2000AND2500";
7
+ DrivingDistance["Over2500"] = "OVER2500";
8
+ })(DrivingDistance || (DrivingDistance = {}));
9
+ export var FinancialOptionInclusion;
10
+ (function (FinancialOptionInclusion) {
11
+ FinancialOptionInclusion["IncludesInsurance"] = "INCLUDES_INSURANCE";
12
+ FinancialOptionInclusion["IncludesService"] = "INCLUDES_SERVICE";
13
+ FinancialOptionInclusion["IncludesWintertires"] = "INCLUDES_WINTERTIRES";
14
+ })(FinancialOptionInclusion || (FinancialOptionInclusion = {}));
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,4 @@
1
+ import { createContext } from 'react';
2
+ export const CentralStorageContext = createContext({
3
+ setCentralStorageId: (_) => { },
4
+ });
@@ -0,0 +1,9 @@
1
+ import React, { useCallback } from 'react';
2
+ import { CentralStorageContext } from './CentralStorageContext';
3
+ import useSessionStorage from '../../hooks/useSessionStorage';
4
+ const CentralStorageProvider = ({ children }) => {
5
+ const { value, set, remove } = useSessionStorage('centralStorage');
6
+ const setCentralStorageId = useCallback((id) => (id ? set(id) : remove()), []);
7
+ return (React.createElement(CentralStorageContext.Provider, { value: { centralStorageId: value, setCentralStorageId } }, children));
8
+ };
9
+ export default CentralStorageProvider;
@@ -0,0 +1,29 @@
1
+ import { useContext, useEffect } from 'react';
2
+ import { CentralStorageContext } from './CentralStorageContext';
3
+ import useSearchItemBranch from '../../hooks/useSearchItemBranch';
4
+ const useCentralStorage = (vehicle) => {
5
+ const { centralStorageId, setCentralStorageId } = useContext(CentralStorageContext);
6
+ const connections = vehicle?.branch?.connections;
7
+ const branchId = centralStorageId
8
+ ? connections?.find((x) => x.id === centralStorageId)?.id
9
+ : undefined;
10
+ const { data, loading } = useSearchItemBranch(vehicle?.id, branchId);
11
+ useEffect(() => {
12
+ if ((connections?.length || 0) > 0) {
13
+ const match = centralStorageId
14
+ ? connections?.find((x) => x.id === centralStorageId)
15
+ : undefined;
16
+ if (!match) {
17
+ const first = connections?.[0];
18
+ if (first) {
19
+ setCentralStorageId(first.id);
20
+ }
21
+ }
22
+ }
23
+ }, [connections]);
24
+ return {
25
+ vehicle: (connections?.length || 0) > 0 ? data?.vehicle : vehicle,
26
+ loading,
27
+ };
28
+ };
29
+ export default useCentralStorage;
@@ -0,0 +1,2 @@
1
+ import { createContext } from 'react';
2
+ export const PathContext = createContext(undefined);
@@ -0,0 +1,47 @@
1
+ import React, { useCallback, useEffect, useMemo, useReducer } from 'react';
2
+ import usePrevious from '../../hooks/usePrevious';
3
+ import { PathContext } from './PathContext';
4
+ import reducer, { initialState, SET_PATH } from './reducer';
5
+ const 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;
6
+ const POP_STATE = 'popstate';
7
+ const PathProvider = ({ children }) => {
8
+ const [state, dispatch] = useReducer(reducer, initialState);
9
+ const previousPath = usePrevious(state.path);
10
+ useEffect(() => {
11
+ const onPopState = () => {
12
+ dispatch({ type: SET_PATH, path: window.location.pathname });
13
+ };
14
+ window.addEventListener(POP_STATE, onPopState);
15
+ return () => {
16
+ window.removeEventListener(POP_STATE, onPopState);
17
+ };
18
+ }, []);
19
+ const pushState = useCallback((path) => {
20
+ const h1 = window.location.hash;
21
+ history.pushState(null, '', `${path}`);
22
+ const h2 = window.location.hash;
23
+ if (h1.localeCompare(h2) !== 0) {
24
+ window.dispatchEvent(new HashChangeEvent('hashchange'));
25
+ }
26
+ dispatch({ type: SET_PATH, path });
27
+ }, []);
28
+ const replaceState = useCallback((path) => {
29
+ const h1 = window.location.hash;
30
+ history.replaceState(null, '', path);
31
+ const h2 = window.location.hash;
32
+ if (h1.localeCompare(h2) !== 0) {
33
+ window.dispatchEvent(new HashChangeEvent('hashchange'));
34
+ }
35
+ dispatch({ type: SET_PATH, path });
36
+ }, []);
37
+ const id = useMemo(() => state.path.match(regexGuidAnyWhere)?.pop(), [state.path]);
38
+ const value = useMemo(() => ({
39
+ ...state,
40
+ previousPath,
41
+ id,
42
+ pushState,
43
+ replaceState,
44
+ }), [state]);
45
+ return React.createElement(PathContext.Provider, { value: value }, children);
46
+ };
47
+ export default PathProvider;
@@ -0,0 +1,15 @@
1
+ export const SET_PATH = 'SET_PATH';
2
+ export const initialState = {
3
+ path: window.location.pathname,
4
+ };
5
+ const pathReducer = (state, action) => {
6
+ const next = { ...state };
7
+ switch (action.type) {
8
+ case SET_PATH:
9
+ next.path = action.path;
10
+ return next;
11
+ default:
12
+ throw new Error(`Unsupported action type`);
13
+ }
14
+ };
15
+ export default pathReducer;
@@ -0,0 +1,10 @@
1
+ import { useContext } from 'react';
2
+ import { PathContext } from './PathContext';
3
+ const usePath = () => {
4
+ const context = useContext(PathContext);
5
+ if (!context) {
6
+ throw new Error('usePath must be used within a PathProvider');
7
+ }
8
+ return context;
9
+ };
10
+ export default usePath;
@@ -0,0 +1,8 @@
1
+ import { createContext } from 'react';
2
+ export const RelatedSearchContext = createContext({
3
+ moreLikeThisUrl: false,
4
+ loading: false,
5
+ error: false,
6
+ response: undefined,
7
+ fetchRelated: (_) => { },
8
+ });
@@ -0,0 +1,27 @@
1
+ import React, { useState, useCallback } from 'react';
2
+ import useFetch from '../../hooks/useFetch';
3
+ import { RelatedSearchContext } from './RelatedSearchContext';
4
+ const RelatedSearchProvider = ({ url, urlMlt, apiKey, children }) => {
5
+ const [queryFilter, setQueryFilter] = useState();
6
+ const query = queryFilter?.searchParams.toString();
7
+ const { loading, data: response, error, } = useFetch(`${urlMlt || url}${query ? `?${query}` : ''}`, {
8
+ headers: apiKey
9
+ ? {
10
+ 'x-api-key': apiKey,
11
+ }
12
+ : {},
13
+ }, !queryFilter);
14
+ const fetchRelated = useCallback((searchParams) => setQueryFilter({
15
+ searchParams,
16
+ }), []);
17
+ const value = {
18
+ moreLikeThisUrl: !!urlMlt,
19
+ loading,
20
+ error,
21
+ response,
22
+ queryFilter,
23
+ fetchRelated,
24
+ };
25
+ return React.createElement(RelatedSearchContext.Provider, { value: value }, children);
26
+ };
27
+ export default RelatedSearchProvider;
@@ -0,0 +1,15 @@
1
+ import { useContext, useEffect } from 'react';
2
+ import { RelatedSearchContext } from './RelatedSearchContext';
3
+ const useRelatedSearch = (id) => {
4
+ const data = useContext(RelatedSearchContext);
5
+ useEffect(() => {
6
+ const searchParams = new URLSearchParams();
7
+ searchParams.set('hits', '3');
8
+ if (data.moreLikeThisUrl && id) {
9
+ searchParams.set('id', id);
10
+ }
11
+ data.fetchRelated(searchParams);
12
+ }, [id]);
13
+ return data;
14
+ };
15
+ export default useRelatedSearch;
@@ -0,0 +1,12 @@
1
+ import { createContext } from 'react';
2
+ export const SearchContext = createContext({
3
+ loading: false,
4
+ error: false,
5
+ response: undefined,
6
+ documents: undefined,
7
+ initialFacets: undefined,
8
+ queryFilter: { searchParams: new URLSearchParams() },
9
+ onFilterUpdate: (_) => { },
10
+ onLoadMore: () => { },
11
+ onInitialize: (_) => { },
12
+ });
@@ -0,0 +1,176 @@
1
+ import React, { useState, useEffect, useCallback } from 'react';
2
+ import useFetch from '../../hooks/useFetch';
3
+ import { SearchContext } from './SearchContext';
4
+ import { getUrlSearchParamsFromUrl } from '../../utils/url';
5
+ import { WaykePubSub } from '../../index';
6
+ import usePath from '../Path/usePath';
7
+ const initialSearchParams = new URLSearchParams();
8
+ initialSearchParams.set('hits', '30');
9
+ initialSearchParams.set('sort', 'published-desc');
10
+ const SearchProvider = ({ url, apiKey, useQueryParamsFromUrl, pathRoute, children, }) => {
11
+ const { replaceState, pushState } = usePath();
12
+ const [queryFilter, setQueryFilter] = useState({
13
+ searchParams: initialSearchParams,
14
+ });
15
+ const [initialFacets, setInitialFacets] = useState();
16
+ const [documents, setDocuments] = useState();
17
+ const [initialize, setInitialize] = useState(false);
18
+ const { data: initialDataRepsonse } = useFetch(`${url}?hits=0`, {
19
+ headers: apiKey
20
+ ? {
21
+ 'x-api-key': apiKey,
22
+ }
23
+ : {},
24
+ }, !!initialFacets);
25
+ const query = queryFilter.searchParams.toString();
26
+ const { loading, data: response, error, } = useFetch(`${url}${query ? `?${query}` : ''}`, {
27
+ headers: apiKey
28
+ ? {
29
+ 'x-api-key': apiKey,
30
+ }
31
+ : {},
32
+ }, !initialize || !!queryFilter?.block);
33
+ const popStateEvent = (event) => {
34
+ const { currentTarget } = event;
35
+ if (currentTarget) {
36
+ const nextSearchParams = new URLSearchParams(currentTarget.location.search);
37
+ if (!nextSearchParams.has('sort')) {
38
+ nextSearchParams.set('sort', 'published-desc');
39
+ }
40
+ setQueryFilter({
41
+ searchParams: nextSearchParams,
42
+ });
43
+ }
44
+ };
45
+ useEffect(() => {
46
+ if (useQueryParamsFromUrl) {
47
+ window.addEventListener('popstate', popStateEvent);
48
+ }
49
+ const onFilterUpdateEvent = {
50
+ actionName: 'onFilterUpdate',
51
+ callback: onFilterUpdate,
52
+ };
53
+ WaykePubSub.subscribeAction(onFilterUpdateEvent);
54
+ return () => {
55
+ window.removeEventListener('popstate', popStateEvent);
56
+ WaykePubSub.unsubscribeAction(onFilterUpdateEvent);
57
+ };
58
+ }, []);
59
+ useEffect(() => {
60
+ if (initialDataRepsonse) {
61
+ setInitialFacets(initialDataRepsonse.facets);
62
+ }
63
+ }, [initialDataRepsonse]);
64
+ useEffect(() => {
65
+ if (useQueryParamsFromUrl) {
66
+ const nextSearchParams = new URLSearchParams(queryFilter.searchParams);
67
+ nextSearchParams.delete('hits');
68
+ nextSearchParams.delete('offset');
69
+ if (nextSearchParams.get('sort') === 'published-desc') {
70
+ nextSearchParams.delete('sort');
71
+ }
72
+ const nextSearch = nextSearchParams.toString() ? `?${nextSearchParams}` : '';
73
+ if (initialize) {
74
+ if (window.location.search.localeCompare(nextSearch) !== 0) {
75
+ const _path = pathRoute?.replace(/^\/|\/$/g, '');
76
+ const prefix = _path ? `/${_path}/` : '/';
77
+ const index = _path ? window.location.pathname.indexOf(prefix) : -1;
78
+ let pathname = window.location.pathname;
79
+ if (index > -1) {
80
+ pathname = pathname.substr(0, index);
81
+ }
82
+ pushState(`${pathname}${nextSearch}`);
83
+ }
84
+ }
85
+ }
86
+ }, [queryFilter, initialize, useQueryParamsFromUrl]);
87
+ useEffect(() => {
88
+ if (response) {
89
+ if (!initialFacets && !useQueryParamsFromUrl) {
90
+ setInitialFacets(response.facets);
91
+ }
92
+ if (useQueryParamsFromUrl && response.query?.parameters) {
93
+ const nextSearchParams = new URLSearchParams(response.query.parameters);
94
+ nextSearchParams.delete('hits');
95
+ nextSearchParams.delete('offset');
96
+ const nextSearch = nextSearchParams.toString() ? `?${nextSearchParams}` : '';
97
+ if (window.location.search.localeCompare(nextSearch) !== 0) {
98
+ replaceState(`${window.location.pathname}${nextSearch}`);
99
+ setQueryFilter({
100
+ searchParams: new URLSearchParams(nextSearch),
101
+ block: true,
102
+ });
103
+ }
104
+ }
105
+ if (queryFilter?.concatResult) {
106
+ setDocuments([...(documents || []), ...(response.documentList.documents || [])]);
107
+ }
108
+ else {
109
+ setDocuments(response.documentList.documents || []);
110
+ }
111
+ }
112
+ }, [response, useQueryParamsFromUrl]);
113
+ const onFilterUpdate = useCallback((nextQuery) => {
114
+ {
115
+ if (!initialize) {
116
+ setInitialize(true);
117
+ }
118
+ setQueryFilter({
119
+ searchParams: new URLSearchParams(nextQuery),
120
+ });
121
+ }
122
+ }, [initialize]);
123
+ const onLoadMore = useCallback(() => {
124
+ if (response) {
125
+ setQueryFilter({
126
+ searchParams: new URLSearchParams(response?.documentList.pagination.nextPage?.query),
127
+ concatResult: true,
128
+ });
129
+ }
130
+ }, [response]);
131
+ const onInitialize = useCallback((_initialQueryParams) => {
132
+ if (!initialize) {
133
+ const searchParamsFromUrl = getUrlSearchParamsFromUrl();
134
+ const initialQueryParams = useQueryParamsFromUrl
135
+ ? searchParamsFromUrl
136
+ : _initialQueryParams;
137
+ if (useQueryParamsFromUrl && _initialQueryParams) {
138
+ _initialQueryParams.forEach((value, key) => {
139
+ if (!initialQueryParams?.getAll(key)?.some((v) => v === value)) {
140
+ initialQueryParams?.append(key, value);
141
+ }
142
+ });
143
+ }
144
+ if (initialQueryParams) {
145
+ const nextSearchParams = new URLSearchParams(initialQueryParams);
146
+ nextSearchParams.delete('hits');
147
+ nextSearchParams.delete('offset');
148
+ if (!initialQueryParams.has('hits')) {
149
+ initialQueryParams.set('hits', '30');
150
+ }
151
+ if (!initialQueryParams.has('sort')) {
152
+ initialQueryParams.set('sort', 'published-desc');
153
+ }
154
+ const nextSearch = nextSearchParams.toString() ? `?${nextSearchParams}` : '';
155
+ setQueryFilter({
156
+ searchParams: initialQueryParams,
157
+ });
158
+ replaceState(`${window.location.pathname}${nextSearch}`);
159
+ }
160
+ setInitialize(true);
161
+ }
162
+ }, [initialize]);
163
+ const value = {
164
+ loading,
165
+ error,
166
+ response,
167
+ documents,
168
+ initialFacets,
169
+ queryFilter,
170
+ onFilterUpdate,
171
+ onLoadMore,
172
+ onInitialize,
173
+ };
174
+ return React.createElement(SearchContext.Provider, { value: value }, children);
175
+ };
176
+ export default SearchProvider;
@@ -0,0 +1,4 @@
1
+ import { useContext } from 'react';
2
+ import { SearchContext } from './SearchContext';
3
+ const useSearch = () => useContext(SearchContext);
4
+ export default useSearch;
@@ -0,0 +1,2 @@
1
+ import { createContext } from 'react';
2
+ export const SettingsContext = createContext({});
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { SettingsContext } from './SettingsContext';
3
+ const SettingsProvider = ({ googleMapsApiKey, googleMapsMarker, ecomSettings, children, }) => (React.createElement(SettingsContext.Provider, { value: { ecomSettings, googleMapsApiKey, googleMapsMarker } }, children));
4
+ export default SettingsProvider;
@@ -0,0 +1,4 @@
1
+ import { useContext } from 'react';
2
+ import { SettingsContext } from './SettingsContext';
3
+ const useSettings = () => useContext(SettingsContext);
4
+ export default useSettings;
@@ -0,0 +1,18 @@
1
+ import React, { useState, useCallback } from 'react';
2
+ import { List, Item, Header, Label, Heading, Indicator, IndicatorValue, Icon, Body, } from './wrapper';
3
+ import { IconChevronDown } from '../Icon/index';
4
+ export const AccordionItem = ({ heading, children, activeCount, isActive }) => {
5
+ const [extend, setExtend] = useState(isActive || false);
6
+ const onToggleExtend = useCallback(() => setExtend(!extend), [extend]);
7
+ return (React.createElement(Item, { isOpen: extend },
8
+ React.createElement(Header, { onClick: onToggleExtend, title: "Visa mer" },
9
+ React.createElement(Label, null,
10
+ React.createElement(Heading, { className: activeCount && activeCount > 0 ? 'wayke__theme wayke__font--bold' : '' }, heading),
11
+ activeCount && activeCount > 0 && (React.createElement(Indicator, null,
12
+ React.createElement(IndicatorValue, null, activeCount)))),
13
+ React.createElement(Icon, null,
14
+ React.createElement(IconChevronDown, { block: true }))),
15
+ React.createElement(Body, null, children)));
16
+ };
17
+ const Accordion = ({ children }) => React.createElement(List, null, children);
18
+ export default Accordion;
@@ -0,0 +1,92 @@
1
+ import styled, { css } from 'styled-components';
2
+ import { size } from '../../layout/helpers';
3
+ import { ButtonReset } from '../Button/index';
4
+ export const List = styled.ul `
5
+ list-style: none;
6
+ padding: 0;
7
+ margin: ${size(-1)} 0;
8
+ font-size: 1rem;
9
+ `;
10
+ export const Header = styled(ButtonReset) `
11
+ display: flex;
12
+ align-items: center;
13
+ width: 100%;
14
+ padding: ${size(3)} 0;
15
+ text-align: left;
16
+ font: inherit;
17
+ `;
18
+ export const Label = styled.div `
19
+ display: flex;
20
+ align-items: center;
21
+ flex: 1 1 auto;
22
+ `;
23
+ export const Heading = styled.div `
24
+ line-height: 1;
25
+ `;
26
+ export const Indicator = styled.div.attrs(() => ({
27
+ className: 'wayke__theme wayke__color--primary-bg',
28
+ })) `
29
+ flex-shrink: 0;
30
+ display: flex;
31
+ align-items: center;
32
+ justify-content: center;
33
+ padding: 0 ${size(0.375)};
34
+ margin-left: ${size(0.5)};
35
+ min-width: 1em;
36
+ height: 1em;
37
+ border-radius: 999px;
38
+ z-index: 1;
39
+ `;
40
+ export const IndicatorValue = styled.div `
41
+ font-family: sans-serif; // Default font to guarantee visibility
42
+ font-size: 0.75rem;
43
+ font-weight: bold;
44
+ `;
45
+ export const Icon = styled.div `
46
+ position: relative;
47
+ flex-shrink: 0;
48
+ padding-left: ${size(1)};
49
+ transition: color 150ms ease;
50
+
51
+ :before {
52
+ content: '';
53
+ position: absolute;
54
+ top: ${size(-1)};
55
+ bottom: ${size(-1)};
56
+ left: 0;
57
+ right: ${size(-1)};
58
+ border-radius: 50%;
59
+ background-color: ${(props) => props.theme.color.accent};
60
+ z-index: -1;
61
+ opacity: 0;
62
+ transition: opacity 200ms ease;
63
+ }
64
+
65
+ ${Header}:hover & {
66
+ :before {
67
+ opacity: 1;
68
+ }
69
+ }
70
+ `;
71
+ export const Body = styled.div `
72
+ display: none;
73
+ padding-bottom: ${size(3)};
74
+ `;
75
+ export const Item = styled.li `
76
+ & + & {
77
+ border-top: 1px solid ${(props) => props.theme.color.border};
78
+ }
79
+
80
+ ${({ isOpen }) => isOpen &&
81
+ css `
82
+ ${Body} {
83
+ display: block;
84
+ }
85
+
86
+ ${Icon} {
87
+ svg {
88
+ transform: rotate(180deg);
89
+ }
90
+ }
91
+ `}
92
+ `;
@@ -0,0 +1,18 @@
1
+ import React, { useCallback } from 'react';
2
+ import ToggleItem from './toggle-item';
3
+ import { formatPhonenumber } from '../../utils/phonenumbers';
4
+ import PubSub from '../../utils/pubsub/pubsub';
5
+ const ActionList = ({ contact, branch }) => {
6
+ const email = contact?.email || branch?.contact?.email;
7
+ const phonenumber = contact?.phonenumber || branch?.contact?.phonenumber;
8
+ const onClickMailVisible = useCallback(() => PubSub.publish('MailVisible'), []);
9
+ const onClickPhoneVisible = useCallback(() => PubSub.publish('PhonenumberVisible'), []);
10
+ const onClickPhoneValue = useCallback(() => PubSub.publish('PhonenumberCall'), []);
11
+ if (!email && !phonenumber) {
12
+ return null;
13
+ }
14
+ return (React.createElement(React.Fragment, null,
15
+ email && (React.createElement(ToggleItem, { onClickVisible: onClickMailVisible, title: "Visa mailadress", value: email, type: "mailto" })),
16
+ phonenumber && (React.createElement(ToggleItem, { title: "Visa telefonnummer", value: formatPhonenumber(phonenumber), type: "tel", onClickVisible: onClickPhoneVisible, onClickValue: onClickPhoneValue }))));
17
+ };
18
+ export default ActionList;
@@ -0,0 +1,27 @@
1
+ import React, { useState, useCallback } from 'react';
2
+ import { ButtonSecondary, ButtonContent } from '../Button/index';
3
+ import { RepeatTiny } from '../Repeat/index';
4
+ const initialValue = {};
5
+ const getInitialValue = (title) => title && !!initialValue[title];
6
+ const ToggleItem = ({ title, value, type, onClickVisible, onClickValue }) => {
7
+ const [visible, setVisible] = useState(() => getInitialValue(type));
8
+ const _onClickValue = useCallback(() => {
9
+ if (onClickValue) {
10
+ onClickValue();
11
+ }
12
+ }, []);
13
+ const onClick = useCallback(() => {
14
+ if (!visible) {
15
+ initialValue[type] = true;
16
+ setVisible(true);
17
+ if (onClickVisible) {
18
+ onClickVisible();
19
+ }
20
+ }
21
+ }, [visible]);
22
+ const visibleTitle = type === 'tel' ? 'Ring' : type === 'mailto' ? 'Skicka ett mail till' : '';
23
+ return (React.createElement(RepeatTiny, null, visible ? (React.createElement(ButtonSecondary, { onClick: _onClickValue, as: "a", href: `${type}:${value}`, title: `${visibleTitle} ${value}`, fullWidth: true },
24
+ React.createElement(ButtonContent, null, value))) : (React.createElement(ButtonSecondary, { onClick: onClick, title: title, fullWidth: true },
25
+ React.createElement(ButtonContent, null, title)))));
26
+ };
27
+ export default ToggleItem;
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { Wrapper } from './wrapper';
3
+ const Avatar = ({ image, alt }) => React.createElement(Wrapper, { image: image, "aria-label": alt });
4
+ export default Avatar;
@@ -0,0 +1,15 @@
1
+ import styled from 'styled-components';
2
+ import { size } from '../../layout/helpers';
3
+ export const Wrapper = styled.div.attrs(() => ({
4
+ role: 'image',
5
+ })) `
6
+ display: block;
7
+ width: ${size(5)};
8
+ height: ${size(5)};
9
+ border-radius: 50%;
10
+ background-image: ${(props) => `url(${props.image})`};
11
+ background-size: cover;
12
+ background-position: center;
13
+ background-repeat: no-repeat;
14
+ background-color: ${(props) => props.theme.color.accent};
15
+ `;
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { Wrapper } from './wrapper';
3
+ const Badge = ({ label, severity }) => React.createElement(Wrapper, { severity: severity }, label);
4
+ export default Badge;
@@ -0,0 +1,24 @@
1
+ import styled from 'styled-components';
2
+ import { size } from '../../layout/helpers';
3
+ import theme from '../../layout/theme';
4
+ const getBg = (severity) => {
5
+ let bg = theme.color.textDark;
6
+ if (severity === 'positive') {
7
+ bg = theme.color.ui.positive;
8
+ }
9
+ else if (severity === 'negative') {
10
+ bg = theme.color.ui.negative;
11
+ }
12
+ return bg;
13
+ };
14
+ export const Wrapper = styled.div.attrs(() => ({
15
+ className: 'wayke__theme wayke__font--bold',
16
+ })) `
17
+ display: inline-block;
18
+ background-color: ${(props) => getBg(props.severity)};
19
+ padding: ${size(0.75)} ${size(1.5)};
20
+ color: ${(props) => props.theme.color.textLight};
21
+ border-radius: 3px;
22
+ font-size: 0.75rem;
23
+ line-height: 1.2;
24
+ `;
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ import { Wrapper, Quote, Author, AvatarWrapper, Info, Name, Date } from './wrapper';
3
+ import Avatar from '../Avatar/index';
4
+ const Blockquote = ({ children, author, avatar, date }) => (React.createElement(Wrapper, null,
5
+ React.createElement(Quote, null, children),
6
+ author && (React.createElement(Author, null,
7
+ avatar && (React.createElement(AvatarWrapper, null,
8
+ React.createElement(Avatar, { image: avatar, alt: `${author} avatar` }))),
9
+ React.createElement(Info, null,
10
+ React.createElement(Name, null, author),
11
+ date && React.createElement(Date, null, date))))));
12
+ export default Blockquote;