{"version":3,"file":"js/8127-151c83c310497fba9df3.js","mappings":"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","sources":["webpack:///./app/javascript/components/Map/BaseMap.jsx","webpack:///./app/javascript/components/Map/index.jsx","webpack:///./app/javascript/components/Provider/ActiveSessions/index.jsx","webpack:///./app/javascript/components/Provider/AdvertismentBlock/Banners.jsx","webpack:///./app/javascript/components/Provider/AdvertismentBlock/index.jsx","webpack:///./app/javascript/components/Provider/ApolloClient/client.js","webpack:///./app/javascript/components/Provider/ApolloClient/mutations.jsx","webpack:///./app/javascript/components/Provider/ApolloClient/queries.js","webpack:///./app/javascript/components/Provider/Banners/AnonymousBanner.jsx","webpack:///./app/javascript/components/Provider/ClientInfo/ClientInfo.jsx","webpack:///./app/javascript/components/Provider/ClientInfo/ContactInfoForm.jsx","webpack:///./app/javascript/components/Provider/ClientInfo/Notes/index.jsx","webpack:///./app/javascript/components/Provider/Clients/ClientsColumns.jsx","webpack:///./app/javascript/components/Provider/Clients/ClientsTable.jsx","webpack:///./app/javascript/components/Provider/Clients/index.jsx","webpack:///./app/javascript/components/Provider/ContactsPage/ContactsTable.jsx","webpack:///./app/javascript/components/Provider/ContactsPage/CreateNewContact.jsx","webpack:///./app/javascript/components/Provider/ContactsPage/index.jsx","webpack:///./app/javascript/components/Provider/Errors/ModalNetworkError.jsx","webpack:///./app/javascript/components/Provider/Errors/NetworkError.jsx","webpack:///./app/javascript/components/Provider/Errors/Page404.jsx","webpack:///./app/javascript/components/Provider/Errors/PageInfoMessage.jsx","webpack:///./app/javascript/components/Provider/Footer/index.jsx","webpack:///./app/javascript/components/Provider/HelpPage/index.jsx","webpack:///./app/javascript/components/Provider/Invoices/Columns.jsx","webpack:///./app/javascript/components/Provider/Invoices/index.jsx","webpack:///./app/javascript/components/Provider/Loaders/index.jsx","webpack:///./app/javascript/components/Provider/LocationForm/FormGroups/DropdownGroup.jsx","webpack:///./app/javascript/components/Provider/LocationForm/FormGroups/InputGroup.jsx","webpack:///./app/javascript/components/Provider/LocationForm/FormGroups/RadioFormGroup.jsx","webpack:///./app/javascript/components/Provider/LocationForm/FormGroups/RangeInputs.jsx","webpack:///./app/javascript/components/Provider/LocationForm/NavigationButtons/index.jsx","webpack:///./app/javascript/components/Provider/LocationForm/ProgressBar/index.jsx","webpack:///./app/javascript/components/Provider/LocationForm/Steps/Contacts.jsx","webpack:///./app/javascript/components/Provider/LocationForm/Steps/Description.jsx","webpack:///./app/javascript/components/Provider/LocationForm/Steps/Economy/CombinedKindForm/index.jsx","webpack:///./app/javascript/components/Provider/LocationForm/Steps/Economy/index.jsx","webpack:///./app/javascript/components/Provider/LocationForm/Steps/FactsAndFacilities.jsx","webpack:///./app/javascript/components/Provider/LocationForm/Steps/Location/Map.jsx","webpack:///./app/javascript/components/Provider/LocationForm/Steps/Location/MapWrapper.jsx","webpack:///./app/javascript/components/Provider/LocationForm/Steps/Location/index.jsx","webpack:///./app/javascript/components/Provider/LocationForm/Steps/Visuals/FileInput.jsx","webpack:///./app/javascript/components/Provider/LocationForm/Steps/Visuals/FixedNavigationBar.jsx","webpack:///./app/javascript/components/Provider/LocationForm/Steps/Visuals/InputBanner.jsx","webpack:///./app/javascript/components/Provider/LocationForm/Steps/Visuals/VisualsBlock.jsx","webpack:///./app/javascript/components/Provider/LocationForm/Steps/Visuals/index.jsx","webpack:///./app/javascript/components/Provider/LocationForm/StepsWrapper.jsx","webpack:///./app/javascript/components/Provider/LocationForm/index.jsx","webpack:///./app/javascript/components/Provider/LocationInfo/AssetsBlock.jsx","webpack:///./app/javascript/components/Provider/LocationInfo/index.jsx","webpack:///./app/javascript/components/Provider/LocationViewsChart/index.jsx","webpack:///./app/javascript/components/Provider/Locations/LocaationsColumns.jsx","webpack:///./app/javascript/components/Provider/Locations/index.jsx","webpack:///./app/javascript/components/Provider/MainDashboard/index.jsx","webpack:///./app/javascript/components/Provider/Modals/AlreadyKnownLeadStatusModal.jsx","webpack:///./app/javascript/components/Provider/Modals/BaseModal.jsx","webpack:///./app/javascript/components/Provider/Modals/CreateNewContactModal.jsx","webpack:///./app/javascript/components/Provider/Modals/DeactivateLocationModal.jsx","webpack:///./app/javascript/components/Provider/Modals/DeleteContactForeverModal.jsx","webpack:///./app/javascript/components/Provider/Modals/DeleteContactModal.jsx","webpack:///./app/javascript/components/Provider/Modals/DeleteNoteModal.jsx","webpack:///./app/javascript/components/Provider/Modals/DuplicateLocationModal.jsx","webpack:///./app/javascript/components/Provider/Modals/ExtraOrderModal.jsx","webpack:///./app/javascript/components/Provider/Modals/GenerateProspectusModal.jsx","webpack:///./app/javascript/components/Provider/Modals/IframeModal.jsx","webpack:///./app/javascript/components/Provider/Modals/NotesModal.jsx","webpack:///./app/javascript/components/Provider/Modals/PaymentModal/CheckoutForm.jsx","webpack:///./app/javascript/components/Provider/Modals/PaymentModal/PaymentModal.jsx","webpack:///./app/javascript/components/Provider/Modals/ProviderModal.jsx","webpack:///./app/javascript/components/Provider/Modals/QualityScoreInfoModal.jsx","webpack:///./app/javascript/components/Provider/Modals/RejectAgreementModal.jsx","webpack:///./app/javascript/components/Provider/Modals/RentedOutModal.jsx","webpack:///./app/javascript/components/Provider/Modals/ReportADealSuccess.jsx","webpack:///./app/javascript/components/Provider/Modals/SecondaryKindsInfoModal.jsx","webpack:///./app/javascript/components/Provider/Modals/TokenizedFileModalLink.jsx","webpack:///./app/javascript/components/Provider/Modals/VisualsProposalsForm.jsx","webpack:///./app/javascript/components/Provider/MutableLink/index.jsx","webpack:///./app/javascript/components/Provider/Popups/InfoMessagePopup.jsx","webpack:///./app/javascript/components/Provider/Popups/TooltipPopup.jsx","webpack:///./app/javascript/components/Provider/ProviderHeader/index.jsx","webpack:///./app/javascript/components/Provider/ProviderInactive/index.jsx","webpack:///./app/javascript/components/Provider/ReportDeal/Details.jsx","webpack:///./app/javascript/components/Provider/ReportDeal/DetailsReportForm.jsx","webpack:///./app/javascript/components/Provider/ReportDeal/ReaportDealTable.jsx","webpack:///./app/javascript/components/Provider/ReportDeal/ReportDealProgress.jsx","webpack:///./app/javascript/components/Provider/ReportDeal/ReportSteps.jsx","webpack:///./app/javascript/components/Provider/ReportDeal/index.jsx","webpack:///./app/javascript/components/Provider/ScoreWidget/index.jsx","webpack:///./app/javascript/components/Provider/Settings/ChangePasswordForm/index.jsx","webpack:///./app/javascript/components/Provider/Settings/ContactForm/index.jsx","webpack:///./app/javascript/components/Provider/Settings/ContactSettings.jsx","webpack:///./app/javascript/components/Provider/Settings/PhotoUpload.jsx","webpack:///./app/javascript/components/Provider/Settings/ProviderSettings.jsx","webpack:///./app/javascript/components/Provider/Settings/UpdateProvider.jsx","webpack:///./app/javascript/components/Provider/SideBar/SideBarLink.jsx","webpack:///./app/javascript/components/Provider/SideBar/index.jsx","webpack:///./app/javascript/components/Provider/Statistic/ExpandedStatistics.jsx","webpack:///./app/javascript/components/Provider/Statistic/StatisticColumns.jsx","webpack:///./app/javascript/components/Provider/Statistic/index.jsx","webpack:///./app/javascript/components/Provider/Table/Columns.jsx","webpack:///./app/javascript/components/Provider/Table/index.jsx","webpack:///./app/javascript/components/Provider/UnresolvedAgreement/Columns.jsx","webpack:///./app/javascript/components/Provider/UnresolvedAgreement/index.jsx","webpack:///./app/javascript/components/Provider/WelcomePage/index.jsx","webpack:///./app/javascript/components/Provider/index.jsx","webpack:///./app/javascript/components/SharedComponents/Charts/InlineChart.jsx","webpack:///./app/javascript/components/SharedComponents/FormMessages/FormMessageBlock.jsx","webpack:///./app/javascript/components/SharedComponents/Forms/BasicDropdown/index.jsx","webpack:///./app/javascript/components/SharedComponents/Forms/BasicInput/index.jsx","webpack:///./app/javascript/components/SharedComponents/Forms/CheckBox/index.jsx","webpack:///./app/javascript/components/SharedComponents/Forms/ErrorMessages.js","webpack:///./app/javascript/components/SharedComponents/Forms/Input/index.jsx","webpack:///./app/javascript/components/SharedComponents/Forms/RadioButtons/index.jsx","webpack:///./app/javascript/components/SharedComponents/Forms/SearchableDropdown/index.jsx","webpack:///./app/javascript/components/SharedComponents/Forms/ValidationSchemaPattern.js","webpack:///./app/javascript/components/SharedComponents/ScrollToTop.jsx","webpack:///./app/javascript/utils/resizeObzerver.js","webpack:///./node_modules/suneditor/src/lang/ sync ^\\.\\/.*\\.js$"],"sourcesContent":["import React from 'react';\nimport {\n withScriptjs,\n withGoogleMap,\n GoogleMap,\n Marker,\n} from 'react-google-maps';\n\n\nimport mapPin from '../../src/images/details-page-pin.svg';\nimport mapStyles from \"../../src/stylesheets/map_styles.json\";\nimport { SvgIco } from \"../SharedComponents/Icons\";\n\n\nfunction removeStyles() {\n const gm = document.querySelector('.bottom-map-container .gm-style');\n if (gm) {\n gm.classList.remove('gm-style');\n }\n};\n\n\nconst BaseMap = withScriptjs(\n withGoogleMap(props => (\n <GoogleMap\n defaultZoom={props.defaultZoom || 15}\n defaultCenter={props.coordinates}\n onLoaded={removeStyles()}\n options={{\n gestureHandling: 'cooperative',\n fullscreenControl: !props.isFullscreenMobile && !props.isGalleryMobileComponent,\n mapTypeControl: !props.isFullscreenMobile || !props.isGalleryMobileComponent,\n streetViewControl: !props.isFullscreenMobile && !props.isMobile,\n styles: mapStyles,\n }}\n >\n <div className={`dv-gallery-map-fullscreen-header${props.isFullscreenMobile && !props.orientationHorizontalMobile ? ' active' : ''}`}>\n <span>\n { I18n.t('lb_showroom.detailed.asset_box.new_map_button') }\n </span>\n { props.isGalleryMobileComponent &&\n <div className=\"map-mobile-fullscreen-btn\" onClick={props.handleFullscreenMobile}>\n { props.isFullscreenMobile\n ? <SvgIco name=\"close\" size={24} />\n : <SvgIco name=\"crop_free\" size={24} />\n }\n </div>\n }\n </div>\n <Marker icon={{ url: mapPin, scaledSize: { width: 56, height: 56} }} position={props.coordinates} />\n { props.markers }\n </GoogleMap>\n ))\n);\n\nexport default BaseMap;\n","import React, { Component } from 'react';\nimport BaseMap from './BaseMap';\nimport { isMobile, isTablet } from \"react-device-detect\";\n\nfunction loadingElement() {\n return <div style={{ height: `100%` }} />;\n}\n\nclass Map extends Component {\n state = {\n isGalleryMobileComponent: false,\n isFullscreenMobile: false,\n orientationHorizontalMobile: false,\n };\n\n componentDidMount() {\n this.props.isGalleryComponent && isMobile && this.setState({ isGalleryMobileComponent: true });\n }\n\n handleFullscreenMobile = () => this.setState({ isFullscreenMobile: !this.state.isFullscreenMobile });\n\n render() {\n const { latitude, longitude , googleApiKey, orientationHorizontalMobile, oldVariant } = this.props;\n const { isFullscreenMobile, isGalleryMobileComponent } = this.state;\n const coordinatesObj = { lat: latitude, lng: longitude };\n const containerClass = `map-container${isFullscreenMobile ? ' fullscreen-mobile' : ''}`;\n\n\n return (\n <BaseMap\n googleMapURL={`https://maps.googleapis.com/maps/api/js?key=${googleApiKey}&libraries=places`}\n loadingElement={loadingElement()}\n containerElement={<div className={containerClass} />}\n mapElement={<div className=\"map-element\" />}\n coordinates={coordinatesObj}\n isGalleryMobileComponent={isGalleryMobileComponent}\n isMobile={isMobile && !isTablet}\n handleFullscreenMobile={this.handleFullscreenMobile}\n isFullscreenMobile={isFullscreenMobile}\n orientationHorizontalMobile={orientationHorizontalMobile}\n oldVariant={oldVariant}\n />\n );\n }\n}\n\nexport default Map;\n","import React, { useState } from 'react';\nimport { useMutation, useQuery } from \"@apollo/client\";\n\nimport { GET_SERVER_SIDE_SESSIONS } from \"../ApolloClient/queries\";\nimport { DELETE_SERVER_SIDE_SESSION } from \"../ApolloClient/mutations\";\nimport { SvgIco } from \"../../SharedComponents/Icons\";\n\nimport './index.sass';\n\n\nconst ActiveSessions = ({ showDeleteButton }) => {\n\n const [sessions, setSessions] = useState([]);\n\n const { getServerSideSessions } = useQuery(GET_SERVER_SIDE_SESSIONS, {\n onCompleted: (data) =>\n data && data.serverSideSessions && setSessions(data.serverSideSessions),\n });\n\n const [ deleteServerSideSession, { loading, error } ] = useMutation(DELETE_SERVER_SIDE_SESSION, {\n update(cache, result) {},\n refetchQueries: [\"getServerSideSessions\"],\n // onCompleted: () => {\n // }\n });\n\n const deleteSession = (id) =>\n deleteServerSideSession({ variables: { input: { id: Number(id) } }})\n .catch(error => console.log('error', error));\n\n const currentSession = sessions && sessions.find(session => session.isCurrent);\n\n\n if (sessions && sessions.length) {\n return (\n <div className=\"active-sessions\" style={{ marginTop: showDeleteButton ? '24px' : 0 }}>\n <div className=\"active-sessions__headline\">\n { I18n.t('provider.active_sessions.headline') }\n </div>\n\n <div className=\"active-sessions__wrapper\">\n { currentSession &&\n <div className=\"active-sessions__sessions-list\">\n <div className=\"active-sessions__sub-header\">\n { I18n.t('provider.active_sessions.this_device') }\n </div>\n <div className=\"active-sessions__session\">\n <div className=\"active-sessions__session-top\">\n <div className=\"active-sessions__browser-info\">\n { currentSession.browserName }, { currentSession.osName } { currentSession.osVersion }\n </div>\n <div className=\"active-sessions__time-info\">\n <div className=\"active-sessions__time current\">\n { new Date(currentSession.createdAt).toLocaleTimeString([], {hour: '2-digit', minute:'2-digit'}) }\n </div>\n </div>\n </div>\n <div className=\"active-sessions__session-bottom\">\n { currentSession.remoteIp } - { currentSession.city }, { currentSession.country }\n </div>\n </div>\n </div>\n }\n\n { currentSession && sessions.length > 1 &&\n <div className=\"active-sessions__sessions-list other-sessions\">\n <div className=\"active-sessions__sub-header\">\n { I18n.t('provider.active_sessions.other_sessions') }\n </div>\n { sessions.map(session => !session.isCurrent &&\n <div className=\"active-sessions__session\">\n <div className=\"active-sessions__session-top\">\n <div className=\"active-sessions__browser-info\">\n { session.browserName }, { session.osName } { session.osVersion }\n </div>\n <div className=\"active-sessions__time-info\">\n <div className=\"active-sessions__time\">\n { new Date(session.createdAt).toLocaleTimeString([], {hour: '2-digit', minute:'2-digit'}) }\n </div>\n <SvgIco name=\"delete_forever\" size={24} onClick={() => deleteSession(session.id)} />\n </div>\n </div>\n <div className=\"active-sessions__session-bottom\">\n { session.remoteIp } - { session.city }, { session.country }\n </div>\n </div>\n )}\n </div>\n }\n </div>\n </div>\n )\n } else {\n return null;\n }\n}\n\nexport default ActiveSessions;\n","import React from 'react';\n\nimport PartnerBadgeIcon from '../../../src/images/provider/partner-badge.svg';\nimport PartnerBadgeIconDk from '../../../src/images/provider/partner-badge-dk.svg';\nimport { ScoreActionTooltip } from \"../ScoreWidget\";\n\nimport './index.sass';\n\n\nconst PartnerBadgeBanner = ({ partnerBadgeUrl, qualityScore, siteKey }) => {\n\n return (\n <div className=\"partner-badge\">\n <img\n alt=\"Partner Badge\"\n src={siteKey === 'dk' ? PartnerBadgeIconDk : PartnerBadgeIcon}\n height={70}\n width={180}\n />\n <div className=\"partner-badge__content\">\n <ScoreActionTooltip\n filled={qualityScore && qualityScore.providerPartner.score}\n label={qualityScore && I18n.t(`provider.form.quality_score.hint_label.partner_badge`)}\n />\n <div className=\"google-translate-helper\">\n { I18n.t('provider.partner_badge.banner_text') }\n </div>\n </div>\n <a href={partnerBadgeUrl} target=\"_blank\">\n { I18n.t('generic.providers.sidebar.get-partner-badge-button-text') }\n </a>\n </div>\n )\n}\n\nexport default PartnerBadgeBanner;\n","import React from 'react';\n\nimport './index.sass';\n\n\nconst AdvertisementBlock = ({ children }) => {\n\n return (\n // Please, do not use any keywords(advertising, etc) in className to avoid blocking.\n <div className=\"prm-block\">\n <div className=\"prm-block__wrapper\">\n { children }\n </div>\n </div>\n )\n}\n\nexport default AdvertisementBlock;\n","import { ApolloClient, InMemoryCache, HttpLink } from \"@apollo/client\";\n\nexport const client = new ApolloClient({\n link: new HttpLink({\n credentials: 'same-origin'\n }),\n cache: new InMemoryCache({\n addTypename: false,\n typePolicies: {\n Query: {\n fields: {\n location: {\n merge: true,\n },\n },\n }\n }\n }),\n});\n","import { gql } from \"@apollo/client\";\n\n\nexport const VALIDATE_LOCATION_FIELDS = gql`\n\n mutation ValidateLocation($attributes: LocationAttributes!) {\n validateLocation(input: {\n attributes: $attributes\n }) {\n errors {\n attrName\n errorMessages\n }\n }\n }\n`;\n\n\nexport const ADD_LOCATION = gql`\n\n mutation AddLocation($attributes: LocationAttributes!) {\n addLocation(input: {\n attributes: $attributes\n })\n {\n location {\n id\n kind\n addressLine1\n },\n errors\n }\n }\n`;\n\n\nexport const UPDATE_LOCATION = gql`\n\n mutation UpdateLocation($attributes: LocationAttributes!, $id: Int!) {\n updateLocation(input: {\n attributes: $attributes\n id: $id\n })\n {\n location {\n id\n kind\n addressLine1\n },\n errors\n }\n }\n`;\n\n\nexport const ACTIVATE_LOCATION = gql`\n\n mutation activateLocation($id: Int!) {\n activateLocation(input: { id: $id })\n {\n location {\n address\n annualElectricityCostWithCentsFrom\n annualElectricityCostWithCentsTo\n annualHeatingCostWithCentsFrom\n annualHeatingCostWithCentsTo\n annualOperationalCostWithCentsFrom\n annualOperationalCostWithCentsTo\n annualRentWithCentsFrom\n annualRentWithCentsTo\n annualTotalCostWithCentsFrom\n annualTotalCostWithCentsTo\n annualWaterCostWithCentsFrom\n annualWaterCostWithCentsTo\n areaFrom\n areaTo\n areaUnit\n createdAt\n currencyId\n depositAndPrepaidRent\n description\n disposalPrice\n energyRating\n enquiries\n enquiriesCountInteger\n exemptedFromEnergyRating\n explainLocationIncomplete\n facilityIds\n fixedAnnualOperationalCost\n floorPlans { thumbnailW600 }\n floorPlansCount\n hourlyRentWithCentsFrom\n hourlyRentWithCentsTo\n id\n infoMessage\n initialState\n isComplete\n kind\n latitude\n locationShownDatapoints\n locationUrl\n longitude\n monthlyRentPerSpaceWithCentsFrom\n monthlyRentPerSpaceWithCentsTo\n photos { thumbnailW600 }\n photosCount\n prospectus {\n id\n prospectusPath\n createAssetPath\n }\n prospectusCount\n salePrice\n scoreInPercents\n scoreItemsList\n section\n sectionTranslated\n state\n stateInfo\n stateTranslated\n vimeoId\n virtualTour\n workstationCostPerMonthFrom\n workstationCostPerMonthTo\n yearlyRentPerM2WithCentsFrom\n yearlyRentPerM2WithCentsTo\n yearlyElectricityCostPerM2WithCentsFrom\n yearlyElectricityCostPerM2WithCentsTo\n yearlyHeatingCostPerM2WithCentsFrom\n yearlyHeatingCostPerM2WithCentsTo\n yearlyOperationalCostPerM2WithCentsFrom\n yearlyOperationalCostPerM2WithCentsTo\n yearlyRentalIncome\n yearlyWaterCostPerM2WithCentsFrom\n yearlyWaterCostPerM2WithCentsTo\n }\n error\n }\n }\n`;\n\n\nexport const COPY_LOCATION = gql`\n\n mutation copyLocation($id: Int!) {\n copyLocation(input: { id: $id })\n {\n copyJobId\n }\n }\n`;\n\n\nexport const DEACTIVATE_LOCATION = gql`\n\n mutation deactivateLocation($id: Int!, $reason: String!) {\n deactivateLocation(input: { id: $id, reason: $reason })\n {\n location {\n address\n annualElectricityCostWithCentsFrom\n annualElectricityCostWithCentsTo\n annualHeatingCostWithCentsFrom\n annualHeatingCostWithCentsTo\n annualOperationalCostWithCentsFrom\n annualOperationalCostWithCentsTo\n annualRentWithCentsFrom\n annualRentWithCentsTo\n annualTotalCostWithCentsFrom\n annualTotalCostWithCentsTo\n annualWaterCostWithCentsFrom\n annualWaterCostWithCentsTo\n areaFrom\n areaTo\n areaUnit\n createdAt\n currencyId\n depositAndPrepaidRent\n description\n disposalPrice\n energyRating\n enquiries\n enquiriesCountInteger\n exemptedFromEnergyRating\n explainLocationIncomplete\n facilityIds\n fixedAnnualOperationalCost\n floorPlans { thumbnailW600 }\n floorPlansCount\n hourlyRentWithCentsFrom\n hourlyRentWithCentsTo\n id\n infoMessage\n initialState\n isComplete\n kind\n latitude\n locationShownDatapoints\n locationUrl\n longitude\n monthlyRentPerSpaceWithCentsFrom\n monthlyRentPerSpaceWithCentsTo\n photos { thumbnailW600 }\n photosCount\n prospectus {\n id\n prospectusPath\n createAssetPath\n }\n prospectusCount\n salePrice\n scoreInPercents\n scoreItemsList\n section\n sectionTranslated\n state\n stateInfo\n stateTranslated\n vimeoId\n virtualTour\n workstationCostPerMonthFrom\n workstationCostPerMonthTo\n yearlyRentPerM2WithCentsFrom\n yearlyRentPerM2WithCentsTo\n yearlyElectricityCostPerM2WithCentsFrom\n yearlyElectricityCostPerM2WithCentsTo\n yearlyHeatingCostPerM2WithCentsFrom\n yearlyHeatingCostPerM2WithCentsTo\n yearlyOperationalCostPerM2WithCentsFrom\n yearlyOperationalCostPerM2WithCentsTo\n yearlyRentalIncome\n yearlyWaterCostPerM2WithCentsFrom\n yearlyWaterCostPerM2WithCentsTo\n }\n error\n }\n }\n`;\n\n\nexport const DEACTIVATE_LOCATION_AT_THE_MONTH_END = gql`\n mutation deactivateLocationAtTheMonthEnd($id: Int!) {\n deactivateLocationAtTheMonthEnd(input: { id: $id })\n {\n error\n }\n }\n`;\n\n\nexport const MARK_LOCATION_AS_RENTED_OUT = gql`\n\n mutation rentedOutLocation($id: Int!) {\n rentedOutLocation(input: { id: $id })\n {\n location {\n address\n annualElectricityCostWithCentsFrom\n annualElectricityCostWithCentsTo\n annualHeatingCostWithCentsFrom\n annualHeatingCostWithCentsTo\n annualOperationalCostWithCentsFrom\n annualOperationalCostWithCentsTo\n annualRentWithCentsFrom\n annualRentWithCentsTo\n annualTotalCostWithCentsFrom\n annualTotalCostWithCentsTo\n annualWaterCostWithCentsFrom\n annualWaterCostWithCentsTo\n areaFrom\n areaTo\n areaUnit\n createdAt\n currencyId\n depositAndPrepaidRent\n description\n disposalPrice\n energyRating\n enquiries\n enquiriesCountInteger\n exemptedFromEnergyRating\n explainLocationIncomplete\n facilityIds\n fixedAnnualOperationalCost\n floorPlans { thumbnailW600 }\n floorPlansCount\n hourlyRentWithCentsFrom\n hourlyRentWithCentsTo\n id\n infoMessage\n initialState\n isComplete\n kind\n latitude\n locationShownDatapoints\n locationUrl\n longitude\n monthlyRentPerSpaceWithCentsFrom\n monthlyRentPerSpaceWithCentsTo\n photos { thumbnailW600 }\n photosCount\n prospectus {\n id\n prospectusPath\n createAssetPath\n }\n prospectusCount\n salePrice\n scoreInPercents\n scoreItemsList\n section\n sectionTranslated\n state\n stateInfo\n stateTranslated\n vimeoId\n virtualTour\n workstationCostPerMonthFrom\n workstationCostPerMonthTo\n yearlyRentPerM2WithCentsFrom\n yearlyRentPerM2WithCentsTo\n yearlyElectricityCostPerM2WithCentsFrom\n yearlyElectricityCostPerM2WithCentsTo\n yearlyHeatingCostPerM2WithCentsFrom\n yearlyHeatingCostPerM2WithCentsTo\n yearlyOperationalCostPerM2WithCentsFrom\n yearlyOperationalCostPerM2WithCentsTo\n yearlyRentalIncome\n yearlyWaterCostPerM2WithCentsFrom\n yearlyWaterCostPerM2WithCentsTo\n }\n error\n }\n }\n`;\n\n\nexport const REPORT_DEAL = gql`\n mutation addLease($attributes: LeaseAttributes!) {\n addLease(input: {\n attributes: $attributes\n }) {\n lease {\n id\n }\n }\n }\n`;\n\n\nexport const ACTIVATE_ENQUIRY = gql`\n\n mutation activateEnquiry($id: Int!) {\n activateEnquiry(input: { id: $id })\n {\n id\n }\n }\n`;\n\n\nexport const GIVE_UP_ENQUIRY = gql`\n\n mutation giveUpEnquiry($id: Int!) {\n giveUpEnquiry(input: { id: $id })\n {\n id\n }\n }\n`;\n\n\nexport const ADD_CLIENT_RELATION = gql`\n\n mutation addClientRelation($clientId: Int!) {\n addClientRelation(input: { clientId: $clientId })\n {\n clientRelationId\n error\n }\n }\n`;\n\n\nexport const REJECT_PROVIDER_DEAL = gql`\n mutation rejectProviderDeal($id: Int!, $comment: String!, $state: String!) {\n updateProviderDeal(input: { id: $id, comment: $comment, state: $state }) {\n providerDeal {\n id\n }\n errors\n }\n }\n`;\n\n\nexport const ADD_PAID_SERVICE_ORDER = gql`\n\n mutation addPaidServiceOrder(\n $photo: [Int!]!\n $floorPlan: [Int!]!\n $virtualTour: [Int!]!\n $video: [Int!]!\n $comment: String!\n $locationId: ID!\n ) {\n addPaidServiceOrder(input: {\n photo: $photo\n floorPlan: $floorPlan\n virtualTour: $virtualTour\n video: $video\n comment: $comment\n locationId: $locationId\n })\n {\n errors\n }\n }\n`;\n\n\nexport const DELETE_SERVER_SIDE_SESSION = gql`\n\n mutation deleteServerSideSession($input: DeleteServerSideSessionMutationInput!) {\n deleteServerSideSession(input: $input) {\n id\n }\n }\n`;\n\n\nexport const ADD_INCOMPLETE_DEAL_NOTIFICATION = gql`\n mutation addIncompleteDealNotification($providerId: Int!, $locationId: Int!) {\n addIncompleteDealNotification(input: { providerId: $providerId, locationId: $locationId }) {\n incompleteDealNotification {\n id\n },\n errors\n }\n }\n`;\n\n\nexport const RESET_NEW_CLIENTS_COUNT = gql`\n\n mutation resetNewClientsCount($providerId: Int!) {\n resetNewClientsCount(input: { providerId: $providerId })\n {\n errors\n }\n }\n`;\n\n\nexport const DELETE_CONTACT = gql`\n mutation deleteContact($input: DeleteContactMutationInput!) {\n deleteContact(input: $input) {\n id\n }\n }\n`;\n\n\nexport const DELETE_CONTACT_FOREVER = gql`\n mutation hideDeletedContact($id: Int!) {\n hideDeletedContact(input: { id: $id }) {\n errors\n }\n }\n`;","import { gql } from \"@apollo/client\";\n\nexport const GET_CONTACTS = gql`\n query getContacts(\n $orderBy: String\n $orderDirection: String\n $page: Int\n $perPage: Int) {\n contacts(\n page: $page,\n perPage: $perPage,\n orderBy: $orderBy,\n orderDirection: $orderDirection) {\n contacts {\n id\n email,\n login,\n name,\n phoneNumber,\n isDestroyable,\n }\n totalCount\n }\n }\n`;\n\n\nexport const GET_LOCATIONS_OPTIONS_LIST = gql`\n query getLocations(\n $perPage: Int=3000,\n $category: String=\"lease_properties\",\n $query: String=\"\") {\n locations(\n category: $category,\n perPage: $perPage,\n query: $query) {\n locations {\n address,\n areaFrom,\n areaUnit,\n id,\n }\n }\n }\n`;\n\n\nexport const GET_LOCATIONS_XLS_TOKEN = gql`\n query getLocationsXlsFileToken(\n $perPage: Int,\n $category: String,\n $query: String,\n $locationState: String,\n $orderBy: String,\n $showOnlyContactLocations: Boolean,\n $orderDirection: String,\n $page: Int,\n $xls: Boolean) {\n locations(\n category: $category,\n perPage: $perPage,\n query: $query,\n locationState: $locationState,\n orderBy: $orderBy,\n showOnlyContactLocations: $showOnlyContactLocations,\n orderDirection: $orderDirection,\n page: $page\n xls: $xls) {\n xlsFileToken\n }\n }\n`;\n\n\nexport const GET_ORDERS_XLS_TOKEN = gql`\n query getOrdersXlsFileToken(\n $query: String,\n $enquiryState: String,\n $showOnlyContactOrders: Boolean,\n $perPage: Int,\n $orderBy: String,\n $orderDirection: String,\n $locationId: Int,\n $page: Int,\n $xls: Boolean) {\n orders(\n query: $query,\n enquiryState: $enquiryState,\n showOnlyContactOrders: $showOnlyContactOrders,\n perPage: $perPage,\n orderBy: $orderBy,\n locationId: $locationId,\n orderDirection: $orderDirection,\n page: $page\n xls: $xls) {\n xlsFileToken\n }\n }\n`;\n\n\nexport const GET_STATISTIC_FILE = gql`\n query statisticFile(\n $timeFrom: String!,\n $timeTo: String!,\n $kind: String,\n $type: String,\n ) {\n statisticFile (\n timeFrom: $timeFrom,\n timeTo: $timeTo,\n kind: $kind,\n type: $type)\n {\n downloadFileToken\n }\n }\n`;\n\n\n\nexport const GET_LOCATIONS = gql`\n query getLocations(\n $perPage: Int=20,\n $category: String=\"lease_properties\",\n $query: String=\"\",\n $locationState: String=\"\",\n $orderBy: String=\"address_line_1\",\n $showOnlyContactLocations: Boolean = false,\n $orderDirection: String=\"asc\",\n $page: Int = 1) {\n locations(\n category: $category,\n perPage: $perPage,\n query: $query,\n locationState: $locationState,\n orderBy: $orderBy,\n showOnlyContactLocations: $showOnlyContactLocations,\n orderDirection: $orderDirection,\n page: $page) {\n locations {\n address,\n areaUnit,\n avaliableEnquiryStates,\n id,\n infoMessage,\n category,\n kind,\n kindTranslated,\n areaFrom,\n fullArea,\n updatedAt,\n primaryContactName,\n photosCount,\n floorPlansCount,\n prospectusCount,\n enquiriesCountInteger,\n notesCount,\n scoreInPercents,\n section,\n state,\n stateInfo,\n stateTranslated,\n providersLocationPhotosUri,\n providersLocationFloorPlansUri,\n providersLocationProspectusUri,\n updatedAtByProviderOnlyFormatted,\n }\n totalCount\n }\n }\n`;\n\n\nexport const GET_LOCATIONS_STATISTIC = gql`\n query getLocationsStatistic {\n locations {\n address\n avaliableEnquiryStates\n id\n kind\n areaFrom\n updatedAt\n primaryContactName\n photosCount\n floorPlansCount\n prospectusCount\n enquiriesCountInteger\n notesCount\n scoreInPercents\n state\n providersLocationPhotosUri\n providersLocationFloorPlansUri\n providersLocationProspectusUri\n }\n }\n`;\n\n\nexport const GET_ORDERS = gql`\n query getOrders($query: String,\n $enquiryState: String,\n $showOnlyContactOrders: Boolean = false,\n $perPage: Int=20,\n $orderBy: String=\"created_at\",\n $orderDirection: String=\"desc\",\n $locationId: Int=null\n $page: Int = 1\n $xls: Boolean=false){\n orders(query: $query,\n enquiryState: $enquiryState,\n showOnlyContactOrders: $showOnlyContactOrders,\n perPage: $perPage,\n orderBy: $orderBy,\n locationId: $locationId,\n orderDirection: $orderDirection,\n page: $page\n xls: $xls) {\n orders {\n id,\n createdAtFormatted,\n companyName,\n personName,\n phoneNumber,\n email,\n comment,\n section,\n userToken,\n clientNotesCount,\n orderContextTranslated,\n orderContextMessage,\n enquiries,\n clientId,\n clientOrOrderCompanyName,\n clientOrOrderPersonName,\n clientOrOrderPhone,\n clientOrOrderEmail,\n },\n totalCount\n }\n }\n`;\n\n\nexport const GET_ORDER = gql`\n query getOrder($id: ID!) {\n order(id: $id) {\n id,\n createdAtFormatted,\n companyName,\n personName,\n phoneNumber,\n email,\n comment,\n section,\n userToken,\n clientNotesCount,\n orderContextTranslated,\n orderContextMessage,\n enquiries,\n clientId,\n clientOrOrderCompanyName,\n clientOrOrderPersonName,\n clientOrOrderPhone,\n clientOrOrderEmail,\n },\n }\n`;\n\n\nexport const GET_CLIENT_INFO = gql`\n query getClientInfo($id: ID!){\n order(id: $id) {\n id,\n createdAtFormatted,\n companyName,\n personName,\n phoneNumber,\n email,\n comment,\n userToken,\n clientNotesCount,\n enquiries\n }\n }\n`;\n\n\nexport const GET_CLIENT_ORDERS = gql`\n query getClientOrders(\n $clientId: ID!\n $orderBy: String=\"created_at\"\n $orderDirection: String=\"asc\"\n $page: Int= 1\n $perPage: Int=8){\n clientOrders(\n clientId: $clientId\n page: $page,\n perPage: $perPage,\n orderBy: $orderBy,\n orderDirection: $orderDirection) {\n orders {\n id,\n createdAtFormatted,\n locationAddress,\n locationPath,\n locationAreaFormatted,\n locationYearlyRentPerM2FromFormatted,\n locationKindTranslated\n }\n totalCount\n }\n }\n`;\n\n\nexport const GET_CLIENT_ENQUIRIES = gql`\n query getClientEnquiries(\n $clientId: ID!\n $orderBy: String=\"created_at\"\n $orderDirection: String=\"asc\"\n $page: Int= 1\n $perPage: Int=20) {\n clientEnquiries(\n page: $page,\n perPage: $perPage,\n orderBy: $orderBy,\n orderDirection: $orderDirection\n clientId: $clientId) {\n orders {\n id\n createdAtFormatted\n companyName\n personName\n phoneNumber\n email\n comment\n section\n userToken\n clientNotesCount\n orderContextTranslated\n orderContextMessage\n enquiries\n clientId\n clientOrOrderCompanyName\n clientOrOrderPersonName\n clientOrOrderPhone\n clientOrOrderEmail\n contextTranslated\n }\n totalCount\n }\n }\n`;\n\n\nexport const GET_PROVINCES = gql`\n query getProvinces($countryAlpha2: String!){\n province(countryAlpha2: $countryAlpha2) {\n id,\n name,\n }\n }\n`;\n\n\nexport const GET_POSTAL_DISTRICTS = gql`\n query getPostalDistricts($provinceId: ID!){\n postalDistrict(provinceId: $provinceId) {\n id,\n name,\n }\n }\n`;\n\n\nexport const GET_LOCATION_INFO = gql`\n query getLocationInfo($id: ID!){\n location(id: $id) {\n address\n annualElectricityCostWithCentsFrom\n annualElectricityCostWithCentsTo\n annualHeatingCostWithCentsFrom\n annualHeatingCostWithCentsTo\n annualOperationalCostWithCentsFrom\n annualOperationalCostWithCentsTo\n annualRentWithCentsFrom\n annualRentWithCentsTo\n annualTotalCostWithCentsFrom\n annualTotalCostWithCentsTo\n annualWaterCostWithCentsFrom\n annualWaterCostWithCentsTo\n areaFrom\n areaTo\n areaUnit\n createdAt\n currencyId\n depositAndPrepaidRent\n description\n disposalPrice\n energyRating\n enquiries\n enquiriesCountInteger\n exemptedFromEnergyRating\n explainLocationIncomplete\n facilityIds\n fixedAnnualOperationalCost\n floorPlans { thumbnailW600 }\n floorPlansCount\n hourlyRentWithCentsFrom\n hourlyRentWithCentsTo\n id\n infoMessage\n initialState\n isComplete\n kind\n latitude\n locationShownDatapoints\n locationUrl\n longitude\n monthlyRentPerSpaceWithCentsFrom\n monthlyRentPerSpaceWithCentsTo\n photos { thumbnailW600 }\n photosCount\n prospectus {\n id\n prospectusPath\n createAssetPath\n }\n prospectusCount\n salePrice\n scoreInPercents\n scoreItemsList\n section\n sectionTranslated\n state\n stateInfo\n stateTranslated\n vimeoId\n virtualTour\n workstationCostPerMonthFrom\n workstationCostPerMonthTo\n yearlyRentPerM2WithCentsFrom\n yearlyRentPerM2WithCentsTo\n yearlyElectricityCostPerM2WithCentsFrom\n yearlyElectricityCostPerM2WithCentsTo\n yearlyHeatingCostPerM2WithCentsFrom\n yearlyHeatingCostPerM2WithCentsTo\n yearlyOperationalCostPerM2WithCentsFrom\n yearlyOperationalCostPerM2WithCentsTo\n yearlyRentalIncome\n yearlyWaterCostPerM2WithCentsFrom\n yearlyWaterCostPerM2WithCentsTo\n }\n }\n`;\n\n\nexport const GET_LOCATION_VISUALS = gql`\n query getLocationVisuals($id: ID!){\n location(id: $id) {\n id\n address\n floorPlans {\n id\n thumbnailW120\n }\n photos {\n id\n thumbnailW120\n }\n prospectus {\n id\n prospectusPath\n createAssetPath\n # thumbnailW120\n }\n prospectusCount\n providerWebsiteLink\n vimeoId\n virtualTour\n }\n }\n`;\n\n\nexport const GET_EXTRA_LEAD_PREVIEW = gql`\n query getLocation($id: ID!){\n location(id: $id) {\n address\n areaFrom\n areaTo\n areaUnit\n annualRentWithCentsFrom\n annualRentWithCentsTo\n annualOperationalCostWithCentsFrom\n annualOperationalCostWithCentsTo\n currencyId\n id\n locationUrl\n photos {\n id\n thumbnailW120\n thumbnailW400\n }\n title\n }\n }\n`;\n\n\nexport const GET_LOCATION_VALUES = gql`\n query getLocationValues($id: ID!){\n location(id: $id) {\n id\n addressLine1\n addressLine2\n amountOfSpacesFrom\n amountOfSpacesTo\n annualElectricityCostWithCentsFrom\n annualElectricityCostWithCentsTo\n annualHeatingCostWithCentsFrom\n annualHeatingCostWithCentsTo\n annualOperationalCostWithCentsFrom\n annualOperationalCostWithCentsTo\n annualRentWithCentsFrom\n annualRentWithCentsTo\n annualTotalCostWithCentsFrom\n annualTotalCostWithCentsTo\n annualWaterCostWithCentsFrom\n annualWaterCostWithCentsTo\n anonymous\n areaFrom\n areaTo\n auctionNumber\n combinedLocationsAttributes {\n area\n id\n kind\n locationId\n yearlyPricePerM2\n }\n countryAlpha2\n currencyId\n dateOfAuction\n depositAndPrepaidRent\n description\n disposalPrice\n employeesCountFrom\n employeesCountTo\n employeesCountVisible\n enableCombinedLocations\n energyRating\n exemptedFromEnergyRating\n energyCertificateLevelsObject\n existingPrimaryContact { id }\n facilityIds\n fixedAnnualOperationalCost\n hasEnergyCertificateLevels\n hourlyRentWithCentsFrom\n hourlyRentWithCentsTo\n internalIdentifier\n isBuilt\n isRentIncludeOperationalCost\n kind\n latitude\n longitude\n lotArea\n monthlyRentPerSpaceWithCentsFrom\n monthlyRentPerSpaceWithCentsTo\n ownerId\n parkingType\n postalCode\n postalDistrictId\n providerWebsiteLink\n provinceId\n returnRate\n salePrice\n secondaryKinds\n section\n subscriberContactIds\n suitableForKinds\n title\n vimeoId\n virtualTour\n workstationCostPerMonthFrom\n workstationCostPerMonthTo\n workstationsCountFrom\n workstationsCountTo\n yearBuilt\n yearlyElectricityCostPerM2Visible\n yearlyElectricityCostPerM2WithCentsFrom\n yearlyElectricityCostPerM2WithCentsTo\n yearlyHeatingCostPerM2Visible\n yearlyHeatingCostPerM2WithCentsFrom\n yearlyHeatingCostPerM2WithCentsTo\n yearlyOperationalCostPerM2Visible\n yearlyOperationalCostPerM2WithCentsFrom\n yearlyOperationalCostPerM2WithCentsTo\n yearlyRentPerM2AmountFlexible\n yearlyRentPerM2WithCentsFrom\n yearlyRentPerM2WithCentsTo\n yearlyRentalIncome\n yearlyWaterCostPerM2Visible\n yearlyWaterCostPerM2WithCentsFrom\n yearlyWaterCostPerM2WithCentsTo\n }\n }\n`;\n\n\nexport const ADD_NEW_CONTACT = gql`\n mutation addContact($input: AddContactMutationInput!) {\n addContact(input: $input) {\n contact {\n name,\n email,\n phoneNumber,\n }\n errors\n }\n }\n`;\n\n\nexport const UPDATE_CONTACT = gql`\n mutation updateContact($input: UpdateContactMutationInput!) {\n updateContact(input: $input) {\n contact {\n name,\n email,\n phoneNumber,\n }\n errors\n }\n }\n`;\n\n\nexport const GET_DELETED_CONTACTS = gql`\n query getDeleteContact(\n $orderBy: String=\"name\"\n $orderDirection: String=\"asc\"\n $page: Int= 1\n $perPage: Int=20\n $onlyDeleted: Boolean!) {\n contacts(\n orderBy: $orderBy,\n orderDirection: $orderDirection,\n page: $page,\n perPage: $perPage\n onlyDeleted: $onlyDeleted) {\n contacts {\n id,\n name,\n email,\n phoneNumber\n }\n totalCount\n }\n }\n`;\n\n\nexport const ACTIVATE_DELETED_CONTACT = gql`\n mutation recoverContact($input: RecoverContactMutationInput!) {\n recoverContact(input: $input) {\n contact {\n id,\n name,\n email\n }\n }\n }\n`;\n\n\nexport const HIDE_DELETED_CONTACT = gql`\n mutation hideDeletedContact($input: HideDeletedContactMutationInput!) {\n hideDeletedContact(input: $input) {\n contact {\n id\n }\n }\n }\n`;\n\n\n\nexport const UPDATE_PROVIDER = gql`\n mutation updateProvider($input: UpdateProviderMutationInput!) {\n updateProvider(input: $input) {\n provider {\n city,\n companyName,\n phoneNumber,\n }\n }\n }\n`;\n\n\n\nexport const GET_PROVIDER = gql`\n query getProvider($id: ID!){\n provider(id: $id) {\n id,\n logoUrl,\n companyName,\n vatId,\n ean,\n phoneNumber,\n city,\n line1,\n postalCode,\n line2,\n isMailSubjectIncludeInternalIdentifier,\n smsOrderNotification,\n emailsLocale,\n interfaceLocale,\n countryAlpha2,\n invoicingEmail\n }\n }\n`;\n\nexport const UPDATE_CLIENT_INFO = gql`\n mutation updateClientData($input: UpdateClientDataMutationInput!) {\n updateClientData(input: $input) {\n clientData {\n personName,\n email,\n phoneNumber,\n companyName,\n }\n }\n }\n`;\n\nexport const GET_CLIENT_NOTES = gql`\n query clientNotes($clientId: ID!){\n clientNotes(clientId: $clientId) {\n id,\n note,\n createdAtFormatted,\n authorId,\n noteableId,\n author {\n name\n }\n }\n }\n`;\n\nexport const GET_LOCATION_NOTES = gql`\n query locationNotes($locationId: ID!){\n locationNotes(locationId: $locationId) {\n id,\n note,\n createdAtFormatted,\n authorId,\n noteableId,\n author {\n name\n }\n }\n }\n`;\n\nexport const ADD_CLIENT_NOTE = gql`\n mutation addClientNote($input: AddClientNoteMutationInput!) {\n addClientNote(input: $input) {\n clientNote {\n note\n }\n }\n }\n`;\n\n\nexport const ADD_LOCATION_NOTE = gql`\n mutation addLocationNote($input: AddLocationNoteMutationInput!) {\n addLocationNote(input: $input) {\n locationNote {\n note\n }\n }\n }\n`;\n\nexport const UPDATE_CLIENT_NOTE = gql`\n mutation updateClientNote($input: UpdateClientNoteMutationInput!) {\n updateClientNote(input: $input) {\n clientNote {\n id,\n note\n }\n }\n }\n`;\n\n\nexport const DELETE_CLIENT_NOTE = gql`\n mutation deleteClientNote($input: DeleteClientNoteMutationInput!) {\n deleteClientNote(input: $input) {\n id,\n error\n }\n }\n`;\n\n\nexport const GET_STATISTICS = gql`\n query getStatistics($timeFrom: String!, $timeTo: String!, $kind: String = null, $page: Int = 1, $perPage: Int = 10, $query: String=\"\"){\n statistic(timeFrom: $timeFrom, timeTo: $timeTo, kind: $kind, page: $page, perPage: $perPage, query: $query) {\n statisticData {\n countClientEnquiries\n countExtraEnquiries\n countProviderMessages\n countShowcaseOrders\n createdAt\n daysInPeriod\n locationAddress\n locationAreaFrom\n locationFullArea\n locationAreaUnit\n locationCountDaysActive\n locationEventsContactDetailsShownCount\n locationEventsProviderAdvertsShownCount\n locationEventsShownCount\n locationKind\n locationState\n locationId\n locationShownDatapoints\n locationYearlyRentPerM2\n showContactDetailsInFrontend\n currencyId\n },\n statisticRowsCount\n }\n }\n`;\n\n\nexport const GET_LOCATION_STATISTICS = gql`\n query getLocationStatistics($timeFrom: String!, $timeTo: String!, $id: ID!){\n statisticForLocation(timeFrom: $timeFrom, timeTo: $timeTo, id: $id) {\n countClientEnquiries,\n countClientEnquiriesPerWeek,\n countExtraEnquiries,\n countExtraEnquiriesPerWeek,\n countProviderMessages,\n countShowcaseOrders,\n locationEventsContactDetailsShownCount,\n locationEventsProviderAdvertsShownCount,\n locationEventsShownCount,\n locationEventsShownCountPerWeek,\n }\n }\n`;\n\n\nexport const GET_STATISTICS_TOTAL = gql`\n query getStatisticsTotal($timeFrom: String!, $timeTo: String!, $kind: String = null, $page: Int = 1, $perPage: Int = 20, $query: String=\"\"){\n statisticTotal(timeFrom: $timeFrom, timeTo: $timeTo, kind: $kind, page: $page, perPage: $perPage, query: $query) {\n countClientEnquiries\n countExtraEnquiries\n countProviderMessages\n countShowcaseOrders\n locationEventsContactDetailsShownCount\n locationEventsProviderAdvertsShownCount\n locationEventsShownCount\n }\n }\n`;\n\n\nexport const GET_CONTACT_INFO = gql`\n query contact($id: ID!) {\n contact(id: $id) {\n name,\n email,\n phoneNumber,\n photoUrl,\n isDestroyable,\n }\n }\n`;\n\n\nexport const GET_LOCATIONS_REPORT_DEAL = gql`\n query getLocations(\n $query: String=\"\",\n $category: String=\"lease_properties\",\n $locationState: String=\"\",\n $perPage: Int!\n $page: Int!\n $orderBy: String=\"address_line_1\") {\n locations(\n query: $query,\n category: $category,\n locationState: $locationState,\n perPage: $perPage,\n page: $page,\n orderBy: $orderBy) {\n locations {\n id,\n addressLine1,\n addressLine2,\n address,\n areaUnit,\n areaFrom,\n areaTo,\n internalIdentifier,\n kind,\n kindTranslated,\n oldFullAddress,\n postalCode,\n state,\n stateTranslated,\n }\n totalCount\n }\n }\n`;\n\n\nexport const GET_LOCATION_REPORT_DEAL = gql`\n query getLocation($id: ID!){\n location(id: $id) {\n id,\n addressLine1,\n addressLine2,\n address,\n areaUnit,\n postalCode,\n kind,\n kindTranslated,\n areaFrom,\n areaTo,\n state,\n stateTranslated,\n oldFullAddress,\n }\n }\n`;\n\n\nexport const GET_CURRENCY = gql`\n query getCurrency($locationId: ID) {\n currencies(locationId: $locationId) {\n id,\n name\n }\n }\n`;\n\n\nexport const GET_ORDERS_REPORT_DEAL = gql`\n query getOrdersReportDeal($query: String, $perPage: Int!, $page: Int!) {\n orders(query: $query, showOnlySent: false, showOnlyUniqClients: true, enquiryState: \"all\", orderBy: \"created_at\", orderDirection: \"desc\", page: $page, perPage: $perPage) {\n orders{\n id,\n companyName\n personName,\n email,\n clientId\n }\n totalCount\n }\n }\n`;\n\n\nexport const GET_CONTACT_LOCATIONS = gql`\n query getContactLocations($orderDirection: String = \"asc\", $orderBy: String=\"address_line_1\") {\n contactLocations(orderDirection: $orderDirection, orderBy: $orderBy) {\n location {\n id,\n address\n },\n roleTranslated\n }\n }\n`;\n\n\nexport const GET_TOKENIZED_FILE = gql`\n query tokenizedFile($token: String!) {\n tokenizedFile(token: $token) {\n file\n fileUrl\n }\n }\n`;\n\n\nexport const GET_EXTRA_LEAD_LOCATION_ID = gql`\n query getOrder($id: ID!) {\n order(id: $id) {\n location { id }\n }\n }\n`;\n\n\nexport const GET_LOCATION_COPY_JOB = gql`\n query locationCopyJob($id: ID!) {\n locationCopyJob(id: $id) {\n duplicateLocationId\n state\n }\n }\n`;\n\n\nexport const GET_UNRESOLVED_PROVIDER_DEALS = gql`\n query getUnresolvedProviderDeals {\n unresolvedProviderDeals {\n address\n clientEmail\n clientId\n companyName\n createdAtFormatted\n id\n locationId\n personName\n phoneNumber\n orderId\n }\n }\n`;\n\n\nexport const GET_SERVER_SIDE_SESSIONS = gql`\n query getServerSideSessions {\n serverSideSessions {\n browserName\n city\n country\n createdAt\n data\n id\n isCurrent\n osName\n osVersion\n remoteIp\n updatedAt\n }\n }\n`;\n\n\nexport const GET_STRIPE_INVOICES = gql`\n query getStripeInvoices {\n stripeInvoices {\n amountInCents\n currency { name }\n description\n id\n invoiceFile\n invoiceFileUploadedIn\n invoicePdfShowPath\n status\n }\n }\n`;\n\n\nexport const GET_STRIPE_INTENT = gql`\n query getStripeIntent($id: ID!) {\n stripeIntent(id: $id) {\n clientSecret\n stripeInvoice {\n amountInCents\n currency { name }\n }\n }\n }\n`;\n\n\nexport const GENERATE_LOCATION_DESCRIPTION = gql`\n query generateLocationDescription($locationId: ID!, $locale: String!){\n locationChatGptDescription(locationId: $locationId, locale: $locale) {\n id,\n text,\n }\n }\n`;\n\n\nexport const GENERATE_LOCATION_TITLE = gql`\n query generateLocationTitle($locationId: ID!, $locale: String!){\n locationChatGptTitle(locationId: $locationId, locale: $locale) {\n id,\n text,\n }\n }\n`;\n\n\n\nexport const GENERATE_NEW_LOCATION_DESCRIPTION = gql`\n query generateNewLocationDescription($attributes: LocationAttributes!, $locale: String!){\n newLocationChatGptDescription(attributes: $attributes, locale: $locale) {\n id, text\n }\n }\n`;\n\n\nexport const GENERATE_NEW_LOCATION_TITLE = gql`\n query generateNewLocationTitle($attributes: LocationAttributes!, $locale: String!){\n newLocationChatGptTitle(attributes: $attributes, locale: $locale) {\n id, text\n }\n }\n`;\n\n","import React from 'react';\n\nimport AnonymousBannerImg from '../../../src/images/provider/anonymous-banner.svg';\n\nimport './AnonymousBanner.sass';\n\n\nconst AnonymousBanner = () => {\n\n return (\n <div className=\"anonymous-banner\">\n <img src={AnonymousBannerImg} alt=\"anonymous\" height={78} width={139} />\n <div className=\"anonymous-banner__content\">\n <div className=\"anonymous-banner__headline\">\n { I18n.t('layouts.providers.navigation.anonymous') }\n </div>\n <p>{ I18n.t('views.providers.locations.anonymous.on_deal_notification') }</p>\n </div>\n </div>\n )\n}\n\nexport default AnonymousBanner;\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useParams } from 'react-router-dom';\nimport { useMutation, useQuery } from '@apollo/client';\nimport { LatestOrdersColumns } from '../Table/Columns';\nimport {GET_CLIENT_ORDERS, GET_CLIENT_ENQUIRIES, UPDATE_CLIENT_INFO } from '../ApolloClient/queries';\nimport ContactInfoForm from './ContactInfoForm';\nimport Notes from './Notes';\nimport Table from '../Table';\nimport ClientsTable from '../Clients/ClientsTable';\nimport InfoMessagePopup from '../Popups/InfoMessagePopup';\nimport Page404 from '../Errors/Page404';\n\nimport './ClientInfo.sass';\n\n\nfunction ClientInfo({ currentLocale, isNumber, locale, resourceNotFoundError }) {\n\n const { id: currentId } = useParams();\n\n const [clientInfo, setClientInfo] = useState([]);\n const [clientOrders, setClientOrders] = useState([]);\n const [totalCount, setTotalCount] = useState(0);\n const [initialLoad, setInitialLoad] = useState(true);\n const [showClientInfoLoading, setShowClientInfoLoading] = useState(null);\n const [infoPopUp, setInfoPopUp] = useState({\n infoPopupMessage: '',\n infoMessagePopupIsOpen: false,\n infoPopupMessageError: null,\n });\n\n const [filters, setFilters] = useState({\n page: 1,\n perPage: 4,\n orderDirection: 'desc',\n orderBy: 'created_at',\n clientId: Number(currentId),\n });\n\n const perPageOptions = [\n { value: '4', label: '4' },\n { value: '8', label: '8' },\n ];\n\n const { page, perPage, orderDirection, orderBy } = filters;\n\n const {\n loading: clientInfoLoading,\n error,\n data: dataClientInfo,\n refetch: refetchClientInfo\n } = useQuery(GET_CLIENT_ENQUIRIES, {variables: { clientId: Number(currentId) }, errorPolicy: \"all\"});\n\n const { data: dataClientOrders, loading: clientOrdersLoading } = useQuery(GET_CLIENT_ORDERS, {variables: filters});\n\n const [updateContact] = useMutation(UPDATE_CLIENT_INFO);\n\n\n useEffect(() => {\n if (error) return;\n\n if (dataClientOrders) {\n setClientOrders(dataClientOrders.clientOrders.orders);\n setTotalCount(dataClientOrders.clientOrders.totalCount);\n }\n\n if (dataClientInfo) {\n setInitialLoad(false);\n setClientInfo(dataClientInfo.clientEnquiries.orders);\n }\n }, [dataClientOrders, dataClientInfo, error]);\n\n\n const handleFilters = (newFilters) => {\n setFilters((prevFilters) => ({\n ...prevFilters,\n ...newFilters,\n }));\n };\n\n\n const updateContactInfo = (values) => {\n const { companyName, name, email, phoneNumber } = values;\n const input = {\n id: Number(currentId),\n personName: name,\n companyName,\n email,\n phoneNumber,\n };\n\n updateContact({\n variables: { input },\n refetchQueries: ['getClientEnquiries'],\n onCompleted: () => {\n setInfoPopUp({\n infoPopupMessage: I18n.t('providers.contacts.edit.information_updated'),\n infoMessagePopupIsOpen: true,\n });\n },\n onError: () => {\n setInfoPopUp({\n infoPopupMessage: 'Some network error happened',\n infoMessagePopupIsOpen: true,\n infoPopupMessageError: true,\n });\n },\n });\n };\n\n\n const setOrderBy = (field) => {\n const newOrderDirection =\n field === orderBy && orderDirection === 'asc' ? 'desc' : 'asc';\n\n handleFilters({ orderBy: field, orderDirection: newOrderDirection });\n };\n\n\n const columns = LatestOrdersColumns(\n clientOrders,\n setOrderBy,\n orderDirection,\n orderBy\n );\n\n\n const clientOrOrderEmail = clientInfo.length\n ? clientInfo[0].clientOrOrderEmail\n : '';\n\n\n const closeInfoMessagePopup = () => {\n setInfoPopUp({ infoMessagePopupIsOpen: false });\n };\n\n\n if (resourceNotFoundError(error) || !isNumber(currentId)) return <Page404 currentLocale={currentLocale} />;\n\n\n const hiddenColumns = [\n 'clientOrOrderCompanyName',\n 'clientOrOrderPersonName',\n 'clientOrOrderPhone',\n 'clientOrOrderEmail',\n 'clientNotesCount',\n 'orderContextTranslated',\n ];\n\n const loading = showClientInfoLoading && clientInfoLoading;\n\n return (\n <div className=\"clients-info\">\n <InfoMessagePopup\n handleClose={closeInfoMessagePopup}\n message={infoPopUp.infoPopupMessage}\n customClass={infoPopUp.infoPopupMessageError ? 'error' : null}\n visible={infoPopUp.infoMessagePopupIsOpen}\n />\n\n <p className=\"clients-info__main-title\">\n {I18n.t('providers.clients.show.header', {client: clientOrOrderEmail})}{' '}\n </p>\n <p>\n {I18n.t('providers.clients.show.info', { email: clientOrOrderEmail })}:\n </p>\n\n <h3 className=\"clients-info__enquiries-title\">\n {I18n.t('reports.providers_order_report.enquiries')}\n </h3>\n\n <ClientsTable\n hiddenColumnsList={hiddenColumns}\n currentLocale={currentLocale}\n initialLoad={initialLoad}\n loading={loading}\n locale={locale}\n orders={clientInfo}\n perPage={perPage}\n refetchOrders={refetchClientInfo}\n setShowLoading={setShowClientInfoLoading}\n setOrders={setClientInfo}\n disableSortBy\n hideBottomFilters\n noPagination\n />\n\n <p className=\"clients-info__main-title\">\n {I18n.t('provider.clients.client_orders.title')}\n </p>\n\n <Table\n data={clientOrders}\n columns={columns}\n footerLoading={clientOrdersLoading}\n loading={clientOrdersLoading}\n perPage={perPage}\n setPage={(page) => handleFilters({ page })}\n setPerPage={(perPage) => handleFilters({ perPage, page: 1 })}\n currentPage={page}\n totalCount={totalCount}\n perPageOptions={perPageOptions}\n showFooter\n noScrollToTop\n />\n\n <div className=\"clients-info__form-wrapper\">\n <p className=\"clients-info__main-title\">\n {I18n.t('providers.clients.show.contact_info')}\n </p>\n\n <ContactInfoForm\n contactInfo={clientInfo[0]}\n updateContactInfo={updateContactInfo}\n />\n </div>\n\n <Notes currentId={currentId} orderNotes />\n </div>\n );\n}\n\nClientInfo.propTypes = {\n locale: PropTypes.string,\n};\n\nClientInfo.defaultProps = {\n locale: '',\n};\n\nexport default ClientInfo;\n","import React from 'react';\nimport { withFormik } from 'formik';\nimport PropTypes from 'prop-types';\nimport Yup from 'yup';\n\nimport {\n phoneValidation,\n nameValidation,\n emailValidation,\n companyValidation,\n} from '../../SharedComponents/Forms/ValidationSchemaPattern';\nimport Input from '../../SharedComponents/Forms/Input';\n\nfunction ContactInfoFormWrapper({\n handleSubmit,\n values,\n handleChange,\n touched,\n handleBlur,\n errors,\n}) {\n return (\n <div className=\"create-new contact\">\n <form\n name=\"createNewContact\"\n className=\"new-contact-form\"\n onSubmit={handleSubmit}\n noValidate\n >\n <div className=\"row\">\n <div className=\"col-md-3\">\n <Input\n name=\"companyName\"\n value={values.companyName}\n handleChange={handleChange}\n handleBlur={handleBlur}\n label={I18n.t('generic.company_name')}\n error={\n (touched.companyName && errors.companyName) ||\n errors.companyName\n }\n required\n />\n </div>\n <div className=\"col-md-3\">\n <Input\n name=\"name\"\n value={values.name}\n handleChange={handleChange}\n handleBlur={handleBlur}\n label={I18n.t('generic.name')}\n error={touched.name && errors.name}\n required\n />\n </div>\n </div>\n <div className=\"row\">\n <div className=\"col-md-3\">\n <Input\n name=\"email\"\n value={values.email}\n handleChange={handleChange}\n handleBlur={handleBlur}\n label={I18n.t('generic.email')}\n error={touched.email && errors.email}\n required\n />\n </div>\n <div className=\"col-md-3\">\n <Input\n name=\"phoneNumber\"\n value={values.phoneNumber}\n handleChange={handleChange}\n handleBlur={handleBlur}\n label={I18n.t('signup.new_form.register.phone_number.placeholder')}\n error={touched.phoneNumber && errors.phoneNumber}\n required\n />\n </div>\n </div>\n\n <div className=\"client-info\">\n <button type=\"submit\" className=\"clients-info__save-button\">\n {I18n.t('generic.save')}\n </button>\n </div>\n </form>\n </div>\n );\n}\n\nconst ContactInfoForm = withFormik({\n enableReinitialize: true,\n mapPropsToValues: ({ contactInfo }) => ({\n companyName: contactInfo ? contactInfo.clientOrOrderCompanyName : '',\n name: contactInfo ? contactInfo.clientOrOrderPersonName : '',\n email: contactInfo ? contactInfo.clientOrOrderEmail : '',\n phoneNumber: contactInfo ? contactInfo.clientOrOrderPhone : '',\n }),\n validationSchema: Yup.object().shape({\n companyName: companyValidation,\n name: nameValidation,\n email: emailValidation,\n phoneNumber: phoneValidation,\n }),\n\n handleSubmit: (values, bag) => {\n bag.props.updateContactInfo(values);\n },\n\n displayName: 'ContactInfoForm',\n})(ContactInfoFormWrapper);\n\nContactInfoFormWrapper.propTypes = {\n handleSubmit: PropTypes.func,\n values: PropTypes.oneOfType([PropTypes.object]),\n handleChange: PropTypes.func,\n touched: PropTypes.bool,\n handleBlur: PropTypes.func,\n errors: PropTypes.oneOfType([PropTypes.array]),\n};\n\nContactInfoFormWrapper.defaultProps = {\n handleSubmit: () => true,\n values: {},\n handleChange: () => true,\n touched: false,\n handleBlur: () => true,\n errors: [],\n};\n\nexport default ContactInfoForm;\n","import React, { useEffect, useState, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { useMutation, useQuery } from '@apollo/client';\nimport { SvgIco } from \"../../../SharedComponents/Icons\";\nimport {\n ADD_CLIENT_NOTE,\n ADD_LOCATION_NOTE,\n GET_CLIENT_NOTES,\n GET_LOCATION_NOTES,\n UPDATE_CLIENT_NOTE,\n} from '../../ApolloClient/queries';\nimport DeleteNoteModal from '../../Modals/DeleteNoteModal';\n\nimport './index.sass';\n\nfunction Notes({ currentId, modal, orderNotes }) {\n const notesWrapperRef = useRef();\n\n const [note, setNotes] = useState('');\n const [editNoteId, setEditNoteId] = useState('');\n const [deleteNoteId, setDeleteNoteId] = useState(null);\n const [clientNotes, setClientNotes] = useState([]);\n const [deleteModalIsOpen, setDeleteModalIsOpen] = useState(false);\n\n const { data: notes } = orderNotes\n ? useQuery(GET_CLIENT_NOTES, { variables: { clientId: Number(currentId) } })\n : useQuery(GET_LOCATION_NOTES, {\n variables: { locationId: Number(currentId) },\n });\n const [addNote] = orderNotes\n ? useMutation(ADD_CLIENT_NOTE)\n : useMutation(ADD_LOCATION_NOTE);\n\n const [updateClientNote] = useMutation(UPDATE_CLIENT_NOTE);\n\n useEffect(() => {\n if (notes) {\n const checkNotes = orderNotes ? 'clientNotes' : 'locationNotes';\n setClientNotes(notes[checkNotes]);\n }\n }, [notes]);\n\n const noteSubmit = () => {\n const updateNotesAfterRefetch = orderNotes\n ? ['clientNotes', 'getOrders']\n : ['locationNotes', 'getLocations'];\n const updateAfterEditNote = orderNotes\n ? ['clientNotes']\n : ['locationNotes'];\n const input = orderNotes\n ? { clientId: Number(currentId), note }\n : { locationId: Number(currentId), note };\n const updateInput = { id: parseInt(editNoteId), note };\n\n editNoteId\n ? updateClientNote({\n variables: { input: updateInput },\n refetchQueries: updateAfterEditNote,\n onCompleted: () => {\n setNotes('');\n setEditNoteId('');\n },\n })\n : addNote({\n variables: { input },\n refetchQueries: updateNotesAfterRefetch,\n onCompleted: () => {\n setNotes('');\n },\n });\n };\n\n const scrollToTextarea = () => {\n const notesWrapper = notesWrapperRef.current;\n\n if (modal) {\n notesWrapper.scrollTop = 0;\n } else {\n const targetTop = notesWrapper.getBoundingClientRect().top;\n const targetCoords = Math.floor(targetTop + window.scrollY - 24);\n\n window.scroll(0, targetCoords);\n }\n };\n\n const updateNote = (id, note) => {\n setNotes(note);\n setEditNoteId(id);\n scrollToTextarea();\n };\n\n const closeDeleteModal = () => {\n setNotes('');\n setEditNoteId('');\n setDeleteModalIsOpen(false);\n };\n\n const openDeleteModal = (id) => {\n setDeleteNoteId(id);\n setDeleteModalIsOpen(true);\n };\n\n return (\n <div className=\"notes-wrapper\" ref={notesWrapperRef}>\n <DeleteNoteModal\n handleClose={closeDeleteModal}\n noteId={deleteNoteId}\n refetchQueries={\n orderNotes\n ? ['clientNotes', 'getOrders']\n : ['locationNotes', 'getLocations']\n }\n showModal={deleteModalIsOpen}\n />\n\n <p className=\"notes-wrapper__main-title\">\n {I18n.t('providers.notes.list.title')}\n </p>\n\n <div className=\"row\">\n <div className={`${modal ? 'col-md-12' : 'col-md-6'}`}>\n <textarea\n name=\"text\"\n placeholder={I18n.t('providers.notes.list.add_notes_placeholder')}\n value={note}\n onChange={(e) => setNotes(e.target.value)}\n />\n\n <div>\n <button\n type=\"button\"\n onClick={noteSubmit}\n className=\"notes-wrapper__add-notes-button\"\n >\n {editNoteId\n ? I18n.t('generic.update_button')\n : I18n.t('providers.notes.new.add_new_note')}\n </button>\n </div>\n\n {clientNotes.map((noteItem) => {\n const { id, author, note, createdAtFormatted } = noteItem;\n\n return (\n <div className=\"notes-wrapper__notes\" key={id}>\n <div className=\"notes-edit-block\">\n <div className=\"notes-author\">{author.name}</div>\n <div>\n <SvgIco\n className=\"edit\"\n name=\"edit\"\n onClick={() => updateNote(id, note)}\n size={24}\n />\n {' '}\n <SvgIco\n className=\"delete\"\n name=\"delete_outline\"\n onClick={() => openDeleteModal(id)}\n size={24}\n />\n </div>\n </div>\n <p className=\"notes-text\">{note}</p>\n <div className=\"notes-date\">{createdAtFormatted}</div>\n </div>\n );\n })}\n </div>\n </div>\n </div>\n );\n}\n\nNotes.propTypes = {\n currentId: PropTypes.string,\n modal: PropTypes.bool,\n orderNotes: PropTypes.oneOfType([PropTypes.array]),\n};\n\nNotes.defaultProps = {\n currentId: '',\n modal: false,\n orderNotes: [],\n};\n\nexport default Notes;\n","import React, { Fragment } from \"react\";\nimport { Link } from \"react-router-dom\";\nimport ReactTooltip from \"react-tooltip\";\n\nimport NotesImg from \"../../../src/images/provider/note.svg\";\nimport Loader from \"../../SharedComponents/Loader\";\nimport { TableFilterHeader, InfoIconTooltip, CellDropdown, handleHorizontalScroll } from '../Table/Columns';\n\n\nexport const ClientsColumns = (data,\n activeFilter,\n orderDirection,\n stateChangeLoadingId,\n setOrderBy,\n currentLocale,\n openNotesModal,\n openExtraLeadModal,\n handleEnquiryStatus) => React.useMemo(\n () =>\n [\n //===========================================================================>\n\n { Header: <TableFilterHeader\n headline={I18n.t(\"reports.providers_order_report.created_at\")}\n orderDirection={orderDirection}\n handleOrderBy={() => setOrderBy && setOrderBy('created_at')}\n isActive={activeFilter === 'created_at'} />,\n\n accessor: 'createdAtFormatted',\n\n Cell: data =>\n <Link to={`${currentLocale}/new_providers/clients/${data.cell.row.original.clientId}`}>\n { data.value }\n </Link>,\n },\n\n //===========================================================================>\n\n { Header: I18n.t(\"providers.clients.show.contact_info\"),\n\n accessor: 'contactInfo',\n\n Cell: ({ data }) => {\n const { clientOrOrderCompanyName, clientOrOrderPersonName, clientOrOrderEmail, clientOrOrderPhone } = data[0];\n\n return (\n <div>\n <p className=\"client-info-text\">\n { clientOrOrderCompanyName }<br />\n { clientOrOrderPersonName }<br />\n <a href={`mailto: ${clientOrOrderEmail}`}>{clientOrOrderEmail}</a><br />\n { clientOrOrderPhone }\n </p>\n </div>\n )\n }\n },\n\n //===========================================================================>\n\n { Header: <TableFilterHeader\n headline={I18n.t('generic.company_name')}\n orderDirection={orderDirection}\n handleOrderBy={() => setOrderBy && setOrderBy('company_name')}\n isActive={activeFilter === 'company_name'} />,\n\n accessor: 'clientOrOrderCompanyName',\n\n Cell: data =>\n <Link to={`${currentLocale}/new_providers/clients/${data.cell.row.original.clientId}`}>\n { data.value }\n </Link>,\n },\n\n //===========================================================================>\n\n { Header: <TableFilterHeader\n headline={I18n.t('generic.name')}\n orderDirection={orderDirection}\n handleOrderBy={() => setOrderBy && setOrderBy('person_name')}\n isActive={activeFilter === 'person_name'} />,\n\n accessor: 'clientOrOrderPersonName',\n\n Cell: data =>\n <Link to={`${currentLocale}/new_providers/clients/${data.cell.row.original.clientId}`}>\n { data.value }\n </Link>,\n },\n\n //===========================================================================>\n\n { Header: <TableFilterHeader\n headline={I18n.t('generic.phone')}\n orderDirection={orderDirection}\n handleOrderBy={() => setOrderBy && setOrderBy('phone_number')}\n isActive={activeFilter === 'phone_number'} />,\n\n accessor: 'clientOrOrderPhone',\n\n Cell: data => <a href={`tel://${data.value}`}>{ data.value }</a>,\n },\n\n //===========================================================================>\n\n { Header: I18n.t(\"generic.email\"),\n accessor: 'clientOrOrderEmail',\n Cell: data => <a href={`mailto:${data.value}`}>{ data.value }</a>,\n },\n\n //===========================================================================>\n\n { Header: I18n.t(\"generic.comment\"),\n style: { maxWidth: '340px', minWidth: '340px' },\n accessor: 'comment',\n Cell: data => <div className=\"google-translate-helper\">{ data.value }</div>,\n },\n\n //===========================================================================>\n\n { Header:\n <div>{ I18n.t('providers.notes.list.title') }\n <div id=\"orders-scroll-end-target\" className=\"scroll-end-target\" />\n </div>,\n accessor: 'clientNotesCount',\n\n Cell: data =>\n <div onClick={() => openNotesModal(data.cell.row.original.clientId)} className=\"table-notes-cell\">\n <img src={NotesImg} width={15} height={19} alt=\"Note\"/>\n <p>({ data.value })</p>\n </div>\n },\n\n //===========================================================================>\n\n { Header:\n <div>{ I18n.t(\"generic.type\") }\n <div id=\"orders-sticky-start-target\" className=\"sticky-start-target\" />\n </div>,\n accessor: 'orderContextTranslated',\n\n Cell: data => {\n\n const { id, enquiries } = data.cell.row.original;\n\n return enquiries ?\n <div className=\"with-icon\">\n <div className=\"sticky-start-target\" />\n { data.value }\n { enquiries[0].is_extra_lead && <InfoIconTooltip tooltip={I18n.t('helpers.ui_helper.type_popup_text')} id={id} /> }\n </div>\n : '';\n\n },\n sticky: 'right',\n },\n\n //===========================================================================>\n\n { Header: I18n.t(\"generic.providers.sidebar.leases\"),\n accessor: \"Leases\",\n width: 290,\n style: { maxWidth: '290px', minWidth: '290px' },\n\n Cell: data => {\n\n const { enquiries, id } = data.cell.row.original;\n const isAlreadyKnown = enquiries && enquiries.find(enquiry => enquiry.already_known);\n\n if (isAlreadyKnown) return I18n.t('providers.orders.enquiries_with_state.already_known');\n\n return enquiries ?\n <div className=\"table-list\">\n { enquiries.map(item => {\n\n const { location_id, enquiry_id, address, is_extra_lead } = item;\n\n return (\n <div className=\"order-leases-cell\"\n key={'leases-cell' + location_id}\n id={`${enquiry_id}${location_id}`}>\n\n <Link to={`${currentLocale}/new_providers/locations/info/${location_id}`} key={location_id}>\n { address }\n </Link>\n\n { is_extra_lead &&\n <Fragment>\n <div className=\"extra-lead-tooltip\"\n onClick={() => openExtraLeadModal(id)}\n data-tip={I18n.t('helpers.ui_helper.vip_alt_title')}\n data-class=\"table-tooltip\"\n data-for={`extra-lead-tooltip`}>\n { I18n.t('providers.orders.list.see_extra_order') }\n </div>\n <ReactTooltip\n place='top'\n effect='solid'\n id=\"extra-lead-tooltip\"\n type=\"light\"\n border={true}\n borderColor=\"black\"/>\n </Fragment>\n }\n </div>\n )}\n )}\n </div>\n : '';\n },\n sticky: 'right',\n },\n\n //===========================================================================>\n\n { Header: I18n.t(\"providers.statistics.index.status\"),\n accessor: 'locationStates',\n width: 155,\n\n Cell: data => {\n\n const { enquiries, clientId, id } = data.cell.row.original;\n const isAlreadyKnown = enquiries && enquiries.find(enquiry => enquiry.already_known);\n\n if (isAlreadyKnown) {\n\n const { enquiry_id, enquiry_state } = isAlreadyKnown;\n\n return (\n <div className=\"table-button\" onClick={() => handleEnquiryStatus(isAlreadyKnown, clientId, enquiry_state)}>\n <span>\n { stateChangeLoadingId === enquiry_id && <Loader size={14} left={-22} top={-2} /> }\n { I18n.t('generic.undo') }\n </span>\n </div>\n )\n }\n\n if (enquiries) {\n return (\n <div className=\"table-list\">\n { enquiries.map(enquiry => {\n\n const { enquiry_id, location_id, enquiry_state, available_enquiry_states } = enquiry;\n const enquiryStatesOptions = Object.keys(available_enquiry_states).map(state => ({ value: state, label: available_enquiry_states[state] }));\n const isLoading = stateChangeLoadingId === enquiry_id;\n\n return <CellDropdown\n options={enquiryStatesOptions}\n withCallback={true}\n key={enquiry_id}\n matchPrevColumn={true}\n loading={isLoading}\n onShow={(handleClose) => handleHorizontalScroll('orders', handleClose)}\n id={`${enquiry_id}${location_id}`}\n handleChange={(value) => handleEnquiryStatus(enquiry, clientId, value, id)}\n value={enquiry_state === 'resolved' ? 'deal_confirmed' : enquiry_state} />\n })}\n </div>\n )\n } else {\n return '';\n }\n },\n sticky: 'right',\n },\n\n //===========================================================================>\n ],\n [data, activeFilter, stateChangeLoadingId]);\n","import React, { useEffect, useState } from 'react';\nimport { useHistory } from \"react-router-dom\";\nimport { useMutation } from \"@apollo/client\";\n\nimport { ACTIVATE_ENQUIRY, GIVE_UP_ENQUIRY } from \"../ApolloClient/mutations\";\nimport AlreadyKnownLeadStatusModal from \"../Modals/AlreadyKnownLeadStatusModal\";\nimport ExtraOrderModal from \"../Modals/ExtraOrderModal\";\nimport NotesModal from \"../Modals/NotesModal\";\nimport InfoMessagePopup from \"../Popups/InfoMessagePopup\";\nimport Table from \"../Table\";\nimport { ClientsColumns } from \"./ClientsColumns\";\n\n\nconst ClientsTable = ({ currencySymbolFormatter,\n currentPage,\n currentLocale,\n disableSortBy,\n handleOrderBy,\n hiddenColumnsList,\n hideBottomFilters,\n initialLoad,\n loading,\n locale,\n noPagination,\n orders,\n orderBy,\n orderDirection,\n perPage,\n perPageOptions,\n refetchOrders,\n setShowLoading,\n setPage,\n setPerPage,\n totalCount }) => {\n\n const history = useHistory();\n\n const [clientId, setClientId] = useState('');\n const [infoPopupMessage, setInfoPopupMessage] = useState('');\n const [stateChangeLoadingId, setStateChangeLoadingId] = useState('');\n const [showNoteModal, setShowNoteModal] = useState(false);\n const [extraLeadModalIsOpen, setExtraLeadModalIsOpen] = useState(false);\n const [extraLeadOrderId, setExtraLeadOrderId] = useState(false);\n const [infoMessagePopupIsOpen, setInfoMessagePopupIsOpen] = useState(false);\n const [alreadyKnownModalIsOpen, setAlreadyKnownModalIsOpen] = useState(false);\n const [infoPopupMessageError, setInfoPopupMessageError] = useState(null);\n const [hiddenColumns, setHiddenColumns] = useState(hiddenColumnsList || []);\n\n const [activateEnquiry] = useMutation(ACTIVATE_ENQUIRY, {\n onCompleted: data => !data.error && leadStateChangeCallback(),\n });\n\n const [giveUpEnquiry] = useMutation(GIVE_UP_ENQUIRY, {\n onCompleted: data => !data.error && leadStateChangeCallback(),\n });\n\n useEffect(() => {\n setShowLoading(!stateChangeLoadingId)\n }, [stateChangeLoadingId]);\n\n useEffect(() => {\n if (orders) {\n const showCommentColumn = orders.some(order => typeof order.comment === \"string\" ? order.comment.replaceAll(' ', '') : order.comment);\n\n !showCommentColumn && !hiddenColumns.includes('comment') && setHiddenColumns(prevColumns => ([ ...prevColumns, 'comment' ]));\n\n if (showCommentColumn && hiddenColumns.includes('comment')) {\n const newHiddenColumns = [ ...hiddenColumnsList];\n\n newHiddenColumns.splice(hiddenColumns.indexOf('comment'), 1);\n setHiddenColumns(newHiddenColumns);\n }\n }\n }, [orders]);\n\n\n const openNotesModal = (clientId) => {\n setClientId(clientId);\n setShowNoteModal(true);\n };\n\n\n const handleEnquiryStatus = (enquiry, clientId, status, id) => {\n const { location_id, enquiry_id } = enquiry;\n\n setInfoPopupMessage(`${I18n.t('provider.clients.status_change_message')} \"${ I18n.t(`activerecord.attributes.enquiry.states/${status}`) }\"`);\n\n switch (status) {\n\n case 'unresolved':\n setStateChangeLoadingId(enquiry_id);\n activateEnquiry({ variables: { id: enquiry_id }})\n .catch(error => handleStateChangeError(error));\n return;\n\n case 'lost':\n setStateChangeLoadingId(enquiry_id);\n giveUpEnquiry({ variables: { id: enquiry_id }})\n .catch(error => handleStateChangeError(error));\n return;\n\n case 'already_known':\n setClientId(clientId);\n setAlreadyKnownModalIsOpen(true);\n return;\n\n case 'deal_confirmed':\n history.push({\n pathname: `${currentLocale}/new_providers/report_deal`,\n search: `?client_id=${clientId}&location_id=${location_id}&enquiry_id=${enquiry_id}&order_id=${id}`,\n });\n return;\n }\n };\n\n\n const handleStateChangeError = (error) => {\n console.log('error', error);\n setStateChangeLoadingId('');\n setInfoPopupMessage(I18n.t('apps.lb_showroom.detailed.order_form.error.message'));\n setInfoPopupMessageError(true);\n setInfoMessagePopupIsOpen(true);\n };\n\n\n const handleOpenExtraLeadModal = (orderId) => {\n setExtraLeadOrderId(orderId);\n setExtraLeadModalIsOpen(true);\n };\n\n\n const handleCloseExtraLeadModal = () => {\n setExtraLeadModalIsOpen(false);\n };\n\n\n const closeInfoMessagePopup = () => {\n setInfoMessagePopupIsOpen(false);\n infoPopupMessageError && setInfoPopupMessageError(false);\n };\n\n\n const leadStateChangeCallback = (closeModal) => {\n\n const handleClose = () => {\n closeModal && closeModal();\n stateChangeLoadingId && setStateChangeLoadingId('');\n };\n\n refetchOrders()\n .then(() => {\n handleClose();\n setInfoMessagePopupIsOpen(true);\n })\n .catch(error => {\n console.log('error', error);\n handleClose();\n });\n };\n\n\n const ordersColumns = ClientsColumns(\n orders,\n orderBy,\n orderDirection,\n stateChangeLoadingId,\n handleOrderBy,\n currentLocale,\n openNotesModal,\n handleOpenExtraLeadModal,\n handleEnquiryStatus);\n\n\n return (\n <div className=\"client-table\">\n\n <AlreadyKnownLeadStatusModal\n callbackFunction={leadStateChangeCallback}\n clientId={clientId}\n handleClose={() => setAlreadyKnownModalIsOpen(false)}\n showModal={alreadyKnownModalIsOpen} />\n\n <InfoMessagePopup\n customClass={infoPopupMessageError ? 'error' : null}\n handleClose={closeInfoMessagePopup}\n message={infoPopupMessage}\n visible={infoMessagePopupIsOpen} />\n\n <ExtraOrderModal\n currencySymbolFormatter={currencySymbolFormatter}\n extraLeadModalOpen={extraLeadModalIsOpen}\n extraLeadOrderId={extraLeadOrderId}\n handleCloseExtraLeadModal={handleCloseExtraLeadModal}\n locale={locale} />\n\n <NotesModal\n id={clientId}\n orderNotes={true}\n handleClose={() => setShowNoteModal(false)}\n showModal={showNoteModal} />\n\n <Table\n columns={ordersColumns}\n currentPage={currentPage}\n data={orders}\n disableSortBy={disableSortBy}\n hiddenColumns={hiddenColumns}\n hideBottomFilters={hideBottomFilters}\n initialLoad={initialLoad}\n loading={loading}\n name=\"orders\"\n noPagination={noPagination}\n perPage={perPage}\n perPageOptions={perPageOptions}\n setPage={setPage}\n setPerPage={setPerPage}\n totalCount={totalCount}\n />\n\n </div>\n )\n}\n\n\nexport default ClientsTable;\n","import React, { useEffect, useState } from 'react';\nimport { Link, useParams } from \"react-router-dom\";\nimport { useQuery, useLazyQuery, useMutation } from \"@apollo/client\";\n\nimport { useDebouncedEffect } from \"../../SharedComponents/hooks\";\nimport SearchableDropdown from \"../../SharedComponents/Forms/SearchableDropdown\";\nimport BasicDropdown from \"../../SharedComponents/Forms/BasicDropdown\";\nimport RadioButtons from \"../../SharedComponents/Forms/RadioButtons\";\nimport { SvgIco } from \"../../SharedComponents/Icons\";\nimport NetworkError from \"../Errors/NetworkError\";\nimport Page404 from '../Errors/Page404';\nimport TokenizedFileModalLink from \"../Modals/TokenizedFileModalLink\";\nimport { GET_LOCATIONS_OPTIONS_LIST, GET_ORDERS, GET_ORDERS_XLS_TOKEN } from \"../ApolloClient/queries\";\nimport { RESET_NEW_CLIENTS_COUNT } from \"../ApolloClient/mutations\";\nimport ClientsTable from \"./ClientsTable\";\n\nimport '../Table/TablePage.sass';\nimport './index.sass';\n\n\nconst Clients = ({ asPreview,\n currencySymbolFormatter,\n currentLocale,\n enquiryStates,\n isNumber,\n locale,\n newClientsCount,\n providerId,\n resetNewClients,\n resourceNotFoundError,\n }) => {\n\n const { id } = useParams();\n\n const [orders, setOrders] = useState([]);\n const [queryValue, setQueryValue] = useState('');\n const [totalCount, setTotalCount] = useState(0);\n const [initialLoad, setInitialLoad] = useState(true);\n const [locationsSearchValue, setLocationsSearchValue] = useState(id || null);\n const [showLoading, setShowLoading] = useState(true);\n\n const [filters, setFilters] = useState({\n enquiryState: 'all',\n locationId: (id && Number(id)) || null,\n orderBy: 'created_at',\n orderDirection: 'desc',\n page: 1,\n perPage: asPreview ? 4 : 20,\n query: '',\n showOnlyContactOrders: false,\n });\n\n const { enquiryState, orderBy, orderDirection, page, perPage, showOnlyContactOrders } = filters;\n\n const [getLocationsOptionsList, { data: locationsOptionsData }] = useLazyQuery(GET_LOCATIONS_OPTIONS_LIST);\n\n const { loading: ordersLoading, error, refetch: refetchOrders } = useQuery(GET_ORDERS, {\n variables: { ...filters },\n onCompleted: data => {\n !asPreview && initialLoad && getLocationsOptionsList().catch(error => console.log('error', error));\n setOrders(data.orders.orders);\n setTotalCount(data.orders.totalCount);\n setInitialLoad(false);\n },\n });\n\n const [resetNewClientsCount] = useMutation(RESET_NEW_CLIENTS_COUNT);\n\n const loading = showLoading && ordersLoading;\n\n useEffect(() => {\n refetchOrders().catch(error => console.log(error));\n\n if (newClientsCount) {\n resetNewClients();\n resetNewClientsCount({\n variables: { providerId: Number(providerId) },\n }).catch(error => console.log('Error', error));\n }\n }, []);\n\n useEffect(() => {\n loading && setOrders(Array(perPage).fill({}));\n }, [loading]);\n\n useEffect(() => {\n refetchOrders().catch(error => console.log(error));\n }, [filters]);\n\n useDebouncedEffect(() => {\n handleFilters({query: queryValue, page: 1});\n }, [queryValue], 500);\n\n\n const { alreadyKnown, lost, resolved, unresolved } = enquiryStates;\n\n const statusOptions = [\n {value: 'all', label: I18n.t('generic.all'), className: !enquiryState ? 'selected' : null },\n {value: 'unresolved', label: unresolved},\n {value: 'already_known', label: alreadyKnown},\n {value: 'lost', label: lost},\n {value: 'resolved', label: resolved},\n ];\n\n const perPageOptions = [\n { value: '10', label: '10' },\n { value: '20', label: '20' },\n { value: '40', label: '40' },\n ];\n\n const radioOptions = [\n { label: I18n.t('providers.locations.filter.my_locations'), value: true, checked: showOnlyContactOrders },\n { label: I18n.t('providers.orders.filter.all_locations'), value: false, checked: !showOnlyContactOrders },\n ];\n\n const locationsList = (locationsOptionsData && locationsOptionsData.locations.locations) || [];\n\n const locationsSearchOptions = [{ label: I18n.t('generic.all'), value: null }].concat(locationsList.map(location =>\n ({ label: `${location.address}${location.areaFrom ? `, ${location.areaFrom} ${location.areaUnit || ''}` : ''}`, value: location.id })));\n\n\n const handleFilters = (newFilters) =>\n setFilters(prevFilters => ({\n ...prevFilters,\n ...newFilters,\n }));\n\n\n const handleOrderBy = (field) => {\n const newOrderDirection = field === orderBy && orderDirection === 'asc' ? 'desc' : 'asc';\n\n handleFilters({ orderBy: field, orderDirection: newOrderDirection });\n };\n\n\n const handleLocationsSelect = (value) => {\n setLocationsSearchValue(value);\n handleFilters({ locationId: Number(value) || value, page: 1 });\n };\n\n if (resourceNotFoundError(error) || !isNumber(id)) return <Page404 currentLocale={currentLocale} />;\n if (!asPreview && error) return <NetworkError />;\n\n if (!(asPreview && totalCount === 0 && !loading)) {\n return (\n <div className={`clients table-page ${ asPreview ? 'preview' : '' }`}>\n\n { !asPreview &&\n <div className=\"table-page__filters-wrapper\">\n\n <div className=\"table-page__filters-left\">\n <div className=\"search-input-wrapper\">\n <input\n type=\"text\"\n className=\"search-input\"\n value={queryValue}\n placeholder={I18n.t('generic.search')}\n onChange={(e) => setQueryValue(e.target.value)}\n maxLength=\"256\" />\n <SvgIco name=\"search\" size={16} />\n </div>\n\n <SearchableDropdown\n options={locationsSearchOptions}\n value={locationsSearchValue}\n classNamePrefix={'locations-search-select'}\n placeholder={I18n.t(\"providers.orders.filter.select_location\")}\n handleChange={handleLocationsSelect} />\n\n <BasicDropdown\n options={statusOptions}\n wrapperClass=\"clients__status-dropdown\"\n placeholder={I18n.t('providers.statistics.index.status')}\n handleChange={(value) => handleFilters({ enquiryState: value || '', page: 1 })}\n value={enquiryState} />\n\n <RadioButtons\n options={radioOptions}\n handleChange={(value) => handleFilters({ showOnlyContactOrders: value, page: 1 })} />\n </div>\n\n { !asPreview && totalCount > 0 &&\n <TokenizedFileModalLink\n dataName=\"orders\"\n linkLabel=\"Excel\"\n query={GET_ORDERS_XLS_TOKEN}\n variables={{ ...filters, page: null, perPage: null, xls: true }}\n />\n }\n </div>\n }\n\n <div className=\"table-page__title-wrapper\">\n <h3>{ I18n.t('providers.providers.show.customers') } ({ totalCount })</h3>\n { asPreview &&\n <Link to={`${currentLocale}/new_providers/orders`} className=\"table-page__see-all-link\">\n <span>{ I18n.t('provider.tables.see_all_link') }</span>\n </Link>\n }\n </div>\n\n <ClientsTable\n currencySymbolFormatter={currencySymbolFormatter}\n currentLocale={currentLocale}\n currentPage={page}\n disableSortBy={true}\n handleOrderBy={handleOrderBy}\n hiddenColumnsList={['contactInfo']}\n hideBottomFilters={!!asPreview}\n initialLoad={initialLoad}\n loading={loading}\n locale={locale}\n orders={orders}\n orderBy={orderBy}\n orderDirection={orderDirection}\n perPage={perPage}\n perPageOptions={perPageOptions}\n refetchOrders={refetchOrders}\n setPage={(page) => handleFilters({ page })}\n setPerPage={(perPage) => handleFilters({ perPage, page: 1 })}\n setShowLoading={setShowLoading}\n totalCount={totalCount} />\n\n </div>\n );\n } else {\n return null;\n }\n}\n\n\nexport default Clients;\n","import React, { useState } from 'react';\nimport { useMutation } from '@apollo/client';\nimport { Link } from 'react-router-dom';\nimport PropTypes from 'prop-types';\n\nimport { ADD_NEW_CONTACT, ACTIVATE_DELETED_CONTACT, UPDATE_CONTACT } from '../ApolloClient/queries';\nimport { ContactsColumns, DeletedContactsColumns } from '../Table/Columns';\nimport CreateNewContactModal from '../Modals/CreateNewContactModal';\nimport DeleteContactModal from '../Modals/DeleteContactModal';\nimport DeleteContactForeverModal from \"../Modals/DeleteContactForeverModal\";\nimport InfoMessagePopup from '../Popups/InfoMessagePopup';\nimport Table from '../Table';\n\nimport '../Table/TablePage.sass';\nimport './ContactsTable.sass';\n\n\nfunction ContactsTable({\n currentLocale,\n dataTable,\n deletedTotalCount,\n initialLoad,\n asPreview,\n contactsLoading,\n contactsTotalCount,\n currentPage,\n perPage,\n setPage,\n setPerPage,\n showDeletedContacts,\n totalCount,\n orderDirection,\n setOrderBy,\n activeFilter,\n changeActiveTab,\n}) {\n\n const [showModal, setShowModal] = useState(false);\n const [showDeleteModal, setShowDeleteModal] = useState(false);\n const [showDeleteContactForeverModal, setShowDeleteContactForeverModal] = useState(false);\n const [modalData, setDataForModal] = useState({});\n const [infoMessagePopupIsOpen, setInfoMessagePopupIsOpen] = useState(false);\n const [infoPopupMessage, setInfoPopupMessage] = useState('');\n const [showNotification, setSnowNotification] = useState({\n show: false,\n message: '',\n color: 'green',\n });\n\n const [updateContact] = useMutation(UPDATE_CONTACT);\n const [addNewContact] = useMutation(ADD_NEW_CONTACT);\n const [activeDeletedContact] = useMutation(ACTIVATE_DELETED_CONTACT);\n\n const activeDeleteContact = (currentId) => {\n const input = { id: parseInt(currentId) };\n\n activeDeletedContact({\n variables: { input },\n refetchQueries: ['getContacts', 'getDeleteContact'],\n });\n };\n\n const editModal = Object.keys(modalData).length !== 0;\n\n const contactFormSubmit = (values) => {\n const { name, email, phoneNumber, password, passwordConfirmation } = values;\n const id = editModal ? parseInt(modalData.id) : null;\n const input = editModal\n ? { name, email, phoneNumber, id }\n : { name, email, phoneNumber, password, passwordConfirmation };\n\n editModal\n ? updateContact({\n variables: { input },\n refetchQueries: ['getContacts'],\n onCompleted: ({ updateContact }) => {\n const { errors } = updateContact;\n const successEdit = I18n.t('providers.contacts.list.contact_edit_successfully');\n\n showNotifications(errors, successEdit);\n },\n })\n : addNewContact({\n variables: { input },\n refetchQueries: ['getContacts'],\n onCompleted: ({ addContact }) => {\n const { errors } = addContact;\n const successCreate = I18n.t('providers.contacts.list.created_new_contact');\n\n showNotifications(errors, successCreate);\n },\n });\n };\n\n const showNotifications = (errors, successMessage) => {\n if (errors && errors.length) {\n setSnowNotification({\n show: true,\n message: I18n.t('providers.contacts.list.contact_email_already_exists'),\n color: 'red',\n });\n } else {\n setShowModal(false);\n setDataForModal({});\n setInfoPopupMessage(successMessage);\n setInfoMessagePopupIsOpen(true);\n }\n };\n\n const closeModal = () => {\n handleCloseNotification();\n setShowModal(false);\n setDataForModal({});\n };\n\n const handleCloseNotification = () => {\n setSnowNotification({ show: false, message: '' });\n };\n\n const closeInfoMessagePopup = () => {\n setInfoMessagePopupIsOpen(false);\n };\n\n const clickOnDropDown = (data, editModal) => {\n setDataForModal(data);\n editModal ? setShowModal(true) : setShowDeleteModal(true);\n };\n\n const clickOnDeleteForever = (data) => {\n setDataForModal(data);\n setShowDeleteContactForeverModal(true);\n };\n\n const columns = showDeletedContacts\n ?\n DeletedContactsColumns(\n dataTable,\n clickOnDeleteForever,\n activeDeleteContact,\n orderDirection,\n setOrderBy,\n activeFilter)\n :\n ContactsColumns(\n dataTable,\n clickOnDropDown,\n orderDirection,\n setOrderBy,\n activeFilter);\n\n\n const perPageOptions = [\n { value: '20', label: '20' },\n { value: '30', label: '30' },\n ];\n\n\n return (\n <div className={`contacts-table ${asPreview ? 'preview' : ''}`}>\n <div className=\"contacts-table__button-wrapper\">\n <div\n className=\"table-page__title\"\n style={{ justifyContent: asPreview ? 'flex-start' : 'space-between' }}\n >\n <div className=\"contacts-table__tabs\">\n <p\n onClick={() => changeActiveTab(false)}\n className={`${!showDeletedContacts ? 'active' : ''}`}\n >\n {I18n.t('layouts.providers.navigation.contacts')} (\n {contactsTotalCount})\n </p>\n <p\n onClick={() => changeActiveTab(true)}\n className={`${showDeletedContacts ? 'active' : ''}`}\n >\n {I18n.t('providers.contacts.deleted_list.deleted_contacts')} (\n {deletedTotalCount})\n </p>\n </div>\n <div\n className=\"contacts-table__new-contact-button\"\n onClick={() => setShowModal(true)}\n >\n <p>+ {I18n.t('providers.contacts.list.new_contact')}</p>\n </div>\n </div>\n {asPreview && (\n <Link\n to={`${currentLocale}/new_providers/contacts`}\n className=\"table-page__see-all-link\"\n >\n <span>{I18n.t('provider.tables.see_all_link')}</span>\n </Link>\n )}\n </div>\n\n <InfoMessagePopup\n handleClose={closeInfoMessagePopup}\n message={infoPopupMessage}\n visible={infoMessagePopupIsOpen}\n />\n\n { modalData &&\n <DeleteContactModal\n callback={() => setDataForModal({})}\n data={modalData}\n handleClose={() => setShowDeleteModal(false)}\n showModal={showDeleteModal}\n />\n }\n\n { showDeleteContactForeverModal &&\n <DeleteContactForeverModal\n callback={() => setDataForModal({})}\n data={modalData}\n handleClose={() => setShowDeleteContactForeverModal(false)}\n showModal={showDeleteContactForeverModal}\n />\n }\n\n <CreateNewContactModal\n closeModal={closeModal}\n showModal={showModal}\n submitForm={contactFormSubmit}\n showNotification={showNotification}\n handleCloseNotification={handleCloseNotification}\n editContactData={modalData}\n editModal={editModal}\n />\n\n <Table\n data={dataTable}\n name=\"contacts\"\n columns={columns}\n perPage={perPage}\n setPage={setPage}\n setPerPage={setPerPage}\n currentPage={currentPage}\n perPageOptions={perPageOptions}\n initialLoad={initialLoad}\n hideBottomFilters={!!asPreview}\n loading={contactsLoading}\n totalCount={totalCount}\n />\n </div>\n );\n}\n\nContactsTable.propTypes = {\n dataTable: PropTypes.oneOfType([PropTypes.object]),\n deletedTotalCount: PropTypes.string,\n initialLoad: PropTypes.bool,\n asPreview: PropTypes.bool,\n contactsLoading: PropTypes.bool,\n contactsTotalCount: PropTypes.string,\n currentPage: PropTypes.string,\n perPage: PropTypes.string,\n setPage: PropTypes.func,\n setPerPage: PropTypes.func,\n showDeletedContacts: PropTypes.bool,\n totalCount: PropTypes.string,\n orderDirection: PropTypes.string,\n setOrderBy: PropTypes.func,\n activeFilter: PropTypes.string,\n changeActiveTab: PropTypes.func,\n};\n\nContactsTable.defaultProps = {\n dataTable: {},\n deletedTotalCount: '',\n initialLoad: false,\n asPreview: false,\n contactsLoading: false,\n contactsTotalCount: '',\n currentPage: '',\n perPage: '',\n setPage: () => true,\n setPerPage: () => true,\n showDeletedContacts: false,\n totalCount: '',\n orderDirection: '',\n setOrderBy: () => true,\n activeFilter: '',\n changeActiveTab: () => true,\n};\n\nexport default ContactsTable;\n","import React from 'react';\nimport { withFormik } from 'formik';\nimport PropTypes from 'prop-types';\nimport Yup from 'yup';\n\nimport Input from '../../SharedComponents/Forms/Input';\nimport {\n phoneValidation,\n nameValidation,\n emailValidation,\n passwordValidation,\n passwordConfirmationValidation,\n} from '../../SharedComponents/Forms/ValidationSchemaPattern';\n\nfunction CreateNewContactWrapper({\n handleSubmit,\n values,\n handleChange,\n touched,\n handleBlur,\n errors,\n closeModal,\n editContactData,\n editModal,\n}) {\n return (\n <div className=\"create-new\">\n <form\n name=\"createNewContact\"\n className=\"new-contact-form\"\n onSubmit={handleSubmit}\n noValidate\n >\n <Input\n name=\"name\"\n value={values.name}\n handleChange={handleChange}\n handleBlur={handleBlur}\n label={I18n.t('generic.name')}\n error={touched.name && errors.name}\n required\n />\n <Input\n name=\"email\"\n value={values.email}\n handleChange={handleChange}\n handleBlur={handleBlur}\n label={I18n.t('generic.email')}\n error={touched.email && errors.email}\n required\n />\n\n <Input\n name=\"phoneNumber\"\n value={values.phoneNumber}\n handleChange={handleChange}\n handleBlur={handleBlur}\n label={I18n.t('signup.new_form.register.phone_number.placeholder')}\n error={touched.phoneNumber && errors.phoneNumber}\n required\n />\n\n {!editModal && (\n <>\n <Input\n name=\"password\"\n type=\"password\"\n value={values.password}\n handleChange={handleChange}\n handleBlur={handleBlur}\n label={I18n.t('generic.password')}\n error={touched.password && errors.password}\n required\n />\n\n <Input\n name=\"passwordConfirmation\"\n type=\"password\"\n value={values.passwordConfirmation}\n handleChange={handleChange}\n handleBlur={handleBlur}\n label={I18n.t('activerecord.attributes.contact.password_confirmation')}\n error={\n touched.passwordConfirmation && errors.passwordConfirmation\n }\n required\n />\n </>\n )}\n\n <div className=\"create-new__button-wrapper\">\n <button\n type=\"button\"\n onClick={() => closeModal()}\n className=\"cancel-button b-button\"\n >\n {I18n.t('search_agent.modal.cancel')}\n </button>\n\n <button type=\"submit\" className=\"save-button b-button\">\n {I18n.t('generic.save')}\n </button>\n </div>\n </form>\n </div>\n );\n}\n\nconst CreateNewContact = withFormik({\n mapPropsToValues: ({ editContactData, editModal }) => ({\n name: editContactData ? editContactData.name : '',\n email: editContactData ? editContactData.email : '',\n phoneNumber: editContactData ? editContactData.phoneNumber : '',\n createNewContact: !editModal,\n password: '',\n passwordConfirmation: '',\n }),\n validationSchema: Yup.object().shape({\n name: nameValidation,\n email: emailValidation,\n phoneNumber: phoneValidation,\n createNewContact: Yup.boolean(),\n password: Yup.string().when('createNewContact', {\n is: true,\n then: passwordValidation,\n }),\n passwordConfirmation: Yup.string().when('createNewContact', {\n is: true,\n then: passwordConfirmationValidation,\n }),\n }),\n\n handleSubmit: (values, bag) => {\n bag.props.submitForm(values);\n },\n\n displayName: 'CreateNewContactForm',\n})(CreateNewContactWrapper);\n\nCreateNewContactWrapper.propTypes = {\n handleSubmit: PropTypes.func,\n values: PropTypes.oneOfType([PropTypes.object]),\n handleChange: PropTypes.func,\n touched: PropTypes.bool,\n handleBlur: PropTypes.func,\n errors: PropTypes.oneOfType([PropTypes.array]),\n closeModal: PropTypes.bool,\n editContactData: PropTypes.oneOfType([PropTypes.object]),\n};\n\nCreateNewContactWrapper.defaultProps = {\n handleSubmit: () => true,\n values: {},\n handleChange: () => true,\n touched: false,\n handleBlur: () => true,\n errors: [],\n closeModal: false,\n editContactData: {},\n};\n\nexport default CreateNewContact;\n","import React, { useEffect, useState } from 'react';\nimport { useQuery } from '@apollo/client';\nimport PropTypes from 'prop-types';\n\nimport { GET_CONTACTS, GET_DELETED_CONTACTS } from '../ApolloClient/queries';\nimport NetworkError from '../Errors/NetworkError';\nimport ContactsTable from './ContactsTable';\n\nimport './index.sass';\n\n\nfunction ContactsPage({ asPreview, currentLocale }) {\n const [contacts, setContactsList] = useState([]);\n const [contactsTotalCount, setContactsTotalCount] = useState(0);\n const [deletedTotalCount, setDeletedTotalCount] = useState(0);\n const [deletedContactsList, setDeletedContactsList] = useState([]);\n const [initialLoad, setInitialLoad] = useState(true);\n const [showDeletedContacts, setShowDeletedContacts] = useState(false);\n\n const [filters, setFilters] = useState({\n page: 1,\n perPage: asPreview ? 4 : 20,\n orderDirection: 'desc',\n orderBy: 'is_main_contact',\n });\n\n const [deletedContactsFilters, setDeletedContactFilters] = useState({\n page: 1,\n perPage: asPreview ? 4 : 20,\n orderDirection: 'desc',\n orderBy: 'created_at',\n onlyDeleted: true,\n });\n\n const { page, perPage, orderDirection, orderBy } = showDeletedContacts\n ? deletedContactsFilters\n : filters;\n\n const {\n error: contactsError,\n data,\n loading: contactsLoading,\n } = useQuery(GET_CONTACTS, { variables: filters });\n\n const {\n error: deletedContactsError,\n data: deletedContacts,\n loading: deletedContactsLoading,\n } = useQuery(GET_DELETED_CONTACTS, { variables: deletedContactsFilters });\n\n\n const handleFilters = (newFilters) => {\n showDeletedContacts\n ? setDeletedContactFilters((prevFilters) => ({\n ...prevFilters,\n ...newFilters,\n }))\n : setFilters((prevFilters) => ({\n ...prevFilters,\n ...newFilters,\n }));\n };\n\n\n const setOrderBy = (field) => {\n const newOrderDirection =\n field === orderBy && orderDirection === 'asc' ? 'desc' : 'asc';\n\n handleFilters({ orderBy: field, orderDirection: newOrderDirection });\n };\n\n\n const changeActiveTab = (value) => setShowDeletedContacts(value);\n\n\n useEffect(() => {\n if (data) {\n setContactsList(data.contacts.contacts);\n setContactsTotalCount(data.contacts.totalCount);\n setInitialLoad(false);\n }\n }, [data]);\n\n\n useEffect(() => {\n if (deletedContacts) {\n setDeletedContactsList(deletedContacts.contacts.contacts);\n setDeletedTotalCount(deletedContacts.contacts.totalCount);\n }\n }, [deletedContacts]);\n\n if (contactsError || deletedContactsError) return <NetworkError />;\n\n\n const dataTable = showDeletedContacts ? deletedContactsList : contacts;\n\n const totalCount = showDeletedContacts\n ? deletedTotalCount\n : contactsTotalCount;\n\n return (\n <div className=\"contacts\">\n <div className={`contacts-wrapper ${asPreview ? 'preview' : ''}`}>\n <ContactsTable\n currentLocale={currentLocale}\n currentPage={page}\n perPage={perPage}\n deletedTotalCount={deletedTotalCount}\n contactsTotalCount={contactsTotalCount}\n initialLoad={initialLoad}\n asPreview={asPreview}\n contactsLoading={contactsLoading || deletedContactsLoading}\n setPage={(page) => handleFilters({ page })}\n setPerPage={(perPage) => handleFilters({ perPage, page: 1 })}\n showDeletedContacts={showDeletedContacts}\n dataTable={dataTable}\n totalCount={totalCount}\n orderDirection={orderDirection}\n setOrderBy={setOrderBy}\n activeFilter={orderBy}\n changeActiveTab={changeActiveTab}\n />\n </div>\n </div>\n );\n}\n\nContactsPage.propTypes = {\n asPreview: PropTypes.bool,\n};\n\nContactsPage.defaultProps = {\n asPreview: false,\n};\n\nexport default ContactsPage;\n","import React from 'react';\n\nimport { SvgIco } from \"../../SharedComponents/Icons\";\n\nimport './ModalNetworkError.sass';\n\n\nconst ModalNetworkError = () => {\n\n return (\n <div className=\"modal-network-error\">\n <SvgIco name=\"caution-outline\" size={28} />\n <div className=\"modal-network-error__message\">\n { I18n.t('generic.server-error-listview-page') } <a href={window.location.href}>{ I18n.t('general.refresh-page') }</a>.\n </div>\n </div>\n )\n}\n\nexport default ModalNetworkError;\n","import React from 'react';\n\nimport ErrorImg from '../../../src/images/provider/error.svg';\n\nimport './NetworkError.sass';\n\n\nconst NetworkError = ({}) => {\n\n return (\n <div className=\"errors-page\">\n <h3>{ I18n.t('provider.error.oops') } !</h3>\n <img src={ErrorImg} height={243} width={345} alt=\"Error\" />\n <div>{ I18n.t('provider.error.network_first_sentence') }</div>\n <div>\n { I18n.t('generic.server-error-listview-page') }\n <a href={window.location.href}>\n { I18n.t('general.refresh-page') }\n </a>\n .\n </div>\n </div>\n )\n}\n\nexport default NetworkError;\n","import React from 'react';\nimport ErrorImg from '../../../src/images/provider/error.svg';\nimport { Link } from 'react-router-dom';\n\n\nconst Page404 = ({ currentLocale }) => {\n return (\n <div className=\"errors-page\">\n <h3>{ I18n.t('provider.error.404') } !</h3>\n <img src={ErrorImg} height={243} width={345} alt=\"Error\" />\n <p className=\"page-not-found\">{ I18n.t('error_pages.404_page.header')}</p>\n <p >{I18n.t(\"error_pages.404_page.description\")}</p>\n\n <Link to={`${currentLocale}/new_providers`} clasName=\"return-dashboard-link\"> {I18n.t(\"providers.leases.success.review.text_dashboard_button\")}</Link>\n\n </div>\n );\n}\n\nexport default Page404;\n","import React from 'react';\n\nimport { SvgIco } from \"../../SharedComponents/Icons\";\n\nimport './PageInfoMessage.sass';\n\n\nconst PageInfoMessage = ({ message }) => {\n\n return (\n <div className=\"page-info-message\">\n <SvgIco name=\"caution\" size={51} />\n <div className=\"page-info-message__content\" dangerouslySetInnerHTML={{ __html: message }} />\n </div>\n )\n}\n\nexport default PageInfoMessage;\n","import React from 'react';\n\nimport SslSecureLogo from '../../../src/images/logos/ssl-secure-encryption.svg';\n\nimport './index.sass'\n\n\nconst Footer = ({ footer, providerInfo, currentContactInfo }) => {\n\n const { addressLine,\n copyrightUrl,\n privacyUrl,\n supportUrl,\n sslLink,\n postalCode,\n contactInfoPhone,\n contactInfoMail,\n logoUrl,\n hotline,\n showCvrCode,\n cvrCode,\n root,\n socialLinks } = footer;\n\n const {\n companyName,\n line1: providerLine1,\n line2: providerLine2,\n city: providerCity,\n vatId: providerVatId,\n ean: providerEan,\n phoneNumber: providerPhone,\n } = providerInfo;\n\n const {\n name: currentContactName,\n email: currentPhoneNumber,\n phoneNumber: currentContactEmail\n } = currentContactInfo\n\n\n return (\n <footer className=\"provider-footer\">\n <div className=\"container\">\n <div className=\"provider-footer__info row\">\n\n <div className=\"provider-footer__contacts col-xl-3 col-lg-3\">\n <a href={root} className=\"provider-footer__logo\">\n <img src={logoUrl} alt=\"Logo\" className=\"lazyload\" id=\"logo-image\" data-sizes=\"auto\" width={140} />\n </a>\n <p>{ addressLine }</p>\n <p>{ postalCode }</p>\n <p>{ I18n.t('generic.email') }: <a href={\"mailTo:\" + contactInfoMail} >{ contactInfoMail }</a></p>\n { contactInfoPhone && <p>{ I18n.t('generic.phone') } { contactInfoPhone }</p> }\n { hotline && <p>{ I18n.t('generic.hotline') } { hotline }</p> }\n { showCvrCode && <p>{ cvrCode }</p> }\n </div>\n\n <div className=\"provider-footer__col col-xl-3 col-lg-3\">\n <h3>{I18n.t('layouts.providers.bottom.your_company')}</h3>\n <p>{ companyName }</p>\n <p>{ providerLine1 }</p>\n { providerLine2 && <p>{ providerLine2 }</p> }\n <p>{ providerInfo.postalCode } { providerCity }</p>\n { providerVatId && <p>{ I18n.t('generic.vat') }: { providerVatId }</p> }\n { providerEan && <p>{ I18n.t('activerecord.attributes.provider.ean') }: { providerEan }</p> }\n <p>{ I18n.t('layouts.providers.bottom.phone_number') }: { providerPhone }</p>\n </div>\n\n <div className=\"provider-footer__col col-xl-2 col-lg-2 offset-1\">\n <h3>{ I18n.t('layouts.providers.bottom.logged_in_as') }</h3>\n <p>{ currentContactName }</p>\n <p>{ currentPhoneNumber }</p>\n <p>{ currentContactEmail }</p>\n </div>\n\n <div className=\"col-xl-3 col-lg-3\">\n <div className=\"provider-footer__social-links\">\n <a href={sslLink}>\n <img src={SslSecureLogo} alt=\"SSL secured\" className=\"lazyload global-footer__ssl-img\" height={44} width={134}/>\n </a>\n <ul className=\"provider-footer__social-buttons-list\">\n { socialLinks.map(link =>\n <li className=\"provider-footer__social-link\" key={link[0]}>\n <a href={link[1]} className={`provider-footer__social-link--${link[0]}`}/>\n </li>\n )}\n </ul>\n </div>\n </div>\n </div>\n </div>\n <div className=\"provider-footer__bottom-links\">\n <div className=\"container\">\n <a href={supportUrl}>{ I18n.t('layouts.responsive.bottom.help_link') }</a>\n <a href={copyrightUrl} className=\"global-footer__copyright-link\">\n Copyright { new Date().getFullYear() }\n </a>\n <a href={privacyUrl} className=\"provider-footer__privacy-link\">\n <img src={require('../../../src/images/icons/cookie-badge.svg')} alt=\"cookies\" width=\"15px\" height=\"13.5px\" />\n { I18n.t('cookie_consent.privacy_policy') }\n </a>\n </div>\n </div>\n </footer>\n );\n}\n\n\nexport default Footer;\n","import React from 'react';\nimport { parseMd } from '../../../utils/helpers';\nimport './index.sass';\n\nconst HelpPage = ({ content }) => {\n\n return (\n <div className=\"help-page\">\n <div className=\"help-page__content\" dangerouslySetInnerHTML={{__html: parseMd(content)}} />\n </div>\n );\n};\n\n\nexport default HelpPage;\n","import React from 'react';\n\nconst handleBackgroundColor = (status) =>\n status === 'paid' ? 'rgba(119, 188, 31, 0.05)' : 'rgba(238, 0, 0, 0.05)';\n\n\n\nexport const InvoicesColumns = (data, openPaymentModal) =>\n React.useMemo(\n () => [\n //===========================================================================>\n\n {\n Header: I18n.t('generic.status'),\n accessor: 'status',\n style: {maxWidth: '298px', minWidth: '298px', width: '298px' },\n Cell: (data) =>\n <div className=\"invoices__column\" style={{ color: data.value === 'paid' ? '#539533' : '#EE0000', }}>\n <div className=\"invoices__column-bg\" style={{ background: handleBackgroundColor(data.value) }} />\n { I18n.t(`generic.status_value.${data.value}`) }\n </div>\n },\n\n //===========================================================================>\n\n {\n Header: I18n.t('generic.amount'),\n accessor: 'amountInCents',\n style: {minWidth: '162px', width: '162px' },\n Cell: (data) =>\n <div className=\"invoices__column\">\n <div className=\"invoices__column-bg\" style={{ background: handleBackgroundColor(data.row.original.status) }} />\n { (data.value && parseFloat((data.value)/100).toFixed(2)) || '' }\n </div>,\n },\n\n //===========================================================================>\n\n {\n Header: I18n.t('activerecord.attributes.location.currency'),\n accessor: 'currency.name',\n style: {minWidth: '162px', width: '162px' },\n Cell: (data) => data.value\n ?\n <div className=\"invoices__column\">\n <div className=\"invoices__column-bg\" style={{ background: handleBackgroundColor(data.row.original.status) }} />\n { data.value }\n </div>\n : '',\n },\n\n //===========================================================================>\n\n {\n Header: I18n.t('generic.invoice') + '(pdf)',\n accessor: 'invoicePdfShowPath',\n style: {minWidth: '162px', width: '162px' },\n Cell: (data) => data.value\n ?\n <a href={data.value}>\n <div className=\"invoices__column-bg\" style={{ background: handleBackgroundColor(data.row.original.status) }} />\n { I18n.t('generic.show') } { I18n.t('generic.invoice') }\n </a>\n : '',\n },\n\n //===========================================================================>\n\n {\n Header: '',\n accessor: 'payment',\n style: { background: 'white' },\n Cell: (data) =>\n data.row.original.status === 'waiting'\n ? <div onClick={() => openPaymentModal(data.row.original.id)} className=\"invoices__pay-link\">\n { I18n.t('generic.pay') }\n </div>\n : null,\n },\n ],\n [data],\n );\n","import React, { useEffect, useState } from 'react';\nimport { useLazyQuery } from \"@apollo/client\";\n\nimport PaymentModal from \"../Modals/PaymentModal/PaymentModal\";\nimport { GET_STRIPE_INVOICES } from \"../ApolloClient/queries\";\nimport Table from \"../Table\";\nimport { InvoicesColumns } from \"./Columns\";\n\nimport './index.sass';\n\n\nconst Invoices = ({ locale, stripeInvoicesApiKey }) => {\n\n const [activeInvoiceId, setActiveInvoiceId] = useState(null);\n const [initialLoad, setInitialLoad] = useState(true);\n const [invoices, setInvoices] = useState([]);\n const [paymentModalIsOpen, setPaymentModalIsOpen] = useState(false);\n\n const [getStripedInvoices, { loading }] = useLazyQuery(GET_STRIPE_INVOICES, {\n fetchPolicy: 'no-cache',\n onCompleted: (data) => {\n if (data && data.stripeInvoices) {\n setInvoices(data.stripeInvoices);\n initialLoad && setInitialLoad(false);\n }\n },\n });\n\n useEffect(() => {\n getStripedInvoices().catch(error => console.log('error', error));\n }, []);\n\n useEffect(() => {\n activeInvoiceId && setPaymentModalIsOpen(true);\n }, [activeInvoiceId]);\n\n const openPaymentModal = (id) => {\n setActiveInvoiceId(id);\n }\n\n const closePaymentModal = () => {\n setPaymentModalIsOpen(false);\n setActiveInvoiceId(null);\n };\n\n const handlePaymentSuccess = () => {\n const updatedInvoices = [ ...invoices ];\n const index = invoices.findIndex(invoice => invoice.id === activeInvoiceId);\n\n updatedInvoices.splice(index, 1, { ...updatedInvoices[index], status: 'paid' });\n setInvoices(updatedInvoices);\n closePaymentModal();\n // getStripedInvoices().catch(error => console.log(error));\n };\n\n const columns = InvoicesColumns(invoices, openPaymentModal);\n\n\n return (\n <div className=\"invoices\">\n\n <Table\n columns={columns}\n data={invoices}\n disableSortBy={true}\n initialLoad={initialLoad}\n extraClass=\"no-wrap\"\n loading={initialLoad && loading}\n name=\"invoices\"\n noPagination={true}\n hideBottomFilters={true}\n perPage={!!invoices.length ? 100 : 5}\n />\n\n { paymentModalIsOpen &&\n <PaymentModal\n handleClose={closePaymentModal}\n handlePaymentSuccess={handlePaymentSuccess}\n invoiceId={activeInvoiceId}\n locale={locale}\n showModal={paymentModalIsOpen}\n stripeInvoicesApiKey={stripeInvoicesApiKey}\n />\n }\n\n </div>\n )\n}\n\nexport default Invoices;\n","import React from 'react';\n\nimport './index.sass';\n\n\nexport const SkeletonLoader = ({ className, count }) =>\n <div className={`skeleton-box-wrapper ${className}`}>\n { Array.apply('test', Array(count)).map((elem, index) =>\n <div className={`skeleton-box skeleton-box--${index + 1}`} key={className + index} />\n )}\n </div>;\n\n\nexport const PulsingLoader = () =>\n <div className=\"pulsing-loader-wrapper\">\n <div className=\"pulsing-loader\" />\n </div>;\n\n\nexport const FileLoader = () =>\n <div className=\"file-loader\">\n <div className=\"progress\" />\n </div>;\n\n\nexport const EllipsisLoader = () =>\n <div className=\"ellipsis-loader\">\n <div>\n <span/>\n <span/>\n <span/>\n </div>\n </div>;\n","import React, { Fragment } from 'react';\nimport ReactTooltip from 'react-tooltip';\n\nimport BasicDropdown from '../../../SharedComponents/Forms/BasicDropdown';\nimport SearchableDropdown from '../../../SharedComponents/Forms/SearchableDropdown';\nimport { SvgIco } from \"../../../SharedComponents/Icons\";\n\n\nconst DropdownGroup = ({ children,\n label,\n labelCol,\n options,\n handleChange,\n name,\n value,\n tooltipClass,\n tooltipChildren,\n labelTooltip,\n labelClass,\n wrapperClass,\n searchable,\n disabled,\n error,\n required }) => {\n\n const errorMessage = error ? `${label} ${error}` : null;\n\n return (\n <div className={`form-group row ${wrapperClass || ''}${required ? ' required-form-group' : ''}`} id={name}>\n <div className={`form-label col-xl-${labelCol || 3} col-lg-${labelCol || 3} ${labelClass || ''}`}>\n\n <span className=\"label-text\" style={labelTooltip ? { marginRight: '8px' } : null}>\n { label }{ required && '*' }\n </span>\n\n { labelTooltip &&\n <Fragment>\n\n <span\n className=\"provider-tooltip\"\n data-tip={labelTooltip}\n data-class=\"provider-tooltip\"\n data-for={`${name}-tooltip`}>\n <SvgIco name=\"info_outline\" size={24} />\n </span>\n\n <ReactTooltip\n border={true}\n borderColor=\"black\"\n effect='solid'\n id={`${name}-tooltip`}\n place='right'\n type=\"light\" />\n\n </Fragment>\n }\n\n </div>\n\n { searchable\n ? <SearchableDropdown\n disabled={disabled}\n error={errorMessage}\n handleChange={handleChange}\n name={name}\n options={options}\n wrapperClass=\"col-xl-3 col-lg-4\"\n value={value} />\n\n : <BasicDropdown\n disabled={disabled}\n error={errorMessage}\n handleChange={handleChange}\n name={name}\n options={options}\n value={value}\n wrapperClass=\"col-xl-3 col-lg-4\" />\n }\n\n { children || null }\n\n { tooltipChildren &&\n <Fragment>\n <div className=\"col-xl-1 col-lg-1\" />\n <div className=\"col-xl-5 col-lg-4\">\n <div className={`form-group__tooltip ${ tooltipClass || '' }`}>\n { tooltipChildren }\n </div>\n </div>\n </Fragment>\n }\n </div>\n )\n};\n\n\nexport default DropdownGroup;\n","import React, { Fragment, useContext } from 'react';\nimport ReactTooltip from 'react-tooltip';\n\nimport BasicInput from '../../../SharedComponents/Forms/BasicInput';\nimport { SvgIco } from \"../../../SharedComponents/Icons\";\nimport { Context } from '../index';\n\n\nconst InputGroup = ({ disabled,\n error,\n handleChange,\n inputWrapperClass,\n label,\n labelClass,\n labelTooltip,\n name,\n placeholder,\n required,\n tooltip,\n value,\n }) => {\n\n const { errors, handleInputChange } = useContext(Context);\n const errorMessage = error || (errors[name] ? `${label} ${error || errors[name]}` : null);\n\n\n return (\n <div className={`form-group row ${required ? 'required-form-group' : ''}`} id={name}>\n <div className={`form-label col-xl-3 col-lg-3 ${labelClass || ''}`}>\n\n <span className=\"label-text\" style={labelTooltip ? { marginRight: '8px' } : null}>\n { label }{ required && '*' }\n </span>\n\n { labelTooltip &&\n <Fragment>\n <span\n className=\"provider-tooltip\"\n data-tip={labelTooltip}\n data-class=\"provider-tooltip\"\n data-for={`${name}-tooltip`}>\n <SvgIco name=\"info_outline\" size={24} />\n </span>\n <ReactTooltip\n border={true}\n borderColor=\"black\"\n effect='solid'\n id={`${name}-tooltip`}\n place='right'\n type=\"light\" />\n </Fragment>\n }\n </div>\n\n <BasicInput\n disabled={disabled}\n error={errorMessage}\n handleChange={handleChange || handleInputChange}\n name={name}\n placeholder={placeholder}\n value={value}\n wrapperClass={inputWrapperClass || 'col-xl-3 col-lg-4'} />\n\n { tooltip &&\n <Fragment>\n <div className=\"col-xl-1 col-lg-1\" />\n <div className=\"col-xl-5 col-lg-4\">\n <div className=\"form-group__tooltip\">\n <div className=\"form-group__tooltip-content\">\n { tooltip }\n </div>\n </div>\n </div>\n </Fragment>\n }\n </div>\n )\n}\n\nexport default InputGroup;\n","import React, { Fragment, useContext } from 'react';\nimport ReactTooltip from 'react-tooltip';\n\nimport RadioButtons from '../../../SharedComponents/Forms/RadioButtons';\nimport { SvgIco } from \"../../../SharedComponents/Icons\";\nimport { Context } from '../index';\n\n\nconst RadioFormGroup = ({\n label,\n field,\n tooltip,\n htmlTooltip,\n activeClass,\n }) => {\n\n const { handleChange, values, activeSection } = useContext(Context);\n\n const options = [\n { label: I18n.t('generic.yes'), value: true, checked: values[field] },\n { label: I18n.t('generic.no'), value: false, checked: !values[field] },\n ];\n\n return (\n <div className=\"form-group form-group--radio row\">\n\n { label\n ?\n <div className=\"form-label form-label--align-top col-xl-3 col-lg-3\">\n <span style={tooltip ? { marginRight: '8px' } : null}>{label}</span>\n\n { tooltip &&\n <Fragment>\n <span\n data-tip={tooltip}\n data-class=\"provider-tooltip\"\n data-html={htmlTooltip}\n data-for={`${field}-tooltip`}\n className=\"provider-tooltip\"\n >\n <SvgIco name=\"info_outline\" size={24} />\n </span>\n <ReactTooltip\n border={true}\n borderColor=\"black\"\n effect=\"solid\"\n id={`${field}-tooltip`}\n place=\"right\"\n type=\"light\"\n />\n </Fragment>\n }\n </div>\n :\n <div className=\"form-label form-label--align-top col-lg-1\" />\n }\n\n <RadioButtons\n activeClass={activeClass}\n handleChange={(value) => handleChange(value, field, activeSection)}\n name={field}\n options={options}\n wrapperClass=\"col-xl-3 col-lg-3\"\n />\n </div>\n );\n};\n\nexport default RadioFormGroup;\n","import React, { Fragment, useContext } from 'react';\nimport classNames from 'classnames';\n\nimport BasicInput from '../../../SharedComponents/Forms/BasicInput';\nimport { Context } from '../index';\n\nimport './RangeInputs.sass';\n\n\nconst RangeInputs = ({ float,\n handleChange,\n hideSecondField,\n formGroupClass,\n label,\n labelCol,\n name,\n requiredFrom,\n requiredTo,\n tooltip,\n type,\n value,\n units,\n unitsPosition,\n useOriginName,\n }) => {\n\n const { handleNumberInputChange, values, errors } = useContext(Context);\n const nameFrom = useOriginName ? name : `${name}From`;\n const nameTo = `${name}To`;\n const valueFrom = values[nameFrom];\n const valueTo = values[nameTo];\n const errorFrom = errors && errors[nameFrom];\n const errorTo = errors && errors[nameTo];\n const unitsClasses = classNames(\"range-inputs__units\", { 'top': unitsPosition === 'top' });\n\n\n return (\n <div className={`form-group range-inputs row ${formGroupClass || ''}`}>\n\n <div className={`form-label col-xl-${labelCol || 3} col-lg-${labelCol || 3}`}>\n <span>{ label }</span>\n </div>\n\n <div className={`range-inputs__col col-lg-4 col-xl-${hideSecondField && !units ? '3 wide' : '4'}`}>\n <div className=\"range-inputs__col-wrapper\">\n <div className=\"range-inputs__wrapper\">\n <div className=\"range-inputs__input-wrapper\">\n\n <BasicInput\n error={errorFrom}\n float={float}\n handleChange={(e) => handleChange ? handleChange(e, nameFrom) : handleNumberInputChange(e)}\n hideError={true}\n name={nameFrom}\n placeholder={I18n.t('generic.from')}\n required={requiredFrom}\n type={type || \"number\"}\n value={value || valueFrom || ''}\n />\n\n <span className=\"range-inputs__required-wrapper\">\n { hideSecondField && units && <div className={unitsClasses}>{ units }</div> }\n { requiredFrom && <span className=\"range-inputs__required-icon\">*</span> }\n </span>\n </div>\n\n { !hideSecondField &&\n <Fragment>\n <span className=\"range-inputs__separator\">-</span>\n\n <div className=\"range-inputs__input-wrapper\" id={nameTo}>\n <BasicInput\n error={errorTo}\n float={float}\n handleChange={(e) => handleChange ? handleChange(e, nameTo) : handleNumberInputChange(e)}\n hideError={true}\n name={nameTo}\n placeholder={I18n.t('generic.to')}\n required={requiredTo}\n type={type || \"number\"}\n value={valueTo || ''}\n />\n </div>\n </Fragment>\n }\n </div>\n\n { !hideSecondField && units &&\n <div className=\"range-inputs__second-units\">\n <span className={unitsClasses}>\n { units }{ requiredTo && <span className=\"range-inputs__required-icon\">*</span> }\n </span>\n </div>\n }\n </div>\n\n { errorFrom &&\n <div className=\"error-tooltip\">\n { `${label} \"${I18n.t('generic.from').toLowerCase()}\" ${errorFrom}` }\n </div>\n }\n\n { errorTo &&\n <div className=\"error-tooltip\">\n { `${label} \"${I18n.t('generic.to').toLowerCase()}\" ${errorTo}` }\n </div>\n }\n\n </div>\n\n { tooltip &&\n <div className=\"range-inputs__tooltip\">\n <div className=\"form-group__tooltip\">\n { tooltip }\n </div>\n </div>\n }\n </div>\n )\n}\n\nexport default RangeInputs;\n","import React, {useContext} from 'react';\nimport classNames from 'classnames';\n\nimport { SvgIco } from \"../../../SharedComponents/Icons\";\nimport { Context } from \"../index\";\n\nimport './index.sass';\n\n\nconst NavigationButtons = ({ handleNext, isSubmit, handleBack, requiredFieldsValid }) => {\n\n const { activeSection,\n addLocationLoading,\n editPage,\n editedValuesFields,\n handleEdit,\n validateFields,\n validateLocationLoading,\n updateLocationValuesLoading,\n } = useContext(Context);\n\n const nextButtonClasses = classNames('navigation-buttons__next', { 'submit': isSubmit }, { 'disabled': addLocationLoading || validateLocationLoading });\n const updateButtonClasses = classNames('navigation-buttons__edit', {\n 'active': editPage && editedValuesFields.length,\n 'loading': updateLocationValuesLoading });\n\n const handleEditValues = () =>\n requiredFieldsValid\n ? requiredFieldsValid() && validateFields(false, handleEdit)\n : validateFields(false, handleEdit);\n\n\n return (\n <div className=\"navigation-buttons\">\n\n { handleBack &&\n <div className=\"navigation-buttons__back-link\" onClick={handleBack}>\n <SvgIco name=\"arrow-back\" size={24} />\n <div className=\"navigation-buttons__back-text\">\n <span>{ I18n.t('generic.back') }</span>\n </div>\n </div>\n }\n\n <div className=\"navigation-buttons__right-block\">\n { editPage && activeSection !== 'visuals' &&\n <div className={updateButtonClasses} onClick={handleEditValues}>\n { I18n.t('generic.save_changes') }\n </div>\n }\n\n { handleNext &&\n <div className={nextButtonClasses} onClick={handleNext}>\n { isSubmit ? I18n.t('provider.form.complete_button') : I18n.t('generic.next') }\n { !isSubmit && <SvgIco name=\"arrow_forward\" size={24} /> }\n </div>\n }\n </div>\n </div>\n )\n}\n\nexport default NavigationButtons;\n","import React from 'react';\nimport classNames from \"classnames\";\nimport { useRouteMatch } from \"react-router-dom\";\nimport ReactTooltip from \"react-tooltip\";\n\nimport { SvgIco } from \"../../../SharedComponents/Icons\";\nimport MutableLink from '../../MutableLink';\nimport { ActionIcon } from \"../../ScoreWidget\";\n\nimport './index.sass';\n\n\nconst ProgressBar = ({ activeSection,\n editPage,\n lastAvailableStep,\n qualityScore,\n showFacts,\n stepsData,\n stepsRefs,\n validateFields\n }) => {\n\n const { url } = useRouteMatch();\n const currentStepRef = stepsRefs[activeSection] || null;\n const validateFunction = currentStepRef ? () => currentStepRef.current.validateStep() : validateFields;\n\n const scoreIconActive = (step) => {\n if (qualityScore) {\n switch (step) {\n case 'economy':\n return qualityScore.price.score;\n case 'facts':\n return qualityScore.facilities.score && qualityScore.energyRating.score;\n case 'description':\n return qualityScore.description.score;\n case 'visuals':\n return qualityScore\n && qualityScore.floorPlan.score\n && qualityScore.photos.score\n && qualityScore.prospectus.score\n && qualityScore.video.score\n && qualityScore.virtualTour.score;\n default:\n return false\n }\n } else {\n return false;\n }\n };\n\n const ScoreIcon = ({ stepLink }) =>\n <div className=\"provider-tooltip score-icon-wrapper\"\n data-tip={\"This step includes items that can raise the rating of your lease\"}\n data-class=\"provider-tooltip\"\n data-for={`score-progress-${stepLink}-tooltip`}>\n <ActionIcon color={scoreIconActive(stepLink) ? '#77BC1F' : ''} />\n <ReactTooltip\n border={true}\n borderColor=\"black\"\n effect='solid'\n id={`score-progress-${stepLink}-tooltip`}\n place='left'\n type=\"light\" />\n </div>;\n\n\n return (\n <div className='progress-bar'>\n <div className=\"progress-bar__background-line\" />\n\n { Object.keys(stepsData).map((item, index) => {\n\n const step = stepsData[item];\n const isActive = activeSection === step.link;\n const showAsLink = (step.passed || lastAvailableStep === step.link || editPage) && !isActive;\n const wrapperClasses = classNames(`progress-bar__step-wrapper`, {\n 'active': isActive,\n 'first': index === 0,\n 'last': index === Object.keys(stepsData).length - 1,\n });\n\n if (step.link === 'facts' && !showFacts) return;\n\n return (\n <MutableLink\n currentStepRef={currentStepRef}\n handleClick={validateFunction}\n key={step.name}\n linkClass=\"progress-bar__step-link\"\n showAsLink={showAsLink}\n stepLink={step.link}\n url={`${url}/${step.link}`}\n >\n <div className={wrapperClasses}>\n <div className=\"progress-bar__step-number-wrapper\">\n { step.passed || editPage\n ?\n <div className=\"progress-bar__step-passed\">\n <SvgIco name={step.starRating ? 'star' : 'check'} size={16} />\n { step.showScoreIcon && <ScoreIcon stepLink={step.link} /> }\n </div>\n :\n <div className=\"progress-bar__step-number\">\n <div className=\"google-translate-helper\">\n { index + 1 }\n </div>\n { step.showScoreIcon && <ScoreIcon stepLink={step.link} /> }\n </div>\n }\n </div>\n <div className=\"progress-bar__step-name\">\n { step.name }\n </div>\n </div>\n </MutableLink>\n )\n })}\n </div>\n )\n};\n\n\nexport default ProgressBar;\n","import React, { useState, useContext, useEffect } from 'react';\nimport { useLazyQuery } from \"@apollo/client\";\n\nimport Checkbox from '../../../SharedComponents/Forms/CheckBox';\nimport { GET_CONTACTS } from \"../../ApolloClient/queries\";\nimport NavigationButtons from '../NavigationButtons';\nimport DropdownGroup from '../FormGroups/DropdownGroup';\nimport { Context } from '../index';\n\nimport './Contacts.sass';\n\n\nconst Contacts = () => {\n\n const [contacts, setContacts] = useState(null);\n\n const {\n currentContactId,\n handleCheckboxesSelect,\n showFacts,\n validateFields,\n values,\n updateValues,\n } = useContext(Context);\n\n const { existingPrimaryContact, subscriberContactIds } = values;\n\n const [getContacts] = useLazyQuery(GET_CONTACTS, {\n fetchPolicy: 'no-cache',\n onCompleted: (data) => {\n if (data.contacts) {\n setContacts([ ...data.contacts.contacts ]);\n }\n },\n });\n\n useEffect(() => {\n getContacts({ variables: { perPage: 1000 } })\n .catch(error => console.log('error', error));\n }, []);\n\n const primaryContactOptions =\n contacts && contacts.map(contact =>\n ({ value: `${contact.id}`, label: `${contact.name} - ${contact.email}`})\n );\n\n\n const handlePrimaryContactChange = (value) =>\n updateValues({ existingPrimaryContact: { id: value } });\n\n\n return (\n <div className=\"contacts-step\">\n <h3>{ I18n.t('generic.providers.sidebar.contacts') }</h3>\n\n { primaryContactOptions &&\n <DropdownGroup\n handleChange={handlePrimaryContactChange}\n label={I18n.t('activerecord.attributes.location.primary_contact')}\n name=\"existingPrimaryContact\"\n options={primaryContactOptions}\n value={(existingPrimaryContact && existingPrimaryContact.id) || `${currentContactId}`}\n tooltipChildren={\n <p dangerouslySetInnerHTML={{ __html: I18n.t('providers.locations.form.primary_contact_help') }} />\n }\n />\n }\n\n <div className=\"form-group row\">\n <div className=\"form-label form-label--bold form-label--left col-xl-12 col-lg-12\" style={{ marginBottom: '24px' }}>\n <span>{ I18n.t('providers.locations.form.secondary_contacts') }</span>\n </div>\n\n <div className=\"col-xl-6 col-lg-6\">\n { contacts && contacts.map(contact =>\n <Checkbox\n field=\"subscriberContactIds\"\n handleChange={(e, field) => handleCheckboxesSelect(e, field, true)}\n key={contact.id}\n label={`${contact.name} - ${contact.email}`}\n name={contact.id}\n value={!!subscriberContactIds && subscriberContactIds.includes(Number(contact.id))} />\n )}\n </div>\n </div>\n\n <NavigationButtons\n handleBack={() => validateFields('economy')}\n handleNext={() => validateFields(showFacts ? 'facts' : 'description')}\n />\n\n </div>\n )\n}\n\n\nexport default Contacts;\n","import React, {\n useState,\n useContext,\n Fragment,\n useEffect,\n useRef,\n useImperativeHandle,\n forwardRef,\n useMemo\n} from 'react';\nimport ReactTooltip from \"react-tooltip\";\nimport { useLazyQuery } from \"@apollo/client\";\nimport Truncate from 'react-truncate';\nimport SunEditor from 'suneditor-react';\nrequire(\"suneditor/dist/css/suneditor.min.css\")\n// import 'suneditor/dist/css/suneditor.min.css';\nrequire('react-quill/dist/quill.snow.css');\n\nimport GoEditImg from '../../../../src/images/provider/goedit.png';\nimport { SvgIco } from \"../../../SharedComponents/Icons\";\nimport Loader from \"../../../SharedComponents/Loader\";\nimport InfoMessagePopup from \"../../Popups/InfoMessagePopup\";\nimport BaseModal from \"../../Modals/BaseModal\";\nimport {\n GENERATE_LOCATION_DESCRIPTION,\n GENERATE_NEW_LOCATION_DESCRIPTION,\n GENERATE_LOCATION_TITLE,\n GENERATE_NEW_LOCATION_TITLE,\n} from \"../../ApolloClient/queries\";\nimport { ScoreActionTooltip } from \"../../ScoreWidget\";\nimport NavigationButtons from '../NavigationButtons';\nimport DropdownGroup from '../FormGroups/DropdownGroup';\nimport InputGroup from '../FormGroups/InputGroup';\nimport { Context } from '../index';\n\nimport './Description.sass';\n\n\n\n// We need to wrap component in `forwardRef` in order to gain\n// access to the ref object that is assigned using the `ref` prop.\n// This ref is passed as the second parameter to the function component.\nconst Description = forwardRef((props, ref) => {\n\n const { defaultLocale,\n editPage,\n errors,\n goEditUrl,\n handleFormSubmit,\n locationId,\n prepareData,\n qualityScore,\n scrollToTarget,\n setErrors,\n setInfoMessagePopupIsOpen,\n setInfoPopupMessageError,\n showFacts,\n showLocationInternalDetailsText,\n siteKey,\n translationsLocales,\n updateLocation,\n updateValues,\n validateFields,\n values,\n } = useContext(Context);\n\n const filterObjects = (data) =>\n data ? Object.fromEntries(Object.entries(data).filter(([key, value]) => !!value)) : {};\n\n const { internalIdentifier, providerWebsiteLink, countryAlpha2 } = values;\n const localeObj = translationsLocales.find(locale => locale.id === countryAlpha2);\n const countryLocale = (localeObj && localeObj.name) || defaultLocale;\n\n const [errorMessagePopupIsOpen, setErrorMessagePopupIsOpen] = useState(null);\n const [descriptionLanguage, setDescriptionLanguage] = useState(countryLocale);\n const [description, setDescriptionsList] = useState(filterObjects(values.description));\n const [title, setTitlesList] = useState(filterObjects(values.title));\n const [showModal, setShowModal] = useState(false);\n const [descriptionCounter, setDescriptionCounter] = useState();\n const [callback, setCallback] = useState(null);\n // We need this control variable as the description that we receive from backend\n // is not always a valid option for Sun Editor(it has special characters, extra spaces ...).\n // After skipping original description through Sun Editor(in case of \"Edit location\")\n // it automatically edits HTML that causes failures for description changes check.\n // In this case user sees save changes dialog when there wasn't actually any changes\n const [controlDescription, setControlDescription] = useState(undefined);\n\n const editor = useRef();\n\n const requiredValuesFilled = useMemo(() => {\n const descriptionFilled = Object.keys(filterObjects(description)).length;\n const titleFilled = Object.keys(filterObjects(title)).length;\n\n return descriptionFilled && titleFilled;\n },[ title, description ]);\n\n const currentDescriptionName = `description_${descriptionLanguage}`;\n const currentHeadlineName = `title_${descriptionLanguage}`;\n const bodyRequiredMessage = `${I18n.t('activerecord.attributes.location.description')} ${I18n.t('apps.lb_showroom.detailed.order_form.validation.field_required', { field: '' })}`;\n const titleRequiredMessage = `${I18n.t('activerecord.attributes.location.title')} ${I18n.t('apps.lb_showroom.detailed.order_form.validation.field_required', { field: '' })}`;\n\n const languageOptions =\n translationsLocales.map(locale =>\n ({ value: locale.name,\n label: <Fragment>\n <i className={`description-step__locale-icon fi fi-${locale.id}`} />\n <div className=\"description-step__locale-name\">{ locale.name }</div>\n </Fragment>\n })\n );\n\n\n // Description has a difficult logic, and additional checks on validation\n // this is why here we have a separate validate function,\n // and we need to use 'forwardRef' to use this function in ProgressBar component.\n\n // The component instance will be extended\n // with whatever you return from the callback passed\n // as the second argument.\n // We need this functionality as some of the steps require additional checks.\n // And we need to pass this functions and checks to ProgressBar component\n // in order to validate step changes on ProgressBar link click.\n // This will allow us to call function from this component in a parent component\n // or any of it's child / example => [ref].current.validateStep()\n // KEEP \"args\" to have opportunity to update nextStep!!!\n useImperativeHandle(ref, (args) => ({\n nextStep: null,\n description,\n title,\n controlDescription,\n validateStep: () => {\n ref.current.nextStep && handleSubmit(ref.current.nextStep);\n },\n }));\n\n\n useEffect(() => {\n handleCounter();\n setTimeout(handleControlProp, 100);\n }, [descriptionLanguage]);\n\n\n useEffect(() => {\n callback && callback(values);\n setCallback(null);\n }, [values]);\n\n\n // REMOVE ERROR ON DESCRIPTION CHANGE\n // INVESTIGATE - any function call in handleDescriptionChange\n // causes bugs while working with props (props doesn't change).\n // Probably caused by SunEditor.\n useEffect(() => {\n description[descriptionLanguage] && handleErrors(['description']);\n handleErrors([currentDescriptionName]);\n }, [description]);\n\n\n const [generateLocationDescription, { error: generateDescriptionError, loading: generatingDescription }] = useLazyQuery(GENERATE_LOCATION_DESCRIPTION, {\n fetchPolicy: 'no-cache',\n onCompleted: (data) => {\n if (data) {\n setDescriptionsList(prevValues => ({\n ...prevValues,\n [descriptionLanguage]: data.locationChatGptDescription.text,\n }));\n }\n },\n });\n\n\n const [generateLocationTitle, { error: generateTitleError, loading: generatingTitle }] = useLazyQuery(GENERATE_LOCATION_TITLE, {\n fetchPolicy: 'no-cache',\n onCompleted: (data) => {\n if (data) {\n setTitlesList(prevValues => ({\n ...prevValues,\n [descriptionLanguage]: data.locationChatGptTitle.text,\n }))\n }\n },\n });\n\n\n const [generateNewLocationDescription, { error: generateNewDescriptionError, loading: generatingNewLocationDescription }] = useLazyQuery(GENERATE_NEW_LOCATION_DESCRIPTION, {\n fetchPolicy: 'no-cache',\n onCompleted: (data) => {\n if (data) {\n setDescriptionsList(prevValues => ({\n ...prevValues,\n [descriptionLanguage]: data.newLocationChatGptDescription.text,\n }));\n }\n },\n });\n\n\n const [generateNewLocationTitle, { error: generateNewTitleError, loading: generatingNewLocationTitle }] = useLazyQuery(GENERATE_NEW_LOCATION_TITLE, {\n fetchPolicy: 'no-cache',\n onCompleted: (data) => {\n if (data) {\n setTitlesList(prevValues => ({\n ...prevValues,\n [descriptionLanguage]: data.newLocationChatGptTitle.text,\n }))\n }\n },\n });\n\n\n useEffect(() => {\n (generateDescriptionError || generateTitleError || generateNewDescriptionError || generateNewTitleError) && setErrorMessagePopupIsOpen(true);\n }, [generateDescriptionError, generateTitleError, generateNewDescriptionError, generateNewTitleError]);\n\n\n const handleControlProp = () => ref.current && ref.current.description && setControlDescription({ ...ref.current.description });\n\n\n const handleCounter = () => {\n setDescriptionCounter(\n description[descriptionLanguage]\n ? description[descriptionLanguage].replace(/<[^>]+>/g, '').length\n : 0\n );\n };\n\n\n const setInitialValues = (locale) => {\n setDescriptionsList(prevValues => ({\n ...prevValues,\n [locale]: (values.description && values.description[locale]) || '',\n }));\n\n setTitlesList(prevValues => ({\n ...prevValues,\n [locale]: (values.title && values.title[locale]) || '',\n }));\n\n callback && callback();\n setCallback(null);\n };\n\n\n const handleSelectLanguage = (value) => {\n if (handleUnsavedChanges(() => setDescriptionLanguage(value))) {\n if (errors[currentDescriptionName] || errors[currentHeadlineName]) {\n const updatedErrors = { ...errors };\n\n errors[currentDescriptionName] && delete updatedErrors[currentDescriptionName];\n errors[currentHeadlineName] && delete updatedErrors[currentHeadlineName];\n setErrors({ ...updatedErrors });\n }\n }\n };\n\n\n const handleHeadlineChange = (e) => {\n const field = e.target.name.split('_')[1];\n const value = e.target.value;\n\n handleErrors([e.target.name, 'title']);\n\n setTitlesList(prevValues => ({\n ...prevValues,\n [field]: value,\n }));\n };\n\n\n const handleDescriptionChange = (text) => {\n // we need this check as ReactQuill will return <p><br/></p> if field is empty\n const currentTextLength = editor.current.getText().length;\n const formattedText = text.replace(/<\\s*(\\w+).*?>/g, '<$1>')\n .replace(/<(?!br)[^/>][^>]*><\\/[^>]+>/gim, \"\");\n\n setDescriptionsList(prevValues => ({\n ...prevValues,\n [descriptionLanguage]: currentTextLength ? formattedText : '',\n }));\n\n ref.current.controlDescription === undefined && setControlDescription({\n ...description,\n [descriptionLanguage]: currentTextLength ? formattedText : '',\n });\n\n setDescriptionCounter(editor.current.getText().length);\n };\n\n\n const handleErrors = (fields) => {\n const updatedErrors = { ...errors };\n\n fields.map(field => {\n if (updatedErrors[field]) {\n delete updatedErrors[field];\n setErrors({ ...updatedErrors });\n }\n });\n };\n\n\n const handleSave = () => {\n const currentTitleFilled = !!title[descriptionLanguage];\n const currentDescriptionFilled = !!description[descriptionLanguage];\n\n if (currentDescriptionFilled !== currentTitleFilled) {\n const fieldsError = { ...errors };\n\n !currentTitleFilled && (fieldsError[currentHeadlineName] = titleRequiredMessage)\n !currentDescriptionFilled && (fieldsError[currentDescriptionName] = bodyRequiredMessage)\n\n setErrors({ ...fieldsError });\n scrollToTarget(document.getElementById(!currentTitleFilled ? currentHeadlineName : currentDescriptionName));\n\n } else {\n updateValues({ description, title });\n setControlDescription({ ...description });\n // selectNextLocale();\n editPage && validateRequiredFields() && updateDescription({ description, title });\n }\n };\n\n\n const selectNextLocale = () => {\n const unsetDefaultLocale = !description[countryLocale] ? countryLocale : !description[defaultLocale] ? defaultLocale : null;\n\n if (unsetDefaultLocale) {\n setDescriptionLanguage(unsetDefaultLocale);\n } else {\n const unfilledLocale = translationsLocales.find(locale => locale.name !== descriptionLanguage && !description[locale.name]);\n\n unfilledLocale && setDescriptionLanguage(unfilledLocale.name);\n }\n };\n\n\n const handleClear = () => {\n setDescriptionsList(prevValues => ({\n ...prevValues,\n [descriptionLanguage]: '',\n }));\n\n setTitlesList(prevValues => ({\n ...prevValues,\n [descriptionLanguage]: '',\n }));\n\n const updatedErrors = { ...errors };\n\n updatedErrors[currentDescriptionName] && (delete updatedErrors[currentDescriptionName]);\n updatedErrors[currentHeadlineName] && (delete updatedErrors[currentHeadlineName]);\n setErrors(updatedErrors);\n };\n\n\n const handleDelete = (locale) => {\n\n const updatedDescriptionsList = { ...description, [locale]: '' };\n const updatedTitlesList = { ...title, [locale]: '' };\n\n setDescriptionsList(updatedDescriptionsList);\n setTitlesList(updatedTitlesList);\n updateValues({\n description: { ...updatedDescriptionsList },\n title: { ...updatedTitlesList },\n });\n };\n\n\n const handleUnsavedChanges = (callbackFunction) => {\n\n // TODO refactor\n const comparatorError = (objectName) => {\n const prevValue = objectName === 'description'\n ? (controlDescription && controlDescription[descriptionLanguage]) || ''\n : (values[objectName] && values[objectName][descriptionLanguage]) || '';\n const currentValue = ref.current[objectName][descriptionLanguage];\n\n return !prevValue ? !!prevValue !== !!currentValue : prevValue !== currentValue;\n };\n\n if (comparatorError('description') || comparatorError('title')) {\n setShowModal(true);\n setCallback(() => callbackFunction)\n return false;\n } else {\n callbackFunction && callbackFunction();\n return true;\n }\n };\n\n\n const validateRequiredFields = () => {\n const currentErrors = { ...errors };\n const descriptionFilled = Object.keys(filterObjects(description)).length;\n const titleFilled = Object.keys(filterObjects(title)).length;\n\n !requiredValuesFilled && setDescriptionLanguage(countryLocale);\n !descriptionFilled && (currentErrors[`description_${countryLocale}`] = bodyRequiredMessage);\n !titleFilled && (currentErrors[`title_${countryLocale}`] = titleRequiredMessage);\n setErrors({ ...currentErrors });\n\n const errorField = !titleFilled ? `title_${countryLocale}` : !descriptionFilled ? `description_${countryLocale}` : null;\n\n if (errorField) {\n // setDescriptionLanguage(countryLocale);\n scrollToTarget(document.getElementById(errorField));\n }\n\n return !Object.keys(currentErrors).length;\n };\n\n\n const handleSubmit = (nextStep, callback) =>\n handleUnsavedChanges((data) => validateRequiredFields() && validateFields(nextStep, callback && callback(data)));\n\n\n const handleModal = (save) => {\n save ? handleSave() : setInitialValues(descriptionLanguage);\n setShowModal(false);\n };\n\n\n // The sunEditor parameter will be set to the core suneditor instance when this function is called\n const getSunEditorInstance = (sunEditor) =>\n editor.current = sunEditor;\n\n\n const handleEditorLanguage = () => {\n const languageId = descriptionLanguage.split('-')[0];\n\n switch (languageId) {\n case 'uk':\n return 'ua';\n case 'fi':\n return 'en';\n case 'nb':\n return 'en';\n case 'tr':\n return 'en';\n case 'sv':\n return 'se';\n default:\n return languageId;\n }\n };\n\n\n const handleInput = () =>\n setDescriptionCounter(editor.current.getText().length);\n\n\n const updateDescription = (editedValues) => {\n updateLocation({\n variables: {\n attributes: { ...prepareData(editedValues), countryAlpha2: values.countryAlpha2 },\n id: Number(locationId),\n },\n }).catch((error) => {\n console.log('error', error);\n setInfoPopupMessageError(true);\n setInfoMessagePopupIsOpen(true);\n });\n };\n\n\n const generateDescription = () => {\n if (!editPage) {\n generateNewLocationDescription({ variables: { attributes: prepareData(values), locale: descriptionLanguage } });\n generateNewLocationTitle({ variables: { attributes: prepareData(values), locale: descriptionLanguage } });\n } else {\n generateLocationDescription({ variables: { locationId, locale: descriptionLanguage } });\n generateLocationTitle({ variables: { locationId, locale: descriptionLanguage } });\n }\n };\n\n\n const generatingDescriptionAndTitle =\n generatingDescription ||\n generatingTitle ||\n generatingNewLocationDescription ||\n generatingNewLocationTitle;\n\n\n const generateDescriptionButton =\n <div className=\"description-step__generate-button-wrapper col-xl-4 col-lg-3\">\n <div className={`description-step__generate-button provider-tooltip ${generatingDescriptionAndTitle ? 'disabled' : ''}`}\n data-tip={I18n.t('providers.locations.form.description_generate_tooltip')}\n data-class=\"provider-tooltip\"\n data-for={'generate-description-tooltip'}\n onClick={() => generatingDescriptionAndTitle ? null : generateDescription()}>\n { I18n.t('providers.locations.form.description_generate_button') }\n { generatingDescriptionAndTitle && <Loader size={18} left={0} top={0}/> }\n </div>\n <ReactTooltip\n border={true}\n borderColor=\"#FFA300\"\n effect='solid'\n id={'generate-description-tooltip'}\n place='bottom'\n type=\"light\" />\n </div>;\n\n\n return (\n <div className=\"description-step notranslate\" content=\"notranslate\" translate=\"no\">\n\n <InfoMessagePopup\n customClass={'error'}\n handleClose={() => setErrorMessagePopupIsOpen(false)}\n message={I18n.t('providers.locations.form.description_limit_exceeded_error')}\n visible={errorMessagePopupIsOpen}\n />\n\n <div className=\"location-form__section-wrapper\">\n <h3>\n { I18n.t('providers.locations.form.description') }\n\n <ScoreActionTooltip\n filled={qualityScore && qualityScore.description.score}\n label={qualityScore && I18n.t(`provider.form.quality_score.hint_label.description`)}\n />\n </h3>\n\n { values.description && translationsLocales.map(locale =>\n values.description[locale.name] &&\n <div className=\"description-step__preview-card\" key={`preview${locale.name}`}>\n\n <div className=\"description-step__preview-locale-wrapper\">\n <i className={`description-step__locale-icon fi fi-${locale.id}`} />\n <div className=\"description-step__locale-name\">{ locale.name }</div>\n </div>\n\n <div className=\"description-step__preview-headline\">\n { values.title[locale.name] }\n </div>\n\n <div className=\"description-step__preview-description\">\n <Truncate\n lines={2}\n ellipsis=\"...\"\n children={<p dangerouslySetInnerHTML={{__html: values.description[locale.name].replace(/<[^>]+>/g, '').replace(/ /g, '')}}/>}\n />\n </div>\n\n <div className=\"description-step__edit-button\">\n <SvgIco\n className=\"description-step__preview-delete\"\n name=\"delete_forever\"\n onClick={() => handleDelete(locale.name)}\n size={22} />\n <SvgIco\n className=\"description-step__preview-edit\"\n name=\"border_color\"\n onClick={() => setDescriptionLanguage(locale.name)}\n size={18} />\n </div>\n </div>\n )}\n\n <div className=\"description-step__wrapper\">\n\n <DropdownGroup\n children={generateDescriptionButton}\n disabled={languageOptions.length === 1}\n handleChange={handleSelectLanguage}\n label={I18n.t('providers.form.description_language')}\n name=\"descriptionLanguage\"\n options={languageOptions}\n value={descriptionLanguage}\n wrapperClass={`form-group--lang ${generatingDescriptionAndTitle ? 'disabled' : ''}`} />\n\n <div id=\"title\" />\n <div id={`title_${countryLocale}`} className={`description-step__title-wrapper${(generatingTitle || generatingNewLocationTitle) ? ' disabled' : ''}`}>\n <InputGroup\n error={errors[currentHeadlineName] || (errors.title && `${I18n.t('activerecord.attributes.location.title')} ${errors.title}`)}\n inputWrapperClass=\"notranslate col-xl-7 col-lg-7\"\n handleChange={handleHeadlineChange}\n label={`${I18n.t('activerecord.attributes.location.title')}${!requiredValuesFilled ? '*' : ''}`}\n name={currentHeadlineName}\n value={title[descriptionLanguage] || ''} />\n </div>\n\n <div className=\"form-group row\">\n\n <div className=\"form-label col-xl-3 col-lg-3\">\n <span>\n { I18n.t('activerecord.attributes.location.description') }{!requiredValuesFilled && '*'}\n </span>\n </div>\n\n <div className=\"col-xl-7 col-lg-7\">\n <div className=\"sectionScrollTarget\" id=\"description\" />\n <div className={`notranslate description-step__formatter-wrapper${errors[currentDescriptionName] || errors.description ? ' error' : ''}${(generatingDescription || generatingNewLocationDescription) ? ' disabled' : ''}`}\n id={`description_${countryLocale}`}\n content=\"notranslate\"\n translate=\"no\"\n key={`wrapper-${descriptionLanguage}`}>\n\n <SunEditor\n getSunEditorInstance={getSunEditorInstance}\n value={description[descriptionLanguage] || ''}\n setContents={description[descriptionLanguage] || ''}\n onChange={handleDescriptionChange}\n lang={handleEditorLanguage()}\n resizingBar={false}\n onInput={handleInput}\n options={{ pasteTagsWhitelist: 'p|ul|ol|li|sup|br|strong' }}\n name={currentDescriptionName}\n historyStackDelayTime={10}\n setOptions={{\n pasteTagsWhitelist: 'p|ul|ol|li|sup|br|strong',\n buttonList: [\n ['list', 'superscript', 'removeFormat', 'bold'],\n ['preview', 'undo', 'redo'],\n ],\n }} />\n </div>\n\n <div className={`description-step__description-counter${(generatingDescription || generatingNewLocationDescription) ? ' disabled' : ''}`}>\n { I18n.t('providers.form.description_text_length') }: { descriptionCounter }\n </div>\n\n { errors[currentDescriptionName] &&\n <div className=\"description-step__description-error-tooltip\">\n { errors[currentDescriptionName] }\n </div>\n }\n\n { !errors[currentDescriptionName] && errors.description &&\n <div className=\"description-step__description-error-tooltip\">\n { I18n.t('activerecord.attributes.location.description') } { errors.description }\n </div>\n }\n\n <p className=\"description-step__description-notice\"\n dangerouslySetInnerHTML={{__html: I18n.t('providers.locations.form.notice') }} />\n\n <div className=\"description-step__description-buttons\">\n <div className=\"description-step__button-clear\" onClick={handleClear}>\n { I18n.t('providers.form.description_clear_button') }\n </div>\n\n <div className=\"description-step__button-save\" onClick={handleSave}>\n { I18n.t('generic.save') }\n </div>\n </div>\n </div>\n\n { siteKey === 'dk' &&\n <div className=\"col-xl-10 col-lg-10 offset-1\">\n <div className=\"description-step__go-edit\">\n\n <a href={goEditUrl} className=\"description-step__go-edit-img\">\n <img src={GoEditImg} alt=\"GoEdit\" />\n </a>\n\n <div className=\"description-step__go-edit-headline\">\n { I18n.t('providers.goedit_banner.headline') }\n </div>\n\n <p className=\"description-step__go-edit-description\">\n { I18n.t('providers.locations.form.go_edit_part_above_image',\n { type: values.section === 'lease' || values.anonymous ? I18n.t('global.terms.lease_property') : I18n.t('global.terms.sale_property') })\n }\n <a href={goEditUrl} className=\"description-step__go-edit-link\" target=\"_blank\">\n { I18n.t('providers.goedit_banner.button_text') }\n </a>\n </p>\n\n </div>\n </div>\n }\n </div>\n </div>\n </div>\n\n\n <div className=\"location-form__section-wrapper\" style={{ marginTop: '16px', minHeight: '259px' }}>\n <div className=\"row\">\n <div className=\"col-xl-7 col-lg-8\">\n <h3>{ I18n.t('providers.locations.form.internal_header_text_new') }</h3>\n </div>\n\n { showLocationInternalDetailsText &&\n <div className=\"col-xl-5 col-lg-4\">\n <div className=\"form-group__tooltip description-step__internal-details-tooltip\"\n dangerouslySetInnerHTML={{ __html: I18n.t('activerecord.attributes.property.provider_website_link_tooltip') }} />\n </div>\n }\n </div>\n\n <InputGroup\n label={I18n.t('activerecord.attributes.location.internal_identifier')}\n name=\"internalIdentifier\"\n value={internalIdentifier || ''} />\n\n <InputGroup\n label={I18n.t('activerecord.attributes.property.provider_website_link_new')}\n name=\"providerWebsiteLink\"\n value={providerWebsiteLink} />\n </div>\n\n <NavigationButtons\n handleBack={() => handleSubmit(showFacts ? 'facts' : 'contacts')}\n handleNext={() => handleSubmit(editPage ? 'visuals' : null, editPage ? null : handleFormSubmit)}\n isSubmit={!editPage && siteKey !== 'dk'}\n requiredFieldsValid={() => handleUnsavedChanges() && validateRequiredFields()} />\n\n <BaseModal\n confirmButtonText={I18n.t('generic.save')}\n handleClose={() => setShowModal(false)}\n modalIsOpen={showModal}\n onConfirmClick={() => handleModal(true)}\n onRejectClick={() => handleModal(false)}\n rejectButtonText={I18n.t('providers.form.unsaved_changes_modal.decline_button')}\n textContent={I18n.t('providers.form.unsaved_changes_modal.text')} />\n\n </div>\n )\n});\n\n\nexport default Description;\n","import React, { useEffect, Fragment } from 'react';\nimport ReactTooltip from \"react-tooltip\";\n\nimport { SvgIco } from \"../../../../../SharedComponents/Icons\";\nimport DropdownGroup from \"../../../FormGroups/DropdownGroup\";\nimport RangeInputs from \"../../../FormGroups/RangeInputs\";\n\nimport './index.sass';\n\n\nconst CombinedKindForm = ({ areaUnit,\n combinedKinds,\n currentData,\n data,\n formattedCurrency,\n errors,\n handleErrors,\n initialData,\n mainKind,\n selectedKinds,\n updateSelectedKinds,\n updateValues }) => {\n\n\n useEffect(() => {\n (data.area || data.yearlyPricePerM2) && errors.includes(data.kind) && handleErrors(errors.filter(error => error !== data.kind));\n }, [data]);\n\n\n const capitalize = (name) => name.charAt(0).toUpperCase() + name.slice(1);\n\n\n const combinedKindsWithIndex = () => {\n const newCurrentKinds = [];\n const currentKindsIndex = currentData.findIndex(combinedKind => combinedKind.kind === data.kind);\n const selectedKindsIndex = selectedKinds.findIndex(combinedKind => combinedKind.kind === data.kind);\n // We need to copy all objects through iteration as we receive frozen objects from backend.\n currentData.map(location => newCurrentKinds.push({ ...location }));\n\n return { newCurrentKinds, currentKindsIndex, selectedKindsIndex };\n };\n\n\n const handleChange = (e) => {\n const field = e.target.name;\n const value = Number(e.target.value) || null;\n const { newCurrentKinds, currentKindsIndex, selectedKindsIndex } = combinedKindsWithIndex();\n const newSelectedKinds = [ ...selectedKinds ];\n\n\n newCurrentKinds[currentKindsIndex][field] = value;\n newSelectedKinds[selectedKindsIndex][field] = value;\n updateValues({ combinedLocationsAttributes: [ ...newCurrentKinds ] });\n updateSelectedKinds(newSelectedKinds);\n };\n\n\n const updateKind = (newKind) => {\n const { newCurrentKinds, currentKindsIndex, selectedKindsIndex } = combinedKindsWithIndex();\n const newSelectedKinds = [ ...selectedKinds ];\n const destroyKindIndex = initialData.findIndex(combinedKind => combinedKind.kind === data.kind);\n\n newSelectedKinds[selectedKindsIndex].kind = newKind;\n updateSelectedKinds(newSelectedKinds);\n\n if (destroyKindIndex >= 0) {\n newCurrentKinds[currentKindsIndex] = {\n ...newCurrentKinds[currentKindsIndex],\n area: null,\n yearlyPricePerM2: null,\n _destroy: 1,\n };\n newCurrentKinds.push(newSelectedKinds[selectedKindsIndex]);\n } else {\n newCurrentKinds[currentKindsIndex].kind = newKind;\n newCurrentKinds[currentKindsIndex]._destroy && delete newCurrentKinds[currentKindsIndex]._destroy;\n }\n\n updateValues({ combinedLocationsAttributes: [ ...newCurrentKinds ] });\n };\n\n\n const deleteKind = () => {\n const { newCurrentKinds, currentKindsIndex, selectedKindsIndex } = combinedKindsWithIndex();\n const newSelectedKinds = [ ...selectedKinds ];\n const destroyKindIndex = initialData.findIndex(combinedKind => combinedKind.kind === data.kind);\n\n selectedKindsIndex >= 0 && newSelectedKinds.splice(selectedKindsIndex, 1);\n updateSelectedKinds(newSelectedKinds);\n\n if (destroyKindIndex >= 0) {\n newCurrentKinds[currentKindsIndex] = {\n ...newCurrentKinds[currentKindsIndex],\n area: null,\n yearlyPricePerM2: null,\n _destroy: 1,\n };\n } else {\n currentKindsIndex >= 0 && newCurrentKinds.splice(currentKindsIndex, 1);\n }\n\n updateValues({ combinedLocationsAttributes: [ ...newCurrentKinds ] });\n };\n\n\n const currentKind = data.kind;\n const area = data.area || null;\n const yearlyPricePerM2 = data.yearlyPricePerM2 || null;\n const hasError = errors.includes(data.kind);\n const isMainKind = mainKind === currentKind;\n const kindsOptions = combinedKinds\n .filter(kind => !selectedKinds.some(selectedKind => selectedKind.kind === kind))\n .map(kind => ({ value: kind, label: capitalize(I18n.t(`global.models.combined_location.kinds.${ kind }.normal`)) }));\n\n\n return (\n <div className=\"combined-kind-form\" id={`combined-form-${data.kind}`}>\n\n { !isMainKind &&\n\n <Fragment>\n <span className=\"provider-tooltip combined-kind-form__delete-btn\"\n data-tip={I18n.t('generic.delete')}\n data-for=\"combined-delete-btn\">\n <SvgIco\n name=\"delete_outline\"\n size={24}\n onClick={deleteKind}\n className=\"\"\n />\n </span>\n <ReactTooltip\n border={true}\n borderColor=\"black\"\n effect='solid'\n id=\"combined-delete-btn\"\n place='top'\n type=\"light\"\n />\n </Fragment>\n }\n\n <div className=\"combined-kind-form__headline\">\n { isMainKind ? I18n.t('providers.locations.form.combined_locations_main_property') : I18n.t('providers.locations.form.combined_locations_additional_property') }\n </div>\n\n { isMainKind || !kindsOptions.length\n ?\n <div className=\"combined-kind-form__kind row\">\n <div className=\"col-lg-4\">\n { I18n.t('activerecord.attributes.property.category') }\n </div>\n <div className=\"col-lg-4\">\n { capitalize(I18n.t(`global.models.combined_location.kinds.${currentKind}.normal`)) }\n </div>\n </div>\n :\n <DropdownGroup\n handleChange={(option) => updateKind(option)}\n label={I18n.t('activerecord.attributes.property.category')}\n labelCol={4}\n name=\"section\"\n options={kindsOptions}\n value={{ value: currentKind, label: capitalize(I18n.t(`global.models.combined_location.kinds.${currentKind}.normal`)) }}\n />\n }\n\n <RangeInputs\n functionAttr={currentKind}\n handleChange={(e) => handleChange(e)}\n hideSecondField={true}\n formGroupClass={hasError && 'error'}\n label={ I18n.t('apps.lb_showroom.detailed.facts.area_label') }\n labelCol={4}\n name={`area`}\n value={area}\n units={areaUnit}\n useOriginName={true} />\n\n <RangeInputs\n functionAttr={currentKind}\n handleChange={(e) => handleChange(e)}\n hideSecondField={true}\n formGroupClass={hasError && 'error'}\n label={ I18n.t('activerecord.attributes.combined_location.yearly_price_per_m2') }\n labelCol={4}\n name={`yearlyPricePerM2`}\n value={yearlyPricePerM2}\n units={`${ formattedCurrency }/${areaUnit}`}\n useOriginName={true} />\n\n\n { hasError &&\n <div className=\"row\">\n <div className=\"combined-kind-form__error-message col-lg-8 offset-lg-4\">\n { I18n.t('providers.locations.form.combined_locations_error') }\n </div>\n </div>\n }\n\n </div>\n )\n};\n\n\nexport default CombinedKindForm;\n","import React, { Fragment, useState, useContext, useMemo, useEffect } from 'react';\nimport DateTimePicker from 'react-datetime-picker';\nimport ReactTooltip from \"react-tooltip\";\n\nimport Checkbox from '../../../../SharedComponents/Forms/CheckBox';\nimport { SvgIco } from \"../../../../SharedComponents/Icons\";\nimport SecondaryKindsInfoModal from \"../../../Modals/SecondaryKindsInfoModal\";\nimport RangeInputs from '../../FormGroups/RangeInputs';\nimport RadioFormGroup from '../../FormGroups/RadioFormGroup';\nimport DropdownGroup from '../../FormGroups/DropdownGroup';\nimport NavigationButtons from '../../NavigationButtons';\nimport InputGroup from '../../FormGroups/InputGroup';\nimport { ScoreActionTooltip } from \"../../../ScoreWidget\";\nimport { Context } from '../../index';\nimport CombinedKindForm from \"./CombinedKindForm\";\n\nimport './index.sass';\n\n\nconst Economy = () => {\n\n const {\n capitalize,\n currencyList,\n currentStepRef,\n defaultCurrencyId,\n errors,\n handleChange,\n leaseKinds,\n leasePrices,\n handleCheckboxesSelect,\n parkingTypes,\n qualityScore,\n saleKinds,\n saleSections,\n scrollToTarget,\n setErrors,\n showSecondaryKindsMessage,\n siteKey,\n updateValues,\n validateFields,\n validateRequiredFields,\n values,\n secondaryKindsMapping,\n suitableForKindsMapping,\n } = useContext(Context);\n\n const {\n auctionNumber,\n combinedLocationsAttributes,\n currencyId,\n dateOfAuction,\n enableCombinedLocations,\n isRentIncludeOperationalCost,\n kind,\n parkingType,\n secondaryKinds,\n section,\n suitableForKinds,\n } = values;\n\n const [annualPricesOpen, setAnnualPricesOpen] = useState(false);\n const [annualPricesM2Open, setAnnualPricesM2Open] = useState(true);\n const [combinedKindsErrors, setCombinedKindsErrors] = useState([]);\n const [initialCombinedKinds, setInitialCombinedKinds] = useState([]);\n const [secondaryKindModalIsOpen, setSecondaryKindModalIsOpen] = useState(false);\n const [visibleCombinedKinds, setVisibleCombinedKinds] = useState([]);\n\n const countryAlpha2 = values.countryAlpha2 || null;\n const areaUnit = countryAlpha2 === 'us' ? 'ft²' : 'm²';\n const currencies = JSON.parse(currencyList);\n const sectionLease = section === 'lease' || section === 'anonymous';\n const locationKinds = sectionLease ? leaseKinds : saleKinds;\n const filterLocationKinds = values.countryAlpha2 !== 'dk' ? locationKinds.filter(kind => kind !== 'parking') : locationKinds;\n\n const kindsOptions =\n filterLocationKinds.map(kind =>\n ({ value: kind, label: I18n.t(`generic.${kind}`) })\n );\n\n const saleSectionsOptions =\n saleSections.map(section =>\n ({ value: section, label: capitalize(I18n.t(`generic.models.property.category.${section}`, { count: 1 }))})\n );\n\n const parkingTypesOptions =\n parkingTypes.map(type =>\n ({ value: type, label: I18n.t(`providers.locations.form.parking_types.${type}`) })\n );\n\n const currencyOptions =\n currencies.map(currency =>\n ({ value: `${currency.id}`, label: currency.name })\n );\n\n const combinedKinds =\n kind === 'office'\n ? ['office', 'warehouse', 'store', 'showroom']\n : kind === 'store'\n ? ['store', 'warehouse', 'office', 'showroom']\n : kind === 'warehouse'\n ? ['warehouse', 'office', 'showroom']\n : null;\n\n const formattedCurrency = currencies.filter(item => {\n const currentCurrency = (currencyId && Number(currencyId)) || defaultCurrencyId.id;\n return item.id === currentCurrency;\n })[0].formatted;\n\n const defaultSection = saleSectionsOptions.some(option => option.value === section) ? section : '';\n\n\n useEffect(() => {\n if (enableCombinedLocations) {\n const combinedKinds = [];\n const initialKinds = [];\n\n combinedLocationsAttributes && combinedLocationsAttributes.map(kind => {\n (kind.hasOwnProperty('area') || kind.hasOwnProperty('yearlyPricePerM2')) && combinedKinds.push({ ...kind });\n initialKinds.push(kind);\n });\n\n setVisibleCombinedKinds(checkCombinedKindsOrder(combinedKinds));\n setInitialCombinedKinds(initialKinds);\n }\n }, []);\n\n\n const additionalCombinedKindsAvailable = useMemo(\n () =>\n visibleCombinedKinds && visibleCombinedKinds.length && combinedKinds\n ? !combinedKinds.every(kind => visibleCombinedKinds.find(attr => attr.kind === kind))\n : true,\n [visibleCombinedKinds],\n );\n\n\n const checkCombinedKindsOrder = (initialKinds, newLocationKind) => {\n // Put main combined kind to the top in case location kind change\n if (enableCombinedLocations && visibleFor(['office', 'warehouse', 'store'])) {\n const updatedCombinedKinds = [];\n const combinedKinds = initialKinds || visibleCombinedKinds;\n const mainLocationKind = newLocationKind || kind;\n\n combinedKinds && combinedKinds.map(kind =>\n (kind.hasOwnProperty('area') || kind.hasOwnProperty('yearlyPricePerM2')) && updatedCombinedKinds.push({ ...kind }));\n\n const mainKindIndex = updatedCombinedKinds.findIndex(combinedKind => combinedKind.kind === mainLocationKind);\n const mainKind = (mainKindIndex >= 0 && updatedCombinedKinds[mainKindIndex]) || { mainLocationKind };\n\n mainKindIndex >= 0 && updatedCombinedKinds.splice(mainKindIndex, 1);\n updatedCombinedKinds.unshift(mainKind);\n\n return initialKinds ? updatedCombinedKinds : setVisibleCombinedKinds(updatedCombinedKinds);\n }\n };\n\n\n const toCamelCase = (value) =>\n value.replace(/_([a-z])/g, (_, letter) => letter.toUpperCase());\n\n\n const secondaryKindsList = () =>\n secondaryKindsMapping[toCamelCase(section)]?.[toCamelCase(kind)];\n\n\n const suitableForKindsList = () =>\n suitableForKindsMapping[toCamelCase(section)]?.[toCamelCase(kind)]\n\n\n const handleKindChange = (value, name) => {\n Object.keys(errors).length && setErrors({});\n secondaryKinds.length && handleChange([], 'secondaryKinds');\n parkingType && handleChange(null, 'parkingType');\n handleChange(value, name);\n };\n\n\n const handleSecondaryKindsChange = (e, name) => {\n showSecondaryKindsMessage\n && invisibleFor(['virtual_office', 'parking', 'coworking', 'meeting_room'])\n && (!secondaryKinds || secondaryKinds.length === 0)\n && setSecondaryKindModalIsOpen(true);\n\n handleCheckboxesSelect(e, name);\n };\n\n\n const addNewCombinedKind = () => {\n\n const newKind = (visibleCombinedKinds && visibleCombinedKinds.length)\n ? combinedKinds.find(kind => !visibleCombinedKinds.some(attr => attr.kind === kind)) || null\n : combinedKinds[0];\n\n if (newKind) {\n const updatedCombinedKinds = [ ...visibleCombinedKinds ];\n const currentKindsKindIndex = combinedLocationsAttributes && combinedLocationsAttributes.findIndex(attr => attr.kind === newKind);\n const newCombinedLocationAttributes = [];\n\n // We need to copy all objects through iteration as we receive frozen objects from backend.\n combinedLocationsAttributes && combinedLocationsAttributes.map(kind => newCombinedLocationAttributes.push({ ...kind }));\n updatedCombinedKinds.push({ kind: newKind });\n setVisibleCombinedKinds(updatedCombinedKinds);\n\n if (!currentKindsKindIndex || currentKindsKindIndex < 0) {\n newCombinedLocationAttributes.push({ kind: newKind });\n updateValues({ combinedLocationsAttributes: [ ...newCombinedLocationAttributes ] });\n } else {\n newCombinedLocationAttributes[currentKindsKindIndex]._destroy\n && delete newCombinedLocationAttributes[currentKindsKindIndex]._destroy;\n updateValues({ combinedLocationsAttributes: [ ...newCombinedLocationAttributes ] });\n }\n }\n };\n\n\n const errorsHandler = (errors) => {\n const errorField = document.getElementById(Object.keys(errors)[0]);\n const annualPricesWrapper = document.getElementById('annual-prices');\n const annualM2pricesWrapper = document.getElementById('annual-prices-m2');\n const openAnnualPrices = annualPricesWrapper && annualPricesWrapper.contains(errorField) && !annualPricesOpen;\n const openAnnualM2Prices = annualM2pricesWrapper && annualM2pricesWrapper.contains(errorField) && !annualPricesM2Open;\n\n if (openAnnualPrices || openAnnualM2Prices) {\n openAnnualPrices ? setAnnualPricesOpen(true) : setAnnualPricesM2Open(true);\n setTimeout(scrollToTarget(document.getElementById(Object.keys(errors)[0])), 500);\n } else {\n scrollToTarget(document.getElementById(Object.keys(errors)[0]))\n }\n };\n\n const validateCombinedLocations = () => {\n if (enableCombinedLocations) {\n const errors = [];\n\n visibleCombinedKinds && visibleCombinedKinds.length &&\n visibleCombinedKinds.map(combinedKind =>\n combinedKinds.includes(combinedKind.kind) && !combinedKind.area && !combinedKind.yearlyPricePerM2 && errors.push(combinedKind.kind)\n );\n\n setCombinedKindsErrors(errors);\n errors.length && setTimeout(scrollToTarget(document.getElementById(`combined-form-${errors[0]}`)), 500);\n\n return !errors.length;\n } else {\n return true;\n }\n };\n\n const handleValidate = (nextStep) => validateRequiredFields(errorsHandler) && validateCombinedLocations() && validateFields(nextStep, null, errorsHandler);\n\n const handleChangeTime = (date) => handleChange(date ? date.toISOString() : date, 'dateOfAuction');\n\n const visibleFor = (kinds) => kinds.indexOf(sectionLease ? kind : section) >= 0;\n\n const invisibleFor = (kinds) => kinds.indexOf(sectionLease ? kind : section) < 0;\n\n const showUptoField = (name) => !(values[`${name}To`] || values.areaTo);\n\n\n return (\n <div className=\"economy-step\" ref={currentStepRef}>\n\n <SecondaryKindsInfoModal\n handleCancel={() => {\n handleChange([], 'secondaryKinds');\n setSecondaryKindModalIsOpen(false);\n }}\n handleClose={() => setSecondaryKindModalIsOpen(false)}\n showModal={secondaryKindModalIsOpen}\n />\n\n <div className=\"location-form__section-wrapper\">\n { !sectionLease &&\n <DropdownGroup\n handleChange={handleChange}\n label={I18n.t('activerecord.attributes.property.category')}\n name=\"section\"\n options={saleSectionsOptions}\n value={defaultSection} />\n }\n\n <DropdownGroup\n handleChange={(value, name) => {\n visibleCombinedKinds.length && checkCombinedKindsOrder(false, value);\n handleKindChange(value, name);\n }}\n label={I18n.t('activerecord.attributes.property.kind')}\n labelTooltip={I18n.t('provider.form.economy.kind_tooltip')}\n name=\"kind\"\n options={kindsOptions}\n required={true}\n tooltipClass={showSecondaryKindsMessage && 'relative'}\n value={kind || kindsOptions[0]} />\n\n { kind === 'parking' &&\n <DropdownGroup\n error={errors.parkingType}\n handleChange={handleKindChange}\n label={I18n.t('activerecord.attributes.location.parking_type')}\n name=\"parkingType\"\n options={parkingTypesOptions}\n required={true}\n value={parkingType} />\n }\n\n { secondaryKindsList() && secondaryKindsList().length > 0 &&\n <div className=\"form-group row\">\n <div className=\"form-label form-label--align-top col-xl-3 col-lg-3\">\n <span>{ I18n.t('activerecord.attributes.location.secondary_kinds') }</span>\n </div>\n\n <div className=\"checkboxes-wrapper col-xl-3 col-lg-4\">\n { secondaryKindsList().map(kind =>\n <Checkbox\n field=\"secondaryKinds\"\n handleChange={handleSecondaryKindsChange}\n key={`secondary-${kind}`}\n label={capitalize(I18n.t(`global.models.location.kinds.${kind}.short`, { count: 1 }))}\n name={kind}\n value={secondaryKinds && secondaryKinds.includes(kind)} />\n )}\n </div>\n { showSecondaryKindsMessage && invisibleFor(['virtual_office', 'parking', 'coworking', 'meeting_room']) &&\n <Fragment>\n <div className=\"col-xl-1 col-lg-1\" />\n <div className=\"col-xl-5 col-lg-4\">\n <div className=\"form-group__tooltip secondary-kinds\">\n <h3>{ I18n.t('providers.locations.secondary_kind_payment.header_new') }</h3>\n <p dangerouslySetInnerHTML={{ __html: I18n.t('providers.locations.secondary_kind_payment.body_new') }} />\n </div>\n </div>\n </Fragment>\n }\n </div>\n }\n\n { suitableForKindsList() && suitableForKindsList().length > 0 &&\n <div className=\"form-group row\">\n <div className=\"form-label form-label--align-top col-xl-3 col-lg-3\">\n <span style={{ marginRight: '8px' }}>{ I18n.t('generic.suitable_for') }</span>\n <span\n className=\"provider-tooltip\"\n data-tip={I18n.t('providers.locations.form.suitable_for_kinds.other.helper')}\n data-class=\"provider-tooltip\"\n data-for=\"suitable-for-tooltip\">\n <SvgIco name=\"info_outline\" size={24} />\n </span>\n\n <ReactTooltip\n border={true}\n borderColor=\"black\"\n effect='solid'\n id=\"suitable-for-tooltip\"\n place='right'\n type=\"light\" />\n </div>\n\n <div className=\"checkboxes-wrapper col-xl-3 col-lg-4\">\n { suitableForKindsList().map(kind =>\n <Checkbox\n field=\"suitableForKinds\"\n handleChange={handleCheckboxesSelect}\n key={`suitable-${kind}`}\n label={capitalize(I18n.t(`global.models.location.kinds.${kind}.short`, { count: 1 }))}\n name={kind}\n value={suitableForKinds && suitableForKinds.includes(kind)} />\n )}\n </div>\n </div>\n }\n </div>\n\n <div className=\"location-form__section-wrapper\" style={{ marginBottom: 0, paddingBottom: '8px' }}>\n <div className=\"sectionScrollTarget\" id=\"prices\" />\n <div className=\"step-header\">\n { I18n.t('providers.locations.form.economy') }\n\n <ScoreActionTooltip\n filled={qualityScore && qualityScore.price.score}\n label={qualityScore && I18n.t(`provider.form.quality_score.hint_label.price`)}\n />\n </div>\n\n { siteKey !== 'dk' &&\n <DropdownGroup\n handleChange={(value, field) => handleChange(Number(value), field)}\n label={I18n.t('activerecord.attributes.location.currency')}\n name=\"currencyId\"\n options={currencyOptions}\n value={(currencyId && `${currencyId}`) || `${defaultCurrencyId.id}`} />\n }\n\n { invisibleFor(['virtual_office', 'parking']) &&\n <RangeInputs\n label={`${I18n.t('apps.lb_showroom.detailed.facts.area_label')}`}\n name=\"area\"\n requiredFrom={true}\n unitsPosition=\"top\"\n units={areaUnit} />\n }\n\n { leasePrices && kind === \"store\" &&\n <RangeInputs\n hideSecondField={true}\n label={I18n.t('activerecord.attributes.location.disposal_price')}\n name=\"disposalPrice\"\n units={formattedCurrency}\n useOriginName={true} />\n }\n\n { visibleFor(['parking']) &&\n <RangeInputs\n hideSecondField={showUptoField('amountOfSpaces')}\n label={I18n.t('providers.locations.form.amount_of_spaces')}\n name=\"amountOfSpaces\"\n requiredFrom={true} />\n }\n\n { visibleFor(['coworking', 'business_center']) &&\n <RangeInputs\n hideSecondField={showUptoField('workstationsCount')}\n label={I18n.t('providers.locations.form.workstations_count')}\n name=\"workstationsCount\" />\n }\n\n { sectionLease && visibleFor(['office', 'coworking', 'meeting_room', 'business_center']) &&\n <Fragment>\n <RangeInputs\n hideSecondField={showUptoField('employeesCount')}\n label={I18n.t('views.shared.employee_count')}\n name=\"employeesCount\" />\n\n <RadioFormGroup\n field=\"employeesCountVisible\"\n htmlTooltip={true}\n label={I18n.t('generic.visible')}\n tooltip={I18n.t('providers.locations.popover.number_of_employees')} />\n </Fragment>\n }\n\n { invisibleFor(['virtual_office', 'parking']) &&\n <Fragment>\n <div className=\"form-group row\">\n <div className=\"form-label form-label--bold step-subheader col-xl-3 col-lg-3\">\n { !sectionLease &&\n <span>{ I18n.t('apps.lb_showroom.detailed.economy.annual_prices_m2') }</span>\n }\n { sectionLease &&\n <div className=\"economy-step__expand-btn-wrapper\" onClick={() => setAnnualPricesM2Open(!annualPricesM2Open)}>\n <span>{ kind === 'meeting_room' ? I18n.t('generic.price') : I18n.t('apps.lb_showroom.detailed.economy.annual_prices_m2') }</span>\n { annualPricesM2Open\n ? <SvgIco name=\"expand-less\" size={18} />\n : <SvgIco name=\"expand-more\" size={18} />\n }\n </div>\n }\n </div>\n </div>\n\n <div id=\"annual-prices-m2\" className={annualPricesM2Open ? 'uncollapsed' : ''}>\n { visibleFor(['coworking', 'business_center']) &&\n <RangeInputs\n hideSecondField={showUptoField('workstationCostPerMonth')}\n label={I18n.t('providers.locations.form.workstation_cost_per_month')}\n name=\"workstationCostPerMonth\" />\n }\n\n { sectionLease &&\n <Fragment>\n { visibleFor(['meeting_room']) &&\n <RangeInputs\n hideSecondField={showUptoField('hourlyRentWithCents')}\n label={I18n.t('providers.locations.form.rent_price_per_hour')}\n name=\"hourlyRentWithCents\"\n units={`${ formattedCurrency }`} />\n }\n\n { invisibleFor(['meeting_room']) &&\n <Fragment>\n <RangeInputs\n float={true}\n handleChange={(e, name) => handleChange(e.target.value, name)}\n hideSecondField={showUptoField('yearlyRentPerM2WithCents')}\n label={ I18n.t('apps.lb_showroom.detailed.economy.price_per_year') }\n name=\"yearlyRentPerM2WithCents\"\n tooltip={ I18n.t('providers.locations.form.money_row.yearly_rent_per_m2_help') }\n units={ `${ formattedCurrency }/${areaUnit}` }\n />\n\n <RadioFormGroup\n field=\"yearlyRentPerM2AmountFlexible\"\n label={ I18n.t('providers.locations.form.yearly_rent_per_m2_amount_flexible') }\n tooltip={ I18n.t('providers.locations.popover.yearly_rent_per_m2_amount_flexible') } />\n\n { siteKey === 'dk' &&\n <RadioFormGroup\n field=\"isRentIncludeOperationalCost\"\n label={ I18n.t('activerecord.attributes.location.is_rent_include_operational_cost') } />\n }\n\n { siteKey === 'dk' && sectionLease && visibleFor(['office', 'warehouse', 'store']) &&\n <Fragment>\n <RadioFormGroup\n field=\"enableCombinedLocations\"\n label={I18n.t('activerecord.attributes.location.enable_combined_locations')} />\n\n { enableCombinedLocations &&\n <div className=\"economy-step__combined-locations\">\n\n { visibleCombinedKinds && visibleCombinedKinds.length\n ? visibleCombinedKinds.map(combinedKind =>\n combinedKinds.includes(combinedKind.kind) &&\n <CombinedKindForm\n areaUnit={areaUnit}\n combinedKinds={combinedKinds}\n currentData={combinedLocationsAttributes}\n data={combinedKind}\n formattedCurrency={formattedCurrency}\n errors={combinedKindsErrors}\n handleErrors={setCombinedKindsErrors}\n initialData={initialCombinedKinds}\n key={`combined-kind-${combinedKind.kind}`}\n mainKind={kind}\n selectedKinds={visibleCombinedKinds}\n updateValues={updateValues}\n updateSelectedKinds={setVisibleCombinedKinds}\n />\n )\n : (!combinedLocationsAttributes || !combinedLocationsAttributes.length) && addNewCombinedKind()\n }\n\n { additionalCombinedKindsAvailable &&\n <div className=\"economy-step__combined-locations-add-btn\"\n onClick={() => validateCombinedLocations() && addNewCombinedKind()}>\n + { I18n.t('providers.locations.form.combined_locations_add_property') }\n </div>\n }\n\n </div>\n }\n </Fragment>\n }\n\n { !(siteKey === 'dk' && isRentIncludeOperationalCost) &&\n <RangeInputs\n hideSecondField={showUptoField('yearlyOperationalCostPerM2WithCents')}\n label={ I18n.t('apps.lb_showroom.detailed.economy.operational_per_m2_per_year') }\n name=\"yearlyOperationalCostPerM2WithCents\"\n units={ `${ formattedCurrency }/${areaUnit}` } />\n }\n\n <RangeInputs\n hideSecondField={showUptoField('yearlyHeatingCostPerM2WithCents')}\n label={ I18n.t('apps.lb_showroom.detailed.economy.heating_per_m2_per_year') }\n name=\"yearlyHeatingCostPerM2WithCents\"\n units={ `${ formattedCurrency }/${areaUnit}` } />\n\n <RangeInputs\n hideSecondField={showUptoField('yearlyWaterCostPerM2WithCents')}\n label={ I18n.t('apps.lb_showroom.detailed.economy.water_per_m2_per_year') }\n name=\"yearlyWaterCostPerM2WithCents\"\n units={ `${ formattedCurrency }/${areaUnit}` } />\n\n <RangeInputs\n hideSecondField={showUptoField('yearlyElectricityCostPerM2WithCents')}\n label={ I18n.t('apps.lb_showroom.detailed.economy.electricity_per_m2_per_year') }\n name=\"yearlyElectricityCostPerM2WithCents\"\n units={ `${ formattedCurrency }/${areaUnit}` } />\n </Fragment>\n }\n </Fragment>\n }\n </div>\n </Fragment>\n }\n\n { sectionLease && invisibleFor(['meeting_room']) &&\n <Fragment>\n <div className=\"form-group row\">\n <div className=\"form-label form-label--bold step-subheader col-xl-3 col-lg-3\">\n { visibleFor(['virtual_office', 'parking']) &&\n <span>{ I18n.t('apps.lb_showroom.detailed.economy.annual_prices') }</span>\n }\n { invisibleFor(['virtual_office', 'parking']) &&\n <div className=\"economy-step__expand-btn-wrapper\" onClick={() => setAnnualPricesOpen(!annualPricesOpen)}>\n <span>{ I18n.t('apps.lb_showroom.detailed.economy.annual_prices') }</span>\n { annualPricesOpen\n ? <SvgIco name=\"expand-less\" size={18} />\n : <SvgIco name=\"expand-more\" size={18} />\n }\n </div>\n }\n </div>\n </div>\n\n { invisibleFor(['virtual_office', 'parking']) &&\n\n <div id=\"annual-prices\" className={annualPricesOpen ? 'uncollapsed' : ''}>\n <RangeInputs\n hideSecondField={showUptoField('annualRentWithCents')}\n label={isRentIncludeOperationalCost ? I18n.t('apps.lb_showroom.detailed.economy.annual_prices_m2_including_operational') : I18n.t('apps.lb_showroom.detailed.economy.annual_rent')}\n name=\"annualRentWithCents\"\n units={formattedCurrency} />\n\n { !(siteKey === 'dk' && isRentIncludeOperationalCost) &&\n <RangeInputs\n hideSecondField={showUptoField('annualOperationalCostWithCents')}\n label={I18n.t('apps.lb_showroom.detailed.economy.annual_operational_cost')}\n name=\"annualOperationalCostWithCents\"\n units={formattedCurrency} />\n }\n\n <RangeInputs\n hideSecondField={showUptoField('annualHeatingCostWithCents')}\n label={I18n.t('apps.lb_showroom.detailed.economy.annual_heating_cost')}\n name=\"annualHeatingCostWithCents\"\n units={formattedCurrency} />\n\n <RangeInputs\n hideSecondField={showUptoField('annualWaterCostWithCents')}\n label={I18n.t('apps.lb_showroom.detailed.economy.annual_water_cost')}\n name=\"annualWaterCostWithCents\"\n units={formattedCurrency} />\n\n <RangeInputs\n hideSecondField={showUptoField('annualElectricityCostWithCents')}\n label={I18n.t('apps.lb_showroom.detailed.economy.annual_electricity_cost')}\n name=\"annualElectricityCostWithCents\"\n units={formattedCurrency} />\n\n <RangeInputs\n hideSecondField={showUptoField('annualTotalCostWithCents')}\n label={I18n.t('apps.lb_showroom.detailed.economy.annual_rent_and_service_cost')}\n name=\"annualTotalCostWithCents\"\n units={formattedCurrency} />\n </div>\n }\n\n { visibleFor(['virtual_office', 'parking']) &&\n <RangeInputs\n hideSecondField={showUptoField('monthlyRentPerSpaceWithCents')}\n label={I18n.t('apps.lb_showroom.detailed.economy.monthly_rent_per_space')}\n name=\"monthlyRentPerSpaceWithCents\"\n units={formattedCurrency} />\n }\n </Fragment>\n }\n\n { !sectionLease &&\n <Fragment>\n { invisibleFor(['foreclosure']) &&\n <RangeInputs\n hideSecondField={true}\n label={I18n.t('apps.lb_showroom.detailed.economy.sale_price')}\n name={`salePrice`}\n useOriginName={true} />\n }\n\n <RangeInputs\n hideSecondField={true}\n label={I18n.t('activerecord.attributes.location.lot_area')}\n name={`lotArea`}\n useOriginName={true} />\n\n <RangeInputs\n hideSecondField={true}\n label={I18n.t('activerecord.attributes.location.year_built')}\n name={`yearBuilt`}\n useOriginName={true} />\n\n <RangeInputs\n hideSecondField={true}\n label={I18n.t('apps.lb_showroom.detailed.economy.yearly_rental_income')}\n name={`yearlyRentalIncome`}\n useOriginName={true} />\n\n <RangeInputs\n hideSecondField={true}\n label={I18n.t('apps.lb_showroom.detailed.economy.fixed_annual_operational_cost')}\n name={`fixedAnnualOperationalCost`}\n useOriginName={true} />\n\n <RangeInputs\n hideSecondField={true}\n label={I18n.t('apps.lb_showroom.detailed.economy.deposit_and_prepaid_rent')}\n name={`depositAndPrepaidRent`}\n useOriginName={true} />\n\n { invisibleFor(['foreclosure']) &&\n <RangeInputs\n hideSecondField={true}\n label={I18n.t('apps.lb_showroom.detailed.economy.return_rate_new')}\n name={`returnRate`}\n useOriginName={true} />\n }\n\n { visibleFor(['foreclosure']) &&\n <Fragment>\n <div className=\"form-group row\">\n <div className=\"form-label form-label--align-top col-xl-3 col-lg-3\">\n <span>{ I18n.t('provider.form.economy.auction_date') }</span>\n </div>\n\n <div className=\"checkboxes-wrapper col-xl-3 col-lg-4\">\n <DateTimePicker\n calendarIcon={<SvgIco name=\"calendar_today\" size={20} />}\n clearIcon={<SvgIco name=\"close\" size={24} />}\n minDate={new Date()}\n onChange={handleChangeTime}\n value={dateOfAuction ? new Date(dateOfAuction) : null} />\n </div>\n </div>\n\n <InputGroup\n label={I18n.t('provider.form.economy.auction_number')}\n name={`auctionNumber`}\n value={auctionNumber || ''} />\n\n </Fragment>\n }\n\n </Fragment>\n }\n </div>\n\n <NavigationButtons\n handleBack={() => handleValidate('location')}\n handleNext={() => handleValidate('contacts')}\n requiredFieldsValid={() => validateRequiredFields(errorsHandler) && validateCombinedLocations()} />\n\n </div>\n )\n};\n\n\nexport default Economy;\n","import React, { useContext, Fragment } from 'react';\n\nimport Checkbox from '../../../SharedComponents/Forms/CheckBox';\nimport EnergyRatingImg from '../../../../src/images/provider/energy-rating.svg';\nimport RadioFormGroup from '../FormGroups/RadioFormGroup';\nimport DropdownGroup from '../FormGroups/DropdownGroup';\nimport { ScoreActionTooltip } from \"../../ScoreWidget\";\nimport NavigationButtons from '../NavigationButtons';\nimport { Context } from '../index';\n\nimport './FactsAndFacilities.sass';\n\n\nconst FactsAndFacilities = () => {\n\n const {\n countryAlpha2,\n energyRatingList,\n energyRatingListDk,\n energyRatingUrl,\n energyCertificateLevelsList,\n facilitiesList,\n handleChange,\n handleCheckboxesSelect,\n qualityScore,\n siteKey,\n validateFields,\n values,\n } = useContext(Context);\n\n const { energyCertificateLevelsObject, energyRating, exemptedFromEnergyRating, facilityIds, hasEnergyCertificateLevels } = values;\n const isDk = siteKey === 'dk' || countryAlpha2 === 'dk' || (values.countryAlpha2 && values.countryAlpha2 === 'dk');\n const energyRatingOptions = (isDk ? energyRatingListDk : energyRatingList).map(item => ({ value: item, label: item }));\n const energyCertificatesOptions = energyCertificateLevelsList && Object.keys(energyCertificateLevelsList).map(certificate =>\n ({\n name: certificate.replace(/[A-Z]/g, letter => `_${letter.toLowerCase()}`),\n label: I18n.t(`energy_certificate.name.${certificate.replace(/[A-Z]/g, letter => `_${letter.toLowerCase()}`)}`),\n options: [ { value: 0, label: I18n.t('helpers.select.prompt') }, ...energyCertificateLevelsList[certificate].map(option => ({ value: option.id, label: option.label })) ],\n })\n );\n\n\n const handleEnergyCertificates = (certificateId, certificateGroup) => {\n const newCertificates = { ...energyCertificateLevelsObject };\n\n certificateId === 0\n ? delete newCertificates[certificateGroup]\n : newCertificates[certificateGroup] = certificateId;\n\n handleChange(newCertificates, 'energyCertificateLevelsObject');\n };\n\n\n return (\n <div className=\"facts-step\">\n\n <div className=\"location-form__section-wrapper\">\n <div className=\"sectionScrollTarget\" id=\"energyRating\" />\n <div className=\"form-title\">\n { I18n.t('providers.locations.form.energy_rating') }\n\n <ScoreActionTooltip\n filled={qualityScore && qualityScore.energyRating.score}\n label={qualityScore && I18n.t(`provider.form.quality_score.hint_label.energy_rating`)}\n />\n </div>\n\n <RadioFormGroup\n field=\"exemptedFromEnergyRating\"\n label={I18n.t('activerecord.attributes.location.exempted_from_energy_rating')} />\n\n { !exemptedFromEnergyRating &&\n <DropdownGroup\n handleChange={handleChange}\n label={I18n.t('activerecord.attributes.location.energy_rating')}\n name=\"energyRating\"\n options={energyRatingOptions}\n value={energyRating} />\n }\n </div>\n\n <div className=\"location-form__section-wrapper\">\n <div className=\"sectionScrollTarget\" id=\"facilities\" />\n <div className=\"form-title\">\n { I18n.t('apps.lb_showroom.detailed.tabs.facilities') }\n\n <ScoreActionTooltip\n filled={qualityScore && qualityScore.facilities.score}\n label={qualityScore && I18n.t(`provider.form.quality_score.hint_label.facilities`)}\n />\n </div>\n\n <div className=\"row\">\n <div className=\"facts-step__facilities-wrapper col-xl-12 col-lg-12\">\n { facilitiesList.map(facility =>\n <Checkbox\n field=\"facilityIds\"\n handleChange={(e, value) => handleCheckboxesSelect(e, value, true)}\n key={facility.key}\n label={facility.name}\n name={`${facility.id}`}\n value={facilityIds && facilityIds.includes(facility.id)} />\n )}\n </div>\n </div>\n </div>\n\n\n <div className=\"location-form__section-wrapper\" style={{ marginBottom: 0 }}>\n { isDk &&\n <Fragment>\n <div className=\"form-title\">\n { I18n.t('generic.certifications') }\n </div>\n <RadioFormGroup\n field=\"hasEnergyCertificateLevels\"\n label={I18n.t('provider.form.facts.certifications.label')}\n />\n\n { hasEnergyCertificateLevels && energyCertificatesOptions &&\n <div className=\"facts-step__energy-certificates-wrapper\">\n { energyCertificatesOptions.map(certificate =>\n <div className=\"facts-step__energy-certificates-dropdown-wrapper\" key={`certificate-${certificate.name}`}>\n <DropdownGroup\n handleChange={handleEnergyCertificates}\n label={certificate.label}\n name={certificate.name}\n options={certificate.options}\n value={\n ( energyCertificateLevelsObject\n && Object.keys(energyCertificateLevelsObject).length\n && certificate.options.find(option => option.value === energyCertificateLevelsObject[certificate.name])\n )\n || certificate.options[0]\n }\n />\n </div>\n )}\n </div>\n }\n </Fragment>\n }\n\n <div className=\"form-title\">\n { I18n.t('activerecord.attributes.location.is_built') }\n </div>\n\n <RadioFormGroup field=\"isBuilt\" />\n </div>\n\n <NavigationButtons\n handleBack={() => validateFields('contacts')}\n handleNext={() => validateFields('description')} />\n\n </div>\n )\n};\n\n\nexport default FactsAndFacilities;\n","import React, { useState, useContext, useEffect } from \"react\";\nimport { GoogleMap, InfoWindow, Marker, withGoogleMap } from \"react-google-maps\";\nimport { geocodeByLatLng, geocodeByPlaceId } from 'react-google-places-autocomplete';\n\nimport mapPin from '../../../../../src/images/provider/map-pin.svg';\nimport mapStyles from '../../../../../src/stylesheets/map_styles.json';\nimport { Context } from '../../index';\n\n\nconst Map = React.memo((props) => {\n const [center, setCenter] = useState();\n const [refMap, setMapRef] = useState(null);\n\n const { siteKey } = useContext(Context);\n\n const { placeId, handleGeocodedResults, restrictionBounds, showPinInfoMessage } = props;\n const worldCoords = { lat: 28.304380682962783, lng: 3.515625 };\n\n\n useEffect(() => {\n placeId && refMap && geocodeByPlaceId(placeId)\n .then(results => {\n const bounds = results[0].geometry.bounds || results[0].geometry.viewport;\n refMap.fitBounds(bounds);\n })\n .catch(error => console.error('error', error));\n }, [refMap, placeId]);\n\n\n const handleBoundsChanged = () => {\n const mapCenter = refMap.getCenter(); //get map center\n\n setCenter({ lat: mapCenter.lat(), lng: mapCenter.lng() });\n };\n\n\n const handleDragEnd = () =>\n geocodeByLatLng(center)\n .then(results => results.length && handleGeocodedResults(results))\n .catch(error => console.error('error',error));\n\n\n return (\n <GoogleMap\n ref={(map) => setMapRef(map)}\n defaultZoom={siteKey === 'global' ? 2 : 13}\n onBoundsChanged={handleBoundsChanged}\n defaultCenter={worldCoords}\n onDragEnd={handleDragEnd}\n options={\n restrictionBounds\n ?\n { restriction: {\n latLngBounds:restrictionBounds,\n strictBounds: false,\n },\n styles: mapStyles,\n }\n :\n { styles: mapStyles }\n }\n defaultOptions={{ mapTypeControl: false }}\n >\n <Marker\n icon={{ url: mapPin, scaledSize: { width: 56, height: 56} }}\n key=\"markerKey\"\n noRedraw={true}\n place_id={placeId || null}\n position={center}\n >\n { showPinInfoMessage &&\n <InfoWindow options={{ disableAutoPan: true }}>\n <div>{ I18n.t('provider.map.move_cursor_tooltip') }</div>\n </InfoWindow>\n }\n </Marker>\n </GoogleMap>\n );\n});\n\n\nexport default withGoogleMap(Map);\n","import React, { Fragment, useContext, useState, useEffect, useRef } from 'react';\nimport GooglePlacesAutocomplete, { geocodeByAddress, geocodeByPlaceId, geocodeByLatLng } from 'react-google-places-autocomplete';\nimport { useLazyQuery } from '@apollo/client';\nimport ReactTooltip from 'react-tooltip';\n\nimport { apiProvider } from \"../../../../../api/core\";\nimport { SvgIco } from \"../../../../SharedComponents/Icons\";\nimport AnonymousBanner from \"../../../Banners/AnonymousBanner\";\nimport { GET_PROVINCES, GET_POSTAL_DISTRICTS } from '../../../ApolloClient/queries';\nimport { Context } from '../../index';\nimport InputGroup from '../../FormGroups/InputGroup';\nimport DropdownGroup from '../../FormGroups/DropdownGroup';\nimport NavigationButtons from '../../NavigationButtons';\nimport Map from \"./Map\";\n\nimport './MapWrapper.sass';\n\n// !!! README !!!\n// STREET_NUMBER ========================================================================\n// By the moment we rejected STREET_NUMBER functionality as market team requested\n// for user to have possibility to save any location address (even without street_number);\n// This functionality allows to prevent save location address without street_number.\n// In case we receive incomplete address without street_number the search field will autofocus\n// and a tooltip will appear saying \"#street\".\n// ======================================================================================\n\n\nconst MapWrapper = () => {\n\n const {\n anonymous,\n countries,\n errors,\n handleChange,\n handleInputChange,\n owners,\n setErrors,\n setVisualsData,\n siteKey,\n validateFields,\n values,\n updateValues,\n } = useContext(Context);\n\n const formWrapper = useRef();\n const postalDistrictTooltip = useRef();\n const provinceTooltip = useRef();\n // const streetNumberPlaceholder = useRef(); <---------- STREET_NUMBER\n\n const [address, setAddress] = useState('');\n const [searchInputValue, setSearchInputValue] = useState('');\n // const [inputShift, setInputShift] = useState(0); <---------- STREET_NUMBER\n const [suggestNewProvince, setSuggestNewProvince] = useState(false);\n const [suggestNewDistrict, setSuggestNewDistrict] = useState(false);\n const [showOnlySuggestedProvince, setShowOnlySuggestedProvince] = useState(false);\n const [showPinInfoMessage, setShowPinInfoMessage] = useState(false);\n const [menuIsOpen, setMenuIsOpen] = useState(false);\n // const [streetNumberRequired, setStreetNumberRequired] = useState(null); <---------- STREET_NUMBER\n // const [streetPlaceholderPos, setStreetPlaceholderPos] = useState(null); <---------- STREET_NUMBER\n const [restrictionBounds, setRestrictionBounds] = useState(null)\n const [placeId, setPlaceId] = useState(null);\n const [loading, setLoading] = useState(null);\n const [provincesOptions, setProvincesOptions] = useState([]);\n const [postalDistrictsOptions, setPostalDistrictsOptions] = useState([]);\n\n const [getProvinces, { data: provincesData }] = useLazyQuery(GET_PROVINCES);\n const [getPostalDistrict, { data: postalDistrictData }] = useLazyQuery(GET_POSTAL_DISTRICTS);\n\n const {\n addressLine1,\n addressLine2,\n countryAlpha2,\n latitude,\n longitude,\n postalCode,\n postalDistrictId,\n postalDistrictSuggestion,\n provinceId,\n provinceSuggestion,\n } = values;\n\n\n useEffect(() => {\n if (latitude && longitude) {\n geocodeByLatLng({ lat: latitude, lng: longitude }).then(results => {\n if (results && results.length) {\n setAddress({ label: addressLine1, value: { place_id: results[0].place_id }});\n setPlaceId(results[0].place_id);\n }\n });\n } else {\n siteKey !== 'global' && handleSelectCountry(siteKey, 'countryAlpha2')\n }\n\n // Commented as we have a bug with viewport coords on Address Line 1 copy-paste\n // In case it's local site - restrict bounds to local country\n // siteKey !== 'global' && geocodeByAddress(siteKey).then(results => {\n // const geometryViewport = results[0].geometry.viewport;\n //\n // setRestrictionBounds({\n // north: geometryViewport.getNorthEast().lat(),\n // south: geometryViewport.getSouthWest().lat(),\n // west: geometryViewport.getSouthWest().lng(),\n // east:geometryViewport.getNorthEast().lng(),\n // });\n // });\n }, []);\n\n\n useEffect(() => {\n postalDistrictSuggestion && !suggestNewDistrict && setSuggestNewDistrict(true);\n provinceSuggestion && !suggestNewProvince && setSuggestNewProvince(true);\n }, [countryAlpha2]);\n\n\n useEffect(() => {\n if (provincesData) {\n\n if (provincesData.province.length) {\n const newProvincesOptions = provincesData.province.map(province => ({ value: Number(province.id), label: province.name }));\n\n setProvincesOptions(newProvincesOptions);\n setShowOnlySuggestedProvince(false);\n } else {\n provincesData !== undefined && setShowOnlySuggestedProvince(true);\n }\n }\n }, [provincesData]);\n\n\n useEffect(() => {\n if (postalDistrictData && postalDistrictData.postalDistrict.length) {\n const newPostalDistrictsOptions = postalDistrictData.postalDistrict.map(district => ({ value: Number(district.id), label: district.name }));\n\n setPostalDistrictsOptions(newPostalDistrictsOptions);\n }\n }, [postalDistrictData]);\n\n\n useEffect(() => {\n countryAlpha2 && getProvinces({ variables: { countryAlpha2 }});\n }, [countryAlpha2]);\n\n\n useEffect(() => {\n !!provinceId && !!provinceSuggestion && updateValues({ provinceSuggestion: '' });\n }, [provinceId]);\n\n\n useEffect(() => {\n !!provinceSuggestion && !!provinceId && updateValues({ provinceId: '' });\n }, [provinceSuggestion]);\n\n\n useEffect(() => {\n !!postalDistrictId && !!postalDistrictSuggestion && updateValues({ postalDistrictSuggestion: '' });\n }, [postalDistrictId]);\n\n\n useEffect(() => {\n !!postalDistrictSuggestion && postalDistrictId && updateValues({ postalDistrictId: '' });\n }, [postalDistrictSuggestion]);\n\n\n useEffect(() => {\n if(provinceId) {\n getPostalDistrict({ variables: { provinceId: String(provinceId) }});\n postalDistrictsOptions.find(option => option.value === postalDistrictId) && updateValues({ postalDistrictId: '' });\n }\n }, [provinceId]);\n\n\n useEffect(() => {\n if(provinceId) {\n getPostalDistrict({ variables: { provinceId: String(provinceId) }});\n postalDistrictsOptions.find(option => option.value === postalDistrictId) && updateValues({ postalDistrictId: '' });\n }\n }, [provinceId]);\n\n\n useEffect(() => {\n const postalDistrict = postalDistrictId\n ? postalDistrictsOptions.find(option => option.value === postalDistrictId)\n : postalDistrictSuggestion || '';\n const postalDistrictLabel = postalDistrict ? postalDistrict.label || postalDistrict : '';\n const newAddress = `${addressLine1}, ${postalCode} ${postalDistrictLabel}`;\n\n setVisualsData({ address: newAddress });\n }, [addressLine1, postalCode, postalDistrictId, postalDistrictsOptions, postalDistrictSuggestion]);\n\n\n // STREET_NUMBER\n // ------------------------------------------------------------------------------------->\n // useEffect(() => {\n // clearInputShift();\n // }, [searchInputValue]);\n\n\n // useEffect(() => {\n // !loading && streetNumberRequired && setTimeout(handleStreetNumberPlaceholderPosition, 100);\n // }, [loading]);\n // <-------------------------------------------------------------------------------------\n\n\n const countriesOptions = countries.map(country => ({ label: country[0], value: country[1] }));\n const ownersOptions = owners.map(owner => ({ label: owner[0], value: String(owner[1]) }));\n\n // STREET_NUMBER\n // -------------------------------------------------------------------------------------->\n // const autocompleteStreetLabelStyles = {\n // visibility: !!streetPlaceholderPos ? 'visible' : 'hidden',\n // paddingLeft: `${streetPlaceholderPos + 16}px`\n // };\n\n\n // const clearInputShift = () => {\n // streetPlaceholderPos && setStreetPlaceholderPos(null);\n // inputShift && setInputShift(0);\n // setStreetNumberRequired(false);\n // };\n // <--------------------------------------------------------------------------------------\n\n\n const handleSearchValue = (value, event) => {\n if (event.action === 'input-change') {\n !value && clearAddress();\n setSearchInputValue(value);\n }\n };\n\n\n const clearAddress = () => {\n setAddress('');\n countryAlpha2 && handleSelectCountry(countryAlpha2, 'countryAlpha2');\n };\n\n\n const setValue = (option) => {\n const { place_id } = option.value;\n\n setLoading(true);\n setPlaceId(place_id);\n geocodeByPlaceId(place_id)\n .then(results => results.length && handleGeocodedResults(results, place_id))\n .catch(error => console.error('error', error));\n };\n\n\n const handleSelectCountry = (value, field) => {\n handleChange(value, field);\n\n const countryName = countries.filter(country => country[1] === value)[0][0];\n\n geocodeByAddress(countryName).then(results => setPlaceId(results[0].place_id));\n };\n\n\n const handleSuggestNewProvince = () => {\n setSuggestNewDistrict(!suggestNewProvince);\n setSuggestNewProvince(prevState => !prevState);\n ReactTooltip.hide(provinceTooltip);\n };\n\n\n const handleSubmit = (nextStep) => validateFields(nextStep);\n\n\n const clearErrorsList = (list) => {\n const updatedErrors = { ...errors };\n\n list.map(field => delete updatedErrors[field]);\n setErrors(updatedErrors);\n };\n\n // STREET_NUMBER\n // ------------------------------------------------------------------------------------->\n // const handleStreetNumberPlaceholderPosition = () => {\n // const autocompleteInput = document.getElementById('autocomplete-input');\n // const streetNumberNodeWidth = streetNumberPlaceholder.current.offsetWidth;\n // const inputTextWidth = autocompleteInput.nextSibling.offsetWidth;\n // const parentWidth = autocompleteInput.offsetWidth;\n // const inputWidth = streetNumberNodeWidth + inputTextWidth;\n // const leftInputShift = inputWidth > parentWidth ? inputWidth - parentWidth : 0;\n // const streetNumberNodePos = leftInputShift ? inputTextWidth - leftInputShift : inputTextWidth;\n //\n // leftInputShift && setInputShift(leftInputShift);\n // setStreetPlaceholderPos(streetNumberNodePos);\n // };\n // <--------------------------------------------------------------------------------------\n\n\n const handleGeocodedResults = (results, placeId) => {\n const locationInfo = results[0];\n const addressComponents = locationInfo.address_components;\n const streetNumberComponentIndex = addressComponents.findIndex(component => component.types[0] === 'street_number');\n const countryCodeObj = addressComponents.filter(res => res.types.includes('country'));\n const newCountryAlpha2 = countryCodeObj && countryCodeObj.length ? countryCodeObj[0].short_name.toLowerCase() : '';\n const inCountryBoundaries = siteKey === 'global' || newCountryAlpha2 === siteKey;\n const postalCodeObj = addressComponents.filter(res => res.types.includes('postal_code'))[0];\n const errorsList = [];\n let value = { label: '', value: { place_id: placeId } };\n\n let updatedValues = {\n latitude: locationInfo.geometry.location.lat(),\n longitude: locationInfo.geometry.location.lng(),\n countryAlpha2: siteKey === 'global' ? newCountryAlpha2 : countryAlpha2,\n postalCode: '',\n };\n\n /* TODO: find a way to format addresses for different countries\n TODO: In USA for example the address starts from street number */\n\n // IF WE HAVE FULL ADDRESS WITH STREET NUMBER\n if (streetNumberComponentIndex >= 0 && inCountryBoundaries) {\n const streetNumber = addressComponents[streetNumberComponentIndex].short_name;\n const streetName = addressComponents[streetNumberComponentIndex + 1].long_name;\n const administrativeLevel2 = addressComponents.filter(res => res.types.includes('administrative_area_level_2'))[0];\n const locality = addressComponents.filter(res => res.types.includes('locality'))[0];\n const autocompleteInput = document.getElementById('autocomplete-input');\n\n /* In case we can find province name in addressComponents from our provincesOptions list\n we can fill and request province and postal districts */\n const handleProvinceSelect = () => {\n if (provincesOptions && (administrativeLevel2 || locality)) {\n provincesOptions.map(option => {\n const administrativeIncludesProvince = administrativeLevel2 && administrativeLevel2.long_name === option.label;\n const localityIncludesProvince = locality && locality.long_name === option.label;\n\n (administrativeIncludesProvince || localityIncludesProvince) && handleChange(Number(option.value), 'provinceId');\n errorsList.push('provinceId', 'postalDistrictId', 'provinceSuggestion', 'postalDistrictSuggestion');\n setSuggestNewProvince(false);\n setSuggestNewDistrict(false);\n setShowOnlySuggestedProvince(false);\n });\n };\n }\n\n showPinInfoMessage && setShowPinInfoMessage(false);\n errorsList.push('addressLine1', 'countryAlpha2');\n\n if (postalCodeObj) {\n updatedValues.postalCode = postalCodeObj.long_name;\n errorsList.push('postalCode');\n\n // FILL PROVINCE AND POSTAL DISTRICT SELECTS\n apiProvider.getAll(`/lease/api/frontend/postal_districts/search_by_postal_code?postal_code=${postalCodeObj.long_name}&country_alpha2=${newCountryAlpha2}`)\n .then(response => {\n if (response) {\n updatedValues.provinceId = response.province.id;\n updatedValues.postalDistrictId = response.postal_district.id;\n setTimeout(() => {\n updateValues(updatedValues);\n clearErrorsList(['addressLine1', 'countryAlpha2', 'provinceId', 'postalDistrictId', 'provinceSuggestion', 'postalDistrictSuggestion', 'postalCode']);\n });\n setSuggestNewProvince(false);\n setSuggestNewDistrict(false);\n setShowOnlySuggestedProvince(false);\n } else {\n handleProvinceSelect();\n }\n });\n } else {\n handleProvinceSelect();\n }\n\n value.label = `${streetName} ${streetNumber}`;\n setSearchInputValue(`${streetName} ${streetNumber}`);\n setAddress(value);\n setMenuIsOpen(false);\n updatedValues.addressLine1 = value.label;\n autocompleteInput.blur();\n\n /* IF WE HAVE LOCATION WITHOUT STREET NUMBER\n we place street_name (google places will mark it as a route) + ', street #'\n to places input, so the user knows the street_number is required */\n } else if (placeId && inCountryBoundaries) {\n // Add |`${locationInfo.address_components[0].short_name}, `| for both for STREET_NUMBER functionality\n value.label = `${locationInfo.address_components[0].short_name}`;\n setSearchInputValue(`${locationInfo.address_components[0].short_name}`);\n\n // STREET_NUMBER\n // ------------------------------------------------------------------------------------->\n // setStreetNumberRequired(true);\n // errorsList.push('addressLine1', 'countryAlpha2');\n // <-------------------------------------------------------------------------------------\n\n setShowPinInfoMessage(true);\n setAddress(value); // Remove for STREET_NUMBER functionality\n updatedValues.addressLine1 = value.label; // Remove for STREET_NUMBER functionality\n\n /* IF WE RECEIVED RESULTS WITH NO STREET NEITHER STREET NUMBER\n clear all fields and show Map Pin to inform user he should move marker to another position */\n } else {\n setAddress(value);\n updatedValues = {\n ...updatedValues,\n addressLine1: '',\n provinceId: '',\n postalDistrictId: '',\n postalCode: '',\n };\n setShowPinInfoMessage(true);\n }\n\n clearErrorsList(errorsList);\n updateValues(updatedValues);\n setLoading(false);\n };\n\n\n const onAutocompleteBlur = () => {\n // STREET_NUMBER\n // -------------------------------------------------------------------------------------->\n // clearInputShift();\n // <--------------------------------------------------------------------------------------\n\n setMenuIsOpen(false);\n setSearchInputValue(address.label || '');\n };\n\n const onAutocompleteFocus = () => {\n setMenuIsOpen(true);\n setSearchInputValue(address.label || '');\n };\n\n\n return (\n <div className=\"location__content\" ref={formWrapper}>\n <div className=\"location__content-wrapper\">\n <div className=\"location__inputs-wrapper\">\n { !anonymous &&\n <Fragment>\n <div className=\"form-group row required-form-group\" id=\"addressLine1\">\n\n <div className=\"form-label address\">\n <span>{ I18n.t('activerecord.attributes.location.address_line_1') }*</span>\n\n <span\n className=\"provider-tooltip\"\n data-class=\"provider-tooltip\"\n data-for={`addressLine1-tooltip`}\n data-tip={`${I18n.t('providers.locations.form.set_address')} ${I18n.t('providers.locations.form.helper_2')}`}>\n <SvgIco name=\"info_outline\" size={24} />\n </span>\n\n <ReactTooltip\n border={true}\n borderColor=\"black\"\n effect='solid'\n id={`addressLine1-tooltip`}\n place='right'\n type=\"light\" />\n </div>\n\n <div className=\"location__places col-xl-3 col-lg-4\">\n <GooglePlacesAutocomplete\n autocompletionRequest={{\n // types: ['address'],\n componentRestrictions: { country: countryAlpha2 && siteKey !== 'global' ? [countryAlpha2] : null },\n }}\n selectProps={{\n loadingMessage: () => `${I18n.t('generic.loading')}...`,\n noOptionsMessage: () => I18n.t('searches.show.no_results'),\n onInputChange: (value, e) => handleSearchValue(value, e),\n onChange: setValue,\n onBlur: onAutocompleteBlur,\n onFocus: onAutocompleteFocus,\n blurInputOnSelect: false,\n classNamePrefix: 'places',\n className: 'places',\n closeMenuOnSelect: false,\n isLoading: loading,\n inputId: 'autocomplete-input',\n inputValue: loading ? `${I18n.t('generic.loading')}...` : searchInputValue,\n loadingIndicator: { isDisabled: true },\n menuIsOpen: menuIsOpen,\n name: 'addressLine1',\n placeholder: I18n.t('providers.locations.form.address_line_1_placeholder'),\n value: address,\n styles: {\n placeholder: (provided) => ({\n ...provided,\n display: `${menuIsOpen ? 'none' : 'flex'}`,\n }),\n control: (provided) => ({\n ...provided,\n border: `1px solid ${errors.addressLine1 ? '#FF5A5A' : '#E0E2E2'}`,\n ['&:hover']: { border: `1px solid ${errors.addressLine1 ? '#FF5A5A' : '#E0E2E2'}`, },\n // ['input']: { left: `-${inputShift}px` }, <---------- STREET_NUMBER\n }),\n singleValue: (provided) => ({\n ...provided,\n display: `${menuIsOpen ? 'none' : 'flex'}`,\n }),\n }\n }} />\n\n {/* STREET_NUMBER ----------------------------------------------------> */}\n {/*<div className=\"location__street-placeholder\"*/}\n {/* ref={streetNumberPlaceholder}*/}\n {/* style={autocompleteStreetLabelStyles}>*/}\n {/* { I18n.t('provider.form.location.street_number_placeholder') }*/}\n {/*</div>*/}\n {/* <---------------------------------------------------- STREET_NUMBER */}\n\n { errors.addressLine1 &&\n <div className=\"error-tooltip\">\n { I18n.t('activerecord.attributes.location.address_line_1') } { errors.addressLine1 }\n </div>\n }\n </div>\n </div>\n\n <InputGroup\n handleChange={handleInputChange}\n label={I18n.t('activerecord.attributes.location.address_line_2')}\n labelTooltip={I18n.t('provider.form.location.address_line2.tooltip')}\n name=\"addressLine2\"\n value={addressLine2} />\n\n </Fragment>\n }\n\n\n { siteKey === 'global' &&\n <DropdownGroup\n error={errors.countryAlpha2}\n handleChange={handleSelectCountry}\n label={I18n.t('providers.locations.form.country')}\n name=\"countryAlpha2\"\n options={countriesOptions}\n required={true}\n searchable={true}\n value={countryAlpha2} />\n }\n\n { suggestNewProvince || showOnlySuggestedProvince\n ? <InputGroup\n handleChange={handleInputChange}\n label={I18n.t('providers.locations.form.province')}\n name=\"provinceSuggestion\"\n required={true}\n value={provinceSuggestion} />\n\n : <DropdownGroup\n disabled={!provincesOptions.length}\n error={errors.provinceId}\n handleChange={(value, field) => handleChange(Number(value), field)}\n label={I18n.t('providers.locations.form.province')}\n name=\"provinceId\"\n options={provincesOptions}\n required={true}\n searchable={true}\n value={provinceId} />\n }\n\n { !showOnlySuggestedProvince &&\n <div className=\"form-group row\">\n\n { anonymous && <div className=\"col-xl-3 col-lg-3\" /> }\n\n <div className=\"location__suggestion-link\" onClick={handleSuggestNewProvince}>\n\n { suggestNewProvince ? <SvgIco name=\"arrow-back\" size={18} /> : '+' }\n\n <div className=\"location__suggestion-link-text provider-tooltip\"\n data-tip={!suggestNewProvince ? I18n.t('providers.locations.form.suggestion_text') : null}\n data-class=\"provider-tooltip\"\n ref={provinceTooltip}\n data-for={`province-tooltip`}>\n { suggestNewProvince\n ? I18n.t('provider.form.location.districts_back_button')\n : I18n.t('providers.locations.form.suggest_province')\n }\n </div>\n\n { !suggestNewProvince &&\n <ReactTooltip\n place='right'\n effect='solid'\n id=\"province-tooltip\"\n type=\"light\"\n border={true}\n borderColor=\"black\"/>\n }\n </div>\n </div>\n }\n\n { suggestNewDistrict || showOnlySuggestedProvince\n ? <InputGroup\n handleChange={handleInputChange}\n label={I18n.t('providers.locations.form.postal_district')}\n name=\"postalDistrictSuggestion\"\n required={true}\n value={postalDistrictSuggestion} />\n\n : <DropdownGroup\n disabled={!postalDistrictsOptions.length}\n error={errors.postalDistrictId}\n handleChange={(value, field) => handleChange(Number(value), field)}\n label={I18n.t('providers.locations.form.postal_district')}\n name=\"postalDistrictId\"\n options={postalDistrictsOptions}\n required={true}\n searchable={true}\n value={postalDistrictId} />\n }\n\n { !suggestNewProvince && !showOnlySuggestedProvince &&\n <div className=\"form-group row\">\n\n { anonymous && <div className=\"col-xl-3 col-lg-3\" /> }\n\n <div className=\"location__suggestion-link\" onClick={() => setSuggestNewDistrict(prevState => !prevState)}>\n { suggestNewDistrict ? <SvgIco name=\"arrow-back\" size={18} /> : '+' }\n <div\n className=\"location__suggestion-link-text provider-tooltip\"\n data-class=\"provider-tooltip\"\n data-for={`district-tooltip`}\n data-tip={!suggestNewProvince ? I18n.t('providers.locations.form.suggestion_text') : null}\n ref={postalDistrictTooltip}>\n\n { suggestNewDistrict\n ? I18n.t('provider.form.location.districts_back_button')\n : I18n.t('providers.locations.form.suggest_postal_district')\n }\n\n { !suggestNewDistrict &&\n <ReactTooltip\n border={true}\n borderColor=\"black\"\n effect='solid'\n id={`district-tooltip`}\n place='right'\n type=\"light\" />\n }\n </div>\n </div>\n </div>\n }\n\n <InputGroup\n handleChange={handleInputChange}\n label={I18n.t('signup.new_form.register.postal_code.placeholder')}\n name=\"postalCode\"\n required={true}\n value={postalCode}\n wrapperClass={!(siteKey === 'dk' && !!ownersOptions.length) ? 'no-padding' : ''} />\n </div>\n\n { !anonymous &&\n <Map\n { ...{ placeId, restrictionBounds, handleGeocodedResults, showPinInfoMessage }}\n containerElement={<div style={{ height: `auto`, width: '100%', paddingLeft: '24px' }} />}\n mapElement={<div style={{ height: `100%`, borderRadius: '4px' }} />} />\n }\n\n { anonymous && <AnonymousBanner />}\n </div>\n\n <NavigationButtons handleNext={() => handleSubmit('economy')} />\n\n </div>\n );\n};\n\n\nexport default MapWrapper;\n","import React, { useContext, useMemo } from 'react';\nimport { withScriptjs, withGoogleMap } from 'react-google-maps';\n\nimport { Context } from '../../index';\nimport MapWrapper from './MapWrapper';\n\n\nconst Location = () => {\n\n const { googleApiKey, siteKey, stepsRefs, translationsLocales } = useContext(Context);\n const mapLanguage = siteKey === 'global' ? 'en' : translationsLocales.filter(locale => locale.id === siteKey)[0].name;\n const region = siteKey === 'global' ? '' : siteKey.toUpperCase();\n const MapLoader = useMemo(\n () =>\n withScriptjs(\n withGoogleMap(() => <MapWrapper ref={stepsRefs.location} />),\n ),\n [],\n );\n\n return (\n <div className=\"location\">\n <MapLoader\n googleMapURL={`https://maps.googleapis.com/maps/api/js?key=${googleApiKey}®ion=${region}&language=${mapLanguage}&libraries=geometry,drawing,places`}\n containerElement={<div style={{ height: `100%` }} />}\n mapElement={<div style={{ height: `100%` }} />}\n loadingElement={<div style={{ height: `100%` }} />}\n />\n </div>\n );\n};\n\nexport default Location;\n","import React, { Fragment, Component } from 'react';\nimport { FileDrop } from 'react-file-drop';\nimport ReactTooltip from 'react-tooltip';\n\nimport { apiProvider } from '../../../../../api/core';\nimport { SvgIco } from \"../../../../SharedComponents/Icons\";\nimport InfoMessagePopup from \"../../../Popups/InfoMessagePopup\";\n\nimport './FileInput.sass';\n\n\nclass FileInput extends Component {\n\n state = {\n filesList: [],\n draggable: null,\n draggableIndex: null,\n infoMessagePopupActive: false,\n pdfFileLoading: false,\n pdfFileDeleting: false,\n };\n\n\n componentDidMount() {\n this.handleDefaultFileList();\n };\n\n\n componentDidUpdate(prevProps, prevState, snapshot) {\n const { defaultFileList, name, setVisualsData } = this.props;\n\n if (prevProps.defaultFileList !== defaultFileList) {\n this.handleDefaultFileList();\n }\n\n if (this.state.filesList !== prevState.filesList) {\n const currentFilesCount = this.state.filesList.filter(file => !file.error).length;\n setVisualsData(prevData => ({ ...prevData, [`${name}_current_count`]: currentFilesCount }));\n }\n };\n\n\n handleDefaultFileList = () => {\n const { defaultFileList } = this.props;\n const data = defaultFileList || [];\n const newList = [];\n\n data.map(item => newList.push({id: item.id, imgUrl: item.thumbnailW120 }));\n this.setState({ filesList: newList });\n };\n\n\n handleChange = (files) => {\n const filesToDownload = { ...files };\n const newFilesList = [ ...this.state.filesList ];\n const { locationId, name, isPdf, refetchValues } = this.props;\n\n for (const [key, value] of Object.entries(files)) {\n\n const id = Number(('' + Math.random()).split(\".\")[1]);\n const newFile = { loading: true, name: value.name, id };\n\n value.id = id;\n newFilesList.push(newFile);\n }\n\n this.setState({ filesList: newFilesList, pdfFileLoading: !!isPdf }, () => {\n for (const [key, value] of Object.entries(filesToDownload)) {\n\n const formData = new FormData();\n formData.append('asset[asset_file]', value);\n formData.append('asset[location_id]:', `${locationId}`);\n formData.append('authenticity_token', this.props.formAuthToken);\n formData.append('utf8', 'true');\n\n const apiOptions = {\n url: `/providers/locations/${locationId}/${name}`,\n method: 'post',\n data: formData,\n headers: { 'Content-Type': 'application/json; charset=utf-8', 'Accept': 'application/json' },\n };\n\n apiProvider.withOptions(apiOptions)\n .then(response => {\n const { filesList } = this.state;\n const newFileIndex = filesList.findIndex(file => file.id === value.id);\n const currentFile = filesList[newFileIndex];\n const newFilesList = [ ...filesList ];\n\n currentFile.loading = false;\n\n if (response) {\n const assetInfo = response.assets_info || [];\n const errorsPresent = response.errors && response.errors.length;\n\n if (response.status === 'success') {\n\n if (assetInfo.length === 0) {\n refetchValues && refetchValues();\n } else {\n const asset = assetInfo[0];\n\n if (isPdf) {\n this.setState({ pdfFileLoading: false });\n refetchValues();\n } else {\n currentFile.imgUrl = asset.thumbnail;\n currentFile.id = asset.id;\n }\n }\n\n } else if (errorsPresent) {\n currentFile.error = response.errors;\n currentFile.id = Number(('' + Math.random()).split(\".\")[1]);\n }\n\n newFilesList.splice(newFileIndex, 1, currentFile);\n this.setState({ filesList: newFilesList, pdfFileLoading: false }, () => {\n newFilesList.length && !this.state.filesList.some(file => file.loading) && this.handleReorder();\n });\n\n } else {\n newFilesList.splice(newFileIndex, 1);\n this.setState({ filesList: newFilesList, infoMessagePopupActive: true });\n }\n })\n .catch(error => {\n console.log('Error--->', error);\n });\n }}\n );\n };\n\n\n handleInputChange = (e) => {\n this.handleChange(e.target.files);\n e.target.value = '';\n }\n\n\n handleDragStart = (e) => {\n const targetIndex = e.target.dataset.index;\n e.target.classList.add('dragging');\n\n this.setState({\n draggable: this.state.filesList[targetIndex],\n draggableIndex: targetIndex,\n });\n };\n\n\n handleDragEnd = (e) =>\n e.target.classList.remove('dragging');\n\n\n handleDragEnter = (e) =>\n e.preventDefault();\n\n\n handleDrop = (e) => {\n const dropzoneIndex = e.target.dataset.index;\n const reorderedFilesList = [ ...this.state.filesList ];\n\n reorderedFilesList.splice(Number(dropzoneIndex), 0, reorderedFilesList.splice(this.state.draggableIndex, 1)[0]);\n this.setState({ filesList: reorderedFilesList }, () => this.handleReorder());\n }\n\n\n handleReorder = () => {\n const { locationId, name } = this.props;\n const url = `/providers/locations/${locationId}/${name}/set_positions`;\n const formData = new FormData();\n\n this.state.filesList.map(file => !file.error && formData.append('assets[]', file.id));\n formData.append('authenticity_token', this.props.formAuthToken);\n\n apiProvider.put(url, formData).then(response => console.log('response reorder', response));\n };\n\n\n handleDelete = (fileId) => {\n const { filesList } = this.state;\n const { locationId, name, isPdf, formAuthToken, refetchValues } = this.props;\n const url = `/providers/locations/${locationId}/${name}${fileId ? `/${fileId}` : ''}`;\n const apiOptions = {\n url,\n method: 'delete',\n data: { authenticity_token: formAuthToken },\n headers: {'Content-Type': 'application/json; charset=utf-8', 'Accept': 'application/json'}\n };\n\n if (isPdf) {\n\n this.setState({ pdfFileDeleting: true });\n\n apiProvider.withOptions(apiOptions)\n .then(response => {\n if (response.status && response.status === 'success') {\n refetchValues();\n this.setState({ pdfFileDeleting: false });\n }})\n .catch(error => {\n console.log('error', error);\n this.setState({ pdfFileDeleting: false });\n });\n\n } else {\n\n const removableFileIndex = filesList.findIndex(file => file.id === fileId);\n // In case we have file error file is absent in database\n const removeFromDatabase = !filesList[removableFileIndex].error;\n const removeFileFromState = () => {\n const newFilesList = [ ...filesList ];\n\n newFilesList.splice(removableFileIndex, 1);\n this.setState({ filesList: newFilesList });\n }\n\n if (removeFromDatabase) {\n const newFilesList = [ ...filesList ];\n const removableFile = newFilesList[removableFileIndex];\n\n removableFile.loading = true;\n newFilesList.splice(removableFileIndex, 1, removableFile);\n this.setState({ filesList: newFilesList });\n\n apiProvider.withOptions(apiOptions).then(response => {\n console.log('remove', response);\n removeFileFromState();\n });\n } else {\n removeFileFromState();\n }\n }\n };\n\n\n handleRotate = (fileId) => {\n const { formAuthToken, locationId, name } = this.props;\n const url = `/providers/locations/${locationId}/${name}/${fileId}`;\n const newFilesList = [ ...this.state.filesList ];\n const currentFileIndex = newFilesList.findIndex(file => file.id === fileId);\n const currentFile = newFilesList[currentFileIndex];\n\n currentFile.loading = true;\n newFilesList.splice(currentFileIndex, 1, currentFile);\n this.setState({ filesList: newFilesList });\n\n const apiOptions = {\n url,\n method: 'put',\n data: { authenticity_token: formAuthToken, rotation_angle: 90 },\n headers: {'Content-Type': 'application/json; charset=utf-8', 'Accept': 'application/json'}\n };\n\n apiProvider.withOptions(apiOptions).then(response => {\n if (response && response.status === 'success') {\n const rotationAngle = currentFile.rotationAngle;\n\n currentFile.rotationAngle = rotationAngle ? rotationAngle + 90 : 90;\n currentFile.loading = false;\n newFilesList.splice(currentFileIndex, 1, currentFile);\n this.setState({ filesList: newFilesList });\n }\n });\n };\n\n\n render() {\n\n const { name, fileTypes, isPdf, linkFile } = this.props;\n const { filesList, infoMessagePopupActive, pdfFileLoading, pdfFileDeleting } = this.state;\n const showFileLink = isPdf && (linkFile.url || pdfFileLoading);\n\n\n return (\n <div className=\"file-input\">\n\n <InfoMessagePopup\n handleClose={() => this.setState({ infoMessagePopupActive: false })}\n message={I18n.t('apps.lb_showroom.detailed.order_form.error.message')}\n customClass={'error'}\n visible={infoMessagePopupActive}\n />\n\n <div className=\"file-input__preview-list\">\n\n { !isPdf && filesList.length > 0 && filesList.map((file, index) =>\n <div className=\"file-input__dropzone\"\n key={index}\n data-index={index}\n onDrop={this.handleDrop}\n onDragEnter={this.handleDragEnter}>\n\n <div draggable={!file.error}\n onDragStart={this.handleDragStart}\n onDragEnd={this.handleDragEnd}\n data-index={index}\n className={`file-input__preview-img ${file.error ? ' error' : ''}`}>\n\n <div className=\"file-input__background\"\n style={ file.imgUrl\n ? { backgroundImage: `url('${file.imgUrl}')`, transform: `rotate(${file.rotationAngle || 0}deg)`, opacity: file.loading ? 0.5 : 1 }\n : null }\n />\n\n { !file.loading &&\n <div className=\"file-input__delete\" onClick={() => this.handleDelete(file.id)}>\n <SvgIco name=\"close\" size={14} />\n </div>\n }\n\n { !file.loading && !file.error &&\n <div className=\"file-input__rotate\" onClick={() => this.handleRotate(file.id)}>\n <SvgIco name=\"sync\" size={13} />\n </div>\n }\n\n { file.loading &&\n <div className={`lds-spinner${file.imgUrl ? ' black' : ''}`}>\n <div /><div /><div /><div /><div /><div /><div /><div /><div /><div /><div /><div />\n </div>\n }\n\n { (file.loading || file.error) &&\n <div className=\"file-input__name\">\n { file.name }\n </div>\n }\n\n { file.error &&\n <Fragment>\n <div className=\"file-input__error\">\n <div className=\"provider-tooltip\"\n data-tip={file.error[0]}\n data-class=\"provider-tooltip__body\"\n data-for={`${file.name}-tooltip`}>\n\n <div className=\"file-input__error-label\">\n { I18n.t('error_page.general.error') }\n <SvgIco name=\"info_outline\" size={18} />\n </div>\n </div>\n\n <ReactTooltip\n border={true}\n borderColor=\"black\"\n effect='solid'\n id={`${file.name}-tooltip`}\n place='right'\n type=\"light\"\n />\n </div>\n </Fragment>\n }\n\n </div>\n </div>\n )}\n\n <div className=\"file-input__drop-wrapper\">\n <FileDrop onDrop={(files) => this.handleChange(files)}>\n\n <label htmlFor={name}>\n <SvgIco name=\"add_circle_outline\" size={32} />\n </label>\n\n <input\n accept={fileTypes}\n className=\"file-input__input\"\n id={name}\n multiple={!isPdf}\n name={name}\n onChange={this.handleInputChange}\n onDrop={this.handleDrop}\n type=\"file\" />\n </FileDrop>\n </div>\n\n </div>\n\n { showFileLink &&\n <div className=\"file-input__url-file-wrapper\">\n <a href={linkFile.url} target=\"_blank\">\n\n { pdfFileLoading || pdfFileDeleting\n ? <div className={`lds-spinner ${pdfFileDeleting ? 'lds-spinner--red' : ''}`}>\n <div /><div /><div /><div /><div /><div /><div /><div /><div /><div /><div /><div />\n </div>\n : <SvgIco name=\"pdf\" size={24} />\n }\n\n <div className=\"google-translate-helper\">\n { linkFile.name }.pdf\n </div>\n </a>\n\n { !pdfFileLoading &&\n <SvgIco\n className={pdfFileDeleting ? 'inactive' : ''}\n name=\"delete_outline\"\n onClick={() => this.handleDelete(false)}\n size={24} />\n }\n\n </div>\n }\n </div>\n )\n }\n}\n\n\nexport default FileInput;\n","import React, { useState, useEffect, useRef } from 'react';\n\nimport {\n KeyboardArrowRightRounded,\n KeyboardArrowLeftRounded,\n} from '../../../../SharedComponents/Icons';\n\nimport './FixedNavigationBar.sass';\n\nconst FixedNavigationBar = (props) => {\n const [showLeftArrow, setShowLeftArrow] = useState(false);\n const [showRightArrow, setShowRightArrow] = useState(false);\n const [activeSection, setActiveSection] = useState(\n props.activeSection || null,\n );\n const [isScrollable, setIsScrollable] = useState(false);\n const [initialization, setInitialization] = useState(true);\n\n const refsList = {\n navigationLinksList: useRef(),\n photosRef: useRef(),\n floorPlansRef: useRef(),\n interiorDesignRef: useRef(),\n virtualTourRef: useRef(),\n vimeoRef: useRef(),\n prospectusRef: useRef(),\n };\n\n const {\n photosRef,\n floorPlansRef,\n interiorDesignRef,\n virtualTourRef,\n vimeoRef,\n prospectusRef,\n } = refsList;\n const navigationLinksList = refsList.navigationLinksList.current;\n\n useEffect(() => {\n setActiveSection(props.activeSection || null);\n props.activeSection && handleActiveSectionChange(props.activeSection);\n window.addEventListener('resize', handleHorizontalScroll);\n return () => {\n window.removeEventListener('resize', handleHorizontalScroll);\n };\n }, []);\n\n useEffect(() => {\n handleActiveSectionChange(props.activeSection);\n return () => null;\n }, [props.activeSection]);\n\n useEffect(() => {\n if (navigationLinksList) {\n handleArrowAppearance();\n handleHorizontalScroll();\n }\n\n return () => null;\n }, [navigationLinksList]);\n\n const handleHorizontalScroll = () => {\n if (navigationLinksList) {\n const navigationListFirstChild =\n navigationLinksList && navigationLinksList.firstChild;\n\n const isScrollable =\n navigationListFirstChild &&\n (Math.round(navigationListFirstChild.getBoundingClientRect().left) <\n navigationLinksList.getBoundingClientRect().left ||\n Math.round(\n navigationLinksList.lastChild.getBoundingClientRect().right,\n ) > navigationLinksList.getBoundingClientRect().right);\n\n handleArrowAppearance();\n navigationLinksList.addEventListener('scroll', handleArrowAppearance);\n setIsScrollable(isScrollable);\n }\n };\n\n const handleActiveSectionChange = (targetName) => {\n const targetSection = refsList[targetName] && refsList[targetName].current;\n\n if (targetSection) {\n if (targetName !== activeSection || initialization) {\n if (isScrollable) {\n const targetRightCoodrs = targetSection.getBoundingClientRect().right,\n targetLeftCoords = targetSection.getBoundingClientRect().left,\n navigationListFirstChild = navigationLinksList.firstChild,\n navigationListLastChild = navigationLinksList.lastChild,\n navigationListRightCoords =\n targetSection === navigationListLastChild\n ? navigationLinksList.getBoundingClientRect().right\n : navigationLinksList.getBoundingClientRect().right - 24,\n navigationListLeftCoords =\n targetSection === navigationListFirstChild\n ? navigationLinksList.getBoundingClientRect().left\n : navigationLinksList.getBoundingClientRect().left + 24;\n\n targetRightCoodrs > navigationListRightCoords\n ? scrollToRightTarget(targetLeftCoords)\n : targetLeftCoords < navigationListLeftCoords\n ? scrollToLeftTarget(targetLeftCoords)\n : null;\n }\n activeSection &&\n refsList[activeSection].current.classList.remove('active');\n targetSection.classList.add('active');\n setActiveSection(targetName);\n initialization && setInitialization(false);\n }\n } else {\n // At first render React needs time to initialize ref and we get undefined\n setTimeout(() => handleActiveSectionChange(targetName), 10);\n }\n };\n\n const handleArrowAppearance = () => {\n if (navigationLinksList) {\n const leftBoundary =\n navigationLinksList.firstChild.getBoundingClientRect().left;\n const rightBoundary =\n navigationLinksList.lastChild.getBoundingClientRect().right;\n const navigationListLeftBorder =\n navigationLinksList.getBoundingClientRect().left;\n const navigationListRightBorder =\n navigationLinksList.getBoundingClientRect().right;\n\n setShowLeftArrow(Math.round(leftBoundary) < navigationListLeftBorder);\n setShowRightArrow(Math.round(rightBoundary) > navigationListRightBorder);\n }\n };\n\n const scrollToTarget = (target) => {\n if (activeSection !== target) {\n handleActiveSectionChange(target);\n props.scrollToTarget(target);\n }\n };\n\n const handleLeftScroll = () =>\n (navigationLinksList.scrollLeft =\n navigationLinksList.scrollLeft - navigationLinksList.offsetWidth);\n\n const handleRightScroll = () =>\n (navigationLinksList.scrollLeft =\n navigationLinksList.offsetWidth + navigationLinksList.scrollLeft);\n\n const scrollToRightTarget = (targetLeftCoords) => {\n navigationLinksList.scrollLeft =\n targetLeftCoords - 44 + navigationLinksList.scrollLeft;\n };\n\n const scrollToLeftTarget = (targetLeftCoords) => {\n const targetLeftScroll =\n targetLeftCoords >= 0 ? targetLeftCoords : targetLeftCoords * -1;\n navigationLinksList.scrollLeft =\n navigationLinksList.scrollLeft - (targetLeftScroll + 44);\n };\n\n const { showNavigationMenu } = props;\n const classes = `fixed-nav${showNavigationMenu ? ' active' : ''}`;\n\n return (\n <div className={classes}>\n <div className=\"fixed-nav__container\">\n <ul\n className=\"fixed-nav__links-wrapper\"\n ref={refsList.navigationLinksList}\n >\n <li className=\"fixed-nav__link\" ref={photosRef}>\n <span onClick={() => scrollToTarget('photosRef')}>\n {I18n.t('providers.photos.form.add_pictures')}\n </span>\n </li>\n\n <li className=\"fixed-nav__link\" ref={floorPlansRef}>\n <span onClick={() => scrollToTarget('floorPlansRef')}>\n {I18n.t('providers.locations.edit.assets.add_floor_plans')}\n </span>\n </li>\n\n {/*<li className=\"fixed-nav__link\" ref={interiorDesignRef}>*/}\n {/* <span onClick={() => scrollToTarget('interiorDesignRef')}>{I18n.t('providers.locations.form.add_interior_design')}</span>*/}\n {/*</li>*/}\n\n <li className=\"fixed-nav__link\" ref={virtualTourRef}>\n <span onClick={() => scrollToTarget('virtualTourRef')}>\n {I18n.t('providers.locations.form.add_virtual_tour')}\n </span>\n </li>\n\n <li className=\"fixed-nav__link\" ref={vimeoRef}>\n <span onClick={() => scrollToTarget('vimeoRef')}>\n {I18n.t('providers.locations.form.add_video')}\n </span>\n </li>\n\n <li className=\"fixed-nav__link\" ref={prospectusRef}>\n <span onClick={() => scrollToTarget('prospectusRef')}>\n {I18n.t('providers.prospectuses.show.add_prospect')}\n </span>\n </li>\n </ul>\n {showLeftArrow && (\n <div className=\"fixed-nav__arrow-left\" onClick={handleLeftScroll}>\n <KeyboardArrowLeftRounded />\n </div>\n )}\n {showRightArrow && (\n <div className=\"fixed-nav__arrow-right\" onClick={handleRightScroll}>\n <KeyboardArrowRightRounded />\n </div>\n )}\n </div>\n </div>\n );\n};\n\nexport default FixedNavigationBar;\n","import React from 'react';\n\nimport './InputBanner.sass';\n\n\nconst InputBanner = ({ additionalClass, buyNowLink, content, headline, readMoreLink }) => {\n return (\n <div className={`input-banner ${additionalClass || ''}`}>\n <div className=\"input-banner__content-wrapper\">\n <div className=\"input-banner__headline\">\n { headline }\n </div>\n <div className=\"input-banner__content\">\n { content }\n </div>\n </div>\n\n <div className=\"input-banner__buttons\">\n { readMoreLink &&\n <a className=\"input-banner__read-more\" href={readMoreLink} target='_blank'>\n { I18n.t('generic.read_more') }\n </a>\n }\n\n { readMoreLink && buyNowLink &&\n <div className=\"input-banner__buttons-separator\">\n { I18n.t('generic.or') }\n </div>\n }\n\n { buyNowLink }\n </div>\n </div>\n )\n}\n\nexport default InputBanner;\n","import React, { Fragment, useContext } from 'react';\nimport ReactTooltip from 'react-tooltip';\n\nimport BasicInput from '../../../../SharedComponents/Forms/BasicInput';\nimport { SvgIco } from \"../../../../SharedComponents/Icons\";\nimport { ScoreActionTooltip } from \"../../../ScoreWidget\";\nimport { Context } from '../../index';\nimport FileInput from './FileInput';\nimport InputBanner from './InputBanner';\n\nimport './VisualsBlock.sass';\n\nconst VisualsBlock = ({ bannerClass,\n bannerContent,\n bannerHeadline,\n buyNowLink,\n defaultFileList,\n fileTypes,\n handleChange,\n inputHeadline,\n inputLabel,\n inputType,\n isPdf,\n linkFile,\n name,\n qualityScore,\n qualityScoreName,\n readMoreLink,\n refetchValues,\n setVisualsData,\n showBanner,\n showFileAsLink,\n singleFileInput,\n tooltip, }) => {\n\n const { editedValuesFields,\n errors,\n formAuthToken,\n handleEdit,\n handleInputChange,\n locationId,\n validateFields,\n values } = useContext(Context);\n\n const isFileInput = inputType === 'file';\n const value = values[name];\n\n\n return (\n <div className=\"visuals-block\">\n <div className=\"visuals-block__wrapper\">\n <div className={`form-group form-group--visuals${ isFileInput ? ' file' : '' }`}>\n <div className=\"visuals-block__input-headline\">\n { inputHeadline }\n\n <span className=\"provider-tooltip\"\n data-tip={tooltip}\n data-class=\"provider-tooltip__body\"\n data-html={tooltip}\n data-for={`${name}-tooltip`}>\n <SvgIco name=\"info_outline\" size={22} />\n </span>\n\n <ReactTooltip\n border={true}\n borderColor=\"black\"\n effect='solid'\n id={`${name}-tooltip`}\n place='right'\n type=\"light\"\n />\n\n <ScoreActionTooltip\n filled={(qualityScore && qualityScore[qualityScoreName].score) || value}\n label={qualityScore && I18n.t(`provider.form.quality_score.hint_label.${qualityScore[qualityScoreName].id}`)}\n />\n </div>\n\n <div className=\"visuals-block__input-label\">\n { inputLabel }\n </div>\n\n <div className=\"visuals-block__input-wrapper\">\n { isFileInput\n ?\n <FileInput\n defaultFileList={defaultFileList}\n fileTypes={fileTypes}\n formAuthToken={formAuthToken}\n linkFile={linkFile}\n locationId={locationId}\n name={name}\n refetchValues={refetchValues}\n setVisualsData={setVisualsData}\n singleFileInput={singleFileInput}\n isPdf={isPdf}\n showFileAsLink={showFileAsLink} />\n :\n <Fragment>\n <BasicInput\n error={errors[name]}\n handleChange={handleChange || handleInputChange}\n name={name}\n type={inputType}\n value={value || ''}/>\n\n <div className={`visuals-block__input-submit-btn ${editedValuesFields.includes(name) ? 'active' : ''}`}\n onClick={() => validateFields(false, handleEdit)}>\n { I18n.t('generic.update_button') }\n </div>\n </Fragment>\n }\n </div>\n </div>\n </div>\n\n { showBanner &&\n <InputBanner\n additionalClass={bannerClass}\n buyNowLink={buyNowLink}\n content={bannerContent}\n headline={bannerHeadline}\n readMoreLink={readMoreLink}\n />\n }\n\n </div>\n )\n}\n\n\nexport default VisualsBlock;\n","import React, {Fragment, useContext, useEffect, useRef, useState,} from 'react';\nimport { Link } from \"react-router-dom\";\n\nimport { apiProvider } from '../../../../../api/core';\nimport { SvgIco } from '../../../../SharedComponents/Icons';\nimport GenerateProspectusModal from '../../../Modals/GenerateProspectusModal';\nimport VisualsProposalsForm from '../../../Modals/VisualsProposalsForm';\nimport { Context } from '../../index';\nimport VisualsBlock from './VisualsBlock';\nimport FixedNavigationBar from './FixedNavigationBar';\n\nimport './index.sass';\n\nlet interval;\n\n\nconst Visuals = () => {\n\n const [showNavigationMenu, setShowNavigationMenu] = useState();\n const [proposalFormIsOpen, setProposalFormIsOpen] = useState(false);\n const [prospectusError, setProspectusError] = useState(false);\n const [prospectusIsLoading, setProspectusIsLoading] = useState(false);\n const [prospectusModalIsOpen, setProspectusModalIsOpen] = useState(false);\n const [proposalFormTrigger, setProposalFormTrigger] = useState(null);\n const [activeSection, setActiveSection] = useState(null);\n const [generatedProspectusUrl, setGeneratedProspectusUrl] = useState(null);\n\n\n const {\n currentLocale,\n currentContactId,\n locationId,\n patternedProspectusEnabled,\n qualityScore,\n refetchVisualValues,\n setVisualsData,\n siteKey,\n visualsData,\n } = useContext(Context);\n\n\n const refsList = {\n navigationLinksList: useRef(),\n photosRef: useRef(),\n floorPlansRef: useRef(),\n interiorDesignRef: useRef(),\n virtualTourRef: useRef(),\n vimeoRef: useRef(),\n prospectusRef: useRef(),\n };\n\n const {\n floorPlansRef,\n photosRef,\n prospectusRef,\n virtualTourRef,\n vimeoRef,\n } = refsList;\n\n const { floorPlans, photos, prospectus, address } = visualsData;\n const { prospectusPath } = prospectus || {};\n const showBanner = siteKey === 'dk';\n\n\n useEffect(() => {\n handleShowNavigationMenu();\n window.addEventListener('scroll', handleShowNavigationMenu);\n\n return () => window.removeEventListener('scroll', handleShowNavigationMenu);\n }, []);\n\n\n const activateSection = () =>\n setTimeout(handleActiveAreaSection, 10);\n\n\n const onScrollEnd = (targetCoords) =>\n setTimeout(() => endOfScroll(targetCoords), 20);\n\n\n const handleShowNavigationMenu = () => {\n const topOffset = 104;\n const showNavigation =\n photosRef.current.getBoundingClientRect().top - 100 <= topOffset;\n\n if (showNavigation !== showNavigationMenu) {\n showNavigation && handleActiveAreaSection();\n setShowNavigationMenu(showNavigation);\n } else if (showNavigation) {\n activateSection();\n }\n };\n\n\n const handleActiveAreaSection = () => {\n const topOffset = document.getElementById('provider-header').offsetHeight + 48;\n const sectionsList = document.querySelectorAll('.visuals__block-wrapper');\n const viewPortBottomBorder = (window.innerHeight - topOffset) / 2;\n\n if (photosRef.current.getBoundingClientRect().top <= topOffset) {\n Object.keys(sectionsList).forEach((elem) => {\n const node = sectionsList[elem];\n const nodeName =\n node && node.firstChild && node.firstChild.dataset.name;\n\n if (nodeName && activeSection !== nodeName) {\n const nodeTop = node.getBoundingClientRect().top;\n const nodeBottom = node.getBoundingClientRect().bottom;\n\n // If node is partially in area viewPort\n if (nodeTop < viewPortBottomBorder && nodeBottom > topOffset) {\n // If node is 100% in area viewPort\n if (\n (nodeTop < topOffset && nodeBottom > viewPortBottomBorder) ||\n (nodeTop > topOffset && nodeBottom < viewPortBottomBorder)\n ) {\n setActiveSection(nodeName);\n } else {\n const viewPortNodeTop = nodeTop < topOffset ? topOffset : nodeTop;\n const viewPortNodeBottom =\n nodeBottom > viewPortBottomBorder\n ? viewPortBottomBorder\n : nodeBottom;\n\n // If node takes at least 50% of area viewPort\n if (\n viewPortNodeBottom - viewPortNodeTop >=\n (viewPortBottomBorder - topOffset) / 2\n ) {\n setActiveSection(nodeName);\n }\n }\n }\n }\n });\n } else if (activeSection !== 'photosRef') {\n setActiveSection('photosRef');\n }\n };\n\n\n const scrollToTarget = (target) => {\n const targetTopCoords = refsList[target].current.getBoundingClientRect().top;\n const headerHeight = document.getElementById('provider-header').offsetHeight;\n const windowHeight = window.pageYOffset;\n const targetCoords = Math.floor(targetTopCoords + windowHeight - (headerHeight + 80));\n\n window.removeEventListener('scroll', handleShowNavigationMenu);\n window.scroll(0, targetCoords);\n window.addEventListener('scroll', onScrollEnd(targetCoords));\n };\n\n\n const endOfScroll = (targetCoords) => {\n if (window.pageYOffset === targetCoords) {\n window.addEventListener('scroll', handleShowNavigationMenu);\n window.removeEventListener('scroll', onScrollEnd(targetCoords));\n }\n };\n\n\n const openProposalForm = (triggerSection) => {\n setProposalFormTrigger(triggerSection);\n setProposalFormIsOpen(true);\n };\n\n\n const closeProposalForm = () => {\n setProposalFormTrigger(null);\n setProposalFormIsOpen(false);\n };\n\n\n const BuyNowFormButton = ({ triggerSection, buttonText }) =>\n <div className=\"input-banner__buy-button input-banner__order-service-button\"\n onClick={() => openProposalForm(triggerSection)}>\n { buttonText }\n </div>;\n\n\n const GenerateProspectusButton = () =>\n <div className=\"input-banner__buy-button\"\n onClick={() => generatedProspectusUrl ? setProspectusModalIsOpen(true) : generateProspectus()}>\n { I18n.t('order_confirmations.show.generate-prospectus') }\n </div>;\n\n\n const generateProspectus = () => {\n const url = `/api/frontend/locations/${locationId}/patterned_prospectus`;\n\n setProspectusIsLoading(true);\n setProspectusModalIsOpen(true);\n\n apiProvider\n .post(url, { location_id: locationId })\n .then((response) => {\n const { pdf_url, status_url } = response;\n\n setGeneratedProspectusUrl(pdf_url);\n\n interval = setInterval(\n () =>\n apiProvider.getAll(status_url).then((response) => {\n if (response.status === 'finished') {\n clearInterval(interval);\n setProspectusIsLoading(false);\n }\n }),\n 2000,\n );\n })\n .catch((error) => {\n setProspectusIsLoading(false);\n setProspectusError(true);\n clearInterval(interval);\n console.log('error', error);\n });\n };\n\n\n const handleCloseProspectusModal = () => {\n setProspectusModalIsOpen(false);\n prospectusError && setProspectusError(false);\n };\n\n\n return (\n <div className=\"visuals\">\n <VisualsProposalsForm\n handleClose={closeProposalForm}\n currentContactId={currentContactId}\n locationAddress={address}\n locationId={locationId}\n showModal={proposalFormIsOpen}\n trigger={proposalFormTrigger}\n />\n\n { showNavigationMenu &&\n <FixedNavigationBar\n activeSection={activeSection}\n scrollToTarget={scrollToTarget}\n showNavigationMenu={showNavigationMenu}\n />\n }\n\n <div className=\"visuals__block-wrapper\">\n <div\n className=\"sectionScrollTarget\"\n data-name=\"photosRef\"\n id=\"photo\"\n ref={photosRef}\n />\n <VisualsBlock\n bannerContent={I18n.t('providers.locations.form.photos_banner_content')}\n bannerHeadline={I18n.t('providers.locations.form.photos_banner_headline')}\n buyNowLink={<BuyNowFormButton triggerSection=\"photo\" buttonText=\"Køb fotopakke\" />}\n defaultFileList={photos}\n fileTypes=\"image/bmp, image/gif, image/jpeg, image/jpg, image/png, image/tif, image/tiff, image/webp\"\n inputHeadline={I18n.t('providers.photos.form.add_pictures')}\n inputLabel={I18n.t('providers.locations.form.add_photos_label')}\n inputType=\"file\"\n name=\"photos\"\n qualityScore={qualityScore}\n qualityScoreName=\"photos\"\n readMoreLink={'/serviceydelser-til-udlejere/fotos'}\n setVisualsData={setVisualsData}\n showBanner={showBanner}\n tooltip={I18n.t('providers.locations.form.add_photos_tooltip')}\n />\n </div>\n\n <div className=\"visuals__block-wrapper\">\n <div\n className=\"sectionScrollTarget\"\n data-name=\"floorPlansRef\"\n id=\"floor-plans\"\n ref={floorPlansRef}\n />\n <VisualsBlock\n bannerContent={I18n.t('providers.locations.form.floor_plan_banner_content')}\n bannerHeadline={I18n.t('providers.locations.form.floor_plan_banner_headline')}\n buyNowLink={<BuyNowFormButton triggerSection=\"floorPlan\" buttonText=\"Køb plantegning\" />}\n defaultFileList={floorPlans}\n fileTypes=\"image/bmp, image/gif, image/jpeg, image/jpg, image/png, image/tif, image/tiff, image/webp, application/pdf, application/x-pdf\"\n inputHeadline={I18n.t('providers.locations.edit.assets.add_floor_plans')}\n inputLabel={I18n.t('providers.locations.form.add_floor_plans_label')}\n inputType=\"file\"\n name=\"floor_plans\"\n qualityScore={qualityScore}\n qualityScoreName=\"floorPlan\"\n readMoreLink={'/serviceydelser-til-udlejere/fotos'}\n refetchValues={() => refetchVisualValues({ id: locationId })}\n setVisualsData={setVisualsData}\n showBanner={showBanner}\n tooltip={I18n.t('providers.locations.form.add_floor_plan_tooltip')}\n />\n </div>\n\n {/*<div className=\"visuals__block-wrapper\">*/}\n {/* <div className=\"sectionScrollTarget\" ref={interiorDesignRef} data-name=\"interiorDesignRef\"/>*/}\n {/* <VisualsBlock*/}\n {/* name=\"interiorDesign\"*/}\n {/* inputHeadline={I18n.t('providers.locations.form.add_interior_design')}*/}\n {/* inputLabel={I18n.t('providers.locations.form.add_floor_interior_design_label')}*/}\n {/* tooltip={I18n.t('providers.locations.form.add_interior_design_tooltip')}*/}\n {/* inputType=\"file\"*/}\n {/* fileTypes=\"image/bmp, image/gif, image/jpeg, image/jpg, image/png, image/tif, image/tiff, application/pdf, application/x-pdf\"*/}\n {/* showBanner={showBanner}*/}\n {/* bannerHeadline={I18n.t('providers.locations.form.interior_design_banner_headline')}*/}\n {/* bannerContent={I18n.t('providers.locations.form.interior_design_banner_content')}*/}\n {/* readMoreLink={'/serviceydelser-til-udlejere/fotos'}*/}\n {/* buyNowLink={<InteriorDesignForm />} />*/}\n {/*</div>*/}\n\n <div className=\"visuals__block-wrapper\">\n <div\n className=\"sectionScrollTarget\"\n data-name=\"virtualTourRef\"\n id=\"virtual-tour\"\n ref={virtualTourRef}\n />\n <VisualsBlock\n bannerContent={I18n.t('providers.locations.form.virtual_tour_banner_content')}\n bannerHeadline={I18n.t('providers.locations.form.virtual_tour_banner_headline')}\n buyNowLink={<BuyNowFormButton triggerSection=\"virtualTour\" buttonText=\"Køb virtuel tur\" />}\n inputHeadline={I18n.t('providers.locations.form.add_virtual_tour')}\n inputLabel={I18n.t('providers.locations.form.virtual_tour_label')}\n name=\"virtualTour\"\n qualityScore={qualityScore}\n qualityScoreName=\"virtualTour\"\n readMoreLink={'/serviceydelser-til-udlejere/fotos'}\n showBanner={false}\n tooltip={I18n.t('providers.locations.form.add_virtual_tour_tooltip')}\n />\n </div>\n\n <div className=\"visuals__block-wrapper\">\n <div\n className=\"sectionScrollTarget\"\n data-name=\"vimeoRef\"\n id=\"vimeo-id\"\n ref={vimeoRef}\n />\n <VisualsBlock\n bannerContent={I18n.t('providers.locations.form.video_banner_content')}\n bannerHeadline={I18n.t('providers.locations.form.video_banner_headline')}\n buyNowLink={<BuyNowFormButton triggerSection=\"video\" buttonText=\"Køb video\" />}\n inputHeadline={I18n.t('providers.locations.form.add_video')}\n inputLabel={I18n.t('providers.locations.form.add_video_label')}\n inputType=\"number\"\n name=\"vimeoId\"\n qualityScore={qualityScore}\n qualityScoreName=\"video\"\n readMoreLink={'/serviceydelser-til-udlejere/fotos'}\n showBanner={false}\n tooltip={I18n.t('providers.locations.form.add_video_tooltip')}\n />\n </div>\n\n <div className=\"visuals__block-wrapper\">\n <div\n className=\"sectionScrollTarget\"\n data-name=\"prospectusRef\"\n id=\"prospectuses\"\n ref={prospectusRef}\n />\n <VisualsBlock\n bannerClass=\"green\"\n bannerContent={I18n.t('providers.locations.form.prospectus_banner_content')}\n bannerHeadline={I18n.t('providers.locations.form.prospectus_banner_headline')}\n buyNowLink={<GenerateProspectusButton />}\n fileTypes=\"application/pdf, application/x-pdf\"\n inputHeadline={I18n.t('providers.prospectuses.show.add_prospect')}\n inputType=\"file\"\n isPdf={true}\n linkFile={{ url: prospectusPath, name: address }}\n name=\"prospectus\"\n qualityScore={qualityScore}\n qualityScoreName=\"prospectus\"\n refetchValues={() => refetchVisualValues({ id: locationId })}\n setVisualsData={setVisualsData}\n showBanner={patternedProspectusEnabled && !prospectusPath}\n tooltip={I18n.t('providers.prospectuses.show.add_prospectus_tooltip')}\n inputLabel={\n <Fragment>\n <p>{ I18n.t('providers.prospectuses.show.add_prospectus_label') }</p>\n { prospectusPath && <p>{ I18n.t('providers.prospectuses.show.notice') }</p>}\n </Fragment>\n }\n />\n\n <GenerateProspectusModal\n error={prospectusError}\n generatedProspectusUrl={generatedProspectusUrl}\n handleClose={handleCloseProspectusModal}\n loading={prospectusIsLoading}\n showModal={prospectusModalIsOpen}\n />\n </div>\n\n <div className=\"visuals__save-button-wrapper\">\n <Link to={`${currentLocale}/new_providers/locations/edit/${locationId}/description`} className=\"visuals__back-button\">\n <SvgIco name=\"arrow-back\" size={24} />\n <span>{ I18n.t('generic.back') }</span>\n </Link>\n <Link to={`${currentLocale}/new_providers/locations/info/${locationId}`} className=\"visuals__save-button\">\n { I18n.t('generic.finish') }\n </Link>\n </div>\n\n </div>\n );\n};\n\nexport default Visuals;\n","import React, { Fragment, useEffect } from 'react';\nimport { useParams } from 'react-router-dom';\n\nimport Description from './Steps/Description';\nimport Location from './Steps/Location';\nimport FactsAndFacilities from './Steps/FactsAndFacilities';\nimport Economy from './Steps/Economy';\nimport Contacts from './Steps/Contacts';\nimport Visuals from './Steps/Visuals';\n\nconst StepsWrapper = ({ setActiveSection, stepsData, setLastAvailableStep, showFacts, activeSection: currentActiveSection, stepsRefs, setShowNotFoundPage }) => {\n\n const { section: activeSection } = useParams();\n\n useEffect(() => {\n setActiveSection(activeSection);\n\n const getAllSteps = Object.keys(stepsData);\n const checkExistStep = getAllSteps.includes(activeSection);\n\n if (checkExistStep) {\n !stepsData[activeSection].passed && setLastAvailableStep(activeSection);\n } else {\n setShowNotFoundPage(true)\n }\n }, [activeSection]);\n\n const renderStep = () => {\n switch (true) {\n case activeSection === 'description':\n return <Description ref={stepsRefs.description} />;\n case activeSection === 'location':\n return <Location />\n case activeSection === 'facts' && showFacts:\n return <FactsAndFacilities />\n case activeSection === 'economy':\n return <Economy ref={stepsRefs.economy} />\n case activeSection === 'contacts':\n return <Contacts />;\n case activeSection === 'visuals':\n return <Visuals />\n default:\n return <Location />;\n }\n };\n\n\n return (\n <Fragment>\n { currentActiveSection && renderStep() }\n </Fragment>\n )\n}\n\nexport default StepsWrapper;\n","import React, { useEffect, useState, useRef, useMemo, Fragment } from 'react';\nimport { createContext } from 'react';\nimport {\n Switch,\n Route,\n useRouteMatch,\n useHistory,\n useParams,\n} from 'react-router-dom';\nimport { useLazyQuery, useMutation } from '@apollo/client';\n\nimport { SvgIco } from \"../../SharedComponents/Icons\";\nimport { VALIDATE_LOCATION_FIELDS, ADD_LOCATION, UPDATE_LOCATION } from '../ApolloClient/mutations';\nimport { GET_LOCATION_VALUES, GET_LOCATION_VISUALS, GET_LOCATIONS } from '../ApolloClient/queries';\nimport NetworkError from '../Errors/NetworkError';\nimport InfoMessagePopup from '../Popups/InfoMessagePopup';\nimport Page404 from '../Errors/Page404';\nimport { QualityScoreBanner, scoreCalculator } from \"../ScoreWidget\";\nimport ProgressBar from './ProgressBar/index';\nimport StepsWrapper from './StepsWrapper';\n\nimport './index.sass';\n\nexport const Context = createContext({});\n\n\nconst LocationForm = (props) => {\n\n const {\n currentLocale,\n defaultCurrencyId,\n isNumber,\n partnerBadgeUrl,\n qualityScoreLink,\n resourceNotFoundError,\n siteName\n } = props;\n\n const { id: locationId, locationSection, editPage } = useParams();\n const history = useHistory();\n const match = useRouteMatch();\n const stepsRefs = { description: useRef() };\n const currentStepRef = useRef();\n\n const firstKind = (section) => {\n switch (section) {\n case 'lease':\n return props.leaseKinds[0];\n case 'sales':\n return props.saleKinds[0];\n case 'anonymous':\n return props.leaseKinds[0];\n default:\n return 'office';\n }\n };\n\n const [values, setValues] = useState({\n addressLine1: locationSection === 'anonymous' ? 'anonymous' : '',\n exemptedFromEnergyRating: false,\n isBuilt: true,\n facilityIds: [],\n section: locationSection === 'sales' ? 'own_use' : 'lease',\n kind: firstKind(locationSection),\n anonymous: locationSection === 'anonymous',\n currencyId: defaultCurrencyId.id,\n secondaryKinds: [],\n subscriberContactIds: [],\n suitableForKinds: [],\n employeesCountVisible: true,\n isRentIncludeOperationalCost: false,\n enableCombinedLocations: false,\n yearlyRentPerM2AmountFlexible: true,\n });\n\n const [stepsData, setStepsData] = useState({\n location: {\n link: 'location',\n passed: false,\n starRating: false,\n name: I18n.t('detailed.location.headline'),\n },\n economy: {\n link: 'economy',\n passed: false,\n starRating: false,\n name: I18n.t('apps.lb_showroom.detailed.tabs.economy'),\n showScoreIcon: true,\n },\n contacts: {\n link: 'contacts',\n passed: false,\n starRating: false,\n name: I18n.t('layouts.providers.navigation.contacts'),\n },\n facts: {\n link: 'facts',\n passed: false,\n starRating: false,\n name: I18n.t('apps.lb_showroom.detailed.tabs.facts_and_facilities'),\n hide: false,\n showScoreIcon: true,\n },\n description: {\n link: 'description',\n passed: false,\n starRating: false,\n name: I18n.t('activerecord.attributes.property.description'),\n showScoreIcon: true,\n },\n visuals: {\n link: 'visuals',\n passed: false,\n starRating: false,\n name: I18n.t('generic.visuals'),\n showScoreIcon: true,\n },\n });\n\n const [errors, setErrors] = useState({});\n const [editedValues, setEditedValues] = useState({});\n const [showStatusBanner, setStatusBanner] = useState(false);\n const [activeSection, setActiveSection] = useState('');\n const [lastAvailableStep, setLastAvailableStep] = useState('');\n const [showEditPage, setShowEditPage] = useState(false);\n const [infoMessagePopupIsOpen, setInfoMessagePopupIsOpen] = useState(false);\n const [infoPopupMessageError, setInfoPopupMessageError] = useState(null);\n const [showNotFoundPage, setShowNotFoundPage] = useState(false);\n const [showQualityScore, setShowQualityScore] = useState(false);\n const [visualsData, setVisualsData] = useState({});\n\n\n const [getLocationVisuals, { refetch: refetchVisualValues }] = useLazyQuery(\n GET_LOCATION_VISUALS,\n {\n fetchPolicy: 'no-cache',\n onCompleted: (data) =>\n data.location && setVisualsData({ ...data.location }),\n },\n );\n\n\n const [addLocation, { loading: addLocationLoading }] = useMutation(ADD_LOCATION, {\n onCompleted: (data) => {\n const { errors, location } = data.addLocation;\n\n if (errors) {\n handleErrors(errors);\n } else {\n setStepPassed();\n setStatusBanner(true);\n setShowEditPage(true);\n setShowQualityScore(false);\n history.push(`${currentLocale}/new_providers/locations/edit/${location.id}/visuals`);\n }\n },\n });\n\n\n const [updateLocation, { loading: updateLocationValuesLoading }] =\n useMutation(UPDATE_LOCATION, {\n refetchQueries: ['getLocationValues'],\n onCompleted: () => {\n setEditedValues({});\n setInfoMessagePopupIsOpen(true);\n refetchVisualValues().catch(error => console.log('Error', error));\n },\n });\n\n\n const [validateLocation, { loading: validateLocationLoading }] = useMutation(VALIDATE_LOCATION_FIELDS);\n\n\n const [getLocationValues, { data: initialLocationValues, error }] =\n useLazyQuery(GET_LOCATION_VALUES, {\n onCompleted: (data) => {\n if (data.location) {\n setShowEditPage(true);\n setValues({ ...data.location });\n }\n },\n });\n\n\n const [getLocations] = useLazyQuery(GET_LOCATIONS, {\n fetchPolicy: 'no-cache',\n onCompleted: data => {\n data.locations && data.locations.totalCount > 0 && setShowQualityScore(true);\n },\n });\n\n\n useEffect(() => {\n editPage && locationId && getLocationVisuals({ variables: { id: locationId } });\n }, []);\n\n\n useEffect(() => {\n const category = locationSection === 'anonymous' ? 'anonymous' : locationSection === 'sales' ? 'sales_properties' : 'lease_properties';\n\n getValues();\n getLocations({ variables: { category, perPage: 0 }})\n .catch((error) => console.log('error', error));\n }, []);\n\n\n useEffect(() => {\n getValues();\n }, [editPage, locationId]);\n\n\n useEffect(() => {\n activeSection &&\n !editPage &&\n !stepsData.location.passed &&\n activeSection !== 'location' &&\n history.replace(`${match.url}/location`);\n !editPage && window.scroll({ top: 1, behavior: 'smooth' });\n }, [activeSection]);\n\n\n const editedValuesFields = useMemo(\n () =>\n Object.entries(editedValues)\n .filter(\n ([key, value]) =>\n !(\n initialLocationValues.location[key] === value ||\n (!initialLocationValues.location[key] && !value)\n ),\n )\n .map(([key]) => key),\n [editedValues, initialLocationValues],\n );\n\n const qualityScore = useMemo(\n () => scoreCalculator({ ...values, ...visualsData, providerPartner: props.providerPartner, ...editedValues }, currentLocale, partnerBadgeUrl),\n [editedValues, values, visualsData],\n );\n\n\n const showFacts = values.kind !== 'parking';\n const anonymous = values.anonymous;\n\n const getValues = () => {\n editPage &&\n locationId &&\n getLocationValues({ variables: { id: locationId } });\n };\n\n const updateValues = (values) => {\n setValues((prevValues) => ({ ...prevValues, ...values }));\n editPage && setEditedValues((prevValues) => ({ ...prevValues, ...values }));\n };\n\n const prepareData = (data) => {\n const newData = { ...data };\n const { yearlyRentPerM2WithCentsFrom, yearlyRentPerM2WithCentsTo } = data;\n\n data.hasOwnProperty('yearlyRentPerM2WithCentsFrom') && (newData.yearlyRentPerM2WithCentsFrom = parseFloat(yearlyRentPerM2WithCentsFrom) || null);\n data.hasOwnProperty('yearlyRentPerM2WithCentsTo') && (newData.yearlyRentPerM2WithCentsTo = parseFloat(yearlyRentPerM2WithCentsTo) || null);\n data.hasOwnProperty('postalDistrictId') && !data.postalDistrictId && (newData.postalDistrictId = 0);\n data.hasOwnProperty('provinceId') && !data.provinceId && (newData.provinceId = 0);\n\n return newData;\n };\n\n const handleChange = (value, field) => {\n if (errors[field]) {\n const updatedErrors = { ...errors };\n\n delete updatedErrors[field];\n setErrors({ ...updatedErrors });\n }\n\n updateValues({ [field]: value });\n };\n\n const handleCheckboxesSelect = (e, field, asNumber) => {\n const value = asNumber ? Number(e.target.name) : e.target.name;\n const currentValues = values[field];\n const index = currentValues ? currentValues.indexOf(value) : -1;\n const newValues = [...currentValues];\n\n index >= 0 ? newValues.splice(index, 1) : newValues.push(value);\n handleChange(newValues, field);\n };\n\n const handleInputChange = (e) => {\n const field = e.target.name;\n const value = e.target.value;\n\n handleChange(value, field);\n };\n\n const handleNumberInputChange = (e) => {\n const field = e.target.name;\n const inputValue = e.target.value;\n const value = inputValue ? Number(inputValue) : null;\n\n handleChange(value, field);\n };\n\n const setStepPassed = () =>\n setStepsData((prevData) => ({\n ...prevData,\n [activeSection]: {\n ...prevData[activeSection],\n passed: true,\n },\n }));\n\n const validateRequiredFields = (errorsHandler) => {\n const currentErrors = { ...errors };\n const requiredFormGroups = document.querySelectorAll('.required-form-group');\n\n Array.from(requiredFormGroups).map((group) => {\n const name = group.id;\n\n !values[name] &&\n (currentErrors[name] = I18n.t(\n 'apps.lb_showroom.detailed.order_form.validation.field_required',\n { field: '' },\n ));\n });\n\n setErrors({ ...currentErrors });\n\n const errorsLength = Object.keys(currentErrors).length;\n\n if (errorsLength) {\n errorsHandler\n ? errorsHandler(currentErrors)\n : scrollToTarget(document.getElementById(Object.keys(currentErrors)[0]));\n }\n\n return !errorsLength;\n };\n\n const validateFields = (nextStepUrl, callbackFunction, errorsHandler) => {\n\n const dataValues = prepareData(values);\n\n validateRequiredFields(errorsHandler) &&\n validateLocation({\n variables: { attributes: dataValues },\n onCompleted: (data) => {\n const { errors } = data.validateLocation;\n\n if (errors.length) {\n handleErrors(errors, errorsHandler);\n } else {\n callbackFunction && callbackFunction();\n\n if (nextStepUrl) {\n setStepPassed();\n handleNext(nextStepUrl);\n }\n }\n },\n }).catch((error) => console.log('error', error));\n };\n\n\n const handleErrors = (errorsList, errorsHandler) => {\n const newErrors = { ...errors };\n\n errorsList.map((listError) => (newErrors[listError.attrName] = listError.errorMessages));\n\n const filteredErrors =\n Object.keys(Object.fromEntries(Object.entries(newErrors).filter(([key]) => !key.includes('description') && !key.includes('title')))).length;\n\n setErrors({ ...newErrors });\n\n ((newErrors.title || newErrors.description) && !filteredErrors)\n && activeSection !== 'description'\n && history.push(`${match.url}/description`);\n\n if (Object.keys(newErrors).length) {\n errorsHandler\n ? errorsHandler(newErrors)\n : scrollToTarget(document.getElementById(Object.keys(newErrors)[0]));\n }\n };\n\n const scrollToTarget = (target) => {\n if (target) {\n const targetTop = target.getBoundingClientRect().top;\n const targetCoords = Math.floor(targetTop + window.scrollY - 80);\n\n window.scroll(0, targetCoords);\n }\n };\n\n const handleFormSubmit = (data) => {\n const attrs = prepareData(data || values);\n\n addLocation({ variables: { attributes: { ...attrs } } })\n .catch(error => console.log('Error', error));\n };\n\n const handleEdit = () => {\n updateLocation({\n variables: {\n attributes: { ...prepareData(editedValues), countryAlpha2: values.countryAlpha2 },\n id: Number(locationId),\n },\n }).catch((error) => {\n console.log('error', error);\n setInfoPopupMessageError(true);\n setInfoMessagePopupIsOpen(true);\n });\n };\n\n const closeInfoMessagePopup = () => {\n setInfoMessagePopupIsOpen(false);\n infoPopupMessageError && setInfoPopupMessageError(false);\n };\n\n const handleNext = (section) =>\n section && history.push(`${match.url}/${section}`);\n\n const capitalize = (name) => name.charAt(0).toUpperCase() + name.slice(1);\n\n const value = {\n ...props,\n activeSection,\n addLocationLoading,\n anonymous,\n currentLocale,\n currentStepRef,\n editPage,\n editedValuesFields,\n errors,\n locationId,\n match,\n qualityScore,\n setErrors,\n setInfoMessagePopupIsOpen,\n setInfoPopupMessageError,\n setVisualsData,\n showFacts,\n showQualityScore,\n stepsRefs,\n validateLocation,\n validateLocationLoading,\n values,\n visualsData,\n updateLocation,\n updateLocationValuesLoading,\n capitalize,\n handleChange,\n handleCheckboxesSelect,\n handleEdit,\n handleFormSubmit,\n handleInputChange,\n handleNext,\n handleNumberInputChange,\n prepareData,\n refetchVisualValues,\n scrollToTarget,\n validateFields,\n validateRequiredFields,\n updateValues,\n };\n\n const pageNotFound = editPage ? (!isNumber(locationId) || showNotFoundPage) : false;\n const showQualityScoreBanner = qualityScore.totalScore !== 100 && (editPage || (activeSection && stepsData[activeSection].showScoreIcon));\n\n if (resourceNotFoundError(error) || pageNotFound) return <Page404 currentLocale={currentLocale} />;\n if (error) return <NetworkError />;\n\n\n return (\n <div className=\"location-form-wrapper\">\n <InfoMessagePopup\n customClass={infoPopupMessageError ? 'error' : null}\n handleClose={closeInfoMessagePopup}\n message={\n infoPopupMessageError\n ? I18n.t('apps.lb_showroom.detailed.order_form.error.message')\n : I18n.t('providers.form.update_success')\n }\n visible={infoMessagePopupIsOpen}\n />\n\n { activeSection === 'visuals' && showStatusBanner &&\n <div className=\"status-banner-wrapper\">\n <div className=\"status-banner\">\n <div className=\"status-banner__icon\">\n <SvgIco name=\"check\" size={20}/>\n </div>\n <div className=\"status-banner__content\">\n <div className=\"status-banner__headline\">\n {I18n.t('providers.locations.form.location_created_headline')}\n </div>\n <p>\n <div className=\"status-banner__subheader\">\n {I18n.t('providers.locations.form.location_created_subheadline')}\n </div>\n {I18n.t('providers.locations.form.location_created_content')}\n </p>\n </div>\n <SvgIco\n className=\"status-banner__close\"\n name=\"close\"\n size={28}\n onClick={() => setStatusBanner(false)}/>\n </div>\n </div>\n }\n\n { activeSection === 'visuals' && (\n <div className=\"visuals-headline\">\n { values.section === 'lease' || values.anonymous\n ? I18n.t('providers.locations.form.visuals_headline')\n : \"Opret ny salgsejendom: Tilføj fotos m.m.\"\n }\n </div>\n )}\n\n { (showEditPage || !editPage) &&\n <div id=\"locationForm\" className=\"location-form\">\n <Context.Provider value={value}>\n <Switch>\n\n <Route path={`${match.url}/:section`}>\n <Fragment>\n { showQualityScoreBanner &&\n <QualityScoreBanner\n data={qualityScore}\n qualityScoreLink={qualityScoreLink}\n siteName={siteName}\n stickyTop={activeSection === 'visuals' ? 144 : 96}\n />\n }\n\n <ProgressBar\n activeSection={activeSection}\n editPage={editPage}\n lastAvailableStep={lastAvailableStep}\n showFacts={showFacts}\n stepsData={stepsData}\n stepsRefs={stepsRefs}\n qualityScore={qualityScore}\n validateFields={validateFields}\n />\n\n <StepsWrapper\n setActiveSection={setActiveSection}\n stepsData={stepsData}\n stepsRefs={stepsRefs}\n showFacts={showFacts}\n activeSection={activeSection}\n setLastAvailableStep={setLastAvailableStep}\n setShowNotFoundPage={setShowNotFoundPage}\n />\n </Fragment>\n </Route>\n\n <Route path=\"*\">\n <Page404 currentLocale={currentLocale} />\n </Route>\n\n </Switch>\n </Context.Provider>\n </div>\n }\n </div>\n );\n};\n\n\nexport default LocationForm;\n","import React, { Fragment, useState } from 'react';\nimport { Carousel } from \"react-responsive-carousel\";\nimport \"react-responsive-carousel/lib/styles/carousel.min.css\";\n\nimport AnonymousPlaceholder from '../../../src/images/provider/anonymous-placeholder.svg';\nimport { DetailedViewSet, SvgIco } from \"../../SharedComponents/Icons\";\nimport Map from \"../../Map\";\n\nimport './AssetsBlock.sass';\n\n\nconst AssetsBlock = ({ photos, floorPlans, latitude, longitude, vimeoId, virtualTour, googleApiKey }) => {\n\n const assetsList = [\n { name: 'photos', available: !!photos.length },\n { name: 'floor-plans', available: !!floorPlans.length },\n { name: 'map', available: !!(latitude && longitude) },\n { name: 'videos', available: !!vimeoId },\n { name: 'virtual_tour', available: !!virtualTour }\n ];\n\n const showAssetsBlock = assetsList.some(asset => asset.available);\n\n const [activeTab, setActiveTab] = useState(showAssetsBlock ? assetsList.find(asset => asset.available).name : 'photos');\n\n\n const Tab = ({ name }) =>\n <div className={`assets-block__tab ${ activeTab === name ? 'active' : '' }`} onClick={() => setActiveTab(name)}>\n { DetailedViewSet[name] }\n <span>\n { I18n.t(`lb_showroom.detailed.asset_box.new_${ name }_button`) }\n </span>\n </div>;\n\n\n const Gallery = ({ imgList }) =>\n <Carousel\n infiniteLoop={true}\n renderArrowPrev={(clickHandler) =>\n <div className=\"arrow-prev\" onClick={clickHandler} >\n <SvgIco name=\"keyboard-arrow-left-rounded-ios\" size={22} />\n </div>\n }\n renderArrowNext={(clickHandler) =>\n <div className=\"arrow-next\" onClick={clickHandler} >\n <SvgIco name=\"keyboard-arrow-right-rounded-ios\" size={22} />\n </div>\n }\n showIndicators={false}\n showStatus={true}\n showThumbs={false}\n statusFormatter={(current, total) => `${current}/${total}`}\n swipeable={imgList.length !== 1}\n >\n { imgList.map(elem => (\n <div className=\"assets-block__carousel-img-wrapper\"\n key={elem.thumbnailW600}\n style={{ backgroundImage: `url(${elem.thumbnailW600})` }}>\n </div>)\n )}\n </Carousel>\n\n\n const VideoBlock = ({ url }) =>\n <div className=\"assets-block__frame-wrapper\">\n <iframe\n allowFullScreen\n frameBorder={0}\n id=\"provider-video\"\n mozallowfullscreen=\"mozallowfullscreen\"\n src={url}\n webkitallowfullscreen=\"webkitallowfullscreen\"\n />\n </div>;\n\n\n const MapBlock = () =>\n <Map\n googleApiKey={googleApiKey}\n isGalleryComponent={true}\n latitude={latitude}\n longitude={longitude}\n orientationHorizontalMobile={false} />\n\n\n const showContent = () => {\n switch (activeTab) {\n case 'photos':\n case 'floor-plans':\n return <Gallery imgList={ activeTab === 'photos' ? photos : floorPlans }/>;\n case 'map':\n return <MapBlock />\n case 'videos':\n case 'virtual_tour':\n return <VideoBlock url={activeTab === 'videos' ? `https://player.vimeo.com/video/${vimeoId}?autoplay=1&badge=0` : virtualTour} />\n }\n };\n\n\n return (\n <div className=\"assets-block\">\n { showAssetsBlock\n ? <Fragment>\n <div className=\"assets-block__gallery-wrapper\">\n { showContent() }\n </div>\n <div className=\"assets-block__tabs-wrapper\">\n { assetsList.map(asset => asset.available && <Tab name={asset.name} key={asset.name} />) }\n </div>\n </Fragment>\n : <div className=\"assets-block__placeholder\">\n <img src={AnonymousPlaceholder} alt=\"Anonymous\" width=\"100%\" height=\"auto\" />\n </div>\n }\n </div>\n )\n}\n\n\nexport default AssetsBlock;\n","import React, { useEffect, useMemo, useState, Fragment, useRef } from 'react';\nimport { Link, useParams } from 'react-router-dom';\nimport { useLazyQuery, useMutation, useQuery} from '@apollo/client';\nimport ReactTooltip from 'react-tooltip';\nimport { HashLink } from 'react-router-hash-link';\nimport { FacebookShareButton, LinkedinShareButton, TwitterShareButton } from 'react-share';\n\nimport ActivateIcon from '../../../src/images/provider/activate-icon.svg';\nimport CopyIcon from '../../../src/images/provider/copy-icon.svg';\nimport ReportIcon from '../../../src/images/provider/report-icon.svg';\nimport DeactivationIcon from '../../../src/images/provider/eye-off-icon.svg';\nimport EditIcon from '../../../src/images/provider/edit.svg';\nimport facebookShare from '../../../src/images/provider/facebook-share-button.svg';\nimport linkinShare from '../../../src/images/provider/linkedin-share-button.svg';\nimport twitterShare from '../../../src/images/provider/twitter-share-button.svg';\nimport shareIcon from '../../../src/images/provider/share-icon.svg';\nimport { SvgIco } from '../../SharedComponents/Icons';\nimport Loader from '../../SharedComponents/Loader';\nimport { GET_LOCATION_INFO, GET_LOCATIONS } from '../ApolloClient/queries';\nimport { ACTIVATE_LOCATION } from '../ApolloClient/mutations';\nimport AdvertisementBlock from '../AdvertismentBlock';\nimport PartnerBadgeBanner from '../AdvertismentBlock/Banners';\nimport DeactivateLocationModal from '../Modals/DeactivateLocationModal';\nimport DuplicateLocationModal from '../Modals/DuplicateLocationModal';\nimport { PulsingLoader } from '../Loaders';\nimport RentedOutModal from '../Modals/RentedOutModal';\nimport Notes from '../ClientInfo/Notes';\nimport Page404 from '../Errors/Page404';\nimport PageInfoMessage from '../Errors/PageInfoMessage';\nimport NetworkError from '../Errors/NetworkError';\nimport LocationViewsChart from \"../LocationViewsChart\";\nimport { ActionIcon, scoreCalculator, ScoreChart, visibilityQuality } from \"../ScoreWidget\";\nimport AssetsBlock from './AssetsBlock';\n\nimport './index.sass';\n\n\nconst LocationInfo = ({ currentLocale,\n currencySymbolFormatter,\n googleApiKey,\n isNumber,\n partnerBadgeUrl,\n providerAdvertisingStrategy,\n providerApproved,\n providerOnDealStrategy,\n qualityScorePageLink,\n resourceNotFoundError,\n siteKey,\n siteName,\n providerPartner,\n }) => {\n\n const { id: locationId } = useParams();\n\n const tooltipPopupRef = useRef();\n\n const [locationInfo, setLocationInfo] = useState({});\n const [deleteModalIsOpen, setDeleteModalIsOpen] = useState(false);\n const [duplicateModalIsOpen, setDuplicateModalIsOpen] = useState(false);\n const [rentedOutModalIsOpen, setRentedOutModalIsOpen] = useState(false);\n const [locationActivationLoading, setLocationActivationLoading] = useState(null);\n const [locationState, setLocationState] = useState(null);\n const [showPartnerBadgeBanner, setShowPartnerBadgeBanner] = useState(false);\n\n\n const { error } = useQuery(GET_LOCATION_INFO, {\n variables: { id: locationId },\n fetchPolicy: 'no-cache',\n onCompleted: (data) => {\n if (data.location) {\n setLocationInfo(data.location);\n }\n }\n });\n\n\n const [getLocations] = useLazyQuery(GET_LOCATIONS, {\n fetchPolicy: 'no-cache',\n onCompleted: data => {\n data.locations && data.locations.totalCount >= 3 && setShowPartnerBadgeBanner(true);\n },\n });\n\n\n const [activateLocation, {}] = useMutation(ACTIVATE_LOCATION, {\n onCompleted: (data) => {\n const { error, location } = data.activateLocation;\n\n !error && locationStateChangeCallback(null, location);\n },\n });\n\n\n const {\n address,\n areaFrom,\n areaTo,\n areaUnit,\n createdAt,\n currencyId,\n enquiries,\n enquiriesCountInteger,\n explainLocationIncomplete,\n floorPlans,\n floorPlansCount,\n infoMessage,\n initialState,\n isComplete,\n latitude,\n locationShownDatapoints,\n locationUrl,\n longitude,\n photos,\n photosCount,\n prospectusCount,\n section,\n sectionTranslated,\n state,\n stateInfo,\n stateTranslated,\n vimeoId,\n virtualTour,\n yearlyRentPerM2WithCentsFrom,\n yearlyRentPerM2WithCentsTo,\n } = locationInfo;\n\n const assetsProps = {\n photos,\n floorPlans,\n latitude,\n longitude,\n vimeoId,\n virtualTour,\n };\n\n const showYearlyPrice = yearlyRentPerM2WithCentsFrom || yearlyRentPerM2WithCentsTo;\n const showMonthlyPrice = false;\n const showLocationInfo = Object.keys(locationInfo).length;\n const showReportADeal = providerOnDealStrategy && section === 'lease';\n\n\n useEffect(() => {\n getLocations({ variables: { category: 'lease_properties', perPage: 0 }})\n .catch((error) => console.log('error', error));\n window.scroll({ top: 1, behavior: 'smooth' });\n }, []);\n\n\n useEffect(() => {\n locationState && animateStatus();\n setLocationState(state);\n }, [state, stateInfo]);\n\n\n const pricesFormatter = (priceFrom, priceTo) => {\n return priceFrom && priceTo\n ? `${priceFrom}-${priceTo}`\n : priceFrom\n ? I18n.t('search_agents.create.price_from', { price: priceFrom })\n : priceTo\n ? I18n.t('search_agents.create.price_to', { price: priceTo })\n : null;\n };\n\n\n const animateStatus = () => {\n const statusWrapper = document.getElementById('statusWrapper');\n\n statusWrapper.classList.add('activated');\n ReactTooltip.show(tooltipPopupRef.current);\n setTimeout(() => ReactTooltip.hide(tooltipPopupRef.current), 4000);\n setTimeout(() => statusWrapper.classList.remove('activated'), 2500);\n };\n\n\n const areaFormatter = (areaFrom, areaTo) => {\n return areaFrom && areaTo\n ? `${areaFrom}-${areaTo}`\n : `${I18n.t('generic.from')} ${areaFrom}`;\n };\n\n\n const locationStateChangeCallback = (closeModal, location, infoMessage) => {\n closeModal && closeModal();\n\n if (infoMessage) {\n setLocationInfo({ ...locationInfo, stateInfo: infoMessage });\n animateStatus();\n }\n\n location && setLocationInfo(location);\n locationActivationLoading && setLocationActivationLoading(false);\n };\n\n\n const handleActivateLocation = () => {\n setLocationActivationLoading(true);\n activateLocation({ variables: { id: Number(locationId) } }).catch((error) =>\n console.log('error', error)\n );\n };\n\n\n const ListItem = ({ itemData }) => {\n const linkInnerContent =\n <Fragment>\n <div className={`location-info__score-list-item-label ${itemData.score ? 'done' : ''}`}>\n <div className=\"location-info__score-list-item-name\">\n { itemData.name }\n </div>\n <div className=\"location-info__score-list-item-score\">\n { !!itemData.score && <ActionIcon color=\"#77BC1F\" icon=\"check\" iconSize={12} /> }\n { itemData.score ? `+${itemData.score}` : itemData.availableScoreLabel }\n </div>\n </div>\n <SvgIco name=\"keyboard-arrow-right-rounded-ios\" size={14} />\n </Fragment>;\n\n return itemData.id === 'partner_badge'\n ?\n <a className=\"location-info__score-list-item\" href={itemData.infoLink} target=\"_blank\">\n { linkInnerContent }\n </a>\n :\n <HashLink to={itemData.infoLink} className=\"location-info__score-list-item\">\n { linkInnerContent }\n </HashLink>;\n };\n\n\n // We need to use useMemo to prevent charts SVG form rerender on data update\n const cachedViewsChart = React.useMemo(\n () => <LocationViewsChart\n createdAt={createdAt}\n locationShownDatapoints={locationShownDatapoints}\n />,\n [createdAt, locationShownDatapoints],\n );\n\n\n const scoreData = useMemo(\n () => scoreCalculator({ ...locationInfo, providerPartner }, currentLocale, partnerBadgeUrl),\n [locationInfo]\n );\n\n\n const scoreChart = useMemo(\n () =>\n <div>\n <div className=\"location-info__score-widget\">\n <ScoreChart score={scoreData && scoreData.totalScore} stroke={15} width={278} />\n </div>\n <div className=\"location-info__chart-score-list\">\n { Object.keys(scoreData).map(scoreSection =>\n (scoreSection !== 'totalScore'\n && !scoreData[scoreSection].score\n && !scoreData[scoreSection].hidden\n && <ListItem itemData={scoreData[scoreSection]} key={scoreData[scoreSection].name} />)\n || null\n )}\n\n { Object.keys(scoreData).map(scoreSection =>\n (scoreSection !== 'totalScore'\n && scoreData[scoreSection].score\n && !scoreData[scoreSection].hidden\n && <ListItem itemData={scoreData[scoreSection]} key={scoreData[scoreSection].name} />)\n || null\n )}\n </div>\n </div>,\n [scoreData]\n );\n\n\n if (resourceNotFoundError(error) || !isNumber(locationId)) return <Page404 currentLocale={currentLocale} />;\n if (error) return <NetworkError />;\n\n\n const visibilityQualityState = scoreData && visibilityQuality(scoreData.totalScore);\n\n\n return (\n <div className=\"location-info\">\n\n { !!infoMessage &&\n <PageInfoMessage message={infoMessage} />\n }\n\n { !!deleteModalIsOpen &&\n <DeactivateLocationModal\n address={address}\n callbackFunction={locationStateChangeCallback}\n currentLocale={currentLocale}\n handleClose={() => setDeleteModalIsOpen(false)}\n locationId={locationId}\n showModal={deleteModalIsOpen}\n siteName={siteName}\n showReportADeal={showReportADeal}\n />\n }\n\n <DuplicateLocationModal\n currentLocale={currentLocale}\n handleClose={() => setDuplicateModalIsOpen(false)}\n locationId={locationId}\n showModal={duplicateModalIsOpen}\n />\n\n <RentedOutModal\n address={address}\n callbackFunction={locationStateChangeCallback}\n handleClose={() => setRentedOutModalIsOpen(false)}\n locationId={locationId}\n showModal={rentedOutModalIsOpen}\n siteName={siteName}\n />\n\n { !!(!providerPartner && showPartnerBadgeBanner) &&\n <AdvertisementBlock\n children={\n <PartnerBadgeBanner\n partnerBadgeUrl={partnerBadgeUrl}\n qualityScore={scoreData}\n siteKey={siteKey}\n />\n }\n />\n }\n\n { !showLocationInfo && <PulsingLoader /> }\n\n { !!showLocationInfo &&\n <Fragment>\n\n { state === 'active' &&\n\n <div className=\"location-info__share-button-wrap\">\n\n <img className=\"share-icon\" src={shareIcon} alt=\"share-button\"/>\n\n <FacebookShareButton url={`${window.location.origin}${locationUrl}`}>\n <img src={facebookShare} alt=\"facebook-share\"/>\n </FacebookShareButton>\n\n <LinkedinShareButton url={`${window.location.origin}${locationUrl}`}>\n <img src={linkinShare} alt=\"linkin-share\"/>\n </LinkedinShareButton>\n\n <TwitterShareButton url={`${window.location.origin}${locationUrl}`}>\n <img src={twitterShare} alt=\"twitter-share\"/>\n </TwitterShareButton>\n </div>\n }\n\n <div className=\"location-info__main-info-wrapper\">\n <div className=\"location-info__main-info-block\">\n\n <div className=\"location-info__main-info-headline-block\">\n <div className=\"location-info__main-info-headline\">\n { sectionTranslated }:\n </div>\n\n { state === 'active' &&\n <a className=\"location-url\" href={locationUrl} target=\"_blank\">\n <SvgIco name=\"visibility\" size={24} />\n <span>{ I18n.t('provider.show_location') }</span>\n </a>\n }\n\n { !providerApproved &&\n <div className=\"location-info__pending-approval\">\n { I18n.t('providers.locations.edit.pending_provider_approval') }\n </div>\n }\n </div>\n\n <div className=\"location-info__address\">{ address }</div>\n\n <div className=\"location-info__quality-score-info-wrapper\">\n <div className=\"location-info__quality-score-info\">\n <div className={`location-info__quality-score-state ${visibilityQualityState}`}>\n { I18n.t('provider.location_info.quality_score.visibility_label') }: <strong>{ I18n.t(`provider.quality_score_chart.visibility_state.${visibilityQualityState}`) }</strong>\n </div>\n <div className=\"location-info__quality-score-points\">\n <ActionIcon iconSize={20} />\n { I18n.t('provider.location_info.quality_score.points_label') }: <strong>{ scoreData ? scoreData.totalScore : 0 }</strong>\n </div>\n </div>\n <div className=\"location-info__main-info-headline-block\">\n <HashLink to=\"#score-widget\" className=\"location-info__quality-score-link\">\n { I18n.t('provider.location_info.quality_score.details_link') }\n </HashLink>\n </div>\n </div>\n\n <div className={`location-info__status ${state}`} id=\"statusWrapper\">\n { I18n.t('providers.statistics.index.status') }:\n <div\n className=\"location-info__status-label\"\n data-tip={!isComplete ? explainLocationIncomplete : stateInfo}\n data-class=\"provider-tooltip\"\n data-for=\"state-tooltip\"\n ref={tooltipPopupRef}\n >\n <div className=\"location-info__status-dot\" />\n <div className=\"google-translate-helper\">\n { stateTranslated }\n </div>\n <ReactTooltip\n border={true}\n borderColor=\"black\"\n effect=\"solid\"\n id=\"state-tooltip\"\n place=\"right\"\n type=\"light\"\n />\n </div>\n </div>\n\n { areaFrom &&\n <div className=\"location-info__area\">\n { I18n.t('apps.lb_showroom.detailed.facts.area_label') }:\n <SvgIco name={'area'} size={22} />\n <span>{areaFormatter(areaFrom, areaTo)} {areaUnit || ''}</span>\n </div>\n }\n\n {(showYearlyPrice || showMonthlyPrice) && (\n <div className=\"location-info__prices\">\n <div className=\"location-info__prices-labels\">\n {showMonthlyPrice && (\n <div className=\"location-info__prices-label\">\n <SvgIco name={'price'} size={22} />\n { I18n.t('apps.lb_showroom.detailed.facts.monthly_price') }\n :\n </div>\n )}\n\n { showYearlyPrice &&\n <div className=\"location-info__prices-label\">\n <SvgIco name={'price'} size={22} />\n { I18n.t('apps.lb_showroom.detailed.economy.annual_prices_m2') }\n :\n </div>\n }\n </div>\n\n <div className=\"location-info__prices-values\">\n { showMonthlyPrice &&\n <div className=\"location-info__prices-value\">\n { pricesFormatter(yearlyRentPerM2WithCentsFrom, yearlyRentPerM2WithCentsTo)}{' '}\n { currencySymbolFormatter(currencyId) }\n </div>\n }\n\n { showYearlyPrice && (\n <div className=\"location-info__prices-value\">\n { pricesFormatter(yearlyRentPerM2WithCentsFrom, yearlyRentPerM2WithCentsTo)}{' '}\n { currencySymbolFormatter(currencyId) }\n </div>\n )}\n </div>\n </div>\n )}\n\n <div className=\"location-info__main-info-headline-block\">\n <div className=\"location-info__main-info-headline\">\n { I18n.t('generic.visuals') }:\n </div>\n\n <Link to={`${currentLocale}/new_providers/locations/edit/${locationId}/visuals`}>\n { I18n.t('provider.location_info.add_new') }\n </Link>\n </div>\n\n <div className=\"location-info__visuals-info-wrapper\">\n <div className=\"location-info__visuals-info\">\n { I18n.t('lb_showroom.detailed.asset_box.new_photos_button') }:\n <span>{photosCount}</span>\n </div>\n\n <div className=\"location-info__visuals-info\">\n { I18n.t('providers.floor_plans.form.description') }:\n <span>{floorPlansCount}</span>\n </div>\n\n <div className=\"location-info__visuals-info prospectuses\">\n { I18n.t('activerecord.models.prospectus_asset').one }:\n <span>{prospectusCount}</span>\n </div>\n </div>\n\n <div className=\"location-info__main-info-headline-block\">\n <div className=\"location-info__main-info-headline\">\n { I18n.t('reports.providers_order_report.enquiries') }\n </div>\n\n {!!enquiriesCountInteger && (\n <Link to={`${currentLocale}/new_providers/orders/${locationId}`}>\n { I18n.t('providers.locations.edit.show_enquiries') }\n </Link>\n )}\n </div>\n\n <div className=\"location-info__enquiries-list\">\n { enquiries &&\n !!Object.keys(enquiries).length &&\n Object.keys(enquiries).map((type, key) => (\n <div className=\"location-info__inquiry\" key={key}>\n { type }:<span>{ enquiries[type] }</span>\n </div>\n ))}\n </div>\n </div>\n\n <AssetsBlock {...assetsProps} googleApiKey={googleApiKey} />\n </div>\n\n <div className=\"location-info__manage-buttons\">\n <Link\n to={`${currentLocale}/new_providers/locations/edit/${locationId}/location`}\n className=\"location-info__manage-button location-info__manage-button--green\"\n >\n <img src={EditIcon} alt=\"Copy\" height={24} width={24} />\n { I18n.t('generic.edit') }\n </Link>\n\n <div\n className=\"location-info__manage-button\"\n onClick={() => setDuplicateModalIsOpen(true)}\n >\n <img src={CopyIcon} alt=\"Copy\" height={24} width={24} />\n { I18n.t('providers.copy_location_job.new.copy_button') }\n </div>\n\n {initialState === 'active' && (\n <Fragment>\n { providerAdvertisingStrategy ?\n (section === 'lease' ?\n <div className=\"location-info__manage-button\" onClick={() => setRentedOutModalIsOpen(true)}>\n <img src={ReportIcon} alt=\"Report\" height={24} width={24} />\n { I18n.t('providers.locations.edit.mark_as_rented_out') }\n </div>\n :\n null\n )\n :\n <Link to={`${currentLocale}/new_providers/report_deal?location_id=${locationId}`} className=\"location-info__manage-button\">\n <img src={ReportIcon} alt=\"Report\" height={24} width={24} />\n { I18n.t('providers.locations.edit.report_deal') }\n </Link>\n }\n\n <div className=\"location-info__manage-button\" onClick={() => setDeleteModalIsOpen(true)}>\n <img\n src={DeactivationIcon}\n alt=\"Deactivate\"\n height={24}\n width={24}\n />\n { I18n.t('parking.parking_lot.deactivate') }\n </div>\n </Fragment>\n )}\n\n {(initialState === 'new' || initialState === 'closed') &&\n <Fragment>\n { isComplete && providerApproved &&\n <div className={`location-info__manage-button location-info__manage-button--green ${locationActivationLoading ? 'disabled' : ''}`}\n onClick={handleActivateLocation}>\n { locationActivationLoading\n ?\n <Loader size={24} left={-8} />\n :\n <img\n src={ActivateIcon}\n alt=\"Activate\"\n height={24}\n width={24}\n />\n }\n <div>{ I18n.t('apps.lb_showroom.filters.activate') }</div>\n </div>\n }\n </Fragment>\n }\n </div>\n\n <div className=\"location-info__charts-wrapper\">\n <div className=\"location-info__chart-block\">\n { cachedViewsChart }\n </div>\n\n <div className=\"location-info__chart-block score\">\n <div className=\"sectionScrollTarget\" id=\"score-widget\" />\n <div className=\"location-info__chart-headline\">\n { I18n.t('providers.locations.edit.scores.title') }\n <a href={qualityScorePageLink} target=\"_blank\" className=\"location-info__score-read-more\">\n { I18n.t('provider_backend.quality_score.link') }\n <SvgIco name=\"open_in_new\" size={16} />\n </a>\n </div>\n\n <div className=\"location-info__chart-wrapper\">\n { scoreChart }\n </div>\n </div>\n </div>\n\n <Notes currentId={locationId} orderNotes={false} />\n\n </Fragment>\n }\n </div>\n );\n};\n\n\nexport default LocationInfo;\n","import React, { Fragment, useEffect, useState} from 'react';\nimport InlineChart from \"../../SharedComponents/Charts/InlineChart\";\nimport TooltipPopup from '../Popups/TooltipPopup';\nimport \"./index.sass\";\n\n\nconst LocationViewsChart = ({ createdAt,\n locationId,\n locationShownDatapoints,\n offset,\n switchPeriodCallback,\n tickFontSize,\n width,\n xaxisHeight }) => {\n\n const [activeDaysInChart, setActiveDaysInChart] = useState(15);\n const [locationDaysActive, setLocationDaysActive] = useState(1);\n\n\n useEffect(() => {\n const today = new Date();\n const dayCreatedAt = new Date(Date.parse(createdAt));\n const timeInMilliseconds = today.getTime() - dayCreatedAt.getTime();\n const daysActive = Math.ceil(timeInMilliseconds / (1000 * 60 * 60 * 24));\n const defaultActiveDays = daysActive > 30 ? 90 : daysActive > 15 ? 30 : 15;\n\n setLocationDaysActive(daysActive);\n setActiveDaysInChart(defaultActiveDays);\n switchPeriodCallback && switchPeriodCallback(defaultActiveDays);\n }, []);\n\n\n const locationViewsData = () => {\n const periodsCount = 15;\n const daysForOnePeriod = activeDaysInChart / periodsCount;\n const isOneDayPeriod = daysForOnePeriod === 1;\n const dayCreatedAt = new Date(Date.parse(createdAt));\n const setDateToLocalDateString = (dateObj) => dateObj.toLocaleDateString('en-GB').split('/').join('.');\n let showAsLastPeriod = false;\n let increment = 0;\n let data = [];\n\n dayCreatedAt.setHours(0,0,0,0);\n\n const dayCreatedAtTime = dayCreatedAt.getTime();\n\n for (let i = 0; i < periodsCount; i++) {\n const date = new Date();\n let views = 0;\n\n date.setDate(date.getDate() - increment);\n\n const dateFrom = new Date(date);\n const dateTo = new Date(date);\n\n !isOneDayPeriod && dateFrom.setDate(dateFrom.getDate() - daysForOnePeriod);\n i !== 0 && !isOneDayPeriod && dateTo.setDate(dateTo.getDate() - 1);\n dateFrom.setHours(0,0,0,0);\n dateTo.setHours(23,59,59,59);\n\n const dateToTime = dateTo.getTime();\n const dateFromTime = dateFrom.getTime();\n\n Object.entries(locationShownDatapoints).map(\n ([key, value]) => {\n const shownDate = new Date(key.replace(/-/g, '/'));\n const showDateTime = shownDate.getTime();\n const isInTimePeriod = showDateTime <= dateToTime && showDateTime >= dateFromTime;\n\n return isInTimePeriod && (views = value + views);\n }\n );\n\n const pointData = { date: setDateToLocalDateString(date) };\n const createdAtDateIsInPeriod = (dayCreatedAtTime === dateFromTime && isOneDayPeriod) || showAsLastPeriod;\n\n if ((dateFromTime === dayCreatedAtTime) || (dayCreatedAtTime < dateToTime) || showAsLastPeriod) {\n const dateLabel = `${activeDaysInChart !== 15 ? dateFrom.getDate() + '-' : ''}${setDateToLocalDateString(dateTo)}`;\n\n pointData.value = views;\n pointData.label = dateLabel;\n createdAtDateIsInPeriod && (pointData.dotSize = 14);\n pointData.tooltip =\n <Tooltip\n dateCreated={createdAtDateIsInPeriod ? setDateToLocalDateString(dayCreatedAt) : null}\n dateLabel={dateLabel}\n viewsCount={views}\n />\n }\n\n data.unshift(pointData);\n increment = increment + daysForOnePeriod;\n showAsLastPeriod && (showAsLastPeriod = false);\n\n if (!isOneDayPeriod && dayCreatedAtTime < dateToTime && dateFromTime <= dayCreatedAtTime) {\n showAsLastPeriod = true;\n }\n }\n\n return data;\n };\n\n\n const switchPeriod = (daysPeriod) => {\n setActiveDaysInChart(daysPeriod);\n switchPeriodCallback && switchPeriodCallback(daysPeriod);\n };\n\n\n const renderDaysSwitchers = () => {\n const daysPeriods = [15, 30, 90];\n\n return daysPeriods.map((daysPeriod, index) =>\n (index === 0 || locationDaysActive >= daysPeriod || (locationDaysActive < daysPeriod && locationDaysActive > daysPeriods[index - 1])) &&\n <div key={`location-views-chart-${index}`} className={`location-views-chart__days-switcher ${daysPeriod === activeDaysInChart ? 'active' : ''}`}\n onClick={() => switchPeriod(daysPeriod)}>\n { daysPeriod } { I18n.t('provider.views_chart.days') }\n </div>\n )\n };\n\n\n const Tooltip = ({ dateCreated, dateLabel, viewsCount }) =>\n <Fragment>\n { dateCreated &&\n <Fragment>\n <div>{ I18n.t('provider.views_chart.date_created') }</div>\n <div className=\"custom-tooltip__headline custom-tooltip__headline--green\">{ dateCreated }</div>\n { dateLabel !== dateCreated && !!viewsCount && <hr/> }\n </Fragment>\n }\n { !(dateCreated && !viewsCount) &&\n <Fragment>\n { !(dateCreated && dateLabel === dateCreated) &&\n <div className=\"custom-tooltip__headline\">{ dateLabel }</div>\n }\n <div className=\"custom-tooltip__value\">\n { I18n.t('activerecord.attributes.location.views_count') }: { viewsCount }\n </div>\n </Fragment>\n }\n </Fragment>\n\n\n return (\n <div className=\"location-views-chart\">\n <div className=\"location-views-chart__top\">\n <div className=\"location-views-chart__tooltip-wrap\">\n <h3>{ I18n.t('activerecord.attributes.location.views_count') }</h3>\n <TooltipPopup\n content={I18n.t('providers.locations.edit.views.description')}\n icon=\"info\"\n id={locationId ? locationId : \"view-tooltip\"}\n marginLeft={6}\n place=\"bottom\"\n offset={offset ? offset : {}}\n />\n </div>\n\n <div className=\"location-views-chart__days-switchers\">\n { renderDaysSwitchers() }\n </div>\n </div>\n\n <InlineChart\n data={locationViewsData(locationShownDatapoints || {})}\n lineKey=\"value\"\n tickFontSize={tickFontSize}\n tooltipLabel={I18n.t('activerecord.attributes.location.views_count')}\n width={width}\n xaxisHeight={xaxisHeight}\n xKey=\"date\"\n />\n </div>\n )\n}\n\nexport default LocationViewsChart;\n","import React from \"react\";\nimport { Link } from \"react-router-dom\";\nimport ReactTooltip from \"react-tooltip\";\n\nimport NotesImg from \"../../../src/images/provider/note.svg\";\nimport { SvgIco } from \"../../SharedComponents/Icons\";\nimport TooltipPopup from \"../Popups/TooltipPopup\";\nimport {\n CellDropdown,\n handleHorizontalScroll,\n InfoIconTooltip,\n TableFilterHeader,\n TableHashLink\n} from \"../Table/Columns\";\n\n\nexport const LocationsColumns = (currentLocale,\n data,\n providerApproved,\n activeFilter,\n orderDirection,\n stateUpdateSuccess,\n stateChangeCallback,\n stateChangeLoadingId,\n setOrderBy,\n handleLocationState,\n openNotesModal) => React.useMemo(\n () =>\n [\n //===========================================================================>\n\n { Header: I18n.t('generic.actions'),\n accessor: 'manage-icons',\n\n Cell: data =>\n <div className=\"table-actions-wrapper\">\n <ReactTooltip\n border={true}\n borderColor=\"black\"\n effect='solid'\n id=\"location-show-tooltip\"\n place='top'\n type=\"light\" />\n\n <Link to={`${currentLocale}/new_providers/locations/info/${data.cell.row.original.id}`}\n className=\"table-action-link\"\n data-for=\"location-show-tooltip\"\n data-tip={I18n.t('provider.show_location')}>\n <SvgIco name=\"visibility\" size={20} />\n </Link>\n\n <ReactTooltip\n border={true}\n borderColor=\"black\"\n effect='solid'\n id=\"location-edit-tooltip\"\n place='top'\n type=\"light\" />\n\n <Link to={`${currentLocale}/new_providers/locations/edit/${data.cell.row.original.id}/location`}\n className=\"table-action-link\"\n data-for=\"location-edit-tooltip\"\n data-tip={I18n.t('provider.locations.edit_location')}>\n <SvgIco name=\"edit\" size={20} />\n </Link>\n </div>\n },\n\n //===========================================================================>\n\n { Header:\n <TableFilterHeader\n handleOrderBy={() => setOrderBy('address_line_1')}\n headline={I18n.t('providers.statistics.index.address')}\n isActive={activeFilter === 'address_line_1'}\n orderDirection={orderDirection} />,\n\n accessor: 'address',\n style: { maxWidth: '266px', minWidth: '266px' },\n\n Cell: data =>\n <Link to={`${currentLocale}/new_providers/locations/info/${data.cell.row.original.id}`}>\n { data.value }\n </Link>,\n },\n\n //===========================================================================>\n\n { Header:\n <TableFilterHeader\n handleOrderBy={() => setOrderBy('area_from')}\n headline={I18n.t('activerecord.attributes.location.area_interval')}\n isActive={activeFilter === 'area_from'}\n orderDirection={orderDirection}\n style={{ whiteSpace: 'nowrap' }} />,\n\n accessor: 'fullArea',\n\n Cell: data =>\n <TableHashLink\n link={`${currentLocale}/new_providers/locations/edit/${data.cell.row.original.id}/economy#areaFrom`}\n offset={102}\n value={data.value ? `${data.value} ${data.cell.row.original.areaUnit || ''}` : ''}\n nowrap\n />\n },\n\n //===========================================================================>\n\n { Header: I18n.t('activerecord.attributes.property.category'),\n style: { whiteSpace: 'nowrap' },\n\n Cell: data => {\n const { id, section, kindTranslated } = data.cell.row.original;\n const translatedSection = I18n.t(`generic.models.property.category.${section}`);\n\n return (\n <TableHashLink\n additionalClass=\"capitalize\"\n link={`${currentLocale}/new_providers/locations/edit/${id}/economy#kind`}\n offset={102}\n value={`${ section === 'investment' ? translatedSection.one : translatedSection } / ${kindTranslated}`} />\n )\n }\n },\n\n //===========================================================================>\n\n { Header:\n <TableFilterHeader\n handleOrderBy={() => setOrderBy('updated_at_by_provider_only')}\n headline={I18n.t('activerecord.attributes.location.updated_at')}\n isActive={activeFilter === 'updated_at_by_provider_only'}\n orderDirection={orderDirection} />,\n\n accessor: 'updatedAtByProviderOnlyFormatted',\n\n Cell: data =>\n <Link to={`${currentLocale}/new_providers/locations/edit/${data.cell.row.original.id}/location`}>\n { data.value }\n </Link>\n },\n\n //===========================================================================>\n\n { Header: I18n.t('activerecord.attributes.location.primary_contact'),\n accessor: 'primaryContactName',\n Cell: data => <div className=\"google-translate-helper\">{ data.value }</div>,\n },\n\n //===========================================================================>\n\n { Header:\n <TableFilterHeader\n handleOrderBy={() => setOrderBy('photo_assets')}\n headline={I18n.t('lb_showroom.detailed.asset_box.new_photos_button')}\n isActive={activeFilter === 'photo_assets'}\n orderDirection={orderDirection} />,\n\n accessor: 'photosCount',\n\n Cell: data =>\n <TableHashLink\n link={`${currentLocale}/new_providers/locations/edit/${data.cell.row.original.id}/visuals#photo`}\n offset={160}\n value={data.value} />\n },\n\n //===========================================================================>\n\n { Header:\n <TableFilterHeader\n handleOrderBy={() => setOrderBy('floor_plan_assets')}\n headline={I18n.t('providers.floor_plans.form.description')}\n isActive={activeFilter === 'floor_plan_assets'}\n orderDirection={orderDirection}\n style={{ whiteSpace: 'nowrap' }} />,\n\n accessor: 'floorPlansCount',\n\n Cell: data =>\n <TableHashLink\n link={`${currentLocale}/new_providers/locations/edit/${data.cell.row.original.id}/visuals#floor-plans`}\n offset={160}\n value={data.value} />\n },\n\n //===========================================================================>\n\n { Header:\n <TableFilterHeader\n additionalClass=\"capitalize\"\n handleOrderBy={() => setOrderBy('prospectus_assets')}\n headline={I18n.t('reports.providers_order_report.prospectuses')}\n isActive={activeFilter === 'prospectus_assets'}\n orderDirection={orderDirection} />,\n\n accessor: 'prospectusCount',\n\n Cell: data =>\n <TableHashLink\n link={`${currentLocale}/new_providers/locations/edit/${data.cell.row.original.id}/visuals#prospectuses`}\n offset={160}\n value={data.value} />\n },\n\n //===========================================================================>\n\n {\n Header:\n <TableFilterHeader\n handleOrderBy={() => setOrderBy('enquiries_count')}\n headline={I18n.t('reports.providers_order_report.enquiries')}\n isActive={activeFilter === 'enquiries_count'}\n orderDirection={orderDirection} />,\n\n accessor: 'enquiriesCountInteger',\n Cell: data => <div className=\"google-translate-helper\">{ data.value }</div>,\n },\n\n //===========================================================================>\n\n { Header:\n <div className=\"leases__quality-score-table-header\">\n { I18n.t('providers.locations.edit.scores.title') }\n <TooltipPopup\n content={I18n.t('providers.locations.edit.scores.description')}\n icon=\"info\"\n id=\"score-tooltip\"\n marginLeft={8}\n onShow={(handleClose) => handleHorizontalScroll('locations', handleClose)} />\n </div>,\n\n accessor: 'scoreInPercents',\n\n Cell: data =>\n <div className=\"leases__quality-score-table-cell\">\n <progress className=\"location-score-progress\" value={data.value} max=\"100\">\n { data.value } / 100\n </progress>\n { `${data.value} / 100` }\n </div>\n },\n\n //===========================================================================>\n\n { Header:\n <div>{ I18n.t('providers.notes.list.title') }\n <div id=\"locations-scroll-end-target\" className=\"scroll-end-target\" />\n </div>,\n accessor: 'notesCount',\n\n Cell: data =>\n <div className=\"table-notes-cell\"\n onClick={() => openNotesModal(data.cell.row.original.id)}>\n <img\n alt=\"Note\"\n height={19}\n src={NotesImg}\n width={15} />\n <p>({ data.value })</p>\n </div>\n },\n\n //===========================================================================>\n\n { Header:\n <div>{ I18n.t('providers.statistics.index.status') }\n <div id=\"locations-sticky-start-target\" className=\"sticky-start-target\" />\n </div>,\n accessor: 'avaliableEnquiryStates',\n sticky: 'right',\n\n Cell: data => {\n const { id, state, stateInfo, stateTranslated } = data.cell.row.original;\n const statusOptions = data.value && providerApproved && Object.entries(data.value).map(([key, value]) => ({ value: key, label: value }));\n\n return (\n <div className=\"leases__status-cell\">\n <div className=\"sticky-start-target\" />\n { statusOptions\n ?\n <CellDropdown\n handleChange={(value) => handleLocationState(value, data.row.id)}\n loading={stateChangeLoadingId === id}\n onShow={(handleClose) => handleHorizontalScroll('locations', handleClose)}\n options={statusOptions}\n value={state}\n withCallback={true}/>\n :\n stateTranslated\n }\n\n <InfoIconTooltip id={`status-${id}-tooltip`} position=\"left\" tooltip={stateInfo} />\n </div>\n )\n },\n },\n\n //===========================================================================>\n\n ], [data, activeFilter, stateChangeLoadingId]\n )\n;\n","import React, { useState, useEffect } from 'react';\nimport { useQuery, useMutation } from '@apollo/client';\nimport { Link, useHistory, useParams, useRouteMatch } from 'react-router-dom';\n\nimport BasicDropdown from \"../../SharedComponents/Forms/BasicDropdown\";\nimport RadioButtons from \"../../SharedComponents/Forms/RadioButtons\";\nimport { useDebouncedEffect } from \"../../SharedComponents/hooks\";\nimport { SvgIco } from \"../../SharedComponents/Icons\";\nimport PageInfoMessage from \"../Errors/PageInfoMessage\";\nimport NetworkError from \"../Errors/NetworkError\";\nimport { GET_LOCATIONS, GET_LOCATIONS_XLS_TOKEN } from '../ApolloClient/queries';\nimport { ACTIVATE_LOCATION } from \"../ApolloClient/mutations\";\nimport Table from '../Table';\nimport TokenizedFileModalLink from \"../Modals/TokenizedFileModalLink\";\nimport NotesModal from '../Modals/NotesModal';\nimport DeactivateLocationModal from \"../Modals/DeactivateLocationModal\";\nimport RentedOutModal from \"../Modals/RentedOutModal\";\nimport InfoMessagePopup from \"../Popups/InfoMessagePopup\";\nimport Page404 from '../Errors/Page404';\nimport { LocationsColumns } from './LocaationsColumns';\n\nimport '../Table/TablePage.sass';\nimport './index.sass';\n\n\nconst Locations = ({ asPreview,\n currentLocale,\n orderByFilter,\n orderDirectionFilter,\n providerApproved,\n providerOnDealStrategy,\n setShowCreateLeaseButton,\n siteName,\n states }) => {\n\n const history = useHistory();\n const { category } = useParams();\n const match = useRouteMatch();\n const categories = ['lease_properties', 'sales_properties', undefined, 'anonymous'];\n\n const checkCategory = (category) => {\n return categories.includes(category)\n };\n\n const isValidCategory = checkCategory(match.params.category);\n\n\n if (!isValidCategory) {\n return <Page404 currentLocale={currentLocale} />\n }\n\n const [queryValue, setQueryValue] = useState('');\n const [locationId, setLocationId] = useState('');\n const [locationAddress, setLocationAddress] = useState('');\n const [infoMessage, setInfoMessage] = useState('');\n const [infoPopupMessage, setInfoPopupMessage] = useState('');\n const [stateChangeLoadingId, setStateChangeLoadingId] = useState('');\n const [locationsData, setLocationsData] = useState([]);\n const [totalCount, setTotalCount] = useState(0);\n const [initialLoad, setInitialLoad] = useState(true);\n const [showNoteModal, setShowNoteModal] = useState(false);\n const [deleteModalIsOpen, setDeleteModalIsOpen] = useState(false);\n const [rentedOutModalIsOpen, setRentedOutModalIsOpen] = useState(false);\n const [stateUpdateSuccess, setStateUpdateSuccess] = useState(false);\n const [infoMessagePopupIsOpen, setInfoMessagePopupIsOpen] = useState(false);\n const [infoPopupMessageError, setInfoPopupMessageError] = useState(null);\n\n const [filters, setFilters] = useState({\n locationState: '',\n page: 1,\n perPage: asPreview ? 4 : 20,\n orderBy: orderByFilter || 'updated_at_by_provider_only',\n orderDirection: orderDirectionFilter || 'desc',\n query: '',\n showOnlyContactLocations: false,\n });\n\n const { locationState, page, perPage, orderBy, orderDirection, showOnlyContactLocations } = filters;\n\n const { loading: locationsLoading, error, refetch: refetchLocations } = useQuery(GET_LOCATIONS, {\n variables: { category, ...filters },\n onCompleted: data => {\n const { locations, totalCount }= data.locations;\n\n setLocationsData(locations);\n setTotalCount(totalCount);\n initialLoad && setInitialLoad(false);\n stateChangeLoadingId && setStateChangeLoadingId('');\n },\n });\n\n const [activateLocation] = useMutation(ACTIVATE_LOCATION, {\n onCompleted: data => !data.error && locationStateChangeCallback(),\n });\n\n const loading = !stateChangeLoadingId && locationsLoading;\n\n useEffect(() => {\n refetchLocations().catch(error => console.log(error));\n }, []);\n\n useEffect(() => {\n refetchLocations().catch(error => console.log(error));\n }, [filters]);\n\n useEffect(() => {\n loading && setLocationsData(Array(perPage).fill({}));\n }, [loading]);\n\n useEffect(() => {\n let locationInfoMessage = null;\n\n locationsData.map(location => location.infoMessage && (locationInfoMessage = location.infoMessage))\n setInfoMessage(locationInfoMessage);\n }, [locationsData]);\n\n useDebouncedEffect(() => handleFilters({ query: queryValue, page: 1 }), [queryValue], 500);\n\n\n const isLease = category !== 'sales_properties';\n const showReportADeal = providerOnDealStrategy && isLease;\n\n const perPageOptions = [\n { value: '10', label: '10' },\n { value: '20', label: '20' },\n { value: '40', label: '40' },\n ];\n\n const locationStateOptions = [\n {value: null, label: I18n.t('generic.all'), className: !locationState ? 'selected' : null},\n {value: \"new\", label: states.new},\n {value: \"active\", label: states.active},\n {value: \"rented_out\", label: states.rentedOut},\n {value: \"closed\", label: states.closed},\n ];\n\n const radioOptions = [\n { label: I18n.t('providers.locations.filter.my_locations'), value: true, checked: showOnlyContactLocations },\n { label: I18n.t('providers.orders.filter.all_locations'), value: false, checked: !showOnlyContactLocations },\n ];\n\n\n const handleFilters = (newFilters) =>\n setFilters(prevFilters => ({\n ...prevFilters,\n ...newFilters,\n }));\n\n\n const handleOrderBy = (field) => {\n const newOrderDirection = field === orderBy && orderDirection === 'asc' ? 'desc' : 'asc';\n\n handleFilters({ orderBy: field, orderDirection: newOrderDirection });\n };\n\n\n const openNotesModal = (locationId) => {\n setShowNoteModal(true);\n setLocationId(locationId);\n };\n\n\n const closeInfoMessagePopup = () => {\n setInfoMessagePopupIsOpen(false);\n infoPopupMessageError && setInfoPopupMessageError(false);\n };\n\n\n const handleLocationState = (state, locationIndex) => {\n\n const { address, id } = locationsData[locationIndex];\n\n setLocationId(id);\n setLocationAddress(address);\n setInfoPopupMessage(I18n.t(`providers.locations.state.${state}.information`));\n\n switch (state) {\n case 'active':\n setStateChangeLoadingId(id);\n activateLocation({ variables: { id: Number(id) }})\n .catch(error => {\n console.log('error', error);\n setStateChangeLoadingId('');\n setInfoPopupMessage(I18n.t('apps.lb_showroom.detailed.order_form.error.message'));\n setInfoPopupMessageError(true);\n setInfoMessagePopupIsOpen(true);\n });\n return;\n case 'closed':\n setDeleteModalIsOpen(true);\n return;\n case 'rented_out':\n showReportADeal\n ? history.push({\n pathname: `${currentLocale}/new_providers/report_deal`,\n search: `?location_id=${id}`,\n })\n : setRentedOutModalIsOpen(true);\n return;\n }\n };\n\n\n const locationStateChangeCallback = (closeModal, location, successMessage) =>\n refetchLocations()\n .then(() => {\n successMessage && setInfoPopupMessage(successMessage)\n closeModal && closeModal();\n setInfoMessagePopupIsOpen(true);\n })\n .catch(error => {\n console.log('error', error);\n closeModal && closeModal();\n });\n\n\n const locationsColumns = LocationsColumns(currentLocale,\n locationsData,\n providerApproved,\n orderBy,\n orderDirection,\n stateUpdateSuccess,\n setStateUpdateSuccess,\n stateChangeLoadingId,\n handleOrderBy,\n handleLocationState,\n openNotesModal);\n\n const tableHeadline =\n category === 'sales_properties'\n ? I18n.t('layouts.providers.navigation.sales_properties')\n : I18n.t('layouts.providers.navigation.locations');\n\n const locationsEmpty = totalCount === 0 && !loading;\n\n\n if (!asPreview && error) return <NetworkError />;\n\n asPreview && setShowCreateLeaseButton && setShowCreateLeaseButton(locationsEmpty);\n\n if (!(asPreview && locationsEmpty)) {\n return (\n <div className={`leases table-page ${ asPreview ? 'preview' : '' }`}>\n\n { !asPreview && infoMessage && !loading && <PageInfoMessage message={infoMessage} /> }\n\n <NotesModal\n handleClose={() => setShowNoteModal(false)}\n id={locationId}\n orderNotes={false}\n showModal={showNoteModal} />\n\n <InfoMessagePopup\n customClass={infoPopupMessageError ? 'error' : null}\n handleClose={closeInfoMessagePopup}\n message={infoPopupMessage}\n visible={infoMessagePopupIsOpen} />\n\n { deleteModalIsOpen &&\n <DeactivateLocationModal\n address={locationAddress}\n callbackFunction={locationStateChangeCallback}\n currentLocale={currentLocale}\n handleClose={() => setDeleteModalIsOpen(false)}\n locationId={locationId}\n showModal={deleteModalIsOpen}\n showReportADeal={showReportADeal}\n siteName={siteName}\n />\n }\n\n <RentedOutModal\n address={locationAddress}\n callbackFunction={locationStateChangeCallback}\n handleClose={() => setRentedOutModalIsOpen(false)}\n locationId={locationId}\n showModal={rentedOutModalIsOpen}\n siteName={siteName} />\n\n { !asPreview &&\n <div className=\"table-page__filters-wrapper\">\n\n <div className=\"table-page__filters-left\">\n <div className=\"search-input-wrapper\">\n <input\n className=\"search-input\"\n maxLength=\"256\"\n onChange={(e) => setQueryValue(e.target.value)}\n placeholder={I18n.t('generic.search')}\n type=\"text\"\n value={queryValue} />\n <SvgIco name=\"search\" size={16} />\n </div>\n\n <BasicDropdown\n handleChange={(value) => handleFilters({ locationState: value || '', page: 1 })}\n options={locationStateOptions}\n placeholder={I18n.t('providers.statistics.index.status')}\n value={locationState || locationStateOptions[0].value}\n wrapperClass=\"leases__status-dropdown\" />\n\n <RadioButtons\n handleChange={(value) => handleFilters({ showOnlyContactLocations: value, page: 1 })}\n options={radioOptions} />\n </div>\n\n { !asPreview && totalCount > 0 &&\n <TokenizedFileModalLink\n dataName=\"locations\"\n linkLabel=\"Excel\"\n query={GET_LOCATIONS_XLS_TOKEN}\n variables={{ ...filters, category, page: null, perPage: null, xls: true }}\n />\n }\n </div>\n }\n\n <div className=\"table-page__title-wrapper\">\n <div className=\"table-page__title\" style={{ justifyContent: asPreview ? 'flex-start' : 'space-between' }}>\n <h3>{ tableHeadline } ({ totalCount })</h3>\n <div className=\"create-new-button\">\n <Link to={`${currentLocale}/new_providers/${category === 'sales_properties' ? 'sales' : category === 'anonymous' ? 'anonymous' : 'lease'}/new/location`}>\n + { isLease\n ? I18n.t('providers.locations.index.create_location')\n : I18n.t('providers.locations.create_sale_property')\n }\n </Link>\n </div>\n </div>\n { asPreview &&\n <Link to={`${currentLocale}/new_providers/locations/lease_properties`} className=\"table-page__see-all-link\">\n <span>{ I18n.t('provider.tables.see_all_link') }</span>\n </Link>\n }\n </div>\n\n <Table\n columns={locationsColumns}\n currentPage={page}\n data={locationsData}\n disableSortBy={true}\n extraClass=\"no-wrap\"\n hideBottomFilters={!!asPreview}\n initialLoad={initialLoad}\n loading={loading}\n name=\"locations\"\n perPage={perPage}\n perPageOptions={perPageOptions}\n setPage={(page) => handleFilters({ page })}\n setPerPage={(perPage) => handleFilters({ perPage, page: 1 })}\n totalCount={totalCount} />\n </div>\n );\n } else {\n return null;\n }\n}\n\nexport default Locations;\n","import React, { useState } from 'react';\nimport { Link } from \"react-router-dom\";\n\nimport AssistanceBanner from '../../../src/images/provider/get-assistance.svg';\nimport Clients from \"../Clients\";\nimport ContactsPage from \"../ContactsPage\";\nimport Locations from \"../Locations\";\n\nimport './index.sass';\n\n\nconst MainDashboard = ({ contactName,\n currencySymbolFormatter,\n currentLocale,\n enquiryStates,\n isNumber,\n providerApproved,\n providerOnDealStrategy,\n resourceNotFoundError,\n siteName,\n states,\n }) => {\n\n const [showCreateLeaseButton, setShowCreateLeaseButton] = useState(null);\n\n return (\n <div className=\"main-dashboard\">\n <div className=\"main-dashboard__top-block\">\n <div className=\"main-dashboard__top-text\">\n <p className=\"main-dashboard__headline\">\n <span>{ I18n.t('providers.providers.show.greeting', { name: '' }) }</span><span>,</span> { contactName }\n </p>\n <p>{ I18n.t('providers.dashboard.greeting_text') }</p>\n </div>\n <img src={AssistanceBanner} alt=\"Get Assistance\" width={303} height={216} />\n </div>\n\n { showCreateLeaseButton &&\n <div className=\"create-new-button alone\">\n <Link to={`${currentLocale}/new_providers/lease/new/location`}>\n + { I18n.t('providers.locations.index.create_location') }\n </Link>\n </div>\n }\n\n <Clients\n asPreview={true}\n currencySymbolFormatter={currencySymbolFormatter}\n currentLocale={currentLocale}\n enquiryStates={enquiryStates}\n isNumber={isNumber}\n resourceNotFoundError={resourceNotFoundError}\n />\n\n <Locations\n asPreview={true}\n category=\"lease_properties\"\n currentLocale={currentLocale}\n key=\"lease_properties\"\n orderByFilter='updated_at_by_provider_only'\n orderDirectionFilter=\"desc\"\n providerApproved={providerApproved}\n providerOnDealStrategy={providerOnDealStrategy}\n setShowCreateLeaseButton={setShowCreateLeaseButton}\n siteName={siteName}\n states={states}\n />\n\n <ContactsPage\n asPreview={true}\n currentLocale={currentLocale}\n />\n\n </div>\n );\n}\n\nexport default MainDashboard;\n","import React, {useState} from 'react';\nimport { useMutation } from \"@apollo/client\";\n\nimport { ADD_CLIENT_RELATION } from \"../ApolloClient/mutations\";\nimport ModalNetworkError from \"../Errors/ModalNetworkError\";\nimport { FileLoader } from \"../Loaders\";\nimport ProviderModal from \"./ProviderModal\";\n\nimport './AlreadyKnownLeadStatusModal.sass';\n\n\nconst AlreadyKnownLeadStatusModal = ({ showModal, handleClose, clientId, callbackFunction }) => {\n\n const [loading, setLoading] = useState(false);\n\n const [addClientRelation, { error }] = useMutation(ADD_CLIENT_RELATION, {\n onCompleted: data => {\n if (!data.error) {\n callbackFunction ? callbackFunction(closeModal) : closeModal();\n }\n }\n });\n\n const handleActivate = () => {\n setLoading(true);\n addClientRelation({ variables: { clientId }});\n };\n\n\n const closeModal = () => {\n setLoading(false);\n handleClose();\n };\n\n\n return (\n <ProviderModal modalClass=\"known-lead-location-modal\"\n showModal={showModal}\n handleClose={handleClose}>\n\n { error && <ModalNetworkError /> }\n\n <div className=\"known-lead-location-modal__headline\">\n { I18n.t('providers.enquiries.pop_up.label') }\n </div>\n\n <div className=\"known-lead-location-modal__explanation\">\n { I18n.t('providers.enquiries.pop_up.body') }\n </div>\n\n { loading && !error && <FileLoader /> }\n\n <div className=\"known-lead-location-modal__buttons-wrapper\">\n <div className={`provider-modal__button green ${loading ? 'inactive' : ''}`} onClick={handleActivate}>\n { I18n.t('providers.enquiries.pop_up.confirm_button') }\n </div>\n <div className={`provider-modal__button ${loading ? 'inactive' : ''}`} onClick={handleClose}>\n { I18n.t('providers.enquiries.pop_up.cancel_button') }\n </div>\n </div>\n\n </ProviderModal>\n )\n}\n\nexport default AlreadyKnownLeadStatusModal;\n","import React from 'react';\n\nimport ProviderModal from \"./ProviderModal\";\n\nimport './BaseModal.sass';\n\n\nconst BaseModal = ({ confirmButtonText,\n handleClose,\n hideReject,\n modalIsOpen,\n onConfirmClick,\n onRejectClick,\n rejectButtonText,\n textContent }) => {\n\n return (\n <ProviderModal modalClass=\"base-modal\"\n handleClose={handleClose}\n showModal={modalIsOpen}>\n\n <p>{ textContent }</p>\n\n <div className=\"base-modal__buttons-wrapper\">\n { !hideReject &&\n <div className=\"base-modal__reject-button\" onClick={onRejectClick}>\n { rejectButtonText }\n </div>\n }\n\n <div className=\"base-modal__confirm-button\" onClick={onConfirmClick}>\n { confirmButtonText }\n </div>\n\n </div>\n </ProviderModal>\n )\n};\n\n\nexport default BaseModal;\n","import React from 'react';\n\nimport CreateNewContact from '../ContactsPage/CreateNewContact';\nimport FormMessageBlock from '../../SharedComponents/FormMessages/FormMessageBlock';\nimport ProviderModal from './ProviderModal';\n\nimport './CreateNewContactModal.sass';\n\n\nconst CreateNewContactModal = ({ editContactData,\n handleCloseNotification,\n closeModal,\n showModal,\n showNotification,\n editModal,\n submitForm,\n }) => {\n\n\n return (\n <ProviderModal\n showModal={showModal}\n handleClose={closeModal}\n modalClass=\"contacts-create-modal\"\n >\n <div className=\"modal-wrapper\">\n <div className=\"modal-content-wrapper\">\n <p className=\"contacts-create-modal__header\">\n { editModal\n ? I18n.t('providers.contacts.list.edit_new_secondary_contact')\n : I18n.t('providers.contacts.list.add_new_secondary_contact')\n }\n </p>\n </div>\n\n <div className=\"notification-wrapper\">\n <FormMessageBlock\n show={showNotification}\n closeNotification={handleCloseNotification}\n />\n </div>\n\n <CreateNewContact\n editContactData={editContactData}\n editModal={editModal}\n submitForm={submitForm}\n closeModal={closeModal}\n />\n </div>\n </ProviderModal>\n );\n};\n\nexport default CreateNewContactModal;\n","import React, { Fragment, useState } from 'react';\nimport { useMutation } from \"@apollo/client\";\nimport { useHistory } from \"react-router-dom\";\n\nimport RadioButtons from \"../../SharedComponents/Forms/RadioButtons\";\nimport { DEACTIVATE_LOCATION, DEACTIVATE_LOCATION_AT_THE_MONTH_END } from \"../ApolloClient/mutations\";\nimport ModalNetworkError from \"../Errors/ModalNetworkError\";\nimport { FileLoader } from \"../Loaders\";\nimport ProviderModal from \"./ProviderModal\";\n\nimport './DeactivateLocationModal.sass';\n\n\nconst DeactivateLocationModal = ({ address,\n callbackFunction,\n currentLocale,\n handleClose,\n locationId,\n showModal,\n showReportADeal,\n siteName }) => {\n\n const [leaseWasRentedOut, setLeaseWasRentedOut] = useState(true);\n const [loading, setLoading] = useState(false);\n const [deactivationReason, setDeactivationReason] = useState('');\n const [deactivateLocationNow, setDeactivateLocationNow] = useState(false);\n\n const history = useHistory();\n\n\n const [deactivateLocation, { error }] = useMutation(DEACTIVATE_LOCATION, {\n onCompleted: data => {\n const { error, location } = data.deactivateLocation;\n\n !error && callbackFunction ? callbackFunction(closeModal, location) : closeModal();\n },\n });\n\n\n const [deactivateLocationAtTheMonthEnd, { error: deactivateLocationAtTheMonthError }] = useMutation(DEACTIVATE_LOCATION_AT_THE_MONTH_END, {\n onCompleted: data => {\n const { error } = data.deactivateLocationAtTheMonthEnd;\n\n !error && callbackFunction ? callbackFunction(closeModal, false, I18n.t('providers.locations.deactivate.terms_option.month_end.success_message')) : closeModal();\n },\n refetchQueries: ['getLocationInfo'],\n });\n\n\n const deactivationOptions = [\n { label: I18n.t('providers.locations.deactivate.lease_rented_out_yes'), value: true, checked: leaseWasRentedOut },\n { label: I18n.t('providers.locations.deactivate.lease_rented_out_no'), value: false, checked: !leaseWasRentedOut },\n ];\n\n\n const deactivationTermsOptions = [\n { label: <div className=\"deactivate-location-modal__deactivation-term-option\">\n <div className=\"deactivate-location-modal__deactivation-term-option-headline\">\n { I18n.t('providers.locations.deactivate.terms_option.month_end.headline') }\n </div>\n <div className=\"deactivate-location-modal__deactivation-term-option-description\">\n { I18n.t('providers.locations.deactivate.terms_option.month_end.description') }\n </div>\n </div>,\n value: false,\n checked: !deactivateLocationNow,\n },\n { label: <div className=\"deactivate-location-modal__deactivation-term-option\">\n <div className=\"deactivate-location-modal__deactivation-term-option-headline\">\n { I18n.t('providers.locations.deactivate.terms_option.now.headline') }\n </div>\n <div className=\"deactivate-location-modal__deactivation-term-option-description\">\n { I18n.t('providers.locations.deactivate.terms_option.now.description') }\n </div>\n </div>,\n value: true,\n checked: deactivateLocationNow\n },\n ];\n\n\n const closeModal = () => {\n setLoading(false);\n handleClose();\n };\n\n\n const handleDelete = () => {\n if (leaseWasRentedOut && showReportADeal) {\n history.push(`${currentLocale}/new_providers/report_deal?location_id=${locationId}`);\n } else {\n setLoading(true);\n deactivateLocation({ variables: { id: Number(locationId), reason: deactivationReason }});\n }\n };\n\n\n const handleRadioButtonsChange = (value) => {\n setLeaseWasRentedOut(value);\n value && setDeactivationReason('');\n };\n\n\n const handleConfirm = () => {\n showReportADeal\n ? (leaseWasRentedOut || deactivationReason.length ? handleDelete() : null)\n : (deactivateLocationNow ? handleDelete() : deactivateLocationAtTheMonthEnd({ variables: { id: Number(locationId) }}));\n };\n\n\n return (\n <ProviderModal modalClass=\"deactivate-location-modal\"\n showModal={showModal}\n handleClose={handleClose}>\n\n { (error || deactivateLocationAtTheMonthError) && <ModalNetworkError /> }\n\n <div className=\"deactivate-location-modal__headline\">\n { I18n.t('provider.location_deactivation.headline') }\n </div>\n\n { showReportADeal\n ?\n <Fragment>\n <div className=\"deactivate-location-modal__explanation\">\n { I18n.t('providers.locations.deactivate.when_deactivating', { site: siteName }) }\n </div>\n\n <div className=\"deactivate-location-modal__location-address\">\n { address }\n </div>\n\n <div className=\"deactivate-location-modal__report-deal-block\">\n <div className=\"deactivate-location-modal__report-deal-headline\">\n { I18n.t('providers.locations.deactivate.deactivate_question_text') }\n </div>\n <div className=\"deactivate-location-modal__report-deal-question\">\n { I18n.t('providers.locations.deactivate.lease_rented_out') }\n </div>\n\n <RadioButtons\n handleChange={value => handleRadioButtonsChange(value)}\n name=\"leaseWasRentedOut\"\n options={deactivationOptions} />\n\n { !leaseWasRentedOut &&\n <textarea\n id=\"deactivationReason\"\n name=\"deactivationReason\"\n onChange={e => setDeactivationReason(e.target.value)}\n placeholder={I18n.t('providers.locations.deactivate.deactivation_reason')}\n value={deactivationReason}\n />\n }\n </div>\n </Fragment>\n :\n <Fragment>\n <div className=\"deactivate-location-modal__explanation\">\n { I18n.t('providers.locations.deactivate.terms_subheader') }:\n </div>\n\n <RadioButtons\n handleChange={value => setDeactivateLocationNow(value)}\n name=\"deactivationTerms\"\n options={deactivationTermsOptions} />\n </Fragment>\n }\n\n { loading && !error && !deactivateLocationAtTheMonthError && <FileLoader /> }\n\n <div className={`deactivate-location-modal__buttons-wrapper ${loading ? 'inactive' : ''}`}>\n <div className=\"deactivate-location-modal__button close\" onClick={handleClose}>\n { I18n.t('search_agent.modal.cancel') }\n </div>\n <div className={`deactivate-location-modal__button confirm ${loading ? 'inactive' : ''}`} onClick={handleConfirm}>\n { !showReportADeal ? I18n.t('parking.parking_lot.deactivate') : I18n.t('providers.providers.provider_deals_notifications.accept') }\n </div>\n </div>\n\n </ProviderModal>\n )\n};\n\n\nexport default DeactivateLocationModal;\n","import React from 'react';\nimport { useMutation } from \"@apollo/client\";\n\nimport { DELETE_CONTACT_FOREVER } from \"../ApolloClient/mutations\";\nimport ModalNetworkError from \"../Errors/ModalNetworkError\";\nimport ProviderModal from \"./ProviderModal\";\n\nimport './DeleteContactForeverModal.sass';\n\n\nconst DeleteContactForeverModal = ({ callback, data, handleClose, showModal }) => {\n\n const { id } = data;\n\n const [ hideDeletedContact, { loading, error } ] = useMutation(DELETE_CONTACT_FOREVER, {\n update(cache, result) {},\n refetchQueries: [\"getContacts\", \"getDeleteContact\"],\n onCompleted: () => {\n callback && callback();\n handleClose();\n },\n });\n\n\n const handleDeleteContactForever = () =>\n hideDeletedContact({ variables: { id: parseInt(id || 0) } })\n .catch(error => console.log('error', error));\n\n\n return (\n <ProviderModal modalClass=\"delete-contact-forever-modal\"\n showModal={showModal}\n handleClose={handleClose}>\n\n { error && <ModalNetworkError /> }\n\n <div className=\"delete-contact-forever-modal__headline\">\n { I18n.t('providers.contacts.deleted_list.delete_contact_forever_modal.headline') }\n </div>\n\n <div className=\"delete-contact-forever-modal__body\">\n { I18n.t('providers.contacts.deleted_list.delete_contact_forever_modal.content') }\n </div>\n\n <div className=\"delete-contact-forever-modal__buttons-wrapper\">\n <div className={`provider-modal__button green-border ${loading ? 'inactive' : ''}`} onClick={handleClose}>\n { I18n.t('search_agent.modal.cancel') }\n </div>\n <div className={`provider-modal__button red ${loading ? 'inactive' : ''}`} onClick={handleDeleteContactForever}>\n { I18n.t('generic.delete') }\n </div>\n </div>\n\n </ProviderModal>\n )\n};\n\n\nexport default DeleteContactForeverModal;\n","import React from 'react';\nimport { useMutation } from \"@apollo/client\";\n\nimport DeactivationImg from \"../../../src/images/provider/deactivate.svg\";\nimport { DELETE_CONTACT } from \"../ApolloClient/mutations\";\nimport ModalNetworkError from \"../Errors/ModalNetworkError\";\nimport { FileLoader } from \"../Loaders\";\nimport ProviderModal from \"./ProviderModal\";\n\nimport './DeleteNoteModal.sass';\n\n\nconst DeleteContactModal = ({ callback, data, handleClose, showModal, logout }) => {\n\n const { name, id } = data;\n\n const [ deleteContact, { loading, error } ] = useMutation(DELETE_CONTACT, {\n update(cache, result) {},\n refetchQueries: [\"getContacts\", \"getDeleteContact\"],\n onCompleted: () => {\n callback && callback();\n handleClose();\n if (logout) {\n window.location.assign('/logout')\n }\n }\n });\n\n const handleDeleteContact = () =>\n deleteContact({ variables: { input: { id: parseInt(id || 0) } }})\n .catch(error => console.log('error', error));\n\n\n return (\n <ProviderModal modalClass=\"delete-contact-modal\"\n showModal={showModal}\n handleClose={handleClose}>\n\n { error && <ModalNetworkError /> }\n\n <img src={DeactivationImg} width={156} height={132} alt=\"Deactivate\" />\n\n <p>{ I18n.t(\"providers.contacts.edit.config_delete_contact\", { contact: name || '' }) }</p>\n\n { loading && !error && <FileLoader /> }\n\n <div className={`provider-modal__button ${loading ? 'inactive' : ''}`}\n onClick={handleDeleteContact}>\n { I18n.t('generic.delete') }\n </div>\n </ProviderModal>\n )\n};\n\n\nexport default DeleteContactModal;\n","import React from 'react';\nimport { useMutation } from '@apollo/client';\n\nimport DeactivationImg from '../../../src/images/provider/deactivate.svg';\nimport { DELETE_CLIENT_NOTE } from '../ApolloClient/queries';\nimport ModalNetworkError from \"../Errors/ModalNetworkError\";\nimport { FileLoader } from '../Loaders';\nimport ProviderModal from './ProviderModal';\n\nimport './DeleteNoteModal.sass';\n\n\nconst DeleteNoteModal = ({ handleClose, noteId, refetchQueries, showModal }) => {\n\n const [deleteClientNote, { loading, error }] = useMutation(DELETE_CLIENT_NOTE, {\n update(cache, result) {},\n refetchQueries: refetchQueries || [],\n onCompleted: () => {\n handleClose();\n },\n });\n\n const deleteNote =() => {\n const input = {id: parseInt(noteId)};\n\n deleteClientNote({ variables: { input } })\n .catch(error => console.log('error', error));\n };\n\n return (\n <ProviderModal modalClass=\"delete-note-modal\"\n showModal={showModal}\n handleClose={handleClose}>\n\n { error && <ModalNetworkError /> }\n\n <img src={DeactivationImg} width={156} height={132} alt=\"Deactivate\" />\n\n <p className=\"bold\">{ I18n.t('providers.notes.delete_confirm') }</p>\n\n { loading && !error && <FileLoader /> }\n\n <div className={`provider-modal__button ${loading ? 'inactive' : ''}`}\n onClick={deleteNote}>\n { I18n.t('generic.delete') }\n </div>\n\n </ProviderModal>\n )\n}\n\nexport default DeleteNoteModal;\n","import React, { useState, Fragment } from 'react';\nimport { useLazyQuery, useMutation } from \"@apollo/client\";\nimport { useHistory } from \"react-router-dom\";\n\nimport DuplicateImg from \"../../../src/images/provider/duplicate.svg\";\nimport { COPY_LOCATION } from \"../ApolloClient/mutations\";\nimport { GET_LOCATION_COPY_JOB } from \"../ApolloClient/queries\";\nimport { FileLoader } from \"../Loaders\";\nimport ProviderModal from \"./ProviderModal\";\n\nimport './DuplicateLocationModal.sass';\n\n\nconst DuplicateLocationModal = ({ currentLocale, showModal, handleClose, locationId }) => {\n\n const history = useHistory();\n\n const [loading, setLoading] = useState(null);\n const [pollInterval, setPollInterval] = useState(0);\n\n const [locationCopyJob] = useLazyQuery(GET_LOCATION_COPY_JOB, {\n pollInterval,\n onCompleted: data => {\n const { duplicateLocationId, state } = data.locationCopyJob;\n\n if (state === 'done') {\n history.push(`${currentLocale}/new_providers/locations/info/${duplicateLocationId}`);\n setLoading(false);\n handleClose();\n }\n },\n });\n\n const [copyLocation, { error }] = useMutation(COPY_LOCATION, {\n onCompleted: data => {\n const { copyJobId } = data.copyLocation;\n\n if (copyJobId) {\n setPollInterval(2000);\n locationCopyJob({ variables: { id: Number(copyJobId) }})\n .catch(error => {\n setLoading(false);\n console.log('error', error);\n });\n }\n },\n });\n\n\n const handleCopy = () => {\n setLoading(true);\n copyLocation({ variables: { id: Number(locationId) }})\n .catch(error => console.log('error', error));\n };\n\n\n return (\n <ProviderModal modalClass=\"duplicate-location-modal\"\n showModal={showModal}\n handleClose={handleClose}>\n\n <img src={DuplicateImg} width={241} height={167} alt=\"Deactivate\" />\n\n <div className=\"duplicate-location-modal__headline\">\n { I18n.t('providers.locations.edit.copy_location') }\n </div>\n\n { !loading &&\n <Fragment>\n <div className={`duplicate-location-modal__explanation ${error ? 'error' : ''}`}>\n { !error\n ? I18n.t('providers.copy_location_job.new.copy_location_middle_page_text')\n : I18n.t('shared.copy_location_create_status.fail_message')\n }\n </div>\n\n <div className=\"provider-modal__button\" onClick={handleCopy}>\n { !error\n ? I18n.t('providers.copy_location_job.new.copy_button')\n : I18n.t('shared.copy_location_create_status.try_again_link')\n }\n </div>\n </Fragment>\n }\n\n { loading &&\n <Fragment>\n <div className=\"duplicate-location-modal__loading-subheader\">\n { I18n.t('shared.copy_location_create_status.copy_message') }\n </div>\n\n <div className=\"duplicate-location-modal__loading-explanation\">\n { I18n.t('shared.copy_location_create_status.copy_time_message') }\n </div>\n\n <FileLoader />\n </Fragment>\n }\n </ProviderModal>\n )\n}\n\n\nexport default DuplicateLocationModal;\n","import React, { Fragment, useState, useEffect } from 'react';\nimport { useLazyQuery } from '@apollo/client';\n\nimport ImgPlaceholder from '../../../src/images/provider/img-placeholder.jpg';\nimport { localizedNumberFormatter } from \"../../../utils/helpers\";\nimport { SvgIco } from '../../SharedComponents/Icons';\nimport { GET_EXTRA_LEAD_LOCATION_ID, GET_EXTRA_LEAD_PREVIEW } from '../ApolloClient/queries';\nimport ModalNetworkError from \"../Errors/ModalNetworkError\";\nimport { SkeletonLoader } from \"../Loaders\";\nimport ProviderModal from './ProviderModal';\n\nimport \"./ExtraOrderModal.sass\"\n\n\nconst ExtraOrderModal = ({ currencySymbolFormatter, extraLeadModalOpen, extraLeadOrderId, locale, handleCloseExtraLeadModal }) => {\n\n const [extraLeadInfo, setExtraLeadInfo] = useState({});\n\n useEffect(() => {\n extraLeadModalOpen\n ? getExtraLeadLocationId({ variables: { id: extraLeadOrderId } }).catch(error => console.log(\"error\", error))\n : setExtraLeadInfo({});\n }, [extraLeadModalOpen]);\n\n const [getExtraLeadInfo, { loading: extraLeadLoading, error }] = useLazyQuery(GET_EXTRA_LEAD_PREVIEW, {\n onCompleted: data => data.location && setExtraLeadInfo(data.location),\n });\n\n const [getExtraLeadLocationId, { loading: extraLeadLocationIdLoading, error: locationIdError }] = useLazyQuery(GET_EXTRA_LEAD_LOCATION_ID, {\n onCompleted: data => {\n const { id } = data.order.location;\n id && getExtraLeadInfo({ variables: { id }}).catch(error => console.log('error', error));\n },\n });\n\n const {\n address,\n annualOperationalCostWithCentsFrom,\n annualOperationalCostWithCentsTo,\n annualRentWithCentsFrom,\n annualRentWithCentsTo,\n areaFrom,\n areaTo,\n areaUnit,\n currencyId,\n locationUrl,\n photos,\n title,\n } = extraLeadInfo;\n\n\n const handleExtraLeadTitle = () => {\n let modalTitle = title[locale];\n !modalTitle && Object.entries(title).map(([key, value]) => !!value && (modalTitle = value));\n\n return modalTitle;\n };\n\n\n const handleRangeUnits = (from, to, unit) => {\n const range = from && to ? `${from} - ${to}` : from || to;\n\n return range ? `${range} ${unit}` : I18n.t('locations.index.not_available');\n };\n\n\n return (\n <ProviderModal modalClass=\"extra-lead-modal\"\n handleClose={handleCloseExtraLeadModal}\n showModal={extraLeadModalOpen}>\n\n { (error || locationIdError) && <ModalNetworkError /> }\n\n { (extraLeadLoading || extraLeadLocationIdLoading) && !(error || locationIdError) &&\n <SkeletonLoader className=\"extra-lead-modal__loader\" count={7} />\n }\n\n { !!Object.keys(extraLeadInfo).length &&\n <Fragment>\n <div className=\"extra-lead-modal__img-wrapper\"\n style={{ backgroundImage: `url(${photos.length ? photos[0].thumbnailW400 : ImgPlaceholder})`}} />\n\n <div className=\"extra-lead-modal__title\">\n { handleExtraLeadTitle() }\n </div>\n\n <div className=\"extra-lead-modal__address\">\n { address }\n </div>\n\n <div className=\"extra-lead-modal__location-param\">\n <div>\n <SvgIco name={'area'} size={22} />\n { I18n.t('apps.lb_showroom.detailed.area.area_label') }\n </div>\n <div>{ handleRangeUnits(areaFrom, areaTo, areaUnit || '') }</div>\n </div>\n\n <div className=\"extra-lead-modal__location-param\">\n <div>{ I18n.t('activerecord.attributes.location.yearly_rent_per_m2') }</div>\n <div>\n { handleRangeUnits(\n annualRentWithCentsFrom && localizedNumberFormatter(annualRentWithCentsFrom),\n annualRentWithCentsTo && localizedNumberFormatter(annualRentWithCentsTo),\n currencySymbolFormatter(currencyId)\n )}\n </div>\n </div>\n\n <div className=\"extra-lead-modal__location-param\">\n <div>{ I18n.t('activerecord.attributes.location.yearly_rent_and_operational_cost') }</div>\n <div>\n { handleRangeUnits(\n annualOperationalCostWithCentsFrom && localizedNumberFormatter(annualOperationalCostWithCentsFrom),\n annualOperationalCostWithCentsTo && localizedNumberFormatter(annualOperationalCostWithCentsTo),\n currencySymbolFormatter(currencyId)\n )}\n </div>\n </div>\n\n <a href={locationUrl} target=\"_blank\">\n { I18n.t('provider.modals.go_to_location') }\n </a>\n\n </Fragment>\n }\n </ProviderModal>\n );\n};\n\nexport default ExtraOrderModal;\n","import React, { Fragment } from 'react';\n\nimport GenerateProspectusImg from \"../../../src/images/provider/generate-prospectus.svg\";\nimport ModalNetworkError from \"../Errors/ModalNetworkError\";\nimport { FileLoader } from \"../Loaders\";\nimport ProviderModal from \"./ProviderModal\";\n\nimport './GenerateProspectusModal.sass';\n\n\nconst GenerateProspectusModal = ({ error, generatedProspectusUrl, handleClose, loading, showModal }) => {\n\n\n return (\n <ProviderModal modalClass=\"generate-prospectus-modal\"\n showModal={showModal}\n handleClose={handleClose}>\n\n { error && <ModalNetworkError /> }\n\n <img src={GenerateProspectusImg} width={223} height={184} alt=\"Generate Prospectus\" />\n\n { loading && !error &&\n <Fragment>\n <h3 className=\"generate-prospectus-modal__headline\">\n { I18n.t('providers.form.visuals.prospectus.preparing') }\n </h3>\n\n <p>{ I18n.t('views.locations.shared.cart.please_wait') }</p>\n\n <FileLoader />\n </Fragment>\n }\n\n { generatedProspectusUrl && !loading &&\n <Fragment>\n <h3 className=\"generate-prospectus-modal__headline\">\n { I18n.t('providers.form.visuals.prospectus.prepared') }\n </h3>\n\n <a className=\"provider-modal__button\" href={generatedProspectusUrl} target=\"_blank\">\n { I18n.t('order_confirmations.show.download_prospectus') }\n </a>\n </Fragment>\n }\n\n </ProviderModal>\n )\n}\n\nexport default GenerateProspectusModal;\n","import React, { Fragment } from 'react';\nimport Modal from 'react-modal';\n\nimport './IframeModal.sass';\nimport {SvgIco} from \"../../SharedComponents/Icons\";\n\nconst IframeModal = ({ handleClose,\n modalClass,\n showModal,\n url,\n }) => {\n\n const customStyles = {\n overlay: {\n backgroundColor: 'rgba(0,0,0,0.6)',\n top: '0',\n overflow: 'auto',\n zIndex: '9999',\n backdropFilter: 'blur(5px)',\n },\n content: {\n top: '50%',\n left: '50%',\n right: 'auto',\n bottom: 'auto',\n marginRight: '-50%',\n transform: 'translate(-50%, -50%)',\n pointerEvents: 'visible',\n background: 'white',\n borderRadius: '4px',\n position: 'absolute',\n },\n };\n\n return (\n <Modal\n ariaHideApp={false}\n className={`simple-cms-modal ${modalClass || ''}`}\n contentLabel={modalClass}\n isOpen={showModal}\n onRequestClose={handleClose || null}\n style={customStyles}\n >\n <div className=\"simple-cms-modal__wrapper\">\n <div className=\"simple-cms-modal__close-btn\" onClick={handleClose}>\n <SvgIco name=\"close\" size={24} />\n </div>\n <iframe src={url} frameBorder=\"0\"></iframe>\n </div>\n </Modal>\n );\n};\n\nexport default IframeModal;\n","import React from 'react';\n\nimport ProviderModal from \"./ProviderModal\";\nimport Notes from \"../ClientInfo/Notes\";\n\nimport './NotesModal.sass';\n\n\nconst NotesModal = ({ handleClose, id, orderNotes, showModal }) => {\n\n return (\n <ProviderModal modalClass=\"notes-modal\"\n showModal={showModal}\n handleClose={handleClose}>\n <Notes currentId={id} modal={true} orderNotes={orderNotes} />\n </ProviderModal>\n )\n};\n\n\nexport default NotesModal;\n","import React, { useState } from 'react';\nimport { useStripe, useElements, PaymentElement } from '@stripe/react-stripe-js';\nimport Loader from \"../../../SharedComponents/Loader\";\n\n\nconst CheckoutForm = ({ amount, currency, handlePaymentSuccess, setPaymentInProcess }) => {\n const stripe = useStripe();\n const elements = useElements();\n\n const [loading, setLoading] = useState(false);\n const [errorMessage, setErrorMessage] = useState(null);\n\n const handleLoading = (state) => {\n setLoading(state);\n setPaymentInProcess(state);\n };\n\n const handleSubmit = async (event) => {\n // We don't want to let default form submission happen here,\n // which would refresh the page.\n event.preventDefault();\n\n if (!stripe || !elements) {\n // Stripe.js has not yet loaded.\n // Make sure to disable form submission until Stripe.js has loaded.\n return;\n }\n\n handleLoading(true);\n\n const result = await stripe.confirmPayment({\n //`Elements` instance that was used to create the Payment Element\n elements,\n confirmParams: {\n return_url: window.location.href,\n },\n redirect: 'if_required',\n });\n\n if (result.paymentIntent && result.paymentIntent.status && result.paymentIntent.status === 'succeeded') {\n errorMessage && setErrorMessage(null);\n handleLoading(false);\n handlePaymentSuccess();\n }\n\n if (result.error) {\n // Show error to your customer (for example, payment details incomplete)\n result.error.type !== 'validation_error' && setErrorMessage(result.error.message);\n console.log(result.error.message);\n handleLoading(false);\n }\n };\n\n\n return (\n <form onSubmit={handleSubmit}>\n\n { errorMessage &&\n <div className=\"payment-modal__error-message\">\n { errorMessage }\n </div>\n }\n\n <div className=\"payment-modal__form-wrapper\">\n <PaymentElement />\n </div>\n\n <div className=\"payment-modal__price-info\">\n <div className=\"payment-modal__price-info-row\">\n <div className=\"payment-modal__price-info-label\">\n { I18n.t('generic.amount') }:\n </div>\n <div className=\"payment-modal__price-info-value\">\n { amount }\n </div>\n </div>\n\n <div className=\"payment-modal__price-info-row\">\n <div className=\"payment-modal__price-info-label\">\n { I18n.t('activerecord.attributes.location.currency') }:\n </div>\n <div className=\"payment-modal__price-info-value\">\n { currency }\n </div>\n </div>\n </div>\n\n <div className={`payment-modal__submit-btn ${loading ? 'inactive' : ''}`} onClick={handleSubmit}>\n { loading ? <Loader size={24} /> : I18n.t('generic.pay') }\n </div>\n </form>\n )\n};\n\nexport default CheckoutForm;\n","import React, { useState } from 'react';\nimport { useQuery } from \"@apollo/client\";\nimport { Elements } from '@stripe/react-stripe-js';\nimport { loadStripe } from '@stripe/stripe-js';\n\nimport Loader from \"../../../SharedComponents/Loader\";\nimport { GET_STRIPE_INTENT } from \"../../ApolloClient/queries\";\nimport ProviderModal from \"../ProviderModal\";\nimport CheckoutForm from \"./CheckoutForm\";\n\nimport \"./PaymentModal.sass\";\n\n\nconst PaymentModal = ({ handleClose,\n invoiceId,\n handlePaymentSuccess,\n locale,\n showModal,\n stripeInvoicesApiKey,\n }) => {\n\n const stripePromise = loadStripe(stripeInvoicesApiKey, { locale: locale.split('-')[0] });\n\n const [amount, setAmount] = useState(null);\n const [clientSecret, setClientSecret] = useState(null);\n const [currency, setCurrency] = useState(null);\n const [paymentInProcess, setPaymentInProcess] = useState(false);\n\n const {} = useQuery(GET_STRIPE_INTENT, {\n variables: { id: invoiceId },\n onCompleted: (data) => {\n if (data) {\n const { clientSecret, stripeInvoice } = data.stripeIntent;\n setAmount(parseFloat((stripeInvoice.amountInCents)/100).toFixed(2));\n setClientSecret(clientSecret);\n setCurrency(stripeInvoice.currency.name);\n }\n }\n });\n\n const appearance = {\n theme: 'stripe',\n variables: {\n colorBackground: '#ffffff',\n colorText: '#000000',\n borderRadius: '4px',\n },\n rules: {\n '.Input': {\n borderColor: '#E0E2E2',\n }\n }\n };\n\n const options = { clientSecret, appearance };\n\n\n return (\n <ProviderModal\n modalClass=\"payment-modal\"\n showModal={showModal}\n handleClose={paymentInProcess ? null : handleClose}>\n\n <h3 className=\"payment-modal__headline\">{ I18n.t('generic.payment') }</h3>\n\n { clientSecret &&\n <Elements stripe={stripePromise} options={options}>\n <CheckoutForm\n amount={amount}\n currency={currency}\n handlePaymentSuccess={handlePaymentSuccess}\n setPaymentInProcess={setPaymentInProcess}\n />\n </Elements>\n }\n\n { !clientSecret && <Loader size={32} /> }\n\n </ProviderModal>\n )\n}\n\n\nexport default PaymentModal;\n\n\n\n","import React, { Fragment } from 'react';\nimport Modal from 'react-modal';\n\nimport { SvgIco } from '../../SharedComponents/Icons';\n\nimport './ProviderModal.sass';\n\nconst ProviderModal = ({ children,\n handleClose,\n hideCloseBtn,\n modalClass,\n showModal,\n scrollable,\n }) => {\n\n const customStyles = {\n overlay: {\n backgroundColor: 'rgba(0,0,0,0.6)',\n top: '0',\n overflow: 'auto',\n zIndex: '9999',\n // backdropFilter: 'blur(5px)',\n scrollBehavior: 'smooth',\n },\n content: {\n top: '50%',\n left: '50%',\n right: 'auto',\n bottom: 'auto',\n marginRight: '-50%',\n transform: 'translate(-50%, -50%)',\n pointerEvents: 'visible',\n background: 'white',\n borderRadius: '4px',\n position: 'absolute',\n },\n };\n\n return (\n <Modal\n ariaHideApp={false}\n className={`provider-modal ${modalClass || ''}`}\n contentLabel={modalClass}\n isOpen={showModal}\n onRequestClose={handleClose || null}\n style={customStyles}\n >\n { scrollable\n ?\n <div className=\"provider-modal__wrapper\">\n { !hideCloseBtn &&\n <div className=\"provider-modal__close-btn\" onClick={handleClose}>\n <SvgIco name=\"close\" size={24} />\n </div>\n }\n { children }\n </div>\n :\n <Fragment>\n { !hideCloseBtn &&\n <div className=\"provider-modal__close-btn\" onClick={handleClose}>\n <SvgIco name=\"close\" size={24} />\n </div>\n }\n { children }\n </Fragment>\n }\n </Modal>\n );\n};\n\nexport default ProviderModal;\n","import React from 'react';\nimport ReactTooltip from \"react-tooltip\";\n\nimport { SvgIco } from \"../../SharedComponents/Icons\";\nimport { ActionIcon, ScoreChart, visibilityQuality } from \"../ScoreWidget\";\nimport ProviderModal from './ProviderModal';\n\nimport './QualityScoreInfoModal.sass';\n\n\nconst QualityScoreInfoModal = ({ data, handleClose, qualityScoreLink, showModal, siteName }) => {\n\n const { totalScore } = data;\n const qualityState = visibilityQuality(totalScore);\n\n const ListItem = ({ itemData }) =>\n <div className=\"quality-score-info-modal__list-item\">\n <div className=\"quality-score-info-modal__list-item-name\">\n <div className=\"quality-score-info-modal__list-item-label\">{ itemData.name }</div>\n <span\n className=\"provider-tooltip\"\n data-tip={I18n.t(`provider.form.quality_score.extended_hint.${itemData.id}`, { siteName })}\n data-class=\"provider-tooltip\"\n data-for={`score-${itemData.id}-tooltip`}>\n <SvgIco name=\"info_outline\" size={20} />\n </span>\n <ReactTooltip\n border={true}\n borderColor=\"black\"\n effect='solid'\n id={`score-${itemData.id}-tooltip`}\n place='bottom'\n type=\"light\" />\n </div>\n <div className={`quality-score-info-modal__list-item-score ${itemData.score ? 'done' : ''}`}>\n { !!itemData.score && <ActionIcon color=\"#77BC1F\" icon=\"check\" iconSize={16} /> }\n { itemData.score ? `+${itemData.score}` : itemData.availableScoreLabel }\n </div>\n </div>;\n\n\n return (\n <ProviderModal\n modalClass=\"quality-score-info-modal\"\n showModal={showModal}\n handleClose={handleClose}\n >\n <div className=\"quality-score-info-modal__headline\">\n { I18n.t('providers.locations.edit.scores.title') }\n </div>\n\n <div className=\"quality-score-info-modal__content\">\n\n <div className=\"quality-score-info-modal__left\">\n <ScoreChart score={totalScore} width={186} />\n\n <SvgIco\n className=\"quality-score-info-modal__img\"\n name={`quality_score_list_${qualityState === 'excellent' || qualityState === 'good' ? 'high' : qualityState }`}\n width={185}\n height={160}\n />\n\n <div className=\"quality-score-info-modal__status-description\">\n { I18n.t(`provider.quality_score_chart.visibility_description.${qualityState}`) }\n </div>\n\n <a href={qualityScoreLink} target=\"_blank\" className=\"quality-score-info-modal__read-more\">\n { I18n.t('provider_backend.quality_score.link') }\n <SvgIco name=\"open_in_new\" size={16} />\n </a>\n </div>\n\n <div className=\"quality-score-info-modal__right\">\n <div className=\"quality-score-info-modal__list-description\">\n { I18n.t('provider.quality_score.modal_description') }\n </div>\n\n { Object.keys(data).map(scoreSection =>\n (scoreSection !== 'totalScore'\n && !data[scoreSection].hidden\n && !data[scoreSection].score\n && <ListItem itemData={data[scoreSection]} key={data[scoreSection].name} />) || null\n )}\n\n { Object.keys(data).map(scoreSection =>\n (scoreSection !== 'totalScore'\n && data[scoreSection].score\n && !data[scoreSection].hidden\n && <ListItem itemData={data[scoreSection]} key={data[scoreSection].name} />) || null\n )}\n\n </div>\n </div>\n\n </ProviderModal>\n )\n}\n\nexport default QualityScoreInfoModal;\n","import React, { useState } from 'react';\nimport { useMutation } from '@apollo/client';\n\nimport { REJECT_PROVIDER_DEAL } from '../ApolloClient/mutations';\nimport { FileLoader } from '../Loaders';\nimport ProviderModal from './ProviderModal';\n\nimport './RejectAgreementModal.sass';\n\nconst RejectAgreementModal = ({ data, handleClose, showModal }) => {\n const [comment, setComment] = useState('');\n const [validComment, setValidComment] = useState(false);\n\n const changeTextArea = (e) => {\n setValidComment(false);\n setComment(e.target.value)\n };\n\n const { address, clientEmail, companyName, id, personName, phoneNumber } =\n data;\n\n const [rejectProviderDeal, { error, loading }] = useMutation(\n REJECT_PROVIDER_DEAL,\n {\n update(cache, result) {},\n onCompleted: (data) => !data.error && handleClose(),\n refetchQueries: ['getUnresolvedProviderDeals'],\n },\n );\n\n return (\n <ProviderModal\n modalClass=\"reject-agreement-modal\"\n showModal={showModal}\n handleClose={handleClose}\n >\n <h3>{I18n.t('providers.provider_deals.edit.header')}</h3>\n\n <div className=\"reject-agreement-modal__subheader\">\n {I18n.t('providers.provider_deals.edit.client_info')}:\n </div>\n\n <div className=\"reject-agreement-modal__client-info-wrapper\">\n <div className=\"reject-agreement-modal__client-info-row\">\n <div className=\"reject-agreement-modal__client-info-label\">\n {I18n.t('generic.name')}:\n </div>\n <div className=\"reject-agreement-modal__client-info-value\">\n {personName}\n </div>\n </div>\n\n <div className=\"reject-agreement-modal__client-info-row\">\n <div className=\"reject-agreement-modal__client-info-label\">\n {I18n.t('generic.company_name')}:\n </div>\n <div className=\"reject-agreement-modal__client-info-value\">\n {companyName}\n </div>\n </div>\n\n <div className=\"reject-agreement-modal__client-info-row\">\n <div className=\"reject-agreement-modal__client-info-label\">\n {I18n.t('generic.phone')}:\n </div>\n <div className=\"reject-agreement-modal__client-info-value\">\n {phoneNumber}\n </div>\n </div>\n\n <div className=\"reject-agreement-modal__client-info-row\">\n <div className=\"reject-agreement-modal__client-info-label\">\n {I18n.t('generic.email')}:\n </div>\n <div className=\"reject-agreement-modal__client-info-value\">\n {clientEmail}\n </div>\n </div>\n </div>\n\n <div className=\"reject-agreement-modal__subheader\">\n {I18n.t('views.locations.show.physical_location')}\n </div>\n\n <p>{address}</p>\n\n <div className=\"reject-agreement-modal__comment-wrap\">\n <textarea\n className={`${validComment ? 'error' : ''}`}\n name=\"comment\"\n value={comment}\n id=\"deactivationDealComment\"\n onChange={(e) => changeTextArea(e)}\n placeholder={I18n.t('client_deal_feedbacks.new.comment_placeholder')}\n />\n {validComment &&\n < div className=\"reject-agreement-modal__valid-comment\">\n {I18n.t('apps.lb_showroom.detailed.order_form.validation.field_required', { field: I18n.t('generic.message')})}\n </div>\n }\n </div>\n\n {loading && <FileLoader />}\n\n <div\n className={`provider-modal__button ${loading ? 'inactive' : ''}`}\n onClick={() => {\n if (comment.length === 0) {\n setValidComment(true)\n } else {\n rejectProviderDeal({\n variables: { id: Number(id), comment, state: 'denied' },\n })\n }}\n }\n >\n {I18n.t('providers.provider_deals.edit.deny_button')}\n </div>\n </ProviderModal>\n );\n};\n\nexport default RejectAgreementModal;\n","import React, { useState } from 'react';\nimport { useMutation } from \"@apollo/client\";\n\nimport RentedOutImg from \"../../../src/images/provider/rendted-out.svg\";\nimport { MARK_LOCATION_AS_RENTED_OUT } from \"../ApolloClient/mutations\";\nimport ModalNetworkError from \"../Errors/ModalNetworkError\";\nimport { FileLoader } from \"../Loaders\";\nimport ProviderModal from \"./ProviderModal\";\n\nimport './DeactivateLocationModal.sass';\n\n\nconst RentedOutModal = ({ address,\n callbackFunction,\n handleClose,\n locationId,\n showModal,\n siteName }) => {\n\n const [loading, setLoading] = useState(false);\n\n const [rentedOutLocation, { error }] = useMutation(MARK_LOCATION_AS_RENTED_OUT, {\n onCompleted: data => {\n const { error, location } = data.rentedOutLocation;\n\n !error && callbackFunction ? callbackFunction(closeModal, location) : closeModal();\n },\n });\n\n\n const closeModal = () => {\n setLoading(false);\n handleClose();\n };\n\n\n const markAsRentedOut = () => {\n setLoading(true);\n rentedOutLocation({ variables: { id: Number(locationId) }}).catch(error => console.log('error', error));\n };\n\n\n return (\n <ProviderModal modalClass=\"deactivate-location-modal\"\n showModal={showModal}\n handleClose={handleClose}>\n\n { error && <ModalNetworkError /> }\n\n <img src={RentedOutImg} width={241} height={182} alt=\"Deactivate\" />\n\n <div className=\"deactivate-location-modal__headline\">\n { I18n.t('provider.location_deactivation.headline') }\n </div>\n\n <div className=\"deactivate-location-modal__explanation\">\n { I18n.t('providers.locations.rented_out.when_rented_out', { site: siteName }) }\n </div>\n\n <div className=\"deactivate-location-modal__location-address\">\n { address }\n </div>\n\n { loading && !error && <FileLoader /> }\n\n <div className={`provider-modal__button ${loading ? 'inactive' : ''}`}\n onClick={markAsRentedOut}>\n { I18n.t('parking.parking_lot.deactivate') }\n </div>\n\n </ProviderModal>\n )\n}\n\n\nexport default RentedOutModal;\n","import React from 'react';\nimport { Link } from \"react-router-dom\";\n\nimport ReportSuccessImg from \"../../../src/images/provider/report-success.svg\";\nimport GoogleReview from \"../../../src/images/provider/google_review.svg\";\nimport ProviderModal from \"./ProviderModal\";\n\nimport './ReportSuccessModal.sass';\n\n\nconst ReportSuccessModal = ({ currentLocale, showModal, siteKey }) => {\n\n const dkLink = \"https://g.page/r/CVM8OALD8rgjEBM/review\";\n const globalLink = \"https://www.google.com/maps/place/MatchOffice/@55.6986904,12.5340955,17z/data=!3m1!4b1!4m6!3m5!1s0x4652525ed39a61c9:0xc9ba564896d79bb6!8m2!3d55.6986904!4d12.5340955!16s%2Fg%2F1hhh_sq5_\"\n const back_url = `${currentLocale}/new_providers`;\n\n\n const handleCloseInfoForm = () => window.location.href = back_url;\n\n return (\n <ProviderModal modalClass=\"report-success-modal\"\n showModal={showModal}\n handleClose={handleCloseInfoForm}\n hideCloseBtn={false}>\n\n <img src={ReportSuccessImg} alt=\"report-success\" className=\"lazyload\" data-sizes=\"auto\" width={147} />\n\n <h2>\n { I18n.t(\"providers.leases.success.heading\") }\n </h2>\n\n <p className=\"report-success-modal__thank-you-text\">\n { I18n.t(\"providers.leases.success.text_first\") }\n </p>\n\n <p className=\"report-success-modal__review-text\">\n { I18n.t(\"providers.leases.success.review.text_first\") }\n </p>\n\n <a href={siteKey === 'dk' ? dkLink : globalLink} target=\"_blank\">\n { I18n.t(\"providers.leases.success.review.text_second\") }\n </a>\n\n <a className=\"report-success-modal__logo-link\" href={siteKey === 'dk' ? dkLink : globalLink} target=\"_blank\">\n <img className=\"report-success-modal__logo-image\" src={GoogleReview} alt=\"some-logo\"/>\n </a>\n\n <Link to={back_url} className=\"report-success-modal__dashboard-btn\">\n { I18n.t(\"providers.leases.success.review.text_dashboard_button\") }\n </Link>\n\n </ProviderModal>\n )\n};\n\n\nexport default ReportSuccessModal;\n","import React from 'react';\n\nimport ProviderModal from \"./ProviderModal\";\n\nimport './SecondaryKindsInfoModal.sass';\n\n\nconst SecondaryKindsInfoModal = ({ handleCancel, handleClose, showModal }) => {\n\n return (\n <ProviderModal modalClass=\"secondary-kinds-info-modal\"\n showModal={showModal}\n handleClose={handleClose}\n hideCloseBtn={false}>\n\n <h3>{ I18n.t('provider.provider.form.economy.extra_category_modal.title') }</h3>\n\n <p className=\"secondary-kinds-info-modal__description\">\n { I18n.t('provider.provider.form.economy.extra_category_modal.description') }\n </p>\n\n <div className=\"secondary-kinds-info-modal__pricing-list\">\n <div className=\"secondary-kinds-info-modal__pricing-list-headline\">\n { I18n.t('provider.provider.form.economy.extra_category_modal.pricing_info') }:\n </div>\n\n <div className=\"secondary-kinds-info-modal__pricing-list-item\">\n <div className=\"secondary-kinds-info-modal__pricing-list-item-category\">\n 1 { I18n.t('generic.extra_category').one }:\n </div>\n <div className=\"secondary-kinds-info-modal__pricing-list-item-price\">\n + 40% { I18n.t('provider.provider.form.economy.extra_category_modal.extra_payment') }\n </div>\n </div>\n\n <div className=\"secondary-kinds-info-modal__pricing-list-item\">\n <div className=\"secondary-kinds-info-modal__pricing-list-item-category\">\n 2 { I18n.t('generic.extra_category').other }:\n </div>\n <div className=\"secondary-kinds-info-modal__pricing-list-item-price\">\n + 110% { I18n.t('provider.provider.form.economy.extra_category_modal.extra_payment') }\n </div>\n </div>\n\n <div className=\"secondary-kinds-info-modal__pricing-list-item\">\n <div className=\"secondary-kinds-info-modal__pricing-list-item-category\">\n 3 { I18n.t('generic.extra_category').other }:\n </div>\n <div className=\"secondary-kinds-info-modal__pricing-list-item-price\">\n + 180% { I18n.t('provider.provider.form.economy.extra_category_modal.extra_payment') }\n </div>\n </div>\n\n <div className=\"secondary-kinds-info-modal__pricing-list-item\">\n <div className=\"secondary-kinds-info-modal__pricing-list-item-category\">\n 4 { I18n.t('generic.extra_category').other }:\n </div>\n <div className=\"secondary-kinds-info-modal__pricing-list-item-price\">\n + 250% { I18n.t('provider.provider.form.economy.extra_category_modal.extra_payment') }\n </div>\n </div>\n </div>\n\n <div className=\"secondary-kinds-info-modal__buttons\">\n <div className=\"secondary-kinds-info-modal__button secondary-kinds-info-modal__button--cancel\" onClick={handleCancel}>\n { I18n.t('search_agent.modal.cancel') }\n </div>\n <div className=\"secondary-kinds-info-modal__button\" onClick={handleClose}>\n { I18n.t('providers.providers.provider_deals_notifications.accept') }\n </div>\n </div>\n </ProviderModal>\n\n )\n};\n\n\nexport default SecondaryKindsInfoModal;\n","import React, { Fragment, useEffect, useState } from 'react';\nimport { useLazyQuery } from \"@apollo/client\";\n\nimport ReportImg from \"../../../src/images/provider/report.svg\";\nimport { SvgIco } from \"../../SharedComponents/Icons\";\nimport ProviderModal from \"../Modals/ProviderModal\";\nimport ModalNetworkError from \"../Errors/ModalNetworkError\";\nimport { GET_TOKENIZED_FILE } from \"../ApolloClient/queries\";\nimport { FileLoader } from \"../Loaders\";\n\nimport './TokenizedFileModalLink.sass';\n\n\nconst TokenizedFileModalLink = ({ dataName, fileName, linkLabel, query, variables }) => {\n\n const [modalIsOpen, setModalIsOpen] = useState(false);\n const [tokenizedFileUrl, setTokenizedFileUrl] = useState(null);\n const [pollInterval, setPollInterval] = useState(0);\n const [xlsFileToken, setXlsFileToken] = useState(null);\n\n const [getTokenizedFile, { loading, error }] = useLazyQuery(GET_TOKENIZED_FILE, {\n pollInterval,\n onCompleted: data => {\n if (data.tokenizedFile && data.tokenizedFile.fileUrl) {\n setTokenizedFileUrl(data.tokenizedFile.fileUrl);\n setPollInterval(0);\n }\n },\n });\n\n const [getXlsFileToken, { error: xlsFileTokenError, loading: xlsFileTokenLoading }] = useLazyQuery(query, {\n fetchPolicy: 'no-cache',\n onCompleted: data => setXlsFileToken(data[dataName][fileName || 'xlsFileToken']),\n });\n\n useEffect(() => {\n xlsFileToken && getXls();\n }, [xlsFileToken]);\n\n\n const getXls = () => {\n setTokenizedFileUrl(null);\n setPollInterval(2000);\n getTokenizedFile({ variables: { token: xlsFileToken }})\n .catch(error => console.log(error));\n };\n\n const handleLinkClick = () => {\n getXlsFileToken({ variables });\n setModalIsOpen(true);\n };\n\n const handleCloseModal = () => {\n setModalIsOpen(false);\n setPollInterval(0);\n setXlsFileToken(null);\n setTokenizedFileUrl(null);\n };\n\n\n return (\n <div className=\"tokenized-file-link-modal\">\n\n <div onClick={handleLinkClick} className=\"tokenized-file-link-modal__link\">\n <SvgIco name=\"download_file\" size={18} />\n { linkLabel || I18n.t('providers.orders.list.download_xls') }\n </div>\n\n <ProviderModal modalClass=\"loading-file-modal\"\n handleClose={handleCloseModal}\n showModal={modalIsOpen}>\n\n { (error || xlsFileTokenError) && <ModalNetworkError /> }\n\n <img src={ReportImg} alt=\"Load Excel\" height={223} width={184} />\n\n { tokenizedFileUrl && !loading && !xlsFileTokenLoading && !error\n ?\n <Fragment>\n <div className=\"loading-file-modal__headline\">\n { I18n.t('provider.tokenized_file.report_ready') }\n </div>\n <p>{ I18n.t('provider.tokenized_file.download') }</p>\n <a className=\"loading-file-modal__excel-link\" href={tokenizedFileUrl}>\n { I18n.t('providers.tokenized_file.show.download_link') }\n </a>\n </Fragment>\n :\n <Fragment>\n <div className=\"loading-file-modal__headline\">\n { I18n.t('provider.tokenized_file.preparing_report') }\n </div>\n <p>{ I18n.t('views.locations.shared.cart.please_wait') }</p>\n <FileLoader />\n </Fragment>\n }\n </ProviderModal>\n </div>\n )\n}\n\nexport default TokenizedFileModalLink;\n","import React, { useEffect, useState, Fragment } from 'react';\nimport { useMutation, useLazyQuery } from '@apollo/client';\nimport ImageGallery from \"react-image-gallery\";\nimport \"react-image-gallery/styles/scss/image-gallery.scss\";\n\nimport RadioButtons from '../../SharedComponents/Forms/RadioButtons';\nimport Checkbox from \"../../SharedComponents/Forms/CheckBox\";\nimport { SvgIco } from \"../../SharedComponents/Icons\";\nimport { GET_CONTACT_INFO } from '../ApolloClient/queries';\nimport { ADD_PAID_SERVICE_ORDER } from \"../ApolloClient/mutations\";\nimport ModalNetworkError from \"../Errors/ModalNetworkError\";\nimport InfoMessagePopup from \"../Popups/InfoMessagePopup\";\nimport ProviderModal from './ProviderModal';\n\nimport './VisualsProposalsForm.sass';\n\n\nconst VisualsProposalsForm = ({ currentContactId,\n handleClose,\n locationAddress,\n locationId,\n showModal,\n }) => {\n\n const [showInfoPopup, setShowInfoPopup] = useState(false);\n const [contactInfo, setContactInfo] = useState(null);\n const [formSent, setFormSent] = useState(false);\n const [toggleInfoPopup, setToggleInfoPopup] = useState(false);\n const [selectedProposals, setSelectedProposals] = useState({\n photo: [],\n floorPlan: 0,\n virtualTour: 0,\n video: 0,\n comment: '',\n locationId,\n });\n\n\n const [getContactInfo, { error: contactError }] = useLazyQuery(GET_CONTACT_INFO, {\n onCompleted: data => data && data.contact && setContactInfo(data.contact),\n });\n\n\n const [addPaidServiceOrder, { loading, error }] = useMutation(ADD_PAID_SERVICE_ORDER, {\n variables: {\n ...selectedProposals,\n floorPlan: [selectedProposals.floorPlan],\n virtualTour: [selectedProposals.virtualTour],\n video: [selectedProposals.video]\n },\n onCompleted: (data) => {\n const { errors } = data.addPaidServiceOrder;\n\n !errors && setFormSent(true);\n },\n });\n\n\n useEffect(() => {\n if (showModal) {\n !contactInfo && getContactInfo({ variables: { id: currentContactId } });\n } else {\n setSelectedProposals({\n photo: [],\n floorPlan: 0,\n virtualTour: 0,\n video: 0,\n comment: '',\n locationId\n });\n formSent && setFormSent(false);\n }\n }, [showModal]);\n\n\n useEffect(() => {\n error && window.scroll(0, 0);\n }, [error]);\n\n\n const generateOptions = (category) =>\n proposalsData[category]\n .map((option) => ({\n checked: selectedProposals[category] === option.id,\n label: (\n <span className=\"visuals-form__label\">\n {option.label}\n <span className=\"visuals-form__price\">{option.price}</span>\n </span>\n ),\n value: option.id,\n }))\n .concat({\n checked: selectedProposals[category] === 0,\n label: I18n.t('provider.form.visuals_form.proposals.refuse_option_label'),\n value: 0,\n });\n\n\n const handleOptionSelect = (value, category) => {\n setSelectedProposals((prevState) => ({\n ...prevState,\n [category]: value,\n }));\n\n resetInfoPopup();\n };\n\n\n const handleCheckboxSelect = (name, optionId) => {\n const value = Number(optionId);\n const selected = [ ...selectedProposals[name] ];\n const optionIndex = selected.indexOf(value);\n\n if (optionIndex >= 0) {\n selected.splice(optionIndex, 1);\n setShowInfoPopup(false);\n } else {\n selected.push(value);\n resetInfoPopup();\n }\n\n setSelectedProposals((prevState) => ({ ...prevState, [name]: selected }));\n };\n\n\n const resetInfoPopup = () => {\n if (showInfoPopup) {\n setToggleInfoPopup(true);\n } else {\n setShowInfoPopup(true);\n }\n }\n\n\n const setComment = (comment) =>\n setSelectedProposals((prevState) => ({\n ...prevState,\n comment,\n }));\n\n\n const RadioGroup = ({ category }) => (\n <div className=\"visuals-form__radio-group\">\n <RadioButtons\n handleChange={(value) => handleOptionSelect(value, category)}\n name={`${category}Order`}\n options={generateOptions(category)}\n />\n </div>\n );\n\n\n const CheckboxGroup = ({ options, name }) => {\n return (\n <div className=\"visuals-form__checkbox-group\">\n { options.map(option =>\n <div className=\"visuals-form__checkbox-wrapper\" key={`option-${option.id}`}>\n <Checkbox\n field=\"photo\"\n handleChange={(e) => handleCheckboxSelect(name, e.target.id)}\n label={\n <span className=\"visuals-form__label\">\n { option.label }\n <span className=\"visuals-form__price\">{ option.price }</span>\n </span>}\n name={`${option.id}`}\n value={selectedProposals[name] && selectedProposals[name].includes(option.id)} />\n </div>\n )}\n </div>\n )\n };\n\n\n const renderRightNav = (onClick) =>\n <div\n className='image-gallery-custom-right-nav'\n onClick={onClick} >\n <SvgIco name=\"arrow_forward\" size={24} />\n </div>;\n\n\n const renderLeftNav = (onClick) =>\n <div\n className='image-gallery-custom-left-nav'\n onClick={onClick} >\n <SvgIco name=\"arrow-back\" size={24} />\n </div>;\n\n\n const optionsSelected = React.useMemo(\n () => {\n if ((selectedProposals.photo && selectedProposals.photo.length) || (selectedProposals.floorPlan !== 0)) {\n return true;\n } else {\n return false;\n }\n },\n [selectedProposals.photo, selectedProposals.floorPlan],\n );\n\n\n const selectedOption = (name, id) => {\n const optionData = proposalsData[name].find(data => data.id === id);\n\n return optionData\n ?\n <div className=\"visuals-form__order-summary-option\" key={`selected-floor-plan-${id}`}>\n <div className=\"visuals-form__order-summary-option-label\">\n { optionData.label }\n </div>\n <div className=\"visuals-form__order-summary-option-value\">\n { optionData.price }\n </div>\n </div>\n : null;\n };\n\n\n const infoPopupMessage =\n <div className=\"visuals-form__info-message-body\">\n <div className=\"visuals-form__info-message-left\">\n Vare tilføjet\n </div>\n <a className=\"visuals-form__info-message-right\" href=\"#summary-wrapper\" onClick={() => setShowInfoPopup(false)}>\n { I18n.t('generic.buy_now') }\n <SvgIco name=\"arrow_outward\" size={24} />\n </a>\n </div>\n\n\n return (\n <div>\n\n <div className={`visuals-form__info-message-wrapper ${showInfoPopup && !formSent ? 'visible' : ''}`}>\n <InfoMessagePopup\n children={infoPopupMessage}\n customDuration={6000}\n handleClose={() => setShowInfoPopup(false)}\n toggle={toggleInfoPopup}\n toggleCallback={() => setToggleInfoPopup(false)}\n visible={showInfoPopup}\n />\n </div>\n\n <ProviderModal\n handleClose={handleClose}\n modalClass={`visuals-form ${ formSent ? 'form-sent' : '' }`}\n scrollable={true}\n showModal={showModal}\n >\n <div className=\"visuals-form__close-btn\" onClick={handleClose}>\n <SvgIco name=\"close\" size={24} />\n </div>\n\n <div className=\"visuals-form__wrapper\">\n\n { error && <ModalNetworkError /> }\n\n { formSent\n ?\n <Fragment>\n <h3 className=\"visuals-form__headline\">\n { I18n.t('signup.teaser.modal_close.thank-header') }\n </h3>\n\n <div className=\"visuals-form__thank-u-text\">\n { I18n.t('signup.teaser.modal_close.thank-text') }\n </div>\n </Fragment>\n :\n <Fragment>\n <h3 className=\"visuals-form__headline\">\n Inspirér lejere med en professionel fotopakke\n </h3>\n\n <p className=\"visuals-form__subheader\">\n { I18n.t('provider.form.visuals_form.subheader') }\n </p>\n\n <h3>\n { I18n.t('provider.form.visuals_form.photo_headline') }\n </h3>\n\n <CheckboxGroup name=\"photo\" options={proposalsData.photo}/>\n\n <div className=\"visuals-form__example-sub\">\n Udvalgte eksempler\n </div>\n\n <div className=\"visuals-form__gallery-wrapper images\">\n <ImageGallery\n fullscreen={false}\n infinite={true}\n items={images.photos}\n renderLeftNav={renderLeftNav}\n renderRightNav={renderRightNav}\n showFullscreenButton={false}\n showPlayButton={false}\n showThumbnails={true}\n />\n </div>\n\n <h3>\n { I18n.t('lb_showroom.detailed.asset_box.new_floor-plans_button') }\n </h3>\n\n <RadioGroup category=\"floorPlan\"/>\n\n <div className=\"visuals-form__example-sub\">\n Udvalgte eksempler\n </div>\n\n <div className=\"visuals-form__gallery-wrapper floor-plans\">\n <ImageGallery\n fullscreen={false}\n infinite={true}\n items={images.floorPlans}\n renderLeftNav={renderLeftNav}\n renderRightNav={renderRightNav}\n showFullscreenButton={false}\n showPlayButton={false}\n showThumbnails={true}\n />\n </div>\n\n <div className=\"visuals-form__contact-info\">\n\n <div className=\"visuals-form__contact-form-header\">\n { I18n.t('generic.providers.sidebar.contacts') }\n </div>\n\n <div className=\"visuals-form__contact-info-row\">\n <div className=\"visuals-form__contact-info-label\">\n { I18n.t('provider.form.visuals_form.address_label') }:\n </div>\n <div className=\"visuals-form__contact-info-value\">\n { locationAddress }\n </div>\n </div>\n\n <div className=\"visuals-form__contact-info-row\">\n <div className=\"visuals-form__contact-info-label\">\n { I18n.t('lb_showroom.detailed.provider_box.contact') }:\n </div>\n <div className=\"visuals-form__contact-info-value\">\n { contactInfo && contactInfo.name }\n </div>\n </div>\n\n <div className=\"visuals-form__contact-info-row\">\n <div className=\"visuals-form__contact-info-label\">\n { I18n.t('generic.email') }:\n </div>\n <div className=\"visuals-form__contact-info-value\">\n { contactInfo && contactInfo.email }\n </div>\n </div>\n\n <div className=\"visuals-form__contact-info-row\">\n <div className=\"visuals-form__contact-info-label\">\n { I18n.t('activemodel.attributes.provider_service_request.phone_number_order_form') }\n :\n </div>\n <div className=\"visuals-form__contact-info-value\">\n { contactInfo && contactInfo.phoneNumber }\n </div>\n </div>\n </div>\n\n { optionsSelected &&\n <div className=\"visuals-form__order-summary-wrapper\" id=\"summary-wrapper\">\n <div className=\"visuals-form__contact-form-header\">\n Min bestilling\n </div>\n\n <div className=\"visuals-form__order-summary-option\" key=\"selected-floor-plan-default\">\n <div className=\"visuals-form__order-summary-option-label\">\n Opstartsgebyr pr. adresse\n </div>\n <div className=\"visuals-form__order-summary-option-value\">\n 1.000 DKK\n </div>\n </div>\n\n <div className=\"visuals-form__order-summary-options\">\n { !!(selectedProposals.photo && selectedProposals.photo.length) && selectedProposals.photo.map(option => selectedOption('photo', option))}\n { !!(selectedProposals.floorPlan && selectedProposals.floorPlan !== 0) && selectedOption('floorPlan', selectedProposals.floorPlan) }\n </div>\n\n <div className=\"visuals-form__contact-info-row visuals-form__contact-info-row--column\">\n <div className=\"visuals-form__comment-headline\">\n { I18n.t('activemodel.attributes.service_request.comment') }\n </div>\n\n <textarea\n id=\"comment\"\n name=\"comment\"\n onChange={e => setComment(e.target.value)}\n value={selectedProposals.comment}\n />\n </div>\n\n <div\n className={`provider-modal__button ${loading ? 'inactive' : ''}`}\n onClick={() => addPaidServiceOrder()}>\n { I18n.t('generic.buy_now') }\n </div>\n\n </div>\n }\n\n <div className=\"visuals-form__bottom-info\">\n <div dangerouslySetInnerHTML={{__html: I18n.t('provider.form.visuals_form.bottom.paragraph_3')}}/>\n <p>{ I18n.t('provider.form.visuals_form.bottom.paragraph_1') }</p>\n <p>{ I18n.t('provider.form.visuals_form.bottom.paragraph_2') }</p>\n </div>\n\n </Fragment>\n }\n </div>\n </ProviderModal>\n </div>\n\n );\n};\n\nexport default VisualsProposalsForm;\n\nconst proposalsData = {\n photo: [\n {\n id: 1,\n label: I18n.t('provider.form.visuals_form.proposals.photo.first_label'),\n price: I18n.t('provider.form.visuals_form.proposals.photo.first_price'),\n },\n {\n id: 2,\n label: I18n.t('provider.form.visuals_form.proposals.photo.second_label'),\n price: I18n.t('provider.form.visuals_form.proposals.photo.second_price'),\n },\n {\n id: 3,\n label: I18n.t('provider.form.visuals_form.proposals.photo.third_label'),\n price: I18n.t('provider.form.visuals_form.proposals.photo.third_price'),\n },\n ],\n floorPlan: [\n {\n id: 1,\n label: I18n.t('provider.form.visuals_form.proposals.floor_plan.first_label'),\n price: I18n.t('provider.form.visuals_form.proposals.floor_plan.first_price'),\n },\n {\n id: 2,\n label: I18n.t('provider.form.visuals_form.proposals.floor_plan.second_label'),\n price: I18n.t('provider.form.visuals_form.proposals.floor_plan.second_price'),\n },\n {\n id: 3,\n label: I18n.t('provider.form.visuals_form.proposals.floor_plan.third_label'),\n price: I18n.t('provider.form.visuals_form.proposals.floor_plan.third_price'),\n },\n {\n id: 4,\n label: I18n.t('provider.form.visuals_form.proposals.floor_plan.fourth_label'),\n price: I18n.t('provider.form.visuals_form.proposals.floor_plan.fourth_price'),\n },\n ],\n virtualTour: [\n {\n id: 1,\n label: I18n.t('provider.form.visuals_form.proposals.virtual_tour.first_label'),\n price: I18n.t('provider.form.visuals_form.proposals.virtual_tour.first_price'),\n },\n {\n id: 2,\n label: I18n.t('provider.form.visuals_form.proposals.virtual_tour.second_label'),\n price: I18n.t('provider.form.visuals_form.proposals.virtual_tour.second_price'),\n },\n ],\n video: [\n {\n id: 1,\n label: I18n.t('provider.form.visuals_form.proposals.video.first_label'),\n price: I18n.t('provider.form.visuals_form.proposals.video.first_price'),\n },\n ],\n};\n\nconst images = {\n photos: [\n {\n original: require('../../../src/images/provider/visual_proposals/images/1.webp'),\n thumbnail: require('../../../src/images/provider/visual_proposals/images/1.webp'),\n },\n {\n original: require('../../../src/images/provider/visual_proposals/images/2.webp'),\n thumbnail: require('../../../src/images/provider/visual_proposals/images/2.webp'),\n },\n {\n original: require('../../../src/images/provider/visual_proposals/images/3.webp'),\n thumbnail: require('../../../src/images/provider/visual_proposals/images/3.webp'),\n },\n {\n original: require('../../../src/images/provider/visual_proposals/images/4.webp'),\n thumbnail: require('../../../src/images/provider/visual_proposals/images/4.webp'),\n },\n {\n original: require('../../../src/images/provider/visual_proposals/images/5.webp'),\n thumbnail: require('../../../src/images/provider/visual_proposals/images/5.webp'),\n },\n {\n original: require('../../../src/images/provider/visual_proposals/images/6.webp'),\n thumbnail: require('../../../src/images/provider/visual_proposals/images/6.webp'),\n },\n {\n original: require('../../../src/images/provider/visual_proposals/images/7.webp'),\n thumbnail: require('../../../src/images/provider/visual_proposals/images/7.webp'),\n },\n {\n original: require('../../../src/images/provider/visual_proposals/images/8.webp'),\n thumbnail: require('../../../src/images/provider/visual_proposals/images/8.webp'),\n },\n ],\n floorPlans: [\n {\n original: require('../../../src/images/provider/visual_proposals/floor_plans/1.webp'),\n thumbnail: require('../../../src/images/provider/visual_proposals/floor_plans/1.webp'),\n },\n {\n original: require('../../../src/images/provider/visual_proposals/floor_plans/2.webp'),\n thumbnail: require('../../../src/images/provider/visual_proposals/floor_plans/2.webp'),\n },\n {\n original: require('../../../src/images/provider/visual_proposals/floor_plans/3.webp'),\n thumbnail: require('../../../src/images/provider/visual_proposals/floor_plans/3.webp'),\n },\n {\n original: require('../../../src/images/provider/visual_proposals/floor_plans/4.webp'),\n thumbnail: require('../../../src/images/provider/visual_proposals/floor_plans/4.webp'),\n },\n {\n original: require('../../../src/images/provider/visual_proposals/floor_plans/5.webp'),\n thumbnail: require('../../../src/images/provider/visual_proposals/floor_plans/5.webp'),\n },\n {\n original: require('../../../src/images/provider/visual_proposals/floor_plans/6.webp'),\n thumbnail: require('../../../src/images/provider/visual_proposals/floor_plans/6.webp'),\n },\n {\n original: require('../../../src/images/provider/visual_proposals/floor_plans/7.webp'),\n thumbnail: require('../../../src/images/provider/visual_proposals/floor_plans/7.webp'),\n },\n ]\n};\n","import React, { Fragment } from 'react';\nimport { Link } from 'react-router-dom';\n\nconst MutableLink = ({ showAsLink, url, children, linkClass, handleClick, stepLink, currentStepRef }) => {\n\n if (showAsLink) {\n return (\n <Link to={url}\n className={linkClass}\n onClick={\n handleClick\n ? (e) => {\n e.preventDefault();\n currentStepRef && (currentStepRef.current.nextStep = stepLink); // FIXME: make reusable\n handleClick(stepLink);\n }\n : null }\n >\n { children }\n </Link>\n )\n } else {\n return (\n <Fragment>{ children }</Fragment>\n )\n }\n}\n\nexport default MutableLink;\n","import React, { useEffect, useState } from 'react';\n\nimport { SvgIco } from \"../../SharedComponents/Icons\";\n\nimport './InfoMessagePopup.sass';\n\nlet timer;\n\n\nconst InfoMessagePopup = ({ children, customClass, customDuration, handleClose, message, toggle, toggleCallback, visible }) => {\n\n const [animationClass, setAnimationClass] = useState('');\n\n useEffect(() => {\n setAnimationClass(visible ? 'fadein' : 'fadeout');\n visible && (timer = setTimeout(() => handleClose(), customDuration || 3000));\n }, [visible]);\n\n\n useEffect(() => {\n if (toggle) {\n clearTimeout(timer);\n timer = setTimeout(() => handleClose(), customDuration || 3000);\n toggleCallback();\n }\n }, [toggle]);\n\n\n const closePopup = () => {\n clearTimeout(timer);\n handleClose();\n };\n\n\n return (\n <div className={`notification-popup ${animationClass} ${customClass || ''}`} role=\"button\">\n <div className=\"notification-popup__close\" onClick={closePopup} role=\"button\">\n <SvgIco name=\"close\" size={20} />\n </div>\n { children || <div dangerouslySetInnerHTML={{ __html: message }} /> }\n </div>\n )\n}\n\nexport default InfoMessagePopup;\n","import React, { useRef, useState } from 'react';\nimport ReactTooltip from \"react-tooltip\";\n\nimport { SvgIco } from \"../../SharedComponents/Icons\";\n\nimport './TooltipPopup.sass';\n\n\nconst TooltipPopup = ({ borderColor,\n children,\n className,\n content,\n height,\n hideBorder,\n icon,\n id,\n marginRight,\n marginLeft,\n onShow,\n offset,\n place }) => {\n\n const [tooltipVisible, setTooltipVisible] = useState(false);\n const tooltipPopupWrapperRef = useRef();\n const tooltipPopupRef = useRef();\n\n\n const handleTooltip = () => {\n tooltipVisible ? ReactTooltip.hide(tooltipPopupRef.current) : ReactTooltip.show(tooltipPopupRef.current);\n setTooltipVisible(!tooltipVisible);\n };\n\n\n const handleScoreTooltip = (tooltipVisible) => {\n tooltipVisible && window.addEventListener('click', handleClickOutsideTooltip);\n onShow && onShow(() => ReactTooltip.hide(tooltipPopupRef.current));\n };\n\n\n const handleClickOutsideTooltip = (e) => {\n if (tooltipPopupWrapperRef.current && !tooltipPopupWrapperRef.current.contains(e.target)) {\n ReactTooltip.hide(tooltipPopupRef.current);\n window.removeEventListener('click', handleClickOutsideTooltip);\n }\n };\n\n\n return (\n <div className={`tooltip-popup ${className}`}\n ref={tooltipPopupWrapperRef}\n style={{ height: height ? `${height}px` : '20px' }}>\n\n <div className=\"tooltip-popup__tooltip\"\n data-tip={content || children}\n data-html={!!content}\n ref={tooltipPopupRef}\n data-class=\"provider-tooltip\"\n data-for={id} />\n\n <div className=\"tooltip-popup__icon\"\n onClick={handleTooltip}\n style={{\n marginRight: marginRight ? `${marginRight}px` : '0',\n marginLeft: marginLeft ? `${marginLeft}px` : '0',}}>\n <SvgIco name={icon} size={height || 20} />\n </div>\n\n <ReactTooltip\n afterHide={() => setTooltipVisible(false)}\n afterShow={() => handleScoreTooltip(true)}\n border={!hideBorder}\n borderColor={borderColor || 'black'}\n clickable={true}\n effect='solid'\n id={id}\n offset={offset}\n place={place || 'left'}\n scrollHide={true}\n type=\"light\"\n >\n { children }\n </ReactTooltip>\n\n </div>\n )\n}\n\nexport default TooltipPopup;\n","import React, { useState } from 'react';\nimport { Link } from \"react-router-dom\";\nimport { useQuery } from \"@apollo/client\";\n\nimport lokalebasen_dk from '../../../src/images/logos/lokalebasen_dk.svg';\nimport matchoffice_generic from '../../../src/images/logos/matchoffice_generic.svg';\nimport { GET_STRIPE_INVOICES } from \"../ApolloClient/queries\";\nimport IframeModal from \"../Modals/IframeModal\";\n\nimport './index.sass';\n\n\nconst ProviderHeader = ({ currentLocale, siteKey, contractUrl }) => {\n\n const [showInvoicesLink, setShowInvoicesLink] = useState(null);\n const [modalIsActive, setModalIsActive] = useState(false);\n const [url, setUrl] = useState(false);\n\n const getLogo = () => siteKey === 'dk' ? lokalebasen_dk : matchoffice_generic;\n\n const {} = useQuery(GET_STRIPE_INVOICES, {\n onCompleted: (data) => {\n if (data && data.stripeInvoices.length) {\n setShowInvoicesLink(true);\n }\n },\n });\n\n const handleShowModal = (url) => {\n setUrl(url);\n setModalIsActive(true);\n };\n\n const handleCloseModal = () => {\n setModalIsActive(false);\n };\n\n return (\n <div className=\"provider-header\" id=\"provider-header\">\n\n <IframeModal modalClass=\"simple-cms-modal\"\n showModal={modalIsActive}\n handleClose={handleCloseModal}\n url={url}></IframeModal>\n\n <a className=\"provider-header__logo-wrapper\" href=\"/\">\n <img\n className=\"logo lazyload\"\n src={getLogo()}\n data-sizes=\"auto\"\n title={I18n.t('apps.lokalebasen_header.top.to_the_frontpage')}\n alt={I18n.t('apps.lokalebasen_header.top.alt')}\n />\n </a>\n\n <div className=\"provider-header__buttons-wrapper\">\n\n <Link to={`${currentLocale}/new_providers/report_deal`} className=\"provider-header__button\">\n <span>{ I18n.t('layouts.providers.contract.report_a_deal') }</span>\n </Link>\n\n <a className=\"provider-header__button\" onClick={() => handleShowModal(contractUrl)}>\n <span>{ I18n.t('layouts.providers.contract.contract') }</span>\n </a>\n\n <Link to={`${currentLocale}/new_providers/settings/contact`} className=\"provider-header__button\">\n <span>{ I18n.t(\"generic.contact_details\") }</span>\n </Link>\n\n { showInvoicesLink &&\n <Link to={`${currentLocale}/new_providers/invoices`} className=\"provider-header__button provider-header__button--orange\">\n <span>{ I18n.t(\"layouts.providers.contract.invoice_payments\") }</span>\n </Link>\n }\n\n </div>\n\n </div>\n );\n}\n\nexport default ProviderHeader;\n","import React from 'react';\n\nimport './index.sass';\n\n\nconst ProviderInactive = ({ data }) => {\n\n const { addressLine, companyName, contactInfoMail, contactInfoPhone, hotline, postalCode } = data;\n\n return (\n <div className=\"provider-inactive\">\n <h2 dangerouslySetInnerHTML={{__html: I18n.t('providers.inactive_page.headline')}}/>\n <p>{ I18n.t('providers.inactive_page.paragraph') }</p>\n <div className=\"provider-inactive__contacts\">\n <div className=\"provider-inactive__contacts-headline\">\n { I18n.t('views.shared.contact_info') }\n </div>\n <div className=\"provider-inactive__contacts-line\">\n { companyName }\n </div>\n <div className=\"provider-inactive__contacts-line\">\n { addressLine }\n </div>\n <div className=\"provider-inactive__contacts-line\">\n { postalCode }\n </div>\n <div className=\"provider-inactive__contacts-line email\">\n { I18n.t('generic.email') }: <a href={\"mailTo:\" + contactInfoMail} >{ contactInfoMail }</a>\n </div>\n { contactInfoPhone &&\n <div className=\"provider-inactive__contacts-line\">\n { I18n.t('generic.phone') }: { contactInfoPhone }\n </div>\n }\n { hotline &&\n <div className=\"provider-inactive__contacts-line hotline\">\n { I18n.t('generic.hotline') }: { hotline }\n </div>\n }\n </div>\n </div>\n )\n}\n\nexport default ProviderInactive;\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { useQuery } from '@apollo/client';\n\nimport NavigationButtons from '../LocationForm/NavigationButtons';\nimport ReportSuccessModal from '../Modals/ReportADealSuccess';\nimport { GET_CURRENCY } from '../ApolloClient/queries';\nimport DetailsReportForm from './DetailsReportForm';\n\nimport './Details.sass';\n\n\nfunction Details({ step,\n title,\n description,\n backButton,\n prevStep,\n submitHandler,\n showModal,\n siteName,\n locationId,\n schemaName,\n selectedLocationStatus,\n siteKey,\n providerId,\n providerOnAdvertisingStrategy,\n currentLocale }) {\n\n const [currencyList, setCurrencyList] = useState([]);\n\n const defaultCurrency = [\n { value: '3', label: 'EUR' },\n { value: '77', label: 'USD' },\n ];\n\n const { data } = useQuery(GET_CURRENCY, {\n variables: { locationId }\n });\n\n useEffect(() => {\n if (data) {\n const currencyFormat = data.currencies.map((item) => ({\n value: item.id,\n label: item.name,\n }));\n setCurrencyList(currencyFormat);\n } else {\n setCurrencyList(defaultCurrency);\n }\n }, [data]);\n\n\n return (\n <div className=\"details-block\">\n <ReportSuccessModal\n currentLocale={currentLocale}\n showModal={showModal}\n siteKey={siteKey} />\n\n <DetailsReportForm\n currencyList={currencyList}\n description={description}\n locationId={locationId}\n providerId={providerId}\n providerOnAdvertisingStrategy={providerOnAdvertisingStrategy}\n schemaName={schemaName}\n selectedLocationStatus={selectedLocationStatus}\n siteName={siteName}\n step={step}\n submitHandler={submitHandler}\n title={title}\n />\n\n <div>\n <NavigationButtons handleBack={backButton ? () => prevStep() : false} />\n </div>\n </div>\n );\n}\n\nDetails.propTypes = {\n step: PropTypes.number,\n prevStep: PropTypes.func,\n title: PropTypes.string,\n description: PropTypes.string,\n backButton: PropTypes.bool,\n siteKey: PropTypes.string,\n providerOnAdvertisingStrategy: PropTypes.bool,\n siteName: PropTypes.string,\n showModal: PropTypes.bool,\n submitHandler: PropTypes.func,\n locationId: PropTypes.string,\n};\n\nDetails.defaultProps = {\n step: 1,\n prevStep: () => true,\n title: '',\n description: '',\n backButton: false,\n siteKey: '',\n providerOnAdvertisingStrategy: false,\n siteName: '',\n showModal: false,\n submitHandler: () => true,\n locationId: '',\n};\n\nexport default Details;\n","import React, { useState, useMemo } from 'react';\nimport { useMutation } from \"@apollo/client\";\nimport { withFormik } from 'formik';\nimport PropTypes from 'prop-types';\nimport Dropdown from 'react-dropdown';\nimport Yup from 'yup';\n\nimport { requiredFieldError } from '../../SharedComponents/Forms/ErrorMessages';\nimport { SvgIco } from '../../SharedComponents/Icons';\nimport { ADD_INCOMPLETE_DEAL_NOTIFICATION } from \"../ApolloClient/mutations\";\n\n\nfunction DetailsReportFormWrapper({ currencyList,\n description,\n errors,\n handleBlur,\n handleChange: formikHandleChange,\n handleSubmit,\n locationId,\n providerId,\n schemaName,\n selectedLocationStatus,\n setFieldValue,\n siteName,\n step,\n title,\n touched,\n values,\n }) {\n\n const [isSubmited, setIsSubmited] = useState(false);\n const [incompleteDealSent, setIncompleteDealSent] = useState(false);\n\n\n const errorsArray = useMemo(\n () => Object.keys(errors).filter((item) => touched[item] || isSubmited),\n [errors, isSubmited, touched]\n );\n\n const [addIncompleteDealNotification] = useMutation(ADD_INCOMPLETE_DEAL_NOTIFICATION);\n\n\n const handleChange = (e) => {\n formikHandleChange(e);\n\n if (locationId && !incompleteDealSent) {\n setIncompleteDealSent(true);\n addIncompleteDealNotification({\n variables: { providerId: Number(providerId), locationId: Number(locationId) },\n }).catch(error => console.log('Error', error));\n }\n };\n\n\n return (\n <div>\n { errorsArray.length > 0 &&\n <div className=\"validation-message-wrapper\">\n <p>{ I18n.t('reports.providers_order_report.fix_these_errors') }</p>\n <ul>\n { errorsArray.map(item => <li className=\"validation-message\">{errors[item]}</li>)}\n </ul>\n </div>\n }\n\n <h3 className=\"details-block__title\">\n { step }. {title}{' '}\n <span className=\"details-block__title-description\">{ description }</span>\n </h3>\n\n <div className=\"deal-report\">\n <form name=\"deal-report\" onSubmit={handleSubmit} noValidate>\n\n { (schemaName === 'dk' || schemaName === 'default') &&\n <div className=\"deal-report__line-wrapper\">\n\n <p className=\"deal-report__label\">\n { I18n.t('activerecord.attributes.lease.area_rented') }:{' '}\n </p>\n\n <div className=\"deal-report__input-wrapper\">\n <input\n name=\"areaRented\"\n value={values.areaRented}\n type=\"number\"\n id=\"areaRented\"\n className={`deal-report__input ${ errorsArray.includes('areaRented') ? 'error' : ''} `}\n onChange={handleChange}\n onBlur={handleBlur}\n />\n </div>\n\n { schemaName === 'dk' &&\n <div>\n <div className=\"deal-report__checkbox-wrapper\">\n <label className=\"checkbox-label\" htmlFor=\"areaRentedDontKnow\">\n <input\n name=\"areaRentedDontKnow\"\n id=\"areaRentedDontKnow\"\n type=\"checkbox\"\n checked={values.areaRentedDontKnow}\n onChange={handleChange}\n onBlur={handleBlur}\n />\n\n <span className=\"checkmark\">\n <SvgIco name=\"check\" size={17} />\n </span>\n\n <div className=\"checkbox-label\">\n { I18n.t('activerecord.attributes.lease.currently_unknown') }\n </div>\n </label>\n </div>\n </div>\n }\n </div>\n }\n\n\n { schemaName === 'default' &&\n <div className=\"deal-report__line-wrapper\">\n\n <p className=\"deal-report__label\">\n { I18n.t('generic.number_of_desks') }:{' '}\n </p>\n\n <div className=\"deal-report__input-wrapper\">\n <input\n name=\"numberOfDesks\"\n value={values.numberOfDesks}\n type=\"number\"\n id=\"numberOfDesks\"\n className={`deal-report__input ${ errorsArray.includes('areaRented') ? 'error' : ''} `}\n onChange={handleChange}\n onBlur={handleBlur}\n />\n </div>\n </div>\n }\n\n\n <div className=\"deal-report__line-wrapper\">\n\n <p className=\"deal-report__label\">\n { schemaName === 'dk'\n ? I18n.t('activerecord.attributes.deal.occupied_at')\n : schemaName === 'meetingRoom'\n ? I18n.t('report_deal.booking_date')\n : I18n.t('report_deal.start_date')\n }:{' '}\n </p>\n\n <div>\n <input\n name=\"occupiedAt\"\n value={values.occupiedAt}\n type=\"date\"\n id=\"occupiedAt\"\n className={`deal-report__input ${ errorsArray.includes('occupiedAt') ? 'error' : ''} `}\n onChange={handleChange}\n onBlur={handleBlur}\n required\n />\n </div>\n\n { schemaName === 'dk' &&\n <div>\n <div className=\"deal-report__checkbox-wrapper\">\n <label className=\"checkbox-label\" htmlFor=\"occupiedAtDontKnow\">\n <input\n name=\"occupiedAtDontKnow\"\n id=\"occupiedAtDontKnow\"\n type=\"checkbox\"\n checked={values.occupiedAtDontKnow}\n onChange={handleChange}\n onBlur={handleBlur}\n />\n\n <span className=\"checkmark\">\n <SvgIco name=\"check\" size={17} />\n </span>\n\n <div className=\"checkbox-label\">\n { I18n.t('activerecord.attributes.lease.currently_unknown') }\n </div>\n </label>\n </div>\n </div>\n }\n </div>\n\n\n { (schemaName === 'default' || schemaName === 'virtualOffice') &&\n <div className=\"deal-report__line-wrapper\">\n\n <p className=\"deal-report__label\">\n { I18n.t('report_deal.months_duration') }:{' '}\n </p>\n\n <div className=\"deal-report__input-wrapper\">\n <input\n name=\"monthsCount\"\n value={values.monthsCount}\n type=\"number\"\n id=\"monthsCount\"\n className={`deal-report__input ${ errorsArray.includes('monthsCount') ? 'error' : ''} `}\n onChange={handleChange}\n onBlur={handleBlur}\n />\n </div>\n </div>\n }\n\n\n { schemaName === 'dk' &&\n <div className=\"deal-report__line-wrapper\">\n\n <p className=\"deal-report__label\">\n { I18n.t('activerecord.attributes.lease.expected_end') }:{' '}\n </p>\n\n <div>\n <input\n name=\"expectedEnd\"\n type=\"date\"\n value={values.expectedEnd}\n id=\"expectedEnd\"\n className=\"deal-report__input\"\n onChange={handleChange}\n onBlur={handleBlur}\n required\n />\n </div>\n\n <div>\n <div className=\"deal-report__checkbox-wrapper\">\n <label className=\"checkbox-label\" htmlFor=\"expectedEndDontKnow\">\n <input\n name=\"expectedEndDontKnow\"\n id=\"expectedEndDontKnow\"\n type=\"checkbox\"\n checked={values.expectedEndDontKnow}\n onChange={handleChange}\n onBlur={handleBlur}\n />\n\n <span className=\"checkmark\">\n <SvgIco name=\"check\" size={17} />\n </span>\n\n <div className=\"checkbox-label\">\n { I18n.t('activerecord.attributes.lease.currently_unknown') }\n </div>\n </label>\n </div>\n </div>\n </div>\n }\n\n\n <div className=\"deal-report__line-wrapper\">\n\n { schemaName === 'meetingRoom'\n ?\n <p className=\"deal-report__label\">\n { I18n.t('generic.price') }:{' '}\n </p>\n :\n <p className=\"deal-report__label\">\n { schemaName === 'dk'\n ? I18n.t('activerecord.attributes.deal.total_amount_rent_first_part')\n : I18n.t('generic.monthly_rent')\n }\n <br />{' '}\n <span className=\"deal-report__label-description\">\n { I18n.t('activerecord.attributes.deal.total_amount_rent_second_part') }:\n </span>\n </p>\n }\n\n <div>\n {schemaName === 'dk' || schemaName === 'meetingRoom'\n ?\n <input\n name=\"totalAmount\"\n value={values.totalAmount}\n id=\"totalAmount\"\n type=\"number\"\n className={`deal-report__input ${errorsArray.includes('totalAmount') ? 'error' : ''} `}\n onChange={handleChange}\n onBlur={handleBlur}\n required={schemaName === 'dk'}\n />\n :\n <input\n name=\"monthlyRent\"\n value={values.monthlyRent}\n id=\"monthlyRent\"\n type=\"number\"\n className={`deal-report__input ${errorsArray.includes('monthlyRent') ? 'error' : ''} `}\n onChange={handleChange}\n onBlur={handleBlur}\n />\n }\n </div>\n\n { schemaName === 'dk' &&\n <div>\n <div className=\"deal-report__checkbox-wrapper\">\n <label className=\"checkbox-label\" htmlFor=\"totalAmountDontKnow\">\n <input\n name=\"totalAmountDontKnow\"\n id=\"totalAmountDontKnow\"\n type=\"checkbox\"\n checked={values.totalAmountDontKnow}\n onChange={handleChange}\n onBlur={handleBlur}\n />\n\n <span className=\"checkmark\">\n <SvgIco name=\"check\" size={17} />\n </span>\n\n <div className=\"checkbox-label\">\n { I18n.t('activerecord.attributes.lease.currently_unknown') }\n </div>\n </label>\n </div>\n </div>\n }\n\n { schemaName !== 'dk' &&\n <div>\n <Dropdown\n options={currencyList}\n onChange={(value) => setFieldValue('currencyId', value)}\n value={values.currencyId}\n arrowClosed={<SvgIco name=\"expand-more\" size={24} />}\n arrowOpen={<SvgIco name=\"expand-less\" size={24} />}\n controlClassName=\"currency-wrapper\"\n />\n </div>\n }\n </div>\n\n { schemaName === 'dk' &&\n <div className=\"deal-report__line-wrapper\">\n <p className=\"deal-report__label\">\n { I18n.t('layouts.lokalebasen_layout.localization_picker.choose_currency') }\n :{' '}\n </p>\n\n <div>\n <Dropdown\n options={currencyList}\n onChange={(value) => setFieldValue('currencyId', value)}\n value={values.currencyId}\n arrowClosed={<SvgIco name=\"expand-more\" size={24} />}\n arrowOpen={<SvgIco name=\"expand-less\" size={24} />}\n controlClassName=\"currency-wrapper\"\n />\n </div>\n </div>\n }\n\n\n { (!selectedLocationStatus || selectedLocationStatus !== 'closed') &&\n <div className=\"deal-report__line-wrapper\">\n <div className=\"deal-report__checkbox-wrapper\">\n <label className=\"checkbox-label\" htmlFor=\"deactivateLocation\">\n <input\n name=\"deactivateLocation\"\n type=\"checkbox\"\n checked={values.deactivateLocation}\n id=\"deactivateLocation\"\n onChange={handleChange}\n onBlur={handleBlur}\n />\n\n <span className=\"checkmark\">\n <SvgIco name=\"check\" size={17} />\n </span>\n\n <div className=\"checkbox-label deactivate-text\">\n { I18n.t('activerecord.attributes.lease.deactivate_location', { site_name: siteName })}\n </div>\n </label>\n </div>\n </div>\n }\n\n <div className=\"row\">\n <div className=\"col-md-6\">\n <h3 className=\"deal-report__comment-title\">\n 4. {I18n.t('generic.comment')}\n </h3>\n <textarea\n id=\"comment\"\n name=\"comment\"\n value={values.comment}\n onChange={handleChange}\n onBlur={handleBlur}\n placeholder={\n schemaName === 'dk'\n ? I18n.t('reports.providers_order_report.add_comment_placeholder')\n : schemaName === 'meetingRoom'\n ? I18n.t('reports.providers_order_report.add_comment_meeting_room')\n : I18n.t('reports.providers_order_report.add_comment_default')\n }\n />\n\n <div>\n <button\n type=\"submit\"\n className=\"deal-report__approve\"\n onClick={() => setIsSubmited(true)}>\n { I18n.t('admin.provider_deals.provider_deal.approve') }\n </button>\n </div>\n </div>\n </div>\n </form>\n </div>\n </div>\n );\n};\n\n\nconst DetailsReportForm = withFormik(\n {\n enableReinitialize: true,\n mapPropsToValues: ({ currencyList, providerOnAdvertisingStrategy, schemaName }) => ({\n comment: '',\n areaRentedDontKnow: false,\n occupiedAtDontKnow: false,\n expectedEndDontKnow: true,\n totalAmountDontKnow: false,\n deactivateLocation: false,\n isNotDk: schemaName !== 'dk',\n isDefault: schemaName === 'default',\n currencyId: currencyList[0],\n providerStrategy: providerOnAdvertisingStrategy,\n }),\n\n validationSchema: Yup.object().shape({\n areaRentedDontKnow: Yup.boolean(),\n occupiedAtDontKnow: Yup.boolean(),\n expectedEndDontKnow: Yup.boolean(),\n totalAmountDontKnow: Yup.boolean(),\n deactivateLocation: Yup.boolean(),\n providerStrategy: Yup.boolean(),\n isNotDk: Yup.boolean(),\n isDefault: Yup.boolean(),\n areaRented: Yup.string()\n .when(['areaRentedDontKnow', 'isNotDk', 'providerStrategy'], {\n is: false,\n then: Yup.string().required(requiredFieldError(I18n.t('providers.leases.new.area_rented_error'))),\n })\n .test('test', I18n.t('report_deal.error_required_fields_one_of'), function(value){\n return !this.parent.isDefault || (!!this.parent.numberOfDesks || value);\n }),\n occupiedAt: Yup.date()\n .when(['occupiedAtDontKnow', 'isNotDk', 'providerStrategy'], {\n is: false,\n then: Yup.date().required(requiredFieldError(I18n.t('providers.leases.new.occupied_rented_error'))),\n }),\n expectedEnd: Yup.date(),\n totalAmount: Yup.string()\n .when(['totalAmountDontKnow', 'isNotDk', 'providerStrategy'], {\n is: false,\n then: Yup.string().required(requiredFieldError(I18n.t('providers.leases.new.totalamout_rented_error'))),\n }\n ),\n monthsCount: Yup.string(),\n monthlyRent: Yup.string(),\n numberOfDesks: Yup.string(),\n }),\n\n handleSubmit: (values, bag) => {\n bag.props.submitHandler(values);\n },\n\n displayName: 'Report Deal Details',\n}\n)(DetailsReportFormWrapper);\n\n\n\n\nDetailsReportFormWrapper.propTypes = {\n handleSubmit: PropTypes.func,\n values: PropTypes.oneOfType([PropTypes.object]),\n handleChange: PropTypes.func,\n touched: PropTypes.bool,\n handleBlur: PropTypes.func,\n errors: PropTypes.oneOfType([PropTypes.array]),\n title: PropTypes.string,\n description: PropTypes.string,\n siteName: PropTypes.string,\n currencyList: PropTypes.oneOfType([PropTypes.array]),\n setFieldValue: PropTypes.func,\n step: PropTypes.number,\n};\n\nDetailsReportFormWrapper.defaultProps = {\n handleSubmit: () => true,\n values: {},\n handleChange: () => true,\n touched: false,\n handleBlur: () => true,\n errors: [],\n title: '',\n description: '',\n siteName: '',\n currencyList: [],\n setFieldValue: () => true,\n step: 1,\n};\n\nexport default DetailsReportForm;\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Table from '../Table';\nimport NavigationButtons from '../LocationForm/NavigationButtons';\nimport { SvgIco } from \"../../SharedComponents/Icons\";\n\nimport './ReaportDealTable.sass';\n\n\nfunction ReaportDealTable({\n step,\n title,\n description,\n data,\n loading,\n columns,\n nextStep,\n prevStep,\n backButton,\n changeSearchInput,\n locations,\n handleInput,\n inputValue,\n handleFilters,\n hiddenColumns,\n totalCount,\n filtersData,\n query,\n}) {\n\n const [noneOrder, setNoneOrder] = useState(false);\n const [noneLocation, setNoneLocation] = useState(false);\n\n useEffect(() => {\n inputValue && checkNoneRadio();\n }, [inputValue]);\n\n const { page, perPage } = filtersData;\n\n const perPageOptions = [\n { value: '5', label: '5' },\n { value: '10', label: '10' },\n ];\n\n const setQueryValue = (searchValue) =>\n locations\n ? changeSearchInput(searchValue, true)\n : changeSearchInput(searchValue);\n\n const firstStep = step === 1;\n\n const checkNoneRadio = () => {\n firstStep ? setNoneOrder('none-order') : setNoneLocation('non-location');\n };\n\n const setFilters = (newFilters) =>\n handleFilters(prevFilters => ({\n ...prevFilters,\n ...newFilters,\n }));\n\n\n return (\n <div className=\"table-block\">\n <h3 className=\"table-block__title\">\n {step}.{title}\n <span> ({description})</span>\n </h3>\n\n <div className=\"search-input-wrapper\">\n <input\n type=\"text\"\n className=\"search-input\"\n value={query}\n placeholder={I18n.t('generic.search')}\n onChange={(e) => setQueryValue(e.target.value)}\n maxLength=\"256\"\n />\n <SvgIco className=\"search-icon\" name=\"search\" size={16} />\n </div>\n\n <Table\n data={data}\n columns={columns}\n perPage={perPage}\n perPageOptions={perPageOptions}\n loading={loading}\n currentPage={page}\n hiddenColumns={hiddenColumns}\n disableSortBy={true}\n setPage={(page) => setFilters({ page })}\n setPerPage={(perPage) => setFilters({ perPage, page: 1 })}\n totalCount={totalCount}\n />\n\n <div className=\"table-block__company-input-wrapper\">\n <div className=\"check-button\">\n <input\n type=\"radio\"\n name={firstStep ? 'company-name' : 'address'}\n id=\"none-above\"\n value={firstStep ? noneOrder : noneLocation}\n checked={\n firstStep\n ? noneOrder === 'none-order'\n : noneLocation === 'non-location'\n }\n className=\"checkoption-input\"\n />\n <label\n htmlFor=\"none-above\"\n className=\"select-option\"\n onClick={() => checkNoneRadio()}\n >\n <span className=\"option-checkmark\" />\n { firstStep\n ? I18n.t('providers.leases.new.step_1_none_label')\n : I18n.t('providers.leases.new.step_2_none_label')\n }\n </label>\n </div>\n\n <div>\n <input\n type=\"text\"\n className=\"table-block__company-name-input\"\n value={inputValue}\n placeholder={\n firstStep\n ? I18n.t('providers.leases.new.type_company_name')\n : I18n.t('providers.leases.new.type_address_name')\n }\n onChange={(e) => handleInput(e.target.value)}\n maxLength=\"256\"\n />\n </div>\n </div>\n\n <div>\n <NavigationButtons\n handleNext={() => nextStep()}\n handleBack={backButton ? () => prevStep() : false}\n />\n </div>\n </div>\n );\n}\n\nReaportDealTable.propTypes = {\n step: PropTypes.number,\n nextStep: PropTypes.func,\n prevStep: PropTypes.func,\n title: PropTypes.string,\n description: PropTypes.string,\n data: PropTypes.oneOfType([PropTypes.array]),\n handleInput: PropTypes.func,\n locationQuery: PropTypes.string,\n orderQuery: PropTypes.string,\n setPage: PropTypes.func,\n inputValue: PropTypes.string,\n locations: PropTypes.bool,\n changeSearchInput: PropTypes.func,\n backButton: PropTypes.bool,\n page: PropTypes.number,\n};\n\nReaportDealTable.defaultProps = {\n step: 1,\n nextStep: () => true,\n prevStep: () => true,\n title: '',\n description: '',\n data: [],\n handleInput: () => true,\n locationQuery: '',\n orderQuery: '',\n setPage: () => true,\n inputValue: '',\n locations: false,\n changeSearchInput: () => true,\n backButton: false,\n page: 1,\n};\n\nexport default ReaportDealTable;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nfunction ReportDealProgress({ steps, activeStep }) {\n return (\n <div className=\"progress-bar report-deal-progress-bar\">\n <div className=\"progress-bar__background-line\" />\n\n {steps.map((item, index) => (\n <div\n className={`progress-bar__step-wrapper ${\n activeStep === index + 1 ? ' active' : ''\n }`}\n key={index}\n >\n <div className=\"progress-bar__step-number-wrapper\">\n <div\n className={`progress-bar__step-number ${\n item.passed ? 'complete' : ''\n }`}\n >\n {index + 1}\n </div>\n </div>\n\n <div className=\"progress-bar__step-name\">{item.name}</div>\n </div>\n ))}\n </div>\n );\n}\n\nReportDealProgress.propTypes = {\n steps: PropTypes.oneOfType([PropTypes.array]),\n activeStep: PropTypes.number,\n};\n\nReportDealProgress.defaultProps = {\n steps: [],\n activeStep: 1,\n};\n\nexport default ReportDealProgress;\n","import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\n\nimport ReaportDealTable from './ReaportDealTable';\nimport Details from './Details';\nimport { Context } from \"./index\";\n\nfunction ReportSteps() {\n\n const {\n clientPage,\n currentLocale,\n handleOtherClient,\n handleOtherLocationAddress,\n loadingLocations,\n loadingOrders,\n locationId,\n locationsColumns,\n locationsList,\n locationsPage,\n locationsTotalCount,\n locationQuery,\n orders,\n ordersColumns,\n ordersTotalCount,\n orderQuery,\n otherClient,\n otherLocationAddress,\n providerId,\n providerOnAdvertisingStrategy,\n schemaName,\n showModal,\n selectedLocationStatus,\n setClientPage,\n setLocationsPage,\n siteKey,\n siteName,\n step,\n submitHandler,\n changeSearchInput,\n nextStep,\n prevStep,\n } = useContext(Context);\n\n const hideInternalIdentifierColumn = !locationsList.some(data => data.internalIdentifier);\n\n const steps = () => {\n switch (step) {\n case 1:\n return (\n <ReaportDealTable\n changeSearchInput={changeSearchInput}\n columns={ordersColumns}\n data={orders}\n description={I18n.t('providers.leases.new.step_1_heading')}\n filtersData={clientPage}\n handleFilters={setClientPage}\n handleInput={handleOtherClient}\n inputValue={otherClient}\n loading={loadingOrders}\n nextStep={nextStep}\n query={orderQuery}\n step={step}\n title={I18n.t('providers.providers.show.customers')}\n totalCount={ordersTotalCount}\n />\n );\n case 2:\n return (\n <ReaportDealTable\n backButton\n changeSearchInput={changeSearchInput}\n columns={locationsColumns}\n data={locationsList}\n description={I18n.t('providers.leases.new.step_2_heading')}\n filtersData={locationsPage}\n handleFilters={setLocationsPage}\n handleInput={handleOtherLocationAddress}\n hiddenColumns={hideInternalIdentifierColumn ? ['internalIdentifier'] : null}\n inputValue={otherLocationAddress}\n loading={loadingLocations}\n locations\n nextStep={nextStep}\n prevStep={prevStep}\n query={locationQuery}\n step={step}\n title={I18n.t('generic.providers.sidebar.leases')}\n totalCount={locationsTotalCount}\n />\n );\n case 3:\n return (\n <Details\n currentLocale={currentLocale}\n step={step}\n title={I18n.t('generic.details')}\n description={I18n.t('providers.leases.new.enter_information')}\n prevStep={prevStep}\n submitHandler={submitHandler}\n showModal={showModal}\n siteName={siteName}\n locationId={locationId}\n schemaName={schemaName}\n selectedLocationStatus={selectedLocationStatus}\n siteKey={siteKey}\n providerId={providerId}\n providerOnAdvertisingStrategy={providerOnAdvertisingStrategy}\n backButton\n />\n );\n default:\n // do nothing\n }\n };\n\n return <div>{ steps() }</div>;\n}\n\nReportSteps.propTypes = {\n siteKey: PropTypes.string,\n siteName: PropTypes.string,\n providerOnAdvertisingStrategy: PropTypes.bool,\n step: PropTypes.number,\n orders: PropTypes.oneOfType([PropTypes.array]),\n locationsList: PropTypes.oneOfType([PropTypes.array]),\n nextStep: PropTypes.func,\n prevStep: PropTypes.func,\n submitHandler: PropTypes.func,\n changeSearchInput: PropTypes.func,\n handleOtherClient: PropTypes.func,\n clientPage: PropTypes.number,\n locationId: PropTypes.string,\n showModal: PropTypes.bool,\n otherClient: PropTypes.string,\n handleOtherLocationAddress: PropTypes.func,\n otherLocationAddress: PropTypes.string,\n orderQuery: PropTypes.string,\n locationQuery: PropTypes.string,\n};\n\nReportSteps.defaultProps = {\n siteKey: '',\n siteName: '',\n providerOnAdvertisingStrategy: false,\n step: 1,\n orders: [],\n locationsList: [],\n nextStep: () => true,\n prevStep: () => true,\n submitHandler: () => true,\n changeSearchInput: () => true,\n handleOtherClient: () => true,\n clientPage: 1,\n locationId: '',\n showModal: false,\n otherClient: '',\n handleOtherLocationAddress: () => true,\n otherLocationAddress: '',\n orderQuery: '',\n locationQuery: '',\n};\n\nexport default ReportSteps;\n","import React, { useEffect, useMemo, useState } from 'react';\nimport { createContext } from 'react';\nimport { useMutation, useLazyQuery } from '@apollo/client';\nimport PropTypes from 'prop-types';\n\nimport { GET_LOCATION_REPORT_DEAL, GET_LOCATIONS_REPORT_DEAL, GET_ORDER, GET_ORDERS_REPORT_DEAL } from '../ApolloClient/queries';\nimport { REPORT_DEAL } from '../ApolloClient/mutations';\nimport FormMessageBlock from '../../SharedComponents/FormMessages/FormMessageBlock';\nimport { useRouterQuery, useDebouncedEffect } from '../../SharedComponents/hooks';\nimport { ReportDealLocation, ReportDealOrders } from '../Table/Columns';\nimport ReportSteps from './ReportSteps';\nimport ReportDealProgress from './ReportDealProgress';\n\nimport './index.sass';\n\nexport const Context = createContext({});\n\n\nfunction ReportDeal({ currentLocale, siteName, siteKey, providerId, providerOnAdvertisingStrategy }) {\n const query = useRouterQuery();\n\n const [locations, setLocations] = useState([]);\n const [orders, setOrdersList] = useState([]);\n const [step, setStep] = useState(1);\n const [clientId, setClientId] = useState(parseInt(query.get('client_id')) || null);\n const [locationId, setLocationId] = useState(query.get('location_id') || null);\n const [enquiryId, setEnquiryId] = useState(query.get('enquiry_id') || null);\n const [orderId, setOrderId] = useState(query.get('order_id') || null);\n const [orderQuery, setOrderQuery] = useState('');\n const [locationQuery, setLocationQuery] = useState('');\n const [formValues, setFormValues] = useState({});\n const [preselectedOrder, setPreselectedOrder] = useState(null);\n const [preselectedLocation, setPreselectedLocation] = useState(null);\n const [poppedOrder, setPoppedOrder] = useState(null);\n const [poppedLocation, setPoppedLocation] = useState(null);\n const [ordersTotalCount, setOrdersTotalCount] = useState(0);\n const [locationsTotalCount, setLocationsTotalCount] = useState(0);\n const [clientPage, setClientPage] = useState({ page: 1, perPage: 5, query: '' });\n const [locationsPage, setLocationsPage] = useState({ page: 1, perPage: 5, query: '' });\n const [otherClient, setOtherClient] = useState('');\n const [otherLocationAddress, setOtherLocationAddress] = useState('');\n const [showModal, setShowModal] = useState(false);\n const [selectedLocationStatus, setSelectedLocationStatus] = useState(null);\n const [showNotification, setSnowNotification] = useState({\n show: false,\n message: '',\n color: 'red',\n });\n\n\n const [steps, setSteps] = useState([\n { name: I18n.t('providers.providers.show.customers'), passed: false },\n { name: I18n.t('generic.providers.sidebar.leases'), passed: false },\n { name: I18n.t('generic.details'), passed: false },\n ]);\n\n\n const [getLocations, { loading: loadingLocations }] = useLazyQuery(GET_LOCATIONS_REPORT_DEAL, {\n onCompleted: (data) => {\n if (data.locations) {\n setLocationsTotalCount(data.locations.totalCount);\n\n handleDataResponse({\n data: data.locations.locations,\n filters: locationsPage,\n preselectedElem: preselectedLocation,\n poppedElem: poppedLocation,\n setData: setLocations,\n setPoppedElem: setPoppedLocation,\n });\n }\n },\n });\n\n\n const [getLocation, { loading: loadingLocation }] = useLazyQuery(GET_LOCATION_REPORT_DEAL, {\n onCompleted: (data) => {\n data.location && setPreselectedLocation(data.location);\n getLocations({ variables: locationsPage })\n .catch(error => console.log('Error', error))\n },\n });\n\n\n const [getOrders, { loading: loadingOrders }] = useLazyQuery(GET_ORDERS_REPORT_DEAL, {\n onCompleted: (data) => {\n if (data.orders) {\n setOrdersTotalCount(data.orders.totalCount);\n\n handleDataResponse({\n data: data.orders.orders,\n filters: clientPage,\n preselectedElem: preselectedOrder,\n poppedElem: poppedOrder,\n setData: setOrdersList,\n setPoppedElem: setPoppedOrder,\n });\n }\n },\n });\n\n\n const [getOrder, { loading: loadingOrder }] = useLazyQuery(GET_ORDER, {\n onCompleted: (data) => {\n data.order && setPreselectedOrder(data.order);\n getOrders({ variables: { ...clientPage } })\n .catch(error => console.log('Error', error))\n },\n });\n\n\n const [reportDeal] = useMutation(REPORT_DEAL);\n\n\n const schemaName = useMemo(\n () => {\n const locationKind = locationId && locations && locations.length && locations.find(location => location.id === locationId).kind;\n return siteKey === 'dk'\n ? 'dk'\n : locationKind === 'virtual_office'\n ? 'virtualOffice'\n : locationKind === 'meeting_room'\n ? 'meetingRoom'\n : 'default';\n },\n [locationId]\n );\n\n\n useEffect(() => {\n requestOrders();\n requestLocations();\n }, []);\n\n useEffect(() => {\n if (otherLocationAddress) {\n setLocationId(null);\n setSelectedLocationStatus(null);\n }\n }, [otherLocationAddress]);\n\n\n useEffect(() => {\n otherClient && setClientId(null);\n }, [otherClient]);\n\n\n useEffect(() => {\n getOrders({ variables: { ...clientPage } })\n .catch(error => console.log('Error', error));\n }, [clientPage]);\n\n\n useEffect(() => {\n getLocations({ variables: { ...locationsPage } })\n .catch(error => console.log('Error', error))\n }, [locationsPage]);\n\n\n useDebouncedEffect(() => setClientPage(prevFilters => ({ ...prevFilters, query: orderQuery, page: 1, test: 4 })), [orderQuery], 500);\n useDebouncedEffect(() => setLocationsPage(prevFilters => ({ ...prevFilters, query: locationQuery, page: 1, test: 2 })), [locationQuery], 500);\n\n\n const requestOrders = () => {\n orderId\n ? getOrder({ variables: { id: orderId } })\n : getOrders({ variables: clientPage });\n };\n\n\n const requestLocations = () => {\n locationId\n ? getLocation({ variables: { id: locationId } })\n : getLocations({ variables: locationsPage });\n };\n\n\n const handleDataResponse = ({ data, filters, preselectedElem, poppedElem, setData, setPoppedElem }) => {\n let currentData = [ ...data ];\n\n if (preselectedElem && !filters.query) {\n const preselectedElemInTheList = currentData.some(elem => elem.id === preselectedElem.id);\n\n if (filters.page === 1) {\n preselectedElemInTheList\n ? currentData = currentData.filter(elem => elem.id !== preselectedElem.id)\n : setPoppedElem(currentData.pop());\n\n currentData.unshift(preselectedElem);\n } else {\n preselectedElemInTheList\n && poppedElem\n && (currentData = currentData.map(elem => elem.id === preselectedElem.id ? poppedElem : elem));\n }\n }\n\n setData(currentData);\n };\n\n const handleSelectLocation = (id, state) => {\n setLocationId(id);\n setSelectedLocationStatus(state);\n otherLocationAddress && setOtherLocationAddress('');\n };\n\n\n const handleSelectClient = (id) => {\n setClientId(id);\n otherClient && setOtherClient('');\n };\n\n\n const handleCloseNotification = () =>\n setSnowNotification({ show: false, message: '' });\n\n\n const changeSearchInput = (searchValue, locations) =>\n locations ? setLocationQuery(searchValue) : setOrderQuery(searchValue);\n\n\n const ordersColumns = ReportDealOrders(\n orders,\n handleSelectClient,\n clientId,\n handleCloseNotification,\n );\n\n const locationsColumns = ReportDealLocation(\n locations,\n locationId,\n handleSelectLocation\n );\n\n\n const nextStep = () => {\n const passStep = (param) => {\n const newArr = [...steps];\n newArr[param].passed = true;\n setSteps(newArr);\n setStep(step + 1);\n if (orderQuery) {\n setOrderQuery('');\n setClientPage(prevFilters => ({ ...prevFilters, query: '' }));\n }\n if (locationQuery) {\n setLocationQuery('');\n setLocationsPage(prevFilters => ({ ...prevFilters, query: '' }));\n }\n };\n\n switch (step) {\n case 1:\n if (clientId || otherClient.length > 1) {\n passStep(0);\n } else {\n setSnowNotification({\n show: true,\n message: I18n.t('providers.leases.new.client_error'),\n color: 'red',\n });\n }\n break;\n case 2:\n if (locationId || otherLocationAddress.length > 1) {\n passStep(1);\n } else {\n setSnowNotification({\n show: true,\n message: I18n.t('providers.leases.new.address_error'),\n color: 'red',\n });\n }\n break;\n }\n };\n\n\n const prevStep = () => {\n setStep(step - 1);\n if (orderQuery) {\n setOrderQuery('');\n setClientPage(prevFilters => ({ ...prevFilters, query: '' }));\n }\n if (locationQuery) {\n setLocationQuery('');\n setLocationsPage(prevFilters => ({ ...prevFilters, query: '' }));\n }\n };\n\n\n const reportDealSubmit = (values) => {\n // const { areaRented, areaRentedDontKnow } = values;\n // const reportedLocation = locations.find(location => location.id === locationId);\n\n setFormValues(values);\n reportADeal(values);\n };\n\n\n const reportADeal = (values) => {\n const {\n areaRented,\n areaRentedDontKnow,\n comment,\n currencyId,\n deactivateLocation,\n expectedEnd,\n expectedEndDontKnow,\n monthlyRent,\n monthsCount,\n numberOfDesks,\n occupiedAt,\n occupiedAtDontKnow,\n totalAmount,\n totalAmountDontKnow,\n } = values;\n\n\n const attrsGeneral = {\n clientId: clientId ? parseInt(clientId) : null,\n comment,\n currencyId: currencyId ? parseInt(currencyId.value) : null,\n deactivateLocation,\n enquiryId: parseInt(query.get('enquiry_id')) || null,\n locationId: locationId ? parseInt(locationId) : null,\n occupiedAt,\n otherClient,\n otherLocationAddress,\n providerDealId: parseInt(query.get('provider_deal_id')) || null,\n };\n\n\n const attrs = {\n dk: {\n ...attrsGeneral,\n areaRented: areaRented === 0 || areaRented ? areaRented : null,\n areaRentedDontKnow,\n expectedEnd,\n expectedEndDontKnow,\n occupiedAtDontKnow,\n totalAmount,\n totalAmountDontKnow,\n },\n 'default': {\n ...attrsGeneral,\n areaRented: areaRented === 0 || areaRented ? areaRented : null,\n numberOfDesks: parseInt(numberOfDesks),\n monthlyRent,\n monthsCount: parseInt(monthsCount),\n },\n virtualOffice: {\n ...attrsGeneral,\n monthlyRent,\n monthsCount: parseInt(monthsCount),\n },\n meetingRoom: {\n ...attrsGeneral,\n totalAmount,\n }\n };\n\n reportDeal({\n variables: { attributes: attrs[schemaName] },\n\n update(cache, result) {},\n refetchQueries: ['getUnresolvedProviderDeals'],\n\n onCompleted: () => {\n setShowModal(true);\n },\n\n onError: ({ graphQLErrors, networkError }) => {\n console.log('graphQLErrors', graphQLErrors);\n console.log('networkError', networkError);\n },\n }).catch(error => console.log('Error', error));\n };\n\n\n const values = {\n clientPage,\n currentLocale,\n handleOtherClient: setOtherClient,\n handleOtherLocationAddress: setOtherLocationAddress,\n loadingLocations: loadingLocations || loadingLocation,\n loadingOrders: loadingOrders || loadingOrder,\n locationId,\n locationsColumns,\n locationsList: locations,\n locationsPage,\n locationsTotalCount,\n locationQuery,\n orders,\n ordersColumns,\n ordersTotalCount,\n orderQuery,\n otherClient,\n otherLocationAddress,\n providerId,\n providerOnAdvertisingStrategy,\n schemaName,\n selectedLocationStatus,\n setClientPage,\n setLocationsPage,\n showModal,\n siteKey,\n siteName,\n step,\n submitHandler: reportDealSubmit,\n changeSearchInput,\n nextStep,\n prevStep,\n };\n\n\n return (\n <div>\n <Context.Provider value={values}>\n <div className=\"reportdeal\">\n <ReportDealProgress steps={steps} activeStep={step} />\n\n <FormMessageBlock\n show={showNotification}\n closeNotification={handleCloseNotification}\n />\n\n <ReportSteps />\n\n </div>\n </Context.Provider>\n </div>\n );\n}\n\nReportDeal.propTypes = {\n siteKey: PropTypes.string,\n siteName: PropTypes.string,\n providerOnAdvertisingStrategy: PropTypes.bool,\n};\n\nReportDeal.defaultProps = {\n siteKey: '',\n siteName: '',\n providerOnAdvertisingStrategy: false,\n};\n\nexport default ReportDeal;\n","import React, { useEffect, useState } from 'react';\nimport { debounce } from \"throttle-debounce\";\n\nimport { SvgIco } from \"../../SharedComponents/Icons\";\nimport QualityScoreInfoModal from \"../Modals/QualityScoreInfoModal\";\n\nimport './index.sass';\n\n\nconst defaultQualityScoreData = (locationId, locale, partnerBadgeUrl, kind) => ({\n description: {\n availableScoreLabel: '+10',\n id: 'description',\n infoLink: locationId && `${locale}/new_providers/locations/edit/${locationId}/description#description`,\n name: I18n.t('locations.scores.description'),\n score: 0,\n },\n energyRating: {\n availableScoreLabel: '+10',\n id: 'energy_rating',\n hidden: kind === 'parking',\n infoLink: locationId && `${locale}/new_providers/locations/edit/${locationId}/facts#energyRating`,\n name: I18n.t('locations.scores.energy_label'),\n score: 0,\n },\n facilities: {\n availableScoreLabel: '+10',\n hidden: kind === 'parking',\n id: 'facilities',\n infoLink: locationId && `${locale}/new_providers/locations/edit/${locationId}/facts#facilities`,\n name: I18n.t('locations.scores.facilities'),\n score: 0,\n },\n floorPlan: {\n availableScoreLabel: '+10',\n id: 'floor_plan',\n infoLink: locationId && `${locale}/new_providers/locations/edit/${locationId}/visuals#floor-plans`,\n name: I18n.t('locations.scores.floor_plan'),\n score: 0,\n },\n photos: {\n availableScoreLabel: '+5 min / +10 max ',\n id: 'photos',\n infoLink: locationId && `${locale}/new_providers/locations/edit/${locationId}/visuals#photo`,\n name: I18n.t('locations.scores.pictures'),\n score: 0,\n },\n price: {\n availableScoreLabel: '+10',\n id: 'price',\n infoLink: locationId && `${locale}/new_providers/locations/edit/${locationId}/economy#prices`,\n name: I18n.t('locations.scores.price'),\n score: 0,\n },\n prospectus: {\n availableScoreLabel: '+10',\n id: 'prospectus',\n infoLink: locationId && `${locale}/new_providers/locations/edit/${locationId}/visuals#prospectuses`,\n name: I18n.t('locations.scores.prospectus'),\n score: 0,\n },\n providerPartner: {\n availableScoreLabel: '+10',\n id: 'partner_badge',\n infoLink: partnerBadgeUrl || '',\n name: I18n.t('locations.scores.partner_badge'),\n noHash: true,\n score: 0,\n },\n video: {\n availableScoreLabel: '+10',\n id: 'video',\n infoLink: locationId && `${locale}/new_providers/locations/edit/${locationId}/visuals#vimeo-id`,\n name: I18n.t('locations.scores.video'),\n score: 0,\n },\n virtualTour: {\n availableScoreLabel: '+10',\n id: 'virtual_tour',\n infoLink: locationId && `${locale}/new_providers/locations/edit/${locationId}/visuals#virtual-tour`,\n name: I18n.t('locations.scores.virtual_tour'),\n score: 0,\n },\n totalScore: 0,\n});\n\n\nexport const scoreCalculator = (data, locale, partnerBadgeUrl) => {\n const scoreData = { ...defaultQualityScoreData(data.id || null, locale, partnerBadgeUrl, data.kind) }\n const photosCount = data.photos_current_count || (data.photos && data.photos.length);\n const floorPlanPresent = data.floor_plans_current_count || (data.floorPlans && data.floorPlans.length);\n const prospectusPresent = data.prospectus_current_count || (data.prospectus && data.prospectus.id);\n\n const setScore = (score, section) => {\n scoreData[section].score = score;\n scoreData.totalScore = scoreData.totalScore + score;\n };\n\n const pricePresent = (price) =>\n (typeof price === 'number' || typeof price === 'string') && Number(price) >= 0;\n\n if (photosCount) {\n photosCount >= 10\n ? setScore(10, 'photos')\n : photosCount >= 4\n ? setScore(5, 'photos')\n : null;\n };\n\n if (data.description && Object.keys(data.description).length) {\n let maxSymbols = 0;\n\n Object.keys(data.description).map(key =>\n {\n if (data.description[key]) {\n const txt = document.createElement(\"textarea\");\n\n txt.innerHTML = data.description[key].replace(/<[^>]+>/g, '');\n\n const descriptionLength = (txt.value && txt.value.length) || 0;\n\n descriptionLength > maxSymbols && (maxSymbols = descriptionLength);\n }\n }\n )\n maxSymbols >= 650 && setScore(10, 'description');\n };\n\n data.facilityIds && data.facilityIds.length && setScore(10, 'facilities');\n (data.energyRating || data.exemptedFromEnergyRating) && setScore(10, 'energyRating');\n data.virtualTour && setScore(10, 'virtualTour');\n floorPlanPresent && setScore(10, 'floorPlan');\n prospectusPresent && setScore(10, 'prospectus');\n data.vimeoId && setScore(10, 'video');\n data.providerPartner && setScore(10, 'providerPartner');\n\n ( pricePresent(data.annualElectricityCostWithCentsFrom) ||\n pricePresent(data.annualElectricityCostWithCentsTo) ||\n pricePresent(data.annualHeatingCostWithCentsFrom) ||\n pricePresent(data.annualHeatingCostWithCentsTo) ||\n pricePresent(data.annualOperationalCostWithCentsFrom) ||\n pricePresent(data.annualOperationalCostWithCentsTo) ||\n pricePresent(data.annualRentWithCentsFrom) ||\n pricePresent(data.annualRentWithCentsTo) ||\n pricePresent(data.annualTotalCostWithCentsFrom) ||\n pricePresent(data.annualTotalCostWithCentsTo) ||\n pricePresent(data.annualWaterCostWithCentsFrom) ||\n pricePresent(data.annualWaterCostWithCentsTo) ||\n pricePresent(data.depositAndPrepaidRent) ||\n pricePresent(data.disposalPrice) ||\n pricePresent(data.fixedAnnualOperationalCost) ||\n pricePresent(data.hourlyRentWithCentsFrom) ||\n pricePresent(data.hourlyRentWithCentsTo) ||\n pricePresent(data.monthlyRentPerSpaceWithCentsFrom) ||\n pricePresent(data.monthlyRentPerSpaceWithCentsTo) ||\n pricePresent(data.salePrice) ||\n pricePresent(data.workstationCostPerMonthFrom) ||\n pricePresent(data.workstationCostPerMonthTo) ||\n pricePresent(data.yearlyElectricityCostPerM2WithCentsFrom) ||\n pricePresent(data.yearlyElectricityCostPerM2WithCentsTo) ||\n pricePresent(data.yearlyHeatingCostPerM2WithCentsFrom) ||\n pricePresent(data.yearlyHeatingCostPerM2WithCentsTo) ||\n pricePresent(data.yearlyOperationalCostPerM2WithCentsFrom) ||\n pricePresent(data.yearlyOperationalCostPerM2WithCentsTo) ||\n pricePresent(data.yearlyRentPerM2WithCentsFrom) ||\n pricePresent(data.yearlyRentPerM2WithCentsTo) ||\n pricePresent(data.yearlyRentalIncome) ||\n pricePresent(data.yearlyWaterCostPerM2WithCentsFrom) ||\n pricePresent(data.yearlyWaterCostPerM2WithCentsTo)\n ) && setScore(10, 'price');\n\n data.kind === 'parking' && (scoreData.totalScore = scoreData.totalScore + 20);\n\n return scoreData;\n};\n\n\nexport const visibilityQuality = (score) =>\n score === 100\n ? 'excellent'\n : score >= 70\n ? 'good'\n : score >= 40\n ? 'medium'\n : 'low';\n\n\nexport const ActionIcon = ({ animation, color, icon, iconSize }) => {\n const [animated, setAnimated] = useState(false);\n const [firstRender, setFirstRender] = useState(true);\n\n useEffect(() => {\n setFirstRender(false);\n }, []);\n\n useEffect(() => {\n setAnimated(!firstRender && animation && icon === 'check');\n }, [icon]);\n\n return (\n <div className={`score-action-icon`} style={{ background: color || '#FFA300' }}>\n <SvgIco name={icon || 'arrow_up'} size={iconSize || 20} />\n { animated && <div className=\"score-action-icon animated\" /> }\n </div>\n )\n};\n\n\nexport const ScoreChart = ({ score, stroke, width }) => {\n\n const pieScore = Math.round(score / 2);\n const visibilityState = visibilityQuality(score);\n\n\n return (\n <div className={`score-chart ${visibilityState}`}>\n <div className=\"score-chart__pie-wrapper\">\n <div className=\"pie default\" style={{\"--p\": 50, \"--w\": `${width}px`, \"--b\": `${stroke || 10}px`}} />\n <div className=\"pie\" style={{\"--p\": pieScore, \"--w\": `${width}px`, \"--b\": `${stroke || 10}px` }} />\n </div>\n\n <div className=\"score-chart__percents-info\">\n <div className=\"score-chart__percents\">\n { score }\n <ActionIcon iconSize={16} />\n </div>\n / 100 { I18n.t('provider.quality_score_chart.points') }\n </div>\n\n <div className=\"score-chart__visibility-label-wrapper\">\n <div className=\"score-chart__visibility-label\">\n { I18n.t(`provider.quality_score_chart.visibility_state.${visibilityState}`) }\n </div>\n </div>\n </div>\n )\n};\n\n\nexport const ScoreActionTooltip = ({ filled, label }) =>\n <div className={`score-action-tooltip ${filled ? 'filled' : ''}`}>\n <ActionIcon\n animation={!!filled}\n color={filled ? '#77BC1F' : ''}\n icon={filled ? 'check' : ''}\n iconSize={16}\n />\n <div dangerouslySetInnerHTML={{ __html: label }} />\n </div>;\n\n\nexport const QualityScoreBanner = ({ data, qualityScoreLink, siteName, sticky, stickyTop }) => {\n const [modalIsOpen, setModalIsOpen] = useState(false);\n const [isSticky, setIsSticky] = useState(false);\n\n useEffect(() => {\n !sticky && window.addEventListener('scroll', debounce(10, handleScroll));\n }, []);\n\n const handleScroll = () => {\n const banner = document.getElementById('quality-score-banner');\n const bannerBottom = banner && banner.getBoundingClientRect().bottom;\n\n banner && bannerBottom < 72 && setIsSticky(true);\n banner && bannerBottom > 72 && setIsSticky(false);\n };\n\n\n return (\n <div className={`quality-score-banner ${sticky ? 'sticky' : ''}`} id=\"quality-score-banner\" key=\"quality-score-banner\"\n onClick={() => isSticky && setModalIsOpen(prevState => !prevState)}\n style={sticky && stickyTop && { top: `${stickyTop}px` }}>\n\n { isSticky &&\n <QualityScoreBanner\n data={data}\n qualityScoreLink={qualityScoreLink}\n siteName={siteName}\n sticky={true}\n stickyTop={stickyTop}\n key=\"sticky\"\n />\n }\n\n <QualityScoreInfoModal\n data={data}\n handleClose={() => setModalIsOpen(false)}\n qualityScoreLink={qualityScoreLink}\n siteName={siteName}\n showModal={modalIsOpen} />\n\n <ActionIcon iconSize={sticky ? 24 : 36} />\n <div className=\"quality-score-banner__content-wrapper\">\n <div className=\"quality-score-banner__content\">\n <div className=\"quality-score-banner__title\">\n { I18n.t('providers.locations.edit.scores.title') }: { data.totalScore } <span>/ 100</span>\n </div>\n { !sticky && data.totalScore !== 100 &&\n <div className=\"quality-score-banner__description\">\n { I18n.t('provider.quality_score_banner.description_text') }\n </div>\n }\n </div>\n <div className=\"quality-score-banner__info-modal-link\" onClick={() => !isSticky && setModalIsOpen(prevState => !prevState)}>\n { !sticky && I18n.t('apps.lb_showroom.showroom.list.details_tooltip') }\n <SvgIco name=\"expand-more\" size={20} />\n </div>\n </div>\n </div>\n )\n};\n\n\n\n\n\n\n\n\n\n\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withFormik } from 'formik';\nimport Yup from 'yup';\n\nimport { passwordValidation, passwordConfirmationValidation } from '../../../SharedComponents/Forms/ValidationSchemaPattern';\nimport Input from '../../../SharedComponents/Forms/Input';\n\nimport './index.sass';\n\nfunction ChangePasswordFormWrapper({\n handleSubmit,\n values,\n handleChange,\n touched,\n handleBlur,\n passwordForm,\n errors,\n}) {\n return (\n <div\n className={`change-password__form-wrapper ${\n passwordForm ? 'form-active' : ''\n }`}\n >\n <form\n name=\"changePassword\"\n className=\"change-password__form\"\n onSubmit={handleSubmit}\n noValidate\n >\n <Input\n name=\"oldPassword\"\n type=\"password\"\n value={values.oldPassword}\n handleChange={handleChange}\n handleBlur={handleBlur}\n label={I18n.t('generic.current_password')}\n error={touched.oldPassword && errors.oldPassword}\n required\n />\n\n <Input\n name=\"password\"\n type=\"password\"\n value={values.password}\n handleChange={handleChange}\n handleBlur={handleBlur}\n label={I18n.t('generic.new_password')}\n error={touched.password && errors.password}\n required\n />\n <Input\n name=\"passwordConfirmation\"\n type=\"password\"\n value={values.passwordConfirmation}\n handleChange={handleChange}\n handleBlur={handleBlur}\n label={I18n.t('activerecord.attributes.contact.password_confirmation')}\n error={touched.passwordConfirmation && errors.passwordConfirmation}\n required\n />\n\n <button type=\"submit\" className=\"change-password__save-button\">\n { I18n.t('generic.save') }\n </button>\n </form>\n </div>\n );\n}\n\nconst ChangePasswordForm = withFormik({\n validationSchema: Yup.object().shape({\n oldPassword: Yup.string(),\n password: passwordValidation,\n passwordConfirmation: passwordConfirmationValidation,\n }),\n\n handleSubmit: (values, bag) => {\n bag.props.submitHandler(values);\n },\n})(ChangePasswordFormWrapper);\n\nChangePasswordFormWrapper.propTypes = {\n values: PropTypes.oneOfType([PropTypes.object]),\n handleSubmit: PropTypes.func,\n handleChange: PropTypes.func,\n touched: PropTypes.bool,\n handleBlur: PropTypes.func,\n passwordForm: PropTypes.bool,\n errors: PropTypes.oneOfType([PropTypes.array]),\n};\n\nChangePasswordFormWrapper.defaultProps = {\n values: {},\n handleSubmit: () => true,\n handleChange: () => true,\n touched: false,\n handleBlur: () => true,\n passwordForm: false,\n errors: [],\n};\n\nexport default ChangePasswordForm;\n","import React from 'react';\nimport { withFormik } from 'formik';\nimport Yup from 'yup';\nimport PropTypes from 'prop-types';\n\nimport { nameValidation, emailValidation, phoneValidation } from '../../../SharedComponents/Forms/ValidationSchemaPattern';\nimport Input from '../../../SharedComponents/Forms/Input';\n\nimport './index.sass';\n\nfunction ContactFormWrapper({\n handleSubmit,\n values,\n handleChange,\n touched,\n handleBlur,\n errors,\n}) {\n return (\n <div className=\"contact-form__wrapper\">\n <form\n name=\"contact-form\"\n className=\"contact-form\"\n onSubmit={handleSubmit}\n noValidate\n >\n <div className=\"row\">\n <div className=\"col-md-3\">\n <Input\n name=\"name\"\n value={values.name}\n handleChange={handleChange}\n handleBlur={handleBlur}\n label={I18n.t('generic.name')}\n error={touched.name && errors.name}\n required\n />\n </div>\n\n <div className=\"col-md-3\">\n <Input\n name=\"email\"\n value={values.email}\n handleChange={handleChange}\n handleBlur={handleBlur}\n label={I18n.t('generic.email')}\n error={touched.email && errors.email}\n required\n />\n </div>\n </div>\n <div className=\"row\">\n <div className=\"col-md-3\">\n <Input\n name=\"phoneNumber\"\n value={values.phoneNumber}\n handleChange={handleChange}\n handleBlur={handleBlur}\n label={I18n.t('generic.phone')}\n error={touched.phoneNumber && errors.phoneNumber}\n required\n />\n </div>\n </div>\n\n <button type=\"submit\" className=\"contact-form__save-button\">\n {I18n.t('generic.save')}\n </button>\n </form>\n </div>\n );\n}\n\nconst ContactForm = withFormik({\n enableReinitialize: true,\n mapPropsToValues: ({ contactInfo }) => ({\n name: contactInfo ? contactInfo.name : '',\n email: contactInfo ? contactInfo.email : '',\n phoneNumber: contactInfo ? contactInfo.phoneNumber : '',\n }),\n\n validationSchema: Yup.object().shape({\n name: nameValidation,\n email: emailValidation,\n phoneNumber: phoneValidation,\n }),\n\n handleSubmit: (values, bag) => {\n bag.props.submitHandler(values);\n },\n\n displayName: 'Contact Form',\n})(ContactFormWrapper);\n\nContactFormWrapper.propTypes = {\n values: PropTypes.oneOfType([PropTypes.object]),\n handleSubmit: PropTypes.func,\n handleChange: PropTypes.func,\n touched: PropTypes.bool,\n handleBlur: PropTypes.func,\n errors: PropTypes.oneOfType([PropTypes.array]),\n};\n\nContactFormWrapper.defaultProps = {\n values: {},\n handleSubmit: () => true,\n handleChange: () => true,\n touched: false,\n handleBlur: () => true,\n errors: [],\n};\n\nexport default ContactForm;\n","import React, { useEffect, useState } from 'react';\nimport { useMutation, useQuery } from '@apollo/client';\nimport PropTypes from 'prop-types';\n\nimport { GET_CONTACT_INFO, UPDATE_CONTACT, GET_CONTACT_LOCATIONS } from '../ApolloClient/queries';\nimport { ContactLocationsColumns } from '../Table/Columns';\nimport ContactForm from './ContactForm';\nimport ChangePasswordForm from './ChangePasswordForm';\nimport DeleteContactModal from '../Modals/DeleteContactModal';\nimport Table from '../Table';\nimport PhotoUpload from './PhotoUpload';\nimport FormMessageBlock from '../../SharedComponents/FormMessages/FormMessageBlock';\nimport ActiveSessions from \"../ActiveSessions\";\n\nimport './ContactSetttings.sass';\n\n\nfunction ContactSettings(props) {\n const [contactInfo, setContactInfo] = useState('');\n const [contactLocation, setContactLocation] = useState([]);\n const [passwordForm, setPasswordForm] = useState(true);\n const [perPage, setPerPage] = useState(5);\n const [showDeleteButton, setShowDeleteButton] = useState(false);\n const [showDeleteModal, setShowDeleteModal] = useState(false);\n const [modalData, setDataForModal] = useState({});\n const [showNotification, setSnowNotification] = useState({\n show: false,\n message: '',\n color: 'green',\n });\n const [pageContact, setPageContact] = useState({ page: 1 });\n const { page } = pageContact;\n\n const {\n currentContactId,\n currentLocale,\n formAuthToken,\n uploadContactPhotoPath,\n removeContactPhotoPath,\n updateContactInfo\n } = props;\n const { data: contact, refetch } = useQuery(GET_CONTACT_INFO, {\n variables: { id: currentContactId },\n });\n const { data: getContactLocations } = useQuery(GET_CONTACT_LOCATIONS);\n const [updateContact] = useMutation(UPDATE_CONTACT);\n\n useEffect(() => {\n if (contact) {\n setContactInfo(contact.contact);\n setShowDeleteButton(contact.contact.isDestroyable);\n updateContactInfo(contact.contact);\n }\n if (getContactLocations) {\n setContactLocation(getContactLocations.contactLocations);\n }\n }, [contact, getContactLocations]);\n\n const updateContactForm = (values) => {\n setSnowNotification({ show: false, message: '' });\n const { name, email, phoneNumber } = values;\n const input = {\n name,\n email,\n phoneNumber,\n id: currentContactId,\n };\n\n updateContact({\n variables: { input },\n refetchQueries: [\"contact\"],\n onCompleted: ({ errors }) => {\n if (errors && errors.length) {\n console.log(errors);\n } else {\n setSnowNotification({\n show: true,\n message: I18n.t('providers.contacts.edit.information_updated'),\n color: 'green',\n });\n }\n },\n });\n };\n\n const updatePassword = (values) => {\n const { password, passwordConfirmation, oldPassword } = values;\n const input = {\n id: currentContactId,\n password,\n passwordConfirmation,\n oldPassword,\n };\n\n updateContact({\n variables: { input },\n onCompleted: ({ updateContact }) => {\n const { errors } = updateContact;\n window.scrollTo(0, 0);\n if (errors && errors.length) {\n setSnowNotification({\n show: true,\n message: I18n.t('generic.old_password_not_match'),\n color: 'red',\n });\n } else {\n setSnowNotification({\n show: true,\n message: I18n.t('providers.contacts.edit.information_updated'),\n color: 'green',\n });\n }\n },\n });\n };\n\n const deleteAccount = () => {\n const data = { id: currentContactId, name: contactInfo.name };\n setDataForModal(data);\n setShowDeleteModal(true);\n };\n\n // const handlePasswordForm = () => {\n // setPasswordForm(!passwordForm);\n // };\n\n const handleCloseNotification = () => {\n setSnowNotification({ show: false, message: '', color: '' });\n };\n\n const perPageOptions = [\n { value: '5', label: '5' },\n { value: '10', label: '10' },\n ];\n\n const handleFilters = (newPage) => {\n setPageContact({ page: newPage.page })\n };\n\n const columns = ContactLocationsColumns(contactLocation, currentLocale);\n\n return (\n <div className=\"contact-settings\">\n <FormMessageBlock\n show={showNotification}\n closeNotification={handleCloseNotification}\n />\n\n <h3>{I18n.t('providers.contacts.edit.contact_info')}</h3>\n\n <PhotoUpload\n imageUrl={contactInfo.photoUrl}\n uploadPath={uploadContactPhotoPath}\n formAuthToken={formAuthToken}\n removeTranslation={I18n.t('providers.contacts.edit.remove_photo')}\n handleRefetch={refetch}\n removePath={removeContactPhotoPath}\n />\n\n <ContactForm\n contactInfo={contactInfo}\n submitHandler={updateContactForm}\n />\n\n <h3>{I18n.t('views.sessions.new.login.recovery_password_title')}</h3>\n\n {/*<p onClick={handlePasswordForm} className=\"settings__change-password\">*/}\n {/* {I18n.t('providers.contacts.edit.change_password')}*/}\n {/*</p>*/}\n\n <ChangePasswordForm\n submitHandler={updatePassword}\n passwordForm={passwordForm}\n />\n\n <h3>{I18n.t('providers.contacts.edit.owned_locations')}</h3>\n\n <Table\n data={contactLocation}\n columns={columns}\n setPerPage={setPerPage}\n perPage={perPage}\n currentPage={page}\n setPage={(page) => handleFilters({ page })}\n perPageOptions={perPageOptions}\n disableSort\n gotAllData\n noScrollToTop\n />\n\n {showDeleteButton && (\n <>\n <DeleteContactModal\n callback={() => setDataForModal({})}\n data={modalData}\n handleClose={() => setShowDeleteModal(false)}\n showModal={showDeleteModal}\n logout\n />\n\n <h3>Delete account</h3>\n <p>{I18n.t('providers.contacts.edit.delete_contact_help')}</p>\n\n <button\n type=\"button\"\n className=\"contact-settings__delete-button\"\n onClick={deleteAccount}\n >\n {I18n.t('generic.delete')}\n </button>\n </>\n )}\n\n <ActiveSessions showDeleteButton={showDeleteButton} />\n </div>\n );\n}\n\nContactSettings.propTypes = {\n currentContactId: PropTypes.string,\n formAuthToken: PropTypes.string,\n uploadContactPhotoPath: PropTypes.string,\n removeContactPhotoPath: PropTypes.string,\n};\n\nContactSettings.defaultProps = {\n currentContactId: '',\n formAuthToken: '',\n uploadContactPhotoPath: '',\n removeContactPhotoPath: '',\n};\n\nexport default ContactSettings;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport ImageUploading from 'react-images-uploading';\nimport axios from 'axios';\n\nimport { apiProvider } from '../../../api/core';\n\nimport './PhotoUpload.sass';\n\n\nfunction PhotoUpload({\n imageUrl,\n uploadPath,\n formAuthToken,\n removePath,\n provider,\n removeTranslation,\n handleRefetch,\n}) {\n const [images, setImages] = useState([]);\n const [loadingImage, setLoadingImage] = useState(false);\n\n const addImage = (imageList) => {\n setLoadingImage(true);\n const formData = new FormData();\n provider\n ? formData.append('provider[logo]', imageList[0].file)\n : formData.append('contact[photo]', imageList[0].file);\n formData.append('authenticity_token', formAuthToken);\n\n const apiOptions = {\n url: uploadPath,\n method: 'put',\n data: formData,\n };\n\n apiProvider.withOptions(apiOptions)\n .then(res => {\n if (res.status === 'success') {\n setLoadingImage(false);\n handleRefetch()\n }\n });\n }\n\n const removeImage = () => {\n axios\n .put(\n removePath,\n { authenticity_token: formAuthToken },\n {\n headers: {\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n },\n },\n )\n .then((response) => {\n if (response.status === 200) {\n handleRefetch();\n }\n });\n };\n\n const onChange = (imageList) => {\n setImages(imageList);\n const imageListLength = imageList.length;\n imageListLength ? addImage(imageList) : removeImage();\n };\n\n return (\n <div className=\"photo-upload\">\n <ImageUploading\n multiple={false}\n value={images}\n onChange={onChange}\n dataURLKey=\"data_url\"\n >\n {({ imageList, onImageUpload, onImageRemoveAll }) => (\n <div className=\"photo-upload__main-wrapper\">\n {imageList.length === 0 && (\n <div className=\"photo-upload__inner-wrapper\">\n <div\n className={`photo-upload__photo-place ${\n imageUrl ? 'active-photo' : ''\n }`}\n >\n {imageUrl ? (\n <img\n className=\"photo-upload__provider-logo\"\n src={imageUrl}\n alt=\"provider-logo\"\n />\n ) : (\n <span>{ provider ? I18n.t('providers.contacts.edit.no_logo') : I18n.t('providers.contacts.edit.no_photo') }</span>\n )}\n </div>\n </div>\n )}\n\n {imageList.map((image, index) => (\n <div key={index} className=\"image-item\">\n <div className=\"upload-image\">\n <img\n alt=\"profile\"\n className=\"image\"\n src={image.data_url}\n height=\"80px\"\n />\n </div>\n </div>\n ))}\n\n <button\n type=\"button\"\n onClick={onImageUpload}\n className=\"upload-button\"\n >\n { I18n.t('generic.upload') }\n </button>\n\n <button\n type=\"button\"\n onClick={onImageRemoveAll}\n disabled={!imageUrl || loadingImage}\n className={`remove-button ${ imageUrl ? 'remove-button-active' : '' }`}\n >\n { loadingImage && <div className=\"loading-spinner\" /> }\n <span>{ removeTranslation }</span>\n </button>\n </div>\n )}\n </ImageUploading>\n </div>\n );\n};\n\nPhotoUpload.propTypes = {\n imageUrl: PropTypes.string,\n uploadPath: PropTypes.string,\n formAuthToken: PropTypes.string,\n removePath: PropTypes.string,\n provider: PropTypes.bool,\n removeTranslation: PropTypes.string,\n handleRefetch: PropTypes.func,\n};\n\nPhotoUpload.defaultProps = {\n imageUrl: '',\n uploadPath: '',\n formAuthToken: '',\n removePath: '',\n provider: false,\n removeTranslation: '',\n handleRefetch: () => true,\n};\n\nexport default PhotoUpload;\n","import React, { useEffect, useState, Fragment } from 'react';\nimport { useMutation, useQuery } from '@apollo/client';\nimport PropTypes from 'prop-types';\n\nimport { GET_CONTACT_INFO, GET_PROVIDER, UPDATE_PROVIDER } from '../ApolloClient/queries';\nimport PhotoUpload from './PhotoUpload';\nimport FormMessageBlock from '../../SharedComponents/FormMessages/FormMessageBlock';\nimport UpdateProvider from './UpdateProvider';\nimport { SvgIco } from '../../SharedComponents/Icons';\nimport './ProviderSettings.sass';\n\n\nfunction ProviderSettings(props) {\n\n const [providerInfo, setProviderInfo] = useState({});\n const [emailsLocale, setEmailsLocale] = useState('');\n const [mainContact, setMainContact] = useState(true);\n const [interfaceLocale, setInterfaceLocale] = useState('');\n const [showNotification, setSnowNotification] = useState({\n show: false,\n message: '',\n color: 'green',\n });\n\n const {\n contractName,\n countryAlpha2,\n currentContactId,\n emailLocales,\n formAuthToken,\n locales,\n providerId,\n removeProviderLogoPath,\n showSmsOrderNotifications,\n siteKey,\n updateProviderInfo,\n uploadProviderLogoPath,\n } = props;\n\n const checkDk = siteKey === 'dk';\n\n const { data, refetch } = useQuery(GET_PROVIDER, { variables: { id: providerId } });\n const { data: contact } = useQuery(GET_CONTACT_INFO, { variables: { id: currentContactId } });\n\n const [updateProvider] = useMutation(UPDATE_PROVIDER);\n\n const formatEmailLocales = Object.keys(emailLocales).map((key) => ({\n value: key,\n label: emailLocales[key],\n }));\n\n const formatLocales = Object.keys(locales).map((key) => ({\n value: key,\n label: locales[key],\n }));\n\n const showChangeLanguageBlock = formatLocales.length > 1 || formatEmailLocales.length > 1;\n const showEmailChangeLanguage = formatEmailLocales.length > 1;\n const showInterfaceChangeLanguage = formatLocales.length > 1;\n\n\n useEffect(() => {\n if (contact) {\n setMainContact(!contact.contact.isDestroyable);\n }\n if (data) {\n setProviderInfo(data.provider);\n setEmailsLocale(data.provider.emailsLocale);\n setInterfaceLocale(data.provider.interfaceLocale);\n updateProviderInfo(data.provider);\n }\n }, [data, contact]);\n\n\n const providerSubmit = (values) => {\n const {\n companyName,\n vatId,\n phoneNumber,\n address,\n postalCode,\n city,\n isMailSubjectIncludeInternalIdentifier,\n smsOrderNotification,\n ean,\n invoicingEmail,\n } = values;\n\n const input = {\n id: parseInt(providerId),\n companyName,\n vatId,\n phoneNumber,\n line1: address,\n postalCode,\n city,\n isMailSubjectIncludeInternalIdentifier,\n smsOrderNotification,\n ean: ean || null,\n emailsLocale: emailsLocale || '',\n interfaceLocale: interfaceLocale || '',\n invoicingEmail: invoicingEmail || ''\n };\n\n updateProvider({\n variables: { input },\n refetchQueries: ['getProvider'],\n onCompleted: (data) => {\n const { errors } = data.updateProvider;\n if (\n providerInfo.emailsLocale !== emailsLocale ||\n providerInfo.interfaceLocale !== interfaceLocale\n ) {\n const currentLocale = interfaceLocale && interfaceLocale === 'fr-BE' ? `/${interfaceLocale}` : '';\n window.location.assign(`${currentLocale}/new_providers/settings/provider`);\n }\n if (errors && errors.length) {\n console.log(errors);\n } else {\n setSnowNotification({\n show: true,\n message: I18n.t('providers.contacts.edit.provider_information_updated'),\n color: 'green',\n });\n window.scrollTo(0, 0);\n }\n },\n });\n };\n\n\n const handleChangeEmailLanguage = (value) =>\n setEmailsLocale(value);\n\n\n const changeInterFaceLanguage = (value) =>\n setInterfaceLocale(value);\n\n\n const handleCloseNotification = () =>\n setSnowNotification({ show: false, message: '' });\n\n\n return (\n <div className=\"provider-settings\">\n\n <FormMessageBlock\n show={showNotification}\n closeNotification={handleCloseNotification}\n />\n\n <h3>{ I18n.t('providers.providers.form.company_information') }</h3>\n\n { !mainContact &&\n <div>\n <p className=\"second-contact-message\" dangerouslySetInnerHTML={{__html: I18n.t('providers.contacts.edit.second_contact_cant_edit')}} />\n\n <div className=\"second-contact-logo-wrap\">\n {providerInfo.logoUrl ? (\n <img\n className=\"photo-upload__provider-logo\"\n src={providerInfo.logoUrl}\n alt=\"provider-logo\"\n />\n ) : (\n <div className=\"photo-upload__photo-place\">\n <span>{ I18n.t('providers.contacts.edit.no_logo') }</span>\n </div>\n )}\n\n </div>\n\n <p>{ I18n.t('generic.company_name') }: <b>{providerInfo.companyName }</b></p>\n <p>{ I18n.t('signup.new_form.register.vat_id.placeholder') }: <b>{ providerInfo.vatId }</b></p>\n { providerInfo.ean &&\n <p>{ I18n.t('activerecord.attributes.provider.ean') }: <b>{ providerInfo.ean }</b></p>\n }\n <p>{ I18n.t('signup.new_form.register.city.placeholder') }: <b>{ providerInfo.city }</b></p>\n <p>{ I18n.t('signup.new_form.register.line_1.placeholder') }: <b>{ providerInfo.line1 }</b></p>\n\n <p>{ I18n.t('signup.new_form.register.phone_number.placeholder') }: <b>{providerInfo.phoneNumber }</b></p>\n <p>{ I18n.t('signup.new_form.register.invoice_email.placeholder') }: <b>{ providerInfo.invoicingEmail }</b></p>\n\n { providerInfo.postalCode &&\n <p>{ I18n.t('signup.new_form.register.postal_code.placeholder') }: <b>{providerInfo.postalCode }</b></p>\n }\n\n <p>{ I18n.t('providers.providers.provider_info.payment_model') }: <b>{contractName}</b></p>\n\n <div className=\"provider-settings__checkbox-wrapper\">\n <label\n className=\"checkbox-label\"\n htmlFor=\"isMailSubjectIncludeInternalIdentifier\"\n >\n <input\n name=\"isMailSubjectIncludeInternalIdentifier\"\n type=\"checkbox\"\n checked={providerInfo.isMailSubjectIncludeInternalIdentifier}\n id=\"isMailSubjectIncludeInternalIdentifier\"\n disabled\n />\n <span className=\"checkmark\">\n <SvgIco name=\"check\" size={17} />\n </span>\n <div className=\"checkbox-label\">\n { I18n.t('activerecord.attributes.provider.is_mail_subject_include_internal_identifier') }\n </div>\n </label>\n </div>\n\n { showSmsOrderNotifications && (\n <div className=\"provider-settings__checkbox-wrapper\">\n <label className=\"checkbox-label\" htmlFor=\"smsOrderNotification\">\n <input\n name=\"smsOrderNotification\"\n type=\"checkbox\"\n checked={showSmsOrderNotifications}\n id=\"smsOrderNotification\"\n disabled\n />\n <span className=\"checkmark\">\n <SvgIco name=\"check\" size={17} />\n </span>\n <div className=\"checkbox-label\">\n { I18n.t('activerecord.attributes.provider.sms_order_notification') }\n </div>\n </label>\n </div>\n )}\n </div>\n }\n\n { mainContact &&\n <Fragment>\n <PhotoUpload\n formAuthToken={formAuthToken}\n handleRefetch={refetch}\n imageUrl={providerInfo.logoUrl}\n provider\n removePath={removeProviderLogoPath}\n removeTranslation={I18n.t('providers.contacts.edit.remove_logo')}\n uploadPath={uploadProviderLogoPath}\n />\n\n <UpdateProvider\n changeEmailLanguage={handleChangeEmailLanguage}\n changeInterFaceLanguage={changeInterFaceLanguage}\n checkDk={checkDk}\n contractName={contractName}\n countryAlpha2={countryAlpha2}\n emailsLocale={emailsLocale}\n formatEmailLocales={formatEmailLocales}\n formatLocales={formatLocales}\n interfaceLocale={interfaceLocale}\n providerSubmit={providerSubmit}\n providerInfo={providerInfo}\n showChangeLanguageBlock={showChangeLanguageBlock}\n showEmailChangeLanguage={showEmailChangeLanguage}\n showInterfaceChangeLanguage={showInterfaceChangeLanguage}\n showSmsOrderNotifications={showSmsOrderNotifications}\n />\n </Fragment>\n }\n\n </div>\n );\n};\n\n\nProviderSettings.propTypes = {\n contractName: PropTypes.string,\n showSmsOrderNotifications: PropTypes.bool,\n locales: PropTypes.oneOfType([PropTypes.object]),\n emailLocales: PropTypes.oneOfType([PropTypes.object]),\n removeProviderLogoPath: PropTypes.string,\n formAuthToken: PropTypes.string,\n uploadProviderLogoPath: PropTypes.string,\n providerId: PropTypes.string,\n};\n\nProviderSettings.defaultProps = {\n contractName: '',\n showSmsOrderNotifications: false,\n locales: {},\n emailLocales: {},\n removeProviderLogoPath: '',\n formAuthToken: '',\n uploadProviderLogoPath: '',\n providerId: '',\n};\n\n\nexport default ProviderSettings;\n","import React from 'react';\nimport { withFormik } from 'formik';\nimport Yup from 'yup';\nimport PropTypes from 'prop-types';\n\nimport {\n companyValidation,\n eanValidationRequired,\n phoneValidation,\n cityValidation,\n addressValidation,\n postalCodeValidation,\n emailValidation,\n} from '../../SharedComponents/Forms/ValidationSchemaPattern';\nimport Input from '../../SharedComponents/Forms/Input';\nimport BasicDropdown from '../../SharedComponents/Forms/BasicDropdown';\nimport { requiredFieldError } from '../../SharedComponents/Forms/ErrorMessages';\nimport { SvgIco } from \"../../SharedComponents/Icons\";\nimport {InfoIconTooltip} from \"../Table/Columns\";\n\n\nfunction UpdateProviderWrapper({ changeEmailLanguage,\n changeInterFaceLanguage,\n checkDk,\n contractName,\n errors,\n formatEmailLocales,\n formatLocales,\n handleBlur,\n handleChange,\n handleSubmit,\n providerInfo,\n showSmsOrderNotifications,\n showChangeLanguageBlock,\n showEmailChangeLanguage,\n showInterfaceChangeLanguage,\n touched,\n values,\n }) {\n\n\n return (\n <div className=\"update-provider__form-wrapper\">\n <form name=\"UpdateProvider\" onSubmit={handleSubmit} noValidate>\n <div className=\"row\">\n <div className=\"col-md-3\">\n <Input\n name=\"companyName\"\n value={values.companyName}\n handleChange={handleChange}\n handleBlur={handleBlur}\n label={I18n.t('generic.company_name')}\n error={touched.companyName && errors.companyName}\n required\n />\n </div>\n\n <div className=\"col-md-3\">\n <Input\n name=\"vatId\"\n value={values.vatId}\n handleChange={handleChange}\n handleBlur={handleBlur}\n label={I18n.t('signup.new_form.register.vat_id.placeholder')}\n error={touched.vatId && errors.vatId}\n required\n />\n </div>\n </div>\n\n <div className=\"row\">\n { providerInfo.ean && (\n <div className=\"col-md-3\">\n <Input\n name=\"ean\"\n value={values.ean}\n handleChange={handleChange}\n handleBlur={handleBlur}\n label={I18n.t('activerecord.attributes.provider.ean')}\n error={touched.ean && errors.ean}\n required\n />\n </div>\n )}\n\n <div className={`${providerInfo.ean ? 'col-md-3' : 'col-md-6'}`}>\n <Input\n name=\"invoicingEmail\"\n value={values.invoicingEmail}\n handleChange={handleChange}\n handleBlur={handleBlur}\n label={I18n.t('signup.new_form.register.invoice_email.placeholder')}\n error={touched.invoicingEmail && errors.invoicingEmail}\n required\n />\n\n <InfoIconTooltip\n id={'providerInvoicingEmailTooltip'}\n position={'bottom'}\n tooltip={I18n.t('signup.new_form.register.invoice_email.tooltip')}\n />\n </div>\n\n </div>\n\n <div className=\"row\">\n <div className=\"col-md-6\">\n <Input\n name=\"city\"\n value={values.city}\n handleChange={handleChange}\n handleBlur={handleBlur}\n label={I18n.t('signup.new_form.register.city.placeholder')}\n error={touched.city && errors.city}\n required\n />\n </div>\n </div>\n\n <div className=\"row\">\n <div className=\"col-md-6\">\n <Input\n name=\"address\"\n value={values.address}\n handleChange={handleChange}\n handleBlur={handleBlur}\n label={I18n.t('signup.new_form.register.line_1.placeholder')}\n error={touched.address && errors.address}\n required\n />\n </div>\n </div>\n\n <div className=\"row\">\n <div className=\"col-md-3\">\n <Input\n name=\"phoneNumber\"\n value={values.phoneNumber}\n handleChange={handleChange}\n handleBlur={handleBlur}\n label={I18n.t('signup.new_form.register.phone_number.placeholder')}\n error={touched.phoneNumber && errors.phoneNumber}\n required\n />\n </div>\n\n <div className=\"col-md-3\">\n <Input\n name=\"postalCode\"\n value={values.postalCode}\n handleChange={handleChange}\n handleBlur={handleBlur}\n label={I18n.t('signup.new_form.register.postal_code.placeholder')}\n error={touched.postalCode && errors.postalCode}\n required={!!checkDk}\n />\n </div>\n </div>\n\n <div>\n <p>\n {I18n.t('providers.providers.provider_info.payment_model')}:{' '}\n <span className=\"provider-settings__contact-name\">\n {contractName}\n </span>\n </p>\n </div>\n\n <div className=\"provider-settings__checkbox-wrapper\">\n <label\n className=\"checkbox-label\"\n htmlFor=\"isMailSubjectIncludeInternalIdentifier\"\n >\n <input\n name=\"isMailSubjectIncludeInternalIdentifier\"\n type=\"checkbox\"\n checked={!!values.isMailSubjectIncludeInternalIdentifier}\n id=\"isMailSubjectIncludeInternalIdentifier\"\n onChange={handleChange}\n onBlur={handleBlur}\n />\n <span className=\"checkmark\">\n <SvgIco name=\"check\" size={17} />\n </span>\n <div className=\"checkbox-label\">\n {I18n.t('activerecord.attributes.provider.is_mail_subject_include_internal_identifier')}\n </div>\n </label>\n </div>\n\n {showSmsOrderNotifications && (\n <div className=\"provider-settings__checkbox-wrapper\">\n <label className=\"checkbox-label\" htmlFor=\"smsOrderNotification\">\n <input\n name=\"smsOrderNotification\"\n type=\"checkbox\"\n checked={!!values.smsOrderNotification}\n id=\"smsOrderNotification\"\n onChange={handleChange}\n onBlur={handleBlur}\n />\n <span className=\"checkmark\">\n <SvgIco name=\"check\" size={17} />\n </span>\n <div className=\"checkbox-label\">\n {I18n.t('activerecord.attributes.provider.sms_order_notification')}\n </div>\n </label>\n </div>\n )}\n\n {showChangeLanguageBlock && (\n <div className=\"provider-settings__language\">\n <h3>{I18n.t('generic.choose_your_language')}</h3>\n\n <div className=\"provider-settings__language-dropdowns\">\n <div className=\"row\">\n {showEmailChangeLanguage && (\n <div className=\"col-md-3\">\n <p>\n {I18n.t('providers.contacts.edit.change_emails_locale')}:{' '}\n </p>\n <BasicDropdown\n options={formatEmailLocales}\n handleChange={(value) => changeEmailLanguage(value)}\n value={values.emailsLocale}\n />\n </div>\n )}\n {showInterfaceChangeLanguage && (\n <div className=\"col-md-3\">\n <p>\n {I18n.t('providers.contacts.edit.change_interface_locale')}\n :{' '}\n </p>\n <BasicDropdown\n options={formatLocales}\n handleChange={(value) => changeInterFaceLanguage(value)}\n value={values.interfaceLocale}\n />\n </div>\n )}\n </div>\n </div>\n </div>\n )}\n\n <div>\n <button className=\"save-button b-button\" type=\"submit\">\n { I18n.t('generic.save') }\n </button>\n </div>\n </form>\n </div>\n );\n}\n\nconst UpdateProvider = withFormik({\n enableReinitialize: true,\n mapPropsToValues: ({\n providerInfo,\n emailsLocale,\n interfaceLocale,\n checkDk,\n countryAlpha2\n }) => ({\n companyName: providerInfo ? providerInfo.companyName : '',\n vatId: providerInfo ? providerInfo.vatId : '',\n phoneNumber: providerInfo ? providerInfo.phoneNumber : '',\n address: providerInfo ? providerInfo.line1 : '',\n postalCode: providerInfo ? providerInfo.postalCode : '',\n city: providerInfo ? providerInfo.city : '',\n isMailSubjectIncludeInternalIdentifier: providerInfo\n ? providerInfo.isMailSubjectIncludeInternalIdentifier\n : false,\n smsOrderNotification: providerInfo\n ? providerInfo.smsOrderNotification\n : false,\n ean: providerInfo.ean || '',\n emailsLocale,\n interfaceLocale,\n isEan: !!providerInfo.ean,\n checkDk: checkDk,\n countryAlpha2: countryAlpha2,\n invoicingEmail: providerInfo.invoicingEmail,\n }),\n\n validationSchema: Yup.object().shape({\n isEan: Yup.boolean(),\n checkDk: Yup.boolean(),\n companyName: companyValidation,\n invoicingEmail: emailValidation,\n phoneNumber: phoneValidation,\n ean: Yup.string().when('isEan', {\n is: true,\n then: eanValidationRequired,\n }),\n address: addressValidation,\n city: cityValidation,\n postalCode: postalCodeValidation,\n vatId: Yup.string()\n .required(requiredFieldError(I18n.t('signup.new_form.register.vat_id.placeholder'))),\n }),\n\n handleSubmit: (values, bag) => {\n bag.props.providerSubmit(values);\n },\n\n displayName: 'UpdateProvider',\n})(UpdateProviderWrapper);\n\n\nUpdateProviderWrapper.propTypes = {\n values: PropTypes.oneOfType([PropTypes.object]),\n handleSubmit: PropTypes.func,\n handleChange: PropTypes.func,\n touched: PropTypes.bool,\n handleBlur: PropTypes.func,\n errors: PropTypes.oneOfType([PropTypes.array]),\n contractName: PropTypes.string,\n changeEmailLanguage: PropTypes.func,\n changeInterFaceLanguage: PropTypes.func,\n formatEmailLocales: PropTypes.oneOfType([PropTypes.array]),\n formatLocales: PropTypes.oneOfType([PropTypes.array]),\n showChangeLanguageBlock: PropTypes.bool,\n showEmailChangeLanguage: PropTypes.bool,\n showInterfaceChangeLanguage: PropTypes.bool,\n showSmsOrderNotifications: PropTypes.bool,\n providerInfo: PropTypes.oneOfType([PropTypes.object]),\n};\n\n\nUpdateProviderWrapper.defaultProps = {\n values: {},\n handleSubmit: () => true,\n handleChange: () => true,\n touched: false,\n handleBlur: () => true,\n errors: [],\n contractName: '',\n formatEmailLocales: [],\n formatLocales: [],\n showChangeLanguageBlock: false,\n showEmailChangeLanguage: false,\n showInterfaceChangeLanguage: false,\n showSmsOrderNotifications: false,\n providerInfo: {},\n};\n\nexport default UpdateProvider;\n","import React from 'react';\nimport ReactTooltip from \"react-tooltip\";\nimport { NavLink } from \"react-router-dom\";\n\nimport { SvgIco } from \"../../SharedComponents/Icons\";\n\n\nconst SideBarLink = ({ disableTooltip, label, linkTo, newInfoLabel, svgName }) => {\n\n return (\n <li className=\"sidebar-item\"\n data-tip={label}\n data-for={`nav-link-${svgName}-tooltip`}>\n <ReactTooltip\n border={true}\n borderColor=\"black\"\n effect='solid'\n id={`nav-link-${svgName}-tooltip`}\n place=\"right\"\n type=\"light\"\n disable={disableTooltip}\n className=\"nav-link-tooltip\"\n />\n <NavLink exact to={linkTo} activeClassName=\"active\">\n <div>\n <SvgIco name={svgName} size={22} />\n </div>\n <span>{ label }</span>\n\n { newInfoLabel &&\n <div className=\"sidebar-item__new-info-icon-wrapper\">\n { newInfoLabel }\n </div>\n }\n </NavLink>\n </li>\n )\n}\n\nexport default SideBarLink;\n","import React, { useState, useCallback, useEffect } from 'react';\nimport ReactTooltip from \"react-tooltip\";\n\nimport { KeyboardArrowLeftRounded, KeyboardArrowRightRounded, SvgIco } from '../../SharedComponents/Icons';\nimport ShowMeBannerImg from \"../../../src/images/provider-backend/Banner_1_Illustration@2x.png\";\nimport FacebookLogo from '../../../src/images/icons/facebook-logo.svg';\nimport SideBarLink from \"./SideBarLink\";\nimport IframeModal from \"../Modals/IframeModal\";\n\nimport './index.sass';\n\n\nconst SideBar = ({ companyName,\n currentContactEmail,\n currentContactName,\n currentLocale,\n currentPhoneName,\n newClientsCount,\n links,\n providerPartner,\n siteKey,\n }) => {\n\n const [activeSideBar, setActiveSideBar] = useState(() => {\n if(localStorage) {\n const storageMenuStatus = localStorage.getItem('my.provider_menu_open');\n\n if (storageMenuStatus) {\n return storageMenuStatus === 'true';\n } else {\n localStorage.setItem('my.provider_menu_open', JSON.stringify(true));\n return true;\n }\n } else {\n return true;\n }\n });\n\n const [modalIsActive, setModalIsActive] = useState(false);\n const [url, setUrl] = useState(false);\n\n const { qualityScorePageLink, partnerBadgePageLink } = links;\n const partnerLink = siteKey === 'dk' ? '/serviceydelser-til-udlejere/fremhevet/annoncering' : partnerBadgePageLink;\n\n const changeSidebar = useCallback(() => setActiveSideBar(!activeSideBar));\n\n\n useEffect(() => {\n if(localStorage) {\n const storageMenuStatus = localStorage.getItem('my.provider_menu_open');\n\n storageMenuStatus && localStorage.setItem('my.provider_menu_open', JSON.stringify(activeSideBar));\n }\n }, [activeSideBar]);\n\n\n const handleShowModal = (url) => {\n setUrl(url + `?raw=true&data[name]=${currentContactName}&data[phone]=${currentPhoneName}&data[email]=${currentContactEmail}&data[company_name]=${companyName}`);\n setModalIsActive(true);\n };\n\n\n const handleCloseModal = () => {\n setModalIsActive(false);\n };\n\n\n return (\n <div className={`sidebar ${activeSideBar ? '' : 'inactive'}`}>\n\n <IframeModal\n handleClose={handleCloseModal}\n modalClass=\"simple-cms-modal\"\n showModal={modalIsActive}\n url={url}\n />\n\n <ul className=\"sidebar-items\">\n\n <SideBarLink\n disableTooltip={activeSideBar}\n label={I18n.t('generic.providers.sidebar.dashboard')}\n linkTo={`${currentLocale}/new_providers`}\n svgName=\"dashboard-provider\" />\n\n <SideBarLink\n disableTooltip={activeSideBar}\n label={I18n.t('generic.providers.sidebar.statistic')}\n linkTo={`${currentLocale}/new_providers/statistic`}\n svgName=\"statistic-provider\" />\n\n <SideBarLink\n disableTooltip={activeSideBar}\n label={I18n.t('generic.providers.sidebar.leases')}\n linkTo={`${currentLocale}/new_providers/locations/lease_properties`}\n svgName=\"leases-provider\" />\n\n { siteKey === 'dk' &&\n <SideBarLink\n disableTooltip={activeSideBar}\n label=\"Salgsejendomme\"\n linkTo={`${currentLocale}/new_providers/locations/sales_properties`}\n svgName=\"houses\" />\n }\n\n { siteKey === 'dk' &&\n <SideBarLink\n disableTooltip={activeSideBar}\n label=\"Anonymiserede lejemÃ¥l\"\n linkTo={`${currentLocale}/new_providers/locations/anonymous`}\n svgName=\"anonymous\" />\n }\n\n <SideBarLink\n disableTooltip={activeSideBar}\n label={I18n.t('providers.providers.show.customers')}\n linkTo={`${currentLocale}/new_providers/orders`}\n newInfoLabel={newClientsCount}\n svgName=\"clients-provider\" />\n\n <SideBarLink\n disableTooltip={activeSideBar}\n label={I18n.t('generic.providers.sidebar.contacts')}\n linkTo={`${currentLocale}/new_providers/contacts`}\n svgName=\"contacts-provider\" />\n\n <hr className=\"horizontal-line\" />\n\n <li className=\"sidebar-toggle\" onClick={changeSidebar}>\n { activeSideBar ? <KeyboardArrowLeftRounded size={22} /> : <KeyboardArrowRightRounded size={22} /> }\n </li>\n\n <SideBarLink\n disableTooltip={activeSideBar}\n label={I18n.t('generic.providers.sidebar.provider-settings')}\n linkTo={`${currentLocale}/new_providers/settings/provider`}\n svgName=\"provider-settings\" />\n\n <SideBarLink\n disableTooltip={activeSideBar}\n label={I18n.t('generic.providers.sidebar.contact-settings')}\n linkTo={`${currentLocale}/new_providers/settings/contact`}\n svgName=\"contact-settings\" />\n\n <SideBarLink\n disableTooltip={activeSideBar}\n label={I18n.t('generic.providers.sidebar.help')}\n linkTo={`${currentLocale}/new_providers/help`}\n svgName=\"help_outline\" />\n\n\n <li className=\"sidebar-item\"\n data-tip={I18n.t('generic.providers.sidebar.sign-out')}\n data-for=\"nav-link-sign-out-tooltip\">\n <ReactTooltip\n border={true}\n borderColor=\"black\"\n effect='solid'\n id=\"nav-link-sign-out-tooltip\"\n place=\"right\"\n type=\"light\"\n disable={activeSideBar}\n className=\"nav-link-tooltip\"\n />\n <a href=\"/logout\">\n <div>\n <SvgIco name=\"logout-provider\" size={22} />\n </div>\n <span>{ I18n.t(\"generic.providers.sidebar.sign-out\") }</span>\n </a>\n </li>\n </ul>\n\n <div className=\"sidebar-banners-wrapper\">\n <img src={ShowMeBannerImg} alt=\"show-me-how-banner\"/>\n <div>\n <p className=\"sidebar-banners-wrapper-text\">\n { I18n.t(\"views.providers.banner.main-text\") }\n </p>\n </div>\n <a onClick={() => handleShowModal(qualityScorePageLink)}>\n { I18n.t(\"views.providers.banner.cta-button\") }\n </a>\n </div>\n\n {(!providerPartner || siteKey === 'dk') && (\n <div className=\"sidebar-banners-wrapper\">\n <p className=\"banner-title\">\n { I18n.t(\"views.providers.banner.partner-badge-title\") }\n </p>\n <p className=\"banner-text\"\n dangerouslySetInnerHTML={{ __html: I18n.t(\"generic.providers.sidebar.get-partner-badge-main-text\") }} />\n <div>\n <a className=\"get-partner-button\" onClick={() => handleShowModal(partnerLink)}>\n { I18n.t(\"views.providers.banner.partner-cta-button\") }\n </a>\n </div>\n </div>\n )}\n\n { siteKey === 'dk' &&\n <div className=\"sidebar-banners-wrapper\">\n <p className=\"banner-title\">{ I18n.t(\"generic.providers.sidebar.facebook.title\") }</p>\n <p className=\"banner-text\">{ I18n.t(\"generic.providers.sidebar.facebook.content\") }</p>\n <div>\n <a className=\"facebook-banner-button\" onClick={() => handleShowModal(\"/serviceydelser-til-udlejere/annoncering/facebook\")}>\n <img src={FacebookLogo} alt=\"Facebook\" />\n { I18n.t(\"generic.read_more\") }\n </a>\n </div>\n </div>\n }\n\n </div>\n );\n}\n\n\nexport default SideBar;\n","import React, { useEffect, useState } from 'react';\nimport { useLazyQuery } from \"@apollo/client\";\n\nimport { localizedNumberFormatter } from \"../../../utils/helpers\";\nimport { SvgIco } from \"../../SharedComponents/Icons\";\nimport { GET_LOCATION_STATISTICS } from \"../ApolloClient/queries\";\nimport { SkeletonLoader } from \"../Loaders\";\nimport LocationViewsChart from \"../LocationViewsChart\";\n\nimport './index.sass';\n\nlet timeout;\n\n\nconst ExpandedStatistics = ({ data }) => {\n\n const [isExpanded, setIsExpanded] = useState(false);\n const [expandedData, setExpandedData] = useState({});\n\n\n const {\n countClientEnquiries,\n countClientEnquiriesPerWeek,\n countExtraEnquiries,\n countExtraEnquiriesPerWeek,\n countProviderMessages,\n countShowcaseOrders,\n locationEventsContactDetailsShownCount,\n locationEventsProviderAdvertsShownCount,\n locationEventsShownCount,\n locationEventsShownCountPerWeek,\n } = expandedData;\n\n\n useEffect(() => {\n setIsExpanded(data.expanded);\n }, []);\n\n\n useEffect(() => {\n clearTimeout(timeout);\n\n if (data.expanded) {\n setIsExpanded(data.expanded);\n } else {\n timeout = setTimeout(() => setIsExpanded(data.expanded), 500);\n }\n }, [data.expanded]);\n\n\n const [getLocationStatistic, { loading }] = useLazyQuery(GET_LOCATION_STATISTICS, {\n fetchPolicy: 'no-cache',\n onCompleted: (data) => {\n data && data.statisticForLocation && setExpandedData(data.statisticForLocation);\n },\n });\n\n\n const getLocationStatisticsByPeriod = (daysPeriod) => {\n const timeFrom = new Date();\n const timeTo = new Date();\n\n timeFrom.setDate(timeFrom.getDate() - daysPeriod - 1);\n timeFrom.setHours(0,0,0,0);\n\n const timeFromUserTimezoneOffset = timeFrom.getTimezoneOffset() * 60000;\n const timeToUserTimezoneOffset = timeTo.getTimezoneOffset() * 60000;\n\n getLocationStatistic({ variables: {\n timeFrom: new Date(timeFrom.getTime() - timeFromUserTimezoneOffset),\n timeTo: new Date(timeTo.getTime() - timeToUserTimezoneOffset),\n id: data.locationId,\n }}).catch(error => console.log('error', error));\n };\n\n\n // We need to use useMemo to prevent charts SVG form rerender on data update\n const cachedViewsChart = React.useMemo(\n () =>\n <LocationViewsChart\n createdAt={data.createdAt}\n switchPeriodCallback={getLocationStatisticsByPeriod}\n locationId={data.locationId}\n locationShownDatapoints={data.locationShownDatapoints || {}}\n offset={{ left: -80 }}\n tickFontSize={9}\n width={321}\n xaxisHeight={43}\n />,\n [],\n );\n\n\n if (isExpanded) {\n return (\n <div className=\"statistics__expanded-sticky-wrapper\">\n <div className=\"statistics__expanded-data\">\n <div className=\"statistics__expanded-data-row\">\n\n <div className=\"statistics__chart-block\">\n { cachedViewsChart }\n </div>\n\n <div className={`statistics__expanded-boxes ${loading ? 'loading' : ''}`}>\n <div className=\"statistics__expanded-boxes-column\">\n\n <div className=\"statistics__expanded-box\">\n <SvgIco name=\"eye\" size={40} />\n\n <div className=\"statistics__expanded-box-info\">\n <div className=\"statistics__expanded-box-headline\">\n { I18n.t('provider.statistic.expanded_info.page_views') }\n </div>\n\n <span>{ I18n.t('provider.table.total_footer') }: <strong>{ localizedNumberFormatter(locationEventsShownCount) }</strong>\n <SkeletonLoader className=\"statistics__skeleton-loader\" />\n </span>\n\n <span>{ I18n.t('generic.per_week') }: <strong>{ localizedNumberFormatter(locationEventsShownCountPerWeek) }</strong>\n <SkeletonLoader className=\"statistics__skeleton-loader\" />\n </span>\n </div>\n </div>\n\n <div className=\"statistics__expanded-box\">\n <SvgIco name=\"person_send\" size={40} />\n\n <div className=\"statistics__expanded-box-info\">\n <div className=\"statistics__expanded-box-headline\">\n { I18n.t('providers.statistics.index.client_enquiries') }\n </div>\n\n <span>{ I18n.t('provider.table.total_footer') }: <strong>{ localizedNumberFormatter(Number(countClientEnquiries) + Number(countProviderMessages) + Number(countShowcaseOrders)) }</strong>\n <SkeletonLoader className=\"statistics__skeleton-loader\" />\n </span>\n\n <span>{ I18n.t('generic.per_week') }: <strong>{ localizedNumberFormatter(countClientEnquiriesPerWeek) }</strong>\n <SkeletonLoader className=\"statistics__skeleton-loader\" />\n </span>\n </div>\n </div>\n </div>\n\n <div className=\"statistics__expanded-boxes-column\">\n <div className=\"statistics__expanded-box\">\n <SvgIco name=\"click\" size={40} />\n\n <div className=\"statistics__expanded-box-info\">\n <div className=\"statistics__expanded-box-headline\">\n { I18n.t('generic.clicks') }\n </div>\n\n <span>{ I18n.t('provider.statistic.expanded_info.personal_website') }: <strong>{ localizedNumberFormatter(locationEventsProviderAdvertsShownCount) }</strong>\n <SkeletonLoader className=\"statistics__skeleton-loader\" />\n </span>\n\n <span>{ I18n.t('providers.statistics.index.contact_info') }: <strong>{ localizedNumberFormatter(locationEventsContactDetailsShownCount) }</strong>\n <SkeletonLoader className=\"statistics__skeleton-loader\" />\n </span>\n </div>\n </div>\n\n <div className=\"statistics__expanded-box\">\n <SvgIco name=\"person_add\" size={40} />\n\n <div className=\"statistics__expanded-box-info\">\n <div className=\"statistics__expanded-box-headline\">\n { I18n.t('providers.statistics.index.extra_enquiries') }\n </div>\n\n <span>{ I18n.t('provider.table.total_footer') }: <strong>{ localizedNumberFormatter(countExtraEnquiries) }</strong>\n <SkeletonLoader className=\"statistics__skeleton-loader\" />\n </span>\n\n <span>{ I18n.t('generic.per_week') }: <strong>{ localizedNumberFormatter(countExtraEnquiriesPerWeek) }</strong>\n <SkeletonLoader className=\"statistics__skeleton-loader\" />\n </span>\n </div>\n </div>\n </div>\n\n </div>\n </div>\n </div>\n </div>\n )\n } else {\n return null;\n }\n}\n\nexport default ExpandedStatistics;\n","import React from \"react\";\nimport { Link } from \"react-router-dom\";\n\nimport { localizedNumberFormatter } from \"../../../utils/helpers\";\nimport { SvgIco } from \"../../SharedComponents/Icons\";\n\n\nexport const StatisticColumns = (statisticData, statisticDataTotal, currentLocale, handleExpand, currencySymbolFormatter) => React.useMemo(\n () =>\n [\n\n //===========================================================================>\n\n { Header: I18n.t('providers.statistics.index.address'),\n accessor: 'locationAddress',\n style: { maxWidth: '266px', minWidth: '266px' },\n Footer: I18n.t('provider.table.total_footer'),\n Cell: data =>\n <div className=\"statistics__address-cell\">\n { data.cell.row.original.expanded\n ? <SvgIco name=\"expand-less\" size={18} onClick={() => handleExpand(data.cell.row.original.locationId)} />\n : <SvgIco name=\"expand-more\" size={18} onClick={() => handleExpand(data.cell.row.original.locationId)} />\n }\n\n <Link to={`${currentLocale}/new_providers/locations/info/${data.cell.row.original.locationId}`}>\n { data.value }\n </Link>\n </div>,\n },\n\n //===========================================================================>\n\n { Header: I18n.t('providers.statistics.index.kind'),\n Footer: '',\n accessor: 'locationKind',\n style: { whiteSpace: 'nowrap' },\n Cell: data => <div className=\"google-translate-helper\">{ data.value }</div>\n },\n\n //===========================================================================>\n\n { Header: I18n.t('providers.statistics.index.status'),\n Footer: '',\n accessor: 'locationState',\n Cell: data => <div className=\"google-translate-helper\">{ data.value }</div>\n },\n\n //===========================================================================>\n\n { Header: <div className=\"align-right\">{ I18n.t('activerecord.attributes.location.area_interval') }</div>,\n Footer: '',\n accessor: 'locationFullArea',\n style: { textAlign: 'right' },\n Cell: data =>\n <div style={{ whiteSpace: \"nowrap\" }}>\n { data.value\n ? `${data.value} ${data.cell.row.original.locationAreaUnit === 'ft2' ? 'ft²' : 'm²'}`\n : ''\n }\n </div>,\n },\n\n //===========================================================================>\n\n { Header: <div className=\"align-right\">{ I18n.t('providers.statistics.index.yearly_rent_per_m2_min') }</div>,\n Footer: '',\n accessor: 'locationYearlyRentPerM2',\n style: { textAlign: 'right' },\n Cell: data =>\n <div className=\"google-translate-helper\">\n { data.value\n ? localizedNumberFormatter(Number(data.value.replaceAll(' ', '')), currencySymbolFormatter(data.cell.row.original.currencyId, true))\n : ''\n }\n </div>,\n },\n\n //===========================================================================>\n\n { Header:\n <div className=\"align-right\">\n { I18n.t('providers.statistics.index.days_active', { days_in_period: statisticData.length ? statisticData[0].daysInPeriod : 0 }) }\n </div>\n ,\n Footer: '',\n style: { textAlign: 'right' },\n accessor: 'locationCountDaysActive',\n Cell: data => <div className=\"google-translate-helper\">{ data.value ? localizedNumberFormatter(Number(data.value)) : 0 }</div>\n },\n\n //===========================================================================>\n\n { Header: <div className=\"align-right\">{ I18n.t('providers.statistics.index.shown_count') }</div>,\n Footer: statisticDataTotal.locationEventsShownCount ? localizedNumberFormatter(Number(statisticDataTotal.locationEventsShownCount)) : '0',\n style: { textAlign: 'right' },\n accessor: 'locationEventsShownCount',\n Cell: data => <div className=\"google-translate-helper\">{ data.value ? localizedNumberFormatter(Number(data.value)) : 0 }</div>\n },\n\n //===========================================================================>\n\n { Header: <div className=\"align-right\">{ I18n.t('providers.statistics.index.client_enquiries') }</div>,\n Footer: (statisticDataTotal && Object.keys(statisticDataTotal).length && localizedNumberFormatter(Number(statisticDataTotal.countClientEnquiries) + Number(statisticDataTotal.countProviderMessages) + Number(statisticDataTotal.countShowcaseOrders))) || 0,\n accessor: 'countClientEnquiries',\n style: { textAlign: 'right' },\n Cell: data =>\n <div className=\"google-translate-helper\">\n { localizedNumberFormatter(Number(data.value) + Number(data.cell.row.original.countProviderMessages) + Number(data.cell.row.original.countShowcaseOrders)) || 0 }\n </div> ,\n },\n\n //===========================================================================>\n\n // { Header: I18n.t('providers.statistics.index.provider_message_enquiries'),\n // Footer: statisticDataTotal.countProviderMessages || '0',\n // accessor: 'countProviderMessages',\n // },\n\n //===========================================================================>\n\n // { Header: I18n.t('providers.statistics.index.book_showcase_enquiries'),\n // Footer: statisticDataTotal.countShowcaseOrders || '0',\n // accessor: 'countShowcaseOrders',\n // },\n\n //===========================================================================>\n\n { Header: <div className=\"align-right\">{ I18n.t('providers.statistics.index.extra_enquiries') }</div>,\n Footer: statisticDataTotal.countExtraEnquiries ? localizedNumberFormatter(statisticDataTotal.countExtraEnquiries) : '0',\n style: { textAlign: 'right' },\n accessor: 'countExtraEnquiries',\n Cell: data => <div className=\"google-translate-helper\">{ data.value ? localizedNumberFormatter(Number(data.value)) : 0 }</div>,\n },\n\n //===========================================================================>\n\n { Header: <div className=\"align-right\">{ I18n.t('providers.statistics.index.contact_info') }</div>,\n Footer: statisticDataTotal.locationEventsContactDetailsShownCount ? localizedNumberFormatter(statisticDataTotal.locationEventsContactDetailsShownCount) : '0',\n style: { textAlign: 'right' },\n accessor: 'locationEventsContactDetailsShownCount',\n Cell: data => <div className=\"google-translate-helper\">{ data.value ? localizedNumberFormatter(Number(data.value)) : 0 }</div>\n },\n\n //===========================================================================>\n\n { Header: <div className=\"align-right\">{ I18n.t('providers.statistics.index.provider_info') }</div>,\n Footer: statisticDataTotal.locationEventsProviderAdvertsShownCount ? localizedNumberFormatter(statisticDataTotal.locationEventsProviderAdvertsShownCount) : '0',\n style: { textAlign: 'right', paddingRight: '24px' },\n accessor: 'locationEventsProviderAdvertsShownCount',\n Cell: data => <div className=\"google-translate-helper\">{ data.value ? localizedNumberFormatter(Number(data.value)) : 0 }</div>\n },\n\n //===========================================================================>\n\n ],\n [statisticData, statisticDataTotal]\n);\n","import React, { useState } from 'react';\nimport { useQuery } from '@apollo/client';\nimport DateTimePicker from 'react-datetime-picker';\n\nimport BasicDropdown from '../../SharedComponents/Forms/BasicDropdown';\nimport { SvgIco } from \"../../SharedComponents/Icons\";\nimport { useDebouncedEffect } from \"../../SharedComponents/hooks\";\nimport {\n GET_STATISTIC_FILE,\n GET_STATISTICS,\n GET_STATISTICS_TOTAL\n} from '../ApolloClient/queries';\nimport NetworkError from \"../Errors/NetworkError\";\nimport Table from '../Table';\nimport ExpandedStatistics from \"./ExpandedStatistics\";\nimport { StatisticColumns } from './StatisticColumns';\n\nimport './index.sass';\nimport TokenizedFileModalLink from \"../Modals/TokenizedFileModalLink\";\n\n\nconst Statistic = ({ currencySymbolFormatter, currentLocale, leaseKinds, dateFrom: initialDateFrom, dateTo: initialDateTo }) => {\n\n const [dateFrom, setDayFrom] = useState(new Date(initialDateFrom));\n const [dateTo, setDayTo] = useState(new Date(initialDateTo));\n const [statisticData, setStatisticData] = useState([]);\n const [statisticDataTotal, setStatisticDataTotal] = useState({});\n const [totalCount, setTotalCount] = useState(0);\n const [initialLoad, setInitialLoad] = useState(true);\n const [queryValue, setQueryValue] = useState('');\n\n const [filters, setFilters] = useState({\n timeFrom: '',\n timeTo: '',\n kind: null,\n page: 1,\n perPage: 10,\n query: '',\n });\n\n const { loading, error } = useQuery(GET_STATISTICS,\n { variables: { ...filters },\n fetchPolicy: 'no-cache',\n onCompleted: results => {\n const data = results.statistic;\n const dataLength = data.statisticData && data.statisticData.length;\n\n if (dataLength >= 0) {\n const editedData = [];\n const newData = { ...data.statisticData[0], expanded: true };\n\n data.statisticData.map((data, index) => editedData.push(index === 0 ? newData : { ...data }));\n setStatisticData(editedData);\n\n setTotalCount(data.statisticRowsCount);\n !dateFrom && setDayFrom(new Date(new Date().setDate(new Date().getDate() - data.statisticData[0].daysInPeriod)));\n }\n\n setInitialLoad(false);\n\n },\n });\n\n const { loading: loadingTotal } = useQuery(GET_STATISTICS_TOTAL,\n { variables: { ...filters },\n fetchPolicy: 'no-cache',\n onCompleted: results => {\n results && results.statisticTotal && setStatisticDataTotal(results.statisticTotal);\n },\n });\n\n\n const { kind, page, perPage } = filters;\n const hideYearlyRentColumn = !statisticData.some(data => data.locationYearlyRentPerM2);\n const hideLocationEventsColumns = !(statisticData && statisticData.length && statisticData[0].showContactDetailsInFrontend);\n\n const hiddenColumns = [\n `${hideYearlyRentColumn && 'locationYearlyRentPerM2'}`,\n `${hideLocationEventsColumns && 'locationEventsContactDetailsShownCount'}`,\n `${hideLocationEventsColumns && 'locationEventsProviderAdvertsShownCount'}`,\n ];\n\n const perPageOptions = [\n { value: '10', label: '10' },\n { value: '20', label: '20' },\n { value: '40', label: '40' },\n ];\n\n const kindsOptions =\n [{ value: null, label: I18n.t('generic.all'), className: !kind ? 'selected' : null }]\n .concat(leaseKinds.map(kind => ({ value: kind, label: I18n.t(`generic.${kind}`) })\n ));\n\n\n const downloadUrl = (extension) => {\n const timeFromQuery = dateFrom ? `time_from=${dateFrom.toLocaleDateString('en-GB').replaceAll('/', '-')}` : '';\n const timeToQuery = dateTo ? `&time_to=${dateTo.toLocaleDateString('en-GB').replaceAll('/', '-')}` : '';\n const kindQuery = kind ? `&kind=${kind}` : '';\n\n return `/providers/statistics/download.${extension}?${timeFromQuery}${timeToQuery}${kindQuery}`\n };\n\n\n const handleFilters = (newFilters) => {\n setFilters(prevFilters => ({\n ...prevFilters,\n ...newFilters,\n }));\n setStatisticData([]);\n };\n\n\n const handleDate = (date, field, setState) => {\n\n let newDate = new Date(date);\n\n // We need to set time and remove time zone offset to get a proper time request,\n // as DateTimePicker returns date with time 00:00:00 +/-timezone\n if (field === 'timeTo' && date) {\n newDate.setHours(23,59,59,59);\n const timeToUserTimezoneOffset = newDate.getTimezoneOffset() * 60000;\n newDate = new Date(newDate.getTime() - timeToUserTimezoneOffset);\n };\n\n handleFilters({ [field]: newDate || '' });\n setState(date);\n };\n\n\n useDebouncedEffect(() => {\n queryValue !== filters.query && handleFilters({query: queryValue, page: 1})\n }, [queryValue], 500);\n\n\n const handleExpand = (id) => {\n const editedData = [];\n const selectedIndex = statisticData.findIndex(data => data.locationId === id);\n const isExpanded = statisticData[selectedIndex].expanded ? false : true;\n const newData = { ...statisticData[selectedIndex], expanded: isExpanded };\n\n statisticData.map((data, index) => editedData.push(index === selectedIndex ? newData : { ...data }));\n setStatisticData(editedData);\n };\n\n\n const statisticColumns = StatisticColumns(statisticData, statisticDataTotal, currentLocale, handleExpand, currencySymbolFormatter);\n\n\n if (error) return <NetworkError />;\n\n\n return (\n <div className=\"statistics\">\n <div className=\"statistics__filters-wrapper\">\n <div className=\"statistics__filters\">\n\n <div className=\"search-input-wrapper\">\n <input\n className=\"search-input\"\n maxLength=\"256\"\n onChange={(e) => setQueryValue(e.target.value)}\n placeholder={I18n.t('generic.search')}\n type=\"text\"\n value={queryValue} />\n <SvgIco name=\"search\" size={16} />\n </div>\n\n <DateTimePicker\n calendarIcon={<SvgIco name=\"calendar_today\" size={16} />}\n clearIcon={<SvgIco name=\"close\" size={24} />}\n className={dateFrom ? '' : 'empty'}\n dayPlaceholder={I18n.t('providers.statistics.index.date_from')}\n disableClock={true}\n format=\"dd-MM-yyyy\"\n maxDate={new Date}\n onChange={(date) => handleDate(date, 'timeFrom', setDayFrom)}\n value={dateFrom} />\n\n <DateTimePicker\n calendarIcon={<SvgIco name=\"calendar_today\" size={16} />}\n clearIcon={<SvgIco name=\"close\" size={24} />}\n className={dateTo ? '' : 'empty'}\n dayPlaceholder={I18n.t('providers.statistics.index.date_to')}\n disableClock={true}\n format=\"dd-MM-yyyy\"\n minDate={dateFrom}\n onChange={(date) => handleDate(date, 'timeTo', setDayTo)}\n value={dateTo} />\n\n <BasicDropdown\n handleChange={(value) => handleFilters({ kind: value || '', page: 1 })}\n name=\"kind\"\n options={kindsOptions}\n placeholder={I18n.t('apps.lb_showroom.showroom.list.property_kind')}\n value={kind}\n wrapperClass=\"kind-select\" />\n\n </div>\n\n { !!statisticData.length &&\n <div className=\"statistics__file-buttons-wrapper\">\n <TokenizedFileModalLink\n dataName=\"statisticFile\"\n fileName=\"downloadFileToken\"\n linkLabel=\"CSV\"\n query={GET_STATISTIC_FILE}\n variables={{ timeFrom: filters.timeFrom, timeTo: filters.timeTo, kind: filters.kind || '', type: 'csv' }}\n />\n <TokenizedFileModalLink\n dataName=\"statisticFile\"\n fileName=\"downloadFileToken\"\n linkLabel=\"Excel\"\n query={GET_STATISTIC_FILE}\n variables={{ timeFrom: filters.timeFrom, timeTo: filters.timeTo, kind: filters.kind || '', type: 'xls' }}\n />\n </div>\n }\n\n </div>\n\n <Table\n columns={statisticColumns}\n currentPage={page}\n data={statisticData}\n disableSortBy={true}\n expandable={true}\n footerLoading={loadingTotal}\n hiddenColumns={hiddenColumns}\n initialLoad={initialLoad}\n loading={loading}\n perPage={perPage}\n perPageOptions={perPageOptions}\n renderExpandableRow={(data) => <ExpandedStatistics data={data} key={data.locationId} />}\n setPage={(page) => handleFilters({ page })}\n setPerPage={(perPage) => handleFilters({ perPage, page: 1 })}\n showFooter={true}\n totalCount={totalCount} />\n\n </div>\n );\n};\n\nexport default Statistic;\n","import React, { Fragment, useEffect, useRef, useState } from 'react';\nimport { Link } from 'react-router-dom';\nimport { HashLink } from 'react-router-hash-link';\nimport ReactTooltip from \"react-tooltip\";\n\nimport { Portal } from \"../../SharedComponents/hooks\";\nimport { SvgIco } from \"../../SharedComponents/Icons\";\nimport TooltipPopup from \"../Popups/TooltipPopup\";\nimport { EllipsisLoader } from \"../Loaders\";\n\n\n// COMPONENTS =========================================================================================================>\n\nexport const TableFilterHeader = ({ additionalClass, handleOrderBy, headline, isActive, style, orderDirection }) => {\n\n const iconName = orderDirection === 'desc' && isActive ? 'arrow_upward' : 'arrow_downward';\n\n return (\n <div className={`table-header ${additionalClass || ''}`} onClick={handleOrderBy}>\n <span style={style || null}>{ headline }</span>\n <SvgIco\n className={isActive ? ' active' : ''}\n name={iconName}\n size={16} />\n </div>\n )\n};\n\n\nexport const TableHashLink = ({ link, value, offset, additionalClass, nowrap }) => {\n\n const handleScroll = (elem) => {\n const targetTop = elem.getBoundingClientRect().top;\n const targetCoords = Math.floor(targetTop + window.scrollY - offset);\n\n window.scroll(0, targetCoords);\n };\n\n return (\n <HashLink\n scroll={(el) => handleScroll(el)} className={additionalClass || ''}\n style={nowrap ? { whiteSpace: \"nowrap\" } : {}}\n to={link}>\n { value }\n </HashLink>\n )\n};\n\n\nexport const InfoIconTooltip = ({ id, tooltip, position }) =>\n <div className=\"table-tooltip-wrapper\">\n <div data-tip={tooltip}\n data-class=\"table-tooltip\"\n data-for={`${id}-tooltip`}>\n <SvgIco name=\"info_outline\" size={21} />\n </div>\n\n <ReactTooltip\n border={true}\n borderColor=\"black\"\n effect='solid'\n id={`${id}-tooltip`}\n place={position || 'top'}\n type=\"light\"\n />\n </div>;\n\n\nexport const CellDropdown = ({ options, handleChange, value, id, matchPrevColumn, withCallback, afterOptionChange, onShow, loading }) => {\n const [activeOption, setActiveOption] = useState(options.filter(option => option.value === value)[0]);\n const [menuTop, setMenuTop] = useState(null);\n const [menuLeft, setMenuLeft] = useState(null);\n const [menuIsOpen, setMenuIsOpen] = useState(false);\n const [wrapperHeight, setWrapperHeight] = useState('auto');\n const dropdown = useRef();\n\n const menuStyles = { left: `${menuLeft}px`, top: `${menuTop}px` };\n\n useEffect(() => {\n handleWrapperHeight();\n window.addEventListener('click', handleClickOutside);\n\n return () => window.removeEventListener('click', handleClickOutside);\n }, []);\n\n useEffect(() => {\n afterOptionChange && afterOptionChange(activeOption.value);\n }, [activeOption]);\n\n const setMenuState = () => {\n if (menuIsOpen) {\n setMenuIsOpen(false);\n } else {\n const dropdownRef = dropdown.current;\n const dropdownBottomCoords = dropdownRef && dropdownRef.getBoundingClientRect().top + window.scrollY + dropdownRef.clientHeight + 1;\n const dropdownLeftCoords = dropdownRef && dropdownRef.getBoundingClientRect().left;\n\n setMenuTop(dropdownBottomCoords);\n setMenuLeft(dropdownLeftCoords);\n setMenuIsOpen(true);\n onShow && onShow(() => setMenuIsOpen(false));\n }\n };\n\n const handleOptionClick = (option) => {\n !withCallback && setActiveOption(option);\n handleChange(option.value, () => setActiveOption(option));\n };\n\n const handleClickOutside = (e) =>\n !dropdown.current.contains(e.target) && setMenuIsOpen(false);\n\n\n const handleWrapperHeight = () => {\n if (!matchPrevColumn) return;\n\n const prevColumnElement = document.getElementById(id);\n const prevColumnElementHeight = prevColumnElement && prevColumnElement.clientHeight;\n\n setWrapperHeight(`${prevColumnElementHeight}px`);\n\n // setTimeout(() => {\n // const prevColumnElement = document.getElementById(id);\n // const prevColumnElementHeight = prevColumnElement && prevColumnElement.clientHeight;\n //\n // setWrapperHeight(`${prevColumnElementHeight}px`);\n // }, 200);\n };\n\n\n return (\n <div className=\"cell-dropdown-wrapper\" style={{ height: wrapperHeight }}>\n <div className=\"cell-dropdown\" onClick={setMenuState} ref={dropdown}>\n { menuIsOpen &&\n <Portal>\n <div className=\"cell-dropdown__menu\" style={menuStyles}>\n { options.map(option =>\n <div className={`cell-dropdown__option ${option.value === value ? 'active' : ''}`}\n onClick={() => handleOptionClick(option)}\n key={`${option.label}${id}`}>\n { option.label }\n </div>\n )}\n </div>\n </Portal>\n }\n\n { loading ? <EllipsisLoader /> : activeOption.label }\n\n { menuIsOpen\n ? <SvgIco name=\"expand-less\" size={18} />\n : <SvgIco name=\"expand-more\" size={18} />\n }\n\n </div>\n </div>\n )\n};\n\n\nexport const EditDropDown = ({ data, modalClick }) => {\n\n const clickOnDropDown = (data, editModal) => {\n modalClick(data, editModal)\n };\n\n return (\n <Fragment>\n <p className=\"table-action-link\" onClick={() => clickOnDropDown(data.row.original, true)}>\n <SvgIco name=\"edit\" size={24} />\n { I18n.t('generic.edit') }\n </p>\n { data.row.original.isDestroyable && (\n <p className=\"table-action-link\" onClick={() => clickOnDropDown(data.row.original)}>\n <SvgIco name=\"delete_outline\" size={24} />\n { I18n.t(\"generic.delete\") }\n </p>\n )}\n </Fragment>\n )\n};\n\n\nexport const handleHorizontalScroll = (name, handleClose) => {\n const tableWrapper = document.getElementById(`${name}TableWrapper`);\n\n const handleScroll = () => {\n handleClose();\n tableWrapper.removeEventListener('scroll', handleScroll);\n }\n\n tableWrapper.addEventListener('scroll', handleScroll);\n};\n\n\n// <========================================================================================================= COMPONENTS\n\n\n//=======================================================================================================> LATEST ORDERS\n\n\nexport const LatestOrdersColumns = (clientOrders, setOrderBy, orderDirection, orderBy) => React.useMemo(\n () => [\n {\n Header:<TableFilterHeader headline={I18n.t(\"reports.providers_order_report.created_at\")}\n orderDirection={orderDirection}\n handleOrderBy={() => setOrderBy('created_at')}\n isActive={orderBy === 'created_at'} />,\n accessor: 'createdAtFormatted',\n },\n {\n Header: ({column}) => {\n return (\n <div className={`table-header`}>\n <span>{ I18n.t(\"generic.providers.sidebar.leases\") }</span>\n <SvgIco\n className={column.isSortedDesc ? ' active' : ''}\n name={column.isSortedDesc ? 'arrow_upward' : 'arrow_downward'}\n size={16} />\n </div>\n )\n },\n accessor: 'locationAddress',\n Cell: ({cell}) => {\n return (\n <a href={cell.row.original.locationPath}>{cell.row.original.locationAddress}</a>\n )\n }\n },\n {\n Header: ({column}) => {\n return (\n <div className={`table-header`}>\n <span>{ I18n.t(\"activerecord.attributes.location.area_interval\") }</span>\n <SvgIco\n className={column.isSortedDesc ? ' active' : ''}\n name={column.isSortedDesc ? 'arrow_upward' : 'arrow_downward'}\n size={16} />\n </div>\n )\n },\n accessor: 'locationAreaFormatted',\n Cell: data => <div className=\"google-translate-helper\">{ data.value }</div>,\n },\n {\n Header: ({column}) => {\n return (\n <div className={`table-header`}>\n <span>{ I18n.t(\"activerecord.attributes.location.yearly_rent_per_m2_from\") }</span>\n <SvgIco\n className={column.isSortedDesc ? ' active' : ''}\n name={column.isSortedDesc ? 'arrow_upward' : 'arrow_downward'}\n size={16} />\n </div>\n )\n },\n accessor: 'locationYearlyRentPerM2FromFormatted',\n Cell: data => <div className=\"google-translate-helper\">{ data.value }</div>,\n },\n {\n Header: ({column}) => {\n return (\n <div className={`table-header`}>\n <span>{ I18n.t(\"providers.statistics.index.kind\") }</span>\n <SvgIco\n className={column.isSortedDesc ? ' active' : ''}\n name={column.isSortedDesc ? 'arrow_upward' : 'arrow_downward'}\n size={16} />\n </div>\n )\n },\n accessor: 'locationKindTranslated',\n Cell: data => <div className=\"google-translate-helper\">{ data.value }</div>,\n },\n ],\n [clientOrders]\n);\n\n\n//=============================================================================================> REPORT A DEAL LOCATIONS\n\n\nexport const ReportDealLocation = (locations, locationId, handleSelect) => React.useMemo(\n () => [\n {\n Header: I18n.t('providers.statistics.index.address'),\n accessor: 'addressLine1',\n Cell: data => {\n return(\n <div className=\"check-button\">\n <input\n type=\"radio\"\n name=\"address\"\n id={data.cell.row.original.id}\n value={data.cell.row.original.id}\n checked={locationId == data.cell.row.original.id}\n onChange={(e) => handleSelect(e.target.value, data.cell.row.original.state)}\n className=\"checkoption-input\"\n />\n <label htmlFor={data.cell.row.original.id} className=\"select-option\">\n <span className=\"option-checkmark\" />\n <div className=\"google-translate-helper\">{ data.value }</div>\n </label>\n </div>)}\n },\n {\n Header: I18n.t(\"providers.locations.form.zip_and_city\"),\n accessor: 'postalCode',\n Cell: data => <div className=\"google-translate-helper\">{ data.value }</div>,\n },\n {\n Header: I18n.t(\"generic.type\"),\n accessor: 'kindTranslated',\n Cell: data => <div className=\"google-translate-helper\">{ data.value }</div>,\n },\n {\n Header: `${I18n.t(\"activerecord.attributes.location.area_interval\")}`,\n accessor: 'areaFrom',\n Cell: data => {\n if (data.value) {\n const areaLabel = `${data.value}${data.cell.row.original.areaTo ? ` - ${data.cell.row.original.areaTo}` : '' } ${data.cell.row.original.areaUnit || ''}`\n\n return <div className=\"google-translate-helper\">{ areaLabel }</div>\n } else {\n return '';\n }\n },\n },\n {\n Header: I18n.t(\"providers.statistics.index.status\"),\n accessor: \"stateTranslated\",\n Cell: data => <div className=\"google-translate-helper\">{ data.value }</div>,\n },\n {\n Header: I18n.t('activerecord.attributes.location.internal_identifier'),\n accessor: \"internalIdentifier\",\n Cell: data => <div className=\"google-translate-helper\">{ data.value }</div>,\n },\n ], [locations, locationId]\n);\n\n\n//================================================================================================> REPORT A DEAL ORDERS\n\n\nexport const ReportDealOrders = (orders, setClientId, orderId, handleCloseNotification) => React.useMemo(\n () => [\n {\n Header: I18n.t(\"generic.company_name\"),\n accessor: 'companyName',\n Cell: data => {\n return(\n <div className=\"check-button\">\n <input\n type=\"radio\"\n name=\"company-name\"\n id={data.cell.row.original.clientId}\n value={data.cell.row.original.clientId}\n checked={orderId == data.cell.row.original.clientId}\n onChange={(e) => { setClientId(e.target.value); handleCloseNotification()}}\n className=\"checkoption-input\"\n />\n <label htmlFor={data.cell.row.original.clientId} className=\"select-option\">\n <span className=\"option-checkmark\" />\n <div className=\"google-translate-helper\">{ data.value }</div>\n </label>\n </div>)}\n },\n {\n Header: I18n.t('generic.name'),\n accessor: 'personName',\n Cell: data => <div className=\"google-translate-helper\">{ data.value }</div>,\n },\n {\n Header: I18n.t(\"generic.email\"),\n accessor: 'email',\n Cell: data => <div className=\"google-translate-helper\">{ data.value }</div>,\n },\n ], [orders, orderId]\n);\n\n\n//============================================================================================================> CONTACTS\n\n\nexport const ContactsColumns = (dataTable, clickOnDropDown, orderDirection, setOrderBy, activeFilter) => React.useMemo(\n () => [\n {\n Header: I18n.t(\"generic.actions\"),\n accessor: 'action',\n Cell: data => (\n <TooltipPopup id={`${data.cell.row.original.id}-actions-popup`}\n place=\"right\"\n className=\"table-actions-popup\"\n height={28}\n offset={{ top: -20 }}\n hideBorder={true}\n onShow={(handleClose) => handleHorizontalScroll('contacts', handleClose)}\n icon=\"more_vert\"\n children={\n <div className=\"table-actions-wrapper\">\n <EditDropDown\n data={data}\n modalClick={clickOnDropDown}\n />\n </div>}/>\n )\n },\n\n {\n Header: 'ID',\n accessor: 'id',\n Cell: data => <div className=\"google-translate-helper\">{ data.value }</div>,\n },\n\n {\n Header:\n <TableFilterHeader headline={I18n.t('generic.name')}\n orderDirection={orderDirection}\n handleOrderBy={() => setOrderBy('name')}\n isActive={activeFilter === 'name'} />,\n accessor: 'name',\n Cell: data => <div className=\"google-translate-helper\">{ data.value }</div>,\n },\n\n {\n Header: I18n.t(\"generic.email\"),\n accessor: 'email',\n Cell: e => <a href={`mailto:${e.value}`}> {e.value} </a>\n },\n\n {\n Header: I18n.t('generic.phone'),\n accessor: 'phoneNumber',\n Cell: data =>\n <div>\n <a href={`tel://${data.row.original.phoneNumber}`}> {data.row.original.phoneNumber} </a>\n </div>\n },\n ],\n [dataTable, activeFilter]\n);\n\n\n//====================================================================================================> DELETED CONTACTS\n\n\nexport const DeletedContactsColumns = (dataTable, handleDeleteLinkClick, activeDeleteContact, orderDirection, setOrderBy, activeFilter ) => React.useMemo(\n () => [\n\n {\n Header: 'ID',\n accessor: 'id',\n Cell: data => <div className=\"google-translate-helper\">{ data.value }</div>,\n },\n\n {\n Header:\n <TableFilterHeader headline={I18n.t('generic.name')}\n orderDirection={orderDirection}\n handleOrderBy={() => setOrderBy('name')}\n isActive={activeFilter === 'name'} />,\n accessor: 'name',\n Cell: data => <div className=\"google-translate-helper\">{ data.value }</div>,\n },\n\n {\n Header: I18n.t(\"generic.email\"),\n accessor: 'email',\n Cell: e => <a href={`mailto:${e.value}`}> {e.value} </a>\n },\n\n {\n Header: I18n.t('generic.status'),\n accessor: '',\n Cell: data =>\n <div>\n <p className=\"contacts-table__active-button\" onClick={() => activeDeleteContact(data.row.original.id)}>\n { I18n.t(\"providers.contacts.deleted_list.activate\") }\n </p>\n </div>\n },\n {\n Header: I18n.t('providers.contacts.deleted_list.permanent_removal'),\n accessor: '',\n Cell: data =>\n <div>\n <p className=\"contacts-table__delete-forever-button\" onClick={() => handleDeleteLinkClick(data.row.original)}>\n { I18n.t('providers.contacts.deleted_list.delete_permanently') }\n </p>\n </div>\n },\n ],\n [dataTable, activeFilter]\n);\n\n\n//===================================================================================================> CONTACT LOCATIONS\n\n\nexport const ContactLocationsColumns = (contactLocation, currentLocale) => React.useMemo(\n () => [\n {\n Header: ({column}) => {\n return (\n <div className={`table-header`}>\n <span>{ I18n.t(\"generic.name\") }</span>\n <SvgIco\n className={column.isSortedDesc ? ' active' : ''}\n name={column.isSortedDesc ? 'arrow_upward' : 'arrow_downward'}\n size={16} />\n </div>\n )\n },\n accessor: 'name',\n Cell: data =>\n <Link to={`${currentLocale}/new_providers/locations/edit/${data.row.original.location.id}/location`}>\n {data.row.original.location.address}\n </Link>\n },\n {\n Header: ({column}) => {\n return (\n <div className={`table-header`}>\n <span>{ I18n.t(\"providers.contacts.edit.role\") }</span>\n <SvgIco\n className={column.isSortedDesc ? ' active' : ''}\n name={column.isSortedDesc ? 'arrow_upward' : 'arrow_downward'}\n size={16} />\n </div>\n )\n },\n\n accessor: 'roleTranslated',\n Cell: data =>\n <Link to={`${currentLocale}/new_providers/locations/edit/${data.row.original.location.id}/contacts`}>\n { data.value }\n </Link>,\n },\n ], [contactLocation]\n);\n","import React, { useEffect, useState, Fragment } from 'react';\nimport { debounce } from 'throttle-debounce';\n// import { useTable } from 'react-table/src/hooks/useTable';\n// import { useSortBy } from 'react-table/src/plugin-hooks/useSortBy';\n// import { usePagination } from 'react-table/src/plugin-hooks/usePagination';\n\nimport { useTable, useSortBy, usePagination } from 'react-table'\nimport TableHead from '@material-ui/core/TableHead';\nimport TableBody from '@material-ui/core/TableBody';\nimport TableRow from '@material-ui/core/TableRow';\nimport TableCell from '@material-ui/core/TableCell';\nimport MaUTable from '@material-ui/core/Table';\nimport TableFooter from '@material-ui/core/TableFooter';\nimport ReactPaginate from 'react-paginate';\nimport { useSticky } from 'react-table-sticky';\n\nimport NoResultsImage from '../../../src/images/icons/no-rsults.svg';\nimport BasicDropdown from '../../SharedComponents/Forms/BasicDropdown';\nimport { KeyboardArrowLeftRounded, KeyboardArrowRightRounded } from '../../SharedComponents/Icons';\nimport { SkeletonLoader } from '../Loaders';\n\nimport './index.sass';\n\nconst Table = ({\n data,\n columns,\n footerLoading,\n perPage,\n setPerPage,\n perPageOptions,\n initialLoad,\n setPage,\n totalCount,\n showFooter,\n name,\n noPagination,\n disableSortBy,\n hideBottomFilters,\n currentPage,\n extraClass,\n hiddenColumns,\n noScrollToTop,\n loading,\n passPageIndex,\n disableSort,\n gotAllData,\n expandable,\n renderExpandableRow,\n}) => {\n\n const [showStickyBorder, setShowStickyBorder] = useState(true);\n\n const tableData = React.useMemo(\n () => (loading ? Array(perPage).fill({}) : data),\n [loading, data],\n );\n\n const tableColumns = React.useMemo(\n () =>\n loading\n ? columns.map((column) => ({\n ...column,\n Cell: <SkeletonLoader className=\"table-loader\" count={1} />,\n }))\n : columns,\n [loading, columns],\n );\n\n const noResults = React.useMemo(\n () => !loading && !initialLoad && !data.length,\n [loading, initialLoad, data],\n );\n\n const isExpandable = React.useMemo(\n () => expandable,\n [expandable],\n );\n\n useEffect(() => {\n const table = document.getElementById(`${name || ''}TableWrapper`);\n const stickyStartTarget = document.getElementById(`${name}-sticky-start-target`);\n\n table && stickyStartTarget && table.addEventListener('scroll', debounce(10, handleTableScroll));\n }, []);\n\n const handleTableScroll = () => {\n const stickyStartTarget = Math.round(document.getElementById(`${name}-sticky-start-target`).getBoundingClientRect().left);\n const scrollEndTarget = Math.round(document.getElementById(`${name}-scroll-end-target`).getBoundingClientRect().right);\n\n stickyStartTarget === scrollEndTarget\n ? setShowStickyBorder(false)\n : setShowStickyBorder(true);\n };\n\n useEffect(() => {\n setHiddenColumns(hiddenColumns || []);\n }, [hiddenColumns]);\n\n const {\n getTableProps,\n getTableBodyProps,\n headerGroups,\n page,\n prepareRow,\n footerGroups,\n pageCount,\n gotoPage,\n setPageSize,\n setHiddenColumns,\n state: { pageIndex, pageSize },\n } = useTable(\n {\n columns: tableColumns,\n data: tableData,\n disableSortRemove: disableSort,\n disableSortBy,\n initialState: {\n pageIndex: passPageIndex ? currentPage - 1 : 0,\n pageSize: perPage,\n hiddenColumns: hiddenColumns || [],\n sortBy: disableSort\n ? [\n {\n id: 'name',\n asc: true,\n },\n {\n id: 'roleTranslated',\n asc: true,\n },\n ]\n : [],\n },\n },\n useSortBy,\n usePagination,\n useSticky,\n );\n\n useEffect(() => {\n setPageSize(perPage);\n }, [perPage]);\n\n useEffect(() => {\n if (!noPagination && gotAllData)\n setPage(pageIndex+1)\n }, [pageSize]);\n\n const handlePerPage = (value) => {\n const scrollTop = perPage > value;\n setPageSize(value);\n\n setPerPage(value);\n scrollTop && window.scroll(0, 0)\n };\n\n const handlePage = (value) => {\n !noScrollToTop && window.scroll({ top: 0, behavior: 'smooth' });\n\n // We need to set timeout for correct scroll behaviour on Safari and Firefox,\n // as by the moment scrolling and changing window content causes bugs in this browsers\n setTimeout(() => {\n setPage(value);\n gotAllData ? gotoPage(value - 1) : null;\n }, 35);\n };\n\n const showTable = !noResults && !!tableData.length;\n\n\n return (\n <div className=\"provider-table-wrapper\">\n <div\n className={`provider-table ${extraClass}`}\n id={`${name || ''}TableWrapper`}\n >\n { noResults && !initialLoad && (\n <div className=\"provider-table__no-results-wrapper\">\n <p>{I18n.t('search_agent.no_results')}</p>\n <img\n src={NoResultsImage}\n alt=\"No results\"\n className=\"provider-table__no-results-img\"\n width={457}\n height={271}\n />\n </div>\n ) }\n {showTable && (\n <MaUTable {...getTableProps()} className={`table sticky ${showStickyBorder ? 'sticky-border' : ''}`}>\n <TableHead className=\"header\">\n {headerGroups.map((headerGroup) => (\n <tr {...headerGroup.getHeaderGroupProps()}>\n {headerGroup.headers.map((column) => (\n <th\n {...column.getHeaderProps(column.getSortByToggleProps())}\n >\n {column.render('Header')}\n </th>\n ))}\n </tr>\n ))}\n </TableHead>\n\n <TableBody\n {...getTableBodyProps()}\n className={`body ${loading ? 'loading' : ''}`}\n >\n { page.map((row) => {\n prepareRow(row);\n return (\n <Fragment key={`table-row-${row.index}`}>\n\n <TableRow\n {...row.getRowProps()}\n className={`\n ${(!row.original.isDestroyable && name === 'contacts') ? 'main-contact' : ''}\n ${row.index % 2 !== 0 ? ' even' : ''}\n `}>\n { row.cells.map((cell) =>\n <TableCell {...cell.getCellProps([{ style: cell.column.style }])}>\n { cell.render('Cell') }\n </TableCell>\n )}\n </TableRow>\n\n { isExpandable && !loading &&\n <tr className={`provider-table__expanded-row${row.original.expanded ? ' expanded' : ''}${row.index % 2 !== 0 ? ' even' : ''}`}>\n <div className=\"wrapper\" style={{ position: 'relative', display: 'contents' }}>\n { renderExpandableRow(row.original) }\n </div>\n {/*We need this to properly show the background*/}\n { Array.apply('test', Array(row.cells.length)).map((elem, index) =>\n <td key={'helper-cell' + index} className={row.original.expanded ? ' expanded' : ''} />\n )}\n </tr>\n }\n\n </Fragment>\n );\n })}\n </TableBody>\n { showFooter && (\n <TableFooter>\n {footerGroups.map((group) => (\n <TableRow {...group.getFooterGroupProps()}>\n {group.headers.map((column) => (\n <TableCell {...column.getFooterProps()}>\n { footerLoading ? <SkeletonLoader className=\"table-loader\" count={1} /> : column.render('Footer') }\n\n </TableCell>\n ))}\n </TableRow>\n ))}\n </TableFooter>\n )}\n </MaUTable>\n )}\n </div>\n\n {!noPagination && showTable && (\n <div className=\"pagination-wrapper\">\n {!hideBottomFilters && (\n <Fragment>\n <ReactPaginate\n previousLabel={<KeyboardArrowLeftRounded size={20} />}\n nextLabel={<KeyboardArrowRightRounded size={20} />}\n pageCount={\n totalCount ? Math.ceil(totalCount / perPage) : pageCount\n }\n breakLabel={'...'}\n pageRangeDisplayed={2}\n marginPagesDisplayed={1}\n onPageChange={(data) =>\n setPage\n ? handlePage(data.selected + 1)\n : gotoPage(data.selected)\n }\n containerClassName={'pagination'}\n activeClassName={'active'}\n forcePage={currentPage ? currentPage - 1 : 0}\n />\n\n <div className=\"per-page-wrapper\">\n <div className=\"per-page-label\">{I18n.t('generic.show')}:</div>\n <BasicDropdown\n options={perPageOptions}\n value={`${perPage}`}\n name=\"perPage\"\n wrapperClass=\"per-page\"\n handleChange={(option) => handlePerPage(Number(option))}\n />\n </div>\n </Fragment>\n )}\n </div>\n )}\n </div>\n );\n};\n\n\nexport default Table;\n","import React from 'react';\nimport { Link } from 'react-router-dom';\n\nexport const UnresolvedAgreementColumns = (agreementsData, currentLocale, handleReject) =>\n React.useMemo(\n () => [\n //===========================================================================>\n\n {\n Header: I18n.t('providers.providers.provider_deals_notifications.client'),\n accessor: 'personName',\n Cell: data => <div className=\"google-translate-helper\">{ data.value }</div>,\n },\n\n //===========================================================================>\n\n {\n Header: I18n.t('generic.locations'),\n accessor: 'address',\n Cell: data => <div className=\"google-translate-helper\">{ data.value || '' }</div>,\n },\n\n //===========================================================================>\n\n {\n Header: I18n.t('providers.providers.provider_deals_notifications.created_at'),\n accessor: 'createdAtFormatted',\n Cell: data => <div className=\"google-translate-helper\">{ data.value || '' }</div>,\n },\n\n //===========================================================================>\n\n {\n Header: '',\n accessor: 'confirm',\n\n Cell: (data) => {\n const { clientId, locationId, id, orderId } = data.row.original;\n return (\n <Link\n className=\"unresolved-agreement__confirm-link\"\n to={`${currentLocale}/new_providers/report_deal?client_id=${clientId}&location_id=${locationId}&provider_deal_id=${id}&order_id=${orderId}`}\n >\n { I18n.t('providers.providers.provider_deals_notifications.accept') }\n </Link>\n );\n },\n },\n\n //===========================================================================>\n\n {\n Header: '',\n accessor: 'reject',\n\n Cell: (data) => (\n <div onClick={() => handleReject(data.row.original)} className=\"unresolved-agreement__reject-link\">\n { I18n.t('generic.reject') }\n </div>\n ),\n },\n ],\n [agreementsData],\n );\n","import React, { useState } from 'react';\nimport { useQuery } from '@apollo/client';\nimport { useLocation } from \"react-router-dom\";\n\nimport { useRouterQuery } from \"../../SharedComponents/hooks\";\nimport { GET_UNRESOLVED_PROVIDER_DEALS } from '../ApolloClient/queries';\nimport RejectAgreementModal from '../Modals/RejectAgreementModal';\nimport Table from '../Table';\nimport { UnresolvedAgreementColumns } from './Columns';\n\nimport './index.sass';\n\n\nconst UnresolvedAgreement = ({ currentLocale }) => {\n\n const query = useRouterQuery();\n\n const [rejectModalIsOpen, setRejectModalIsOpen] = useState(false);\n const [selectedProviderDeal, setSelectedProviderDeal] = useState({});\n const [unresolvedProviderDeals, setUnresolvedProviderDeals] = useState([]);\n\n const {} = useQuery(GET_UNRESOLVED_PROVIDER_DEALS, {\n onCompleted: (data) => {\n const rejectDealId = parseInt(query.get('reject_deal_id'));\n const { unresolvedProviderDeals } = data;\n const rejectedDeal = rejectDealId && unresolvedProviderDeals.find(deal => Number(deal.id) === Number(rejectDealId));\n\n data && unresolvedProviderDeals && setUnresolvedProviderDeals(unresolvedProviderDeals);\n\n if (rejectedDeal) {\n setSelectedProviderDeal(rejectedDeal);\n setRejectModalIsOpen(true);\n }\n },\n });\n\n const handleReject = (data) => {\n setSelectedProviderDeal(data);\n setRejectModalIsOpen(true);\n };\n\n const columns = UnresolvedAgreementColumns(unresolvedProviderDeals, currentLocale, handleReject);\n const isReportADealPage = useLocation().pathname.includes('report_deal');\n\n if (!!unresolvedProviderDeals.length && !isReportADealPage) {\n return (\n <div className=\"unresolved-agreement\">\n <RejectAgreementModal\n data={selectedProviderDeal}\n handleClose={() => setRejectModalIsOpen(false)}\n showModal={rejectModalIsOpen}\n />\n\n <h3>{ I18n.t('providers.providers.provider_deals_notifications.heading') }</h3>\n\n <p className=\"unresolved-agreement__explanation\">\n { I18n.t('providers.providers.provider_deals_notifications.description') }\n </p>\n\n <Table\n columns={columns}\n data={unresolvedProviderDeals}\n disableSortBy={true}\n extraClass=\"no-wrap\"\n name=\"unresolvedAgreements\"\n noPagination={true}\n hideBottomFilters={true}\n perPage={10}\n />\n </div>\n );\n } else {\n return null;\n }\n};\n\nexport default UnresolvedAgreement;\n","import React from 'react';\nimport { Link } from 'react-router-dom';\n\nimport WelcomeBanner from '../../../src/images/provider/welcome_banner.svg';\n\nimport \"./index.sass\"\n\n\nconst WelcomePage = ({ siteName, contactName, contactEmail, currentLocale }) => {\n\n const capitalize = (name) => name.charAt(0).toUpperCase() + name.slice(1);\n\n return (\n <div className=\"welcome\">\n <img src={WelcomeBanner} alt=\"Get Assistance\" width={303} height={216} />\n <h1 className=\"welcome__title\">{ I18n.t('providers.pages.welcome.heading') } {contactName}</h1>\n <p className=\"welcome__subtitle\">{ I18n.t('providers.pages.welcome.body_first_part', { site_name: siteName }) }</p>\n <p className=\"welcome__description\">{ I18n.t('providers.pages.welcome.body_second_part', {email: contactEmail}) }</p>\n\n <p className=\"welcome__subtitle\">{ I18n.t('providers.pages.welcome.body_third_part') }</p>\n\n <div className=\"welcome__buttons-wrapper\">\n <Link\n to={`${currentLocale}/new_providers/lease/new/location`}\n className=\"welcome__button create-new-lease\"\n >{ I18n.t(\"providers.pages.welcome.new_location_link\") }</Link>\n\n <Link\n to={`${currentLocale}/new_providers/settings/provider`}\n className=\"welcome__button edit-information\"\n >{ capitalize(I18n.t(\"providers.pages.welcome.edit_contact_link\")) }</Link>\n\n </div>\n\n\n </div>\n )\n};\n\nexport default WelcomePage;\n","import React, { useState, useEffect } from 'react';\nimport { BrowserRouter, Switch, Route } from 'react-router-dom';\nimport { ApolloProvider } from '@apollo/client';\nimport 'scroll-behavior-polyfill';\n\nimport { preventResizeObserverError } from \"../../utils/resizeObzerver\";\nimport { loadTawkTo } from '../TawkTo/TawkTo';\nimport { client } from './ApolloClient/client.js';\nimport ProviderHeader from './ProviderHeader';\nimport SideBar from './SideBar';\nimport Statistic from './Statistic';\nimport Locations from './Locations';\nimport ProviderSettings from './Settings/ProviderSettings';\nimport HelpPage from './HelpPage';\nimport MainDashboard from './MainDashboard';\nimport Clients from './Clients/index';\nimport Footer from './Footer';\nimport ContactsPage from './ContactsPage';\nimport LocationForm from './LocationForm';\nimport ClientInfo from './ClientInfo/ClientInfo';\nimport ContactSettings from './Settings/ContactSettings';\nimport ReportDeal from './ReportDeal';\nimport LocationInfo from './LocationInfo';\nimport WelcomePage from './WelcomePage';\nimport Invoices from \"./Invoices\";\nimport UnresolvedAgreement from './UnresolvedAgreement';\nimport ProviderInactive from \"./ProviderInactive\";\nimport ScrollToTop from '../SharedComponents/ScrollToTop';\nimport Page404 from './Errors/Page404';\n\nimport './index.sass';\n\n\nconst Provider = ({\n createLease,\n footer,\n googleApiKey,\n helpContent,\n links,\n locale,\n locations,\n newClientsCount,\n partnerBadgeUrl,\n patternedProspectusEnabled,\n providerAdvertisingStrategy,\n providerApproved,\n providerInactive,\n providerOnDealStrategy,\n providerPartner,\n settings,\n siteKey,\n siteName,\n statistics,\n stripeInvoicesApiKey,\n}) => {\n\n const [newClientsQuantity, setNewClientsQuantity] = useState(newClientsCount);\n const [updatedProviderInfo, setUpdatedProviderInfo] = useState(null);\n const [updatedContactInfo, setUpdatedContactInfo] = useState(null);\n\n const currentLocale = locale && (locale === 'fr-BE' || locale === 'fr-CH') ? `/${locale}` : '';\n const { qualityScorePageLink } = links;\n\n\n useEffect(() => {\n loadTawkTo(siteKey);\n preventResizeObserverError();\n }, []);\n\n\n const currencySymbolFormatter = (currencyId, asName) => {\n const { currencyList, defaultCurrencyId } = createLease;\n const currencies = JSON.parse(currencyList);\n const currency = currencies.filter((item) => {\n const currentCurrency =\n (currencyId && Number(currencyId)) || defaultCurrencyId.id;\n return item.id === currentCurrency;\n })[0];\n\n return asName ? currency.name : currency.formatted;\n };\n\n\n const resourceNotFoundError = (error) =>\n !!( error\n && error.graphQLErrors\n && error.graphQLErrors.length\n && error.graphQLErrors[0].extensions\n && error.graphQLErrors[0].extensions.code === 'RESOURCE_NOT_FOUND'\n );\n\n\n const isNumber = (value) => value ? /^\\d+$/.test(value) : true;\n\n\n return (\n <div className=\"provider\">\n <ApolloProvider client={client}>\n <BrowserRouter>\n\n <ProviderHeader\n currentLocale={currentLocale}\n siteKey={siteKey}\n contractUrl={settings.contractUrl}\n />\n\n <div className=\"main-provider-wrapper\">\n <SideBar\n companyName={footer.providerInfo.companyName}\n currentContactEmail={footer.currentContactEmail}\n currentContactName={footer.currentContactName}\n currentLocale={currentLocale}\n currentPhoneName={footer.currentPhoneName}\n links={links}\n newClientsCount={newClientsQuantity}\n providerPartner={providerPartner}\n siteKey={siteKey}\n />\n\n <div className=\"content-section\" id=\"providerContent\">\n\n { !providerInactive && <UnresolvedAgreement currentLocale={currentLocale} /> }\n\n <ScrollToTop />\n\n { !providerInactive &&\n <Switch>\n <Route exact path={'/:locale?/new_providers'}>\n <MainDashboard\n currencySymbolFormatter={currencySymbolFormatter}\n contactName={footer.currentContactInfo.name}\n currentLocale={currentLocale}\n enquiryStates={settings.enquiryStates}\n isNumber={isNumber}\n providerApproved={providerApproved}\n providerOnDealStrategy={providerOnDealStrategy}\n resourceNotFoundError={resourceNotFoundError}\n siteName={siteName}\n states={locations.states}\n />\n </Route>\n\n <Route exact path=\"/:locale?/new_providers/statistic\">\n <Statistic\n {...statistics}\n currencySymbolFormatter={currencySymbolFormatter}\n currentLocale={currentLocale}\n leaseKinds={createLease.leaseKinds}\n />\n </Route>\n\n <Route exact path=\"/:locale?/invoices\">\n <Invoices stripeInvoicesApiKey={stripeInvoicesApiKey} locale={locale}/>\n </Route>\n\n <Route exact path=\"/:locale?/new_providers/locations/:category\">\n <Locations\n currentLocale={currentLocale}\n providerOnDealStrategy={providerOnDealStrategy}\n siteName={siteName}\n states={locations.states}\n providerApproved={providerApproved}\n />\n </Route>\n\n <Route exact path=\"/:locale?/new_providers/locations/info/:id\">\n <LocationInfo\n currencySymbolFormatter={currencySymbolFormatter}\n currentLocale={currentLocale}\n googleApiKey={googleApiKey}\n isNumber={isNumber}\n partnerBadgeUrl={partnerBadgeUrl}\n providerAdvertisingStrategy={providerAdvertisingStrategy}\n providerApproved={providerApproved}\n providerOnDealStrategy={providerOnDealStrategy}\n providerPartner={providerPartner}\n qualityScorePageLink={qualityScorePageLink}\n resourceNotFoundError={resourceNotFoundError}\n siteKey={siteKey}\n siteName={siteName}\n />\n </Route>\n\n <Route\n path={[\n '/:locale?/new_providers/:locationSection/new',\n '/:locale?/new_providers/locations/:editPage/:id',\n ]}\n >\n <LocationForm\n {...createLease}\n countryAlpha2={settings.countryAlpha2}\n currentContactId={settings.currentContactId}\n currentLocale={currentLocale}\n googleApiKey={googleApiKey}\n isNumber={isNumber}\n partnerBadgeUrl={partnerBadgeUrl}\n patternedProspectusEnabled={patternedProspectusEnabled}\n providerPartner={providerPartner}\n resourceNotFoundError={resourceNotFoundError}\n siteKey={siteKey}\n siteName={siteName}\n />\n </Route>\n\n <Route\n exact\n path={['/:locale?/new_providers/orders', '/:locale?/new_providers/orders/:id']}\n >\n <Clients\n {...settings}\n currencySymbolFormatter={currencySymbolFormatter}\n currentLocale={currentLocale}\n defaultLocale={createLease.defaultLocale}\n isNumber={isNumber}\n locale={locale}\n newClientsCount={newClientsCount}\n providerId={settings.providerId}\n resetNewClients={() => setNewClientsQuantity(null)}\n resourceNotFoundError={resourceNotFoundError}\n />\n </Route>\n\n <Route exact path=\"/:locale?/new_providers/clients/:id\">\n <ClientInfo\n currentLocale={currentLocale}\n isNumber={isNumber}\n locale={locale}\n resourceNotFoundError={resourceNotFoundError}\n />\n </Route>\n\n <Route exact path=\"/:locale?/new_providers/help\">\n <HelpPage content={helpContent}/>\n </Route>\n\n <Route exact path=\"/:locale?/new_providers/settings/provider\">\n <ProviderSettings\n {...settings}\n currentLocale={currentLocale}\n siteKey={siteKey}\n updateProviderInfo={setUpdatedProviderInfo}/>\n </Route>\n\n <Route path=\"/:locale?/new_providers/settings/contact\">\n <ContactSettings\n {...settings}\n currentLocale={currentLocale}\n updateContactInfo={setUpdatedContactInfo}/>\n </Route>\n\n <Route exact path={'/:locale?/new_providers/report_deal'}>\n <ReportDeal\n currentLocale={currentLocale}\n siteName={siteName}\n siteKey={siteKey}\n providerId={settings.providerId}\n providerOnAdvertisingStrategy={settings.providerOnAdvertisingStrategy}\n />\n </Route>\n\n <Route exact path=\"/:locale?/new_providers/welcome\">\n <WelcomePage\n siteName={siteName}\n contactEmail={footer.currentContactInfo.email}\n contactName={footer.currentContactInfo.name}\n currentLocale={currentLocale}\n />\n </Route>\n\n <Route exact path=\"/:locale?/new_providers/contacts\">\n <ContactsPage\n currentLocale={currentLocale}\n providerId={settings.providerId}/>\n </Route>\n\n <Route path=\"*\">\n <Page404 currentLocale={currentLocale}/>\n </Route>\n </Switch>\n }\n\n { providerInactive &&\n <ProviderInactive\n currentLocale={currentLocale}\n data={footer}\n />\n }\n\n </div>\n </div>\n </BrowserRouter>\n </ApolloProvider>\n <Footer\n footer={footer}\n providerInfo={updatedProviderInfo || footer.providerInfo}\n currentContactInfo={updatedContactInfo || footer.currentContactInfo}\n />\n </div>\n );\n};\n\n\nexport default Provider;\n","import React from 'react';\n\nimport { Area, Tooltip, XAxis, YAxis, AreaChart, ResponsiveContainer } from \"recharts\";\n\nimport './InlineChart.sass'\n\n\nconst CustomizedAxisTick = (props) => {\n const { fontSize, x, y, payload } = props;\n\n return (\n <g transform={`translate(${x},${y})`}>\n <text x={0} y={0} dy={5}\n textAnchor=\"end\"\n fill=\"black\"\n transform=\"rotate(-70)\"\n fontSize={fontSize || 12}>\n { payload.value }\n </text>\n </g>\n );\n};\n\n\nconst CustomTooltip = ({ active, payload }) => {\n\n if (active && payload && payload.length && payload[0].payload.tooltip) {\n return (\n <div className=\"custom-tooltip\">\n { payload[0].payload.tooltip }\n </div>\n );\n }\n\n return null;\n};\n\n\nconst CustomizedDot = (props) => {\n const { cx, cy, payload, color } = props;\n const { dotSize, label } = payload;\n\n if (payload && label) {\n return (\n <svg x={cx - (dotSize ? dotSize / 2 : 4)} y={cy - (dotSize ? dotSize / 2 : 4)} width={dotSize || 8} height={dotSize || 8} fill=\"white\">\n <g transform={`translate(${dotSize ? dotSize / 2 : 4} ${dotSize ? dotSize / 2 : 4})`}>\n <circle r={dotSize ? dotSize / 2 : 4} fill={color || \"#77bc1f\"} />\n <circle r={dotSize ? dotSize / 4 : 2} fill=\"white\" />\n </g>\n </svg>\n );\n }\n\n return null;\n};\n\n\nconst InlineChart = ({ data, tickFontSize, height, lineKey, xKey, width, xaxisHeight }) => {\n\n const dataMax = data.reduce((previousValue, current) => previousValue + current[lineKey], 0) > 0 ? 'dataMax' : 1;\n\n return (\n <div className=\"inline-chart\">\n <ResponsiveContainer width=\"100%\" height=\"100%\">\n <AreaChart\n width={width || 503}\n height={height || 336}\n data={data}\n margin={{ top: 20, right: 8, left: -20, bottom: 10}}>\n\n <XAxis interval={0}\n dataKey={xKey}\n tick={<CustomizedAxisTick fontSize={tickFontSize} />}\n height={xaxisHeight || 80}\n stroke=\"black\" />\n\n <YAxis stroke=\"black\"\n domain={['dataMin', dataMax]}\n allowDecimals={false} />\n\n <Tooltip content={<CustomTooltip />}/>\n\n <Area dot={<CustomizedDot/>}\n key={Math.random()}\n type=\"monotone\"\n strokeWidth={2}\n dataKey={lineKey}\n stroke=\"#77bc1f\"\n fill=\"rgba(119, 188, 31, 0.1)\"\n />\n\n </AreaChart>\n </ResponsiveContainer>\n </div>\n )\n}\n\nexport default InlineChart;\n","import React, { Fragment, useEffect, useState } from 'react';\n\nimport \"./FormMessageBlock.sass\";\n\n\nconst FormMessageBlock = ({ show, closeNotification}) => {\n const [showBlock, setShow] = useState(show.show);\n const color = show.color;\n\n useEffect(() => {\n setShow(show.show);\n }, [show.show]);\n\n\n useEffect(\n () => {\n let timer1 = setTimeout(() => {\n setShow(false);\n if (closeNotification) {\n closeNotification()\n }\n }, 3000);\n\n return () => {\n clearTimeout(timer1);\n };\n },\n\n [showBlock]\n );\n\n return (\n <Fragment>\n { showBlock &&\n <div className={`form-notification-block ${color === 'green' ? 'green' : 'red'}`}>\n <span>{show.message}</span>\n </div>\n }\n </Fragment>\n );\n};\n\nexport default FormMessageBlock;\n","import React from 'react';\nimport Dropdown from 'react-dropdown';\nimport 'react-dropdown/style.css';\n\nimport { SvgIco } from '../../Icons';\n\nimport './index.sass';\n\n\nconst BasicDropdown = ({ disabled, error, options, handleChange, value, name, wrapperClass, required, placeholder }) => {\n\n return (\n <div className={`basic-dropdown ${wrapperClass || ''}${ error ? ' error' : '' }${ disabled ? ' disabled' : '' }`}>\n <Dropdown\n arrowClosed={<SvgIco name=\"expand-more\" size={24} />}\n arrowOpen={<SvgIco name=\"expand-less\" size={24} />}\n id={name}\n name={name}\n onChange={(option) => handleChange(option.value, name)}\n options={options}\n placeholder={placeholder || I18n.t('helpers.select.prompt')}\n value={value}\n />\n { required && <span className=\"required-icon\">*</span> }\n { error && <div className=\"error-tooltip\">{ error }</div> }\n </div>\n\n )\n}\n\nexport default BasicDropdown;\n","import React, { useState } from 'react';\nimport classNames from 'classnames';\n\nimport { SvgIco } from \"../../Icons\";\n\nimport './index.sass';\n\n\nconst BasicInput = ({ disabled,\n error,\n float,\n handleChange,\n hideError,\n inputClass,\n name,\n placeholder,\n required,\n type,\n value,\n wrapperClass,\n }) => {\n\n const [passwordVisible, setPasswordVisibility] = useState(false);\n const inputClasses = classNames(inputClass, { 'error': error, 'filled': value, 'required-form-group': required });\n const inputType = passwordVisible || !type || type === 'number' ? 'text' : type;\n\n\n // Input type 'number' doesn't work on Safari, Firefox and passes letter 'E' in Chrome\n // This is why we need to check it manually to prevent bugs\n const handleInputChange = (e) => {\n const value = e.target.value.replace(',', '.');\n e.target.value = value;\n\n type === 'number'\n ? ((float ? /^\\d*\\.?\\d*$/ : /^\\d+$/).test(e.target.value) || !e.target.value) && handleChange(e)\n : handleChange(e);\n };\n\n\n return (\n <div className={`input-wrapper ${ wrapperClass || '' }`}>\n <input\n disabled={disabled}\n name={name}\n type={inputType}\n value={value}\n id={name}\n onChange={handleInputChange}\n className={inputClasses}\n placeholder={placeholder || I18n.t('providers.input_placeholder')}\n />\n\n { type === 'password' &&\n ( passwordVisible\n ? <SvgIco className=\"password-visibility\" name=\"visibility\" onClick={() => setPasswordVisibility(false)} size={18} />\n : <SvgIco className=\"password-visibility\" name=\"visibility_off\" onClick={() => setPasswordVisibility(true)} size={18} />\n )\n }\n\n { required && <span className=\"required-icon\">*</span> }\n { error && !hideError && <div className=\"error-tooltip\">{ error }</div> }\n </div>\n )\n}\n\n\nexport default BasicInput;\n","import React from 'react';\nimport classNames from 'classnames';\n\nimport { SvgIco } from \"../../Icons\";\n\nimport './index.sass';\n\n\nconst Checkbox = ({ name, handleChange, handleBlur, inputClass, label, field, value }) => {\n\n const checkboxClasses = classNames(\"checkbox\", { inputClass });\n\n\n return (\n <div className=\"form-group form-group--checkbox\">\n <div className=\"checkbox-label-wrapper\">\n <label htmlFor={name}>\n <input\n name={name}\n type=\"checkbox\"\n value={value}\n id={name}\n onChange={(e) => handleChange(e, field || name)}\n onBlur={handleBlur}\n className={checkboxClasses}\n checked={value}\n />\n <span className=\"checkmark\">\n <SvgIco name=\"check\" size={17} />\n </span>\n <div className=\"checkbox-label\">{ label }</div>\n </label>\n </div>\n </div>\n )\n}\n\nexport default Checkbox;\n","export const nameError = I18n.t('apps.lb_showroom.misc.scoped_form.name.invalid');\nexport const emailError = I18n.t('apps.lb_showroom.detailed.order_form.validation.wrong_email');\nexport const companyError = I18n.t('apps.lb_showroom.misc.scoped_form.company.invalid');\nexport const phoneError = I18n.t('apps.lb_showroom.misc.scoped_form.phone.invalid');\nexport const postalCodeError = I18n.t('activerecord.errors.models.postal_code.attributes.postal_code.invalid');\nexport const eanError = I18n.t('apps.lb_showroom.detailed.order_form.validation.ean_error');\nexport const vatIdError = I18n.t('apps.lb_showroom.misc.scoped_form.vat_id.invalid');\nexport const addressError = I18n.t('apps.lb_showroom.misc.scoped_form.address.invalid');\nexport const cityError = I18n.t('apps.lb_showroom.misc.scoped_form.city.invalid');\nexport const manySimilarSymbolsError = I18n.t('apps.lb_showroom.detailed.order_form.validation.too_many_similar_symbols');\nexport const atLeastOneLetterError = I18n.t('apps.lb_showroom.detailed.order_form.validation.at_least_one_letter');\nexport const atLeastEightDigitsError = I18n.t('apps.lb_showroom.detailed.order_form.validation.at_least_8_digits');\n\nexport const symbolsLimitError = (symbols_limit) => I18n.t('apps.lb_showroom.misc.scoped_form.max_symbols_limit', { symbols_limit });\nexport const requiredFieldError = (field) => I18n.t('apps.lb_showroom.detailed.order_form.validation.field_required', { field });\nexport const minNumberError = (field) => I18n.t('apps.lb_showroom.detailed.order_form.validation.min_number', { field });\n\n","import React, { useState } from 'react';\nimport classNames from 'classnames';\n\nimport { SvgIco } from \"../../Icons\";\n\nimport './index.sass';\n\n\n\nconst Input = ({ name, type, value, handleChange, handleBlur, inputClass, label, error, required, placeholder, style }) => {\n\n const [passwordVisible, setPasswordVisibility] = useState(false);\n const inputClasses = classNames(inputClass, { 'error': error, 'filled': value || placeholder });\n const inputType = passwordVisible || !type ? 'text' : type;\n\n\n return (\n <div className=\"base-input form-group\">\n <input\n name={name}\n type={inputType}\n value={value}\n id={name}\n onChange={handleChange}\n onBlur={handleBlur}\n className={inputClasses}\n placeholder={placeholder}\n style={style}\n />\n\n { type === 'password' &&\n ( passwordVisible\n ? <SvgIco className=\"password-visibility\" name=\"visibility\" onClick={() => setPasswordVisibility(false)} size={18} />\n : <SvgIco className=\"password-visibility\" name=\"visibility_off\" onClick={() => setPasswordVisibility(true)} size={18} />\n )\n }\n\n <span className={`floating-label ${(value || placeholder) && 'active'}`}>\n { label }{ required && '*' }\n </span>\n\n { error && <div className=\"error-tooltip\"> { error }</div> }\n </div>\n )\n};\n\n\nexport default Input;\n","import React from 'react';\n\nimport './index.sass';\n\n\nconst RadioButtons = ({ options,\n name,\n handleChange,\n wrapperClass,\n activeClass,\n }) => {\n return (\n <div className={`radio-buttons ${wrapperClass || ''}`}>\n {options.map((option) => (\n <div\n className={`radio-buttons__button-wrapper${ option.checked ? ' checked' : '' }`}\n key={`${name}${option.value}`}\n >\n <label\n className={`radio-buttons__label${ option.checked && activeClass ? ` ${activeClass}` : '' }`}\n htmlFor={`${name}-${option.value}`}\n >\n <input\n type=\"radio\"\n value={option.value}\n name={name}\n id={`${name}-${option.value}`}\n checked={option.checked}\n onChange={() => handleChange(option.value)}\n />\n { option.label }\n </label>\n\n <div className=\"radio-buttons__icon\">\n <span />\n </div>\n </div>\n ))}\n </div>\n );\n};\n\nexport default RadioButtons;\n","import React, { useEffect, useState, useRef } from 'react';\nimport Select, { components } from 'react-select';\nimport 'react-dropdown/style.css';\n\nimport { SvgIco } from '../../Icons';\n\nimport './index.sass';\n\n\n\nconst SearchableDropdown = ({ options, handleChange, value, name, wrapperClass, required, disabled, error, placeholder, classNamePrefix }) => {\n\n const [isOpen, setIsOpen] = useState(false);\n const dropdownContainer = useRef();\n const selectedOption = value && options.length ? options.filter(option => option.value === value)[0] : null;\n\n\n useEffect(() => {\n const container = dropdownContainer.current;\n const closeDropdown = (e) => !container.contains(e.target) && setIsOpen(false);\n\n isOpen\n ? window.addEventListener('click', closeDropdown)\n : window.removeEventListener('click', closeDropdown);\n }, [isOpen]);\n\n\n const DropdownIndicator = props => {\n return (\n <components.DropdownIndicator {...props}>\n <SvgIco className=\"search-icon\" name=\"search\" size={24} />\n </components.DropdownIndicator>\n );\n };\n\n\n return (\n <div className={`searchable-dropdown ${wrapperClass || ''}`} ref={dropdownContainer}>\n\n <div className={`searchable-dropdown__trigger-area${disabled ? ' disabled' : ''}${ error ? ' error' : '' }`}\n onClick={() => !disabled && setIsOpen(prevState => !prevState)}>\n\n <div className={`searchable-dropdown__trigger-label${!value ? ' placeholder' : ''}`}>\n { selectedOption ? selectedOption.label : placeholder || I18n.t('helpers.select.prompt') }\n </div>\n\n { isOpen\n ? <SvgIco name=\"expand-less\" size={24} />\n : <SvgIco name=\"expand-more\" size={24} />\n }\n\n </div>\n\n { error && <div className=\"error-tooltip\">{ error }</div> }\n\n <Select\n isSearchable\n components={{ DropdownIndicator }}\n options={options}\n className={`${classNamePrefix}${!isOpen ? ' hidden' : ''}`}\n menuIsOpen={true}\n onSelect={() => setIsOpen(false)}\n autoFocus={true}\n isFocused={true}\n value={{ value }}\n name={name}\n styles={customStyles}\n classNamePrefix={classNamePrefix}\n noOptionsMessage={() => I18n.t('searches.show.no_results')}\n onChange={(option) => {\n setIsOpen(false)\n handleChange(option.value, name)\n }}\n theme={theme => ({\n ...theme,\n colors: {\n ...theme.colors,\n primary25: '#F6F6F6',\n primary: '#F6F6F6',\n },\n })}\n />\n\n { required && <span className=\"required-icon\">*</span> }\n </div>\n\n )\n}\n\nexport default SearchableDropdown;\n\n\nconst customStyles = {\n indicatorContainer: (provided) => ({\n ...provided,\n color: '#E0E2E2',\n ['&:hover']: () => ({\n color: '#E0E2E2',\n })\n }),\n option: (provided, state) => ({\n ...provided,\n lineHeight: '20px',\n padding: '10px 16px',\n display: 'flex',\n alignItems: 'center',\n color: 'black',\n borderRadius: '2px',\n cursor: 'pointer',\n }),\n placeholder: () => ({\n display: 'none',\n }),\n control: () => ({\n minHeight: '32px',\n maxHeight: '32px',\n background: 'white',\n border: '1px solid #E0E2E2',\n borderRadius: '4px',\n margin: '16px 16px 10px',\n display: 'flex',\n }),\n input: () => ({\n height: '30px',\n display: 'flex',\n alignItems: 'center',\n paddingBottom: '4px',\n paddingLeft: '5px',\n marginLeft: '-3px',\n ['input']: () => ({\n width: '100%',\n })\n }),\n menu: () => ({\n margin: 0,\n maxHeight: '500px',\n overflow: 'hidden',\n background: 'white',\n paddingTop: '0px',\n fontFamily: 'MuseoSans, Helvetica, Arial, sans-serif',\n }),\n menuList: (provided) => ({\n ...provided,\n maxHeight: '208px',\n }),\n singleValue: () => ({\n top: '-2px',\n position: 'relative',\n }),\n container: (provided) => ({\n ...provided,\n border: '1px solid #E0E2E2',\n paddingTop: '10px',\n borderRadius: '4px',\n position: 'absolute',\n width: 'calc(100% - 16px)',\n zIndex: 1,\n background: 'white',\n }),\n indicatorSeparator: () => ({\n display: 'none',\n }),\n};\n","import Yup from 'yup';\nimport postalCodes from 'postal-codes-js';\n\nimport { validationPatterns } from '../../../utils/validationPatterns';\nimport SignUp from '../../../utils/SignUp';\nimport { symbolsLimitError, requiredFieldError, minNumberError } from './ErrorMessages';\nimport {\n companyError,\n manySimilarSymbolsError,\n atLeastOneLetterError,\n eanError,\n vatIdError,\n addressError,\n postalCodeError,\n cityError,\n nameError,\n emailError,\n phoneError,\n atLeastEightDigitsError,\n} from './ErrorMessages';\n\nconst {\n companyI18n,\n vat_idI18n,\n line_1I18n,\n postal_codeI18n,\n cityI18n,\n nameI18n,\n emailI18n,\n phoneI18n,\n passwordI18n,\n eanI18n,\n } = SignUp.getI18nAttrNames();\n\n\nexport const companyValidation =\n Yup.string()\n .matches(validationPatterns.symbolsLimit, symbolsLimitError(254))\n .matches(validationPatterns.company, companyError)\n .matches(validationPatterns.specialCharacktersNotMoreThan, manySimilarSymbolsError)\n .matches(validationPatterns.atLeastOneLetter, atLeastOneLetterError)\n .required(requiredFieldError(companyI18n));\n\n\nexport const companyValidationNotRequired =\n Yup.string()\n .matches(validationPatterns.symbolsLimit, symbolsLimitError(254))\n .matches(validationPatterns.company, companyError)\n .matches(validationPatterns.specialCharacktersNotMoreThan, manySimilarSymbolsError)\n .matches(validationPatterns.atLeastOneLetter, atLeastOneLetterError);\n\n\nexport const vatIdValidation =\n Yup.string()\n .matches(validationPatterns.symbolsLimit, symbolsLimitError(254))\n .matches(validationPatterns.company, vatIdError)\n .test('isRequired', requiredFieldError(vat_idI18n), function(value) {\n const { path, createError } = this;\n\n return this.parent.country_alpha2 !== 'dk' || value || createError({ path, message: requiredFieldError(vat_idI18n) });\n });\n\n\nexport const eanValidation =\n Yup.string()\n .matches(validationPatterns.symbolsLimit, symbolsLimitError(254))\n .matches(validationPatterns.ean, eanError);\n\n\nexport const eanValidationRequired =\n Yup.string()\n .matches(validationPatterns.symbolsLimit, symbolsLimitError(254))\n .matches(validationPatterns.ean, eanError)\n .required(requiredFieldError(eanI18n));\n\n\nexport const addressValidation =\n Yup.string()\n .matches(validationPatterns.symbolsLimit, symbolsLimitError(254))\n .matches(validationPatterns.company, addressError)\n .matches(validationPatterns.specialCharacktersNotMoreThan, manySimilarSymbolsError)\n .matches(validationPatterns.atLeastOneLetter, atLeastOneLetterError)\n .required(requiredFieldError(line_1I18n));\n\n\nexport const postalCodeValidation =\n Yup.string()\n .test('isPostalCode', postalCodeError, function(value) {\n const { path, createError } = this;\n const codeIsValid = postalCodes.validate(this.parent.countryAlpha2, value);\n\n return codeIsValid === true || !value || createError({ path, message: postalCodeError });\n })\n .required(requiredFieldError(postal_codeI18n));\n\n\nexport const postalCodeValidationProvider =\n Yup.string()\n .required(requiredFieldError(postal_codeI18n));\n\n\nexport const cityValidation =\n Yup.string()\n .matches(validationPatterns.symbolsLimit, symbolsLimitError(254))\n .matches(validationPatterns.name, cityError)\n .matches(validationPatterns.specialCharacktersNotMoreThan, manySimilarSymbolsError)\n .matches(validationPatterns.atLeastOneLetter, atLeastOneLetterError)\n .required(requiredFieldError(cityI18n));\n\n\nexport const nameValidation =\n Yup.string()\n .matches(validationPatterns.symbolsLimit, symbolsLimitError(254))\n .matches(validationPatterns.name, nameError)\n .matches(validationPatterns.specialCharacktersNotMoreThan, manySimilarSymbolsError)\n .matches(validationPatterns.atLeastOneLetter, atLeastOneLetterError)\n .required(requiredFieldError(nameI18n));\n\n\nexport const emailValidation =\n Yup.string()\n .matches(validationPatterns.symbolsEmailLimit, symbolsLimitError(100))\n .email(emailError)\n .required(requiredFieldError(emailI18n));\n\n\nexport const phoneValidation =\n Yup.string()\n .matches(validationPatterns.symbolsLimit, symbolsLimitError(254))\n .matches(validationPatterns.phone, phoneError)\n .matches(validationPatterns.phoneSpecialCharactersNotMoreThan, manySimilarSymbolsError)\n .test('minDigitsValidation', atLeastEightDigitsError, function(value) {\n const { path, createError } = this;\n const phoneIsValid = value && value.replace(/[+\\-\\s()]/g, '').length >= 8;\n\n return phoneIsValid || !value || createError({ path, message: atLeastEightDigitsError });\n })\n .required(requiredFieldError(phoneI18n));\n\n\nexport const passwordValidation =\n Yup.string()\n .matches(validationPatterns.symbolsLimit, symbolsLimitError(254))\n .min(6, minNumberError(passwordI18n))\n .required(requiredFieldError(passwordI18n));\n\n\nexport const passwordConfirmationValidation =\n Yup.string()\n .matches(validationPatterns.symbolsLimit, symbolsLimitError(254))\n .required(requiredFieldError(I18n.t(\"activerecord.attributes.contact.password_confirmation\")))\n .test('passwords-match', I18n.t(\"generic.passwords_must_match\"), function(value){\n return this.parent.password === value\n });\n\n\nexport const confirmPasswordValidation = Yup.string().oneOf([Yup.ref('password'), null], 'Passwords must match');\n\nexport const checkboxNotRequired = Yup.boolean();\n\n","import { useEffect } from 'react';\nimport { withRouter } from 'react-router-dom';\n\nfunction ScrollToTop({ history }) {\n useEffect(() => {\n const unlisten = history.listen(() => {\n window.scrollTo(0, 0);\n });\n return () => {\n unlisten();\n }\n }, []);\n\n return (null);\n}\n\nexport default withRouter(ScrollToTop);","//Stop error resizeObserver\n\nexport const preventResizeObserverError = () => {\n const debounce = (callback, delay) => {\n let tid\n return function(...args) {\n // eslint-disable-next-line no-restricted-globals\n const ctx = self\n tid && clearTimeout(tid)\n tid = setTimeout(() => {\n callback.apply(ctx, args)\n }, delay)\n }\n }\n\n const _ = window.ResizeObserver\n window.ResizeObserver = class ResizeObserver extends _ {\n constructor(callback) {\n callback = debounce(callback, 20)\n super(callback)\n }\n }\n};\n","var map = {\n\t\"./ckb.js\": 50555,\n\t\"./da.js\": 10111,\n\t\"./de.js\": 64821,\n\t\"./en.js\": 4225,\n\t\"./es.js\": 2271,\n\t\"./fr.js\": 86600,\n\t\"./he.js\": 25242,\n\t\"./index.js\": 66483,\n\t\"./it.js\": 32670,\n\t\"./ja.js\": 85176,\n\t\"./ko.js\": 35773,\n\t\"./lv.js\": 72884,\n\t\"./nl.js\": 63768,\n\t\"./pl.js\": 21811,\n\t\"./pt_br.js\": 81779,\n\t\"./ro.js\": 9495,\n\t\"./ru.js\": 86253,\n\t\"./se.js\": 69850,\n\t\"./ua.js\": 26117,\n\t\"./ur.js\": 74769,\n\t\"./zh_cn.js\": 87930\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 3829;"],"names":["BaseMap","withScriptjs","withGoogleMap","props","React","GoogleMap","defaultZoom","defaultCenter","coordinates","onLoaded","gm","document","querySelector","classList","remove","options","gestureHandling","fullscreenControl","isFullscreenMobile","isGalleryMobileComponent","mapTypeControl","streetViewControl","isMobile","styles","mapStyles","className","concat","orientationHorizontalMobile","I18n","t","onClick","handleFullscreenMobile","SvgIco","name","size","Marker","icon","url","mapPin","scaledSize","width","height","position","markers","Map","_Component","_inherits","_super","_createSuper","_this","_classCallCheck","_len","arguments","length","args","Array","_key","call","apply","_defineProperty","_assertThisInitialized","setState","state","_createClass","key","value","this","isGalleryComponent","_this$props","latitude","longitude","googleApiKey","oldVariant","_this$state","coordinatesObj","lat","lng","containerClass","googleMapURL","loadingElement","style","containerElement","mapElement","isTablet","Component","_ref","showDeleteButton","_useState","useState","_useState2","_slicedToArray","sessions","setSessions","_useMutation","useQuery","GET_SERVER_SIDE_SESSIONS","onCompleted","data","serverSideSessions","getServerSideSessions","useMutation","DELETE_SERVER_SIDE_SESSION","update","cache","result","refetchQueries","_useMutation2","deleteServerSideSession","_useMutation2$","currentSession","loading","error","find","session","isCurrent","marginTop","browserName","osName","osVersion","Date","createdAt","toLocaleTimeString","hour","minute","remoteIp","city","country","map","id","variables","input","Number","catch","console","log","partnerBadgeUrl","qualityScore","siteKey","alt","src","PartnerBadgeIconDk","PartnerBadgeIcon","ScoreActionTooltip","filled","providerPartner","score","label","href","target","children","client","ApolloClient","link","HttpLink","credentials","InMemoryCache","addTypename","typePolicies","Query","fields","location","merge","VALIDATE_LOCATION_FIELDS","gql","_templateObject","_taggedTemplateLiteral","ADD_LOCATION","_templateObject2","UPDATE_LOCATION","_templateObject3","ACTIVATE_LOCATION","_templateObject4","COPY_LOCATION","_templateObject5","DEACTIVATE_LOCATION","_templateObject6","DEACTIVATE_LOCATION_AT_THE_MONTH_END","_templateObject7","MARK_LOCATION_AS_RENTED_OUT","_templateObject8","REPORT_DEAL","_templateObject9","ACTIVATE_ENQUIRY","_templateObject10","GIVE_UP_ENQUIRY","_templateObject11","ADD_CLIENT_RELATION","_templateObject12","REJECT_PROVIDER_DEAL","_templateObject13","ADD_PAID_SERVICE_ORDER","_templateObject14","_templateObject15","ADD_INCOMPLETE_DEAL_NOTIFICATION","_templateObject16","RESET_NEW_CLIENTS_COUNT","_templateObject17","DELETE_CONTACT","_templateObject18","DELETE_CONTACT_FOREVER","_templateObject19","GET_CONTACTS","GET_LOCATIONS_OPTIONS_LIST","GET_LOCATIONS_XLS_TOKEN","GET_ORDERS_XLS_TOKEN","GET_STATISTIC_FILE","GET_LOCATIONS","GET_LOCATIONS_STATISTIC","GET_ORDERS","GET_ORDER","GET_CLIENT_INFO","GET_CLIENT_ORDERS","GET_CLIENT_ENQUIRIES","GET_PROVINCES","GET_POSTAL_DISTRICTS","GET_LOCATION_INFO","GET_LOCATION_VISUALS","GET_EXTRA_LEAD_PREVIEW","GET_LOCATION_VALUES","ADD_NEW_CONTACT","UPDATE_CONTACT","_templateObject20","GET_DELETED_CONTACTS","_templateObject21","ACTIVATE_DELETED_CONTACT","_templateObject22","HIDE_DELETED_CONTACT","_templateObject23","UPDATE_PROVIDER","_templateObject24","GET_PROVIDER","_templateObject25","UPDATE_CLIENT_INFO","_templateObject26","GET_CLIENT_NOTES","_templateObject27","GET_LOCATION_NOTES","_templateObject28","ADD_CLIENT_NOTE","_templateObject29","ADD_LOCATION_NOTE","_templateObject30","UPDATE_CLIENT_NOTE","_templateObject31","DELETE_CLIENT_NOTE","_templateObject32","GET_STATISTICS","_templateObject33","GET_LOCATION_STATISTICS","_templateObject34","GET_STATISTICS_TOTAL","_templateObject35","GET_CONTACT_INFO","_templateObject36","GET_LOCATIONS_REPORT_DEAL","_templateObject37","GET_LOCATION_REPORT_DEAL","_templateObject38","GET_CURRENCY","_templateObject39","GET_ORDERS_REPORT_DEAL","_templateObject40","GET_CONTACT_LOCATIONS","_templateObject41","GET_TOKENIZED_FILE","_templateObject42","GET_EXTRA_LEAD_LOCATION_ID","_templateObject43","GET_LOCATION_COPY_JOB","_templateObject44","GET_UNRESOLVED_PROVIDER_DEALS","_templateObject45","_templateObject46","GET_STRIPE_INVOICES","_templateObject47","GET_STRIPE_INTENT","_templateObject48","GENERATE_LOCATION_DESCRIPTION","_templateObject49","GENERATE_LOCATION_TITLE","_templateObject50","GENERATE_NEW_LOCATION_DESCRIPTION","_templateObject51","GENERATE_NEW_LOCATION_TITLE","_templateObject52","AnonymousBannerImg","ClientInfo","currentLocale","isNumber","locale","resourceNotFoundError","currentId","useParams","clientInfo","setClientInfo","_useState3","_useState4","clientOrders","setClientOrders","_useState5","_useState6","totalCount","setTotalCount","_useState7","_useState8","initialLoad","setInitialLoad","_useState9","_useState10","showClientInfoLoading","setShowClientInfoLoading","_useState11","infoPopupMessage","infoMessagePopupIsOpen","infoPopupMessageError","_useState12","infoPopUp","setInfoPopUp","_useState13","page","perPage","orderDirection","orderBy","clientId","_useState14","filters","setFilters","_useQuery","errorPolicy","clientInfoLoading","dataClientInfo","refetchClientInfo","refetch","_useQuery2","dataClientOrders","clientOrdersLoading","updateContact","useEffect","orders","clientEnquiries","handleFilters","newFilters","prevFilters","_objectSpread","columns","LatestOrdersColumns","field","clientOrOrderEmail","Page404","InfoMessagePopup","handleClose","message","customClass","visible","email","ClientsTable","hiddenColumnsList","refetchOrders","setShowLoading","setOrders","disableSortBy","hideBottomFilters","noPagination","Table","footerLoading","setPage","setPerPage","currentPage","perPageOptions","showFooter","noScrollToTop","ContactInfoForm","contactInfo","updateContactInfo","values","companyName","phoneNumber","personName","onError","Notes","orderNotes","defaultProps","ContactInfoFormWrapper","handleSubmit","handleChange","touched","handleBlur","errors","onSubmit","noValidate","Input","required","type","withFormik","enableReinitialize","mapPropsToValues","_ref2","clientOrOrderCompanyName","clientOrOrderPersonName","clientOrOrderPhone","validationSchema","Yup","shape","companyValidation","nameValidation","emailValidation","phoneValidation","bag","displayName","modal","notesWrapperRef","useRef","note","setNotes","editNoteId","setEditNoteId","deleteNoteId","setDeleteNoteId","clientNotes","setClientNotes","deleteModalIsOpen","setDeleteModalIsOpen","notes","locationId","_ref3","addNote","updateClientNote","updateNote","notesWrapper","current","scrollTop","targetTop","getBoundingClientRect","top","targetCoords","Math","floor","window","scrollY","scroll","scrollToTextarea","ref","DeleteNoteModal","noteId","showModal","placeholder","onChange","e","updateNotesAfterRefetch","updateAfterEditNote","updateInput","parseInt","noteItem","author","createdAtFormatted","openDeleteModal","ClientsColumns","activeFilter","stateChangeLoadingId","setOrderBy","openNotesModal","openExtraLeadModal","handleEnquiryStatus","Header","TableFilterHeader","headline","handleOrderBy","isActive","accessor","Cell","Link","to","cell","row","original","_data$","maxWidth","minWidth","NotesImg","_data$cell$row$origin","enquiries","is_extra_lead","InfoIconTooltip","tooltip","sticky","_data$cell$row$origin2","enquiry","already_known","item","location_id","enquiry_id","address","Fragment","ReactTooltip","place","effect","border","borderColor","_data$cell$row$origin3","isAlreadyKnown","enquiry_state","Loader","left","available_enquiry_states","enquiryStatesOptions","Object","keys","isLoading","CellDropdown","withCallback","matchPrevColumn","onShow","handleHorizontalScroll","currencySymbolFormatter","history","useHistory","setClientId","setInfoPopupMessage","setStateChangeLoadingId","showNoteModal","setShowNoteModal","extraLeadModalIsOpen","setExtraLeadModalIsOpen","extraLeadOrderId","setExtraLeadOrderId","setInfoMessagePopupIsOpen","_useState15","_useState16","alreadyKnownModalIsOpen","setAlreadyKnownModalIsOpen","_useState17","_useState18","setInfoPopupMessageError","_useState19","_useState20","hiddenColumns","setHiddenColumns","leadStateChangeCallback","activateEnquiry","_useMutation3","giveUpEnquiry","showCommentColumn","some","order","comment","replaceAll","includes","prevColumns","_toConsumableArray","newHiddenColumns","splice","indexOf","handleStateChangeError","closeModal","then","ordersColumns","orderId","status","push","pathname","search","AlreadyKnownLeadStatusModal","callbackFunction","ExtraOrderModal","extraLeadModalOpen","handleCloseExtraLeadModal","NotesModal","asPreview","enquiryStates","newClientsCount","providerId","resetNewClients","queryValue","setQueryValue","locationsSearchValue","setLocationsSearchValue","showLoading","enquiryState","query","showOnlyContactOrders","_useLazyQuery","useLazyQuery","_useLazyQuery2","getLocationsOptionsList","locationsOptionsData","ordersLoading","resetNewClientsCount","fill","useDebouncedEffect","alreadyKnown","lost","resolved","unresolved","statusOptions","radioOptions","checked","locationsList","locations","locationsSearchOptions","areaFrom","areaUnit","NetworkError","maxLength","SearchableDropdown","classNamePrefix","BasicDropdown","wrapperClass","RadioButtons","TokenizedFileModalLink","dataName","linkLabel","xls","ContactsTable","dataTable","deletedTotalCount","contactsLoading","contactsTotalCount","showDeletedContacts","changeActiveTab","setShowModal","showDeleteModal","setShowDeleteModal","showDeleteContactForeverModal","setShowDeleteContactForeverModal","modalData","setDataForModal","show","color","showNotification","setSnowNotification","addNewContact","_useMutation5","activeDeletedContact","editModal","showNotifications","successMessage","handleCloseNotification","DeletedContactsColumns","ContactsColumns","justifyContent","DeleteContactModal","callback","DeleteContactForeverModal","CreateNewContactModal","submitForm","password","passwordConfirmation","successEdit","addContact","successCreate","editContactData","CreateNewContactWrapper","CreateNewContact","createNewContact","when","is","passwordValidation","passwordConfirmationValidation","ContactsPage","contacts","setContactsList","setContactsTotalCount","setDeletedTotalCount","deletedContactsList","setDeletedContactsList","setShowDeletedContacts","onlyDeleted","deletedContactsFilters","setDeletedContactFilters","contactsError","deletedContactsError","deletedContacts","deletedContactsLoading","_objectDestructuringEmpty","ErrorImg","clasName","dangerouslySetInnerHTML","__html","footer","providerInfo","currentContactInfo","addressLine","copyrightUrl","privacyUrl","supportUrl","sslLink","postalCode","contactInfoPhone","contactInfoMail","logoUrl","hotline","showCvrCode","cvrCode","root","socialLinks","providerLine1","line1","providerLine2","line2","providerCity","providerVatId","vatId","providerEan","ean","providerPhone","currentContactName","currentPhoneNumber","currentContactEmail","SslSecureLogo","getFullYear","require","content","parseMd","handleBackgroundColor","InvoicesColumns","openPaymentModal","background","parseFloat","toFixed","stripeInvoicesApiKey","activeInvoiceId","setActiveInvoiceId","invoices","setInvoices","paymentModalIsOpen","setPaymentModalIsOpen","fetchPolicy","stripeInvoices","getStripedInvoices","closePaymentModal","extraClass","PaymentModal","handlePaymentSuccess","updatedInvoices","index","findIndex","invoice","invoiceId","SkeletonLoader","count","elem","PulsingLoader","FileLoader","EllipsisLoader","labelCol","tooltipClass","tooltipChildren","labelTooltip","labelClass","searchable","disabled","errorMessage","marginRight","inputWrapperClass","_useContext","useContext","Context","handleInputChange","BasicInput","htmlTooltip","activeClass","activeSection","float","hideSecondField","formGroupClass","requiredFrom","requiredTo","units","unitsPosition","useOriginName","handleNumberInputChange","nameFrom","nameTo","valueFrom","valueTo","errorFrom","errorTo","unitsClasses","classNames","hideError","toLowerCase","handleNext","isSubmit","handleBack","requiredFieldsValid","addLocationLoading","editPage","editedValuesFields","handleEdit","validateFields","validateLocationLoading","updateLocationValuesLoading","nextButtonClasses","updateButtonClasses","lastAvailableStep","showFacts","stepsData","stepsRefs","useRouteMatch","currentStepRef","validateFunction","validateStep","scoreIconActive","step","price","facilities","energyRating","description","floorPlan","photos","prospectus","video","virtualTour","ScoreIcon","stepLink","ActionIcon","showAsLink","passed","wrapperClasses","MutableLink","handleClick","linkClass","starRating","showScoreIcon","setContacts","currentContactId","handleCheckboxesSelect","updateValues","existingPrimaryContact","subscriberContactIds","getContacts","primaryContactOptions","contact","DropdownGroup","marginBottom","Checkbox","NavigationButtons","Description","forwardRef","defaultLocale","goEditUrl","handleFormSubmit","prepareData","scrollToTarget","setErrors","showLocationInternalDetailsText","translationsLocales","updateLocation","filterObjects","fromEntries","entries","filter","internalIdentifier","providerWebsiteLink","countryAlpha2","localeObj","countryLocale","errorMessagePopupIsOpen","setErrorMessagePopupIsOpen","descriptionLanguage","setDescriptionLanguage","setDescriptionsList","title","setTitlesList","descriptionCounter","setDescriptionCounter","setCallback","undefined","controlDescription","setControlDescription","editor","requiredValuesFilled","useMemo","descriptionFilled","titleFilled","currentDescriptionName","currentHeadlineName","bodyRequiredMessage","titleRequiredMessage","languageOptions","useImperativeHandle","nextStep","handleCounter","setTimeout","handleControlProp","handleErrors","prevValues","locationChatGptDescription","text","generateLocationDescription","_useLazyQuery2$","generateDescriptionError","generatingDescription","_useLazyQuery3","locationChatGptTitle","_useLazyQuery4","generateLocationTitle","_useLazyQuery4$","generateTitleError","generatingTitle","_useLazyQuery5","newLocationChatGptDescription","_useLazyQuery6","generateNewLocationDescription","_useLazyQuery6$","generateNewDescriptionError","generatingNewLocationDescription","_useLazyQuery7","newLocationChatGptTitle","_useLazyQuery8","generateNewLocationTitle","_useLazyQuery8$","generateNewTitleError","generatingNewLocationTitle","replace","updatedErrors","handleSave","currentTitleFilled","currentDescriptionFilled","fieldsError","getElementById","validateRequiredFields","updateDescription","handleUnsavedChanges","comparatorError","objectName","prevValue","currentValue","currentErrors","errorField","handleModal","save","editedValues","attributes","generatingDescriptionAndTitle","generateDescriptionButton","translate","Truncate","lines","ellipsis","updatedDescriptionsList","updatedTitlesList","handleDelete","InputGroup","split","SunEditor","getSunEditorInstance","sunEditor","setContents","currentTextLength","getText","formattedText","lang","languageId","handleEditorLanguage","resizingBar","onInput","pasteTagsWhitelist","historyStackDelayTime","setOptions","buttonList","GoEditImg","section","anonymous","minHeight","BaseModal","confirmButtonText","modalIsOpen","onConfirmClick","onRejectClick","rejectButtonText","textContent","combinedKinds","currentData","formattedCurrency","initialData","mainKind","selectedKinds","updateSelectedKinds","area","yearlyPricePerM2","kind","capitalize","charAt","toUpperCase","slice","combinedKindsWithIndex","newCurrentKinds","currentKindsIndex","combinedKind","selectedKindsIndex","_combinedKindsWithInd","newSelectedKinds","combinedLocationsAttributes","currentKind","hasError","isMainKind","kindsOptions","selectedKind","_combinedKindsWithInd3","destroyKindIndex","_destroy","option","newKind","_combinedKindsWithInd2","RangeInputs","functionAttr","currencyList","defaultCurrencyId","leaseKinds","leasePrices","parkingTypes","saleKinds","saleSections","showSecondaryKindsMessage","secondaryKindsMapping","suitableForKindsMapping","auctionNumber","currencyId","dateOfAuction","enableCombinedLocations","isRentIncludeOperationalCost","parkingType","secondaryKinds","suitableForKinds","annualPricesOpen","setAnnualPricesOpen","annualPricesM2Open","setAnnualPricesM2Open","combinedKindsErrors","setCombinedKindsErrors","initialCombinedKinds","setInitialCombinedKinds","secondaryKindModalIsOpen","setSecondaryKindModalIsOpen","visibleCombinedKinds","setVisibleCombinedKinds","currencies","JSON","parse","sectionLease","locationKinds","filterLocationKinds","saleSectionsOptions","parkingTypesOptions","currencyOptions","currency","currentCurrency","formatted","defaultSection","initialKinds","hasOwnProperty","checkCombinedKindsOrder","additionalCombinedKindsAvailable","every","attr","newLocationKind","visibleFor","updatedCombinedKinds","mainLocationKind","mainKindIndex","unshift","toCamelCase","_","letter","secondaryKindsList","_secondaryKindsMappin","suitableForKindsList","_suitableForKindsMapp","handleKindChange","handleSecondaryKindsChange","invisibleFor","addNewCombinedKind","currentKindsKindIndex","newCombinedLocationAttributes","errorsHandler","annualPricesWrapper","annualM2pricesWrapper","openAnnualPrices","contains","openAnnualM2Prices","validateCombinedLocations","handleValidate","kinds","showUptoField","areaTo","SecondaryKindsInfoModal","handleCancel","paddingBottom","RadioFormGroup","CombinedKindForm","DateTimePicker","calendarIcon","clearIcon","minDate","date","toISOString","energyRatingList","energyRatingListDk","energyCertificateLevelsList","energyRatingUrl","facilitiesList","energyCertificateLevelsObject","exemptedFromEnergyRating","facilityIds","hasEnergyCertificateLevels","isDk","energyRatingOptions","energyCertificatesOptions","certificate","handleEnergyCertificates","certificateId","certificateGroup","newCertificates","facility","center","setCenter","refMap","setMapRef","placeId","handleGeocodedResults","restrictionBounds","showPinInfoMessage","geocodeByPlaceId","results","bounds","geometry","viewport","fitBounds","onBoundsChanged","mapCenter","getCenter","onDragEnd","geocodeByLatLng","restriction","latLngBounds","strictBounds","defaultOptions","noRedraw","place_id","InfoWindow","disableAutoPan","countries","owners","setVisualsData","formWrapper","postalDistrictTooltip","provinceTooltip","setAddress","searchInputValue","setSearchInputValue","suggestNewProvince","setSuggestNewProvince","suggestNewDistrict","setSuggestNewDistrict","showOnlySuggestedProvince","setShowOnlySuggestedProvince","setShowPinInfoMessage","menuIsOpen","setMenuIsOpen","setPlaceId","setLoading","_useState21","_useState22","provincesOptions","setProvincesOptions","_useState23","_useState24","postalDistrictsOptions","setPostalDistrictsOptions","getProvinces","provincesData","getPostalDistrict","postalDistrictData","addressLine1","addressLine2","postalDistrictId","postalDistrictSuggestion","provinceId","provinceSuggestion","handleSelectCountry","province","newProvincesOptions","postalDistrict","newPostalDistrictsOptions","district","String","postalDistrictLabel","newAddress","countriesOptions","ownersOptions","owner","clearAddress","countryName","geocodeByAddress","clearErrorsList","list","locationInfo","addressComponents","address_components","streetNumberComponentIndex","component","types","countryCodeObj","res","newCountryAlpha2","short_name","inCountryBoundaries","postalCodeObj","errorsList","updatedValues","streetNumber","streetName","long_name","administrativeLevel2","locality","autocompleteInput","handleProvinceSelect","administrativeIncludesProvince","localityIncludesProvince","apiProvider","getAll","response","postal_district","blur","GooglePlacesAutocomplete","autocompletionRequest","componentRestrictions","selectProps","loadingMessage","noOptionsMessage","onInputChange","event","action","handleSearchValue","onBlur","onFocus","blurInputOnSelect","closeMenuOnSelect","inputId","inputValue","loadingIndicator","isDisabled","provided","display","control","singleValue","prevState","hide","paddingLeft","borderRadius","AnonymousBanner","mapLanguage","region","MapLoader","MapWrapper","FileInput","filesList","draggable","draggableIndex","infoMessagePopupActive","pdfFileLoading","pdfFileDeleting","defaultFileList","newList","imgUrl","thumbnailW120","files","filesToDownload","newFilesList","isPdf","refetchValues","_i","_Object$entries","_Object$entries$_i","random","newFile","_loop","_Object$entries2$_i","_Object$entries2","_i2","formData","FormData","append","formAuthToken","apiOptions","method","headers","withOptions","newFileIndex","file","currentFile","assetInfo","assets_info","errorsPresent","asset","thumbnail","handleReorder","targetIndex","dataset","add","preventDefault","dropzoneIndex","reorderedFilesList","_this$props2","put","fileId","_this$props3","authenticity_token","removableFileIndex","removeFromDatabase","removeFileFromState","removableFile","_this$props4","currentFileIndex","rotation_angle","rotationAngle","handleDefaultFileList","prevProps","snapshot","_this$props5","currentFilesCount","prevData","_this2","_this$props6","fileTypes","linkFile","showFileLink","onDrop","handleDrop","onDragEnter","handleDragEnter","onDragStart","handleDragStart","handleDragEnd","backgroundImage","transform","opacity","handleRotate","FileDrop","htmlFor","accept","multiple","showLeftArrow","setShowLeftArrow","showRightArrow","setShowRightArrow","setActiveSection","isScrollable","setIsScrollable","initialization","setInitialization","refsList","navigationLinksList","photosRef","floorPlansRef","interiorDesignRef","virtualTourRef","vimeoRef","prospectusRef","handleActiveSectionChange","addEventListener","removeEventListener","handleArrowAppearance","navigationListFirstChild","firstChild","round","lastChild","right","targetName","targetSection","targetRightCoodrs","targetLeftCoords","navigationListRightCoords","navigationListLeftCoords","scrollToRightTarget","scrollToLeftTarget","leftBoundary","rightBoundary","navigationListLeftBorder","navigationListRightBorder","scrollLeft","targetLeftScroll","showNavigationMenu","classes","offsetWidth","KeyboardArrowLeftRounded","KeyboardArrowRightRounded","additionalClass","buyNowLink","readMoreLink","bannerClass","bannerContent","bannerHeadline","inputHeadline","inputLabel","inputType","qualityScoreName","showBanner","showFileAsLink","singleFileInput","isFileInput","InputBanner","interval","setShowNavigationMenu","proposalFormIsOpen","setProposalFormIsOpen","prospectusError","setProspectusError","prospectusIsLoading","setProspectusIsLoading","prospectusModalIsOpen","setProspectusModalIsOpen","proposalFormTrigger","setProposalFormTrigger","generatedProspectusUrl","setGeneratedProspectusUrl","patternedProspectusEnabled","refetchVisualValues","visualsData","floorPlans","prospectusPath","handleShowNavigationMenu","onScrollEnd","endOfScroll","showNavigation","handleActiveAreaSection","topOffset","offsetHeight","sectionsList","querySelectorAll","viewPortBottomBorder","innerHeight","forEach","node","nodeName","nodeTop","nodeBottom","bottom","pageYOffset","BuyNowFormButton","triggerSection","buttonText","openProposalForm","GenerateProspectusButton","generateProspectus","post","pdf_url","status_url","setInterval","clearInterval","VisualsProposalsForm","locationAddress","trigger","FixedNavigationBar","targetTopCoords","headerHeight","windowHeight","VisualsBlock","GenerateProspectusModal","setLastAvailableStep","currentActiveSection","setShowNotFoundPage","Location","FactsAndFacilities","Economy","economy","Contacts","Visuals","renderStep","createContext","qualityScoreLink","siteName","_useParams","locationSection","match","isBuilt","firstKind","employeesCountVisible","yearlyRentPerM2AmountFlexible","setValues","facts","visuals","setStepsData","setEditedValues","showStatusBanner","setStatusBanner","showEditPage","setShowEditPage","showNotFoundPage","showQualityScore","setShowQualityScore","_useState25","_useState26","getLocationVisuals","_data$addLocation","addLocation","setStepPassed","_useMutation4","_useMutation6","validateLocation","getLocationValues","initialLocationValues","getLocations","category","getValues","behavior","scoreCalculator","newData","yearlyRentPerM2WithCentsFrom","yearlyRentPerM2WithCentsTo","requiredFormGroups","from","group","errorsLength","nextStepUrl","dataValues","newErrors","listError","attrName","errorMessages","filteredErrors","_ref5","asNumber","currentValues","newValues","attrs","pageNotFound","showQualityScoreBanner","totalScore","Provider","Switch","Route","path","QualityScoreBanner","stickyTop","ProgressBar","StepsWrapper","vimeoId","assetsList","available","showAssetsBlock","activeTab","setActiveTab","Tab","DetailedViewSet","Gallery","imgList","Carousel","infiniteLoop","renderArrowPrev","clickHandler","renderArrowNext","showIndicators","showStatus","showThumbs","statusFormatter","total","swipeable","thumbnailW600","VideoBlock","_ref4","allowFullScreen","frameBorder","mozallowfullscreen","webkitallowfullscreen","MapBlock","showContent","AnonymousPlaceholder","providerAdvertisingStrategy","providerApproved","providerOnDealStrategy","qualityScorePageLink","tooltipPopupRef","setLocationInfo","duplicateModalIsOpen","setDuplicateModalIsOpen","rentedOutModalIsOpen","setRentedOutModalIsOpen","locationActivationLoading","setLocationActivationLoading","locationState","setLocationState","showPartnerBadgeBanner","setShowPartnerBadgeBanner","_data$activateLocatio","activateLocation","locationStateChangeCallback","enquiriesCountInteger","explainLocationIncomplete","floorPlansCount","infoMessage","initialState","isComplete","locationShownDatapoints","locationUrl","photosCount","prospectusCount","sectionTranslated","stateInfo","stateTranslated","assetsProps","showYearlyPrice","showMonthlyPrice","showLocationInfo","showReportADeal","animateStatus","pricesFormatter","priceFrom","priceTo","statusWrapper","ListItem","itemData","linkInnerContent","iconSize","availableScoreLabel","infoLink","HashLink","cachedViewsChart","LocationViewsChart","scoreData","scoreChart","ScoreChart","stroke","scoreSection","hidden","visibilityQualityState","visibilityQuality","PageInfoMessage","DeactivateLocationModal","DuplicateLocationModal","RentedOutModal","AdvertisementBlock","PartnerBadgeBanner","shareIcon","FacebookShareButton","origin","facebookShare","LinkedinShareButton","linkinShare","TwitterShareButton","twitterShare","areaFormatter","one","AssetsBlock","assign","EditIcon","CopyIcon","ReportIcon","DeactivationIcon","ActivateIcon","offset","switchPeriodCallback","tickFontSize","xaxisHeight","activeDaysInChart","setActiveDaysInChart","locationDaysActive","setLocationDaysActive","today","dayCreatedAt","timeInMilliseconds","getTime","daysActive","ceil","defaultActiveDays","daysPeriods","Tooltip","dateCreated","dateLabel","viewsCount","TooltipPopup","marginLeft","daysPeriod","switchPeriod","InlineChart","daysForOnePeriod","isOneDayPeriod","setDateToLocalDateString","dateObj","toLocaleDateString","join","showAsLastPeriod","increment","setHours","dayCreatedAtTime","views","setDate","getDate","dateFrom","dateTo","i","dateToTime","dateFromTime","showDateTime","pointData","createdAtDateIsInPeriod","dotSize","locationViewsData","lineKey","tooltipLabel","xKey","LocationsColumns","stateUpdateSuccess","stateChangeCallback","handleLocationState","whiteSpace","TableHashLink","nowrap","kindTranslated","translatedSection","max","orderByFilter","orderDirectionFilter","setShowCreateLeaseButton","states","categories","isValidCategory","checkCategory","params","setLocationId","setLocationAddress","setInfoMessage","locationsData","setLocationsData","setStateUpdateSuccess","_useState27","_useState28","_useState29","_useState30","_useState31","showOnlyContactLocations","_useState32","_data$locations","locationsLoading","refetchLocations","locationInfoMessage","isLease","locationStateOptions","new","active","rentedOut","closed","locationsColumns","locationIndex","_locationsData$locati","tableHeadline","locationsEmpty","contactName","showCreateLeaseButton","AssistanceBanner","Clients","Locations","addClientRelation","ProviderModal","modalClass","ModalNetworkError","hideReject","FormMessageBlock","closeNotification","leaseWasRentedOut","setLeaseWasRentedOut","deactivationReason","setDeactivationReason","deactivateLocationNow","setDeactivateLocationNow","_data$deactivateLocat","deactivateLocation","deactivateLocationAtTheMonthEnd","deactivateLocationAtTheMonthError","deactivationOptions","deactivationTermsOptions","reason","site","handleRadioButtonsChange","hideDeletedContact","logout","deleteContact","DeactivationImg","deleteClientNote","pollInterval","setPollInterval","_data$locationCopyJob","locationCopyJob","duplicateLocationId","copyJobId","copyLocation","DuplicateImg","extraLeadInfo","setExtraLeadInfo","getExtraLeadLocationId","modalTitle","getExtraLeadInfo","extraLeadLoading","extraLeadLocationIdLoading","locationIdError","annualOperationalCostWithCentsFrom","annualOperationalCostWithCentsTo","annualRentWithCentsFrom","annualRentWithCentsTo","handleRangeUnits","unit","range","thumbnailW400","ImgPlaceholder","localizedNumberFormatter","GenerateProspectusImg","Modal","ariaHideApp","contentLabel","isOpen","onRequestClose","overlay","backgroundColor","overflow","zIndex","backdropFilter","pointerEvents","amount","setPaymentInProcess","stripe","useStripe","elements","useElements","setErrorMessage","handleLoading","_asyncToGenerator","_regeneratorRuntime","_callee","_context","prev","next","abrupt","confirmPayment","confirmParams","return_url","redirect","sent","paymentIntent","stop","_x","PaymentElement","stripePromise","loadStripe","setAmount","clientSecret","setClientSecret","setCurrency","paymentInProcess","_data$stripeIntent","stripeIntent","stripeInvoice","amountInCents","appearance","theme","colorBackground","colorText","rules","Elements","CheckoutForm","hideCloseBtn","scrollable","scrollBehavior","qualityState","setComment","validComment","setValidComment","clientEmail","rejectProviderDeal","changeTextArea","_data$rentedOutLocati","rentedOutLocation","RentedOutImg","dkLink","globalLink","back_url","ReportSuccessImg","GoogleReview","other","fileName","setModalIsOpen","tokenizedFileUrl","setTokenizedFileUrl","xlsFileToken","setXlsFileToken","tokenizedFile","fileUrl","getTokenizedFile","getXlsFileToken","xlsFileTokenError","xlsFileTokenLoading","getXls","token","ReportImg","showInfoPopup","setShowInfoPopup","setContactInfo","formSent","setFormSent","toggleInfoPopup","setToggleInfoPopup","photo","selectedProposals","setSelectedProposals","getContactInfo","addPaidServiceOrder","generateOptions","proposalsData","resetInfoPopup","RadioGroup","handleOptionSelect","CheckboxGroup","optionId","selected","optionIndex","handleCheckboxSelect","renderRightNav","renderLeftNav","optionsSelected","selectedOption","optionData","customDuration","toggle","toggleCallback","ImageGallery","fullscreen","infinite","items","images","showFullscreenButton","showPlayButton","showThumbnails","timer","animationClass","setAnimationClass","clearTimeout","role","hideBorder","tooltipVisible","setTooltipVisible","tooltipPopupWrapperRef","handleClickOutsideTooltip","afterHide","afterShow","handleScoreTooltip","clickable","scrollHide","contractUrl","showInvoicesLink","setShowInvoicesLink","modalIsActive","setModalIsActive","setUrl","IframeModal","lokalebasen_dk","matchoffice_generic","handleShowModal","Details","backButton","prevStep","submitHandler","schemaName","selectedLocationStatus","providerOnAdvertisingStrategy","setCurrencyList","defaultCurrency","currencyFormat","ReportSuccessModal","DetailsReportForm","DetailsReportFormWrapper","formikHandleChange","setFieldValue","isSubmited","setIsSubmited","incompleteDealSent","setIncompleteDealSent","errorsArray","addIncompleteDealNotification","areaRented","areaRentedDontKnow","numberOfDesks","occupiedAt","occupiedAtDontKnow","monthsCount","expectedEnd","expectedEndDontKnow","totalAmount","monthlyRent","totalAmountDontKnow","Dropdown","arrowClosed","arrowOpen","controlClassName","site_name","isNotDk","isDefault","providerStrategy","requiredFieldError","test","parent","ReaportDealTable","changeSearchInput","handleInput","filtersData","noneOrder","setNoneOrder","noneLocation","setNoneLocation","checkNoneRadio","firstStep","searchValue","locationQuery","orderQuery","ReportDealProgress","steps","activeStep","ReportSteps","clientPage","handleOtherClient","handleOtherLocationAddress","loadingLocations","loadingOrders","locationsPage","locationsTotalCount","ordersTotalCount","otherClient","otherLocationAddress","setClientPage","setLocationsPage","hideInternalIdentifierColumn","ReportDeal","useRouterQuery","setLocations","setOrdersList","setStep","get","setOrderQuery","setLocationQuery","setFormValues","preselectedOrder","setPreselectedOrder","preselectedLocation","setPreselectedLocation","poppedOrder","setPoppedOrder","poppedLocation","setPoppedLocation","setOrdersTotalCount","setLocationsTotalCount","_useState33","_useState34","_useState35","_useState36","_useState37","_useState38","setOtherClient","_useState39","_useState40","setOtherLocationAddress","_useState41","_useState42","_useState43","_useState44","setSelectedLocationStatus","_useState45","_useState46","_useState47","_useState48","setSteps","handleDataResponse","preselectedElem","poppedElem","setData","setPoppedElem","getLocation","loadingLocation","getOrders","getOrder","loadingOrder","reportDeal","locationKind","requestOrders","requestLocations","preselectedElemInTheList","pop","ReportDealOrders","ReportDealLocation","reportADeal","attrsGeneral","enquiryId","providerDealId","dk","virtualOffice","meetingRoom","graphQLErrors","networkError","passStep","param","newArr","noHash","defaultQualityScoreData","photos_current_count","floorPlanPresent","floor_plans_current_count","prospectusPresent","prospectus_current_count","setScore","pricePresent","maxSymbols","txt","createElement","innerHTML","descriptionLength","annualElectricityCostWithCentsFrom","annualElectricityCostWithCentsTo","annualHeatingCostWithCentsFrom","annualHeatingCostWithCentsTo","annualTotalCostWithCentsFrom","annualTotalCostWithCentsTo","annualWaterCostWithCentsFrom","annualWaterCostWithCentsTo","depositAndPrepaidRent","disposalPrice","fixedAnnualOperationalCost","hourlyRentWithCentsFrom","hourlyRentWithCentsTo","monthlyRentPerSpaceWithCentsFrom","monthlyRentPerSpaceWithCentsTo","salePrice","workstationCostPerMonthFrom","workstationCostPerMonthTo","yearlyElectricityCostPerM2WithCentsFrom","yearlyElectricityCostPerM2WithCentsTo","yearlyHeatingCostPerM2WithCentsFrom","yearlyHeatingCostPerM2WithCentsTo","yearlyOperationalCostPerM2WithCentsFrom","yearlyOperationalCostPerM2WithCentsTo","yearlyRentalIncome","yearlyWaterCostPerM2WithCentsFrom","yearlyWaterCostPerM2WithCentsTo","animation","animated","setAnimated","firstRender","setFirstRender","pieScore","visibilityState","isSticky","setIsSticky","debounce","handleScroll","banner","bannerBottom","QualityScoreInfoModal","ChangePasswordFormWrapper","passwordForm","oldPassword","ChangePasswordForm","ContactFormWrapper","ContactForm","ContactSettings","contactLocation","setContactLocation","setShowDeleteButton","pageContact","setPageContact","uploadContactPhotoPath","removeContactPhotoPath","getContactLocations","isDestroyable","contactLocations","ContactLocationsColumns","PhotoUpload","imageUrl","photoUrl","uploadPath","removeTranslation","handleRefetch","removePath","scrollTo","disableSort","gotAllData","ActiveSessions","provider","setImages","loadingImage","setLoadingImage","ImageUploading","imageList","addImage","axios","Accept","dataURLKey","onImageUpload","onImageRemoveAll","image","data_url","ProviderSettings","setProviderInfo","emailsLocale","setEmailsLocale","mainContact","setMainContact","interfaceLocale","setInterfaceLocale","contractName","emailLocales","locales","removeProviderLogoPath","showSmsOrderNotifications","updateProviderInfo","uploadProviderLogoPath","checkDk","updateProvider","formatEmailLocales","formatLocales","showChangeLanguageBlock","showEmailChangeLanguage","showInterfaceChangeLanguage","invoicingEmail","isMailSubjectIncludeInternalIdentifier","UpdateProvider","changeEmailLanguage","changeInterFaceLanguage","providerSubmit","smsOrderNotification","UpdateProviderWrapper","isEan","eanValidationRequired","addressValidation","cityValidation","postalCodeValidation","disableTooltip","linkTo","newInfoLabel","svgName","disable","NavLink","exact","activeClassName","currentPhoneName","links","localStorage","storageMenuStatus","getItem","setItem","stringify","activeSideBar","setActiveSideBar","partnerBadgePageLink","partnerLink","changeSidebar","useCallback","SideBarLink","ShowMeBannerImg","FacebookLogo","timeout","isExpanded","setIsExpanded","expandedData","setExpandedData","countClientEnquiries","countClientEnquiriesPerWeek","countExtraEnquiries","countExtraEnquiriesPerWeek","countProviderMessages","countShowcaseOrders","locationEventsContactDetailsShownCount","locationEventsProviderAdvertsShownCount","locationEventsShownCount","locationEventsShownCountPerWeek","expanded","statisticForLocation","getLocationStatistic","getLocationStatisticsByPeriod","timeFrom","timeTo","timeFromUserTimezoneOffset","getTimezoneOffset","timeToUserTimezoneOffset","StatisticColumns","statisticData","statisticDataTotal","handleExpand","Footer","textAlign","locationAreaUnit","days_in_period","daysInPeriod","paddingRight","initialDateFrom","initialDateTo","setDayFrom","setDayTo","setStatisticData","setStatisticDataTotal","statistic","editedData","statisticRowsCount","loadingTotal","statisticTotal","hideYearlyRentColumn","locationYearlyRentPerM2","hideLocationEventsColumns","showContactDetailsInFrontend","handleDate","newDate","statisticColumns","selectedIndex","dayPlaceholder","disableClock","format","maxDate","expandable","renderExpandableRow","ExpandedStatistics","iconName","el","afterOptionChange","activeOption","setActiveOption","menuTop","setMenuTop","menuLeft","setMenuLeft","wrapperHeight","setWrapperHeight","dropdown","menuStyles","handleWrapperHeight","handleClickOutside","prevColumnElement","prevColumnElementHeight","clientHeight","dropdownRef","dropdownBottomCoords","dropdownLeftCoords","Portal","handleOptionClick","EditDropDown","modalClick","clickOnDropDown","tableWrapper","_ref6","column","isSortedDesc","_ref7","locationPath","_ref8","_ref9","_ref10","handleSelect","areaLabel","handleDeleteLinkClick","activeDeleteContact","_ref11","_ref12","passPageIndex","showStickyBorder","setShowStickyBorder","tableData","tableColumns","noResults","isExpandable","table","stickyStartTarget","handleTableScroll","scrollEndTarget","_useTable","useTable","disableSortRemove","pageIndex","pageSize","sortBy","asc","useSortBy","usePagination","useSticky","getTableProps","getTableBodyProps","headerGroups","prepareRow","footerGroups","pageCount","gotoPage","setPageSize","_useTable$state","showTable","NoResultsImage","MaUTable","TableHead","headerGroup","getHeaderGroupProps","getHeaderProps","getSortByToggleProps","render","TableBody","TableRow","getRowProps","cells","TableCell","getCellProps","TableFooter","getFooterGroupProps","getFooterProps","ReactPaginate","previousLabel","nextLabel","breakLabel","pageRangeDisplayed","marginPagesDisplayed","onPageChange","containerClassName","forcePage","UnresolvedAgreementColumns","agreementsData","handleReject","_data$row$original","rejectModalIsOpen","setRejectModalIsOpen","selectedProviderDeal","setSelectedProviderDeal","unresolvedProviderDeals","setUnresolvedProviderDeals","rejectDealId","rejectedDeal","deal","isReportADealPage","useLocation","RejectAgreementModal","contactEmail","WelcomeBanner","createLease","helpContent","providerInactive","settings","statistics","newClientsQuantity","setNewClientsQuantity","updatedProviderInfo","setUpdatedProviderInfo","updatedContactInfo","setUpdatedContactInfo","loadTawkTo","preventResizeObserverError","asName","extensions","code","ApolloProvider","BrowserRouter","ProviderHeader","SideBar","UnresolvedAgreement","ScrollToTop","MainDashboard","Statistic","Invoices","LocationInfo","LocationForm","HelpPage","WelcomePage","ProviderInactive","CustomizedAxisTick","fontSize","x","y","payload","dy","textAnchor","CustomTooltip","CustomizedDot","cx","cy","r","dataMax","reduce","previousValue","ResponsiveContainer","AreaChart","margin","XAxis","dataKey","tick","YAxis","domain","allowDecimals","Area","dot","strokeWidth","showBlock","setShow","timer1","inputClass","passwordVisible","setPasswordVisibility","inputClasses","checkboxClasses","nameError","emailError","companyError","phoneError","postalCodeError","eanError","vatIdError","addressError","cityError","manySimilarSymbolsError","atLeastOneLetterError","atLeastEightDigitsError","symbolsLimitError","symbols_limit","minNumberError","setIsOpen","dropdownContainer","container","closeDropdown","Select","isSearchable","components","DropdownIndicator","onSelect","autoFocus","isFocused","customStyles","colors","primary25","primary","indicatorContainer","lineHeight","padding","alignItems","cursor","maxHeight","menu","paddingTop","fontFamily","menuList","indicatorSeparator","_SignUp$getI18nAttrNa","SignUp","getI18nAttrNames","companyI18n","vat_idI18n","line_1I18n","postal_codeI18n","cityI18n","nameI18n","emailI18n","phoneI18n","passwordI18n","eanI18n","matches","validationPatterns","symbolsLimit","company","specialCharacktersNotMoreThan","atLeastOneLetter","companyValidationNotRequired","vatIdValidation","createError","country_alpha2","eanValidation","postalCodes","postalCodeValidationProvider","symbolsEmailLimit","phone","phoneSpecialCharactersNotMoreThan","min","confirmPasswordValidation","oneOf","checkboxNotRequired","withRouter","unlisten","listen","ResizeObserver","delay","tid","ctx","self","webpackContext","req","webpackContextResolve","__webpack_require__","o","Error","resolve","module","exports"],"sourceRoot":""}