@wayke-se/components-react 2.13.0 → 2.16.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/dist-node/index.js +171 -15
- package/dist-node/index.js.map +1 -1
- package/dist-src/components/Content/wrapper.js +5 -0
- package/dist-src/components/InsuranceOptions/Insurance.js +26 -0
- package/dist-src/components/InsuranceOptions/InsuranceFree.js +31 -0
- package/dist-src/components/InsuranceOptions/InsuranceFreeModal.js +20 -0
- package/dist-src/components/InsuranceOptions/{InsuranceOptionModal.js → InsuranceModal.js} +3 -3
- package/dist-src/components/InsuranceOptions/index.js +10 -21
- package/dist-src/components/Pdf/index.js +11 -0
- package/dist-src/components/Pdf/wrapper.js +55 -0
- package/dist-src/hooks/useInsurance.js +3 -2
- package/dist-src/layouts/searchItem/MetadataItem.js +2 -2
- package/dist-src/layouts/searchItem/index.js +14 -2
- package/dist-src/queries/INSURANCE_CALCULATION.js +7 -1
- package/dist-src/queries/SEARCH_ITEM_BRANCH_QUERY.js +14 -0
- package/dist-src/queries/SEARCH_ITEM_QUERY.js +10 -2
- package/dist-types/@types/codegen/types.d.ts +66 -42
- package/dist-types/components/InsuranceOptions/Insurance.d.ts +9 -0
- package/dist-types/components/InsuranceOptions/InsuranceFree.d.ts +7 -0
- package/dist-types/components/InsuranceOptions/InsuranceFreeModal.d.ts +8 -0
- package/dist-types/components/InsuranceOptions/InsuranceModal.d.ts +10 -0
- package/dist-types/components/InsuranceOptions/index.d.ts +3 -2
- package/dist-types/components/Pdf/index.d.ts +11 -0
- package/dist-types/components/Pdf/wrapper.d.ts +11 -0
- package/dist-types/hooks/useInsurance.d.ts +1 -1
- package/dist-web/index.js +168 -13
- package/dist-web/index.js.map +1 -1
- package/package.json +1 -1
- package/dist-types/components/InsuranceOptions/InsuranceOptionModal.d.ts +0 -9
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { InsuranceOption } from '../../@types/codegen/types';
|
|
3
|
+
interface InsuranceFreeModal {
|
|
4
|
+
onClose: () => void;
|
|
5
|
+
insuranceOptions: InsuranceOption;
|
|
6
|
+
}
|
|
7
|
+
declare const InsuranceFreeModal: ({ onClose, insuranceOptions }: InsuranceFreeModal) => JSX.Element;
|
|
8
|
+
export default InsuranceFreeModal;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { InsuranceOption, Branch } from '../../@types/codegen/types';
|
|
3
|
+
interface InsuranceModal {
|
|
4
|
+
id: string;
|
|
5
|
+
branch?: Branch | null;
|
|
6
|
+
onClose: () => void;
|
|
7
|
+
insuranceOptions: InsuranceOption;
|
|
8
|
+
}
|
|
9
|
+
declare const InsuranceModal: ({ id, branch, onClose, insuranceOptions }: InsuranceModal) => JSX.Element;
|
|
10
|
+
export default InsuranceModal;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import { InsuranceOption } from '../../@types/codegen/types';
|
|
2
|
+
import { InsuranceOption, Branch } from '../../@types/codegen/types';
|
|
3
3
|
interface InsuranceOptions {
|
|
4
4
|
id: string;
|
|
5
|
+
branch?: Branch | null;
|
|
5
6
|
insuranceOptions: InsuranceOption[];
|
|
6
7
|
}
|
|
7
|
-
declare const InsuranceOptions: ({ id, insuranceOptions }: InsuranceOptions) => JSX.Element | null;
|
|
8
|
+
declare const InsuranceOptions: ({ id, branch, insuranceOptions }: InsuranceOptions) => JSX.Element | null;
|
|
8
9
|
export default InsuranceOptions;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { Scalars } from '../../@types/codegen/types';
|
|
3
|
+
interface PdfDownloadItemProps {
|
|
4
|
+
document: Scalars['FileDocument'];
|
|
5
|
+
}
|
|
6
|
+
export declare const PdfDownloadItem: ({ document }: PdfDownloadItemProps) => JSX.Element;
|
|
7
|
+
interface PdfDownloadContainerProps {
|
|
8
|
+
documents: Scalars['FileDocument'][];
|
|
9
|
+
}
|
|
10
|
+
export declare const PdfDownloadContainer: ({ documents }: PdfDownloadContainerProps) => JSX.Element;
|
|
11
|
+
export default PdfDownloadContainer;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare const PdfListItem: import("styled-components").StyledComponent<"li", import("styled-components").DefaultTheme, {
|
|
2
|
+
className: "wayke__theme wayke__color--primary-text";
|
|
3
|
+
}, "className">;
|
|
4
|
+
export declare const PdfContainer: import("styled-components").StyledComponent<"ul", import("styled-components").DefaultTheme, {}, never>;
|
|
5
|
+
export declare const PdfLink: import("styled-components").StyledComponent<"a", import("styled-components").DefaultTheme, {
|
|
6
|
+
className: "wayke__theme wayke__color--primary-text wayke__font--bold";
|
|
7
|
+
}, "className">;
|
|
8
|
+
export declare const PdfTitle: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
|
|
9
|
+
export declare const PdfSubtitle: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
|
|
10
|
+
export declare const PdfColumn: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
|
|
11
|
+
export declare const PdfListInner: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { QueryResult } from '@apollo/client';
|
|
2
2
|
import { DrivingDistance, QueryInsurancesArgs, Query } from '../@types/codegen/types';
|
|
3
|
-
declare const useInsuranceCalculation: (id: string, personalNumber?: string | undefined, drivingDistance?: DrivingDistance | undefined) => QueryResult<Query, QueryInsurancesArgs>;
|
|
3
|
+
declare const useInsuranceCalculation: (id: string, branchId?: string | undefined, personalNumber?: string | undefined, drivingDistance?: DrivingDistance | undefined) => QueryResult<Query, QueryInsurancesArgs>;
|
|
4
4
|
export default useInsuranceCalculation;
|
package/dist-web/index.js
CHANGED
|
@@ -8,8 +8,8 @@ import LazyLoad from 'react-lazyload';
|
|
|
8
8
|
import Slider$2 from 'react-slick';
|
|
9
9
|
import scrollIntoView from 'scroll-into-view-if-needed';
|
|
10
10
|
import { gql, useQuery, ApolloClient, InMemoryCache, ApolloProvider } from '@apollo/client';
|
|
11
|
-
import EcomBase from '@wayke-se/ecom-react';
|
|
12
11
|
import { marked } from 'marked';
|
|
12
|
+
import EcomBase from '@wayke-se/ecom-react';
|
|
13
13
|
import { parsePhoneNumberFromString } from 'libphonenumber-js/core';
|
|
14
14
|
|
|
15
15
|
const _colors = {
|
|
@@ -2547,6 +2547,11 @@ const Wrapper$c = styled.div `
|
|
|
2547
2547
|
}
|
|
2548
2548
|
}
|
|
2549
2549
|
|
|
2550
|
+
img {
|
|
2551
|
+
display: block;
|
|
2552
|
+
width: 100%;
|
|
2553
|
+
}
|
|
2554
|
+
|
|
2550
2555
|
${({ small }) => small &&
|
|
2551
2556
|
css `
|
|
2552
2557
|
font-size: 0.875rem;
|
|
@@ -4098,6 +4103,7 @@ const SEARCH_ITEM_QUERY = gql `
|
|
|
4098
4103
|
query SearchItem($id: ID!) {
|
|
4099
4104
|
vehicle(id: $id) {
|
|
4100
4105
|
id
|
|
4106
|
+
documents
|
|
4101
4107
|
contact {
|
|
4102
4108
|
name
|
|
4103
4109
|
email
|
|
@@ -4237,10 +4243,17 @@ const SEARCH_ITEM_QUERY = gql `
|
|
|
4237
4243
|
withHomeDelivery
|
|
4238
4244
|
}
|
|
4239
4245
|
insuranceOptions {
|
|
4240
|
-
|
|
4246
|
+
insuranceHeader
|
|
4247
|
+
institute
|
|
4248
|
+
identifier
|
|
4241
4249
|
logotype
|
|
4242
|
-
url
|
|
4243
4250
|
name
|
|
4251
|
+
description
|
|
4252
|
+
longDescription
|
|
4253
|
+
url
|
|
4254
|
+
insuranceText
|
|
4255
|
+
requiresPersonalNumber
|
|
4256
|
+
requiresDistance
|
|
4244
4257
|
terms
|
|
4245
4258
|
}
|
|
4246
4259
|
financialOptions {
|
|
@@ -5076,10 +5089,16 @@ const ColumnRowItem = styled.div `
|
|
|
5076
5089
|
const INSURANCE_CALCULATION = gql `
|
|
5077
5090
|
query InsuranceCalculation(
|
|
5078
5091
|
$id: ID!
|
|
5092
|
+
$branch: ID
|
|
5079
5093
|
$personalNumber: PersonalNumber!
|
|
5080
5094
|
$drivingDistance: DrivingDistance!
|
|
5081
5095
|
) {
|
|
5082
|
-
insurances(
|
|
5096
|
+
insurances(
|
|
5097
|
+
id: $id
|
|
5098
|
+
branch: $branch
|
|
5099
|
+
personalNumber: $personalNumber
|
|
5100
|
+
drivingDistance: $drivingDistance
|
|
5101
|
+
) {
|
|
5083
5102
|
name
|
|
5084
5103
|
price
|
|
5085
5104
|
unit
|
|
@@ -5107,13 +5126,14 @@ const INSURANCE_CALCULATION = gql `
|
|
|
5107
5126
|
}
|
|
5108
5127
|
`;
|
|
5109
5128
|
|
|
5110
|
-
const useInsuranceCalculation = (id, personalNumber, drivingDistance) => useQuery(INSURANCE_CALCULATION, {
|
|
5129
|
+
const useInsuranceCalculation = (id, branchId, personalNumber, drivingDistance) => useQuery(INSURANCE_CALCULATION, {
|
|
5111
5130
|
variables: {
|
|
5112
5131
|
id,
|
|
5132
|
+
branch: branchId,
|
|
5113
5133
|
personalNumber: personalNumber,
|
|
5114
5134
|
drivingDistance: drivingDistance,
|
|
5115
5135
|
},
|
|
5116
|
-
skip: personalNumber === undefined || drivingDistance === undefined,
|
|
5136
|
+
skip: personalNumber === undefined || drivingDistance === undefined || branchId === undefined,
|
|
5117
5137
|
});
|
|
5118
5138
|
|
|
5119
5139
|
const ssnIsValid = (s) => (s ? /^\d{2,4}\d{2}\d{2}\-?\d{4}$/.test(s) : false);
|
|
@@ -5133,13 +5153,13 @@ var FinancialOptionInclusion;
|
|
|
5133
5153
|
FinancialOptionInclusion["IncludesWintertires"] = "INCLUDES_WINTERTIRES";
|
|
5134
5154
|
})(FinancialOptionInclusion || (FinancialOptionInclusion = {}));
|
|
5135
5155
|
|
|
5136
|
-
const
|
|
5156
|
+
const InsuranceModal = ({ id, branch, onClose, insuranceOptions }) => {
|
|
5137
5157
|
const [form, setForm] = useState({
|
|
5138
5158
|
ssn: '',
|
|
5139
5159
|
drivingDistance: DrivingDistance.Between0And1000,
|
|
5140
5160
|
});
|
|
5141
5161
|
const [payload, setPayload] = useState();
|
|
5142
|
-
const { loading, data, error } = useInsuranceCalculation(id, ssnIsValid(payload === null || payload === void 0 ? void 0 : payload.ssn) ? payload === null || payload === void 0 ? void 0 : payload.ssn : undefined, payload === null || payload === void 0 ? void 0 : payload.drivingDistance);
|
|
5162
|
+
const { loading, data, error } = useInsuranceCalculation(id, (branch === null || branch === void 0 ? void 0 : branch.id) ? branch === null || branch === void 0 ? void 0 : branch.id : undefined, ssnIsValid(payload === null || payload === void 0 ? void 0 : payload.ssn) ? payload === null || payload === void 0 ? void 0 : payload.ssn : undefined, payload === null || payload === void 0 ? void 0 : payload.drivingDistance);
|
|
5143
5163
|
const onChangeSsn = useCallback((e) => setForm({ ...form, ssn: e.currentTarget.value }), [form]);
|
|
5144
5164
|
const onChangeDrivingDistance = useCallback((e) => setForm({ ...form, drivingDistance: e.currentTarget.value }), [form]);
|
|
5145
5165
|
const onShowInsurances = useCallback(() => {
|
|
@@ -5213,14 +5233,14 @@ const InsuranceOptionModal = ({ id, onClose, insuranceOptions }) => {
|
|
|
5213
5233
|
addon.unit)))))))))))))))));
|
|
5214
5234
|
};
|
|
5215
5235
|
|
|
5216
|
-
const
|
|
5236
|
+
const Insurance = ({ id, branch, insuranceOptions }) => {
|
|
5217
5237
|
const [modal, setModal] = useState(false);
|
|
5218
5238
|
const toggleModal = useCallback(() => setModal(!modal), [modal]);
|
|
5219
5239
|
if (!insuranceOptions.length) {
|
|
5220
5240
|
return null;
|
|
5221
5241
|
}
|
|
5222
5242
|
return (React__default.createElement(React__default.Fragment, null,
|
|
5223
|
-
modal && (React__default.createElement(
|
|
5243
|
+
modal && (React__default.createElement(InsuranceModal, { id: id, branch: branch, onClose: toggleModal, insuranceOptions: insuranceOptions[0] })),
|
|
5224
5244
|
React__default.createElement(Repeat, null,
|
|
5225
5245
|
React__default.createElement(RepeatTiny, null,
|
|
5226
5246
|
React__default.createElement(VisualHeading, null, "V\u00E4lj till f\u00F6rs\u00E4kring")),
|
|
@@ -5232,6 +5252,53 @@ const InsuranceOptions = ({ id, insuranceOptions }) => {
|
|
|
5232
5252
|
React__default.createElement(ButtonInline, { onClick: toggleModal }, "Mer information")))))))))));
|
|
5233
5253
|
};
|
|
5234
5254
|
|
|
5255
|
+
const InsuranceFreeModal = ({ onClose, insuranceOptions }) => {
|
|
5256
|
+
var _a;
|
|
5257
|
+
return (React__default.createElement(Modal, { title: (_a = insuranceOptions === null || insuranceOptions === void 0 ? void 0 : insuranceOptions.insuranceHeader) !== null && _a !== void 0 ? _a : 'Försäkring', onClose: onClose },
|
|
5258
|
+
(insuranceOptions === null || insuranceOptions === void 0 ? void 0 : insuranceOptions.longDescription) && (React__default.createElement(Repeat, null,
|
|
5259
|
+
React__default.createElement(Content$2, { dangerouslySetInnerHTML: {
|
|
5260
|
+
__html: marked(insuranceOptions.longDescription),
|
|
5261
|
+
} }))),
|
|
5262
|
+
(insuranceOptions === null || insuranceOptions === void 0 ? void 0 : insuranceOptions.url) && (React__default.createElement(Repeat, null,
|
|
5263
|
+
React__default.createElement(ButtonInline, { as: "a", href: insuranceOptions.url, target: "_blank", rel: "noopener noreferrer" }, "L\u00E4s mer om f\u00F6rs\u00E4kringen (\u00D6ppnas i ett nytt f\u00F6nster)"))),
|
|
5264
|
+
(insuranceOptions === null || insuranceOptions === void 0 ? void 0 : insuranceOptions.logotype) && (React__default.createElement(Repeat, null,
|
|
5265
|
+
React__default.createElement(LogoBox, { logo: insuranceOptions.logotype, alt: insuranceOptions.name || 'Logotyp', wide: true })))));
|
|
5266
|
+
};
|
|
5267
|
+
|
|
5268
|
+
const Insurance$1 = ({ insuranceOptions }) => {
|
|
5269
|
+
var _a, _b;
|
|
5270
|
+
const [modal, setModal] = useState(false);
|
|
5271
|
+
const toggleModal = useCallback(() => setModal(!modal), [modal]);
|
|
5272
|
+
if (!insuranceOptions.length) {
|
|
5273
|
+
return null;
|
|
5274
|
+
}
|
|
5275
|
+
return (React__default.createElement(React__default.Fragment, null,
|
|
5276
|
+
modal && React__default.createElement(InsuranceFreeModal, { onClose: toggleModal, insuranceOptions: insuranceOptions[0] }),
|
|
5277
|
+
React__default.createElement(Repeat, null,
|
|
5278
|
+
React__default.createElement(RepeatTiny, null,
|
|
5279
|
+
React__default.createElement(VisualHeading, null, (_b = (_a = insuranceOptions[0]) === null || _a === void 0 ? void 0 : _a.insuranceHeader) !== null && _b !== void 0 ? _b : 'Försäkring')),
|
|
5280
|
+
React__default.createElement(RepeatTiny, null,
|
|
5281
|
+
React__default.createElement(React__default.Fragment, null, insuranceOptions.map((insuranceOption, index) => (React__default.createElement(OptionBox, { key: `${insuranceOption.url}-${index}`, logo: insuranceOption.logotype || undefined, logoAlt: insuranceOption.name || 'Logotyp' },
|
|
5282
|
+
insuranceOption.description && (React__default.createElement(Content$2, { dangerouslySetInnerHTML: {
|
|
5283
|
+
__html: marked(insuranceOption.description),
|
|
5284
|
+
} })),
|
|
5285
|
+
React__default.createElement(OptionBoxContent, null,
|
|
5286
|
+
React__default.createElement("p", null,
|
|
5287
|
+
React__default.createElement(ButtonInline, { onClick: toggleModal }, "Mer information")))))))))));
|
|
5288
|
+
};
|
|
5289
|
+
|
|
5290
|
+
const InsuranceOptions = ({ id, branch, insuranceOptions }) => {
|
|
5291
|
+
if (!insuranceOptions.length) {
|
|
5292
|
+
return null;
|
|
5293
|
+
}
|
|
5294
|
+
if (insuranceOptions.length > 0) {
|
|
5295
|
+
if (insuranceOptions[0].requiresDistance && insuranceOptions[0].requiresPersonalNumber)
|
|
5296
|
+
return React__default.createElement(Insurance, { id: id, branch: branch, insuranceOptions: insuranceOptions });
|
|
5297
|
+
return React__default.createElement(Insurance$1, { insuranceOptions: insuranceOptions });
|
|
5298
|
+
}
|
|
5299
|
+
return null;
|
|
5300
|
+
};
|
|
5301
|
+
|
|
5235
5302
|
const SettingsContext = createContext({});
|
|
5236
5303
|
|
|
5237
5304
|
const useSettings = () => useContext(SettingsContext);
|
|
@@ -6162,6 +6229,20 @@ const SEARCH_ITEM_BRANCH_QUERY = gql `
|
|
|
6162
6229
|
title
|
|
6163
6230
|
}
|
|
6164
6231
|
}
|
|
6232
|
+
insuranceOptions {
|
|
6233
|
+
insuranceHeader
|
|
6234
|
+
institute
|
|
6235
|
+
identifier
|
|
6236
|
+
logotype
|
|
6237
|
+
name
|
|
6238
|
+
description
|
|
6239
|
+
longDescription
|
|
6240
|
+
url
|
|
6241
|
+
insuranceText
|
|
6242
|
+
requiresPersonalNumber
|
|
6243
|
+
requiresDistance
|
|
6244
|
+
terms
|
|
6245
|
+
}
|
|
6165
6246
|
}
|
|
6166
6247
|
}
|
|
6167
6248
|
${HoursOpen$1}
|
|
@@ -6828,7 +6909,7 @@ const MetadataItem = ({ name, hint, value, unit }) => {
|
|
|
6828
6909
|
const onToggleFoldout = useCallback(() => setFoldout(!foldout), [foldout]);
|
|
6829
6910
|
const presentedValue = formatValue(value, unit);
|
|
6830
6911
|
return (React__default.createElement(TableListItem, null,
|
|
6831
|
-
React__default.createElement(TableListKey, null, hint ? (React__default.createElement(
|
|
6912
|
+
React__default.createElement(TableListKey, null, hint ? (React__default.createElement(ButtonInline, { onClick: onToggleFoldout, title: `Mer information om ${name}` }, name)) : (name)),
|
|
6832
6913
|
React__default.createElement(TableListValue, null, value !== undefined ? presentedValue : 'Uppgift saknas'),
|
|
6833
6914
|
hint && foldout && (React__default.createElement(Modal, { title: name, onClose: onToggleFoldout },
|
|
6834
6915
|
React__default.createElement(Content$2, { dangerouslySetInnerHTML: { __html: hint } })))));
|
|
@@ -6946,6 +7027,69 @@ const PropertySet = ({ propertySet, vehicleData }) => {
|
|
|
6946
7027
|
React__default.createElement(MetadataCategory, { properties: activeCategory.properties, subCategories: activeCategory.subCategories })))));
|
|
6947
7028
|
};
|
|
6948
7029
|
|
|
7030
|
+
const PdfListItem = styled.li.attrs(() => ({
|
|
7031
|
+
className: 'wayke__theme wayke__color--primary-text',
|
|
7032
|
+
})) `
|
|
7033
|
+
flex: 0 0 50%;
|
|
7034
|
+
padding: ${size(1)};
|
|
7035
|
+
|
|
7036
|
+
${({ theme }) => theme.breakpoint.LtSm} {
|
|
7037
|
+
flex: 0 0 100%;
|
|
7038
|
+
}
|
|
7039
|
+
`;
|
|
7040
|
+
const PdfContainer = styled.ul `
|
|
7041
|
+
list-style: none;
|
|
7042
|
+
padding: 0;
|
|
7043
|
+
display: flex;
|
|
7044
|
+
flex-wrap: wrap;
|
|
7045
|
+
margin: ${size(-1)};
|
|
7046
|
+
`;
|
|
7047
|
+
const PdfLink = styled.a.attrs(() => ({
|
|
7048
|
+
className: 'wayke__theme wayke__color--primary-text wayke__font--bold',
|
|
7049
|
+
})) `
|
|
7050
|
+
text-decoration: none;
|
|
7051
|
+
font-size: 0.875rem;
|
|
7052
|
+
&:after {
|
|
7053
|
+
content: '';
|
|
7054
|
+
position: absolute;
|
|
7055
|
+
top: 0;
|
|
7056
|
+
left: 0;
|
|
7057
|
+
width: 100%;
|
|
7058
|
+
height: 100%;
|
|
7059
|
+
}
|
|
7060
|
+
`;
|
|
7061
|
+
const PdfTitle = styled.div `
|
|
7062
|
+
color: ${(props) => props.theme.color.textDark};
|
|
7063
|
+
`;
|
|
7064
|
+
const PdfSubtitle = styled.div `
|
|
7065
|
+
color: ${(props) => props.theme.color.textDarkLighten};
|
|
7066
|
+
`;
|
|
7067
|
+
const PdfColumn = styled.div `
|
|
7068
|
+
flex 0 0 auto;
|
|
7069
|
+
&:first-child {
|
|
7070
|
+
flex: 1 1 auto;
|
|
7071
|
+
}
|
|
7072
|
+
`;
|
|
7073
|
+
const PdfListInner = styled.div `
|
|
7074
|
+
position: relative;
|
|
7075
|
+
border: 1px solid ${(props) => props.theme.color.border};
|
|
7076
|
+
padding: ${size(1.5)};
|
|
7077
|
+
display: flex;
|
|
7078
|
+
align-items: center;
|
|
7079
|
+
:hover {
|
|
7080
|
+
background-color: ${(props) => props.theme.color.hoverOverlay};
|
|
7081
|
+
}
|
|
7082
|
+
`;
|
|
7083
|
+
|
|
7084
|
+
const PdfDownloadItem = ({ document }) => (React__default.createElement(PdfListItem, null,
|
|
7085
|
+
React__default.createElement(PdfListInner, null,
|
|
7086
|
+
React__default.createElement(PdfColumn, null,
|
|
7087
|
+
React__default.createElement(PdfTitle, null, document.name),
|
|
7088
|
+
React__default.createElement(PdfSubtitle, null, document.contentType)),
|
|
7089
|
+
React__default.createElement(PdfColumn, null,
|
|
7090
|
+
React__default.createElement(PdfLink, { href: document.url, rel: "noopener noreferrer nofollow", target: "_blank" }, "\u00D6ppna")))));
|
|
7091
|
+
const PdfDownloadContainer = ({ documents }) => (React__default.createElement(PdfContainer, null, documents.map((document, i) => (React__default.createElement(PdfDownloadItem, { key: `${document.url}-${i}`, document: document })))));
|
|
7092
|
+
|
|
6949
7093
|
const WaykeSearchItem = ({ id, hashRoute, pathRoute, disableResetScrollOnInit, placeholderImage, modifyDocumentTitleItem, onClickSearchItem, }) => {
|
|
6950
7094
|
var _a, _b, _c;
|
|
6951
7095
|
const [ecomModal, setEcomModal] = useState(false);
|
|
@@ -6976,7 +7120,10 @@ const WaykeSearchItem = ({ id, hashRoute, pathRoute, disableResetScrollOnInit, p
|
|
|
6976
7120
|
const { vehicle } = result;
|
|
6977
7121
|
const contact = centralStorageVehicle === null || centralStorageVehicle === void 0 ? void 0 : centralStorageVehicle.contact;
|
|
6978
7122
|
const branch = centralStorageVehicle === null || centralStorageVehicle === void 0 ? void 0 : centralStorageVehicle.branch;
|
|
6979
|
-
const { title, shortDescription, media, description, price, financialOptions,
|
|
7123
|
+
const { title, shortDescription, media, description, price, financialOptions, manufacturer, ecommerce, packageOptions, publishedAt, documents, } = vehicle;
|
|
7124
|
+
const insuranceOptions = (centralStorageVehicle === null || centralStorageVehicle === void 0 ? void 0 : centralStorageVehicle.insuranceOptions)
|
|
7125
|
+
? centralStorageVehicle.insuranceOptions
|
|
7126
|
+
: vehicle.insuranceOptions;
|
|
6980
7127
|
const { fuelType, mileage, gearbox, modelYear, propertySet } = vehicle.data;
|
|
6981
7128
|
const uspList = [
|
|
6982
7129
|
{
|
|
@@ -7019,7 +7166,7 @@ const WaykeSearchItem = ({ id, hashRoute, pathRoute, disableResetScrollOnInit, p
|
|
|
7019
7166
|
React__default.createElement(PriceTable, { price: price })),
|
|
7020
7167
|
(financialOptions.length > 0 || insuranceOptions.length > 0) && (React__default.createElement(ProductPageAsideSection, { mobileOrder: 4 },
|
|
7021
7168
|
financialOptions.length > 0 && (React__default.createElement(FinancialOptions, { id: id, financialOptions: financialOptions })),
|
|
7022
|
-
insuranceOptions.length > 0 && (React__default.createElement(InsuranceOptions, { id: id, insuranceOptions: insuranceOptions })))),
|
|
7169
|
+
insuranceOptions.length > 0 && (React__default.createElement(InsuranceOptions, { id: id, branch: centralStorageVehicle === null || centralStorageVehicle === void 0 ? void 0 : centralStorageVehicle.branch, insuranceOptions: insuranceOptions })))),
|
|
7023
7170
|
React__default.createElement(ProductPageAsideSection, { mobileOrder: 5 },
|
|
7024
7171
|
React__default.createElement(CheckList, { manufacturer: manufacturer, packageOptions: packageOptions, ecommerce: ecommerce, branch: branch, contact: centralStorageVehicle === null || centralStorageVehicle === void 0 ? void 0 : centralStorageVehicle.contact, loadingCentralStorageVehicle: loadingCentralStorageVehicle, toggleEcomModal: toggleEcomModal }))),
|
|
7025
7172
|
React__default.createElement(ProductPageMain, null,
|
|
@@ -7046,6 +7193,14 @@ const WaykeSearchItem = ({ id, hashRoute, pathRoute, disableResetScrollOnInit, p
|
|
|
7046
7193
|
React__default.createElement(Repeat, null,
|
|
7047
7194
|
React__default.createElement(ExtendContent, { actionTitle: "Visa mer", onClick: onShowMoreOptionsClick },
|
|
7048
7195
|
React__default.createElement(UspList, { items: options }))))),
|
|
7196
|
+
(documents.length || 0) > 0 && (React__default.createElement(ProductPageMainSection, null,
|
|
7197
|
+
React__default.createElement(Repeat, null,
|
|
7198
|
+
React__default.createElement(H2, { noMargin: true }, "Dokument")),
|
|
7199
|
+
React__default.createElement(Repeat, null,
|
|
7200
|
+
React__default.createElement(Content$2, null,
|
|
7201
|
+
React__default.createElement("p", null, "Tillh\u00F6rande dokument f\u00F6r bilen."))),
|
|
7202
|
+
React__default.createElement(Repeat, null,
|
|
7203
|
+
React__default.createElement(PdfDownloadContainer, { documents: documents })))),
|
|
7049
7204
|
React__default.createElement(ProductPageMainSection, null,
|
|
7050
7205
|
React__default.createElement(Branch, { branch: branch, loading: loadingCentralStorageVehicle }),
|
|
7051
7206
|
ecommerce && ecommerce.enabled && (React__default.createElement(Repeat, null,
|