@bytebrand/fe-ui-core-autobahn 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (628) hide show
  1. package/assets/autode-logo.svg +7 -0
  2. package/cards/CarCard.tsx +174 -0
  3. package/cards/CarRow.tsx +182 -0
  4. package/cards/cardParts.tsx +489 -0
  5. package/cards/index.ts +35 -0
  6. package/cards/types.ts +114 -0
  7. package/chrome/Footer.tsx +189 -0
  8. package/chrome/TopBar.tsx +405 -0
  9. package/chrome/index.ts +20 -0
  10. package/chrome/svg.d.ts +11 -0
  11. package/compat/AccardionSection/AccardionSection.styl +45 -0
  12. package/compat/AccardionSection/AccardionSection.tsx +56 -0
  13. package/compat/AccordionWidget/AccordionWidget.styl +221 -0
  14. package/compat/AccordionWidget/AccordionWidget.tsx +257 -0
  15. package/compat/AccordionWrapper/AccordionItem/AccordionItem.styl +34 -0
  16. package/compat/AccordionWrapper/AccordionItem/AccordionItem.tsx +64 -0
  17. package/compat/AccordionWrapper/AccordionWrapper.tsx +34 -0
  18. package/compat/AdvantageItem/AdvantageItem.styl +47 -0
  19. package/compat/AdvantageItem/AdvantageItem.tsx +26 -0
  20. package/compat/Alternative/DealerInfo.styl +116 -0
  21. package/compat/Alternative/DealerInfo.tsx +171 -0
  22. package/compat/Badge/Badge.styl +44 -0
  23. package/compat/Badge/Badge.tsx +25 -0
  24. package/compat/BodyTypeIcons/Audi.tsx +9 -0
  25. package/compat/BodyTypeIcons/Bmw.tsx +860 -0
  26. package/compat/BodyTypeIcons/Ford.tsx +31 -0
  27. package/compat/BodyTypeIcons/IconsConfig.tsx +44 -0
  28. package/compat/BodyTypeIcons/IconsConfigCompact.tsx +30 -0
  29. package/compat/BodyTypeIcons/Mazda.tsx +44 -0
  30. package/compat/BodyTypeIcons/MercedesBenz.tsx +38 -0
  31. package/compat/BodyTypeIcons/Opel.tsx +19 -0
  32. package/compat/BodyTypeIcons/Search.tsx +19 -0
  33. package/compat/BodyTypeIcons/SelectorCategoryCombi.tsx +68 -0
  34. package/compat/BodyTypeIcons/SelectorCategoryCompact.tsx +20 -0
  35. package/compat/BodyTypeIcons/SelectorCategoryConvertible.tsx +68 -0
  36. package/compat/BodyTypeIcons/SelectorCategoryCoupe.tsx +60 -0
  37. package/compat/BodyTypeIcons/SelectorCategoryMinibus.tsx +64 -0
  38. package/compat/BodyTypeIcons/SelectorCategorySedan.tsx +69 -0
  39. package/compat/BodyTypeIcons/SelectorCategorySuv.tsx +77 -0
  40. package/compat/BodyTypeIcons/SelectorCategoryTransporter.tsx +68 -0
  41. package/compat/BodyTypeIcons/SelectorCategoryVan.tsx +72 -0
  42. package/compat/BodyTypeIcons/Volkswagen.tsx +330 -0
  43. package/compat/BodyTypeIcons/index.ts +17 -0
  44. package/compat/Button/Button.tsx +65 -0
  45. package/compat/ButtonOld/Button.styl +65 -0
  46. package/compat/ButtonOld/Button.tsx +84 -0
  47. package/compat/Checkbox/Checkbox.styl +120 -0
  48. package/compat/Checkbox/Checkbox.tsx +151 -0
  49. package/compat/Checkbox/FormCheckbox.styl +22 -0
  50. package/compat/Checkbox/FormCheckbox.tsx +86 -0
  51. package/compat/Co2Widget/CO2Efficiency.styl +219 -0
  52. package/compat/Co2Widget/CO2Efficiency.tsx +93 -0
  53. package/compat/ContactInfo/ContactInfo.styl +22 -0
  54. package/compat/ContactInfo/ContactInfo.tsx +161 -0
  55. package/compat/ContactInfo/TemporaryTranslation.ts +11 -0
  56. package/compat/CookieModal/CookieModal.tsx +49 -0
  57. package/compat/CookieModal/Modal.tsx +43 -0
  58. package/compat/CookieModal/ModalsConfig.tsx +23 -0
  59. package/compat/CookieModal/modals/ManageCookieModal/ManageCookieModal.styl +87 -0
  60. package/compat/CookieModal/modals/ManageCookieModal/ManageCookieModal.tsx +184 -0
  61. package/compat/CookieModal/modals/PreviewCookieModal/PreviewCookieModal.styl +67 -0
  62. package/compat/CookieModal/modals/PreviewCookieModal/PreviewCookieModal.tsx +51 -0
  63. package/compat/CookieModal/modals/TestModal.tsx +7 -0
  64. package/compat/CookieModal/useModal.ts +13 -0
  65. package/compat/CustomerQuote/CustomerQuote.styl +80 -0
  66. package/compat/CustomerQuote/CustomerQuote.tsx +68 -0
  67. package/compat/CustomerQuotesSlider/CustomerQuotesSlider.styl +46 -0
  68. package/compat/CustomerQuotesSlider/CustomerQuotesSlider.tsx +79 -0
  69. package/compat/CustomerQuotesSlider/SliderArrow.tsx +20 -0
  70. package/compat/CustomerQuotesSlider/slider.global.styl +2 -0
  71. package/compat/ExpansionPanel/ExpansionPanel.tsx +68 -0
  72. package/compat/FirstInfoBlock/FirstInfoBlock.styl +33 -0
  73. package/compat/FirstInfoBlock/FirstInfoBlock.tsx +49 -0
  74. package/compat/FirstInfoBlock/FirstInfoBlockItem/FirstInfoBlockItem.styl +66 -0
  75. package/compat/FirstInfoBlock/FirstInfoBlockItem/FirstInfoBlockItem.tsx +21 -0
  76. package/compat/FormattedNumber/FormattedNumber.styl +2 -0
  77. package/compat/FormattedNumber/FormattedNumber.tsx +90 -0
  78. package/compat/IconContainer/IconContainer.styl +23 -0
  79. package/compat/IconContainer/IconContainer.tsx +34 -0
  80. package/compat/Image/Image.styl +109 -0
  81. package/compat/Image/Image.tsx +302 -0
  82. package/compat/ImageSettings/EditableOptionsTable/CustomCheckbox/CustomCheckbox.styl +7 -0
  83. package/compat/ImageSettings/EditableOptionsTable/CustomCheckbox/CustomCheckbox.tsx +30 -0
  84. package/compat/ImageSettings/EditableOptionsTable/EditableOptionsTable.styl +122 -0
  85. package/compat/ImageSettings/EditableOptionsTable/EditableOptionsTable.tsx +199 -0
  86. package/compat/ImageSettings/EditableOptionsTable/ImageIcon/ImageIcon.styl +3 -0
  87. package/compat/ImageSettings/EditableOptionsTable/ImageIcon/ImageIcon.tsx +15 -0
  88. package/compat/ImageSettings/OptionsTable/OptionsTable.styl +47 -0
  89. package/compat/ImageSettings/OptionsTable/OptionsTable.tsx +122 -0
  90. package/compat/ImageSettings/PricePlan/PricePlan.styl +63 -0
  91. package/compat/ImageSettings/PricePlan/PricePlan.tsx +32 -0
  92. package/compat/ImageSettings/index.ts +42 -0
  93. package/compat/ImagesSet/ImagesSet.styl +28 -0
  94. package/compat/ImagesSet/ImagesSet.tsx +76 -0
  95. package/compat/InfoBlockWrapper/InfoBlockWrapper.styl +41 -0
  96. package/compat/InfoBlockWrapper/InfoBlockWrapper.tsx +46 -0
  97. package/compat/Loader/Loader.styl +39 -0
  98. package/compat/Loader/Loader.tsx +32 -0
  99. package/compat/MagnifyGlass/MagnifyGlass.styl +33 -0
  100. package/compat/MagnifyGlass/MagnifyGlass.tsx +213 -0
  101. package/compat/MdAccordionGroup/MdAccordionGroup.tsx +53 -0
  102. package/compat/MdCheckbox/MdCheckbox.tsx +69 -0
  103. package/compat/MdField/MdField.tsx +100 -0
  104. package/compat/MdSelect/MdSelect.tsx +103 -0
  105. package/compat/MdSwitch/MdSwitch.tsx +29 -0
  106. package/compat/MdTabs/MdTabs.tsx +47 -0
  107. package/compat/MdTooltip/MdTooltip.tsx +31 -0
  108. package/compat/OfferDetailedSection/OfferDetailedSection.styl +31 -0
  109. package/compat/OfferDetailedSection/OfferDetailedSection.tsx +100 -0
  110. package/compat/OfferDetailedSection/partials/PanelConfig.styl +132 -0
  111. package/compat/OfferDetailedSection/partials/PanelConfig.tsx +121 -0
  112. package/compat/OfferPanel/AboAccordion/AboAccordion.styl +25 -0
  113. package/compat/OfferPanel/AboAccordion/AboAccordion.tsx +128 -0
  114. package/compat/OfferPanel/AboAccordion/AboColorOptions/AboColorOptions.styl +12 -0
  115. package/compat/OfferPanel/AboAccordion/AboColorOptions/AboColorOptions.tsx +35 -0
  116. package/compat/OfferPanel/AboAccordion/AboFaq/AboFaq.styl +21 -0
  117. package/compat/OfferPanel/AboAccordion/AboFaq/AboFaq.tsx +25 -0
  118. package/compat/OfferPanel/AboAccordion/AboIncludedServices/AboIncludedServices.styl +14 -0
  119. package/compat/OfferPanel/AboAccordion/AboIncludedServices/AboIncludedServices.tsx +39 -0
  120. package/compat/OfferPanel/MuiOfferPeriod/MuiOfferPeriod.tsx +42 -0
  121. package/compat/OfferPanel/OfferCheckboxGroup/CheckboxContainer.tsx +140 -0
  122. package/compat/OfferPanel/OfferCheckboxGroup/OfferCheckboxGroup.styl +144 -0
  123. package/compat/OfferPanel/OfferCheckboxGroup/OfferCheckboxGroup.tsx +23 -0
  124. package/compat/OfferPanel/OfferPanel.styl +194 -0
  125. package/compat/OfferPanel/OfferPanel.tsx +81 -0
  126. package/compat/OfferPanel/OfferPeriod/OfferPeriod.styl +25 -0
  127. package/compat/OfferPanel/OfferPeriod/OfferPeriod.tsx +45 -0
  128. package/compat/OfferPanel/RangeGroup/RangeGroup.tsx +39 -0
  129. package/compat/OfferRequestButtonWrapper/OfferRequestButtonWrapper.styl +120 -0
  130. package/compat/OfferRequestButtonWrapper/OfferRequestButtonWrapper.styled.tsx +33 -0
  131. package/compat/OfferRequestButtonWrapper/OfferRequestButtonWrapper.tsx +122 -0
  132. package/compat/PriceRating/PriceRating.styl +47 -0
  133. package/compat/PriceRating/PriceRating.tsx +64 -0
  134. package/compat/PriceRatingDetailed/PriceRatingDetailed.styl +120 -0
  135. package/compat/PriceRatingDetailed/PriceRatingDetailed.tsx +191 -0
  136. package/compat/PricingToolBlock/PricingTool.styl +7 -0
  137. package/compat/PricingToolBlock/PricingTool.tsx +29 -0
  138. package/compat/Radio/Radio.styl +115 -0
  139. package/compat/Radio/Radio.tsx +141 -0
  140. package/compat/Radio/RadioGroup.styl +5 -0
  141. package/compat/Radio/RadioGroup.tsx +65 -0
  142. package/compat/Range/Range.tsx +79 -0
  143. package/compat/RateSearchValue/RateSearchValue.styl +22 -0
  144. package/compat/RateSearchValue/RateSearchValue.tsx +55 -0
  145. package/compat/RateSearchWidget/RateSearchWidget.styl +107 -0
  146. package/compat/RateSearchWidget/RateSearchWidget.tsx +163 -0
  147. package/compat/ServiceBlockItem/ServiceBlockItem.styl +48 -0
  148. package/compat/ServiceBlockItem/ServiceBlockItem.tsx +25 -0
  149. package/compat/SkeletonItem/SkeletonItem.styl +81 -0
  150. package/compat/SkeletonItem/SkeletonItem.tsx +80 -0
  151. package/compat/StarButton/StarButton.styl +39 -0
  152. package/compat/StarButton/StarButton.tsx +31 -0
  153. package/compat/TabPanel/TabPanel.tsx +29 -0
  154. package/compat/TimePicker/TimePicker.styl +23 -0
  155. package/compat/TimePicker/TimePicker.tsx +156 -0
  156. package/compat/Tooltip/Tooltip.styl +117 -0
  157. package/compat/Tooltip/Tooltip.tsx +63 -0
  158. package/compat/Usp/Usp.styl +78 -0
  159. package/compat/Usp/Usp.tsx +30 -0
  160. package/compat/Usp/uspTranslate.ts +12 -0
  161. package/compat/VehicleDetailedSidebar/VehicleDetailedSidebar.styl +37 -0
  162. package/compat/VehicleDetailedSidebar/VehicleDetailedSidebar.tsx +178 -0
  163. package/compat/VehicleDetailedSidebar/partials/Price.styl +27 -0
  164. package/compat/VehicleDetailedSidebar/partials/Price.tsx +41 -0
  165. package/compat/VehicleDetailedSidebar/partials/PriceContent.styl +124 -0
  166. package/compat/VehicleDetailedSidebar/partials/PriceContent.tsx +128 -0
  167. package/compat/VehicleDetailedSidebar/partials/Properties.styl +58 -0
  168. package/compat/VehicleDetailedSidebar/partials/Properties.tsx +155 -0
  169. package/compat/VehicleDetailedSidebar/partials/Title.styl +35 -0
  170. package/compat/VehicleDetailedSidebar/partials/Title.tsx +33 -0
  171. package/compat/VehicleDetailedSlider/VehicleDetailedSlider.styl +147 -0
  172. package/compat/VehicleDetailedSlider/VehicleDetailedSlider.tsx +382 -0
  173. package/compat/VehicleDetailedSlider/partials/MobileStast.tsx +61 -0
  174. package/compat/VehicleDetailedSlider/partials/MobileStats.styl +71 -0
  175. package/compat/VehicleDetailedSlider/partials/PriceData.styl +51 -0
  176. package/compat/VehicleDetailedSlider/partials/PriceData.tsx +67 -0
  177. package/compat/VehicleDetailedSlider/partials/Stats.styl +80 -0
  178. package/compat/VehicleDetailedSlider/partials/Stats.tsx +62 -0
  179. package/compat/VehicleDetailedSlider/partials/Title.styl +45 -0
  180. package/compat/VehicleDetailedSlider/partials/Title.tsx +36 -0
  181. package/compat/VehicleFormattedPrice/VehicleFormattedPrice.styl +149 -0
  182. package/compat/VehicleFormattedPrice/VehicleFormattedPrice.tsx +163 -0
  183. package/compat/VehicleSlider/VehicleSlider.styl +63 -0
  184. package/compat/VehicleSlider/VehicleSlider.tsx +125 -0
  185. package/compat/VehicleSlider/VehicleSliderForSRL.tsx +175 -0
  186. package/compat/VehicleSmallCard/SeoText/SeoText.styl +8 -0
  187. package/compat/VehicleSmallCard/SeoText/SeoText.tsx +16 -0
  188. package/compat/VehicleSmallCard/VehicleData/VechiclePriceItem/VechiclePriceItem.styl +204 -0
  189. package/compat/VehicleSmallCard/VehicleData/VechiclePriceItem/VechiclePriceItem.tsx +199 -0
  190. package/compat/VehicleSmallCard/VehicleData/VehicleInfo/VehicleInfo.styl +273 -0
  191. package/compat/VehicleSmallCard/VehicleData/VehicleInfo/VehicleInfo.tsx +179 -0
  192. package/compat/VehicleSmallCard/VehicleData/VehiclePrice/VehiclePrice.styl +165 -0
  193. package/compat/VehicleSmallCard/VehicleData/VehiclePrice/VehiclePrice.tsx +299 -0
  194. package/compat/VehicleSmallCard/VehicleData/VehicleProperty/VehicleProperty.styl +33 -0
  195. package/compat/VehicleSmallCard/VehicleData/VehicleProperty/VehicleProperty.tsx +35 -0
  196. package/compat/VehicleSmallCard/VehicleData/VehicleTitle/VehicleTitle.styl +136 -0
  197. package/compat/VehicleSmallCard/VehicleData/VehicleTitle/VehicleTitle.tsx +91 -0
  198. package/compat/VehicleSmallCard/VehicleSmallCard.styl +310 -0
  199. package/compat/VehicleSmallCard/VehicleSmallCard.tsx +448 -0
  200. package/compat/index.ts +77 -0
  201. package/compat/legacy-theme/mixins.styl +93 -0
  202. package/compat/legacy-theme/priceReviewColors.styl +12 -0
  203. package/compat/legacy-theme/slider.global.styl +5 -0
  204. package/compat/legacy-theme/theme.styl +136 -0
  205. package/compat/withLabel/withLabel.styl +33 -0
  206. package/compat/withLabel/withLabel.tsx +44 -0
  207. package/compat/withStats/withStats.styl +174 -0
  208. package/compat/withStats/withStats.tsx +238 -0
  209. package/constants/RateSearchWidget.ts +15 -0
  210. package/constants/Search.ts +290 -0
  211. package/constants/SearchWidget.ts +108 -0
  212. package/constants/app.ts +223 -0
  213. package/constants/common.ts +127 -0
  214. package/constants/core.ts +131 -0
  215. package/constants/highlights.ts +165 -0
  216. package/constants/price.ts +9 -0
  217. package/constants/selectors.ts +38 -0
  218. package/constants.ts +91 -0
  219. package/data/DataTransformers.ts +88 -0
  220. package/data/fieldMapping.ts +342 -0
  221. package/data/toAutobahnCar.ts +442 -0
  222. package/iconsvg/IconSVG.tsx +30 -0
  223. package/iconsvg/IconSVGConfig.tsx +768 -0
  224. package/iconsvg/SVG/AboPartner.tsx +16 -0
  225. package/iconsvg/SVG/ArrowQuotes.tsx +22 -0
  226. package/iconsvg/SVG/CloseIcon.tsx +17 -0
  227. package/iconsvg/SVG/CloseIconSelect.tsx +18 -0
  228. package/iconsvg/SVG/ClosedLockIcon.tsx +18 -0
  229. package/iconsvg/SVG/DealerCheckIcon.tsx +18 -0
  230. package/iconsvg/SVG/DealerPopoverMail.tsx +21 -0
  231. package/iconsvg/SVG/DealerPopoverPhone.tsx +21 -0
  232. package/iconsvg/SVG/GrayPhoneIcon.tsx +22 -0
  233. package/iconsvg/SVG/InternetIcon.tsx +18 -0
  234. package/iconsvg/SVG/WhiteEnvelopeIcon.tsx +21 -0
  235. package/iconsvg/SVG/bodyType/Cabrio.tsx +23 -0
  236. package/iconsvg/SVG/bodyType/Coupe.tsx +22 -0
  237. package/iconsvg/SVG/bodyType/Minibus.tsx +22 -0
  238. package/iconsvg/SVG/bodyType/Other.tsx +25 -0
  239. package/iconsvg/SVG/bodyType/Sedan.tsx +22 -0
  240. package/iconsvg/SVG/bodyType/SelectorCategoryCombi.tsx +68 -0
  241. package/iconsvg/SVG/bodyType/SelectorCategoryCompact.tsx +20 -0
  242. package/iconsvg/SVG/bodyType/SelectorCategoryConvertible.tsx +68 -0
  243. package/iconsvg/SVG/bodyType/SelectorCategoryCoupe.tsx +60 -0
  244. package/iconsvg/SVG/bodyType/SelectorCategoryMinibus.tsx +64 -0
  245. package/iconsvg/SVG/bodyType/SelectorCategoryOther.tsx +60 -0
  246. package/iconsvg/SVG/bodyType/SelectorCategorySedan.tsx +69 -0
  247. package/iconsvg/SVG/bodyType/SelectorCategorySuv.tsx +77 -0
  248. package/iconsvg/SVG/bodyType/SelectorCategoryTransporter.tsx +68 -0
  249. package/iconsvg/SVG/bodyType/SelectorCategoryVan.tsx +72 -0
  250. package/iconsvg/SVG/bodyType/Small.tsx +23 -0
  251. package/iconsvg/SVG/bodyType/Suv.tsx +23 -0
  252. package/iconsvg/SVG/bodyType/Van.tsx +23 -0
  253. package/iconsvg/SVG/bodyType/Wagon.tsx +23 -0
  254. package/iconsvg/SVG/common/AddIcon.tsx +16 -0
  255. package/iconsvg/SVG/common/AddPlus.tsx +16 -0
  256. package/iconsvg/SVG/common/AddressDashboard.tsx +29 -0
  257. package/iconsvg/SVG/common/AddressIcon.tsx +20 -0
  258. package/iconsvg/SVG/common/ArrowDetailedAccordionBlue.tsx +26 -0
  259. package/iconsvg/SVG/common/ArrowDownBlue.tsx +21 -0
  260. package/iconsvg/SVG/common/ArrowSelect.tsx +23 -0
  261. package/iconsvg/SVG/common/ArrowStepDown.tsx +18 -0
  262. package/iconsvg/SVG/common/Autocheck.tsx +19 -0
  263. package/iconsvg/SVG/common/AutodeLogo.tsx +36 -0
  264. package/iconsvg/SVG/common/Avatar.tsx +17 -0
  265. package/iconsvg/SVG/common/BellGray.tsx +19 -0
  266. package/iconsvg/SVG/common/BigInfoTransparent.tsx +13 -0
  267. package/iconsvg/SVG/common/Browse.tsx +20 -0
  268. package/iconsvg/SVG/common/Calendar.tsx +24 -0
  269. package/iconsvg/SVG/common/CallbackDashboard.tsx +30 -0
  270. package/iconsvg/SVG/common/Camera.tsx +17 -0
  271. package/iconsvg/SVG/common/Car.tsx +16 -0
  272. package/iconsvg/SVG/common/CarBody.tsx +19 -0
  273. package/iconsvg/SVG/common/CarFront.tsx +43 -0
  274. package/iconsvg/SVG/common/CarInspectionCheck.tsx +21 -0
  275. package/iconsvg/SVG/common/CarInspectionScheme0.tsx +32 -0
  276. package/iconsvg/SVG/common/CarInspectionScheme1.tsx +53 -0
  277. package/iconsvg/SVG/common/CarInspectionScheme2.tsx +52 -0
  278. package/iconsvg/SVG/common/CarInspectionScheme3.tsx +32 -0
  279. package/iconsvg/SVG/common/CarInspectionScheme4.tsx +32 -0
  280. package/iconsvg/SVG/common/CarInspectionScheme5.tsx +32 -0
  281. package/iconsvg/SVG/common/CarInspectionScheme6.tsx +32 -0
  282. package/iconsvg/SVG/common/CarInspectionSchemeGeneral copy.tsx +24 -0
  283. package/iconsvg/SVG/common/CarInspectionSchemeGeneral.tsx +24 -0
  284. package/iconsvg/SVG/common/CheckBlue.tsx +18 -0
  285. package/iconsvg/SVG/common/CheckGreen.tsx +22 -0
  286. package/iconsvg/SVG/common/CheckMark.tsx +16 -0
  287. package/iconsvg/SVG/common/CheckWhite.tsx +19 -0
  288. package/iconsvg/SVG/common/Chevron.tsx +17 -0
  289. package/iconsvg/SVG/common/CircledCheckmark.tsx +25 -0
  290. package/iconsvg/SVG/common/Clock.tsx +18 -0
  291. package/iconsvg/SVG/common/Close.tsx +19 -0
  292. package/iconsvg/SVG/common/CloseGrey.tsx +22 -0
  293. package/iconsvg/SVG/common/ContactEmail.tsx +21 -0
  294. package/iconsvg/SVG/common/ContactPhone.tsx +28 -0
  295. package/iconsvg/SVG/common/CopyIcon copy.tsx +22 -0
  296. package/iconsvg/SVG/common/CopyIcon.tsx +22 -0
  297. package/iconsvg/SVG/common/CopyIconForDealer.tsx +21 -0
  298. package/iconsvg/SVG/common/DashboardIcon.tsx +20 -0
  299. package/iconsvg/SVG/common/DashboardQuestionMark.tsx +20 -0
  300. package/iconsvg/SVG/common/DealersIcon.tsx +20 -0
  301. package/iconsvg/SVG/common/DeleteCircle.tsx +31 -0
  302. package/iconsvg/SVG/common/DeleteV1Icon.tsx +18 -0
  303. package/iconsvg/SVG/common/DeliveryDashboard.tsx +25 -0
  304. package/iconsvg/SVG/common/DeliveryMail.tsx +24 -0
  305. package/iconsvg/SVG/common/Discount100De.tsx +18 -0
  306. package/iconsvg/SVG/common/Discount100En.tsx +19 -0
  307. package/iconsvg/SVG/common/Discount66De.tsx +28 -0
  308. package/iconsvg/SVG/common/Discount66En.tsx +20 -0
  309. package/iconsvg/SVG/common/DoneIcon.tsx +18 -0
  310. package/iconsvg/SVG/common/EditCircle.tsx +32 -0
  311. package/iconsvg/SVG/common/EditPriceIcon.tsx +20 -0
  312. package/iconsvg/SVG/common/EuroCurrency.tsx +18 -0
  313. package/iconsvg/SVG/common/Export.tsx +20 -0
  314. package/iconsvg/SVG/common/Eye.tsx +17 -0
  315. package/iconsvg/SVG/common/EyeCatch.tsx +19 -0
  316. package/iconsvg/SVG/common/FavoritesIcon.tsx +20 -0
  317. package/iconsvg/SVG/common/FilterRange.tsx +16 -0
  318. package/iconsvg/SVG/common/FilterToolBlack.tsx +23 -0
  319. package/iconsvg/SVG/common/FlagDe.tsx +21 -0
  320. package/iconsvg/SVG/common/FlagEn.tsx +43 -0
  321. package/iconsvg/SVG/common/GrayEnvelopeIcon.tsx +19 -0
  322. package/iconsvg/SVG/common/HamburgerMenuIcon.tsx +18 -0
  323. package/iconsvg/SVG/common/HandingOverDashboard.tsx +32 -0
  324. package/iconsvg/SVG/common/ImageSettingsIcon.tsx +20 -0
  325. package/iconsvg/SVG/common/Info.tsx +16 -0
  326. package/iconsvg/SVG/common/InfoIcon.tsx +17 -0
  327. package/iconsvg/SVG/common/InfoTransparent.tsx +18 -0
  328. package/iconsvg/SVG/common/LogoutIcon.tsx +20 -0
  329. package/iconsvg/SVG/common/MagnifyingGlass.tsx +31 -0
  330. package/iconsvg/SVG/common/MenuArrow.tsx +16 -0
  331. package/iconsvg/SVG/common/MenuGrey.tsx +22 -0
  332. package/iconsvg/SVG/common/MobileDeLogo.tsx +108 -0
  333. package/iconsvg/SVG/common/MyOrderIcon.tsx +20 -0
  334. package/iconsvg/SVG/common/MyVehiclesIcon.tsx +20 -0
  335. package/iconsvg/SVG/common/NewFlagDe.tsx +25 -0
  336. package/iconsvg/SVG/common/NewFlagEn.tsx +34 -0
  337. package/iconsvg/SVG/common/OrderReceivedDashboard.tsx +27 -0
  338. package/iconsvg/SVG/common/Package.tsx +30 -0
  339. package/iconsvg/SVG/common/Phone.tsx +18 -0
  340. package/iconsvg/SVG/common/PhoneGrey.tsx +22 -0
  341. package/iconsvg/SVG/common/PickupDashboard.tsx +30 -0
  342. package/iconsvg/SVG/common/Picture.tsx +24 -0
  343. package/iconsvg/SVG/common/Pictures.tsx +32 -0
  344. package/iconsvg/SVG/common/Plus.tsx +16 -0
  345. package/iconsvg/SVG/common/PlusNew.tsx +16 -0
  346. package/iconsvg/SVG/common/PreparationDashboard.tsx +29 -0
  347. package/iconsvg/SVG/common/ProfileDashboard.tsx +24 -0
  348. package/iconsvg/SVG/common/ProfileIcon.tsx +17 -0
  349. package/iconsvg/SVG/common/Question.tsx +19 -0
  350. package/iconsvg/SVG/common/QuestionBold.tsx +25 -0
  351. package/iconsvg/SVG/common/RegistrationDashboard.tsx +31 -0
  352. package/iconsvg/SVG/common/SavedSearchsIcon.tsx +20 -0
  353. package/iconsvg/SVG/common/Search.tsx +19 -0
  354. package/iconsvg/SVG/common/SearchGrey.tsx +22 -0
  355. package/iconsvg/SVG/common/SettingPenIcon.tsx +20 -0
  356. package/iconsvg/SVG/common/Share.tsx +16 -0
  357. package/iconsvg/SVG/common/ShoppingCart.tsx +18 -0
  358. package/iconsvg/SVG/common/SliderArrow.tsx +21 -0
  359. package/iconsvg/SVG/common/SliderEye.tsx +17 -0
  360. package/iconsvg/SVG/common/SortUpDownArrows.tsx +18 -0
  361. package/iconsvg/SVG/common/Speedometer.tsx +23 -0
  362. package/iconsvg/SVG/common/Star.tsx +20 -0
  363. package/iconsvg/SVG/common/StarNew.tsx +16 -0
  364. package/iconsvg/SVG/common/StarOutline.tsx +20 -0
  365. package/iconsvg/SVG/common/StarRoundedCorners.tsx +18 -0
  366. package/iconsvg/SVG/common/Stats.tsx +17 -0
  367. package/iconsvg/SVG/common/Step1.tsx +21 -0
  368. package/iconsvg/SVG/common/Step2.tsx +20 -0
  369. package/iconsvg/SVG/common/Step3.tsx +21 -0
  370. package/iconsvg/SVG/common/SupportCallbackIcon.tsx +20 -0
  371. package/iconsvg/SVG/common/Telephone.tsx +22 -0
  372. package/iconsvg/SVG/common/Time.tsx +17 -0
  373. package/iconsvg/SVG/common/Timetable.tsx +18 -0
  374. package/iconsvg/SVG/common/Trash.tsx +22 -0
  375. package/iconsvg/SVG/common/TrashRed.tsx +23 -0
  376. package/iconsvg/SVG/common/Upload.tsx +17 -0
  377. package/iconsvg/SVG/common/UserGrey.tsx +22 -0
  378. package/iconsvg/SVG/common/UserProfileIcon.tsx +20 -0
  379. package/iconsvg/SVG/common/ValidateFailure.tsx +21 -0
  380. package/iconsvg/SVG/common/ValidateSuccess.tsx +21 -0
  381. package/iconsvg/SVG/common/WarningTriangle.tsx +20 -0
  382. package/iconsvg/SVG/common/WhiteArrowUp.tsx +21 -0
  383. package/iconsvg/SVG/common/WhiteKey.tsx +21 -0
  384. package/iconsvg/SVG/common/WhitePeople.tsx +23 -0
  385. package/iconsvg/SVG/common/WhiteTick.tsx +19 -0
  386. package/iconsvg/SVG/flags/AT.tsx +19 -0
  387. package/iconsvg/SVG/flags/BE.tsx +20 -0
  388. package/iconsvg/SVG/flags/BG.tsx +20 -0
  389. package/iconsvg/SVG/flags/CH.tsx +22 -0
  390. package/iconsvg/SVG/flags/CZ.tsx +18 -0
  391. package/iconsvg/SVG/flags/DE.tsx +18 -0
  392. package/iconsvg/SVG/flags/DK.tsx +18 -0
  393. package/iconsvg/SVG/flags/ES.tsx +2585 -0
  394. package/iconsvg/SVG/flags/FI.tsx +18 -0
  395. package/iconsvg/SVG/flags/FR.tsx +20 -0
  396. package/iconsvg/SVG/flags/GB.tsx +26 -0
  397. package/iconsvg/SVG/flags/HR.tsx +135 -0
  398. package/iconsvg/SVG/flags/HU.tsx +20 -0
  399. package/iconsvg/SVG/flags/IT.tsx +20 -0
  400. package/iconsvg/SVG/flags/LI.tsx +106 -0
  401. package/iconsvg/SVG/flags/LU.tsx +18 -0
  402. package/iconsvg/SVG/flags/NL.tsx +18 -0
  403. package/iconsvg/SVG/flags/NO.tsx +20 -0
  404. package/iconsvg/SVG/flags/PL.tsx +19 -0
  405. package/iconsvg/SVG/flags/RO.tsx +20 -0
  406. package/iconsvg/SVG/flags/RU.tsx +20 -0
  407. package/iconsvg/SVG/flags/SE.tsx +20 -0
  408. package/iconsvg/SVG/flags/SI.tsx +54 -0
  409. package/iconsvg/SVG/flags/SK.tsx +34 -0
  410. package/iconsvg/SVG/flags/UA.tsx +19 -0
  411. package/iconsvg/SVG/infoBlocks/14DaysReturnPolicy.tsx +18 -0
  412. package/iconsvg/SVG/infoBlocks/AlertInfo.tsx +19 -0
  413. package/iconsvg/SVG/infoBlocks/Autocheck.tsx +19 -0
  414. package/iconsvg/SVG/infoBlocks/CheckTheStory.tsx +22 -0
  415. package/iconsvg/SVG/infoBlocks/CustomerServiceWhite.tsx +16 -0
  416. package/iconsvg/SVG/infoBlocks/Guarantee.tsx +16 -0
  417. package/iconsvg/SVG/infoBlocks/OrderWhite.tsx +13 -0
  418. package/iconsvg/SVG/infoBlocks/PriceGuarantee.tsx +19 -0
  419. package/iconsvg/SVG/infoBlocks/PriceGuaranteeWhite.tsx +17 -0
  420. package/iconsvg/SVG/infoBlocks/TransportAndDelivery.tsx +21 -0
  421. package/iconsvg/SVG/infoBlocks/Warranty.tsx +23 -0
  422. package/iconsvg/SVG/popower/Mail.tsx +18 -0
  423. package/iconsvg/SVG/popower/Phone.tsx +19 -0
  424. package/iconsvg/SVG/popower/Schedule.tsx +18 -0
  425. package/iconsvg/SVG/searchWidgets/drive/AAllWheelDrive.tsx +26 -0
  426. package/iconsvg/SVG/searchWidgets/drive/AllWheelDrive.tsx +26 -0
  427. package/iconsvg/SVG/searchWidgets/drive/FrontWheelDrive.tsx +25 -0
  428. package/iconsvg/SVG/searchWidgets/drive/OtherWheelDrive.tsx +26 -0
  429. package/iconsvg/SVG/searchWidgets/drive/RearWheelDrive.tsx +25 -0
  430. package/iconsvg/SVG/searchWidgets/fuel/FuelDiesel.tsx +18 -0
  431. package/iconsvg/SVG/searchWidgets/fuel/FuelElectrical.tsx +19 -0
  432. package/iconsvg/SVG/searchWidgets/fuel/FuelElectricalDiesel.tsx +34 -0
  433. package/iconsvg/SVG/searchWidgets/fuel/FuelElectricalPetrol.tsx +20 -0
  434. package/iconsvg/SVG/searchWidgets/fuel/FuelEthanol.tsx +53 -0
  435. package/iconsvg/SVG/searchWidgets/fuel/FuelHydrogen.tsx +24 -0
  436. package/iconsvg/SVG/searchWidgets/fuel/FuelLpg.tsx +24 -0
  437. package/iconsvg/SVG/searchWidgets/fuel/FuelNaturalGas.tsx +23 -0
  438. package/iconsvg/SVG/searchWidgets/fuel/FuelOther.tsx +28 -0
  439. package/iconsvg/SVG/searchWidgets/fuel/FuelPetrol.tsx +18 -0
  440. package/iconsvg/SVG/settings/Account.tsx +17 -0
  441. package/iconsvg/SVG/settings/DataUsage.tsx +17 -0
  442. package/iconsvg/SVG/settings/MarketResearch.tsx +17 -0
  443. package/iconsvg/SVG/settings/Newsletter.tsx +17 -0
  444. package/iconsvg/SVG/settings/RemoveEye.tsx +17 -0
  445. package/iconsvg/SVG/settings/RemoveEyeOff.tsx +17 -0
  446. package/iconsvg/SVG/settings/Security.tsx +17 -0
  447. package/iconsvg/SVG/settings/Warning.tsx +17 -0
  448. package/iconsvg/SVG/slider/360.tsx +23 -0
  449. package/iconsvg/SVG/slider/360New.tsx +20 -0
  450. package/iconsvg/SVG/slider/Checked.tsx +19 -0
  451. package/iconsvg/SVG/slider/DiscountRibbon.tsx +51 -0
  452. package/iconsvg/SVG/slider/DiscountRibbonMobile.tsx +47 -0
  453. package/iconsvg/SVG/slider/DiscountRibbonNew.tsx +29 -0
  454. package/iconsvg/SVG/slider/Easy.tsx +19 -0
  455. package/iconsvg/SVG/slider/Fullscreen.tsx +16 -0
  456. package/iconsvg/SVG/slider/FullscreenWindow.tsx +23 -0
  457. package/iconsvg/SVG/slider/Safe.tsx +19 -0
  458. package/iconsvg/SVG/slider/ToBuy.tsx +19 -0
  459. package/iconsvg/SVG/slider/YoutubeButton.tsx +26 -0
  460. package/iconsvg/SVG/slider/ZoomIn.tsx +21 -0
  461. package/iconsvg/SVG/slider/ZoomOut.tsx +21 -0
  462. package/iconsvg/SVG/social/AndroidLogo.tsx +18 -0
  463. package/iconsvg/SVG/social/Apple.tsx +19 -0
  464. package/iconsvg/SVG/social/FacebookF.tsx +19 -0
  465. package/iconsvg/SVG/social/GooglePlusG.tsx +19 -0
  466. package/iconsvg/SVG/social/Instagram.tsx +17 -0
  467. package/iconsvg/SVG/social/Pinterest.tsx +19 -0
  468. package/iconsvg/SVG/social/SharingInterface.tsx +21 -0
  469. package/iconsvg/SVG/social/Twitter.tsx +19 -0
  470. package/iconsvg/SVG/social/Youtube.tsx +19 -0
  471. package/iconsvg/SVG/vehicle/AboIcon.tsx +11 -0
  472. package/iconsvg/SVG/vehicle/Abs.tsx +24 -0
  473. package/iconsvg/SVG/vehicle/AirCond.tsx +34 -0
  474. package/iconsvg/SVG/vehicle/Airbag.tsx +21 -0
  475. package/iconsvg/SVG/vehicle/AuxiliaryHeating.tsx +23 -0
  476. package/iconsvg/SVG/vehicle/Bluetooth.tsx +22 -0
  477. package/iconsvg/SVG/vehicle/BuyIcon.tsx +15 -0
  478. package/iconsvg/SVG/vehicle/CarAvailability.tsx +22 -0
  479. package/iconsvg/SVG/vehicle/CarInspectionCheck.tsx +21 -0
  480. package/iconsvg/SVG/vehicle/CarInspectionCross.tsx +21 -0
  481. package/iconsvg/SVG/vehicle/CheckoutChecked.tsx +15 -0
  482. package/iconsvg/SVG/vehicle/Co2.tsx +24 -0
  483. package/iconsvg/SVG/vehicle/CruiseControl.tsx +25 -0
  484. package/iconsvg/SVG/vehicle/Date.tsx +21 -0
  485. package/iconsvg/SVG/vehicle/Delivery.tsx +12 -0
  486. package/iconsvg/SVG/vehicle/Diesel.tsx +28 -0
  487. package/iconsvg/SVG/vehicle/Display.tsx +25 -0
  488. package/iconsvg/SVG/vehicle/Done.tsx +11 -0
  489. package/iconsvg/SVG/vehicle/Door.tsx +19 -0
  490. package/iconsvg/SVG/vehicle/DoubleDone.tsx +18 -0
  491. package/iconsvg/SVG/vehicle/EditIcon.tsx +11 -0
  492. package/iconsvg/SVG/vehicle/EmergencyBrakeAssistant.tsx +27 -0
  493. package/iconsvg/SVG/vehicle/Eps.tsx +24 -0
  494. package/iconsvg/SVG/vehicle/Esp.tsx +24 -0
  495. package/iconsvg/SVG/vehicle/FinancingIcon.tsx +20 -0
  496. package/iconsvg/SVG/vehicle/FuelConsumption.tsx +20 -0
  497. package/iconsvg/SVG/vehicle/Fueling.tsx +22 -0
  498. package/iconsvg/SVG/vehicle/FullDrive.tsx +24 -0
  499. package/iconsvg/SVG/vehicle/GasElectric.tsx +28 -0
  500. package/iconsvg/SVG/vehicle/HandsFreePhoneSystem.tsx +24 -0
  501. package/iconsvg/SVG/vehicle/Kw.tsx +23 -0
  502. package/iconsvg/SVG/vehicle/LastCrawledAt.tsx +22 -0
  503. package/iconsvg/SVG/vehicle/LeasingIcon.tsx +14 -0
  504. package/iconsvg/SVG/vehicle/Led.tsx +24 -0
  505. package/iconsvg/SVG/vehicle/LightSensor.tsx +22 -0
  506. package/iconsvg/SVG/vehicle/LinkAlternative.tsx +15 -0
  507. package/iconsvg/SVG/vehicle/Location.tsx +17 -0
  508. package/iconsvg/SVG/vehicle/MinusIcon.tsx +11 -0
  509. package/iconsvg/SVG/vehicle/Mirror.tsx +19 -0
  510. package/iconsvg/SVG/vehicle/Navigation.tsx +27 -0
  511. package/iconsvg/SVG/vehicle/NewCar.tsx +21 -0
  512. package/iconsvg/SVG/vehicle/NoImage.tsx +17 -0
  513. package/iconsvg/SVG/vehicle/Owner.tsx +18 -0
  514. package/iconsvg/SVG/vehicle/PanoramicRoof.tsx +23 -0
  515. package/iconsvg/SVG/vehicle/ParkingAssistants.tsx +24 -0
  516. package/iconsvg/SVG/vehicle/PickYourself.tsx +18 -0
  517. package/iconsvg/SVG/vehicle/PlusIcon.tsx +11 -0
  518. package/iconsvg/SVG/vehicle/Power.tsx +21 -0
  519. package/iconsvg/SVG/vehicle/Ps.tsx +19 -0
  520. package/iconsvg/SVG/vehicle/Question.tsx +24 -0
  521. package/iconsvg/SVG/vehicle/Seats.tsx +21 -0
  522. package/iconsvg/SVG/vehicle/SeatsHeating.tsx +26 -0
  523. package/iconsvg/SVG/vehicle/SelectorGearboxAutomatic.tsx +24 -0
  524. package/iconsvg/SVG/vehicle/SelectorGearboxManualShift.tsx +19 -0
  525. package/iconsvg/SVG/vehicle/SelectorGearboxOther.tsx +24 -0
  526. package/iconsvg/SVG/vehicle/SelectorGearboxSemiAutomatic.tsx +30 -0
  527. package/iconsvg/SVG/vehicle/SelectorInteriorTypeAlcantara.tsx +225 -0
  528. package/iconsvg/SVG/vehicle/SelectorInteriorTypeFabric.tsx +29 -0
  529. package/iconsvg/SVG/vehicle/SelectorInteriorTypeFullLeather.tsx +29 -0
  530. package/iconsvg/SVG/vehicle/SelectorInteriorTypeOther.tsx +26 -0
  531. package/iconsvg/SVG/vehicle/SelectorInteriorTypePartLeather.tsx +142 -0
  532. package/iconsvg/SVG/vehicle/SelectorInteriorTypeSyntheticLeather.tsx +27 -0
  533. package/iconsvg/SVG/vehicle/SelectorInteriorTypeVelours.tsx +39 -0
  534. package/iconsvg/SVG/vehicle/Shield.tsx +39 -0
  535. package/iconsvg/SVG/vehicle/Speedometer.tsx +17 -0
  536. package/iconsvg/SVG/vehicle/StartStopSystem.tsx +30 -0
  537. package/iconsvg/SVG/vehicle/Stop.tsx +25 -0
  538. package/iconsvg/SVG/vehicle/TickMark.tsx +21 -0
  539. package/iconsvg/SVG/vehicle/TrafficSignRecognition.tsx +29 -0
  540. package/iconsvg/SVG/vehicle/TrailerCoupling.tsx +24 -0
  541. package/iconsvg/SVG/vehicle/Transmission.tsx +27 -0
  542. package/iconsvg/SVG/vehicle/Wheel.tsx +43 -0
  543. package/iconsvg/SVG/vehicle/Wipers.tsx +22 -0
  544. package/iconsvg/SVG/vehicle/Wrench.tsx +17 -0
  545. package/iconsvg/index.ts +7 -0
  546. package/index.ts +18 -0
  547. package/locales/de/autobahn.json +671 -0
  548. package/locales/en/autobahn.json +671 -0
  549. package/locales/legacy/SearchDetailedPage.ts +205 -0
  550. package/locales/legacy/cbd.ts +719 -0
  551. package/locales/legacy/common.ts +109 -0
  552. package/locales/legacy/data.ts +1118 -0
  553. package/locales/legacy/priceRating.ts +10 -0
  554. package/locales/legacy/sortingOptions.ts +21 -0
  555. package/media/images/question.svg +1 -0
  556. package/media/images/raiting-stars-min.svg +7 -0
  557. package/media/images/refresh-button.svg +49 -0
  558. package/media/images/searchWidget/selector_emissionSticker_green.png +0 -0
  559. package/media/images/searchWidget/selector_emissionSticker_red.png +0 -0
  560. package/media/images/searchWidget/selector_emissionSticker_yellow.png +0 -0
  561. package/media/images/slider-arrow-new.svg +1 -0
  562. package/media/images/user-icon.svg +16 -0
  563. package/media/svg/common/eye.svg +1 -0
  564. package/media/svg/common/star.svg +1 -0
  565. package/media/svg/infoBlocks/whyAutodeIconSet-F.svg +9 -0
  566. package/media/svg/infoBlocks/whyAutodeIconSet-G.svg +8 -0
  567. package/media/svg/infoBlocks/whyAutodeIconSet-Q.svg +6 -0
  568. package/media/svg/infoBlocks/whyAutodeIconSet-R.svg +9 -0
  569. package/media/svg/usp/icon1.svg +16 -0
  570. package/media/svg/usp/icon2.svg +13 -0
  571. package/media/svg/usp/icon3.svg +10 -0
  572. package/media/svg/usp/icon4.svg +14 -0
  573. package/package.json +30 -0
  574. package/schemes/AggregationScheme.ts +73 -0
  575. package/searchFilters/filterOptions.ts +119 -0
  576. package/searchFilters/filterProps.ts +35 -0
  577. package/searchFilters/index.ts +15 -0
  578. package/theme/autobahn.css +25 -0
  579. package/theme/colors_and_type.css +113 -0
  580. package/theme/md3.css +2034 -0
  581. package/types/types.ts +374 -0
  582. package/types.ts +8 -0
  583. package/ui/Accordion.tsx +134 -0
  584. package/ui/Button.tsx +62 -0
  585. package/ui/CardCarousel.tsx +133 -0
  586. package/ui/Chip.tsx +29 -0
  587. package/ui/DatePicker.tsx +145 -0
  588. package/ui/Dropdown.tsx +205 -0
  589. package/ui/FileUpload.tsx +154 -0
  590. package/ui/FormCheckbox.tsx +79 -0
  591. package/ui/FormDropdown.tsx +327 -0
  592. package/ui/FormField.tsx +88 -0
  593. package/ui/FormRadio.tsx +93 -0
  594. package/ui/FormRadioGroup.tsx +106 -0
  595. package/ui/Icon.tsx +391 -0
  596. package/ui/IconButton.tsx +44 -0
  597. package/ui/Modal.tsx +187 -0
  598. package/ui/Pagination.tsx +140 -0
  599. package/ui/Price.tsx +25 -0
  600. package/ui/PriceEvalBar.tsx +48 -0
  601. package/ui/SaveChip.tsx +34 -0
  602. package/ui/Segmented.tsx +48 -0
  603. package/ui/Skeleton.tsx +75 -0
  604. package/ui/Spec.tsx +24 -0
  605. package/ui/Stars.tsx +29 -0
  606. package/ui/StatChip.tsx +21 -0
  607. package/ui/Stepper.tsx +106 -0
  608. package/ui/Switch.tsx +65 -0
  609. package/ui/Table.tsx +156 -0
  610. package/ui/Textarea.tsx +58 -0
  611. package/ui/index.ts +88 -0
  612. package/utils/CommonUtils.ts +649 -0
  613. package/utils/DateUtils.ts +101 -0
  614. package/utils/index.ts +74 -0
  615. package/utils/power.ts +11 -0
  616. package/utils/query.ts +21 -0
  617. package/vdp/FinanceCalculator.tsx +465 -0
  618. package/vdp/VdpModules.tsx +1490 -0
  619. package/vdp/VdpViewer.tsx +139 -0
  620. package/vdp/index.ts +75 -0
  621. package/vdp/types.ts +197 -0
  622. package/vehiclesProps/cbdSelectors.ts +117 -0
  623. package/vehiclesProps/decoratedLightProps.tsx +572 -0
  624. package/vehiclesProps/decoratedProps.tsx +1746 -0
  625. package/vehiclesProps/equipment.ts +129 -0
  626. package/vehiclesProps/vehicleDetails.ts +428 -0
  627. package/widgets/SearchBox.tsx +256 -0
  628. package/widgets/index.ts +5 -0
@@ -0,0 +1,87 @@
1
+ @import '../../../legacy-theme/mixins.styl';
2
+
3
+ .modalWrapper
4
+ padding: 13px 15px 28px;
5
+ text-align: center
6
+ box-sizing: border-box
7
+ max-width: 600px
8
+
9
+ .modalTitle
10
+ font-family: sans-serif
11
+ font-weight: bold
12
+ font-size: 16px;
13
+ line-height: 133.4%;
14
+ color: rgba(76, 78, 100, 0.87)
15
+ margin-top: 12px
16
+ +media-tablet-up()
17
+ font-size: 24px;
18
+ margin-top: 20px
19
+
20
+ .modalContent
21
+ font-family: sans-serif
22
+ font-size: 14px;
23
+ line-height: 24px;
24
+ text-align: justify;
25
+ letter-spacing: 0.15px;
26
+ color: rgba(76, 78, 100, 0.87);
27
+ margin-top: 12px
28
+ margin-right: 25px
29
+
30
+ +media-tablet-up()
31
+ margin-top: 20px
32
+ .accordions
33
+ height: 278px
34
+ overflow-y: scroll
35
+ padding-right: 10px
36
+ margin-top: 16px
37
+ &::-webkit-scrollbar {
38
+ width: 6px
39
+ }
40
+ &::-webkit-scrollbar-track {
41
+ background: linear-gradient(0deg, rgba(255, 255, 255, 0.88), rgba(255, 255, 255, 0.88)), #666CFF;
42
+ }
43
+ &::-webkit-scrollbar-thumb {
44
+ background: #005CCB
45
+ border-radius: 50px
46
+ }
47
+
48
+ .buttonsContainer
49
+ margin-top: 20px
50
+ display: flex
51
+ justify-content: center
52
+ gap: 18px;
53
+
54
+ +media-tablet-landscape-up()
55
+ gap: 36px;
56
+
57
+ .modalBtn
58
+ height: 38px
59
+ text-transform: capitalize !important
60
+ +media-tablet-landscape-up()
61
+ min-width: 222px !important
62
+ font-size: 14px !important;
63
+
64
+ .outlinedBtn
65
+ border: none !important;
66
+
67
+ .switchBlock
68
+ display: flex
69
+ align-items: center
70
+ font-size: 12px
71
+ line-height: 15px
72
+ letter-spacing: 1px
73
+ color: rgba(76, 78, 100, 0.87)
74
+ text-align: left
75
+
76
+ .switchBlockTitle
77
+ width: 140px;
78
+
79
+ .switchBlockLink
80
+ color: rgba(76, 78, 100, 0.87);
81
+ text-decoration-line: underline;
82
+ font-size: 10px;
83
+
84
+ &:focus
85
+ text-decoration-line: underline;
86
+ &:hover
87
+ text-decoration-line: none;
@@ -0,0 +1,184 @@
1
+ import React, { useEffect, useState } from 'react';
2
+ import _merge from 'lodash/merge';
3
+ import classNames from 'classnames';
4
+ import _get from 'lodash/get';
5
+ import IconSVG from '../../../../iconsvg/IconSVG';
6
+ import Button from '../../../Button/Button';
7
+ import MaterialAccordionGroup from '../../../MdAccordionGroup/MdAccordionGroup';
8
+ import MaterialSwitch from '../../../MdSwitch/MdSwitch';
9
+ import { COOKIE_SCHEMA, COOKIE_SCHEMA_LINKS } from '../../../../constants/common';
10
+ import { updateCookieList } from '../../../../utils/CommonUtils';
11
+
12
+ import styles from './ManageCookieModal.styl';
13
+
14
+ interface IManageCookieModal {
15
+ toggleModal: () => void;
16
+ handleSentryInit?: () => void;
17
+ }
18
+
19
+ interface IMarketingSwitches {
20
+ [key: string]: any;
21
+ }
22
+
23
+ const ManageCookieModal = ({ toggleModal, handleSentryInit } : IManageCookieModal) => {
24
+ const [analytcisMasterSwitch, setAnalyticsMasterSwitch] = useState(false);
25
+ const [marketingMasterSwitch, setMarketingMasterSwitch] = useState(false);
26
+ const [analyticsSwitches, setAnalyticsSwitches] = useState<IMarketingSwitches>({});
27
+ const [marketingSwitches, setMarketingSwitches] = useState<IMarketingSwitches>({});
28
+
29
+ useEffect(
30
+ () => {
31
+ const newAnalyticsSwitches = Object.values(COOKIE_SCHEMA.analytics)
32
+ .reduce((acc, val) => acc.concat(val), [])
33
+ .reduce((acc, item) => ({ ...acc, [item]: false }), {});
34
+
35
+ const newMarketingSwitches = Object.values(COOKIE_SCHEMA.marketing)
36
+ .reduce((acc, val) => acc.concat(val), [])
37
+ .reduce((acc, item) => ({ ...acc, [item]: false }), {});
38
+ setAnalyticsSwitches(newAnalyticsSwitches);
39
+ setMarketingSwitches(newMarketingSwitches);
40
+ },
41
+ []
42
+ );
43
+
44
+ const onHandleAnalyticsSwitchValue = (value: boolean) => {
45
+ const newAnalyticsSwitches = Object.values(COOKIE_SCHEMA.analytics)
46
+ .reduce((acc, val) => acc.concat(val), [])
47
+ .reduce((acc, item) => ({ ...acc, [item]: value }), {});
48
+
49
+ setAnalyticsSwitches(newAnalyticsSwitches);
50
+ setAnalyticsMasterSwitch(value);
51
+ };
52
+
53
+ const onHandleMarketingSwitchValue = (value: boolean) => {
54
+ const newMarketingSwitches = Object.values(COOKIE_SCHEMA.marketing)
55
+ .reduce((acc, val) => acc.concat(val), [])
56
+ .reduce((acc, item) => ({ ...acc, [item]: value }), {});
57
+ setMarketingSwitches(newMarketingSwitches);
58
+ setMarketingMasterSwitch(value);
59
+ };
60
+
61
+ const marketingSwitchProps = {
62
+ value: marketingMasterSwitch,
63
+ onChange: onHandleMarketingSwitchValue
64
+ };
65
+
66
+ const analyticsSwitchProps = {
67
+ value: analytcisMasterSwitch,
68
+ onChange: onHandleAnalyticsSwitchValue
69
+ };
70
+
71
+ const necessarySwitchProps = {
72
+ disabled: true,
73
+ value: true,
74
+ onChange: () => {}
75
+ };
76
+
77
+ const onAccept = (value?: Record<string, any>) => {
78
+ const cookieConfig = value || {
79
+ marketing: Object.keys(marketingSwitches).filter(i => !marketingSwitches[i]) || [],
80
+ analytics: Object.keys(analyticsSwitches).filter(i => !analyticsSwitches[i]) || []
81
+ };
82
+ localStorage.setItem('cookieConfig', JSON.stringify(cookieConfig));
83
+ updateCookieList(handleSentryInit);
84
+ toggleModal();
85
+ };
86
+
87
+ const onHandleChangeInnerSwitchAnalytics = (cookiesFromCategory: any, isChecked: boolean) => {
88
+ const updatedSwitches = { ...analyticsSwitches };
89
+ for (const item of cookiesFromCategory) {
90
+ updatedSwitches[item] = !isChecked
91
+ }
92
+ setAnalyticsSwitches(updatedSwitches);
93
+ };
94
+
95
+ const onHandleChangeInnerSwitchMarketing = (cookiesFromCategory: any, isChecked: boolean) => {
96
+ const updatedSwitches = { ...marketingSwitches };
97
+ for (const item of cookiesFromCategory) {
98
+ updatedSwitches[item] = !isChecked
99
+ }
100
+ setMarketingSwitches(updatedSwitches);
101
+ };
102
+
103
+ return (
104
+ <div className={styles.modalWrapper}>
105
+ <IconSVG name='autodeLogo' customDimensions />
106
+ <div className={styles.modalTitle}>Nach den Cookies geht die Fahrt weiter.</div>
107
+ <div className={styles.modalContent}>Für ein bestmögliches Nutzererlebnis setzen wir Cookies und andere Technologien ein. Diese können Sie hier verwalten.</div>
108
+ <div className={styles.accordions}>
109
+ <MaterialAccordionGroup
110
+ title='Notwendig'
111
+ tooltipText='Notwendig'
112
+ withSwitch
113
+ switchProps={necessarySwitchProps}
114
+ >
115
+ <span>Wir verwenden Browser-Cookies, die notwendig sind, damit die Website wie vorgesehen funktioniert. Beispiel: Wir speichern Ihre Präferenzen bei der Datenerfassung auf der Website, damit wir sie berücksichtigen können, wenn Sie auf unsere Website zurückkehren. Sie können diese Cookies in den Einstellungen Ihres Browsers deaktivieren, aber wenn Sie dies tun, funktioniert die Website möglicherweise nicht wie vorgesehen.</span>
116
+ {Object.keys(COOKIE_SCHEMA.necessary).map(cookie => {
117
+ const getLinkFromCategory = _get(COOKIE_SCHEMA_LINKS, [cookie], '');
118
+ return (
119
+ <div className={styles.switchBlock} key={cookie} >
120
+ <span className={styles.switchBlockTitle}>{cookie}</span>
121
+ <a className={styles.switchBlockLink} href={getLinkFromCategory} target='_blank'>Datenschutzbestimmungen</a>
122
+ <MaterialSwitch sx={{ marginLeft: 'auto' }} disabled={true} value={true} onChange={() => {}} />
123
+ </div>
124
+ );
125
+ })}
126
+ </MaterialAccordionGroup>
127
+ <MaterialAccordionGroup
128
+ title='Analytisch'
129
+ withSwitch
130
+ tooltipText='Analytisch'
131
+ switchProps={analyticsSwitchProps}
132
+ >
133
+ <span>Um das Nutzerverhalten zu verstehen und Ihnen ein relevanteres Surferlebnis zu bieten oder den Inhalt unserer Website zu personalisieren. Beispiel: Wir sammeln Informationen darüber, welche Seiten Sie besuchen, damit wir Ihnen relevantere Informationen präsentieren können.</span>
134
+ {Object.keys(COOKIE_SCHEMA.analytics).map(cookie => {
135
+ const getItemsFromCategory = _get(COOKIE_SCHEMA, `analytics['${cookie}']`, null);
136
+ const getLinkFromCategory = _get(COOKIE_SCHEMA_LINKS, [cookie], '');
137
+ const isChecked = getItemsFromCategory.every((item: string) => analyticsSwitches[item] === false);
138
+ return (
139
+ <div className={styles.switchBlock} key={cookie} >
140
+ <span className={styles.switchBlockTitle}>{cookie}</span>
141
+ <a className={styles.switchBlockLink} href={getLinkFromCategory} target='_blank'>Datenschutzbestimmungen</a>
142
+ <MaterialSwitch
143
+ sx={{ marginLeft: 'auto' }}
144
+ value={analytcisMasterSwitch}
145
+ onChange={() => onHandleChangeInnerSwitchAnalytics(getItemsFromCategory, isChecked)}
146
+ />
147
+ </div>
148
+ );
149
+ })}
150
+ </MaterialAccordionGroup>
151
+ <MaterialAccordionGroup
152
+ title='Marketing'
153
+ withSwitch
154
+ tooltipText='Marketing'
155
+ switchProps={marketingSwitchProps}
156
+ >
157
+ <span>Zur Personalisierung und Messung der Effektivität von Werbung auf unserer Website und anderen Websites. Beispiel: Wir können Ihnen eine personalisierte Werbung auf der Grundlage der von Ihnen besuchten Seiten auf unserer Website anzeigen.</span>
158
+ {Object.keys(COOKIE_SCHEMA.marketing).map(cookie => {
159
+ const getItemsFromCategory = _get(COOKIE_SCHEMA, `marketing['${cookie}']`, null);
160
+ const getLinkFromCategory = _get(COOKIE_SCHEMA_LINKS, [cookie], '');
161
+ const isChecked = getItemsFromCategory.every((item: string) => marketingSwitches[item] === false);
162
+ return (
163
+ <div className={styles.switchBlock} key={cookie} >
164
+ <span className={styles.switchBlockTitle}>{cookie}</span>
165
+ <a className={styles.switchBlockLink} href={getLinkFromCategory} target='_blank'>Datenschutzbestimmungen</a>
166
+ <MaterialSwitch
167
+ sx={{ marginLeft: 'auto' }}
168
+ value={marketingMasterSwitch}
169
+ onChange={() => onHandleChangeInnerSwitchMarketing(getItemsFromCategory, isChecked)}
170
+ />
171
+ </div>
172
+ )
173
+ })}
174
+ </MaterialAccordionGroup>
175
+ </div>
176
+ <div className={styles.buttonsContainer}>
177
+ <Button onClick={() => onAccept()} className={classNames(styles.modalBtn, styles.outlinedBtn)} >Auswahl speichern</Button>
178
+ <Button onClick={() => onAccept({})} className={styles.modalBtn}>Alles akzeptieren</Button>
179
+ </div>
180
+ </div>
181
+ );
182
+ };
183
+
184
+ export default ManageCookieModal;
@@ -0,0 +1,67 @@
1
+ @import '../../../legacy-theme/mixins.styl';
2
+
3
+ .modalWrapper
4
+ padding: 28px 58px 28px
5
+ text-align: center
6
+ box-sizing: border-box
7
+ max-width: 600px
8
+ +media-tablet-down()
9
+ padding: 16px 15px 28px
10
+
11
+ .modalTitle
12
+ font-family: sans-serif
13
+ font-weight: bold
14
+ font-size: 24px;
15
+ line-height: 133.4%;
16
+ color: rgba(76, 78, 100, 0.87)
17
+ margin-top: 20px
18
+
19
+ +media-tablet-down()
20
+ font-size: 16px;
21
+ margin-top: 8px;
22
+
23
+ .modalContent
24
+ font-family: sans-serif
25
+ font-size: 14px;
26
+ line-height: 16px;
27
+ text-align: justify;
28
+ letter-spacing: 0.15px;
29
+ color: rgba(76, 78, 100, 0.87);
30
+ margin-top: 20px
31
+ +media-tablet-down()
32
+ column-gap: 0;
33
+ max-height: 320px;
34
+ overflow-y: scroll;
35
+ padding-right: 10px;
36
+ margin-right: -10px;
37
+ margin-top: 8px
38
+
39
+ .logoContainer
40
+ display: flex
41
+ justify-content: space-between
42
+
43
+ .buttonsContainer
44
+ margin-top: 12px
45
+ display: flex
46
+ justify-content: space-between
47
+ gap: 36px;
48
+ +media-tablet-down()
49
+ column-gap: 0
50
+
51
+ .modalBtn
52
+ height: 38px
53
+ text-transform: capitalize !important
54
+ min-width: calc(50% - 18px) !important
55
+ +media-tablet-down()
56
+ font-size: 11px !important
57
+
58
+ .outlinedBtnLeft
59
+ display: flex;
60
+ justify-content: flex-end;
61
+ color: #005CCB;
62
+ font-size: 16px;
63
+ text-decoration: none;
64
+ margin-top: 12px;
65
+ margin-bottom: 0;
66
+ margin-left: auto;
67
+ max-width: 80px;
@@ -0,0 +1,51 @@
1
+ import React from 'react';
2
+ import IconSVG from '../../../../iconsvg/IconSVG';
3
+ import Button from '../../../Button/Button';
4
+ import styles from './PreviewCookieModal.styl';
5
+ import { updateCookieList } from '../../../../utils/CommonUtils';
6
+
7
+ interface IPreviewCookieModal {
8
+ toggleModal: () => void;
9
+ handleSentryInit?: () => void;
10
+ setModal: (value: string) => void;
11
+ }
12
+
13
+ const PreviewCookieModal = ({ toggleModal, setModal, handleSentryInit } : IPreviewCookieModal) => {
14
+ const environment = window.location.origin;
15
+ const onAcceptAll = () => {
16
+ localStorage.setItem('cookieConfig', JSON.stringify({}));
17
+ updateCookieList(handleSentryInit);
18
+ toggleModal();
19
+ };
20
+
21
+ const onDisableAll = () => {
22
+ localStorage.setItem('cookieConfig', JSON.stringify({
23
+ 'marketing':['cf','cip','cnac','car','test_cookie','IDE', 'bid','youtube'],
24
+ 'analytics':['sentry','callback','locale','uid','PugT','demdex','cto_bundle','tuuid','tuuid_lu','c','CMID','CMPS','CMPRO','uuid2','um','umeh','KRTBCOOKIE_97','IDSYNC','dpm','_kuid_','visitor-id','data-c-ts','data-c','CMTS','mv_tokens','A3','mv_tokens_eu-v1','am_tokens','am_tokens_eu-v1','iteo','_fbp','_clck','_clsk','_uetsid','_uetvid','analytics_storage','ad_storage','functionality_storage','personalization_storage','security_storage','hotjar']
25
+ }));
26
+ updateCookieList(handleSentryInit);
27
+ toggleModal();
28
+ };
29
+
30
+ return (
31
+ <div className={styles.modalWrapper}>
32
+ <div className={styles.logoContainer}>
33
+ <IconSVG name='autodeLogo' customDimensions />
34
+ <Button onClick={onDisableAll} className={styles.modalBtn}>Nur notwendige Cookies</Button>
35
+ </div>
36
+ <div className={styles.modalTitle}>Nach den Cookies geht die Fahrt weiter.</div>
37
+ <div className={styles.modalContent}>
38
+ Wir verwenden Cookies und ähnliche Technologien (insg. „Cookies“). Cookies die notwendig sind, damit die Website wie vorgesehen funktioniert, werden standardmäßig gesetzt. Cookies, die dazu dienen das Nutzerverhalten zu verstehen und Ihnen ein relevantes bzw. personalisiertes Surferlebnis zu bieten, sowie Cookies zur Personalisierung und Messung der Effektivität von Werbung auf unserer und anderen Websites setzen wir nur mit Ihrer Einwilligung ein. Unsere Partner führen diese Daten möglicherweise mit weiteren Daten zusammen, die Sie ihnen bereitgestellt oder die sie im Rahmen Ihrer Nutzung gesammelt haben. Durch Klick auf "Zustimmen" akzeptieren Sie alle Cookies und die beschriebene Verarbeitung Ihrer Daten. Bevor Sie Ihre Zustimmung erteilen, beachten Sie bitte, dass wir Ihre Daten auch mit Partnern mit Sitz in den USA teilen. Die USA weisen kein mit der EU vergleichbares Datenschutzniveau auf. Es besteht das Risiko, dass US-Behörden Zugriff auf Ihre Daten haben und Sie Ihre Betroffenenrechte nicht durchsetzen können. Über "Anpassen" können Sie Ihre Einwilligungen individuell anpassen. Dies ist auch später jederzeit im Bereich&nbsp;
39
+ <a href={`${environment}/datenschutz/`} target='_blank' style={{ textDecoration: 'underline', color: 'rgba(76,78,100,0.87)' }}>Cookie-Richtlinie</a> möglich. Weitere Informationen finden Sie in unserer&nbsp;
40
+ <a href={`${environment}/datenschutz/`} target='_blank' style={{ textDecoration: 'underline', color: 'rgba(76,78,100,0.87)' }}>Datenschutzerklärung</a>.
41
+ </div>
42
+ <a href={`${environment}/impressum/`} target='_blank' className={styles.outlinedBtnLeft}>Impressum</a>
43
+ <div className={styles.buttonsContainer}>
44
+ <Button onClick={() => setModal('MANAGE_COOKIE_MODAL')} className={styles.modalBtn} variant='outlined'>Anpassen</Button>
45
+ <Button onClick={onAcceptAll} className={styles.modalBtn}>zustimmen</Button>
46
+ </div>
47
+ </div>
48
+ );
49
+ };
50
+
51
+ export default PreviewCookieModal;
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+
3
+ const TestModal = () => {
4
+ return <div>test modal</div>;
5
+ };
6
+
7
+ export default TestModal;
@@ -0,0 +1,13 @@
1
+ import { useState } from 'react';
2
+
3
+ const useModal = () => {
4
+ const [isVisible, setIsVisible] = useState(false);
5
+
6
+ const toggleModal = () => {
7
+ setIsVisible(!isVisible);
8
+ };
9
+
10
+ return { isVisible, toggleModal };
11
+ };
12
+
13
+ export default useModal;
@@ -0,0 +1,80 @@
1
+ @import '../legacy-theme/theme.styl';
2
+
3
+ .container
4
+ width: 100%
5
+ font-family: $font-style-arial
6
+ font-size: 12px
7
+ display flex;
8
+
9
+ .imageContainer
10
+ position: relative
11
+ width: 50px
12
+ height: 50px
13
+ border-radius: 50%
14
+ overflow: hidden;
15
+ margin: 10px auto;
16
+
17
+ .leftPanel
18
+ margin-right: 12px;
19
+ text-align center
20
+
21
+ .imagePlaceholder
22
+ display: inline-block
23
+ position: absolute
24
+ top: 0
25
+ left: 0
26
+ right: 0
27
+ bottom: 0
28
+ background-image: url('../../media/images/user-icon.svg')
29
+ background-size: cover
30
+ background-position: center
31
+
32
+ .image
33
+ display: inline-block
34
+ position: absolute
35
+ top: 50%
36
+ left: 50%
37
+ transform: translate(-50%, -50%)
38
+ width: 100%
39
+
40
+ .name
41
+ font-size: 11px
42
+ line-height: 16px;
43
+ color: rgba(0, 0, 0, 0.8);
44
+ -webkit-line-clamp: 2;
45
+ display: -webkit-box;
46
+ -webkit-box-orient: vertical;
47
+ overflow: hidden;
48
+
49
+ .source
50
+ font-size: 11px
51
+ line-height: 16px;
52
+ display block
53
+ margin-top: 3px;
54
+ color: rgba(0, 0, 0, 0.38);
55
+
56
+ .stars
57
+ display: block
58
+ width: 54px
59
+ height: 10px
60
+ margin 0 auto;
61
+ background-image: url('../../media/images/raiting-stars-min.svg')
62
+
63
+ .review
64
+ font-size: 11px
65
+ color: rgba(#000, 65%);
66
+ line-height: 16px;
67
+ display flex;
68
+ flex-direction: column;
69
+ justify-content: space-between;
70
+
71
+ .quote
72
+ color: $skyBlue
73
+
74
+ .content
75
+ max-height: 80px;
76
+ overflow: hidden;
77
+ -webkit-line-clamp: 5;
78
+ display: -webkit-box;
79
+ -webkit-box-orient: vertical;
80
+ overflow: hidden;
@@ -0,0 +1,68 @@
1
+ import * as React from 'react';
2
+ import classNames from 'classnames';
3
+ import styles from './CustomerQuote.styl';
4
+
5
+ interface ICustomerQuoteProps {
6
+ className?: string;
7
+ isHorizontal?: boolean;
8
+
9
+ image?: string;
10
+ name: string;
11
+ source: string;
12
+ review: string;
13
+ }
14
+
15
+ const CustomerQuote: React.FC<ICustomerQuoteProps> = ({ className, isHorizontal, image, name, source, review }) => {
16
+ const renderVerticalLayout = () => (
17
+ <div className={styles.container}>
18
+ <div className={styles.leftPanel}>
19
+ <span className={styles.stars} />
20
+ {renderAvatar()}
21
+ <span className={styles.name}>{name}</span>
22
+ </div>
23
+ <div className={styles.review}>
24
+ <span className={styles.content}>
25
+ <span className={styles.quote}>"</span>
26
+ {review}
27
+ <span className={styles.quote}>"</span>
28
+ </span>
29
+ <span className={styles.source}>{source}</span>
30
+ </div>
31
+ </div>
32
+ );
33
+
34
+ const renderHorizontalLayout = () => (
35
+ <div className={classNames(styles.container, styles.isHorizontal)}>
36
+ <div className={styles.leftPanel}>
37
+ <span className={styles.stars} />
38
+ {renderAvatar()}
39
+ <span className={styles.name}>{name}</span>
40
+ </div>
41
+ <div className={styles.review}>
42
+ <span className={styles.content}>
43
+ <span className={styles.quote}>"</span>
44
+ {review}
45
+ <span className={styles.quote}>"</span>
46
+ </span>
47
+ <span className={styles.source}>{source}</span>
48
+ </div>
49
+ </div>
50
+ );
51
+
52
+ const renderAvatar = () => {
53
+ return (
54
+ <div className={classNames(styles.imageContainer, className)}>
55
+ {image ? <img className={styles.image} src={image} alt='Avatar'/> : <span className={styles.imagePlaceholder} />}
56
+ </div>
57
+ );
58
+ };
59
+
60
+ return isHorizontal ? renderHorizontalLayout() : renderVerticalLayout();
61
+ };
62
+
63
+ CustomerQuote.defaultProps = {
64
+ isHorizontal: false,
65
+ image: ''
66
+ };
67
+
68
+ export default CustomerQuote;
@@ -0,0 +1,46 @@
1
+ @import '../legacy-theme/theme.styl'
2
+
3
+ .slide
4
+ box-sizing: border-box
5
+ border: 1px solid rgba(0, 0, 0, 0.08);
6
+ border-radius: 4px;
7
+ padding 12px;
8
+
9
+ @media all and (max-width: 780px)
10
+ max-width: initial
11
+
12
+ &:focus
13
+ outline: 0;
14
+
15
+ .slide.singleSlide
16
+ max-width: 100%;
17
+ border-radius: 0;
18
+ border: 0;
19
+ padding 0;
20
+
21
+ .slideWrap
22
+ display: flex
23
+ justify-content: center
24
+ border-radius 4px
25
+ margin: 0 10px;
26
+ max-height: 123px;
27
+
28
+ .slideWrap.singleSlideWrap
29
+ margin 0
30
+
31
+ .arrow
32
+ display: inline-block
33
+ position: absolute
34
+ z-index: 2;
35
+ top: 50%
36
+ width: 7px
37
+ height: 16px
38
+ cursor pointer;
39
+
40
+ .arrow.left
41
+ transform: translateY(-50%)
42
+ left: 10px
43
+
44
+ .arrow.right
45
+ transform translateY(-50%) rotate(-180deg)
46
+ right: 10px
@@ -0,0 +1,79 @@
1
+ import React from 'react';
2
+ import Slider from 'react-slick';
3
+ import Arrow from './SliderArrow';
4
+ import classnames from 'classnames';
5
+ import CustomerQuote from './../CustomerQuote/CustomerQuote';
6
+ import { QUOTES_SLIDES_TO_SHOW_DEFAULT } from '../../constants/common';
7
+ import styles from './CustomerQuotesSlider.styl';
8
+ import './slider.global.styl';
9
+
10
+ interface ICustomerQuotesSliderProps {
11
+ className?: string;
12
+ quotes: any[];
13
+ slidesToShow?: number;
14
+ variableWidth?: boolean;
15
+ responsiveConfig?: {
16
+ breakpoint: number,
17
+ settings: { slidesToShow: number }
18
+ }[];
19
+ }
20
+
21
+ const CustomerQuotesSlider: React.FC<ICustomerQuotesSliderProps> = ({
22
+ className, quotes, responsiveConfig, variableWidth = false, slidesToShow = QUOTES_SLIDES_TO_SHOW_DEFAULT
23
+ }) => {
24
+ const sliderProps = {
25
+ className,
26
+ slidesToShow,
27
+ variableWidth,
28
+ dots: false,
29
+ nextArrow: <Arrow direction='right' />,
30
+ prevArrow: <Arrow direction='left' />,
31
+ responsive: responsiveConfig || [
32
+ {
33
+ breakpoint: 1050,
34
+ settings: { slidesToShow: 2.5 }
35
+ },
36
+ {
37
+ breakpoint: 992,
38
+ settings: { slidesToShow: 3 }
39
+ },
40
+ {
41
+ breakpoint: 780,
42
+ settings: { slidesToShow: 2 }
43
+ },
44
+ {
45
+ breakpoint: 520,
46
+ settings: { slidesToShow: 2 }
47
+ },
48
+ {
49
+ breakpoint: 480,
50
+ settings: { slidesToShow: 1 }
51
+ }
52
+ ]
53
+ };
54
+
55
+ const slideWrapClasses = classnames(
56
+ styles.slideWrap,
57
+ { [styles.singleSlideWrap]: slidesToShow === 1 }
58
+ );
59
+
60
+ const slideClasses = classnames(
61
+ styles.slide,
62
+ { [styles.singleSlide]: slidesToShow === 1 }
63
+ );
64
+
65
+ return (
66
+ <Slider {...sliderProps}>
67
+ {quotes.map(q => (
68
+ <div className={slideClasses} key={`customer-quote-${q.id}`}>
69
+ <div className={slideWrapClasses}>
70
+ <CustomerQuote {...q} />
71
+ </div>
72
+ </div>
73
+ ))
74
+ }
75
+ </Slider>
76
+ );
77
+ };
78
+
79
+ export default CustomerQuotesSlider;