@bytebrand/fe-ui-core 4.8.54 → 4.8.55

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 (194) hide show
  1. package/.husky/pre-push +4 -0
  2. package/.storybook/addons.js +4 -0
  3. package/.storybook/config.js +64 -0
  4. package/.storybook/postcss.config.js +6 -0
  5. package/.storybook/preview-head.html +10 -0
  6. package/.storybook/webpack.config.js +130 -0
  7. package/__tests__/components/Checkout/OrderOverviewItem/OrderOverviewItem.test.tsx +42 -0
  8. package/__tests__/components/Checkout/PaymentTypeCard/PaymentTypeCard.test.tsx +50 -0
  9. package/__tests__/components/Checkout/RadioGroup.test.tsx +95 -0
  10. package/__tests__/components/Checkout/ServiceCardWrapper.test.tsx +53 -0
  11. package/__tests__/components/Checkout/Switcher.test.tsx +43 -0
  12. package/__tests__/components/UserDasboardPage/sections/CheckoutSection/CheckoutSection.test.tsx +613 -0
  13. package/__tests__/components/UserDasboardPage/sections/FavoriteSection/FavoriteSection.test.tsx +335 -0
  14. package/__tests__/components/UserDasboardPage/sections/OrderStatusSection/AdditionalOrderInfo.test.tsx +127 -0
  15. package/__tests__/components/UserDasboardPage/sections/OrderStatusSection/OrderStatusCar.test.tsx +58 -0
  16. package/__tests__/components/UserDasboardPage/sections/OrderStatusSection/OrderStatusCard.test.tsx +74 -0
  17. package/__tests__/components/UserDasboardPage/sections/OrderStatusSection/OrderStatusSection.test.tsx +62 -0
  18. package/__tests__/components/UserDasboardPage/sections/RequestedCarsSection/RequestedCarsSection.test.tsx +117 -0
  19. package/__tests__/components/Vehicle/VehicleFormattedPrice/VehicleFormattedPrice.test.tsx +58 -0
  20. package/__tests__/components/VehicleSmallCard/VehicleInfo.test.tsx +88 -0
  21. package/__tests__/components/VehicleSmallCard/VehicleTitle.test.tsx +91 -0
  22. package/__tests__/components/_common/Badge/Badge.test.tsx +15 -0
  23. package/__tests__/components/_common/IconSVG/IconSVG.test.tsx +23 -0
  24. package/__tests__/components/_common/Image/Image.test.tsx +82 -0
  25. package/__tests__/components/_common/MaterialAutocomplete/MaterialAutocomplete.test.tsx +49 -0
  26. package/__tests__/components/_common/MaterialDatePicker/MaterialDatePicker.test.tsx +54 -0
  27. package/__tests__/components/_common/MaterialField/MaterialField.test.tsx +58 -0
  28. package/__tests__/components/_common/StarButton/StarButton.test.tsx +46 -0
  29. package/__tests__/mockedData/financingConfig.js +202 -0
  30. package/__tests__/mockedData/mockedPendingRequestedCar.js +69 -0
  31. package/__tests__/utils/CommonUtils/addPrefixToKeys.test.ts +18 -0
  32. package/__tests__/utils/CommonUtils/arrToObj.test.js +32 -0
  33. package/__tests__/utils/CommonUtils/checkRangeValuesOnEqual.test.ts +17 -0
  34. package/__tests__/utils/CommonUtils/fixNumber.test.ts +20 -0
  35. package/__tests__/utils/CommonUtils/formatMileage.test.ts +8 -0
  36. package/__tests__/utils/CommonUtils/getChipFilterValue.test.ts +22 -0
  37. package/__tests__/utils/CommonUtils/getFormattedNumber.test.ts +19 -0
  38. package/__tests__/utils/CommonUtils/getFormattedPrice.test.ts +19 -0
  39. package/__tests__/utils/CommonUtils/getGroupValuesForQuery.test.ts +51 -0
  40. package/__tests__/utils/CommonUtils/getOfferSliders.test.ts +64 -0
  41. package/__tests__/utils/CommonUtils/getPriceRating.test.ts +26 -0
  42. package/__tests__/utils/CommonUtils/getPriceRatingConfig.test.ts +33 -0
  43. package/__tests__/utils/CommonUtils/preloadNearbyImages.test.ts +9 -0
  44. package/__tests__/utils/CommonUtils/sliceLessThan.test.ts +23 -0
  45. package/__tests__/utils/CommonUtils/sliceMoreThan.test.ts +23 -0
  46. package/media/locales/de/promoSlider.json +1 -0
  47. package/media/locales/en/promoSlider.json +1 -0
  48. package/package.json +117 -120
  49. package/source/components/AccordionWidget/AccordionWidget.styl +1 -0
  50. package/source/components/AccordionWidget/AccordionWidget.tsx +8 -4
  51. package/source/components/AdvantageItem/AdvantageItem.story.js +23 -0
  52. package/source/components/Alternative/Dealer.story.js +32 -0
  53. package/source/components/Alternative/Dealer.story.styl +3 -0
  54. package/source/components/Breadcrumbs/Breadcrumbs.story.js +40 -0
  55. package/source/components/Breadcrumbs/FirstInfoBlock/FirstInfoBlock.story.js +45 -0
  56. package/source/components/Checkout/OrderOverviewItem/OrderOverviewItem.story.js +243 -0
  57. package/source/components/Checkout/OrderOverviewItem/OrderOverviewItem.story.styl +21 -0
  58. package/source/components/Checkout/RadioCards/RadioGroupCheckout.story.js +105 -0
  59. package/source/components/Checkout/RadioCards/RadioGroupCheckout.story.styl +37 -0
  60. package/source/components/Checkout/Switcher/Switcher.story.js +41 -0
  61. package/source/components/Checkout/Switcher/Switcher.story.styl +2 -0
  62. package/source/components/CompactSearchWidget/CompactSearchWidget.story.js +187 -0
  63. package/source/components/ContactForm/ContactForm.story.js +94 -0
  64. package/source/components/ContactForm/ContactForm.story.styl +0 -0
  65. package/source/components/ContactInfo/ContactInfo.story.js +58 -0
  66. package/source/components/CustomerQuote/CustomerQuote.story.js +41 -0
  67. package/source/components/CustomerQuotesSlider/CustomerQuotesSlider.story.js +73 -0
  68. package/source/components/CustomerQuotesSlider/CustomerQuotesSlider.story.styl +5 -0
  69. package/source/components/FormattedNumber/FormattedNumber.story.js +114 -0
  70. package/source/components/InfoBlocks/InfoBlockWrapper.story.js +101 -0
  71. package/source/components/InfoBlocks/InfoBlockWrapper.story.styl +46 -0
  72. package/source/components/OfferPanel/AboAccordion/AboFaq/AboFaq.story.js +97 -0
  73. package/source/components/OfferPanel/OfferCheckboxGroup/CheckboxContainer.tsx +2 -2
  74. package/source/components/OfferPanel/OfferCheckboxGroup/OfferCheckboxGroup.styl +24 -0
  75. package/source/components/OfferPanel/OfferCheckboxGroup/OfferCheckboxGroup.tsx +0 -1
  76. package/source/components/OfferPanel/OfferPanel.story.js +139 -0
  77. package/source/components/OfferPanel/OfferPanel.tsx +1 -1
  78. package/source/components/OfferPanel/RangeGroup/RangeGroup.story.js +35 -0
  79. package/source/components/OfferPanel/RangeGroup/RangeGroup.story.styl +3 -0
  80. package/source/components/PriceRating/PriceRating.story.js +39 -0
  81. package/source/components/PriceRating/PriceRating.story.styl +2 -0
  82. package/source/components/PriceRatingDetailed/PriceRatingDetailed.story.js +78 -0
  83. package/source/components/PriceRatingDetailed/PriceRatingDetailed.story.styl +11 -0
  84. package/source/components/RateSearchValue/RateSearchValue.story.js +78 -0
  85. package/source/components/RateSearchValue/RateSearchValue.story.styl +2 -0
  86. package/source/components/RateSearchWidget/RateSearchWidget.story.js +57 -0
  87. package/source/components/RateSearchWidget/RateSearchWidget.story.styl +12 -0
  88. package/source/components/SearchFilters/FiltersFactory.story.js +273 -0
  89. package/source/components/SearchPage/Filters/MakeModel/MakeModel.story.js +12 -0
  90. package/source/components/SearchWidget/BasicDataWidget/BasicDataWidget.story.js +834 -0
  91. package/source/components/SearchWidget/BasicDataWidget/BasicDataWidget.story.styl +40 -0
  92. package/source/components/SearchWidget/SearchWidget.story.js +191 -0
  93. package/source/components/SearchWidget/SearchWidget.story.styl +6 -0
  94. package/source/components/Stepper/Stepper.story.js +119 -0
  95. package/source/components/Stepper/Stepper.story.styl +41 -0
  96. package/source/components/Theme.story.js +36 -0
  97. package/source/components/Theme.story.styl +85 -0
  98. package/source/components/TickerText/TickerText.story.js +17 -0
  99. package/source/components/UserDashboardPage/sections/OrderStatusSection/OrderStatusSection.story.js +95 -0
  100. package/source/components/UserDashboardPage/sections/RequestedCarsSection/RequestedCarsSection.story.js +97 -0
  101. package/source/components/Vehicle/VehicleConsumption/VehicleConsumption.story.js +31 -0
  102. package/source/components/Vehicle/VehicleFormattedPrice/VehicleFormattedPrice.story.js +247 -0
  103. package/source/components/VehicleCompared/CompareGeneral/CompareGeneral.story.js +30 -0
  104. package/source/components/VehicleCompared/ComparePrice/ComparePrice.story.js +18 -0
  105. package/source/components/VehicleCompared/CompareTitle/CompareTitle.story.js +19 -0
  106. package/source/components/VehicleDetailedSidebar/VehicleDetailedSidebar.story.js +44 -0
  107. package/source/components/VehicleDetailedSidebar/VehicleDetailedSidebar.tsx +23 -11
  108. package/source/components/VehicleDetailedSlider/VehicleDetailedSlider.story.js +120 -0
  109. package/source/components/VehicleDetailedSlider/VehicleDetailedSlider.tsx +2 -0
  110. package/source/components/VehicleDetailedSlider/partials/PriceData.tsx +7 -4
  111. package/source/components/VehiclePromoSlider/VehiclePromoInfo/VehiclePromoInfo.story.js +42 -0
  112. package/source/components/VehiclePromoSlider/VehiclePromoSlide/VehiclePromoSlide.story.js +62 -0
  113. package/source/components/VehiclePromoSlider/VehiclePromoSlider.story.js +42 -0
  114. package/source/components/VehicleSmallCard/VehicleData/VechiclePriceItem/VechiclePriceItem.styl +5 -0
  115. package/source/components/VehicleSmallCard/VehicleData/VechiclePriceItem/VechiclePriceItem.tsx +3 -1
  116. package/source/components/VehicleSmallCard/VehicleData/VehicleInfo/VehicleInfo.styl +1 -1
  117. package/source/components/VehicleSmallCard/VehicleData/VehicleInfo/VehicleInfo.tsx +24 -11
  118. package/source/components/VehicleSmallCard/VehicleData/VehiclePrice/VehiclePrice.styl +3 -2
  119. package/source/components/VehicleSmallCard/VehicleData/VehicleProperty/VehicleProperty.styl +4 -1
  120. package/source/components/VehicleSmallCard/VehicleData/VehicleProperty/VehicleProperty.tsx +3 -2
  121. package/source/components/VehicleSmallCard/VehicleData/VehicleTitle/VehicleTitle.tsx +1 -1
  122. package/source/components/VehicleSmallCard/VehicleSmallCard.story.js +412 -0
  123. package/source/components/VehicleSmallCard/VehicleSmallCard.story.styl +56 -0
  124. package/source/components/VehicleSmallCard/VehicleSmallCard.tsx +14 -3
  125. package/source/components/VehicleSmallCardForDealerships/VehicleSmallCardForDealerships.story.js +199 -0
  126. package/source/components/VehicleSmallCardForDealerships/VehicleSmallCardForDealerships.story.styl +40 -0
  127. package/source/components/_common/Accordion/Accordion.story.js +36 -0
  128. package/source/components/_common/Badge/Badge.story.js +27 -0
  129. package/source/components/_common/Badge/Badge.story.styl +5 -0
  130. package/source/components/_common/Bubble/Bubble.story.js +52 -0
  131. package/source/components/_common/Button/Button.story.js +52 -0
  132. package/source/components/_common/Button/Button.story.styl +5 -0
  133. package/source/components/_common/ButtonOld/Button.story.js +54 -0
  134. package/source/components/_common/ButtonOld/Button.story.styl +5 -0
  135. package/source/components/_common/Checkbox/Checkbox.story.js +85 -0
  136. package/source/components/_common/Checkbox/Checkbox.story.styl +14 -0
  137. package/source/components/_common/CheckboxMaterial/CheckboxMaterial.story.js +126 -0
  138. package/source/components/_common/CheckboxMaterial/CheckboxMaterial.story.styl +14 -0
  139. package/source/components/_common/Chip/Chip.story.js +43 -0
  140. package/source/components/_common/ChipList/ChipList.story.js +36 -0
  141. package/source/components/_common/DropDown/DropDown.story.js +35 -0
  142. package/source/components/_common/ExpandablePanel/ExpandablePanel.story.js +41 -0
  143. package/source/components/_common/Histogram/Histogram.story.js +51 -0
  144. package/source/components/_common/IconSVG/IconSVG.story.js +21 -0
  145. package/source/components/_common/IconSVG/IconSVG.story.styl +25 -0
  146. package/source/components/_common/Image/Image.story.js +142 -0
  147. package/source/components/_common/Image/Image.story.styl +18 -0
  148. package/source/components/_common/ImagesSet/ImagesSet.story.js +34 -0
  149. package/source/components/_common/ImagesSet/ImagesSet.story.styl +4 -0
  150. package/source/components/_common/Loader/Loader.story.js +21 -0
  151. package/source/components/_common/MaterialAccordionGroup/MaterialAccordionGroup.story.js +49 -0
  152. package/source/components/_common/MaterialAccordionGroup/MaterialAccordionGroup.styled.tsx +4 -1
  153. package/source/components/_common/MaterialDatePicker/MaterialDatePicker.story.js +45 -0
  154. package/source/components/_common/MaterialDatePicker/MaterialDatePicker.story.styl +6 -0
  155. package/source/components/_common/MaterialField/MaterialField.story.js +87 -0
  156. package/source/components/_common/MaterialField/MaterialField.story.styl +34 -0
  157. package/source/components/_common/MaterialSelect/MaterialSelect.story.js +52 -0
  158. package/source/components/_common/MaterialSelect/MaterialSelect.story.styl +6 -0
  159. package/source/components/_common/MaterialStepButton/MaterialStepButton.story.js +47 -0
  160. package/source/components/_common/MaterialStepButton/MaterialStepButton.story.styl +6 -0
  161. package/source/components/_common/MaterialSwitch/MaterialSwitch.story.js +17 -0
  162. package/source/components/_common/MaterialTooltip/MaterialTooltip.story.js +10 -0
  163. package/source/components/_common/MaterialTooltip/MaterialTooltip.tsx +4 -3
  164. package/source/components/_common/Modal/Modal.story.js +37 -0
  165. package/source/components/_common/MuiGroupedSelect/MuiGroupedSelect.story.js +21 -0
  166. package/source/components/_common/PropertySelector/PSGroup.story.js +93 -0
  167. package/source/components/_common/PropertySelector/PSGroup.story.styl +25 -0
  168. package/source/components/_common/PropertySelector/ProperySelector.story.js +83 -0
  169. package/source/components/_common/Radio/FormRadioGroup.story.js +28 -0
  170. package/source/components/_common/Radio/FormRadioGroup.story.styl +2 -0
  171. package/source/components/_common/Radio/Radio.story.js +54 -0
  172. package/source/components/_common/Radio/RadioGroup.story.js +90 -0
  173. package/source/components/_common/Radio/RadioGroup.story.styl +39 -0
  174. package/source/components/_common/Range/Range.story.js +46 -0
  175. package/source/components/_common/Range/Range.story.styl +5 -0
  176. package/source/components/_common/SliderArrow/SliderArrow.story.js +18 -0
  177. package/source/components/_common/Tabs/Tabs.story.js +56 -0
  178. package/source/components/_common/TimePicker/TimePicker.story.js +37 -0
  179. package/source/components/_common/Tooltip/Tooltip.story.js +28 -0
  180. package/source/components/_common/UserMenu/MaterialMenu.story.js +73 -0
  181. package/source/components/_common/VehicleSlider/VehicleSlider.story.js +99 -0
  182. package/source/components/_common/VehicleSlider/VehicleSlider.story.styl +0 -0
  183. package/source/components/_common/withLabel/withLabel.story.js +62 -0
  184. package/source/components/_common/withPopover/withPopover.story.js +48 -0
  185. package/source/components/_common/withPopover/withPopover.story.styl +54 -0
  186. package/source/components/_common/withStats/withStats.story.js +75 -0
  187. package/source/components/_common/withStats/withStats.styl +10 -0
  188. package/source/components/_common/withStats/withStats.tsx +2 -11
  189. package/source/framework/DataTransformers.ts +1 -0
  190. package/source/framework/constants/common.ts +8 -4
  191. package/source/framework/types/types.ts +1 -0
  192. package/source/framework/vehiclesProps/decoratedLightProps.tsx +48 -12
  193. package/source/framework/vehiclesProps/decoratedProps.tsx +35 -8
  194. package/source/locales/data.ts +3 -0
@@ -0,0 +1,40 @@
1
+ @import '../../theme/theme.styl';
2
+
3
+ .wrapper
4
+ // position: fixed
5
+ width: 100%
6
+ height: 100%
7
+ left: 0px
8
+ background-color: red;
9
+ top: 0px
10
+ display: flex
11
+ background-color #CBCBCB
12
+ font-family: $font-style-arial
13
+
14
+ .resizable
15
+ margin-top: 0;
16
+ width: 375px;
17
+ padding: 100px;
18
+
19
+ .propsContainer
20
+ overflow-y: auto
21
+
22
+ .title
23
+ text-align: center
24
+ font-size: 22px
25
+ font-weight: bold
26
+
27
+ .input
28
+ display: inline-block !important
29
+ margin-left: 10px
30
+ position: absolute
31
+ right: 0
32
+
33
+ :global
34
+ .react-checkbox-tree
35
+ width: 550px
36
+ margin-right: 10px
37
+ padding-right: 10px
38
+ .rct-node
39
+ margin: 10px 0
40
+ position: relative
@@ -0,0 +1,36 @@
1
+ import React from 'react';
2
+ import { storiesOf } from '@storybook/react';
3
+ import { action } from '@storybook/addon-actions';
4
+
5
+ import Accordion from './Accordion';
6
+
7
+ const Label = ({ opened }) => (
8
+ <div style={{ padding: 10, borderBottom: '1px solid lightgray' }}>
9
+ {opened ? '-' : '+'} Some label here.
10
+ </div>
11
+ );
12
+
13
+ const Content = ({ opened }) => (
14
+ <div style={{ padding: 10 }}>
15
+ Wow some expandable content.
16
+ </div>
17
+ );
18
+
19
+ const item = {
20
+ content: <Content />,
21
+ title: <Label />
22
+ };
23
+
24
+ const props = {
25
+ // toggleMany: true,
26
+ defaultOpened: 0,
27
+ items: [item, item, item],
28
+ accordionName: 'storybookAccordion',
29
+ onPanelFocus: (panelKey) => action(`onPanelFocus ${panelKey}`),
30
+ onToggle: action('state changed')
31
+ };
32
+
33
+ storiesOf('_Common_UI', module)
34
+ .add('Accordion', () => (
35
+ <Accordion {...props} />
36
+ ));
@@ -0,0 +1,27 @@
1
+ import React from 'react';
2
+
3
+ import { storiesOf } from '@storybook/react';
4
+ import { ROW_STYLES } from '../../../framework/constants';
5
+ import styles from './Badge.story.styl';
6
+ import Badge from './Badge';
7
+
8
+ storiesOf('_Common_UI', module)
9
+ .add('Badge', () => (
10
+ <div>
11
+ <div style={ROW_STYLES}>
12
+ <Badge>Push me </Badge>
13
+ </div>
14
+ <div style={ROW_STYLES}>
15
+ <Badge type='blue'>And then just</Badge>
16
+ </div>
17
+ <div style={ROW_STYLES}>
18
+ <Badge type='grey'>Touch me</Badge>
19
+ </div>
20
+ <div style={ROW_STYLES}>
21
+ <Badge type='green'>Until i get my</Badge>
22
+ </div>
23
+ <div style={ROW_STYLES}>
24
+ <Badge type='green' className={styles.customClass}>Until i get my</Badge>
25
+ </div>
26
+ </div>
27
+ ));
@@ -0,0 +1,5 @@
1
+ .customClass
2
+ width: 200px
3
+ height: 40px
4
+ font-size: 20px
5
+ line-height: 38px
@@ -0,0 +1,52 @@
1
+ import React from 'react';
2
+ import { storiesOf } from '@storybook/react';
3
+
4
+ import Bubble from './Bubble';
5
+
6
+ const stories = [
7
+ {
8
+ props: {
9
+ size: 'large',
10
+ type: 'orange',
11
+ children: <div style={{ display: 'flex', flexDirection: 'column' }}>
12
+ <span style={{ fontSize: 40, fontWeight: 700 }}>30 %</span>
13
+ <span style={{ fontSize: 24, fontWeight: 700 }}>SPAREN</span>
14
+ </div>
15
+ }
16
+ },
17
+ {
18
+ props: {
19
+ size: 'medium',
20
+ type: 'green',
21
+ children: <div style={{ display: 'flex', flexDirection: 'column', textAlign: 'center' }}>
22
+ <span style={{ fontSize: 24, fontWeight: 700 }}>Jahre</span>
23
+ <span style={{ fontSize: 14 }}>GARANTIE</span>
24
+ </div>
25
+ }
26
+ },
27
+ {
28
+ props: {
29
+ size: 'small',
30
+ type: 'yellow',
31
+ children: <span>0</span>
32
+ }
33
+ },
34
+ {
35
+ props: {
36
+ size: 'tiny',
37
+ type: 'orange',
38
+ children: <span style={{ fontSize: 12 }}>0</span>
39
+ }
40
+ }
41
+ ]
42
+
43
+ storiesOf('_Common_UI', module)
44
+ .add('Bubble', () => (
45
+ <div style={{ display: 'flex', flexDirection: 'column' }}>
46
+ {stories.map(({ props }) => (
47
+ <div>
48
+ <Bubble {...props} />
49
+ </div>
50
+ ))}
51
+ </div>
52
+ ));
@@ -0,0 +1,52 @@
1
+ import React from 'react';
2
+
3
+ import { storiesOf } from '@storybook/react';
4
+ import { action } from '@storybook/addon-actions';
5
+ import { ROW_STYLES } from '../../../framework/constants';
6
+
7
+ import Button from './Button.tsx';
8
+ import styles from './Button.story.styl';
9
+
10
+ const btnDefault = {
11
+ loading: false,
12
+ disabled: false,
13
+
14
+ onClick: action('button click'),
15
+ onHover: action('button hover'),
16
+
17
+ onMouseEnter: action('button mouse enter'),
18
+ onMouseLeave: action('button mouse leave')
19
+ };
20
+ const btnSecondary = Object.assign({}, btnDefault, { color: 'primary' });
21
+ const btnDanger = Object.assign({}, btnDefault, { color: 'secondary' });
22
+ const btnGhost = Object.assign({}, btnDefault, { color: 'primary', variant: 'outlined' });
23
+ const btnLoading = Object.assign({}, btnDefault, { loading: true });
24
+ const btnDisabled = Object.assign({}, btnDefault, { disabled: true });
25
+ const btnCustomSize = Object.assign({}, btnDefault, { className: styles.button });
26
+
27
+ storiesOf('_Common_UI', module)
28
+ .add('Button', () => (
29
+ <div>
30
+ <div style={ROW_STYLES}>
31
+ <Button {...btnDefault }>Push me </Button>
32
+ </div>
33
+ <div style={ROW_STYLES}>
34
+ <Button {...btnSecondary}>And then just</Button>
35
+ </div>
36
+ <div style={ROW_STYLES}>
37
+ <Button {...btnDanger} color='secondary'>Touch me</Button>
38
+ </div>
39
+ <div style={ROW_STYLES}>
40
+ <Button {...btnGhost} color='primary' variant='outlined'>Touch me</Button>
41
+ </div>
42
+ <div style={ROW_STYLES}>
43
+ <Button {...btnDisabled}>Until i get my</Button>
44
+ </div>
45
+ <div style={ROW_STYLES}>
46
+ <Button {...btnLoading}>Until i get my</Button>
47
+ </div>
48
+ <div style={ROW_STYLES}>
49
+ <Button {...btnCustomSize}>satisfaction, satisfaction, satisfaction</Button>
50
+ </div>
51
+ </div>
52
+ ));
@@ -0,0 +1,5 @@
1
+ .button
2
+ width: 280px
3
+ height: 50px
4
+ background-color: #BADA55
5
+ text-transform: uppercase
@@ -0,0 +1,54 @@
1
+ import React from 'react';
2
+
3
+ import { storiesOf } from '@storybook/react';
4
+ import { action } from '@storybook/addon-actions';
5
+ import { ROW_STYLES } from '../../../framework/constants';
6
+
7
+ import Button from './Button.tsx';
8
+ import styles from './Button.story.styl';
9
+
10
+ const btnDefault = {
11
+ type: 'primary',
12
+
13
+ loading: false,
14
+ disabled: false,
15
+
16
+ onClick: action('button click'),
17
+ onHover: action('button hover'),
18
+
19
+ onMouseEnter: action('button mouse enter'),
20
+ onMouseLeave: action('button mouse leave')
21
+ };
22
+ const btnSecondary = Object.assign({}, btnDefault, { type: 'secondary' });
23
+ const btnDanger = Object.assign({}, btnDefault, { type: 'danger' });
24
+ const btnGhost = Object.assign({}, btnDefault, { type: 'ghost' });
25
+ const btnLoading = Object.assign({}, btnDefault, { loading: true });
26
+ const btnDisabled = Object.assign({}, btnDefault, { disabled: true });
27
+ const btnCustomSize = Object.assign({}, btnDefault, { className: styles.button });
28
+
29
+ storiesOf('_Common_UI', module)
30
+ .add('ButtonOld', () => (
31
+ <div>
32
+ <div style={ROW_STYLES}>
33
+ <Button {...btnDefault}>Push me </Button>
34
+ </div>
35
+ <div style={ROW_STYLES}>
36
+ <Button {...btnSecondary}>And then just</Button>
37
+ </div>
38
+ <div style={ROW_STYLES}>
39
+ <Button {...btnDanger}>Touch me</Button>
40
+ </div>
41
+ <div style={ROW_STYLES}>
42
+ <Button {...btnGhost}>Touch me</Button>
43
+ </div>
44
+ <div style={ROW_STYLES}>
45
+ <Button {...btnDisabled}>Until i get my</Button>
46
+ </div>
47
+ <div style={ROW_STYLES}>
48
+ <Button {...btnLoading}>Until i get my</Button>
49
+ </div>
50
+ <div style={ROW_STYLES}>
51
+ <Button {...btnCustomSize}>satisfaction, satisfaction, satisfaction</Button>
52
+ </div>
53
+ </div>
54
+ ));
@@ -0,0 +1,5 @@
1
+ .button
2
+ width: 280px
3
+ height: 50px
4
+ background-color: #BADA55
5
+ text-transform: uppercase
@@ -0,0 +1,85 @@
1
+ import React, { useState } from 'react';
2
+ import { storiesOf } from '@storybook/react';
3
+ import { action } from '@storybook/addon-actions';
4
+
5
+ import { ROW_STYLES } from '../../../framework/constants';
6
+ import Checkbox from './Checkbox';
7
+ import FormCheckbox from './FormCheckbox';
8
+
9
+ import styles from './Checkbox.story.styl';
10
+
11
+ // Props related to FormCheckbox stories
12
+ const basePropsForm = {
13
+ field: { bind: () => { } },
14
+ label: 'Some label here'
15
+ };
16
+
17
+ const withErrorForm = {
18
+ field: { bind: () => { }, hasError: true, error: 'Something went wrong'},
19
+ label: 'Some label here',
20
+ };
21
+
22
+ const CheckboxWrap = () => {
23
+ const [checked, setChecked] = useState(false);
24
+
25
+ // Props related to the Checkbox stories
26
+ const baseProps = {
27
+ checked,
28
+ value: 'some bitchy value',
29
+ label: <span>wow, so label!</span>,
30
+ onChange: (e, checked) => {
31
+ setChecked(checked => !checked);
32
+ },
33
+ onFocus: action('checkbox focus'),
34
+ onBlur: action('checkbox blur')
35
+ };
36
+
37
+
38
+ const disabledChecked = Object.assign({}, baseProps, { disabled: true });
39
+ const reversedProps = Object.assign({}, baseProps, { reversed: true });
40
+ const disabledUnChecked = Object.assign({}, baseProps, { disabled: true, checked: true });
41
+ const withoutLabel = Object.assign({}, baseProps, { label: false, checked: !checked });
42
+ const errorProps = Object.assign({}, baseProps, { error: true });
43
+ const customLabel = Object.assign({}, baseProps, {
44
+ label: <div className={styles.label}><span className={styles.coupe} />Coupe</div>
45
+ });
46
+
47
+ return (
48
+ <div>
49
+ <div style={ROW_STYLES}>
50
+ <Checkbox {...baseProps} />
51
+ </div>
52
+ <div style={ROW_STYLES}>
53
+ <Checkbox {...reversedProps} />
54
+ </div>
55
+ <div style={ROW_STYLES}>
56
+ <Checkbox {...disabledChecked} />
57
+ </div>
58
+ <div style={ROW_STYLES}>
59
+ <Checkbox {...disabledUnChecked} />
60
+ </div>
61
+ <div style={ROW_STYLES}>
62
+ <Checkbox {...withoutLabel} />
63
+ </div>
64
+ <div style={ROW_STYLES}>
65
+ <Checkbox {...errorProps} />
66
+ </div>
67
+ <div style={ROW_STYLES}>
68
+ <Checkbox {...customLabel} />
69
+ </div>
70
+ </div>
71
+ )
72
+ }
73
+
74
+ storiesOf('_Common_UI', module)
75
+ .add('Checkbox', () => <CheckboxWrap />)
76
+ .add('FormCheckbox', () => (
77
+ <div>
78
+ <div style={ROW_STYLES}>
79
+ <FormCheckbox {...basePropsForm} />
80
+ </div>
81
+ <div style={ROW_STYLES}>
82
+ <FormCheckbox {...withErrorForm} />
83
+ </div>
84
+ </div>
85
+ ));
@@ -0,0 +1,14 @@
1
+ .label
2
+ display: inline-block
3
+ vertical-align: middle
4
+
5
+ .coupe
6
+ display: inline-block
7
+ vertical-align: middle
8
+ width: 50px
9
+ height: 50px
10
+ background-image: url('../../../../media/images/body-type-coupe.svg')
11
+ background-size: contain
12
+ background-repeat: no-repeat
13
+ background-position: center
14
+ margin-right: 20px
@@ -0,0 +1,126 @@
1
+ import React, { useState } from 'react';
2
+ import { storiesOf } from '@storybook/react';
3
+ import { action } from '@storybook/addon-actions';
4
+
5
+ import { ROW_STYLES } from '../../../framework/constants';
6
+ import CheckboxMaterial from './CheckboxMaterial';
7
+
8
+ import styles from './CheckboxMaterial.story.styl';
9
+
10
+ // Props related to FormCheckbox stories
11
+ const basePropsForm = {
12
+ field: { bind: () => { } },
13
+ label: 'Some label here'
14
+ };
15
+
16
+ const withErrorForm = {
17
+ field: { bind: () => { }, hasError: true, error: 'Something went wrong'},
18
+ label: 'Some label here',
19
+ };
20
+
21
+ const CheckboxWrap = () => {
22
+ const [checked, setChecked] = useState(false);
23
+ const [checkedBox, setCheckedBox] = useState({
24
+ 0: true,
25
+ 1: false,
26
+ 2: true,
27
+ 3: false,
28
+ 4: true,
29
+ 5: false,
30
+ 6: true
31
+ });
32
+
33
+ const customProps = {
34
+ checked: checkedBox[0],
35
+ onChange: (e, checked) => {
36
+ const updatedValue = !checkedBox[e.target.value]
37
+ // setCheckedBox({...checkedBox, [e.target.value]: updatedValue});
38
+ // checked = checkedBox[e.target.value];
39
+ if (e.target.value === '2') {
40
+ setCheckedBox({0: false, 1: false, 2: true});
41
+ }
42
+ else {
43
+ setCheckedBox({...checkedBox, [e.target.value]: updatedValue, 2: false})
44
+ }
45
+ },
46
+ onFocus: action('checkbox focus'),
47
+ onBlur: action('checkbox blur')
48
+ }
49
+
50
+ // Props related to the Checkbox stories
51
+ const baseProps = {
52
+ checked,
53
+ value: 'some bitchy value',
54
+ label: <span>wow, so label!</span>,
55
+ onChange: (e, checked) => {
56
+ setChecked(checked => !checked);
57
+ },
58
+ onFocus: action('checkbox focus'),
59
+ onBlur: action('checkbox blur')
60
+ };
61
+
62
+
63
+ const disabledChecked = Object.assign({}, baseProps, { disabled: true });
64
+ const reversedProps = Object.assign({}, baseProps, { reversed: true });
65
+ const disabledUnChecked = Object.assign({}, baseProps, { disabled: true, checked: true });
66
+ const withoutLabel = Object.assign({}, baseProps, { label: false, checked: !checked });
67
+ const errorProps = Object.assign({}, baseProps, { error: true });
68
+ const customLabel = Object.assign({}, baseProps, {
69
+ label: <div className={styles.label}><span className={styles.coupe} />Coupe</div>
70
+ });
71
+
72
+ return (
73
+ <>
74
+ <div>
75
+ <div style={ROW_STYLES}>
76
+ <CheckboxMaterial {...baseProps} />
77
+ </div>
78
+ <div style={ROW_STYLES}>
79
+ <CheckboxMaterial {...reversedProps} />
80
+ </div>
81
+ <div style={ROW_STYLES}>
82
+ <CheckboxMaterial {...disabledChecked} />
83
+ </div>
84
+ <div style={ROW_STYLES}>
85
+ <CheckboxMaterial {...disabledUnChecked} />
86
+ </div>
87
+ <div style={ROW_STYLES}>
88
+ <CheckboxMaterial {...withoutLabel} />
89
+ </div>
90
+ <div style={ROW_STYLES}>
91
+ <CheckboxMaterial {...errorProps} />
92
+ </div>
93
+ <div style={ROW_STYLES}>
94
+ <CheckboxMaterial {...customLabel} />
95
+ </div>
96
+ </div>
97
+ <div>
98
+ <div style={ROW_STYLES}>
99
+ <CheckboxMaterial {...customProps} value={0} checked={checkedBox[0]} label='label'/>
100
+ </div>
101
+ <div style={ROW_STYLES}>
102
+ <CheckboxMaterial {...customProps} value={1} checked={checkedBox[1]} label='label'/>
103
+ </div>
104
+ <div style={ROW_STYLES}>
105
+ <CheckboxMaterial {...customProps} value={2} checked={checkedBox[2]} label='label'/>
106
+ </div>
107
+ <div style={ROW_STYLES}>
108
+ <CheckboxMaterial {...customProps} value={3} checked={checkedBox[3]} label='label'/>
109
+ </div>
110
+ <div style={ROW_STYLES}>
111
+ <CheckboxMaterial {...customProps} value={4} checked={checkedBox[4]} label='label'/>
112
+ </div>
113
+ <div style={ROW_STYLES}>
114
+ <CheckboxMaterial {...customProps} value={5} checked={checkedBox[5]} label='label'/>
115
+ </div>
116
+ <div style={ROW_STYLES}>
117
+ <CheckboxMaterial {...customProps} value={6} checked={checkedBox[6]} label='label'/>
118
+ </div>
119
+ </div>
120
+ </>
121
+ )
122
+ }
123
+
124
+ storiesOf('_Common_UI', module)
125
+ .add('CheckboxMaterial', () => <CheckboxWrap />)
126
+
@@ -0,0 +1,14 @@
1
+ .label
2
+ display: inline-block
3
+ vertical-align: middle
4
+
5
+ .coupe
6
+ display: inline-block
7
+ vertical-align: middle
8
+ width: 50px
9
+ height: 50px
10
+ background-image: url('../../../../media/images/body-type-coupe.svg')
11
+ background-size: contain
12
+ background-repeat: no-repeat
13
+ background-position: center
14
+ margin-right: 20px
@@ -0,0 +1,43 @@
1
+ import React from 'react';
2
+ import { storiesOf } from '@storybook/react';
3
+ import { action } from '@storybook/addon-actions';
4
+
5
+ import { COLUMN_STYLES, CONTAINER_STYLES, ROW_STYLES } from '../../../framework/constants';
6
+ import { ChipExample } from '../../../framework/constants/Search';
7
+
8
+ import Chip from './Chip';
9
+
10
+ // Props related to the Chip stories
11
+ const baseProps = {
12
+ chip: ChipExample,
13
+ onClick: action('chip click'),
14
+ onDelete: action('chip delete')
15
+ };
16
+
17
+ const longText = {
18
+ ...baseProps,
19
+ chip: { key: '111', value: 'Veeeeeeeeerrrrrrry looooooooong manufacturer name'}
20
+ };
21
+
22
+ const withoutContent = {
23
+ ...baseProps,
24
+ chip: { }
25
+ };
26
+
27
+
28
+ storiesOf('_Common_UI', module)
29
+ .add('Chip', () => (
30
+ <div style={{ ... CONTAINER_STYLES, background: '#BADA' }}>
31
+ <div style={COLUMN_STYLES}>
32
+ <div style={ROW_STYLES}>
33
+ <Chip {...baseProps} />
34
+ </div>
35
+ <div style={ROW_STYLES}>
36
+ <Chip {...longText} />
37
+ </div>
38
+ <div style={ROW_STYLES}>
39
+ <Chip {...withoutContent} />
40
+ </div>
41
+ </div>
42
+ </div>
43
+ ));
@@ -0,0 +1,36 @@
1
+ import React from 'react';
2
+ import { storiesOf } from '@storybook/react';
3
+ import { action } from '@storybook/addon-actions';
4
+
5
+ import { COLUMN_STYLES, CONTAINER_STYLES, ROW_STYLES } from '../../../framework/constants';
6
+ import { ChipListExample } from '../../../framework/constants/Search';
7
+
8
+ import ChipList from './ChipList';
9
+
10
+ const chipListBase = {
11
+ chips: ChipListExample,
12
+ onChipClick: action('chip click'),
13
+ onChipDelete: action('chip delete'),
14
+ onChipsClear: action('chips clear all')
15
+ };
16
+
17
+ // Please note, that empty list message
18
+ // visible only on mobile devices.
19
+ const chipListEmpty = {
20
+ ...chipListBase,
21
+ chips: []
22
+ };
23
+
24
+ storiesOf('_Common_UI', module)
25
+ .add('ChipList', () => (
26
+ <div style={{ ...CONTAINER_STYLES, width: '400px', background: '#BADA' }}>
27
+ <div style={{...COLUMN_STYLES, width: '100%' }}>
28
+ <div style={ROW_STYLES}>
29
+ <ChipList {...chipListBase} />
30
+ </div>
31
+ <div style={ROW_STYLES}>
32
+ <ChipList {...chipListEmpty} />
33
+ </div>
34
+ </div>
35
+ </div>
36
+ ));
@@ -0,0 +1,35 @@
1
+ import React from 'react';
2
+
3
+ import { storiesOf } from '@storybook/react';
4
+ import FormDropDown from './FormDropDown';
5
+ import DropDown from './DropDown';
6
+
7
+ //const container = {
8
+ // maxWidth: 200
9
+ //};
10
+
11
+
12
+ const selectorTextProps = {
13
+ //type: 'text',
14
+ //checked: true,
15
+ //name: 'color',
16
+ //
17
+ //content: 123,
18
+ //label: <span>wow so label. <b>much content</b></span>,
19
+ //
20
+ //tooltip: 'some text here',
21
+ //onChange: action('change')
22
+ };
23
+
24
+ const ddProps = {
25
+ field: { bind: () => { } },
26
+ errorPosition: 'BottomLeft'
27
+ };
28
+
29
+ storiesOf('_Common_UI', module)
30
+ .add('Dropdown', () => (
31
+ <DropDown {...selectorTextProps} />
32
+ ))
33
+ .add('FormDropdown', () => (
34
+ <FormDropDown {...ddProps} />
35
+ ));
@@ -0,0 +1,41 @@
1
+ import React from 'react';
2
+ import { storiesOf } from '@storybook/react';
3
+ import { action } from '@storybook/addon-actions';
4
+ import { FiltersFactory } from '../../SearchFilters/FiltersFactory';
5
+
6
+ import ExpandablePanel from './ExpandablePanel';
7
+ import { MMS_GROUPS } from '../../../framework/constants/filters';
8
+ import { BODY_TYPES } from '../../../framework/constants/selectors';
9
+
10
+ const Label = ({ opened }) => (
11
+ <div style={{ padding: 10 }}>Some label here.</div>
12
+ );
13
+
14
+ const Content = ({ opened }) => (
15
+ <div style={{ padding: 10 }}>
16
+ {FiltersFactory['MAKE_MODEL'](MakeModelProps)}
17
+ </div>
18
+ );
19
+
20
+ const props = {
21
+ //isOpened: true,
22
+ id: 'uniquePanelId',
23
+ onPanelFocus: action('onPanelFocus'),
24
+ label: <Label />,
25
+ onToggle: action('change state')
26
+ };
27
+
28
+ const MakeModelProps = {
29
+ MMS_GROUPS,
30
+ BODY_TYPE: {
31
+ options: BODY_TYPES,
32
+ values: []
33
+ }
34
+ };
35
+
36
+ storiesOf('_Common_UI', module)
37
+ .add('ExpandablePanel', () => (
38
+ <ExpandablePanel {...props}>
39
+ <Content />
40
+ </ExpandablePanel>
41
+ ));