@wayke-se/components-react 2.16.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 (674) 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} +13 -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} +3 -1
  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} +5 -2
  236. package/{dist-src/queries/SEARCH_ITEM_QUERY.js → src/queries/SEARCH_ITEM_QUERY.ts} +7 -3
  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 -7018
  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/Insurance.js +0 -26
  331. package/dist-src/components/InsuranceOptions/InsuranceFree.js +0 -31
  332. package/dist-src/components/InsuranceOptions/InsuranceFreeModal.js +0 -20
  333. package/dist-src/components/InsuranceOptions/InsuranceModal.js +0 -105
  334. package/dist-src/components/InsuranceOptions/index.js +0 -15
  335. package/dist-src/components/Lightbox/index.js +0 -30
  336. package/dist-src/components/Loader/index.js +0 -7
  337. package/dist-src/components/LogoBox/index.js +0 -10
  338. package/dist-src/components/Map/index.js +0 -27
  339. package/dist-src/components/Modal/index.js +0 -20
  340. package/dist-src/components/OpeningHours/index.js +0 -97
  341. package/dist-src/components/OptionBox/index.js +0 -7
  342. package/dist-src/components/OverflowBox/index.js +0 -4
  343. package/dist-src/components/Page/index.js +0 -30
  344. package/dist-src/components/Panel/index.js +0 -20
  345. package/dist-src/components/Pdf/index.js +0 -11
  346. package/dist-src/components/PhoneNumber/index.js +0 -13
  347. package/dist-src/components/Portal/index.js +0 -4
  348. package/dist-src/components/Portal/portal-element.js +0 -3
  349. package/dist-src/components/Portal/portal.js +0 -25
  350. package/dist-src/components/PriceTable/index.js +0 -20
  351. package/dist-src/components/ProductCard/index.js +0 -38
  352. package/dist-src/components/ProgressBar/index.js +0 -16
  353. package/dist-src/components/RangeSlider/RangeSliderSimple.js +0 -26
  354. package/dist-src/components/RangeSlider/SliderWithLabel.js +0 -21
  355. package/dist-src/components/RangeSlider/handle.js +0 -5
  356. package/dist-src/components/RangeSlider/index.js +0 -50
  357. package/dist-src/components/RangeSlider/track.js +0 -6
  358. package/dist-src/components/RangeSliderLabel/index.js +0 -6
  359. package/dist-src/components/Result/index.js +0 -39
  360. package/dist-src/components/SearchBar/index.js +0 -18
  361. package/dist-src/components/SearchFilter/index.js +0 -23
  362. package/dist-src/components/SearchTerm/index.js +0 -8
  363. package/dist-src/components/SectionHeader/index.js +0 -9
  364. package/dist-src/components/Snackbar/index.js +0 -21
  365. package/dist-src/components/Snackbar/wrapper.js +0 -56
  366. package/dist-src/components/SortSelect/index.js +0 -10
  367. package/dist-src/components/Sphere/Sphere.js +0 -21
  368. package/dist-src/components/Sphere/SphereLightbox.js +0 -4
  369. package/dist-src/components/Sphere/SphereViewer.js +0 -54
  370. package/dist-src/components/SwitchBar/index.js +0 -23
  371. package/dist-src/components/Tabs/index.js +0 -6
  372. package/dist-src/components/ThreeSixty/Rotation.js +0 -95
  373. package/dist-src/components/ThreeSixty/ThreeSixtLightbox.js +0 -15
  374. package/dist-src/components/ThreeSixty/ThreeSixty.js +0 -25
  375. package/dist-src/components/UspList/index.js +0 -18
  376. package/dist-src/components/Utility/index.js +0 -13
  377. package/dist-src/components/Video/CustomPlayer.js +0 -8
  378. package/dist-src/components/Video/EmbeddedVideoLightbox.js +0 -18
  379. package/dist-src/components/Video/EmbededVideo.js +0 -38
  380. package/dist-src/components/Video/QuickNavEmbeded.js +0 -17
  381. package/dist-src/components/Video/QuickNavVideo.js +0 -6
  382. package/dist-src/components/Video/Video.js +0 -8
  383. package/dist-src/components/Video/VimeoPlayer.js +0 -6
  384. package/dist-src/components/Video/YoutubePlayer.js +0 -6
  385. package/dist-src/components/Video/useThumbnail.js +0 -25
  386. package/dist-src/components/Video/utils.js +0 -35
  387. package/dist-src/components/Video/wrapper.js +0 -19
  388. package/dist-src/hooks/useEcom.js +0 -18
  389. package/dist-src/hooks/useFetch.js +0 -69
  390. package/dist-src/hooks/useHasBeenVisible.js +0 -13
  391. package/dist-src/hooks/useHashGuid.js +0 -28
  392. package/dist-src/hooks/useInsurance.js +0 -12
  393. package/dist-src/hooks/useLoan.js +0 -12
  394. package/dist-src/hooks/useOnScreen.js +0 -15
  395. package/dist-src/hooks/useOutsideClick.js +0 -15
  396. package/dist-src/hooks/usePrevious.js +0 -9
  397. package/dist-src/hooks/useSearchItem.js +0 -7
  398. package/dist-src/hooks/useSearchItemBranch.js +0 -7
  399. package/dist-src/hooks/useSessionStorage.js +0 -23
  400. package/dist-src/hooks/useVimeoThumbnail.js +0 -18
  401. package/dist-src/index.js +0 -10
  402. package/dist-src/layout/helpers.js +0 -5
  403. package/dist-src/layout/theme.js +0 -57
  404. package/dist-src/layouts/WaykeComposite.js +0 -23
  405. package/dist-src/layouts/WaykeCompositeWithProvider.js +0 -6
  406. package/dist-src/layouts/search/index.js +0 -55
  407. package/dist-src/layouts/searchItem/Branch.js +0 -54
  408. package/dist-src/layouts/searchItem/BranchModal.js +0 -36
  409. package/dist-src/layouts/searchItem/CheckList.js +0 -65
  410. package/dist-src/layouts/searchItem/ManufacturerPackagesOption.js +0 -26
  411. package/dist-src/layouts/searchItem/MetadataItem.js +0 -34
  412. package/dist-src/layouts/searchItem/PackageOptionModal.js +0 -18
  413. package/dist-src/layouts/searchItem/PackageOptions.js +0 -28
  414. package/dist-src/layouts/searchItem/Property.js +0 -53
  415. package/dist-src/layouts/searchItem/Related.js +0 -65
  416. package/dist-src/layouts/searchItem/index.js +0 -160
  417. package/dist-src/providers/WaykeItemProvidet.js +0 -20
  418. package/dist-src/providers/WaykeProvider.js +0 -22
  419. package/dist-src/providers/graphqlProvider.js +0 -7
  420. package/dist-src/providers/themeProvider.js +0 -5
  421. package/dist-src/utils/constants.js +0 -30
  422. package/dist-src/utils/converters.js +0 -31
  423. package/dist-src/utils/formats.js +0 -60
  424. package/dist-src/utils/metadata.min.js +0 -86
  425. package/dist-src/utils/phonenumbers.js +0 -12
  426. package/dist-src/utils/pubsub/Actions.js +0 -1
  427. package/dist-src/utils/pubsub/Events.js +0 -1
  428. package/dist-src/utils/pubsub/pubsub.js +0 -93
  429. package/dist-src/utils/regex.js +0 -10
  430. package/dist-src/utils/sortOptions.js +0 -26
  431. package/dist-src/utils/specification.js +0 -499
  432. package/dist-src/utils/ssn.js +0 -1
  433. package/dist-src/utils/vehicle-properties/compare-basic-properties.js +0 -36
  434. package/dist-src/utils/vehicle-properties/compare-categories.js +0 -27
  435. package/dist-src/utils/vehicle-properties/compare-properties.js +0 -3
  436. package/dist-src/utils/vehicle-properties/custom-property-adder.js +0 -143
  437. package/dist-src/utils/vehicle-properties/property-hint-enricher.js +0 -190
  438. package/dist-src/utils/vehicle-properties/property-remover.js +0 -20
  439. package/dist-src/utils/vehicle-properties/property-tree-creator.js +0 -127
  440. package/dist-src/utils/vehicle-properties/property-tree-sorter.js +0 -18
  441. package/dist-types/@types/codegen/types.d.ts +0 -343
  442. package/dist-types/@types/filter.d.ts +0 -5
  443. package/dist-types/@types/queryFilter.d.ts +0 -5
  444. package/dist-types/@types/search.d.ts +0 -105
  445. package/dist-types/@types/vehicle-properties.d.ts +0 -29
  446. package/dist-types/State/CentralStorage/CentralStorageContext.d.ts +0 -6
  447. package/dist-types/State/CentralStorage/CentralStorageProvider.d.ts +0 -6
  448. package/dist-types/State/CentralStorage/useCentralStorage.d.ts +0 -6
  449. package/dist-types/State/Path/PathContext.d.ts +0 -9
  450. package/dist-types/State/Path/PathProvider.d.ts +0 -6
  451. package/dist-types/State/Path/reducer.d.ts +0 -14
  452. package/dist-types/State/Path/usePath.d.ts +0 -3
  453. package/dist-types/State/RelatedSearch/RelatedSearchContext.d.ts +0 -10
  454. package/dist-types/State/RelatedSearch/RelatedSearchProvider.d.ts +0 -9
  455. package/dist-types/State/RelatedSearch/useRelatedSearch.d.ts +0 -2
  456. package/dist-types/State/Search/SearchContext.d.ts +0 -15
  457. package/dist-types/State/Search/SearchProvider.d.ts +0 -10
  458. package/dist-types/State/Search/useSearch.d.ts +0 -2
  459. package/dist-types/State/Settings/SettingsContext.d.ts +0 -12
  460. package/dist-types/State/Settings/SettingsProvider.d.ts +0 -10
  461. package/dist-types/State/Settings/useSettings.d.ts +0 -2
  462. package/dist-types/components/Accordion/index.d.ts +0 -13
  463. package/dist-types/components/Accordion/wrapper.d.ts +0 -16
  464. package/dist-types/components/ActionList/index.d.ts +0 -8
  465. package/dist-types/components/ActionList/toggle-item.d.ts +0 -10
  466. package/dist-types/components/Avatar/index.d.ts +0 -7
  467. package/dist-types/components/Avatar/wrapper.d.ts +0 -7
  468. package/dist-types/components/Badge/index.d.ts +0 -7
  469. package/dist-types/components/Badge/wrapper.d.ts +0 -7
  470. package/dist-types/components/Blockquote/index.d.ts +0 -9
  471. package/dist-types/components/Blockquote/wrapper.d.ts +0 -9
  472. package/dist-types/components/Button/index.d.ts +0 -52
  473. package/dist-types/components/CheckMarkList/index.d.ts +0 -7
  474. package/dist-types/components/CheckMarkList/wrapper.d.ts +0 -6
  475. package/dist-types/components/Checklist/index.d.ts +0 -13
  476. package/dist-types/components/Checklist/wrapper.d.ts +0 -11
  477. package/dist-types/components/ColorSelect/index.d.ts +0 -14
  478. package/dist-types/components/ColorSelect/wrapper.d.ts +0 -11
  479. package/dist-types/components/ColumnRow/index.d.ts +0 -2
  480. package/dist-types/components/Container/index.d.ts +0 -6
  481. package/dist-types/components/Container/wrapper.d.ts +0 -1
  482. package/dist-types/components/Content/index.d.ts +0 -6
  483. package/dist-types/components/Content/wrapper.d.ts +0 -4
  484. package/dist-types/components/ContentLogo/index.d.ts +0 -3
  485. package/dist-types/components/DataList/index.d.ts +0 -10
  486. package/dist-types/components/DataList/wrapper.d.ts +0 -6
  487. package/dist-types/components/DetailBox/index.d.ts +0 -8
  488. package/dist-types/components/DetailBox/wrapper.d.ts +0 -13
  489. package/dist-types/components/Ecom/index.d.ts +0 -10
  490. package/dist-types/components/ExtendContent/index.d.ts +0 -8
  491. package/dist-types/components/ExtendContent/wrapper.d.ts +0 -6
  492. package/dist-types/components/ExtendInfo/index.d.ts +0 -7
  493. package/dist-types/components/ExtendInfo/wrapper.d.ts +0 -10
  494. package/dist-types/components/Filter/index.d.ts +0 -7
  495. package/dist-types/components/Filter/wrapper.d.ts +0 -8
  496. package/dist-types/components/FilterPanel/checkListFacet.d.ts +0 -7
  497. package/dist-types/components/FilterPanel/colorFacet.d.ts +0 -7
  498. package/dist-types/components/FilterPanel/faceSelector.d.ts +0 -7
  499. package/dist-types/components/FilterPanel/index.d.ts +0 -18
  500. package/dist-types/components/FilterPanel/rangeFacet.d.ts +0 -9
  501. package/dist-types/components/FinancialOptions/LoanModal.d.ts +0 -9
  502. package/dist-types/components/FinancialOptions/index.d.ts +0 -8
  503. package/dist-types/components/FinancialOptions/leasing.d.ts +0 -7
  504. package/dist-types/components/FinancialOptions/loan.d.ts +0 -8
  505. package/dist-types/components/Gallery/MediaButton.d.ts +0 -7
  506. package/dist-types/components/Gallery/index.d.ts +0 -8
  507. package/dist-types/components/Gallery/wrapper.d.ts +0 -26
  508. package/dist-types/components/Grid/index.d.ts +0 -11
  509. package/dist-types/components/Grid/wrapper.d.ts +0 -3
  510. package/dist-types/components/Heading/index.d.ts +0 -24
  511. package/dist-types/components/Icon/index.d.ts +0 -16
  512. package/dist-types/components/InputCheckbox/index.d.ts +0 -7
  513. package/dist-types/components/InputCheckbox/wrapper.d.ts +0 -13
  514. package/dist-types/components/InputGroup/index.d.ts +0 -2
  515. package/dist-types/components/InputLabel/index.d.ts +0 -7
  516. package/dist-types/components/InputLabel/wrapper.d.ts +0 -3
  517. package/dist-types/components/InputSearch/index.d.ts +0 -9
  518. package/dist-types/components/InputSearch/wrapper.d.ts +0 -15
  519. package/dist-types/components/InputSelect/index.d.ts +0 -14
  520. package/dist-types/components/InputSelect/wrapper.d.ts +0 -6
  521. package/dist-types/components/InputText/index.d.ts +0 -8
  522. package/dist-types/components/InputText/wrapper.d.ts +0 -5
  523. package/dist-types/components/InsuranceOptions/Insurance.d.ts +0 -9
  524. package/dist-types/components/InsuranceOptions/InsuranceFree.d.ts +0 -7
  525. package/dist-types/components/InsuranceOptions/InsuranceFreeModal.d.ts +0 -8
  526. package/dist-types/components/InsuranceOptions/InsuranceModal.d.ts +0 -10
  527. package/dist-types/components/InsuranceOptions/index.d.ts +0 -9
  528. package/dist-types/components/Lightbox/index.d.ts +0 -9
  529. package/dist-types/components/Lightbox/wrapper.d.ts +0 -9
  530. package/dist-types/components/Loader/index.d.ts +0 -7
  531. package/dist-types/components/Loader/wrapper.d.ts +0 -9
  532. package/dist-types/components/LogoBox/index.d.ts +0 -9
  533. package/dist-types/components/LogoBox/wrapper.d.ts +0 -4
  534. package/dist-types/components/Map/index.d.ts +0 -7
  535. package/dist-types/components/Map/wrapper.d.ts +0 -4
  536. package/dist-types/components/Modal/index.d.ts +0 -9
  537. package/dist-types/components/Modal/wrapper.d.ts +0 -21
  538. package/dist-types/components/OpeningHours/index.d.ts +0 -7
  539. package/dist-types/components/OptionBox/index.d.ts +0 -9
  540. package/dist-types/components/OptionBox/wrapper.d.ts +0 -8
  541. package/dist-types/components/OverflowBox/index.d.ts +0 -6
  542. package/dist-types/components/OverflowBox/wrapper.d.ts +0 -1
  543. package/dist-types/components/OverflowGrid/index.d.ts +0 -3
  544. package/dist-types/components/Page/index.d.ts +0 -7
  545. package/dist-types/components/Panel/index.d.ts +0 -10
  546. package/dist-types/components/Panel/wrapper.d.ts +0 -22
  547. package/dist-types/components/Pdf/index.d.ts +0 -11
  548. package/dist-types/components/Pdf/wrapper.d.ts +0 -11
  549. package/dist-types/components/PhoneNumber/index.d.ts +0 -6
  550. package/dist-types/components/Portal/portal-element.d.ts +0 -6
  551. package/dist-types/components/Portal/portal-namespace.d.ts +0 -1
  552. package/dist-types/components/Portal/portal.d.ts +0 -7
  553. package/dist-types/components/Price/index.d.ts +0 -4
  554. package/dist-types/components/PriceTable/index.d.ts +0 -7
  555. package/dist-types/components/PriceTable/wrapper.d.ts +0 -4
  556. package/dist-types/components/ProductCard/index.d.ts +0 -18
  557. package/dist-types/components/ProductCard/wrapper.d.ts +0 -21
  558. package/dist-types/components/ProductPage/index.d.ts +0 -9
  559. package/dist-types/components/ProgressBar/index.d.ts +0 -8
  560. package/dist-types/components/ProgressBar/wrapper.d.ts +0 -6
  561. package/dist-types/components/RangeSlider/RangeSliderSimple.d.ts +0 -13
  562. package/dist-types/components/RangeSlider/SliderWithLabel.d.ts +0 -13
  563. package/dist-types/components/RangeSlider/handle.d.ts +0 -9
  564. package/dist-types/components/RangeSlider/index.d.ts +0 -13
  565. package/dist-types/components/RangeSlider/track.d.ts +0 -9
  566. package/dist-types/components/RangeSlider/wrapper.d.ts +0 -11
  567. package/dist-types/components/RangeSliderLabel/index.d.ts +0 -8
  568. package/dist-types/components/RangeSliderLabel/wrapper.d.ts +0 -10
  569. package/dist-types/components/Repeat/index.d.ts +0 -3
  570. package/dist-types/components/Result/index.d.ts +0 -6
  571. package/dist-types/components/Result/wrapper.d.ts +0 -9
  572. package/dist-types/components/Root/index.d.ts +0 -4
  573. package/dist-types/components/SearchBar/index.d.ts +0 -8
  574. package/dist-types/components/SearchFilter/index.d.ts +0 -3
  575. package/dist-types/components/SearchTerm/index.d.ts +0 -8
  576. package/dist-types/components/SearchTerm/wrapper.d.ts +0 -7
  577. package/dist-types/components/SectionHeader/index.d.ts +0 -8
  578. package/dist-types/components/SectionHeader/wrapper.d.ts +0 -3
  579. package/dist-types/components/Snackbar/index.d.ts +0 -9
  580. package/dist-types/components/Snackbar/wrapper.d.ts +0 -11
  581. package/dist-types/components/SortSelect/index.d.ts +0 -14
  582. package/dist-types/components/SortSelect/wrapper.d.ts +0 -6
  583. package/dist-types/components/Sphere/Sphere.d.ts +0 -10
  584. package/dist-types/components/Sphere/SphereLightbox.d.ts +0 -6
  585. package/dist-types/components/Sphere/SphereViewer.d.ts +0 -10
  586. package/dist-types/components/Sphere/wrapper.d.ts +0 -1
  587. package/dist-types/components/SrOnly/index.d.ts +0 -1
  588. package/dist-types/components/SwitchBar/index.d.ts +0 -10
  589. package/dist-types/components/SwitchBar/wrapper.d.ts +0 -14
  590. package/dist-types/components/TableColumn/index.d.ts +0 -3
  591. package/dist-types/components/TableList/index.d.ts +0 -6
  592. package/dist-types/components/Tabs/index.d.ts +0 -12
  593. package/dist-types/components/Tabs/wrapper.d.ts +0 -12
  594. package/dist-types/components/ThreeSixty/Rotation.d.ts +0 -6
  595. package/dist-types/components/ThreeSixty/ThreeSixtLightbox.d.ts +0 -6
  596. package/dist-types/components/ThreeSixty/ThreeSixty.d.ts +0 -9
  597. package/dist-types/components/UspList/index.d.ts +0 -11
  598. package/dist-types/components/UspList/wrapper.d.ts +0 -11
  599. package/dist-types/components/Utility/index.d.ts +0 -8
  600. package/dist-types/components/Video/CustomPlayer.d.ts +0 -10
  601. package/dist-types/components/Video/EmbeddedVideoLightbox.d.ts +0 -8
  602. package/dist-types/components/Video/EmbededVideo.d.ts +0 -8
  603. package/dist-types/components/Video/QuickNavEmbeded.d.ts +0 -7
  604. package/dist-types/components/Video/QuickNavVideo.d.ts +0 -7
  605. package/dist-types/components/Video/Video.d.ts +0 -5
  606. package/dist-types/components/Video/VimeoPlayer.d.ts +0 -7
  607. package/dist-types/components/Video/YoutubePlayer.d.ts +0 -7
  608. package/dist-types/components/Video/useThumbnail.d.ts +0 -2
  609. package/dist-types/components/Video/utils.d.ts +0 -9
  610. package/dist-types/components/Video/wrapper.d.ts +0 -11
  611. package/dist-types/hooks/useEcom.d.ts +0 -3
  612. package/dist-types/hooks/useFetch.d.ts +0 -7
  613. package/dist-types/hooks/useHasBeenVisible.d.ts +0 -2
  614. package/dist-types/hooks/useHashGuid.d.ts +0 -2
  615. package/dist-types/hooks/useInsurance.d.ts +0 -4
  616. package/dist-types/hooks/useLoan.d.ts +0 -4
  617. package/dist-types/hooks/useOnScreen.d.ts +0 -2
  618. package/dist-types/hooks/useOutsideClick.d.ts +0 -2
  619. package/dist-types/hooks/usePrevious.d.ts +0 -2
  620. package/dist-types/hooks/useSearchItem.d.ts +0 -4
  621. package/dist-types/hooks/useSearchItemBranch.d.ts +0 -4
  622. package/dist-types/hooks/useSessionStorage.d.ts +0 -7
  623. package/dist-types/hooks/useVimeoThumbnail.d.ts +0 -2
  624. package/dist-types/index.d.ts +0 -18
  625. package/dist-types/layout/helpers.d.ts +0 -1
  626. package/dist-types/layout/keyframes.d.ts +0 -3
  627. package/dist-types/layout/theme.d.ts +0 -40
  628. package/dist-types/layouts/WaykeComposite.d.ts +0 -6
  629. package/dist-types/layouts/WaykeCompositeWithProvider.d.ts +0 -9
  630. package/dist-types/layouts/search/index.d.ts +0 -15
  631. package/dist-types/layouts/searchItem/Branch.d.ts +0 -8
  632. package/dist-types/layouts/searchItem/BranchModal.d.ts +0 -9
  633. package/dist-types/layouts/searchItem/CheckList.d.ts +0 -13
  634. package/dist-types/layouts/searchItem/ManufacturerPackagesOption.d.ts +0 -7
  635. package/dist-types/layouts/searchItem/MetadataItem.d.ts +0 -10
  636. package/dist-types/layouts/searchItem/PackageOptionModal.d.ts +0 -17
  637. package/dist-types/layouts/searchItem/PackageOptions.d.ts +0 -7
  638. package/dist-types/layouts/searchItem/Page404.d.ts +0 -3
  639. package/dist-types/layouts/searchItem/PageLoading.d.ts +0 -3
  640. package/dist-types/layouts/searchItem/Property.d.ts +0 -8
  641. package/dist-types/layouts/searchItem/Related.d.ts +0 -9
  642. package/dist-types/layouts/searchItem/index.d.ts +0 -12
  643. package/dist-types/providers/WaykeItemProvidet.d.ts +0 -22
  644. package/dist-types/providers/WaykeProvider.d.ts +0 -24
  645. package/dist-types/providers/graphqlProvider.d.ts +0 -6
  646. package/dist-types/providers/themeProvider.d.ts +0 -6
  647. package/dist-types/queries/INSURANCE_CALCULATION.d.ts +0 -2
  648. package/dist-types/queries/LOAN_CALCULATION.d.ts +0 -2
  649. package/dist-types/queries/SEARCH_ITEM_BRANCH_QUERY.d.ts +0 -2
  650. package/dist-types/queries/SEARCH_ITEM_QUERY.d.ts +0 -2
  651. package/dist-types/utils/constants.d.ts +0 -62
  652. package/dist-types/utils/converters.d.ts +0 -1
  653. package/dist-types/utils/deep-copy.d.ts +0 -5
  654. package/dist-types/utils/formats.d.ts +0 -8
  655. package/dist-types/utils/metadata.min.d.ts +0 -11
  656. package/dist-types/utils/phonenumbers.d.ts +0 -1
  657. package/dist-types/utils/pubsub/Actions.d.ts +0 -16
  658. package/dist-types/utils/pubsub/Events.d.ts +0 -51
  659. package/dist-types/utils/pubsub/pubsub.d.ts +0 -32
  660. package/dist-types/utils/regex.d.ts +0 -3
  661. package/dist-types/utils/sortOptions.d.ts +0 -11
  662. package/dist-types/utils/specification.d.ts +0 -28
  663. package/dist-types/utils/ssn.d.ts +0 -1
  664. package/dist-types/utils/url.d.ts +0 -1
  665. package/dist-types/utils/vehicle-properties/compare-basic-properties.d.ts +0 -3
  666. package/dist-types/utils/vehicle-properties/compare-categories.d.ts +0 -3
  667. package/dist-types/utils/vehicle-properties/compare-properties.d.ts +0 -3
  668. package/dist-types/utils/vehicle-properties/custom-property-adder.d.ts +0 -12
  669. package/dist-types/utils/vehicle-properties/property-hint-enricher.d.ts +0 -10
  670. package/dist-types/utils/vehicle-properties/property-remover.d.ts +0 -7
  671. package/dist-types/utils/vehicle-properties/property-tree-creator.d.ts +0 -31
  672. package/dist-types/utils/vehicle-properties/property-tree-sorter.d.ts +0 -3
  673. package/dist-web/index.js +0 -7628
  674. package/dist-web/index.js.map +0 -1
@@ -0,0 +1,581 @@
1
+ import { notEmpty, dateTimeFormat, numberSeparator } from './formats';
2
+ import { VehicleData } from '../@types/codegen';
3
+
4
+ export interface ItemPropertModalType {
5
+ title: string;
6
+ text: string;
7
+ }
8
+
9
+ export interface ItemPropertyType {
10
+ label: string;
11
+ value: string | null;
12
+ modal?: ItemPropertModalType;
13
+ }
14
+
15
+ type ValueTypes =
16
+ | number
17
+ | string
18
+ | null
19
+ | undefined
20
+ | string[]
21
+ | boolean
22
+ | { [key: string]: string | number | boolean };
23
+
24
+ export interface SpecPropertyType {
25
+ label?: string;
26
+ formatLabel?: (item: VehicleData) => string;
27
+ formatData?: (value: ValueTypes, item: VehicleData) => string | null;
28
+ modal?: {
29
+ title?: string;
30
+ dynamicTitle?: (item: VehicleData) => string;
31
+ text?: string;
32
+ dynamicText?: (item: VehicleData) => string;
33
+ nonConcatablePropValue?: string;
34
+ concatPropValue?: string;
35
+ };
36
+ }
37
+
38
+ const isElectric = (item: VehicleData): boolean =>
39
+ !!item.fuelType && item.fuelType.toLowerCase() === 'el';
40
+ const getFuelConsumption = (value: ValueTypes, item: VehicleData): string | null => {
41
+ if (!value) return null;
42
+
43
+ return isElectric(item) ? `${value} kWh/100 km` : `${value} liter/100 km`;
44
+ };
45
+
46
+ const specLabels: { [key: string]: SpecPropertyType } = {
47
+ manufacturer: { label: 'Varumärke' },
48
+ manufactureYear: {
49
+ label: 'Tillverkningsår',
50
+ modal: {
51
+ title: 'Tillverkningsår',
52
+ text: 'Året bilen tillverkades.',
53
+ },
54
+ },
55
+ modelSeries: { label: 'Modell' },
56
+ modelName: {
57
+ label: 'Version',
58
+ modal: {
59
+ title: 'Version',
60
+ text: 'Vilket utförande av bilmodellen det är.',
61
+ },
62
+ },
63
+ modelYear: {
64
+ label: 'Modellår',
65
+ modal: {
66
+ title: 'Modellår',
67
+ text: '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.',
68
+ },
69
+ },
70
+ mileage: {
71
+ label: 'Mätarställning',
72
+ formatData: (value: ValueTypes, _: VehicleData): string | null =>
73
+ (value || -1) >= 0 ? `${numberSeparator(value as number)} mil` : null,
74
+ modal: {
75
+ title: 'Mätarställning',
76
+ text: 'Antal mil som bilen har körts. I bilen anges det i kilometer istället.',
77
+ },
78
+ },
79
+ registrationNumber: {
80
+ label: 'Registreringsnummer',
81
+ },
82
+ vinNumber: { label: 'Chassinummer/VIN' },
83
+ chassis: {
84
+ label: 'Kaross',
85
+ modal: {
86
+ title: 'Kaross',
87
+ text: 'Vilken typ/form bilen har. ',
88
+ },
89
+ },
90
+ colorName: { label: 'Färg' },
91
+ enginePower: {
92
+ label: 'Effekt',
93
+ formatData: (value: ValueTypes, _: VehicleData): string | null =>
94
+ value ? `${value} hk` : null,
95
+ },
96
+ engineCylinders: {
97
+ label: 'Cylindrar',
98
+ modal: {
99
+ title: 'Cylindrar',
100
+ text: 'Antalet ger en indikation på motorns storlek. Ett "vanligt" antal ligger på 4 st.',
101
+ },
102
+ },
103
+ engineVolume: {
104
+ label: 'Motorvolym',
105
+ formatData: (value: ValueTypes, _: VehicleData): string | null =>
106
+ value ? `${value} cm3` : null,
107
+ modal: {
108
+ title: 'Motorvolym',
109
+ text: 'Den sammanlagda volymen av motorns cylindrar. Mäts i kubikcentimeter.',
110
+ },
111
+ },
112
+ maxSpeed: {
113
+ label: 'Toppfart',
114
+ formatData: (value: ValueTypes, _: VehicleData): string | null =>
115
+ value ? `${value} km/h` : null,
116
+ modal: {
117
+ title: 'Toppfart',
118
+ text: 'Högsta hastigheten som bilen går att köra.',
119
+ },
120
+ },
121
+ drivingWheel: {
122
+ label: 'Drivhjul',
123
+ modal: {
124
+ title: 'Drivhjul',
125
+ text: 'Vilka hjul som motorn ger kraft till och snurrar.',
126
+ },
127
+ },
128
+ torque: {
129
+ label: 'Vridmoment',
130
+ formatData: (value: ValueTypes, _: VehicleData): string | null =>
131
+ value ? `${value} Nm` : null,
132
+ modal: {
133
+ title: 'Vridmoment',
134
+ text: 'Bilens vridkraft. Hög siffra möjliggör att t.ex. dra tunga släp. Dieselmotorer har generellt mer vridmoment.',
135
+ },
136
+ },
137
+ acceleration: {
138
+ label: 'Acceleration 0-100 km/h',
139
+ formatData: (value: ValueTypes, _: VehicleData): string | null =>
140
+ value ? `${value} sek` : null,
141
+ modal: {
142
+ title: 'Acceleration 0-100 km/h',
143
+ text: 'Antal sekunder som bilen behöver för att ta sig till 100 km/h.',
144
+ },
145
+ },
146
+ gearbox: { label: 'Växellåda' },
147
+ gearboxType: { label: 'Växellåda' },
148
+ fuelType: {
149
+ label: 'Bränslegrupp',
150
+ modal: {
151
+ title: 'Bränslegrupp',
152
+ text: 'Vad bilen ska tankas med och drivs av.',
153
+ },
154
+ },
155
+ seats: {
156
+ label: 'Säten',
157
+ modal: {
158
+ title: 'Säten',
159
+ text: 'Antal personer som får åka i bilen.',
160
+ },
161
+ },
162
+ segment: {
163
+ label: 'Segment',
164
+ modal: {
165
+ title: 'Segment',
166
+ text: 'Vilken typ av bil det handlar om - t.ex. familjebil',
167
+ },
168
+ },
169
+ status: { label: 'Status' },
170
+ imported: {
171
+ label: 'Import/införsel',
172
+ formatData: (value: ValueTypes, _: VehicleData): string | null => (value ? 'Ja' : null),
173
+ },
174
+ firstRegistrationDate: {
175
+ label: 'Först registrerad',
176
+ formatData: (value: ValueTypes, _: VehicleData): string | null =>
177
+ value ? dateTimeFormat.format(`${value}`, dateTimeFormat.YearMonth) : null,
178
+ },
179
+ firstInService: {
180
+ label: 'Först i trafik',
181
+ formatData: (value: ValueTypes, _: VehicleData): string | null =>
182
+ value ? dateTimeFormat.format(`${value}`, dateTimeFormat.YearMonth) : null,
183
+ },
184
+ height: {
185
+ label: 'Längd/höjd/bredd',
186
+ formatData: (_: ValueTypes, data: VehicleData): string | null =>
187
+ `${data?.properties?.length || '-'} cm/${data?.properties?.height || '-'} cm/${
188
+ data?.properties?.width || '-'
189
+ } cm`,
190
+ },
191
+ serviceWeight: {
192
+ label: 'Tjänstevikt',
193
+ formatData: (value: ValueTypes, _: VehicleData): string | null =>
194
+ value ? `${numberSeparator(value as number)} kg` : null,
195
+ modal: {
196
+ title: 'Tjänstevikt',
197
+ text: 'Anger hur mycket bilen väger med en passagerare som väger ca 75kg.',
198
+ },
199
+ },
200
+ maxTotalWeight: {
201
+ label: 'Maxlast',
202
+ formatData: (value: ValueTypes, _: VehicleData): string | null =>
203
+ value ? `${numberSeparator(value as number)} kg` : null,
204
+ },
205
+ maxRoofWeight: {
206
+ label: 'Max taklast',
207
+ formatData: (value: ValueTypes, _: VehicleData): string | null =>
208
+ value ? `${numberSeparator(value as number)} kg` : null,
209
+ modal: {
210
+ title: 'Max taklast',
211
+ text: 'Hur många kilo last taket klarar av.',
212
+ },
213
+ },
214
+ trailerWeight: {
215
+ label: 'Max släpvagnsvikt',
216
+ formatData: (value: ValueTypes, _: VehicleData): string | null =>
217
+ value ? `${numberSeparator(value as number)} kg` : null,
218
+ },
219
+ trailerTotalWeightB: {
220
+ label: 'Totalvikt släp, B',
221
+ formatData: (value: ValueTypes, _: VehicleData): string | null =>
222
+ value ? `${numberSeparator(value as number)} kg` : null,
223
+ modal: {
224
+ title: 'Totalvikt släp, B',
225
+ text: 'Vikten man får dra med släp och ett vanligt B-körkort',
226
+ },
227
+ },
228
+ trailerTotalWeightBPlus: {
229
+ label: 'Totalvikt släp, B+',
230
+ formatData: (value: ValueTypes, _: VehicleData): string | null =>
231
+ value ? `${numberSeparator(value as number)} kg` : null,
232
+ modal: {
233
+ title: 'Totalvikt släp, B+',
234
+ text: 'Vikten man får dra med släp och ett utökat B-körkort',
235
+ },
236
+ },
237
+ groundClearence: {
238
+ label: 'Markfrigång',
239
+ formatData: (value: ValueTypes, _: VehicleData): string | null =>
240
+ value ? `${value} cm` : null,
241
+ modal: {
242
+ title: 'Markfrigång',
243
+ text: 'Avståndet mellan bilens undersida och marken.',
244
+ },
245
+ },
246
+ trunkSpace: {
247
+ label: 'Bagageutrymme - normalt',
248
+ formatData: (value: ValueTypes, _: VehicleData): string | null =>
249
+ value ? `${value} liter` : null,
250
+ modal: {
251
+ title: 'Bagageutrymme - normalt',
252
+ text: 'Volym på bagageutrymmet med uppfällda säten. Det mäts i liter.',
253
+ },
254
+ },
255
+ tankVolume: {
256
+ formatLabel: (item: VehicleData): string =>
257
+ isElectric(item) ? 'Batterikapacitet' : 'Volym, bränsletank',
258
+ formatData: (value: ValueTypes, data: VehicleData): string | null => {
259
+ if (!value) return null;
260
+
261
+ return isElectric(data) ? `${value} kWh` : `${value} liter`;
262
+ },
263
+
264
+ modal: {
265
+ dynamicTitle: (item: VehicleData): string =>
266
+ isElectric(item) ? 'Batterikapacitet' : 'Volym, bränsletank',
267
+ dynamicText: (item: VehicleData): string =>
268
+ isElectric(item)
269
+ ? 'Batteriets kapacitet i kilowattimmar'
270
+ : 'Antal liter bränsle som ryms i tanken.',
271
+ },
272
+ },
273
+ wheelBase: {
274
+ label: 'Hjulbas',
275
+ formatData: (value: ValueTypes, _: VehicleData): string | null =>
276
+ value ? `${value} cm` : null,
277
+ modal: {
278
+ title: 'Hjulbas',
279
+ text: 'Avståndet mellan fram- och bakhjul.',
280
+ },
281
+ },
282
+ tiresFront: { label: 'Däck, fram' },
283
+ tiresRear: { label: 'Däck, bak' },
284
+ drivingNoise: { label: 'Ljudnivå' },
285
+ payload: { label: 'Godsvikt' },
286
+ trailerWeightWithoutBreaks: { label: 'Totalvikt släp, utan bromsar' },
287
+ co2: {
288
+ label: 'CO2',
289
+ formatData: (value: ValueTypes, _: VehicleData): string | null =>
290
+ value ? `${value} g/km` : null,
291
+ modal: {
292
+ title: 'C02',
293
+ text: 'Anger hur mycket koldioxid fordonet släpper ut.',
294
+ },
295
+ },
296
+ environmentClass: {
297
+ label: 'Miljöklass',
298
+ modal: {
299
+ title: 'Miljöklass',
300
+ text: 'Används för att ställa krav på fordonets utsläpp.',
301
+ },
302
+ },
303
+ vehicleCategoryEU: { label: 'EU-kategori' },
304
+ fuelConsumptionMixedDriving: {
305
+ label: 'Bränsleförbrukning, blandad',
306
+ formatData: getFuelConsumption,
307
+ modal: {
308
+ title: 'Bränsleförbrukning, blandad',
309
+ text: 'Bränsleförbrukning vid blandad körning. Dvs. stadskörning och landsvägskörning under en och samma färd.',
310
+ },
311
+ },
312
+ fuelConsumptionCityDriving: {
313
+ label: 'Bränsleförbrukning, stad',
314
+ formatData: getFuelConsumption,
315
+ modal: {
316
+ title: 'Bränsleförbrukning, stad',
317
+ text: 'Bränsleförbrukning vid stadskörning.',
318
+ },
319
+ },
320
+ fuelConsumptionCountryRoadDriving: {
321
+ label: 'Bränsleförbrukning, landsväg',
322
+ formatData: getFuelConsumption,
323
+ modal: {
324
+ title: 'Bränsleförbrukning, landsväg',
325
+ text: 'Bränsleförbrukning vid landsvägskörning.',
326
+ },
327
+ },
328
+ nox: { label: 'Nox' },
329
+ thcNox: { label: 'THC Nox' },
330
+ ncapStar: {
331
+ label: 'Euro NCAP stjärnor',
332
+ modal: {
333
+ title: 'Euro NCAP stjärnor',
334
+ text: 'Universiellt säkerhetsbetyg, fler stjärnor innebär högre säkerhet.',
335
+ },
336
+ },
337
+ ncapYear: {
338
+ label: 'Testår',
339
+ modal: {
340
+ title: 'Testår',
341
+ text: 'Året som bilen säkerhets- och krocktestades.',
342
+ },
343
+ },
344
+ ncapMonth: { label: 'Testmånad' },
345
+ abs: {
346
+ label: 'ABS',
347
+ formatData: (value: ValueTypes, _: VehicleData): string | null => (value ? 'Ja' : null),
348
+ modal: {
349
+ title: 'ABS',
350
+ text: 'Förhindrar att bromsarna låser sig och reducerar bromssträckan.',
351
+ },
352
+ },
353
+ espSystem: {
354
+ label: 'Antisladd (ESP/DSTC/VSC/ASC)',
355
+ formatData: (value: ValueTypes, _: VehicleData): string | null => (value ? 'Ja' : null),
356
+ },
357
+ trcSystem: {
358
+ label: 'Antispinn',
359
+ formatData: (value: ValueTypes, _: VehicleData): string | null => (value ? 'Ja' : null),
360
+ modal: {
361
+ title: 'Antispinn',
362
+ text: 'Får bilen att skicka kraft till hjulet som har bästa kontakt med underlaget.',
363
+ },
364
+ },
365
+ isofixRearSeat: {
366
+ label: 'Isofix bak',
367
+ formatData: (value: ValueTypes, _: VehicleData): string | null => (value ? 'Ja' : null),
368
+ modal: {
369
+ title: 'Isofix bak',
370
+ text: 'Universiell fästanordning för barnstolar.',
371
+ },
372
+ },
373
+ airbagDriver: {
374
+ label: 'Airbag, förare',
375
+ formatData: (value: ValueTypes, _: VehicleData): string | null => (value ? 'Ja' : null),
376
+ modal: {
377
+ title: 'Airbag, förare',
378
+ text: 'Krockkudde för föraren.',
379
+ },
380
+ },
381
+ airbagPassenger: {
382
+ label: 'Airbag, passagerare',
383
+ formatData: (value: ValueTypes, _: VehicleData): string | null => (value ? 'Ja' : null),
384
+ modal: {
385
+ title: 'Airbag, passagerare',
386
+ text: 'Krockkudde för passagerare.',
387
+ },
388
+ },
389
+ airbagFrontSide: {
390
+ label: 'Airbag, sida fram',
391
+ formatData: (value: ValueTypes, _: VehicleData): string | null => (value ? 'Ja' : null),
392
+ },
393
+ brakeAssistance: {
394
+ label: 'Bromsassistans (Panikbroms - BA/EBA/BAS/AFU)',
395
+ formatData: (value: ValueTypes, _: VehicleData): string | null => (value ? 'Ja' : null),
396
+ modal: {
397
+ title: 'Bromsassistans (Panikbroms - BA/EBA/BAS/AFU)',
398
+ text: 'Säkerhetssystem som kan hjälpa till att bromsa och undvika olyckor. ',
399
+ },
400
+ },
401
+ tco3yrs: {
402
+ label: 'TCO, 3 år 2500 mil/år',
403
+ formatData: (value: ValueTypes, _: VehicleData): string | null => (value ? 'Ja' : null),
404
+ },
405
+ annualTax: {
406
+ label: 'Skatt',
407
+ formatData: (value: ValueTypes, _: VehicleData): string | null =>
408
+ value ? `${value} kr/år` : null,
409
+ modal: {
410
+ title: 'Skatt',
411
+ text: 'Summan fordonsskatt som måste betalas varje år.',
412
+ },
413
+ },
414
+ annualMalus: {
415
+ label: 'Skatt (Malus)',
416
+ formatData: (value: ValueTypes, _: VehicleData): string | null =>
417
+ value ? `${value} kr/år` : null,
418
+ modal: {
419
+ title: 'Malus - förhöjd fordonsskatt',
420
+ text: 'Bilen har en förhöjd skatt de tre första åren och därefter gäller ordinarie skatt på {insertValue}.',
421
+ nonConcatablePropValue:
422
+ 'Bilen har en förhöjd skatt de tre första åren och därefter gäller ordinarie skatt.',
423
+ concatPropValue: 'annualTax',
424
+ },
425
+ },
426
+ annualBonus: {
427
+ label: 'Bonus',
428
+ formatData: (value: ValueTypes, _: VehicleData): string | null =>
429
+ value ? `${value} kr` : null,
430
+ modal: {
431
+ title: 'Bonus - för nya bilar med låga utsläpp',
432
+ text: 'Det här fordonet är berättigat till klimatbonus. Bonusen för denna bil är {annualBonus} och 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.',
433
+ concatPropValue: 'annualBonus',
434
+ },
435
+ },
436
+ };
437
+
438
+ const All = [
439
+ 'manufacturer',
440
+ 'modelSeries',
441
+ 'modelName',
442
+ 'manufactureYear',
443
+ 'mileage',
444
+ 'gearboxType',
445
+ 'enginePower',
446
+ 'drivingWheel',
447
+ 'fuelType',
448
+ 'seats',
449
+ 'colorName',
450
+ 'registrationNumber',
451
+ 'chassis',
452
+ 'engineCylinders',
453
+ 'engineVolume',
454
+ 'maxSpeed',
455
+ 'torque',
456
+ 'acceleration',
457
+ 'modelYear',
458
+ 'vinNumber',
459
+ 'segment',
460
+ 'status',
461
+ 'imported',
462
+ 'firstRegistrationDate',
463
+ 'firstInService',
464
+ 'height',
465
+ 'serviceWeight',
466
+ 'maxTotalWeight',
467
+ 'maxRoofWeight',
468
+ 'trailerWeight',
469
+ 'trailerTotalWeightB',
470
+ 'trailerTotalWeightBPlus',
471
+ 'groundClearence',
472
+ 'trunkSpace',
473
+ 'tankVolume',
474
+ 'wheelBase',
475
+ 'tiresFront',
476
+ 'tiresRear',
477
+ 'drivingNoise',
478
+ 'payload',
479
+ 'trailerWeightWithoutBreaks',
480
+ 'co2',
481
+ 'environmentClass',
482
+ 'vehicleCategoryEU',
483
+ 'fuelConsumptionMixedDriving',
484
+ 'fuelConsumptionCityDriving',
485
+ 'fuelConsumptionCountryRoadDriving',
486
+ 'nox',
487
+ 'thcNox',
488
+ 'ncapStar',
489
+ 'ncapYear',
490
+ 'ncapMonth',
491
+ 'abs',
492
+ 'espSystem',
493
+ 'trcSystem',
494
+ 'isofixRearSeat',
495
+ 'airbagDriver',
496
+ 'airbagPassenger',
497
+ 'airbagFrontSide',
498
+ 'brakeAssistance',
499
+ 'tco3yrs',
500
+ 'annualTax',
501
+ 'annualMalus',
502
+ 'annualBonus',
503
+ ] as const;
504
+
505
+ type KEYS = typeof All[number];
506
+ type ITEM_KEYS = keyof VehicleData;
507
+
508
+ const extractSpecData = (key: KEYS, item: VehicleData): ItemPropertyType | null => {
509
+ const spec = specLabels[key];
510
+ let data:
511
+ | number
512
+ | string
513
+ | null
514
+ | undefined
515
+ | string[]
516
+ | boolean
517
+ | { [key: string]: string | number | boolean } = null;
518
+
519
+ if (!!item[key as ITEM_KEYS] || (item[key as ITEM_KEYS] || -1) > -1) {
520
+ data = item[key as ITEM_KEYS];
521
+ } else if (
522
+ !!item?.properties?.[key] ||
523
+ (typeof item?.properties?.[key] === 'number' && (item?.properties?.[key] || -1) > -1)
524
+ ) {
525
+ data = item.properties[key];
526
+ }
527
+
528
+ if (!spec || !data) {
529
+ return null;
530
+ }
531
+
532
+ let label: string = '';
533
+ if (spec.formatLabel) {
534
+ label = spec.formatLabel(item);
535
+ } else if (spec.label) {
536
+ label = spec.label;
537
+ }
538
+
539
+ let value: string | null = '';
540
+ if (spec.formatData) {
541
+ value = spec.formatData(data, item);
542
+ } else {
543
+ value = `${data}`;
544
+ }
545
+
546
+ const modal = spec.modal ? { title: '', text: '' } : undefined;
547
+ if (modal) {
548
+ if (spec.modal?.dynamicTitle) {
549
+ modal.title = spec.modal.dynamicTitle(item);
550
+ } else if (spec.modal?.title) {
551
+ modal.title = spec.modal.title;
552
+ }
553
+
554
+ if (spec.modal?.dynamicText) {
555
+ modal.text = spec.modal.dynamicText(item);
556
+ } else if (spec.modal?.text) {
557
+ modal.text = spec.modal.text;
558
+ }
559
+
560
+ if (spec.modal?.concatPropValue) {
561
+ const concatObj =
562
+ spec.modal.concatPropValue === key
563
+ ? { value }
564
+ : extractSpecData(spec.modal.concatPropValue as KEYS, item);
565
+ if (concatObj?.value) {
566
+ modal.text = modal.text.replace('{insertValue}', concatObj.value);
567
+ } else if (spec.modal.nonConcatablePropValue) {
568
+ modal.text = spec.modal.nonConcatablePropValue;
569
+ }
570
+ }
571
+ }
572
+
573
+ return {
574
+ label,
575
+ value,
576
+ modal,
577
+ };
578
+ };
579
+
580
+ export const getSpecificationList = (item: VehicleData): ItemPropertyType[] =>
581
+ All.map((x: KEYS) => extractSpecData(x, item)).filter(notEmpty);
@@ -0,0 +1 @@
1
+ export const ssnIsValid = (s?: string) => (s ? /^\d{2,4}\d{2}\d{2}\-?\d{4}$/.test(s) : false);
File without changes
@@ -0,0 +1,63 @@
1
+ import { Property } from '../../@types/vehicle-properties';
2
+
3
+ import compareProperties from './compare-properties';
4
+
5
+ interface Order {
6
+ Varumärke: 1;
7
+ Modell: 2;
8
+ Version: 3;
9
+ Modellår: 4;
10
+ Tillverkningsår: 5;
11
+ Mätarställning: 6;
12
+ Växellåda: 7;
13
+ Färg: 8;
14
+ Registreringsnummer: 9;
15
+ Bränslegrupp: 10;
16
+ Kaross: 11;
17
+ Segment: 12;
18
+ Skatt: 13;
19
+ Malus: 14;
20
+ Bonus: 15;
21
+ }
22
+
23
+ const ORDER: Order = Object.freeze({
24
+ Varumärke: 1,
25
+ Modell: 2,
26
+ Version: 3,
27
+ Modellår: 4,
28
+ Tillverkningsår: 5,
29
+ Mätarställning: 6,
30
+ Växellåda: 7,
31
+ Färg: 8,
32
+ Registreringsnummer: 9,
33
+ Bränslegrupp: 10,
34
+ Kaross: 11,
35
+ Segment: 12,
36
+ Skatt: 13,
37
+ Malus: 14,
38
+ Bonus: 15,
39
+ });
40
+
41
+ type OrderKey = keyof Order;
42
+
43
+ const compareByPredefinedOrder = (firstId: string, secondId: string) => {
44
+ const firstOrder = ORDER[firstId as OrderKey] || Number.MAX_SAFE_INTEGER;
45
+ const secondOrder = ORDER[secondId as OrderKey] || Number.MAX_SAFE_INTEGER;
46
+
47
+ if (firstOrder < secondOrder) {
48
+ return -1;
49
+ } else if (secondOrder < firstOrder) {
50
+ return 1;
51
+ }
52
+ return 0;
53
+ };
54
+
55
+ export default (first: Property, second: Property) => {
56
+ const result = compareByPredefinedOrder(`${first.name}`, `${second.name}`);
57
+
58
+ if (result !== 0) {
59
+ return result;
60
+ }
61
+
62
+ return compareProperties(first, second);
63
+ };
@@ -0,0 +1,45 @@
1
+ import { Category } from '../../@types/vehicle-properties';
2
+
3
+ interface ID_ORDER_TYPE {
4
+ '1000': 1;
5
+ '71': 2;
6
+ '2': 3;
7
+ '1': 4;
8
+ '8': 5;
9
+ '6': 6;
10
+ '119': 7;
11
+ }
12
+
13
+ const ID_ORDER: ID_ORDER_TYPE = Object.freeze({
14
+ '1000': 1,
15
+ '71': 2,
16
+ '2': 3,
17
+ '1': 4,
18
+ '8': 5,
19
+ '6': 6,
20
+ '119': 7,
21
+ });
22
+
23
+ type ID_ORDER_KEY = keyof ID_ORDER_TYPE;
24
+
25
+ const compareById = (firstId: string, secondId: string) => {
26
+ const firstOrder = ID_ORDER[firstId as ID_ORDER_KEY] || Number.MAX_SAFE_INTEGER;
27
+ const secondOrder = ID_ORDER[secondId as ID_ORDER_KEY] || Number.MAX_SAFE_INTEGER;
28
+
29
+ if (firstOrder < secondOrder) {
30
+ return -1;
31
+ } else if (secondOrder < firstOrder) {
32
+ return 1;
33
+ }
34
+ return 0;
35
+ };
36
+
37
+ export default (first: Category, second: Category) => {
38
+ const result = compareById(`${first.id}`, `${second.id}`);
39
+
40
+ if (result !== 0) {
41
+ return result;
42
+ }
43
+
44
+ return first.name.localeCompare(second.name);
45
+ };
@@ -0,0 +1,5 @@
1
+ import { Property } from '../../@types/vehicle-properties';
2
+
3
+ export default (first: Property, second: Property) => {
4
+ return first.name.localeCompare(second.name);
5
+ };