@bytebrand/fe-ui-core 4.2.251 → 4.3.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.
- package/__tests__/utils/CommonUtils/getOfferSliders.test.ts +2 -4
- package/common.ts +2 -6
- package/package.json +2 -3
- package/source/components/AccordionWidget/AccordionWidget.tsx +3 -1
- package/source/components/Breadcrumbs/Breadcrumbs.tsx +3 -3
- package/source/components/Checkout/CheckoutStepper/CheckoutStepper.styl +190 -2
- package/source/components/Checkout/CheckoutStepper/CheckoutStepper.tsx +16 -15
- package/source/components/Checkout/OrderOverviewItem/OrderOverviewItem.styl +2 -2
- package/source/components/Checkout/OrderOverviewItem/OrderOverviewItem.tsx +3 -3
- package/source/components/FormattedNumber/FormattedNumber.tsx +3 -2
- package/source/components/InfoBlocks/FirstInfoBlock/FirstInfoBlockItem/FirstInfoBlockItem.styl +6 -4
- package/source/components/OfferDetailedSection/partials/PanelConfig.tsx +3 -0
- package/source/components/OfferPanel/MuiOfferPeriod/{MuiOfferPeriod.theme.tsx → MuiOfferPeriod.theme.js} +13 -8
- package/source/components/OfferPanel/MuiOfferPeriod/MuiOfferPeriod.tsx +4 -28
- package/source/components/OfferPanel/OfferCheckboxGroup/CheckboxContainer.tsx +12 -6
- package/source/components/OfferPanel/OfferCheckboxGroup/OfferCheckboxGroup.tsx +1 -1
- package/source/components/OfferPanel/OfferPanel.tsx +1 -1
- package/source/components/OfferPanel/OfferPeriod/OfferPeriod.tsx +4 -0
- package/source/components/OfferPanel/RangeGroup/RangeGroup.tsx +4 -6
- package/source/components/PriceRatingDetailed/PriceRatingDetailed.tsx +2 -6
- package/source/components/SearchFilters/filters/AlternativeID.tsx +53 -42
- package/source/components/SearchFilters/filters/DriveType.tsx +1 -1
- package/source/components/SearchFilters/filters/EmissionSticker.tsx +1 -1
- package/source/components/SearchFilters/filters/FirstRegistration.tsx +1 -0
- package/source/components/SearchFilters/filters/InteriorColor.tsx +1 -1
- package/source/components/SearchFilters/filters/InteriorMaterial.tsx +1 -2
- package/source/components/SearchFilters/filters/Mileage.tsx +1 -1
- package/source/components/SearchFilters/filters/Power.tsx +17 -36
- package/source/components/SearchFilters/filters/StateOptions.tsx +1 -0
- package/source/components/SearchFilters/filters/Transmission.tsx +1 -1
- package/source/components/SearchPage/SearchChips/SearchChips.tsx +1 -1
- package/source/components/SearchPageMobile/FiltersDetailed/BodyType.tsx +3 -3
- package/source/components/SearchPageMobile/FiltersDetailed/Consumption.tsx +2 -2
- package/source/components/SearchPageMobile/FiltersDetailed/Doors.tsx +1 -1
- package/source/components/SearchPageMobile/FiltersDetailed/MakeModel.tsx +1 -1
- package/source/components/SearchWidget/ColorWidget/BodyColorWidget.tsx +3 -3
- package/source/components/SearchWidget/EnvironmentWidget/EnvironmentWidget.tsx +3 -3
- package/source/components/SearchWidget/HighlightsWidget/HighlightsWidget.tsx +2 -2
- package/source/components/SearchWidget/StateWidget/StateWidget.tsx +2 -1
- package/source/components/SearchWidgetsMobile/BasicDataWidgetMobile/BasicDataWidgetMobile.tsx +4 -4
- package/source/components/SearchWidgetsMobile/EquipmentsWidget/EquipmentsWidget.tsx +16 -16
- package/source/components/SearchWidgetsMobile/HighlightsWidgetMobile/HighlightsWidgetMobile.tsx +1 -1
- package/source/components/SearchWidgetsMobile/InteriorWidget/InteriorWidget.tsx +1 -1
- package/source/components/SearchWidgetsMobile/SafetyWidget/SafetyWidget.tsx +6 -6
- package/source/components/Stepper/Stepper.tsx +3 -4
- package/source/components/UserDashboardPage/sections/OrderStatusSection/AdditionalOrderInfo.styl +2 -11
- package/source/components/UserDashboardPage/sections/OrderStatusSection/AdditionalOrderInfo.tsx +5 -5
- package/source/components/UserDashboardPage/sections/OrderStatusSection/OrderStatusCar.tsx +38 -57
- package/source/components/UserDashboardPage/sections/OrderStatusSection/OrderStatusCard.tsx +2 -2
- package/source/components/UserDashboardPage/sections/OrderStatusSection/OrderStatusSection.tsx +101 -183
- package/source/components/UserDashboardPage/sections/RequestedCarsSection/RequestedCarsSection.tsx +7 -5
- package/source/components/Vehicle/VehicleFormattedPrice/VehicleFormattedPrice.tsx +7 -33
- package/source/components/VehicleDetailedSidebar/VehicleDetailedSidebar.styl +2 -10
- package/source/components/VehicleDetailedSidebar/VehicleDetailedSidebar.tsx +14 -54
- package/source/components/VehicleDetailedSidebar/partials/Price.styl +1 -5
- package/source/components/VehicleDetailedSidebar/partials/Price.tsx +1 -2
- package/source/components/VehicleDetailedSidebar/partials/PriceContent.styl +5 -16
- package/source/components/VehicleDetailedSidebar/partials/PriceContent.tsx +4 -9
- package/source/components/VehicleDetailedSidebar/partials/Properties.tsx +1 -1
- package/source/components/VehicleDetailedSlider/VehicleDetailedSlider.styl +0 -45
- package/source/components/VehicleDetailedSlider/VehicleDetailedSlider.tsx +42 -121
- package/source/components/VehicleDetailedSlider/partials/PriceData.styl +1 -4
- package/source/components/VehicleDetailedSlider/partials/PriceData.tsx +1 -8
- package/source/components/VehicleDetailedSlider/partials/Stats.tsx +2 -2
- package/source/components/VehicleSmallCard/VehicleData/VechiclePriceItem/VechiclePriceItem.tsx +7 -9
- package/source/components/VehicleSmallCard/VehicleData/VehiclePrice/VehiclePrice.styl +1 -35
- package/source/components/VehicleSmallCard/VehicleData/VehiclePrice/VehiclePrice.tsx +3 -9
- package/source/components/VehicleSmallCard/VehicleData/VehicleTitle/VehicleTitle.styl +2 -11
- package/source/components/VehicleSmallCard/VehicleData/VehicleTitle/VehicleTitle.tsx +1 -2
- package/source/components/VehicleSmallCard/VehicleSmallCard.styl +1 -3
- package/source/components/VehicleSmallCard/VehicleSmallCard.tsx +7 -3
- package/source/components/_common/Badge/Badge.styl +0 -3
- package/source/components/_common/Badge/Badge.tsx +1 -1
- package/source/components/_common/Button/Button.tsx +4 -5
- package/source/components/_common/Checkbox/FormCheckbox.tsx +4 -4
- package/source/components/_common/CheckboxMaterial/CheckboxMaterial.tsx +1 -1
- package/source/components/_common/Chip/Chip.tsx +3 -1
- package/source/components/_common/ExpansionPanel/ExpansionPanel.tsx +3 -3
- package/source/components/_common/IconSVG/IconSVGConfig.tsx +0 -2
- package/source/components/_common/IconSVG/SVG/flags/SK.tsx +1 -0
- package/source/components/_common/IconSVG/SVG/slider/360New.tsx +1 -1
- package/source/components/_common/MaterialAccordion/MaterialAccordion.tsx +30 -22
- package/source/components/_common/MaterialAutocomplete/MaterialAutocomplete.styled.tsx +8 -8
- package/source/components/_common/MaterialDatePicker/MaterialDatePicker.styled.tsx +1 -0
- package/source/components/_common/MaterialSelect/MaterialSelect.styled.tsx +15 -12
- package/source/components/_common/MaterialSelect/MaterialSelect.tsx +3 -3
- package/source/components/_common/MaterialSwitch/MaterialSwitch.tsx +1 -3
- package/source/components/_common/MaterialTooltip/MaterialTooltip.styled.tsx +1 -1
- package/source/components/_common/MaterialTooltip/MaterialTooltip.tsx +3 -3
- package/source/components/_common/Modal/CookieModal.tsx +3 -1
- package/source/components/_common/Modal/Modal.styled.tsx +1 -2
- package/source/components/_common/Modal/Modal.tsx +5 -1
- package/source/components/_common/Modal/ModalsConfig.tsx +1 -5
- package/source/components/_common/Modal/modals/ManageCookieModal/ManageCookieModal.styl +7 -23
- package/source/components/_common/Modal/modals/ManageCookieModal/ManageCookieModal.tsx +36 -84
- package/source/components/_common/Modal/modals/PreviewCookieModal/PreviewCookieModal.styl +14 -29
- package/source/components/_common/Modal/modals/PreviewCookieModal/PreviewCookieModal.tsx +10 -17
- package/source/components/_common/OfferRequestButtonWrapper/OfferRequestButtonWrapper.tsx +4 -12
- package/source/components/_common/Range/Range.tsx +14 -27
- package/source/components/_common/UserMenu/MaterialMenu.styled.tsx +1 -0
- package/source/components/_common/UserMenu/MaterialMenu.tsx +3 -3
- package/source/components/_common/UserMenu/MaterialMenuItem.tsx +20 -42
- package/source/components/_common/UserMenu/NestedMenu.tsx +1 -1
- package/source/components/_common/withStats/withStats.styl +0 -3
- package/source/components/_common/withStats/withStats.tsx +16 -19
- package/source/components/containers/SearchPage/FiltersContainer/FiltersContainer.styl +1 -14
- package/source/components/containers/SearchPage/FiltersContainer/FiltersContainer.tsx +42 -78
- package/source/framework/constants/common.ts +60 -89
- package/source/framework/constants/highlights.ts +1 -1
- package/source/framework/constants.ts +1 -1
- package/source/framework/types/types.ts +4 -9
- package/source/framework/utils/CommonUtils.ts +62 -73
- package/source/framework/utils/DateUtils.ts +2 -10
- package/source/framework/vehiclesProps/decoratedLightProps.tsx +2 -1
- package/source/framework/vehiclesProps/decoratedProps.tsx +2 -1
- package/source/locales/data.ts +2 -2
- package/tslint.json +2 -1
- package/utils.ts +0 -2
- package/__tests__/components/UserDasboardPage/sections/CheckoutSection/CheckoutSection.test.tsx +0 -613
- package/__tests__/components/UserDasboardPage/sections/FavoriteSection/FavoriteSection.test.tsx +0 -335
- package/source/components/UserDashboardPage/sections/CheckoutSection/CheckoutSection.styl +0 -38
- package/source/components/UserDashboardPage/sections/CheckoutSection/CheckoutSection.tsx +0 -120
- package/source/components/UserDashboardPage/sections/FavoriteSection/FavoriteSection.styl +0 -22
- package/source/components/UserDashboardPage/sections/FavoriteSection/FavoriteSection.tsx +0 -84
- package/source/components/_common/IconSVG/SVG/slider/YoutubeButton.tsx +0 -26
|
@@ -10,8 +10,7 @@ const expectedResultCDP = [
|
|
|
10
10
|
max: 21666,
|
|
11
11
|
value: 16100,
|
|
12
12
|
unitName: 'modals:financing.euro',
|
|
13
|
-
caption: 'modals:financing.firstInstallment'
|
|
14
|
-
withRangeLimit: true
|
|
13
|
+
caption: 'modals:financing.firstInstallment'
|
|
15
14
|
},
|
|
16
15
|
{
|
|
17
16
|
name: 'annualMileage',
|
|
@@ -34,8 +33,7 @@ const expectedResultCheckout = [
|
|
|
34
33
|
max: 21666,
|
|
35
34
|
value: 16100,
|
|
36
35
|
unitName: 'modals:financing.euro',
|
|
37
|
-
caption: 'modals:financing.firstInstallment'
|
|
38
|
-
withRangeLimit: true
|
|
36
|
+
caption: 'modals:financing.firstInstallment'
|
|
39
37
|
}
|
|
40
38
|
]
|
|
41
39
|
|
package/common.ts
CHANGED
|
@@ -136,9 +136,7 @@ import {
|
|
|
136
136
|
StepButton,
|
|
137
137
|
Accordion as MIAccordion,
|
|
138
138
|
AccordionSummary,
|
|
139
|
-
AccordionDetails
|
|
140
|
-
ListItemButton,
|
|
141
|
-
RadioGroup as MUIRadioGroup
|
|
139
|
+
AccordionDetails
|
|
142
140
|
} from '@mui/material';
|
|
143
141
|
import { createTheme } from '@mui/material/styles';
|
|
144
142
|
|
|
@@ -158,7 +156,5 @@ export {
|
|
|
158
156
|
MIAccordion,
|
|
159
157
|
AccordionSummary,
|
|
160
158
|
AccordionDetails,
|
|
161
|
-
StyledComponent
|
|
162
|
-
ListItemButton,
|
|
163
|
-
MUIRadioGroup
|
|
159
|
+
StyledComponent
|
|
164
160
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bytebrand/fe-ui-core",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.3.0",
|
|
4
4
|
"description": "UI components for the auto.de project",
|
|
5
5
|
"main": "index.ts",
|
|
6
6
|
"module": "dist/common.js",
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"@babel/preset-react": "^7.18.6",
|
|
15
15
|
"@babel/preset-typescript": "^7.21.0",
|
|
16
16
|
"@bytebrand/car-schema-selectors": "^2.0.7",
|
|
17
|
-
"@bytebrand/fe-histoslider": "^2.1.
|
|
17
|
+
"@bytebrand/fe-histoslider": "^2.1.3",
|
|
18
18
|
"@bytebrand/i18n-dictionaries": "^0.7.5",
|
|
19
19
|
"@date-io/date-fns": "1.3.13",
|
|
20
20
|
"@emotion/react": "^11.9.3",
|
|
@@ -82,7 +82,6 @@
|
|
|
82
82
|
"@types/react": "^17.0.2",
|
|
83
83
|
"@types/react-dom": "^17.0.2",
|
|
84
84
|
"@types/react-lazyload": "^2.5.0",
|
|
85
|
-
"@types/react-scroll": "^1.8.7",
|
|
86
85
|
"@types/react-select": "^3.0.2",
|
|
87
86
|
"@types/react-slick": "^0.23.4 ",
|
|
88
87
|
"autoprefixer": "^9.6.0",
|
|
@@ -15,6 +15,7 @@ import {
|
|
|
15
15
|
|
|
16
16
|
import ExpansionPanel from '../_common/ExpansionPanel/ExpansionPanel';
|
|
17
17
|
import Accordion from '../_common/AccordionWrapper/AccordionWrapper';
|
|
18
|
+
// import AccordionItem from '../_common/AccordionWrapper/AccordionItem/AccordionItem';
|
|
18
19
|
import VehicleProperty from '../VehicleSmallCard/VehicleData/VehicleProperty/VehicleProperty';
|
|
19
20
|
import IconSVG from '../_common/IconSVG/IconSVG';
|
|
20
21
|
import { getActualHighlights } from '../../framework/constants/highlights';
|
|
@@ -34,7 +35,7 @@ class AccordionWidget extends React.Component<IAccardionSectionProps, IAccardion
|
|
|
34
35
|
}
|
|
35
36
|
|
|
36
37
|
handleChange =
|
|
37
|
-
(panel: string) => (
|
|
38
|
+
(panel: string) => (event: React.SyntheticEvent, isExpanded: boolean) => {
|
|
38
39
|
this.setState({ expanded: isExpanded ? panel : false });
|
|
39
40
|
};
|
|
40
41
|
|
|
@@ -209,6 +210,7 @@ class AccordionWidget extends React.Component<IAccardionSectionProps, IAccardion
|
|
|
209
210
|
onChange={this.handleChange}
|
|
210
211
|
expanded={this.state.expanded}
|
|
211
212
|
defaultExpanded={section.expanded}
|
|
213
|
+
// titleClassName={styles.titleClassName}
|
|
212
214
|
>
|
|
213
215
|
{section.component}
|
|
214
216
|
</ExpansionPanel>
|
|
@@ -12,7 +12,6 @@ type LinkItem = { link: string, title: string };
|
|
|
12
12
|
interface IBreadcrumbsProps {
|
|
13
13
|
page: string;
|
|
14
14
|
pageProps: any;
|
|
15
|
-
Link: any;
|
|
16
15
|
infoBlockData: { contentMobile: string, title: string }[];
|
|
17
16
|
t?: (key: string, options?: object) => string;
|
|
18
17
|
}
|
|
@@ -33,7 +32,7 @@ class Breadcrumbs extends React.PureComponent<IBreadcrumbsProps> {
|
|
|
33
32
|
};
|
|
34
33
|
|
|
35
34
|
renderList = (list: LinkItem[]) => {
|
|
36
|
-
const {t = (phrase: string) => _get(breadcrumbsTranslate(), phrase.replace(':', '.'), phrase), page
|
|
35
|
+
const { t = (phrase: string) => _get(breadcrumbsTranslate(), phrase.replace(':', '.'), phrase), page } = this.props;
|
|
37
36
|
|
|
38
37
|
return list.map((item, index): React.ReactElement<any> => {
|
|
39
38
|
const isLastItem: boolean = list.length - 1 === index;
|
|
@@ -44,7 +43,7 @@ class Breadcrumbs extends React.PureComponent<IBreadcrumbsProps> {
|
|
|
44
43
|
|
|
45
44
|
return item.link
|
|
46
45
|
? <span className={linkClassName} onClick={this.props.pageProps.onBreadCrumbClick} key={index}>
|
|
47
|
-
<
|
|
46
|
+
<a href={page !== 'REFERENCE_VEHICLE_DETAILS' && item.link}>{item.title}</a>
|
|
48
47
|
</span>
|
|
49
48
|
: <span className={textClassName} key={index}>
|
|
50
49
|
{bigItem}
|
|
@@ -91,3 +90,4 @@ class Breadcrumbs extends React.PureComponent<IBreadcrumbsProps> {
|
|
|
91
90
|
}
|
|
92
91
|
|
|
93
92
|
export default Breadcrumbs;
|
|
93
|
+
// export default withRouter(translate(['common'])(Breadcrumbs));
|
|
@@ -30,5 +30,193 @@
|
|
|
30
30
|
[class*='MuiPickersToolbar-toolbar']
|
|
31
31
|
background-color: #005CCB !important;
|
|
32
32
|
|
|
33
|
-
|
|
34
|
-
|
|
33
|
+
|
|
34
|
+
// @import '../../../theme/mixins.styl'
|
|
35
|
+
|
|
36
|
+
// .root
|
|
37
|
+
// & [class*='MuiStepLabel-label'][class*='MuiStepLabel-alternativeLabel']
|
|
38
|
+
// fontSize: 10
|
|
39
|
+
// maxWidth: 56
|
|
40
|
+
|
|
41
|
+
// & [class*='MuiStepLabel-label'][class*='MuiStepLabel-active']
|
|
42
|
+
// fontWeight: bold
|
|
43
|
+
|
|
44
|
+
// & [class*='MuiSvgIcon-root']
|
|
45
|
+
// width: 24
|
|
46
|
+
// height: 24
|
|
47
|
+
|
|
48
|
+
// & [class*='MuiStepConnector-line']
|
|
49
|
+
// borderWidth: 2px
|
|
50
|
+
|
|
51
|
+
// & [class*='MuiStepConnector-vertical']
|
|
52
|
+
// marginLeft: 50,
|
|
53
|
+
// padding: 12px 0 16px
|
|
54
|
+
|
|
55
|
+
// .active
|
|
56
|
+
// @media (min-width: 992px):
|
|
57
|
+
// backgroundColor: rgba(0, 92, 203, 0.08)
|
|
58
|
+
|
|
59
|
+
// & [class*='MuiStepIcon-text']
|
|
60
|
+
// fill: white !important
|
|
61
|
+
|
|
62
|
+
// & [class*='MuiStepIcon-active']
|
|
63
|
+
// color: #005CCB
|
|
64
|
+
// fontWeight: bold
|
|
65
|
+
// & [class*='MuiStepConnector-line']
|
|
66
|
+
// borderColor: #005CCB
|
|
67
|
+
// borderTopWidth: 2px
|
|
68
|
+
|
|
69
|
+
// .isCompleted
|
|
70
|
+
// & [class*='MuiStep-vertical'] + [class*='MuiStepConnector-vertical']
|
|
71
|
+
// & [class*='MuiStepConnector-line']
|
|
72
|
+
// borderColor: #005CCB
|
|
73
|
+
|
|
74
|
+
// .stepper
|
|
75
|
+
// & [class*='MuiStepper-root']
|
|
76
|
+
// padding: 0
|
|
77
|
+
// // overflow: 'scroll'
|
|
78
|
+
|
|
79
|
+
// .labelWrap
|
|
80
|
+
// & [class*='MuiStepLabel-label']
|
|
81
|
+
// marginTop: 7
|
|
82
|
+
// lineHeight: 11px
|
|
83
|
+
|
|
84
|
+
// .verticalWrap
|
|
85
|
+
// padding: 14px 0 14px 26px
|
|
86
|
+
// borderRadius: 0px 38px 38px 0px
|
|
87
|
+
// boxSizing: border-box
|
|
88
|
+
|
|
89
|
+
// & [class*='MuiStepLabel-iconContainer']
|
|
90
|
+
// paddingRight: 17
|
|
91
|
+
|
|
92
|
+
// & [class*='MuiSvgIcon-root']
|
|
93
|
+
// width: 48
|
|
94
|
+
// height: 48
|
|
95
|
+
|
|
96
|
+
// & [class*='MuiStepLabel-label']
|
|
97
|
+
// color: rgba(0, 0, 0, 0.83)
|
|
98
|
+
// fontWeight: bold
|
|
99
|
+
// fontSize: 22
|
|
100
|
+
|
|
101
|
+
// .default
|
|
102
|
+
// & [class*='MuiStepIcon-text']
|
|
103
|
+
// fill: grey
|
|
104
|
+
|
|
105
|
+
// & [class*='MuiStepIcon-root']
|
|
106
|
+
// color: transparent
|
|
107
|
+
// border: 1px solid grey
|
|
108
|
+
// boxSizing: border-box
|
|
109
|
+
// borderRadius: 50%
|
|
110
|
+
|
|
111
|
+
// & [class*='MuiStepLabel-label']
|
|
112
|
+
// color: rgba(0, 0, 0, 0.38)
|
|
113
|
+
// fontWeight: 400
|
|
114
|
+
|
|
115
|
+
// .completeStep
|
|
116
|
+
// color: #005CCB
|
|
117
|
+
// & [class*='MuiStepIcon-root']
|
|
118
|
+
// borderColor: #005CCB
|
|
119
|
+
// borderWidth: 2px
|
|
120
|
+
|
|
121
|
+
// & [class*='MuiStepIcon-text']
|
|
122
|
+
// fill: #005CCB
|
|
123
|
+
// fontWeight: bold
|
|
124
|
+
|
|
125
|
+
// & [class*='MuiStepLabel-label'][class*='MuiStepLabel-alternativeLabel']
|
|
126
|
+
// color: #005CCB
|
|
127
|
+
|
|
128
|
+
// & [class*='MuiStepLabel-label']
|
|
129
|
+
// color: #005CCB
|
|
130
|
+
|
|
131
|
+
// & [class*='MuiStepConnector-lineVertical']
|
|
132
|
+
// borderColor: #005CCB
|
|
133
|
+
|
|
134
|
+
// .completeLine
|
|
135
|
+
// & [class*='MuiStepConnector-line']
|
|
136
|
+
// borderColor: #005CCB
|
|
137
|
+
// borderTopWidth: 2px
|
|
138
|
+
|
|
139
|
+
// & [class*='MuiStepConnector-line'][class*='MuiStepConnector-lineVertical']
|
|
140
|
+
// borderColor: #005CCB
|
|
141
|
+
|
|
142
|
+
// .activeLine
|
|
143
|
+
// & [class*='MuiStepConnector-line']
|
|
144
|
+
// borderColor: #005CCB
|
|
145
|
+
// borderTopWidth: 2px
|
|
146
|
+
|
|
147
|
+
// .minutes
|
|
148
|
+
// fontSize: 14
|
|
149
|
+
// color: rgba(0, 0, 0, 0.63)
|
|
150
|
+
// display: block
|
|
151
|
+
// textAlign: left
|
|
152
|
+
// fontWeight: 400
|
|
153
|
+
|
|
154
|
+
// .buttonItem
|
|
155
|
+
// margin: 0
|
|
156
|
+
// padding: 0
|
|
157
|
+
|
|
158
|
+
// // .checkoutFooter:
|
|
159
|
+
// // display: 'block'
|
|
160
|
+
// // width: '100%'
|
|
161
|
+
// // textAlign: 'center'
|
|
162
|
+
// // background: '#f2f2f2'
|
|
163
|
+
// // color: '#757575'
|
|
164
|
+
// // fontSize: '7px'
|
|
165
|
+
|
|
166
|
+
// // .checkoutFooterItem:
|
|
167
|
+
// // margin: '0 4px'
|
|
168
|
+
|
|
169
|
+
// // .buttonWeiter
|
|
170
|
+
// // width: '328px'
|
|
171
|
+
// // margin: '16px auto'
|
|
172
|
+
// // display: 'block'
|
|
173
|
+
// // height: '44px'
|
|
174
|
+
// // textTransform: 'none'
|
|
175
|
+
|
|
176
|
+
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+
|
|
181
|
+
|
|
182
|
+
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
|
|
186
|
+
|
|
187
|
+
|
|
188
|
+
|
|
189
|
+
|
|
190
|
+
|
|
191
|
+
|
|
192
|
+
|
|
193
|
+
|
|
194
|
+
// .stepperWrapper
|
|
195
|
+
// width: 100%
|
|
196
|
+
// overflow: hidden
|
|
197
|
+
|
|
198
|
+
// +media-tablet-landscape-up()
|
|
199
|
+
// .stepperWrapper
|
|
200
|
+
// box-sizing: border-box
|
|
201
|
+
// background-color: #fff
|
|
202
|
+
// width: 376px
|
|
203
|
+
// box-shadow: 2px 0px 5px rgba(0, 0, 0, 0.15);
|
|
204
|
+
// position fixed
|
|
205
|
+
// z-index: 1;
|
|
206
|
+
// padding: 35px 8px 35px
|
|
207
|
+
// height: 100%
|
|
208
|
+
|
|
209
|
+
// .menuArrow
|
|
210
|
+
// position: absolute;
|
|
211
|
+
// right: 0;
|
|
212
|
+
// top: 50%;
|
|
213
|
+
// max-width: 17px;
|
|
214
|
+
// transform: rotate(-90deg) translateY(-50%);
|
|
215
|
+
// transform-origin: 0 center;
|
|
216
|
+
// path
|
|
217
|
+
// fill: rgba(0, 0, 0, 0.38);
|
|
218
|
+
|
|
219
|
+
|
|
220
|
+
|
|
221
|
+
// [class*='MuiPickersToolbar-toolbar']
|
|
222
|
+
// background-color: #005CCB !important;
|
|
@@ -4,16 +4,17 @@ import { useStyles } from './CheckoutStepperClasses';
|
|
|
4
4
|
import styles from './CheckoutStepper.styl';
|
|
5
5
|
import { Hidden } from 'react-grid-system';
|
|
6
6
|
import { Stepper, Step, StepButton, IconSVG } from '../../../../common';
|
|
7
|
-
import { toJS } from 'mobx';
|
|
8
7
|
|
|
9
8
|
interface ICheckoutStepper {
|
|
10
|
-
|
|
9
|
+
steps: [];
|
|
10
|
+
activeStep?: number;
|
|
11
|
+
handleStep?: (index: number) => () => void;
|
|
12
|
+
completed?: any;
|
|
11
13
|
t?: (phrase: string) => {};
|
|
12
14
|
}
|
|
13
15
|
|
|
14
|
-
const CheckoutStepper: FunctionComponent<ICheckoutStepper> = ({
|
|
16
|
+
const CheckoutStepper: FunctionComponent<ICheckoutStepper> = ({ steps, activeStep, completed, handleStep, t }) => {
|
|
15
17
|
const classes = useStyles();
|
|
16
|
-
const steps = toJS(checkoutStore.steps);
|
|
17
18
|
return (
|
|
18
19
|
<div className={`${classes.root} ${styles.stepperWrapper}`}>
|
|
19
20
|
<Stepper
|
|
@@ -21,34 +22,34 @@ const CheckoutStepper: FunctionComponent<ICheckoutStepper> = ({ checkoutStore, t
|
|
|
21
22
|
nonLinear
|
|
22
23
|
orientation={isMobileOnly ? 'horizontal' : 'vertical'}
|
|
23
24
|
alternativeLabel={isMobileOnly}
|
|
24
|
-
activeStep={
|
|
25
|
+
activeStep={activeStep}>
|
|
25
26
|
{steps.map(({ title, pathname }, index) => {
|
|
26
27
|
const labelRep = !!title && !isMobileOnly ? title.replace('-', '') : title;
|
|
27
28
|
return (
|
|
28
29
|
<Step key={pathname}
|
|
29
|
-
className={`${
|
|
30
|
-
${
|
|
31
|
-
${
|
|
30
|
+
className={`${completed.has(steps[index].pathname) ? classes.isCompleted : ''}
|
|
31
|
+
${completed.has(steps[index].pathname) ? classes.completeLine : ''}
|
|
32
|
+
${activeStep === index && classes.activeLine}
|
|
32
33
|
`}
|
|
33
|
-
|
|
34
|
+
>
|
|
34
35
|
<StepButton
|
|
35
|
-
onClick={
|
|
36
|
+
onClick={handleStep(index)}
|
|
36
37
|
classes={{
|
|
37
38
|
root: classes.buttonItem,
|
|
38
39
|
horizontal: classes.labelWrap,
|
|
39
40
|
vertical: classes.verticalWrap
|
|
40
41
|
}}
|
|
41
42
|
className={`
|
|
42
|
-
${
|
|
43
|
-
${
|
|
43
|
+
${activeStep === index ? classes.active : classes.default}
|
|
44
|
+
${completed.has(steps[index].pathname) && activeStep !== index && classes.completeStep}`}>
|
|
44
45
|
<span>{labelRep}</span>
|
|
45
46
|
<Hidden xs sm md>
|
|
46
|
-
{
|
|
47
|
-
{!
|
|
47
|
+
{activeStep !== index && <IconSVG name='menuArrow' className={styles.menuArrow} customDimensions={false}/>}
|
|
48
|
+
{!completed.has(steps[index].pathname) &&
|
|
48
49
|
<span
|
|
49
50
|
className={`
|
|
50
51
|
${classes.minutes}
|
|
51
|
-
${
|
|
52
|
+
${completed.has(steps[index].pathname) && activeStep !== index && classes.completeStep}`}
|
|
52
53
|
>
|
|
53
54
|
{steps[index].minutes}
|
|
54
55
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
.editableFieldWrapper
|
|
4
4
|
font-family: $font-style-arial
|
|
5
|
-
margin-top:
|
|
5
|
+
margin-top: 16px
|
|
6
6
|
|
|
7
7
|
.header
|
|
8
8
|
display: flex
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
.field
|
|
13
13
|
display: flex
|
|
14
14
|
justify-content: space-between
|
|
15
|
-
margin-top:
|
|
15
|
+
margin-top: 16px
|
|
16
16
|
color: $black60
|
|
17
17
|
font-size: 14px
|
|
18
18
|
|
|
@@ -15,18 +15,18 @@ interface IOrderOverviewItem {
|
|
|
15
15
|
rate?: string;
|
|
16
16
|
};
|
|
17
17
|
activeStep: number;
|
|
18
|
-
dontShowEdit?:boolean;
|
|
19
18
|
handleStep: (index: number) => () => void;
|
|
20
19
|
titleClassName?: string;
|
|
21
20
|
fieldClassName?: string;
|
|
22
21
|
fieldWrapperClassName?: string;
|
|
23
22
|
}
|
|
24
23
|
|
|
25
|
-
const OrderOverviewItem: FC<IOrderOverviewItem> = ({
|
|
24
|
+
const OrderOverviewItem: FC<IOrderOverviewItem> = ({ fields, handleStep, activeStep, titleClassName, fieldClassName, fieldWrapperClassName }) => {
|
|
26
25
|
const wrapperClasses = classnames(
|
|
27
26
|
styles.editableFieldWrapper,
|
|
28
27
|
{ [fieldWrapperClassName]: fieldWrapperClassName }
|
|
29
28
|
);
|
|
29
|
+
|
|
30
30
|
return (
|
|
31
31
|
<div className={wrapperClasses}>
|
|
32
32
|
<div>
|
|
@@ -34,7 +34,7 @@ const OrderOverviewItem: FC<IOrderOverviewItem> = ({ dontShowEdit, fields, handl
|
|
|
34
34
|
<span className={titleClassName}>{fields.title} {fields.additionalTitle && <span className={styles.additionalTitle}>{fields.additionalTitle}</span>}</span>
|
|
35
35
|
<span className={styles.fieldLineWrapper} data-testid='editIcon' onClick={() => handleStep(activeStep)()}>
|
|
36
36
|
{fields.oneLineRate && <span className={classnames(styles.fieldLine, fieldClassName)}>{fields.oneLineRate}</span>}
|
|
37
|
-
{!
|
|
37
|
+
{!fieldWrapperClassName && <span className={styles.editIcon}><IconSVG name='editIcon'/></span >}
|
|
38
38
|
</span>
|
|
39
39
|
</div>
|
|
40
40
|
{fields.content && fields.content.map((fields, index) => (
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React from 'react';
|
|
1
|
+
import * as React from 'react';
|
|
2
2
|
import styles from './FormattedNumber.styl';
|
|
3
3
|
|
|
4
4
|
import classnames from 'classnames';
|
|
@@ -16,10 +16,11 @@ export interface IFormattedPriceProps {
|
|
|
16
16
|
|
|
17
17
|
// const breakpointForRound = 10000;
|
|
18
18
|
const separatorCounter = 3;
|
|
19
|
+
|
|
19
20
|
const FormattedNumber: React.FunctionComponent<IFormattedPriceProps> = ({ className, value, disableFormatting, toRound, numbersAfterDot, beforeCommaClassName, afterCommaClassName }) => {
|
|
21
|
+
|
|
20
22
|
function getFormattedNumber() {
|
|
21
23
|
// First we need to check if value is actual number;
|
|
22
|
-
|
|
23
24
|
const notFalsieValue = !!value ? value : 0;
|
|
24
25
|
|
|
25
26
|
const rounded = toRound ? Math.round(notFalsieValue) : notFalsieValue;
|
package/source/components/InfoBlocks/FirstInfoBlock/FirstInfoBlockItem/FirstInfoBlockItem.styl
CHANGED
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
align-items: center;
|
|
23
23
|
width: 100%;
|
|
24
24
|
grid-template-columns: 1fr 82px;
|
|
25
|
-
grid-column-gap:
|
|
25
|
+
grid-column-gap: 44px;
|
|
26
26
|
padding: 17px 0
|
|
27
27
|
|
|
28
28
|
& + &
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
align-items: center;
|
|
34
34
|
|
|
35
35
|
.icon
|
|
36
|
-
margin-right:
|
|
36
|
+
margin-right: 22px
|
|
37
37
|
width: 64px
|
|
38
38
|
height: 64px
|
|
39
39
|
display block;
|
|
@@ -42,16 +42,18 @@
|
|
|
42
42
|
+media-phone-only()
|
|
43
43
|
width: 82px
|
|
44
44
|
height: 82px
|
|
45
|
+
margin-right: 0
|
|
45
46
|
grid-column: 2;
|
|
46
47
|
grid-row: 1 / span 3;
|
|
47
48
|
|
|
48
49
|
.title
|
|
49
|
-
font-size:
|
|
50
|
+
font-size: 18px
|
|
50
51
|
margin-bottom: 5px
|
|
51
52
|
color: $grey-3a;
|
|
52
53
|
+media-phone-only()
|
|
54
|
+
font-size: 16px;
|
|
53
55
|
grid-row: 1 / span 1;
|
|
54
|
-
text-align:
|
|
56
|
+
text-align: justify;
|
|
55
57
|
color: $grey-32;
|
|
56
58
|
|
|
57
59
|
.textContent
|
|
@@ -23,6 +23,8 @@ const PanelConfig: React.FunctionComponent<IPanelConfigProps> = ({
|
|
|
23
23
|
OfferBlockComponent,
|
|
24
24
|
offerBlockProps,
|
|
25
25
|
postfix,
|
|
26
|
+
isOpenDetails,
|
|
27
|
+
onToggleDetailsClick,
|
|
26
28
|
isAlternative
|
|
27
29
|
}) => {
|
|
28
30
|
const requestOfferProps = {
|
|
@@ -51,6 +53,7 @@ const PanelConfig: React.FunctionComponent<IPanelConfigProps> = ({
|
|
|
51
53
|
] : [];
|
|
52
54
|
|
|
53
55
|
const wrapperClassName = classnames(styles.wrapConfigDetails, { [styles.wrapConfigDetailsMobile]: mobileMode });
|
|
56
|
+
|
|
54
57
|
return (
|
|
55
58
|
<div className={wrapperClassName}>
|
|
56
59
|
<Hidden xs sm md>
|
|
@@ -3,9 +3,11 @@ import { createTheme } from '@mui/material/styles';
|
|
|
3
3
|
export const theme = createTheme({
|
|
4
4
|
components: {
|
|
5
5
|
MuiToggleButton: {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
variants: [
|
|
7
|
+
{
|
|
8
|
+
props: { variant: 'sidebar' },
|
|
9
|
+
style: {
|
|
10
|
+
width: 40,
|
|
9
11
|
height: 41,
|
|
10
12
|
color: '#333',
|
|
11
13
|
width: '100%',
|
|
@@ -16,10 +18,13 @@ export const theme = createTheme({
|
|
|
16
18
|
'&.Mui-selected:hover': {
|
|
17
19
|
backgroundColor: '#005ccb',
|
|
18
20
|
color: '#fff'
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
},
|
|
22
|
+
// '&:hover': {
|
|
23
|
+
// backgroundColor: 'transparent'
|
|
24
|
+
// }
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
]
|
|
23
28
|
}
|
|
24
29
|
}
|
|
25
|
-
});
|
|
30
|
+
});
|
|
@@ -2,7 +2,7 @@ import React, { FC } from 'react';
|
|
|
2
2
|
import _get from 'lodash/get';
|
|
3
3
|
import styles from '../OfferPanel.styl';
|
|
4
4
|
import { modalsTranslate } from '../../../locales/data';
|
|
5
|
-
import ToggleButton
|
|
5
|
+
import ToggleButton from '@mui/material/ToggleButton';
|
|
6
6
|
import ToggleButtonGroup from '@mui/material/ToggleButtonGroup';
|
|
7
7
|
import { ThemeProvider } from '@mui/material/styles';
|
|
8
8
|
import { theme } from './MuiOfferPeriod.theme';
|
|
@@ -14,24 +14,6 @@ export interface IOfferPeriod {
|
|
|
14
14
|
onChange: (key: string, value: number) => void;
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
-
type IToggleButtonVariant =
|
|
18
|
-
| 'text'
|
|
19
|
-
| 'outlined'
|
|
20
|
-
| 'contained'
|
|
21
|
-
| 'sidebar';
|
|
22
|
-
|
|
23
|
-
interface ICustomToggleButtonProps extends Omit<IToggleButtonProps, 'variant'> {
|
|
24
|
-
variant: IToggleButtonVariant;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
const MyCustomToggleButton: FC<ICustomToggleButtonProps> = (props) => {
|
|
28
|
-
return (
|
|
29
|
-
<ToggleButton {...props}>
|
|
30
|
-
{props.children}
|
|
31
|
-
</ToggleButton>
|
|
32
|
-
);
|
|
33
|
-
};
|
|
34
|
-
|
|
35
17
|
const OfferPeriod: FC<IOfferPeriod> = ({ paybackPeriod, periods, t, onChange }) => {
|
|
36
18
|
|
|
37
19
|
return (
|
|
@@ -45,19 +27,13 @@ const OfferPeriod: FC<IOfferPeriod> = ({ paybackPeriod, periods, t, onChange })
|
|
|
45
27
|
color='primary'
|
|
46
28
|
value={paybackPeriod}
|
|
47
29
|
exclusive
|
|
48
|
-
onChange={(
|
|
49
|
-
onChange('paybackPeriod', +
|
|
30
|
+
onChange={(e) => {
|
|
31
|
+
onChange('paybackPeriod', +e.target.value);
|
|
50
32
|
}}
|
|
51
33
|
>
|
|
52
34
|
{periods.map((period) => {
|
|
53
35
|
return (
|
|
54
|
-
<
|
|
55
|
-
variant={'sidebar'}
|
|
56
|
-
key={period}
|
|
57
|
-
value={period}
|
|
58
|
-
>
|
|
59
|
-
{period}
|
|
60
|
-
</MyCustomToggleButton>
|
|
36
|
+
<ToggleButton variant='sidebar' key={period} value={period}>{period}</ToggleButton>
|
|
61
37
|
);
|
|
62
38
|
})}
|
|
63
39
|
</ToggleButtonGroup>
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import React from 'react';
|
|
1
|
+
import React, { ReactNode } from 'react';
|
|
2
2
|
import styles from './OfferCheckboxGroup.styl';
|
|
3
3
|
import classnames from 'classnames';
|
|
4
|
+
// import FormattedNumber from '../../FormattedNumber/FormattedNumber';
|
|
5
|
+
// import Tooltip from '../../_common/Tooltip/Tooltip';
|
|
4
6
|
import CheckboxMaterial from '../../_common/CheckboxMaterial/CheckboxMaterial';
|
|
5
7
|
import MaterialTooltip from '../../_common/MaterialTooltip/MaterialTooltip';
|
|
6
8
|
|
|
@@ -20,13 +22,11 @@ export interface ICheckboxProps {
|
|
|
20
22
|
containerClassName?: string;
|
|
21
23
|
checkboxClassName?: string;
|
|
22
24
|
labelClassName?: string;
|
|
23
|
-
labelPlacement?: 'end' | 'start' | 'top' | 'bottom';
|
|
24
25
|
tooltipDescription?: string;
|
|
25
26
|
checkboxPriceValue: any;
|
|
26
27
|
tooltipPosX?: string;
|
|
27
28
|
error?: boolean;
|
|
28
|
-
|
|
29
|
-
label?: JSX.Element | string | null;
|
|
29
|
+
label?: JSX.Element | string | null | ReactNode;
|
|
30
30
|
}
|
|
31
31
|
|
|
32
32
|
class CheckboxContainer extends React.Component<ICheckboxProps, {}> {
|
|
@@ -87,8 +87,8 @@ class CheckboxContainer extends React.Component<ICheckboxProps, {}> {
|
|
|
87
87
|
|
|
88
88
|
render() {
|
|
89
89
|
const {
|
|
90
|
-
containerClassName, labelClassName, reversed,
|
|
91
|
-
checked, disabled, error, label, tooltipDescription, labelPlacement,
|
|
90
|
+
containerClassName, checkboxClassName, labelClassName, reversed,
|
|
91
|
+
checked, disabled, value, error, label, tooltipDescription, checkboxPriceValue, tooltipPosX, labelPlacement,
|
|
92
92
|
description
|
|
93
93
|
} = this.props;
|
|
94
94
|
|
|
@@ -105,6 +105,12 @@ class CheckboxContainer extends React.Component<ICheckboxProps, {}> {
|
|
|
105
105
|
labelClassName
|
|
106
106
|
);
|
|
107
107
|
|
|
108
|
+
const checkboxClasses = classnames(
|
|
109
|
+
styles.checkbox,
|
|
110
|
+
checkboxClassName,
|
|
111
|
+
{ [styles.withLabel]: !!label }
|
|
112
|
+
);
|
|
113
|
+
|
|
108
114
|
const wrapInputClasses = classnames(
|
|
109
115
|
styles.wrapInput,
|
|
110
116
|
{ [styles.reversed]: reversed }
|
|
@@ -11,7 +11,7 @@ interface IOfferPeriod {
|
|
|
11
11
|
transferInstallments?: any;
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
-
const OfferCheckboxGroup: FC<IOfferPeriod> = ({ additionalService, transferInstallments, isAboAccordionExpanded0 = true, priceTabIndex }) => {
|
|
14
|
+
const OfferCheckboxGroup: FC<IOfferPeriod> = ({ additionalService, transferInstallments, isAboAccordionExpanded0 = true, priceTabIndex, labelClassname }) => {
|
|
15
15
|
const offerGroupClass = classNames(styles.checkboxWrapped, { [styles.checkBoxGroup]: priceTabIndex !== THREE });
|
|
16
16
|
return (
|
|
17
17
|
<div className={offerGroupClass}>
|
|
@@ -11,7 +11,7 @@ import CheckboxMaterial from '../_common/CheckboxMaterial/CheckboxMaterial';
|
|
|
11
11
|
interface IFinalAdvice {
|
|
12
12
|
checked: boolean;
|
|
13
13
|
label: string;
|
|
14
|
-
onChange?: (event
|
|
14
|
+
onChange?: (event: React.ChangeEvent<HTMLInputElement>, checked: boolean, value: any) => void;
|
|
15
15
|
reversed?: boolean;
|
|
16
16
|
value: string;
|
|
17
17
|
}
|