@mychoice/mychoice-sdk-modules 2.0.1 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (27) hide show
  1. package/dist/cjs/index.js +75 -16
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/cjs/init/helper.d.ts +2 -2
  4. package/dist/cjs/insurances/car/pages/helpers.d.ts +2 -2
  5. package/dist/cjs/insurances/car/pages/quote/PageAllQuotes.d.ts +2 -0
  6. package/dist/cjs/insurances/car/pages/quote/sections/SectionConfirm.d.ts +1 -0
  7. package/dist/cjs/insurances/car/pages/quote/sections/blocks/BlockConfirmImages.d.ts +1 -0
  8. package/dist/cjs/insurances/car/pages/quote/sections/blocks/BlockQuoteStatistics.d.ts +2 -0
  9. package/dist/cjs/insurances/car/pages/quote/sections/index.d.ts +1 -0
  10. package/dist/cjs/insurances/home/pages/address/sections/blocks/BlockAddressInfo.d.ts +1 -1
  11. package/dist/cjs/shared/sections/quotes/OfferSection/BestOfferSection.d.ts +3 -0
  12. package/dist/cjs/shared/sections/quotes/OfferSection/DummyOfferSection.d.ts +3 -0
  13. package/dist/esm/index.js +75 -16
  14. package/dist/esm/index.js.map +1 -1
  15. package/dist/esm/init/helper.d.ts +2 -2
  16. package/dist/esm/insurances/car/pages/helpers.d.ts +2 -2
  17. package/dist/esm/insurances/car/pages/quote/PageAllQuotes.d.ts +2 -0
  18. package/dist/esm/insurances/car/pages/quote/sections/SectionConfirm.d.ts +1 -0
  19. package/dist/esm/insurances/car/pages/quote/sections/blocks/BlockConfirmImages.d.ts +1 -0
  20. package/dist/esm/insurances/car/pages/quote/sections/blocks/BlockQuoteStatistics.d.ts +2 -0
  21. package/dist/esm/insurances/car/pages/quote/sections/index.d.ts +1 -0
  22. package/dist/esm/insurances/home/pages/address/sections/blocks/BlockAddressInfo.d.ts +1 -1
  23. package/dist/esm/shared/sections/quotes/OfferSection/BestOfferSection.d.ts +3 -0
  24. package/dist/esm/shared/sections/quotes/OfferSection/DummyOfferSection.d.ts +3 -0
  25. package/package.json +4 -4
  26. package/dist/cjs/insurances/life/pages/quote/sections/SectionQuoteRecalc.d.ts +0 -2
  27. package/dist/esm/insurances/life/pages/quote/sections/SectionQuoteRecalc.d.ts +0 -2
@@ -1,2 +1,2 @@
1
- import { InsuranceTypes } from '@mychoice/mychoice-sdk-components';
2
- export declare const getInsuranceType: () => InsuranceTypes;
1
+ import { InsuranceTypes } from '@groksmith/mychoice-sdk-components';
2
+ export declare const getInsuranceType: () => InsuranceTypes.Car | InsuranceTypes.Home;
@@ -1,5 +1,5 @@
1
- import { DriverLicenceTypes, SelectOptionInterface } from '@mychoice/mychoice-sdk-components';
2
- import { FormCarConfigStateInterface } from '@mychoice/mychoice-sdk-store';
1
+ import { DriverLicenceTypes, SelectOptionInterface } from '@groksmith/mychoice-sdk-components';
2
+ import { FormCarConfigStateInterface } from '@groksmith/mychoice-sdk-store';
3
3
  export declare const getLicenceTypeOptions: (options: SelectOptionInterface[], optionValues: string[], disabled: boolean) => SelectOptionInterface[];
4
4
  export declare const checkDateIsSpecial: (defaultMinDate: string, specialDate: string) => boolean;
5
5
  export declare const getLicenceMinDate: (licenceType: DriverLicenceTypes, defaultMinDate: string, config: FormCarConfigStateInterface) => string;
@@ -0,0 +1,2 @@
1
+ import { SdkFC } from '@groksmith/mychoice-sdk-components';
2
+ export declare const PageAllQuotes: SdkFC;
@@ -0,0 +1 @@
1
+ export declare const SectionConfirm: () => import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1 @@
1
+ export declare const BlockConfirmImages: () => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { SdkFC } from '@groksmith/mychoice-sdk-components';
2
+ export declare const BlockQuoteStatistics: SdkFC;
@@ -1,2 +1,3 @@
1
1
  export { SectionQuoteEdit } from './SectionQuoteEdit';
2
2
  export { SectionQuoteRecalc } from './SectionQuoteRecalc';
3
+ export { SectionConfirm } from './SectionConfirm';
@@ -1,2 +1,2 @@
1
- import { SdkFC } from '@mychoice/mychoice-sdk-components';
1
+ import { SdkFC } from '@groksmith/mychoice-sdk-components';
2
2
  export declare const BlockAddressInfo: SdkFC;
@@ -0,0 +1,3 @@
1
+ import { SdkFC } from '@groksmith/mychoice-sdk-components';
2
+ import { OfferSectionProps } from '../interfaces';
3
+ export declare const BestOfferSection: SdkFC<OfferSectionProps>;
@@ -0,0 +1,3 @@
1
+ import { SdkFC } from '@groksmith/mychoice-sdk-components';
2
+ import { OfferSectionProps } from '../interfaces';
3
+ export declare const DummyOfferSection: SdkFC<OfferSectionProps>;
package/dist/esm/index.js CHANGED
@@ -3,6 +3,7 @@ import { AppTypes, TitleForm, TooltipForm, IconDelete, ColorVariablesTypes, Inpu
3
3
  import { useStoreAppConfig, CarQuoteDataHandler, useStorePartner, useStoreAppLoader, useStoreAppModal, StoreConfigAppModalActionTypes, useHandlerPostal, useHandlerCarMake, useHandlerCarModel, useStoreFormCarVehicle, StoreFormCarVehicleActionTypes, useProvince, useStoreFormCarDiscount, useStoreDeviceType, StoreFormCarDiscountActionTypes, useValidationVehicle, useStoreFormCarDriverBase, StoreFormCarDriverBaseActionTypes, useStoreFormCarConfig, useStoreFormCarDriverInfo, StoreFormCarDriverInfoActionTypes, useStoreFormCarDriverLicence, addDayToDate, StoreFormCarDriverLicenceActionTypes, useStoreFormCarDriverInsurance, useStoreFormCarQuote, StoreFormCarDriverInsuranceActionTypes, useStoreFormCarDriverCancellation, StoreFormCarDriverCancellationActionTypes, useStoreFormCarDriverSuspension, StoreFormCarDriverSuspensionActionTypes, useStoreFormCarDriverAccident, StoreFormCarDriverAccidentActionTypes, useStoreFormCarDriverTicket, StoreFormCarDriverTicketActionTypes, useValidationDriver, useValidationCarDiscount, useHandlerCarQuoterEmail, useStoreFormHomeDwelling, useStoreFormHomePostal, useStoreFormHomeApplicantBase, StoreFormHomePostalActionTypes, StoreFormHomeDwellingActionTypes, StoreConfigAppConfigActionTypes, StoreFormHomeApplicantBaseActionTypes, useValidationAddress, useStoreFormHomeApplicantInfo, useStoreFormHomeDiscount, StoreFormHomeDiscountActionTypes, StoreFormHomeApplicantInfoActionTypes, useStoreFormHomeApplicantInsurance, StoreFormHomeApplicantInsuranceActionTypes, useStoreFormHomeApplicantCancellation, StoreFormHomeApplicantCancellationActionTypes, useStoreFormHomeApplicantClaim, StoreFormHomeApplicantClaimActionTypes, useValidationApplicant, useValidationDwelling, useStoreFormHomeQuote, HomeQuoteDataHandler, useValidationHomeDiscount, useHandlerHomeQuoterEmail, useStoreFormLifeCoverage, StoreFormLifeCoverageActionTypes, useValidationCoverage, useStoreFormLifeQuote, useStoreFormLifeApplicant, LifeQuoteDataHandler, useValidationLifeApplicant, useHandlerLifeQuoterEmail, StoreFormLifeApplicantActionTypes, useStoreFormCarPostal, useStoreFormLifePostal, ClearFormDataHandler, useStoreAppDevice, useStoreClient, useHandlerAuth, useHandlerPartner, StoreConfigAppLoaderActionTypes, StoreFormCarConfigActionTypes, StoreFormCarPostalActionTypes, StoreFormCarQuoteActionTypes, StoreFormHomeQuoteActionTypes, StoreFormLifePostalActionTypes, StoreFormLifeQuoteActionTypes, StoreClientActionTypes, StoreConfigAppDeviceActionTypes, StoreProvider, initHttpResponse } from '@mychoice/mychoice-sdk-store';
4
4
  import { useNavigate, useLocation, BrowserRouter, Routes, Route, Navigate } from 'react-router-dom';
5
5
  import React, { useState, useCallback, useEffect, useRef } from 'react';
6
+ import { random } from 'lodash';
6
7
  import GooglePlacesAutocomplete, { geocodeByPlaceId } from 'react-google-places-autocomplete';
7
8
  import { components } from 'react-select';
8
9
  import { Helmet } from 'react-helmet';
@@ -1750,6 +1751,62 @@ const SectionQuoteRecalc$1 = () => {
1750
1751
  return (jsxs("div", { className: "form-container", children: [jsx(TabVehicle, { readOnly: true }), jsxs("div", { className: `form-section edit-recalc-container ${mychoiceCls}`, children: [jsx(SelectFormBox, { options: coverageOptions, name: "comprehensive-coverage", onChange: handleComprehensiveChange, defaultValue: getSelectedOption(coverageOptions, comprehensive.coverage ? comprehensive.deductible : 0), title: "Comprehensive coverage", description: "This deductible is the amount of money that you will pay out of your own pocket if your vehicle is damaged in events not covered by collision coverage. This includes events such as falling or flying objects, vandalism, and theft. Your insurance company covers the cost of repair minus the deductible chosen.", placeholder: "Select from the list", autoSelectIfValueIsOutOfOptions: false }), jsx(SelectFormBox, { options: coverageOptions, name: "collision-coverage", onChange: handleCollisionChange, defaultValue: getSelectedOption(coverageOptions, collision.coverage ? collision.deductible : 0), title: "Collision coverage", description: "This deductible is the specific dollar amount you will pay out of your own pocket if your vehicle is damaged in an accident. Your insurance company covers the remaining amount.", placeholder: "Select from the list", autoSelectIfValueIsOutOfOptions: false }), jsx(SelectFormBox, { options: liabilityOptions, name: "liability-limit", onChange: handleLiabilityChange, defaultValue: getSelectedOption(liabilityOptions, liability.coverage ? liability.limit : 1000000), title: "Third Party Liability", description: "This protects you from lawsuits resulting from accidents causing bodily injury or death to others or property damage.", placeholder: "Select from the list", autoSelectIfValueIsOutOfOptions: false }), jsx(BlockSubmit$2, { className: `${isTheBig ? 'thebig-bold' : 'mychoice'} recalculate`, label: "Recalculate Quote", buttonSize: SizeTypes.Medium, isRecalc: true }), isTheBig && jsx(BlockEndorsements, {})] })] }));
1751
1752
  };
1752
1753
 
1754
+ const BlockConfirmImages = () => (jsxs("div", { className: "image-section", children: [jsx("div", { className: "providers-title", children: "We compare rates from Canada's top providers, including:" }), jsxs("div", { className: "providers-carousel", children: [jsx("img", { width: "175", height: "70", src: "https://www.mychoice.ca/wp-content/uploads/2023/02/logo-3.png", alt: "S.G.I. Canada" }), jsx("img", { width: "175", height: "70", src: "https://www.mychoice.ca/wp-content/uploads/2023/02/logo-5.png", alt: "Onlia Insurance" }), jsx("img", { width: "175", height: "70", src: "https://www.mychoice.ca/wp-content/uploads/2023/02/logo-4.png", alt: "Economical insurance" }), jsx("img", { width: "175", height: "70", src: "https://www.mychoice.ca/wp-content/uploads/2023/02/logo-1.png", alt: "CAA" }), jsx("img", { width: "175", height: "70", src: "https://www.mychoice.ca/wp-content/uploads/2023/06/Coachman-logo-2.png", alt: "Coachman" })] })] }));
1755
+
1756
+ const lockEmoji = '\u{1F512}';
1757
+ const savedPercentage = random(25, 30);
1758
+ const SectionConfirm = () => {
1759
+ const { discountState, dispatchDiscountState } = useStoreFormCarDiscount();
1760
+ const { postPerformLeadsAction } = CarQuoteDataHandler();
1761
+ const { quoteState } = useStoreFormCarQuote();
1762
+ const { appDeviceType } = useStoreDeviceType();
1763
+ const { quoterInfo } = discountState;
1764
+ const { items: quotes } = quoteState;
1765
+ const { firstName, lastName, phone } = quoterInfo;
1766
+ const bestQuote = quotes.length ? quotes[0] : null;
1767
+ const [comparedCountMax] = useState(random(1021, 1502));
1768
+ const [comparedCountMin, setComparedCountMin] = useState(1000);
1769
+ useEffect(() => {
1770
+ if (comparedCountMin < comparedCountMax) {
1771
+ const intervalId = setInterval(() => {
1772
+ setComparedCountMin((prev) => prev + 1);
1773
+ }, 2.5);
1774
+ return () => {
1775
+ clearInterval(intervalId);
1776
+ };
1777
+ }
1778
+ return () => { };
1779
+ }, [comparedCountMax, comparedCountMin]);
1780
+ const handleFirstNameChange = ({ value }) => {
1781
+ dispatchDiscountState({
1782
+ type: StoreFormCarDiscountActionTypes.FormCarDiscountQuoterFirstNameSet,
1783
+ payload: { firstName: value },
1784
+ });
1785
+ };
1786
+ const handleLastNameChange = ({ value }) => {
1787
+ dispatchDiscountState({
1788
+ type: StoreFormCarDiscountActionTypes.FormCarDiscountQuoterLastNameSet,
1789
+ payload: { lastName: value },
1790
+ });
1791
+ };
1792
+ const handlePhoneNumberChange = ({ value }) => {
1793
+ dispatchDiscountState({
1794
+ type: StoreFormCarDiscountActionTypes.FormCarDiscountQuoterPhoneSet,
1795
+ payload: { phone: value },
1796
+ });
1797
+ };
1798
+ const handleSubmit = async () => {
1799
+ await postPerformLeadsAction?.();
1800
+ window.scrollTo({
1801
+ top: 0,
1802
+ behavior: 'smooth',
1803
+ });
1804
+ };
1805
+ if (!bestQuote)
1806
+ return null;
1807
+ return (jsxs("div", { style: { zIndex: '1' }, children: [jsxs("div", { className: "shadow-box mb", children: [jsx("div", { className: "large-title", children: "10+ Quotes Found" }), jsx("p", { children: "Complete the last step to reveal which insurance companies are offering these rates." })] }), jsxs("div", { className: "shadow-box", children: [jsx("div", { className: "highlighted-heading", children: "Best Offer" }), jsx("h1", { children: `$${bestQuote.priceMonthly} / month` }), jsx("div", { className: "highlighted-heading", children: jsx("span", { children: `$${bestQuote.priceYearly} / year` }) })] }), jsxs("div", { className: "statistics-wrapper", children: [jsx("div", { className: "counter", id: "output", children: comparedCountMin }), jsx("div", { className: "divider" }), jsx("div", { style: { textAlign: 'center', fontSize: '1.15rem', marginTop: '10px' }, children: `Canadians have compared rates in the last 24 hours and saved ${savedPercentage}% on average` })] }), jsx("div", { style: { marginBottom: '2rem' }, children: jsx("div", { className: "all-quotes-form", children: jsx("h2", { style: { whiteSpace: 'normal', marginTop: '20px', textAlign: 'center' }, children: `${lockEmoji} Complete the form below to see which companies are offering your quotes.` }) }) }), jsx("div", { style: { marginBottom: '1rem' }, children: jsx(InputFormBox, { name: "firstName", title: "First Name", onChange: handleFirstNameChange, defaultValue: firstName, placeholder: "Your First Name", error: !firstName && discountState.inValidation, errorMessage: getErrorMessage(firstName, discountState.inValidation) }) }), jsx("div", { style: { marginBottom: '1rem' }, children: jsx(InputFormBox, { name: "lastname", title: "Last Name", onChange: handleLastNameChange, defaultValue: lastName, placeholder: "Your Last Name", error: !lastName && discountState.inValidation, errorMessage: getErrorMessage(lastName, discountState.inValidation) }) }), jsx("div", { style: { marginBottom: '1rem' }, children: jsx(InputFormPhoneBox, { name: "phone", onChange: handlePhoneNumberChange, defaultValue: phone, title: "Phone Number", placeholder: "(111) 111-1111", error: !phone && discountState.inValidation, errorMessage: getErrorMessage(phone, discountState.inValidation) }) }), jsx("div", { className: "submit-wrapper", children: jsx(ButtonBase, { className: "mychoice", size: SizeTypes.Large, category: CategoryTypes.Filled, onClick: handleSubmit, color: ColorTypes.Primary, label: "Get Your Quote" }) }), jsxs("div", { className: "extra-info", children: [jsx("h5", { children: "On the next page, you will also be able to:" }), jsx("div", { className: "next-page-points", children: jsxs("div", { style: { display: 'flex', flexDirection: 'column' }, children: [jsxs("div", { className: "bullet-container", children: [jsx("div", { className: "bullet-point", children: "1" }), jsx("div", { children: "See what rates insurance carriers are offering" })] }), jsxs("div", { className: "bullet-container", children: [jsx("div", { className: "bullet-point", children: "2" }), jsx("div", { children: "Get in touch with a broker and secure your rate" })] }), jsxs("div", { className: "bullet-container", children: [jsx("div", { className: "bullet-point", children: "3" }), jsx("div", { children: "Potentially save more by speaking with a broker" })] })] }) }), jsx("div", { className: "privacy-policy", children: jsxs("p", { children: ["Once you submit this form, you are agreeing to have your insurance quote sent to you via email and My Choice will provide your contact information to one of our trusted broker partners, who will contact you after your quote is complete to further assist you in securing your best rate. For more details, see our", jsx("a", { href: "https://www.mychoice.ca/privacy-policy/", children: " Privacy Policy" }), "."] }) })] }), appDeviceType === DeviceTypes.Mobile && jsx(BlockConfirmImages, {})] }));
1808
+ };
1809
+
1753
1810
  const SplashScreen$2 = () => {
1754
1811
  const { discountState } = useStoreFormCarDiscount();
1755
1812
  const phoneObject = formatPhoneObject(discountState.quoterInfo.brokerInfo?.phone) || {};
@@ -1759,6 +1816,7 @@ const SplashScreen$2 = () => {
1759
1816
  };
1760
1817
 
1761
1818
  const PageCarQuote = () => {
1819
+ const { appConfigState: { appType } } = useStoreAppConfig();
1762
1820
  const { vehicleFormValidate, vehicleFormIsValid } = useValidationVehicle();
1763
1821
  const { driverFormValidate, driverFormIsValid } = useValidationDriver();
1764
1822
  const { carDiscountFormValidate, carDiscountFormIsValid } = useValidationCarDiscount();
@@ -1766,7 +1824,10 @@ const PageCarQuote = () => {
1766
1824
  const { postRequestQuote } = CarQuoteDataHandler();
1767
1825
  const { appLoaderState } = useStoreAppLoader();
1768
1826
  const { appDeviceType } = useStoreDeviceType();
1769
- const { items } = quoteState;
1827
+ const { items, quoteConfirm } = quoteState;
1828
+ const isTheBig = appType === AppTypes.TheBig;
1829
+ const hasConfirmStep = items?.length && !isTheBig && items[0]?.confirmQuote && quoteConfirm;
1830
+ const quoteItems = hasConfirmStep ? items?.slice(0, 3) : items;
1770
1831
  useEffectOnce(() => {
1771
1832
  if (!vehicleFormIsValid) {
1772
1833
  vehicleFormValidate();
@@ -1785,27 +1846,25 @@ const PageCarQuote = () => {
1785
1846
  behavior: 'smooth',
1786
1847
  });
1787
1848
  });
1788
- return (jsx("div", { className: "quote-page-content", children: !appLoaderState.isOpen
1789
- && (jsxs(Fragment, { children: [jsxs("div", { className: "form-section-container", children: [appDeviceType === DeviceTypes.Mobile && (jsx(Fragment, { children: !!items?.length && (jsx(Fragment, { children: !quoteState.showCallMessage
1790
- ? (jsx("div", { className: "offer-container", children: jsx(OfferSection, { isBestOffer: true, offerCompany: items[0]?.company, brokerCompany: items[0]?.brokerProfile, offerPrice: {
1791
- monthly: items[0]?.priceMonthly,
1792
- yearly: items[0]?.priceYearly,
1793
- }, operationHours: {
1794
- saturdayHours: items[0]?.brokerProfile.hoursSaturday,
1795
- sundayHours: items[0]?.brokerProfile.hoursSunday,
1796
- weekdayHours: items[0]?.brokerProfile.hoursWorkdays,
1797
- }, phoneNumber: formatPhoneObject(items[0]?.brokerProfile.phone), redirectUrl: items[0]?.brokerProfile.redirectUrl || '' }) }))
1798
- : jsx(SplashScreen$2, {}) })) })), jsx(SectionQuoteEdit$2, {}), jsx(SectionQuoteRecalc$1, {})] }), appDeviceType !== DeviceTypes.Mobile && quoteState.showCallMessage
1799
- && jsx(SplashScreen$2, {}), !quoteState.showCallMessage
1800
- && (jsx("div", { className: "offer-container", children: !!items?.length
1801
- && items.map(({ company, brokerProfile, priceMonthly, priceYearly, }, index) => (jsx("div", { children: (appDeviceType !== DeviceTypes.Mobile || (appDeviceType === DeviceTypes.Mobile && index !== 0)) && (jsx(OfferSection, { isBestOffer: index === 0, offerCompany: company, brokerCompany: brokerProfile, offerPrice: {
1849
+ return (jsx("div", { className: "quote-page-content", children: !appLoaderState.isOpen && (jsxs(Fragment, { children: [jsxs("div", { className: "form-section-container", children: [appDeviceType === DeviceTypes.Mobile && !hasConfirmStep && (jsx(Fragment, { children: !!items?.length && (jsx(Fragment, { children: !quoteState.showCallMessage
1850
+ ? (jsx("div", { className: "offer-container", children: jsx(OfferSection, { isBestOffer: true, offerCompany: items[0]?.company, brokerCompany: items[0]?.brokerProfile, offerPrice: {
1851
+ monthly: items[0]?.priceMonthly,
1852
+ yearly: items[0]?.priceYearly,
1853
+ }, operationHours: {
1854
+ saturdayHours: items[0]?.brokerProfile.hoursSaturday,
1855
+ sundayHours: items[0]?.brokerProfile.hoursSunday,
1856
+ weekdayHours: items[0]?.brokerProfile.hoursWorkdays,
1857
+ }, phoneNumber: formatPhoneObject(items[0]?.brokerProfile.phone), redirectUrl: items[0]?.brokerProfile.redirectUrl || '' }) }))
1858
+ : jsx(SplashScreen$2, {}) })) })), (!hasConfirmStep || appDeviceType !== DeviceTypes.Mobile) && (jsxs(Fragment, { children: [jsx(SectionQuoteEdit$2, {}), jsx(SectionQuoteRecalc$1, {})] }))] }), appDeviceType !== DeviceTypes.Mobile && quoteState.showCallMessage
1859
+ && jsx(SplashScreen$2, {}), !quoteState.showCallMessage && (jsx(Fragment, { children: jsxs("div", { style: { position: 'relative', width: '100%' }, children: [hasConfirmStep && (jsxs(Fragment, { children: [jsx("div", { className: "offer-container", children: jsx(SectionConfirm, {}) }), appDeviceType === DeviceTypes.Mobile
1860
+ && (jsxs(Fragment, { children: [jsx(SectionQuoteEdit$2, {}), jsx(SectionQuoteRecalc$1, {})] }))] })), jsx("div", { className: `offer-container ${hasConfirmStep ? 'blur' : ''}`, children: !!items?.length && quoteItems.map(({ company, brokerProfile, priceMonthly, priceYearly, }, index) => (jsx("div", { children: (appDeviceType !== DeviceTypes.Mobile || (appDeviceType === DeviceTypes.Mobile && index !== 0)) && (jsx(OfferSection, { isBestOffer: index === 0, offerCompany: company, brokerCompany: brokerProfile, offerPrice: {
1802
1861
  monthly: priceMonthly,
1803
1862
  yearly: priceYearly,
1804
1863
  }, operationHours: {
1805
1864
  saturdayHours: brokerProfile.hoursSaturday,
1806
1865
  sundayHours: brokerProfile.hoursSunday,
1807
1866
  weekdayHours: brokerProfile.hoursWorkdays,
1808
- }, phoneNumber: formatPhoneObject(brokerProfile.phone), redirectUrl: brokerProfile.redirectUrl || '' })) }, index))) }))] })) }));
1867
+ }, phoneNumber: formatPhoneObject(brokerProfile.phone), redirectUrl: brokerProfile.redirectUrl || '' })) }, index))) })] }) })), appDeviceType !== DeviceTypes.Mobile && hasConfirmStep && jsx(BlockConfirmImages, {})] })) }));
1809
1868
  };
1810
1869
 
1811
1870
  const IndicatorsContainer = () => jsx(Fragment, {});