{"mappings":"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","sources":["src/BusinessEntities/Url/BusinessEntityUrlResolver.tsx","src/BusinessEntities/Browser/BusinessEntityBrowser.tsx","src/BusinessEntities/Browser/MunicipalityTag.tsx","src/BusinessEntities/Page/BusinessEntityPage.tsx","src/Components/BannerApartmentAndBusinessEntity.tsx","src/BusinessEntities/Page/BusinessEntityInformation.tsx","src/Benefits/BenefitsList.tsx","src/BusinessEntities/MarketingBusinessEntityContactForm.tsx","src/BusinessEntities/Page/MarketingBusinessEntityPage.tsx","src/BusinessEntities/Page/BenefitsListNew.tsx","src/BusinessEntities/Page/MarketingBusinessEntityImageGallery.tsx","src/BusinessEntities/Page/ThreeDGallery.tsx","src/BusinessEntities/Page/ArticleLinksWrapper.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useLocation, useNavigate } from 'react-router-dom';\nimport { useAppSelector } from '../../boot/configureStore';\nimport BusinessEntityBrowserPage from '../Browser/BusinessEntityBrowser';\nimport BusinessEntityPage from '../Page/BusinessEntityPage';\nimport {\n\tParseUrl,\n\tRedirectResult,\n\tBusinessEntityPageResult,\n\tSearchPageResult,\n\tBuildBusinessEntityBrowserUrl,\n} from './BusinessEntityUrlParser';\nimport { routeFromRoot, routes } from '../../Common/routes';\nimport MarketingBusinessEntityContactForm from '../MarketingBusinessEntityContactForm';\nimport MarketingBusinessEntityPage from '../Page/MarketingBusinessEntityPage';\nimport { Redirect } from '../../Components/Redirect';\nimport { useLanguage } from '../../Components/ResourceText';\nimport { useMemo } from 'react';\n\nfunction BusinessEntityUrlResolver() {\n\tconst { pathname, search, hash } = useLocation();\n\tconst locationData = useAppSelector(({ locationData }) => locationData);\n\tconst language = useLanguage();\n\tconst navigate = useNavigate();\n\tconst result = useMemo(\n\t\t() => (locationData.locationData ? ParseUrl(pathname, search, locationData.locationData, language) : null),\n\t\t[pathname, search, locationData.locationData, language],\n\t);\n\n\tif (!locationData || !locationData.isDataLoaded || !locationData.locationData) {\n\t\treturn null;\n\t}\n\n\tif (result instanceof SearchPageResult) {\n\t\tif (result.redirect) {\n\t\t\treturn <Redirect to={BuildBusinessEntityBrowserUrl(language, result.searchParams)} />;\n\t\t}\n\t\treturn (\n\t\t\t<BusinessEntityBrowserPage\n\t\t\t\tmunicipalities={result.searchParams.municipalities}\n\t\t\t\ttypeFilter={result.searchParams.typeFilter}\n\t\t\t\tnavigate={navigate}\n\t\t\t/>\n\t\t);\n\t}\n\tif (result instanceof BusinessEntityPageResult) {\n\t\tswitch (result.variant) {\n\t\t\tcase 'PreMarketingInterest':\n\t\t\t\treturn <MarketingBusinessEntityContactForm locationBusinessEntity={result.businessEntity} />;\n\t\t\tdefault:\n\t\t\t\tif (result.businessEntity.isMarketing) {\n\t\t\t\t\treturn <MarketingBusinessEntityPage locationBusinessEntity={result.businessEntity} />;\n\t\t\t\t} else {\n\t\t\t\t\treturn <BusinessEntityPage locationBusinessEntity={result.businessEntity} navigate={navigate} />;\n\t\t\t\t}\n\t\t}\n\t}\n\tif (result instanceof RedirectResult) {\n\t\treturn (\n\t\t\t<Redirect\n\t\t\t\tto={routeFromRoot(routes.houses)[language] + '/' + result.pathSegments.join('/') + search + hash}\n\t\t\t/>\n\t\t);\n\t}\n\treturn null;\n}\n\nexport default BusinessEntityUrlResolver;\n","import * as React from 'react';\r\nimport { ILumoOneAppState } from '../../boot/configureStore';\r\nimport { connect } from 'react-redux';\r\nimport { LocationMunicipality, LocationData } from '../../LocationDataProvider/LocationData';\r\nimport { BusinessEntityBrowserState } from './BusinessEntityDataStore';\r\nimport { businessEntityActions } from './businessEntityActions';\r\nimport { BusinessEntitySearchResultAM } from './BusinessEntitySearchResultAM';\r\nimport BusinessEntityCard from './BusinessEntityCard';\r\nimport { MunicipalityTag } from './MunicipalityTag';\r\nimport { BuildBusinessEntityBrowserUrl } from '../Url/BusinessEntityUrlParser';\r\nimport { Link, NavigateFunction } from 'react-router-dom';\r\nimport { ResourceText, IUseResourceTexts, withResourceTextSupport } from '../../Components/ResourceText';\r\nimport { orderBy } from '../../Components/arrayUtilities';\r\nimport { LayoutDispatchProps, layoutActions } from '../../Common/Layout/layoutActions';\r\nimport { capitalize } from '../../Components/stringUtilities';\r\nimport { ApiOperationState, isAlreadyRequested, OperationState } from '../../Common/Api/ApiOperationState';\r\nimport { createTranslatedUrlsUsing } from '../../Common/Layout/layoutState';\r\nimport { pageViewTelemetryActions } from '../../Telemetry/pageViewTelemetryActions';\r\nimport PageMeta from '../../Common/Layout/PageMeta';\r\nimport { Language } from '../../Common/interfaces/language';\r\n\r\nexport interface IBusinessEntityBrowserParams {\r\n\tmunicipalities: LocationMunicipality[];\r\n\ttypeFilter: IBusinessEntityBrowserTypeFilter[];\r\n\tnavigate: NavigateFunction;\r\n}\r\nexport type IBusinessEntityBrowserTypeFilter = 'new' | 'preMarketing';\r\n\r\nexport interface IBusinessEntityBrowserStateProps {\r\n\tallBusinessEntities: OperationState<BusinessEntitySearchResultAM[]> | undefined;\r\n\tlocationData: LocationData | undefined;\r\n\tlanguage: Language;\r\n}\r\n\r\nexport type IBusinessEntityBrowserProps = IBusinessEntityBrowserParams &\r\n\tIBusinessEntityBrowserStateProps &\r\n\tIBusinessEntityBrowserDispatchProps &\r\n\tIUseResourceTexts;\r\n\r\nclass BusinessEntityBrowserPage extends React.Component<IBusinessEntityBrowserProps> {\r\n\tconstructor(props: IBusinessEntityBrowserProps, context?: any) {\r\n\t\tsuper(props, context);\r\n\t\tif (!isAlreadyRequested(this.props.allBusinessEntities)) {\r\n\t\t\tthis.props.getAllBusinessEntities(this.props.locationData!);\r\n\t\t}\r\n\t\tthis.setLayoutProps();\r\n\t}\r\n\r\n\tcomponentDidMount() {\r\n\t\t/* Set persisted state to match props (route params)\r\n\t\t Needed in case user entered filter, then went to BusinessEntityPage and then elsewhere on the site.\r\n\t\t Then when returning here e.g. from frontpage, would not touch any filters and go to BusinessEntityPage,\r\n\t\t that page would still show \"< Lumo-talot\" link based on the old persited state.\r\n\t\t */\r\n\t\tthis.props.persistBrowserState({\r\n\t\t\tmunicipalities: this.props.municipalities,\r\n\t\t\ttypeFilter: this.props.typeFilter,\r\n\t\t});\r\n\r\n\t\tthis.props.pageComplete({});\r\n\t}\r\n\r\n\tget headingResourceKey(): string {\r\n\t\tif (this.arePreMarketingAndNewApartmentsFiltersSet) {\r\n\t\t\treturn 'BusinessEntityBrowser_MainHeading_NewAndPreMarketing';\r\n\t\t}\r\n\t\tif (this.isNewApartmentsFilterSet) {\r\n\t\t\treturn 'BusinessEntityBrowser_MainHeading_New';\r\n\t\t}\r\n\t\tif (this.isPreMarketingFilterSet) {\r\n\t\t\treturn 'BusinessEntityBrowser_MainHeading_PreMarketing';\r\n\t\t}\r\n\t\treturn 'BusinessEntityBrowser_MainHeading';\r\n\t}\r\n\r\n\tget ingressResourceKey(): string {\r\n\t\tif (this.arePreMarketingAndNewApartmentsFiltersSet) {\r\n\t\t\treturn 'BusinessEntityBrowser_Ingress_NewAndPreMarketing';\r\n\t\t}\r\n\t\tif (this.isNewApartmentsFilterSet) {\r\n\t\t\treturn 'BusinessEntityBrowser_Ingress_New';\r\n\t\t}\r\n\t\tif (this.isPreMarketingFilterSet) {\r\n\t\t\treturn 'BusinessEntityBrowser_Ingress_PreMarketing';\r\n\t\t}\r\n\t\treturn 'BusinessEntityBrowser_Ingress';\r\n\t}\r\n\r\n\tget isPreMarketingFilterSet() {\r\n\t\treturn this.props.typeFilter.indexOf('preMarketing') > -1;\r\n\t}\r\n\r\n\tget isNewApartmentsFilterSet() {\r\n\t\treturn this.props.typeFilter.indexOf('new') > -1;\r\n\t}\r\n\r\n\tget arePreMarketingAndNewApartmentsFiltersSet() {\r\n\t\treturn this.isPreMarketingFilterSet && this.isNewApartmentsFilterSet;\r\n\t}\r\n\r\n\trender() {\r\n\t\tconst headingResourceKey = this.headingResourceKey;\r\n\t\tconst ingressResourceKey = this.ingressResourceKey;\r\n\r\n\t\treturn (\r\n\t\t\t<React.Fragment>\r\n\t\t\t\t<PageMeta title={this.props.getResourceText(this.headingResourceKey, 'Lumo-talot')} />\r\n\t\t\t\t<div className=\"mod-heroCard -hasArrow\">\r\n\t\t\t\t\t<picture className=\"mod-heroCard__image\">\r\n\t\t\t\t\t\t<source media=\"(max-width: 539px)\" srcSet=\"/images/lumo-talot-mobi-min.jpg\" />\r\n\t\t\t\t\t\t<source media=\"(max-width: 899px)\" srcSet=\"/images/lumo-talot-tablet-min.jpg\" />\r\n\t\t\t\t\t\t<img className=\"mod-heroCard__image-img\" src=\"/images/lumo-talot-desktop-min.jpg\" alt=\"\" />\r\n\t\t\t\t\t</picture>\r\n\t\t\t\t\t<div className=\"mod-heroCard__wrapper\">\r\n\t\t\t\t\t\t<div className=\"mod-heroCard__card atom-card\">\r\n\t\t\t\t\t\t\t<div className=\"mod-heroCard__headingWrapper\">\r\n\t\t\t\t\t\t\t\t<h1 className=\"mod-heroCard__heading\">\r\n\t\t\t\t\t\t\t\t\t<ResourceText resourceKey={headingResourceKey} defaultText=\"Lumo-talot\" />\r\n\t\t\t\t\t\t\t\t</h1>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t<div className=\"mod-heroCard__contentWrapper\">\r\n\t\t\t\t\t\t\t\t<div className=\"mod-heroCard__ingress\">\r\n\t\t\t\t\t\t\t\t\t<ResourceText\r\n\t\t\t\t\t\t\t\t\t\tresourceKey={ingressResourceKey}\r\n\t\t\t\t\t\t\t\t\t\tdefaultText=\"Lumo-talot tarjoavat turvallista, monipuolista ja vaivatonta vuokra-asumista sekä\r\n\t\t\t\t\t\t\t\t\t\tasumisen palveluiden valikoiman erilaisiin elämäntilanteisiin.\"\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t<form className=\"mod-heroCard__filters\">\r\n\t\t\t\t\t\t\t\t\t<fieldset className=\"mod-heroCard__fieldset\">\r\n\t\t\t\t\t\t\t\t\t\t<div className=\"mod-heroCard__selectWrapper\">\r\n\t\t\t\t\t\t\t\t\t\t\t<label htmlFor=\"mod-heroCard__select\" className=\"mod-heroCard__selectLabel\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<ResourceText\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tresourceKey=\"BusinessEntityBrowser_Filters_Municipality_Heading\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tdefaultText=\"Valitse kaupunki:\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t</label>\r\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"mod-heroCard__selectHelper\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<select\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tid=\"mod-heroCard__select\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"mod-heroCard__select\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={this.municipalitySelected}\r\n\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{this.props.getResourceText(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'BusinessEntityBrowser_Filters_Municipality_DefaultOption',\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'Valitse kaupunki',\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</option>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{orderBy(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tthis.props.locationData!.municipalities,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t(item: LocationMunicipality) => item.name,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t).map((m) => (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value={m.slug} key={m.slug}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{m.name}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</option>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t\t\t\t\t</select>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t<ul className=\"mod-heroCard__selection\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t{orderBy(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tthis.props.municipalities,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t(item: LocationMunicipality) => item.name,\r\n\t\t\t\t\t\t\t\t\t\t\t\t).map((m) => (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<MunicipalityTag\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tkey={m.slug}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmunicipality={m}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonRemoved={this.municipalityRemoved}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t<div className=\"mod-heroCard__radioWrapper\">\r\n\t\t\t\t\t\t\t\t\t\t\t<input\r\n\t\t\t\t\t\t\t\t\t\t\t\tid=\"mod-heroCard__radioAll\"\r\n\t\t\t\t\t\t\t\t\t\t\t\ttype=\"checkbox\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"mod-heroCard__radio\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tname=\"typeFilter-all\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tchecked={!this.props.typeFilter.length}\r\n\t\t\t\t\t\t\t\t\t\t\t\tonChange={this.typeFilterChanged}\r\n\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t<label htmlFor=\"mod-heroCard__radioAll\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<ResourceText\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tresourceKey=\"BusinessEntityBrowser_Filters_Type_All\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tdefaultText=\"Näytä kaikki\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t</label>\r\n\t\t\t\t\t\t\t\t\t\t\t<input\r\n\t\t\t\t\t\t\t\t\t\t\t\tid=\"mod-heroCard__radioNew\"\r\n\t\t\t\t\t\t\t\t\t\t\t\ttype=\"checkbox\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"mod-heroCard__radio\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tname=\"typeFilter-new\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tchecked={this.isNewApartmentsFilterSet}\r\n\t\t\t\t\t\t\t\t\t\t\t\tonChange={this.typeFilterChanged}\r\n\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t<label htmlFor=\"mod-heroCard__radioNew\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<ResourceText\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tresourceKey=\"BusinessEntityBrowser_Filters_Type_New\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tdefaultText=\"Näytä uutuudet\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t</label>\r\n\t\t\t\t\t\t\t\t\t\t\t<input\r\n\t\t\t\t\t\t\t\t\t\t\t\tid=\"mod-heroCard__radioPremarketing\"\r\n\t\t\t\t\t\t\t\t\t\t\t\ttype=\"checkbox\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"mod-heroCard__radio\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tname=\"typeFilter-preMarketing\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tchecked={this.isPreMarketingFilterSet}\r\n\t\t\t\t\t\t\t\t\t\t\t\tonChange={this.typeFilterChanged}\r\n\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t<label htmlFor=\"mod-heroCard__radioPremarketing\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<ResourceText\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tresourceKey=\"BusinessEntityBrowser_Filters_Type_PreMarketing\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tdefaultText=\"Näytä ennakkomarkkinoinnissa olevat\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t</label>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t</fieldset>\r\n\t\t\t\t\t\t\t\t</form>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\r\n\t\t\t\t<div className=\"mod-searchResults -dense\">\r\n\t\t\t\t\t<div className=\"mod-searchResults__wrapper\">{this.formatResults()}</div>\r\n\t\t\t\t</div>\r\n\t\t\t</React.Fragment>\r\n\t\t);\r\n\t}\r\n\r\n\tmunicipalitySelected = (event: React.FormEvent<HTMLSelectElement>) => {\r\n\t\tconst municipalitySlug: string = event.currentTarget.value;\r\n\t\tconst municipality = this.props.locationData!.municipalities.find((m) => m.slug == municipalitySlug);\r\n\t\tif (municipality) {\r\n\t\t\tconst newFilter = {\r\n\t\t\t\tmunicipalities: [...this.props.municipalities, municipality],\r\n\t\t\t\ttypeFilter: this.props.typeFilter,\r\n\t\t\t};\r\n\t\t\tconst newUrl = BuildBusinessEntityBrowserUrl(this.props.language, newFilter);\r\n\t\t\tthis.props.navigate(newUrl);\r\n\t\t\tthis.persistState(newFilter);\r\n\t\t}\r\n\t\tevent.currentTarget.value = '';\r\n\t};\r\n\r\n\tmunicipalityRemoved = (municipality: LocationMunicipality) => {\r\n\t\tconst newFilter = {\r\n\t\t\tmunicipalities: this.props.municipalities.filter((m) => m.slug != municipality.slug),\r\n\t\t\ttypeFilter: this.props.typeFilter,\r\n\t\t};\r\n\t\tconst newUrl = BuildBusinessEntityBrowserUrl(this.props.language, newFilter);\r\n\t\tthis.props.navigate(newUrl);\r\n\t\tthis.persistState(newFilter);\r\n\t};\r\n\r\n\ttypeFilterChanged = (event: React.FormEvent<HTMLInputElement>) => {\r\n\t\tconst target = event.currentTarget;\r\n\t\tif (target.type != 'checkbox') {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst isChecked = target.checked;\r\n\r\n\t\tswitch (target.name) {\r\n\t\t\tcase 'typeFilter-all': {\r\n\t\t\t\tif (this.props.typeFilter.length) {\r\n\t\t\t\t\tconst newFilter = {\r\n\t\t\t\t\t\tmunicipalities: this.props.municipalities,\r\n\t\t\t\t\t\ttypeFilter: [],\r\n\t\t\t\t\t};\r\n\t\t\t\t\tthis.props.navigate(BuildBusinessEntityBrowserUrl(this.props.language, newFilter));\r\n\t\t\t\t\tthis.persistState(newFilter);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tevent.preventDefault(); // keep control selected\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tcase 'typeFilter-new':\r\n\t\t\t\tthis.handleTypeFilterChange('new', isChecked);\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase 'typeFilter-preMarketing':\r\n\t\t\t\tthis.handleTypeFilterChange('preMarketing', isChecked);\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t};\r\n\r\n\tprivate handleTypeFilterChange(type: IBusinessEntityBrowserTypeFilter, isChecked: boolean) {\r\n\t\tconst filterCurrentlyContainsType = this.props.typeFilter.indexOf(type) > -1;\r\n\r\n\t\tlet newState: BusinessEntityBrowserState | undefined;\r\n\t\tif (isChecked && !filterCurrentlyContainsType) {\r\n\t\t\tnewState = {\r\n\t\t\t\tmunicipalities: this.props.municipalities,\r\n\t\t\t\ttypeFilter: [...this.props.typeFilter, type],\r\n\t\t\t};\r\n\t\t} else if (!isChecked && filterCurrentlyContainsType) {\r\n\t\t\tnewState = {\r\n\t\t\t\tmunicipalities: this.props.municipalities,\r\n\t\t\t\ttypeFilter: this.props.typeFilter.filter((t) => t != type),\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tif (newState) {\r\n\t\t\tthis.props.navigate(BuildBusinessEntityBrowserUrl(this.props.language, newState));\r\n\t\t\tthis.persistState(newState);\r\n\t\t}\r\n\t}\r\n\r\n\tprivate persistState(browserState: BusinessEntityBrowserState) {\r\n\t\tthis.props.persistBrowserState(browserState);\r\n\t}\r\n\r\n\tprivate formatResults() {\r\n\t\tif (!this.props.allBusinessEntities || this.props.allBusinessEntities.status === ApiOperationState.Requested) {\r\n\t\t\treturn (\r\n\t\t\t\t<div>\r\n\t\t\t\t\t<ResourceText\r\n\t\t\t\t\t\tresourceKey=\"BusinessEntityBrowser_Status_LoadingBusinessEntities\"\r\n\t\t\t\t\t\tdefaultText=\"Haetaan taloja...\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t</div>\r\n\t\t\t);\r\n\t\t}\r\n\t\tif (this.props.allBusinessEntities.status === ApiOperationState.Failed) {\r\n\t\t\treturn (\r\n\t\t\t\t<div>\r\n\t\t\t\t\t<ResourceText\r\n\t\t\t\t\t\tresourceKey=\"BusinessEntityBrowser_Status_FailedLoadingBusinessEntities\"\r\n\t\t\t\t\t\tdefaultText=\"Talojen lataus epäonnistui\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t</div>\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tconst businessEntities = orderBy(\r\n\t\t\tthis.filter(this.props.allBusinessEntities.result),\r\n\t\t\t(item: BusinessEntitySearchResultAM) => item.municipality.name,\r\n\t\t\t(item: BusinessEntitySearchResultAM) => !item.isPreMarketing,\r\n\t\t\t(item: BusinessEntitySearchResultAM) => item.name,\r\n\t\t);\r\n\r\n\t\tif (!businessEntities.length) {\r\n\t\t\tconst urlWithoutTypeFilter =\r\n\t\t\t\tthis.props.municipalities.length && this.props.typeFilter.length\r\n\t\t\t\t\t? BuildBusinessEntityBrowserUrl(this.props.language, {\r\n\t\t\t\t\t\t\tmunicipalities: this.props.municipalities,\r\n\t\t\t\t\t\t\ttypeFilter: [],\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t: undefined;\r\n\r\n\t\t\treturn (\r\n\t\t\t\t<div>\r\n\t\t\t\t\t<ResourceText\r\n\t\t\t\t\t\tresourceKey=\"BusinessEntityBrowser_NoResults\"\r\n\t\t\t\t\t\tdefaultText=\"Hakuehdoillasi ei löytynyt yhtään Lumo-taloa. \"\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t{urlWithoutTypeFilter && (\r\n\t\t\t\t\t\t<Link to={urlWithoutTypeFilter}>\r\n\t\t\t\t\t\t\t<ResourceText\r\n\t\t\t\t\t\t\t\tresourceKey=\"BusinessEntityBrowser_LinkWithTypeFilterRemoved\"\r\n\t\t\t\t\t\t\t\tdefaultText=\"Näytä kaikki alueen Lumo-talot\"\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t</Link>\r\n\t\t\t\t\t)}\r\n\t\t\t\t</div>\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\treturn (\r\n\t\t\t<React.Fragment>\r\n\t\t\t\t<header className=\"mod-searchResults__header -alignCenter\">\r\n\t\t\t\t\t{this.formatTypeSpecificHeading(this.props.typeFilter)}\r\n\r\n\t\t\t\t\t<p className=\"mod-searchResults__intro\">\r\n\t\t\t\t\t\t<ResourceText\r\n\t\t\t\t\t\t\tresourceKey=\"BusinessEntityBrowser_ResultCount_Prefix\"\r\n\t\t\t\t\t\t\tdefaultText=\"Hakuehdoillasi löytyi\"\r\n\t\t\t\t\t\t/>{' '}\r\n\t\t\t\t\t\t<strong className=\"mod-searchResults__count\">\r\n\t\t\t\t\t\t\t{businessEntities.length}{' '}\r\n\t\t\t\t\t\t\t{businessEntities.length == 1 ? (\r\n\t\t\t\t\t\t\t\t<ResourceText\r\n\t\t\t\t\t\t\t\t\tresourceKey=\"BusinessEntityBrowser_ResultCount_Singular\"\r\n\t\t\t\t\t\t\t\t\tdefaultText=\"talo\"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t<ResourceText\r\n\t\t\t\t\t\t\t\t\tresourceKey=\"BusinessEntityBrowser_ResultCount_Plural\"\r\n\t\t\t\t\t\t\t\t\tdefaultText=\"taloa\"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t</strong>\r\n\t\t\t\t\t</p>\r\n\t\t\t\t</header>\r\n\t\t\t\t<ol className=\"mod-searchResults__list\">\r\n\t\t\t\t\t{businessEntities.map((be) => (\r\n\t\t\t\t\t\t<BusinessEntityCard businessEntity={be} key={be.id} />\r\n\t\t\t\t\t))}\r\n\t\t\t\t</ol>\r\n\t\t\t</React.Fragment>\r\n\t\t);\r\n\t}\r\n\r\n\tprivate formatTypeSpecificHeading(types: IBusinessEntityBrowserTypeFilter[]) {\r\n\t\tif (!types || !types.length) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\tconst typesIdentifier = orderBy(types, (t) => t).join('+');\r\n\r\n\t\treturn (\r\n\t\t\t<>\r\n\t\t\t\t<div className=\"mod-searchResults__headerWrapper\">\r\n\t\t\t\t\t<h1 className=\"mod-searchResults__headerTitle\">\r\n\t\t\t\t\t\t<ResourceText resourceKey={'BusinessEntityBrowser_TypeSpecific_Heading_' + typesIdentifier} />\r\n\t\t\t\t\t\t{/* esim. Ennakkomarkkinoinnissa olevat talot */}\r\n\t\t\t\t\t</h1>\r\n\t\t\t\t\t<p className=\"mod-searchResults__headerText\">\r\n\t\t\t\t\t\t<ResourceText resourceKey={'BusinessEntityBrowser_TypeSpecific_Ingress_' + typesIdentifier} />\r\n\t\t\t\t\t\t{/* esim. Rakastu uutuuksiin ja löydä valmistuvista Lumo-taloista unelmiesi koti. Ensimmäisenä asukkaana\r\n\t\t\t\t\tuuteen kotiin astuminen on ainutlaatuinen kokemus. */}\r\n\t\t\t\t\t</p>\r\n\t\t\t\t</div>\r\n\t\t\t</>\r\n\t\t);\r\n\t}\r\n\r\n\tprivate filter(allBusinessEntities: BusinessEntitySearchResultAM[]): BusinessEntitySearchResultAM[] {\r\n\t\tlet result = allBusinessEntities;\r\n\t\tif (this.props.municipalities && this.props.municipalities.length) {\r\n\t\t\tresult = result.filter((be) =>\r\n\t\t\t\tthis.props.municipalities.find((m) => be.municipality && be.municipality.id == m.id),\r\n\t\t\t);\r\n\t\t}\r\n\t\tif (this.props.typeFilter && this.props.typeFilter.length) {\r\n\t\t\tresult = result.filter((be) =>\r\n\t\t\t\tthis.props.typeFilter.some(\r\n\t\t\t\t\t(f) => (f === 'new' && be.isNew) || (f === 'preMarketing' && be.isPreMarketing),\r\n\t\t\t\t),\r\n\t\t\t);\r\n\t\t}\r\n\t\treturn result;\r\n\t}\r\n\r\n\tsetLayoutProps = () => {\r\n\t\tconst language = this.props.language;\r\n\r\n\t\tconst breadCrumb = [\r\n\t\t\t{\r\n\t\t\t\tname: this.props.getResourceText('BreadCrumb_Houses', 'Lumo-talot'),\r\n\t\t\t\tpath: BuildBusinessEntityBrowserUrl(language),\r\n\t\t\t},\r\n\t\t];\r\n\t\tif (this.props.municipalities.length) {\r\n\t\t\tbreadCrumb.push({\r\n\t\t\t\tname: this.props.municipalities.map((m) => m.name).join(', '),\r\n\t\t\t\tpath: BuildBusinessEntityBrowserUrl(language, { municipalities: this.props.municipalities }),\r\n\t\t\t});\r\n\t\t}\r\n\t\tif (this.props.typeFilter.length) {\r\n\t\t\tbreadCrumb.push({\r\n\t\t\t\tname: this.props.typeFilter\r\n\t\t\t\t\t.map((t) =>\r\n\t\t\t\t\t\tthis.props.getResourceText('BusinessEntityBrowser_BreadCrumb_TypeFilter_' + capitalize(t)),\r\n\t\t\t\t\t)\r\n\t\t\t\t\t.join(', '),\r\n\t\t\t\tpath: BuildBusinessEntityBrowserUrl(language, {\r\n\t\t\t\t\ttypeFilter: this.props.typeFilter,\r\n\t\t\t\t\tmunicipalities: this.props.municipalities,\r\n\t\t\t\t}),\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tthis.props.setLayoutValues({\r\n\t\t\tbreadcrumbCurrentName: breadCrumb[breadCrumb.length - 1].name,\r\n\t\t\tbreadcrumbParents: breadCrumb.slice(0, breadCrumb.length - 1),\r\n\t\t\ttranslateUrl: createTranslatedUrlsUsing((l) => BuildBusinessEntityBrowserUrl(l, this.props)),\r\n\t\t});\r\n\t};\r\n}\r\n\r\nconst mapStateToProps = ({\r\n\tbusinessEntities,\r\n\tlocationData,\r\n\tlanguage,\r\n}: ILumoOneAppState): IBusinessEntityBrowserStateProps => ({\r\n\tallBusinessEntities: businessEntities.allBusinessEntities,\r\n\tlocationData: locationData.locationData,\r\n\tlanguage: language.currentLanguage,\r\n});\r\n\r\nexport type IBusinessEntityBrowserDispatchProps = LayoutDispatchProps & {\r\n\tgetAllBusinessEntities: typeof businessEntityActions.getAllBusinessEntities.request;\r\n\tpersistBrowserState: typeof businessEntityActions.persistBrowserState;\r\n\tpageComplete: typeof pageViewTelemetryActions.pageComplete;\r\n};\r\n\r\nexport default withResourceTextSupport(\r\n\tconnect<\r\n\t\tIBusinessEntityBrowserStateProps,\r\n\t\tIBusinessEntityBrowserDispatchProps,\r\n\t\tIBusinessEntityBrowserParams,\r\n\t\tILumoOneAppState\r\n\t>(mapStateToProps, {\r\n\t\tgetAllBusinessEntities: businessEntityActions.getAllBusinessEntities.request,\r\n\t\tpersistBrowserState: businessEntityActions.persistBrowserState,\r\n\t\tsetLayoutValues: layoutActions.setValues,\r\n\t\tpageComplete: pageViewTelemetryActions.pageComplete,\r\n\t})(BusinessEntityBrowserPage),\r\n);\r\n","import { Tag } from '../../Components/Tag';\nimport { LocationMunicipality } from '../../LocationDataProvider/LocationData';\n\nexport interface MunicipalityTagProps {\n\tmunicipality: LocationMunicipality;\n\tonRemoved: (value: LocationMunicipality) => void;\n}\n\nexport function MunicipalityTag(props: MunicipalityTagProps) {\n\tconst onRemoved = () => {\n\t\tprops.onRemoved(props.municipality);\n\t};\n\n\treturn Tag({ text: props.municipality.name, onRemoved: onRemoved });\n}\n","import * as React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { LocationBusinessEntity, LocationData } from '../../LocationDataProvider/LocationData';\r\nimport { businessEntityPageActions } from './businessEntityPageActions';\r\nimport { BusinessEntityPageState } from './BusinessEntityPageState';\r\nimport { ResourceText, IUseResourceTexts, withResourceTextSupport } from '../../Components/ResourceText';\r\nimport { formatBasicDateString, formatDateTimeRange } from '../../DateUtils';\r\nimport { ILumoOneAppState } from '../../boot/configureStore';\r\nimport { GetUrlForCriteria, GetUrlForSearchResults } from '../../Apartments/Browser/apartmentSearchUrlHandling';\r\nimport { Link, NavigateFunction } from 'react-router-dom';\r\nimport SuggestedApartmentsReel from '../../Apartments/SuggestedApartments/SuggestedApartmentsReel';\r\nimport { BannerApartmentAndBusinessEntity } from '../../Components/BannerApartmentAndBusinessEntity';\r\nimport { NearbyServices } from '../../Components/NearbyServices';\r\nimport BusinessEntityInformation from './BusinessEntityInformation';\r\nimport { MediaItem, LinkedMediaItem, ImageItem } from '../../Components/MediaCarousel';\r\nimport { BusinessEntityAM } from '../../Apartments/Api/BusinessEntityAM';\r\nimport { MarkdownContent } from '../../Components/MarkdownContent';\r\nimport { ExpandableContent } from '../../Components/ExpandableContent';\r\nimport { layoutActions, LayoutDispatchProps } from '../../Common/Layout/layoutActions';\r\nimport { BuildBusinessEntityBrowserUrl, BuildBusinessEntityUrl } from '../Url/BusinessEntityUrlParser';\r\nimport { routeFromRoot, routes } from '../../Common/routes';\r\nimport { toFormattedString } from '../../Components/numberUtils';\r\nimport TopBar from '../../Common/TopBar';\r\nimport { BenefitsList } from '../../Benefits/BenefitsList';\r\nimport { isOperationSuccess, isAlreadyRequested } from '../../Common/Api/ApiOperationState';\r\nimport { IDefineSsrRequirements, withSsrSupport } from '../../SSR/ssrDispatchWrapper';\r\nimport { suggestedApartmentsActions } from '../../Apartments/SuggestedApartments/suggestedApartmentsActions';\r\nimport { createTranslatedUrlsUsing } from '../../Common/Layout/layoutState';\r\nimport { IBusinessEntityDataStore } from '../Browser/BusinessEntityDataStore';\r\nimport { pageViewTelemetryActions } from '../../Telemetry/pageViewTelemetryActions';\r\nimport PageMeta, { PageMetaFields } from '../../Common/Layout/PageMeta';\r\nimport { createSearchWatchActions } from '../../SearchWatch/Create/createSearchWatchActions';\r\nimport ArticleLinks from '../../Components/ArticleLinks/ArticleLinks';\r\nimport { ArticleRequest } from '../../Common/Api/contentApiClient';\r\nimport { ImageAM } from '../../Apartments/Api/ImageAM';\r\nimport { LinkedMediaAM } from '../../Apartments/Api/LinkedMediaAM';\r\nimport { ImageCarouselWithFullScreenSupport } from '../../Components/ImageCarouselWithFullScreenSupport';\r\nimport { housingImagesPresetConfig } from '../../Components/realEstateMediaPresets';\r\nimport { Language } from '../../Common/interfaces/language';\r\nimport { rentalServiceRequestActions } from '../../RentalServiceRequest/rentalServiceRequestActions';\r\n\r\nexport interface IBusinessEntityPageParams {\r\n\tlocationBusinessEntity: LocationBusinessEntity;\r\n\tnavigate: NavigateFunction;\r\n}\r\n\r\ninterface BusinessEntityPageStateProps {\r\n\tbrowserState: IBusinessEntityDataStore['browserState'];\r\n\tbusinessEntityState: BusinessEntityPageState;\r\n\tallLocations: LocationData;\r\n\tlanguage: Language;\r\n\tcommonUiRoot: string;\r\n}\r\n\r\nexport type IBusinessEntityPageProps = IBusinessEntityPageParams &\r\n\tBusinessEntityPageStateProps &\r\n\tBusinessEntityPageDispatchProps &\r\n\tIUseResourceTexts &\r\n\tIDefineSsrRequirements;\r\n\r\nexport type BusinessEntityPageDispatchProps = LayoutDispatchProps & {\r\n\tgetBusinessEntityById: typeof businessEntityPageActions.getBusinessEntityById.request;\r\n\tgetApartmentCount: typeof businessEntityPageActions.getApartmentCount.request;\r\n\tinitRentalServiceRequestCreation: typeof rentalServiceRequestActions.initRequestCreationData;\r\n\tinitNewSearchWatchCreation: typeof createSearchWatchActions.initNewSearchWatchCreation;\r\n\tpageComplete: typeof pageViewTelemetryActions.pageComplete;\r\n};\r\n\r\nclass BusinessEntityPage extends React.Component<IBusinessEntityPageProps> {\r\n\tmap: React.RefObject<HTMLDivElement>;\r\n\r\n\tconstructor(props: IBusinessEntityPageProps, context?: any) {\r\n\t\tsuper(props, context);\r\n\t\tthis.map = React.createRef();\r\n\r\n\t\tthis.props.requireForSsr(\r\n\t\t\tbusinessEntityPageActions.getBusinessEntityById,\r\n\t\t\tbusinessEntityPageActions.getApartmentCount,\r\n\t\t\tsuggestedApartmentsActions.getApartments, // SuggestedApartmentsReel\r\n\t\t);\r\n\r\n\t\tthis.loadDataAsNeeded();\r\n\r\n\t\tif (isOperationSuccess(this.props.businessEntityState.businessEntity, this.props.locationBusinessEntity.id)) {\r\n\t\t\tthis.setLayoutProps(this.props.businessEntityState.businessEntity.result);\r\n\t\t}\r\n\t}\r\n\r\n\tcomponentDidMount() {\r\n\t\tthis.logTelemetry();\r\n\t}\r\n\r\n\tcomponentDidUpdate(prevProps: IBusinessEntityPageProps) {\r\n\t\tif (\r\n\t\t\tisOperationSuccess(this.props.businessEntityState.businessEntity, this.props.locationBusinessEntity.id) &&\r\n\t\t\t!isOperationSuccess(prevProps.businessEntityState.businessEntity, prevProps.locationBusinessEntity.id)\r\n\t\t) {\r\n\t\t\tthis.setLayoutProps(this.props.businessEntityState.businessEntity.result);\r\n\t\t}\r\n\t}\r\n\r\n\tlogTelemetry() {\r\n\t\tif (isOperationSuccess(this.props.businessEntityState.businessEntity, this.props.locationBusinessEntity.id)) {\r\n\t\t\tthis.props.pageComplete({\r\n\t\t\t\tdata: {\r\n\t\t\t\t\tbusinessEntityName: this.props.businessEntityState.businessEntity.result.name,\r\n\t\t\t\t\tisPreMarketing: false,\r\n\t\t\t\t\tmunicipality: this.props.businessEntityState.businessEntity.result.municipality.name,\r\n\t\t\t\t\tmunicipalitySubArea: this.props.businessEntityState.businessEntity.result.municipalitySubArea.name,\r\n\t\t\t\t},\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tloadDataAsNeeded() {\r\n\t\tconst { businessEntity, municipalityApartmentCount } = this.props.businessEntityState;\r\n\t\tif (!isAlreadyRequested(businessEntity, this.props.locationBusinessEntity.id)) {\r\n\t\t\tthis.props.getBusinessEntityById({\r\n\t\t\t\tid: this.props.locationBusinessEntity.id,\r\n\t\t\t\tallLocations: this.props.allLocations,\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (!isAlreadyRequested(municipalityApartmentCount)) {\r\n\t\t\tconst municipality = this.props.allLocations.municipalities.find(\r\n\t\t\t\t(m) => m.id === this.props.locationBusinessEntity.municipalityId,\r\n\t\t\t)!;\r\n\t\t\tthis.props.getApartmentCount(municipality.name);\r\n\t\t}\r\n\t}\r\n\r\n\tprivate getArticlesRequest(): ArticleRequest {\r\n\t\tconst municipality = this.props.allLocations.municipalities.find(\r\n\t\t\t(m) => m.id == this.props.locationBusinessEntity.municipalityId,\r\n\t\t)!;\r\n\t\tconst req = this.props.locationBusinessEntity.municipalitySubAreaId\r\n\t\t\t? {\r\n\t\t\t\t\ttagPrimary: municipality.name,\r\n\t\t\t\t\ttagSecondary: this.props.allLocations.municipalitySubAreas.find(\r\n\t\t\t\t\t\t(m) => m.id == this.props.locationBusinessEntity.municipalitySubAreaId,\r\n\t\t\t\t\t)!.name,\r\n\t\t\t\t}\r\n\t\t\t: { tagPrimary: municipality.name };\r\n\t\treturn { ...req, take: 4 };\r\n\t}\r\n\r\n\trender() {\r\n\t\tif (!isOperationSuccess(this.props.businessEntityState.businessEntity, this.props.locationBusinessEntity.id)) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\t\tconst be = this.props.businessEntityState.businessEntity.result;\r\n\t\tconst { municipalityApartmentCount } = this.props.businessEntityState;\r\n\r\n\t\tconst badgeContents = this.getBadgeContents(be);\r\n\t\tconst title =\r\n\t\t\tbe.name + (be.municipalitySubArea ? ', ' + be.municipalitySubArea.name : '') + ', ' + be.municipality.name;\r\n\r\n\t\tconst shareImageUrl = be.images.length ? this.getImageUrl(be.images[0]) + '/1200x800-shop-carousel' : undefined;\r\n\t\tconst meta: PageMetaFields = {\r\n\t\t\tdescription: this.props.getResourceText('BusinessEntityPage_MetaDescription', undefined, {\r\n\t\t\t\toptional: true,\r\n\t\t\t}),\r\n\t\t\tshareImageUrl: shareImageUrl,\r\n\t\t};\r\n\r\n\t\tconst mediaItems = this.getMediaItems(be);\r\n\r\n\t\treturn (\r\n\t\t\t<>\r\n\t\t\t\t<PageMeta title={title} meta={meta} />\r\n\t\t\t\t<div className=\"view-house\">\r\n\t\t\t\t\t<TopBar\r\n\t\t\t\t\t\tbackButton={{\r\n\t\t\t\t\t\t\ttarget: BuildBusinessEntityBrowserUrl(this.props.language, this.props.browserState),\r\n\t\t\t\t\t\t\ttext: <ResourceText resourceKey=\"BusinessEntityPage_BackToList\" defaultText=\"Lumo-talot\" />,\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t/>\r\n\r\n\t\t\t\t\t<div className=\"view-house__infoPrimary mod-houseInfo\">\r\n\t\t\t\t\t\t<div className=\"mod-houseInfo__wrapperOuter\">\r\n\t\t\t\t\t\t\t<div className=\"mod-houseInfo__wrapper-primary\">\r\n\t\t\t\t\t\t\t\t{!!badgeContents.length && (\r\n\t\t\t\t\t\t\t\t\t<div className=\"mod-houseInfo__tag -blue\">{badgeContents}</div>\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t<div className=\"mod-houseInfo__address\">\r\n\t\t\t\t\t\t\t\t\t<h1 className=\"mod-houseInfo__street\">{be.name}</h1>\r\n\t\t\t\t\t\t\t\t\t<h2 className=\"mod-houseInfo__city\">\r\n\t\t\t\t\t\t\t\t\t\t{be.municipalitySubArea && be.municipalitySubArea.name + ', '} {be.zipCode}{' '}\r\n\t\t\t\t\t\t\t\t\t\t{be.postOffice}\r\n\t\t\t\t\t\t\t\t\t</h2>\r\n\t\t\t\t\t\t\t\t\t{be.location && (\r\n\t\t\t\t\t\t\t\t\t\t<a href=\"\" className=\"mod-houseInfo__mapLink\" onClick={this.scrollToMap}>\r\n\t\t\t\t\t\t\t\t\t\t\t<ResourceText\r\n\t\t\t\t\t\t\t\t\t\t\t\tresourceKey=\"BusinessEntityPage_ShowMapLinkText\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tdefaultText=\"Katso kartalla\"\r\n\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t</a>\r\n\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t<span className=\"mod-houseInfo__mapLink-svg\">\r\n\t\t\t\t\t\t\t\t\t\t<svg\r\n\t\t\t\t\t\t\t\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\r\n\t\t\t\t\t\t\t\t\t\t\twidth=\"12\"\r\n\t\t\t\t\t\t\t\t\t\t\theight=\"8\"\r\n\t\t\t\t\t\t\t\t\t\t\tviewBox=\"0 0 12 8\"\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\t\t\t\tfill=\"#CF3F6C\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tfillRule=\"evenodd\"\r\n\t\t\t\t\t\t\t\t\t\t\t\td=\"M1.417.243L5.66 4.485 9.903.243l1.414 1.414L5.66 7.314.003 1.657 1.417.243z\"\r\n\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t</svg>\r\n\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t\t<ImageCarouselWithFullScreenSupport\r\n\t\t\t\t\t\t\t\tmediaItems={mediaItems}\r\n\t\t\t\t\t\t\t\tthumbDisplayMode=\"standard\"\r\n\t\t\t\t\t\t\t\ttelemetryContext=\"businessEntity\"\r\n\t\t\t\t\t\t\t/>\r\n\r\n\t\t\t\t\t\t\t<div className=\"mod-houseInfo__wrapper-secondary -noTopPadding\">\r\n\t\t\t\t\t\t\t\t<div className=\"mod-houseInfo__cta\">{this.formatCTA(be)}</div>\r\n\r\n\t\t\t\t\t\t\t\t<ul className=\"mod-houseInfo__mainDetails\">\r\n\t\t\t\t\t\t\t\t\t<li className=\"mod-houseInfo__mainDetails-single\">\r\n\t\t\t\t\t\t\t\t\t\t<div className=\"mod-houseInfo__mainDetails-icon -house\">\r\n\t\t\t\t\t\t\t\t\t\t\t<svg\r\n\t\t\t\t\t\t\t\t\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\r\n\t\t\t\t\t\t\t\t\t\t\t\twidth=\"33\"\r\n\t\t\t\t\t\t\t\t\t\t\t\theight=\"32\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tviewBox=\"0 0 33 32\"\r\n\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<defs>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<path id=\"a\" d=\"M0 0h33v32H0z\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t</defs>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<g fill=\"none\" fillRule=\"evenodd\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<mask id=\"b\" fill=\"#fff\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<use xlinkHref=\"#a\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</mask>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfill=\"#002663\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\td=\"M31.886 23.172l-1.528-4.414H13.91l-1.5 4.435 19.476-.021zm-1.843 1.103H14.237v5.518c0 .609.506 1.103 1.13 1.103h9.031v-5.517h4.516v5.517c.622 0 1.13-.494 1.13-1.103v-5.518zm-4.515 6.621h2.258v-4.414h-2.258v4.414zm-12.42-2.207v-4.414h-.714c-.759 0-1.296-.727-1.056-1.43l1.518-4.447c.15-.444.575-.743 1.054-.743h4.154V1.103H2.258v26.486c0 .607.504 1.1 1.125 1.1h1.133v-5.517h5.645v5.517h2.947zm-7.463 0h3.387v-4.414H5.645v4.414zm26.24-4.414h-.713v5.518c0 1.218-1.01 2.206-2.258 2.206H15.367c-1.248 0-2.258-.988-2.258-2.206H3.384c-1.246 0-2.255-.988-2.255-2.204V1.103H.565C.252 1.103 0 .856 0 .551S.252 0 .565 0h19.192c.312 0 .565.247.565.551s-.253.552-.565.552h-.564v16.552H30.37c.479 0 .904.299 1.057.744l1.516 4.446c.24.704-.297 1.43-1.057 1.43zM9.033 19.862h2.258v-2.207H9.032v2.207zm-4.516 0h2.258v-2.207H4.516v2.207zm9.032-4.414h2.258V13.24h-2.258v2.207zm-4.516 0h2.258V13.24H9.032v2.207zm-4.516 0h2.258V13.24H4.516v2.207zm9.032-4.414h2.258V8.827h-2.258v2.207zm-4.516 0h2.258V8.827H9.032v2.207zm-4.516 0h2.258V8.827H4.516v2.207zm15.366 18.759h2.258v-4.414h-2.258v4.414zm-3.387 0h2.258v-4.414h-2.258v4.414zm-.69-25.379c0-.61-.504-1.103-1.129-1.103s-1.129.493-1.129 1.103v2.207h2.258V4.414zm-4.516 0c0-.61-.504-1.103-1.129-1.103-.624 0-1.129.493-1.129 1.103v2.207h2.258V4.414zM6.773 6.621H4.515V4.414c0-.61.505-1.103 1.13-1.103s1.128.493 1.128 1.103v2.207z\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmask=\"url(#b)\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t\t\t\t\t\t</svg>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t\t\t\t\t<div className=\"mod-houseInfo__mainDetails-infoContainer\">\r\n\t\t\t\t\t\t\t\t\t\t\t<span className=\"mod-houseInfo__mainDetails-heading\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t{this.props.getResourceText(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t'General_BuildingType_' + be.buildingType,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tbe.buildingType,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttransform: 'capitalize',\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t<span className=\"mod-houseInfo__mainDetails-text\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<ResourceText resourceKey=\"BusinessEntityPage_ConstructionYear_Prefix\" />{' '}\r\n\t\t\t\t\t\t\t\t\t\t\t\t{be.constructionYear}\r\n\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t</li>\r\n\r\n\t\t\t\t\t\t\t\t\t{be.apartmentTypes && be.apartmentTypes.length ? (\r\n\t\t\t\t\t\t\t\t\t\t<li className=\"mod-houseInfo__mainDetails-single\">\r\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"mod-houseInfo__mainDetails-icon -floorplan\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<svg\r\n\t\t\t\t\t\t\t\t\t\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\twidth=\"26\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\theight=\"26\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tviewBox=\"0 0 26 26\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfill=\"#002663\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfillRule=\"evenodd\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\td=\"M25.071 13.929h-6.5v-2.322a.464.464 0 00-.928 0v5.597h.005c.013.244.211.439.46.439a.462.462 0 00.459-.44h.004v-2.346h6.5v9.286a.93.93 0 01-.928.928H18.57V23.68a.464.464 0 00-.928 0v1.392h-7.429c0-3.584-2.915-6.5-6.5-6.5h-.928v6.5h-.929a.93.93 0 01-.928-.928v-7.429h10.678a.464.464 0 000-.928H.93V1.857A.93.93 0 011.857.93h15.786v4.178a.464.464 0 00.928 0V.93h5.572a.93.93 0 01.928.928V13.93zM3.714 25.07V19.44a5.639 5.639 0 015.633 5.632H3.714zM24.143 0H1.857A1.858 1.858 0 000 1.857v22.286C0 25.168.832 26 1.857 26h22.286A1.858 1.858 0 0026 24.143V1.857A1.858 1.858 0 0024.143 0z\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</svg>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"mod-houseInfo__mainDetails-infoContainer\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t{be.apartmentTypes.map((t) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tconst areaMinStr = toFormattedString(t.minAreaInSqm, 1);\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tconst areaMaxStr = toFormattedString(t.maxAreaInSqm, 1);\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tkey={'apartment-count_' + t.roomCount}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"mod-houseInfo__mainDetails-infoMultiLine\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span className=\"mod-houseInfo__mainDetails-heading\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ResourceText\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tresourceKey={\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'BusinessEntityPage_ApartmentTypeByRoomCount_' +\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tt.roomCount\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdefaultText={t.roomCount.toString()}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span className=\"mod-houseInfo__mainDetails-text\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{t.count}{' '}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ResourceText\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tresourceKey=\"BusinessEntityPage_ApartmentTypeByRoomCount_Unit\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdefaultText=\"kpl\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span className=\"mod-houseInfo__mainDetails-text\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{areaMinStr == areaMaxStr ? (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tareaMinStr\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{areaMinStr}—{areaMaxStr}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}{' '}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tm²\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t\t''\r\n\t\t\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t\t\t{be.nextShowing && (\r\n\t\t\t\t\t\t\t\t\t\t<li className=\"mod-houseInfo__mainDetails-single\">\r\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"mod-houseInfo__mainDetails-icon -showing\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<svg\r\n\t\t\t\t\t\t\t\t\t\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\twidth=\"29px\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\theight=\"28px\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tviewBox=\"0 0 29 28\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<defs>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<path\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\td=\"M15.5833333,27.5 L16.5275,27.5 L17.16,24.75 L16.2158333,24.75 L15.5833333,27.5 Z M27.6558333,23.485 C27.61,23.5583333 27.5641667,23.6408333 27.5091667,23.7141667 C27.3331667,23.9286667 27.1269167,24.1138333 26.895,24.2641667 L27.6375,27.5 L28.5541667,27.5 L27.6558333,23.485 Z M0.861666667,23.7783333 L0,27.5 L0.916666667,27.5 L1.6225,24.42 C1.33191667,24.2540833 1.07433333,24.0368333 0.861666667,23.7783333 L0.861666667,23.7783333 Z M11.4216667,24.75 L12.0541667,27.5 L12.9983333,27.5 L12.3658333,24.75 L11.4216667,24.75 Z M26.2808333,21.7983333 L21.6241667,1.63166667 C21.5279167,1.20541667 21.1438333,0.905666667 20.7075,0.916666667 L7.975,0.916666667 C7.89616667,0.913916667 7.81733333,0.92125 7.74125,0.938666667 C7.24716667,1.0505 6.93733333,1.54091667 7.04916667,2.035 L11.7058333,22.2016667 C11.8020833,22.6288333 12.18525,22.9276667 12.6225,22.9166667 L25.355,22.9166667 C25.6373333,22.9185 25.9040833,22.78925 26.0791667,22.5683333 C26.25975,22.3556667 26.3349167,22.0724167 26.2808333,21.7983333 L26.2808333,21.7983333 Z M11.0916667,22.9166667 C10.99725,22.7599167 10.92575,22.5903333 10.8808333,22.4125 L6.41666667,3.06166667 L2.04416667,21.7891667 C1.98275,22.06325 2.05058333,22.3501667 2.2275,22.5683333 C2.40075,22.7865 2.66383333,22.91575 2.9425,22.9166667 L11.0916667,22.9166667 Z M27.18925,22.0009167 C27.1883333,23.0129167 26.3679167,23.83425 25.355,23.8333333 L2.98833333,23.8333333 C2.83341667,23.837 2.6785,23.8214167 2.52816667,23.7865833 C1.54183333,23.5583333 0.92675,22.5738333 1.155,21.5875 L5.81166667,1.42083333 C6.00416667,0.5885 6.74483333,0 7.59916667,0 L20.7075,0 C21.5609167,0 22.3025,0.5885 22.495,1.42083333 L27.1425,21.5875 C27.1745833,21.7231667 27.18925,21.8625 27.18925,22.0009167 L27.18925,22.0009167 Z M16.7291667,8.26833333 L21.2666667,11.3575 L17.9575,14.4375 L17.71,13.1908333 L13.3833333,13.1908333 L12.65,9.52416667 L16.9766667,9.52416667 L16.7291667,8.26833333 Z\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tid=\"path-1\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t></path>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</defs>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<g stroke=\"none\" strokeWidth=\"1\" fill=\"none\" fillRule=\"evenodd\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<g transform=\"translate(-27.000000, -884.000000)\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<rect\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfill=\"#FFF\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tx=\"0\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ty=\"0\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth=\"375\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\theight=\"5479\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t></rect>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<g transform=\"translate(26.000000, 883.000000)\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<g id=\"icons-/-library-/-icon-esittely\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<g>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<g transform=\"translate(1.250000, 1.250000)\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<mask id=\"mask-2\" fill=\"white\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<use xlinkHref=\"#path-1\"></use>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</mask>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<use\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tid=\"Page-1\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfill=\"#002663\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\txlinkHref=\"#path-1\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t></use>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<g mask=\"url(#mask-2)\" fill=\"#002663\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<g\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttransform=\"translate(-1.250000, -1.250000)\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tid=\"🎨-Color\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<rect\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tx=\"0\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ty=\"0\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth=\"30\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\theight=\"30\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t></rect>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</svg>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"mod-houseInfo__mainDetails-infoContainer\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<span className=\"mod-houseInfo__mainDetails-heading\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<ResourceText\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresourceKey=\"General_Showing\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttransform=\"capitalize\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdefaultText=\"Esittely\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<span className=\"mod-houseInfo__mainDetails-text\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{formatDateTimeRange(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbe.nextShowing.start,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbe.nextShowing.end,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tthis.props.language,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{be.nextShowing.description && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<br />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{be.nextShowing.description}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t</li>\r\n\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t</ul>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t<div className=\"view-house__infoSecondary\">\r\n\t\t\t\t\t\t<BusinessEntityInformation be={be} displayLevel=\"full\" language={this.props.language}>\r\n\t\t\t\t\t\t\t{be.brochureId && be.brochureTitle ? (\r\n\t\t\t\t\t\t\t\t<div className=\"mod-downloadMaterial -noTopPadding\">\r\n\t\t\t\t\t\t\t\t\t<div className=\"mod-downloadMaterial__wrapper\">\r\n\t\t\t\t\t\t\t\t\t\t<a\r\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"atom-downloadMaterial__box\"\r\n\t\t\t\t\t\t\t\t\t\t\thref={`${this.props.commonUiRoot}documents/marketing-business-entities/${be.brochureId}`}\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t<svg\r\n\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"atom-downloadMaterial__icon\"\r\n\t\t\t\t\t\t\t\t\t\t\t\twidth=\"33\"\r\n\t\t\t\t\t\t\t\t\t\t\t\theight=\"30\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tviewBox=\"0 0 33 30\"\r\n\t\t\t\t\t\t\t\t\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\r\n\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<g\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstroke=\"#CF3F6C\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstrokeWidth=\"2\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tfill=\"none\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tfillRule=\"evenodd\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstrokeLinecap=\"round\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tstrokeLinejoin=\"round\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<path d=\"M9.5 28.5h-5a3 3 0 01-3-3v-24h11l3 5h16v19a3 3 0 01-3 3h-5M16.5 28.5v-14\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<path d=\"M21.5 23.5l-5 5-5-5\" />\r\n\t\t\t\t\t\t\t\t\t\t\t\t</g>\r\n\t\t\t\t\t\t\t\t\t\t\t</svg>\r\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"atom-downloadMaterial__link\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<span className=\"atom-downloadMaterial__linkText\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{be.brochureTitle}\r\n\t\t\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t\t</a>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t) : undefined}\r\n\t\t\t\t\t\t</BusinessEntityInformation>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t{be.location && (\r\n\t\t\t\t\t\t<div ref={this.map} className=\"map-container\">\r\n\t\t\t\t\t\t\t<NearbyServices\r\n\t\t\t\t\t\t\t\tcenter={be.location}\r\n\t\t\t\t\t\t\t\tservices={be.nearbyServices}\r\n\t\t\t\t\t\t\t\tbusinessEntityId={be.id}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t<div className=\"mod-textBlocks -alignLeft -bgWhite\">\r\n\t\t\t\t\t\t<div className=\"mod-textBlocks__wrapper\">\r\n\t\t\t\t\t\t\t{be.municipalitySubAreaDescription && (\r\n\t\t\t\t\t\t\t\t<div className=\"mod-textBlock -noBottomBorder -altLayout\">\r\n\t\t\t\t\t\t\t\t\t<h2 className=\"mod-textBlock__heading -altFont\">{be.municipalitySubArea.name}</h2>\r\n\t\t\t\t\t\t\t\t\t<ExpandableContent\r\n\t\t\t\t\t\t\t\t\t\tclassName=\"mod-textBlock__text\"\r\n\t\t\t\t\t\t\t\t\t\tcontent={<MarkdownContent text={be.municipalitySubAreaDescription} />}\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t<div className=\"mod-textBlock -noBottomBorder -altLayout\">\r\n\t\t\t\t\t\t\t\t<h2 className=\"mod-textBlock__heading -altFont\">{be.municipality.name}</h2>\r\n\t\t\t\t\t\t\t\t<ArticleLinks {...this.getArticlesRequest()} variant=\"twoColumns\" />\r\n\r\n\t\t\t\t\t\t\t\t{be.municipalityDescription && (\r\n\t\t\t\t\t\t\t\t\t<ExpandableContent\r\n\t\t\t\t\t\t\t\t\t\tclassName=\"mod-textBlock__text\"\r\n\t\t\t\t\t\t\t\t\t\tcontent={<MarkdownContent text={be.municipalityDescription} />}\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t{be.benefits.length && (\r\n\t\t\t\t\t\t<BenefitsList\r\n\t\t\t\t\t\t\tbenefits={be.benefits}\r\n\t\t\t\t\t\t\tvariant=\"-bgBeige\"\r\n\t\t\t\t\t\t\theading={\r\n\t\t\t\t\t\t\t\t<ResourceText\r\n\t\t\t\t\t\t\t\t\tresourceKey=\"BusinessEntityPage_BenefitsHeading\"\r\n\t\t\t\t\t\t\t\t\tdefaultText=\"Mukavuudet & Lumo-edut\"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t<SuggestedApartmentsReel\r\n\t\t\t\t\t\tmaxAmount={9}\r\n\t\t\t\t\t\tsearchCriteria={{ location: { businessEntityIds: [be.id] } }}\r\n\t\t\t\t\t\tshowMoreLinkText={\r\n\t\t\t\t\t\t\tisOperationSuccess(municipalityApartmentCount) ? (\r\n\t\t\t\t\t\t\t\t<ResourceText\r\n\t\t\t\t\t\t\t\t\tresourceKey=\"BusinessEntityPage_SuggestedApartments_LinkText\"\r\n\t\t\t\t\t\t\t\t\tdefaultText=\"Katso muut vuokrattavissa olevat kodit samalla paikkakunnalla ({0} kpl) ›\"\r\n\t\t\t\t\t\t\t\t\tparameters={[municipalityApartmentCount.result.toString()]}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t) : undefined\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tshowMoreLinkUrl={GetUrlForSearchResults(this.props.language, be.municipality.slug)}\r\n\t\t\t\t\t\theading={\r\n\t\t\t\t\t\t\t<ResourceText\r\n\t\t\t\t\t\t\t\tresourceKey=\"BusinessEntityPage_SuggestedApartmentsHeading_Regular\"\r\n\t\t\t\t\t\t\t\tdefaultText=\"Voisit pitää myös näistä\"\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t/>\r\n\r\n\t\t\t\t\t<BannerApartmentAndBusinessEntity />\r\n\t\t\t\t</div>\r\n\t\t\t</>\r\n\t\t);\r\n\t}\r\n\r\n\tgetBadgeContents(be: BusinessEntityAM): (JSX.Element | string)[] {\r\n\t\tconst badgeContents: (JSX.Element | string)[] = [];\r\n\t\tconst addToBadgeContents = (element: JSX.Element | string) => {\r\n\t\t\tif (badgeContents.length) {\r\n\t\t\t\tbadgeContents.push(' - ');\r\n\t\t\t}\r\n\t\t\tbadgeContents.push(element);\r\n\t\t};\r\n\r\n\t\tif (be.isNew) {\r\n\t\t\taddToBadgeContents(\r\n\t\t\t\t<strong>\r\n\t\t\t\t\t<ResourceText resourceKey=\"BusinessEntityPage_Badge_New\" defaultText=\"Uudiskohde\" />\r\n\t\t\t\t</strong>,\r\n\t\t\t);\r\n\t\t}\r\n\t\tif (be.nextShowing) {\r\n\t\t\taddToBadgeContents(\r\n\t\t\t\tthis.props.getResourceText('General_Showing', 'esittely', { transform: 'capitalize' }) +\r\n\t\t\t\t\t' ' +\r\n\t\t\t\t\tformatBasicDateString(be.nextShowing.start),\r\n\t\t\t);\r\n\t\t}\r\n\t\treturn badgeContents;\r\n\t}\r\n\r\n\tformatCTA(be: BusinessEntityAM) {\r\n\t\tif (be.availableApartmentsCount > 0) {\r\n\t\t\tconst searchUrl = GetUrlForCriteria(\r\n\t\t\t\tthis.props.language,\r\n\t\t\t\t{ location: { businessEntityIds: [be.id] } },\r\n\t\t\t\tthis.props.allLocations,\r\n\t\t\t);\r\n\t\t\treturn (\r\n\t\t\t\t<Link className=\"mod-houseInfo__button\" to={searchUrl}>\r\n\t\t\t\t\t<ResourceText\r\n\t\t\t\t\t\tresourceKey=\"BusinessEntityPage_ShowApartmentsLink\"\r\n\t\t\t\t\t\tparameters={[String(be.availableApartmentsCount)]}\r\n\t\t\t\t\t\tdefaultText=\"Näytä talon vapaat asunnot ({0})\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t</Link>\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\treturn (\r\n\t\t\t<>\r\n\t\t\t\t<button\r\n\t\t\t\t\tid=\"businessEntityPage_RentalServiceRequest\"\r\n\t\t\t\t\tclassName=\"mod-houseInfo__button\"\r\n\t\t\t\t\tonClick={(ev) => this.onCreateRentalServiceRequest(ev, be)}\r\n\t\t\t\t>\r\n\t\t\t\t\t<ResourceText resourceKey=\"BusinessEntityPage_CreateRentalServiceRequest\" />\r\n\t\t\t\t</button>\r\n\t\t\t\t<br />\r\n\t\t\t\t<button className=\"mod-houseInfo__button\" onClick={(ev) => this.onCreateSearchWatch(ev, be)}>\r\n\t\t\t\t\t<ResourceText resourceKey=\"BusinessEntityPage_CreateSearchWatch\" defaultText=\"Jätä hakuvahti\" />\r\n\t\t\t\t</button>\r\n\t\t\t\t<p className=\"mod-houseInfo__additionalText\">\r\n\t\t\t\t\t<ResourceText resourceKey=\"BusinessEntityPage_NoAvailableApartments\" />\r\n\t\t\t\t</p>\r\n\t\t\t</>\r\n\t\t);\r\n\t}\r\n\r\n\tprivate getMediaItems(be: BusinessEntityAM): MediaItem[] {\r\n\t\tconst images = be.images.map(\r\n\t\t\t(i: ImageAM): ImageItem => ({\r\n\t\t\t\t...i,\r\n\t\t\t\tkind: 'image',\r\n\t\t\t\turl: this.getImageUrl(i),\r\n\t\t\t\t...housingImagesPresetConfig,\r\n\t\t\t\taltText: '',\r\n\t\t\t}),\r\n\t\t);\r\n\t\tconst linkedMedia = be.linkedMedia.map(\r\n\t\t\t(m: LinkedMediaAM): LinkedMediaItem => ({\r\n\t\t\t\t...m,\r\n\t\t\t\tkind: 'linkedMedia',\r\n\t\t\t\t...housingImagesPresetConfig,\r\n\t\t\t}),\r\n\t\t);\r\n\t\tconst mediaItems: MediaItem[] = [];\r\n\t\tmediaItems.push(...images);\r\n\t\tmediaItems.push(...linkedMedia);\r\n\t\treturn mediaItems;\r\n\t}\r\n\r\n\tprivate onCreateRentalServiceRequest = (e: React.MouseEvent, be: BusinessEntityAM) => {\r\n\t\te.preventDefault();\r\n\r\n\t\tthis.props.initRentalServiceRequestCreation({\r\n\t\t\tsearchCriteria: {\r\n\t\t\t\tlocation: {\r\n\t\t\t\t\tbusinessEntityIds: [be.id],\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t});\r\n\t\tthis.props.navigate(routeFromRoot(routes.rentalServiceRequest)[this.props.language]);\r\n\t};\r\n\r\n\tprivate onCreateSearchWatch = (e: React.MouseEvent, be: BusinessEntityAM) => {\r\n\t\te.preventDefault();\r\n\r\n\t\tthis.props.initNewSearchWatchCreation({\r\n\t\t\tlanguage: this.props.language,\r\n\t\t\tsearchCriteria: {\r\n\t\t\t\tlocation: {\r\n\t\t\t\t\tbusinessEntityIds: [be.id],\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t});\r\n\t\tthis.props.navigate(routeFromRoot(routes.searchWatch)[this.props.language]);\r\n\t};\r\n\r\n\tprivate scrollToMap = (e: React.MouseEvent) => {\r\n\t\tif (this.map.current) {\r\n\t\t\tthis.map.current.scrollIntoView();\r\n\t\t}\r\n\t\te.preventDefault();\r\n\t};\r\n\r\n\tsetLayoutProps = (be: BusinessEntityAM) => {\r\n\t\tif (!be) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst language = this.props.language;\r\n\r\n\t\tthis.props.setLayoutValues({\r\n\t\t\tbreadcrumbCurrentName: be.name,\r\n\t\t\tbreadcrumbParents: [\r\n\t\t\t\t{\r\n\t\t\t\t\tname: this.props.getResourceText('BreadCrumb_Houses', 'Lumo-talot'),\r\n\t\t\t\t\tpath: BuildBusinessEntityBrowserUrl(language),\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tname: be.municipality.name,\r\n\t\t\t\t\tpath: BuildBusinessEntityBrowserUrl(language, { municipalities: [be.municipality] }),\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\ttranslateUrl: createTranslatedUrlsUsing((l) => BuildBusinessEntityUrl(l, be)),\r\n\t\t});\r\n\t};\r\n\r\n\tprivate getImageUrl(i: ImageAM) {\r\n\t\treturn `${this.props.commonUiRoot}images/business-entities/${i.id}`;\r\n\t}\r\n}\r\n\r\nconst mapStateToProps = ({\r\n\tbusinessEntities,\r\n\tbusinessEntityPage,\r\n\tlocationData,\r\n\tlanguage,\r\n\tsettings,\r\n}: ILumoOneAppState): BusinessEntityPageStateProps => ({\r\n\tbrowserState: businessEntities.browserState,\r\n\tbusinessEntityState: businessEntityPage,\r\n\tallLocations: locationData.locationData!,\r\n\tlanguage: language.currentLanguage,\r\n\tcommonUiRoot: settings.settings!.commonUiRoot,\r\n});\r\n\r\nexport default withResourceTextSupport(\r\n\twithSsrSupport(\r\n\t\tconnect<BusinessEntityPageStateProps, BusinessEntityPageDispatchProps>(mapStateToProps, {\r\n\t\t\tgetBusinessEntityById: businessEntityPageActions.getBusinessEntityById.request,\r\n\t\t\tsetLayoutValues: layoutActions.setValues,\r\n\t\t\tgetApartmentCount: businessEntityPageActions.getApartmentCount.request,\r\n\t\t\tinitRentalServiceRequestCreation: rentalServiceRequestActions.initRequestCreationData,\r\n\t\t\tinitNewSearchWatchCreation: createSearchWatchActions.initNewSearchWatchCreation,\r\n\t\t\tpageComplete: pageViewTelemetryActions.pageComplete,\r\n\t\t})(BusinessEntityPage),\r\n\t),\r\n);\r\n","import React from 'react';\nimport { LinkWithBackground } from './LinkWithBackground';\nimport { ResourceText, withResourceTextSupport, IUseResourceTexts } from './ResourceText';\nimport { useCommonUiRoot } from '../hooks/useSetting';\n\nexport const BannerApartmentAndBusinessEntity = withResourceTextSupport(function BannerApartmentAndBusinessEntity(\n\tprops: IUseResourceTexts,\n) {\n\tconst commonUiRoot = useCommonUiRoot();\n\n\treturn LinkWithBackground({\n\t\theading: (\n\t\t\t<ResourceText\n\t\t\t\tresourceKey=\"Banner_ApartmentAndBusinessEntity_Heading\"\n\t\t\t\tdefaultText=\"Lumo-asukkaana saat enemmän\"\n\t\t\t/>\n\t\t),\n\t\tcontent: <ResourceText resourceKey=\"Banner_ApartmentAndBusinessEntity_Text\" textType=\"Markdown\" />,\n\t\tlinkTarget: props.getResourceText('Banner_ApartmentAndBusinessEntity_Link', '#'),\n\t\tlinkText: (\n\t\t\t<ResourceText resourceKey=\"Banner_ApartmentAndBusinessEntity_LinkText\" defaultText=\"Tutustu etuihin\" />\n\t\t),\n\t\timage: props.getResourceImageUrlByKey(commonUiRoot, 'Banner_ApartmentAndBusinessEntity_Background', true),\n\t\timageMedium: props.getResourceImageUrlByKey(\n\t\t\tcommonUiRoot,\n\t\t\t'Banner_ApartmentAndBusinessEntity_Background_med',\n\t\t\ttrue,\n\t\t),\n\t\timageSmall: props.getResourceImageUrlByKey(\n\t\t\tcommonUiRoot,\n\t\t\t'Banner_ApartmentAndBusinessEntity_Background_small',\n\t\t\ttrue,\n\t\t),\n\t});\n});\n","import React, { useState } from 'react';\nimport { BusinessEntityAM, BusinessEntityFeature } from '../../Apartments/Api/BusinessEntityAM';\nimport { ResourceText, IUseResourceTexts, withResourceTextSupport, useResource } from '../../Components/ResourceText';\nimport { ApartmentBusinessEntityAM } from '../../Apartments/Api/ApartmentAM';\nimport { filterInOrder } from '../../Components/arrayUtilities';\nimport { ExpandableContent } from '../../Components/ExpandableContent';\nimport { MarkdownContent } from '../../Components/MarkdownContent';\nimport { Button, IconUIInfo, Tooltip } from '@kojamo/lumo-dls';\nimport { Language } from '../../Common/interfaces/language';\n\nfunction BusinessEntityInformation(\n\tprops: {\n\t\tbe: BusinessEntityAM | ApartmentBusinessEntityAM;\n\t\tdisplayLevel: 'full' | 'apartmentPage';\n\t\tlanguage: Language;\n\t\tchildren?: React.ReactElement;\n\t} & IUseResourceTexts,\n) {\n\tconst be = props.be;\n\n\tconst shownFields = be.isPreMarketing ? 'preMarketing' : props.displayLevel;\n\n\tconst formatParkingSpacesContent = () => {\n\t\tif (be.isPreMarketing) {\n\t\t\treturn null;\n\t\t}\n\n\t\tif (be.externalParkingSpaceManagementDescription) {\n\t\t\treturn (\n\t\t\t\t<>\n\t\t\t\t\t<ResourceText\n\t\t\t\t\t\tresourceKey=\"BusinessEntityPage_ExternalParkingSpaceManagementDescription_Prefix\"\n\t\t\t\t\t\tdefaultText=\"Autopaikan tiedustelut: \"\n\t\t\t\t\t/>{' '}\n\t\t\t\t\t{be.externalParkingSpaceManagementDescription}\n\t\t\t\t</>\n\t\t\t);\n\t\t}\n\t\tif (be.availableParkingSpaceCount != undefined) {\n\t\t\treturn (\n\t\t\t\t<ResourceText\n\t\t\t\t\tresourceKey=\"BusinessEntityPage_ParkingSpaceManagementLink\"\n\t\t\t\t\tdefaultText=\"[Katso talon vapaat autopaikat ›](https://my.lumo.fi/autopaikat/{0})\"\n\t\t\t\t\tparameters={[be.id]}\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\treturn null;\n\t};\n\n\tconst desiredCommunalAreas: BusinessEntityFeature[] = [\n\t\t'BikeStorage',\n\t\t'ClubRoom',\n\t\t'Sauna',\n\t\t'CommonSauna',\n\t\t'LaundryRoom',\n\t\t'CommonLaundryRoom',\n\t\t'DryingRoom',\n\t\t'CommonDryingRoom',\n\t\t'Cellar',\n\t\t'CommonCellar',\n\t\t'Storage',\n\t\t'Shelter',\n\t\t'Gym',\n\t];\n\n\tconst formatParkingSpaces = () => {\n\t\tconst content = formatParkingSpacesContent();\n\t\tif (!content) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn (\n\t\t\t<li className=\"mod-textBlock__listingItem\">\n\t\t\t\t<div className=\"mod-textBlock__listingHeading\">\n\t\t\t\t\t<ResourceText resourceKey=\"BusinessEntityPage_ParkingSpaces\" defaultText=\"Autopaikat\" />\n\t\t\t\t</div>\n\t\t\t\t<div className=\"mod-textBlock__listingText\">{content}</div>\n\t\t\t</li>\n\t\t);\n\t};\n\n\tconst communalAreaFeatures = filterInOrder(be.features, ...desiredCommunalAreas);\n\n\tconst localizedMarketingText =\n\t\tprops.language === 'en' && be.marketingTextEn ? be.marketingTextEn : be.marketingText;\n\n\treturn (\n\t\t<div className=\"mod-entityInfo -alignLeft\">\n\t\t\t{localizedMarketingText && (\n\t\t\t\t<div className=\"mod-textBlock -themeBrown\">\n\t\t\t\t\t{'marketingTextTitle' in be && <h2 className=\"mod-textBlock__heading\">{be.marketingTextTitle}</h2>}\n\t\t\t\t\t<ExpandableContent\n\t\t\t\t\t\tclassName=\"mod-textBlock__text\"\n\t\t\t\t\t\tcontent={\n\t\t\t\t\t\t\tbe.isPreMarketing ? (\n\t\t\t\t\t\t\t\t<MarkdownContent text={localizedMarketingText!} />\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<div dangerouslySetInnerHTML={{ __html: localizedMarketingText! }} />\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t<div className=\"mod-textBlock -themeBrown -noBottomBorder\">\n\t\t\t\t<ul className=\"mod-textBlock__listing\">\n\t\t\t\t\t<li className=\"mod-textBlock__listingItem\">\n\t\t\t\t\t\t<div className=\"mod-textBlock__listingHeading\">\n\t\t\t\t\t\t\t<ResourceText resourceKey=\"BusinessEntityPage_BuildingType\" defaultText=\"Rakennustyyppi\" />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div className=\"mod-textBlock__listingText\">\n\t\t\t\t\t\t\t<ResourceText\n\t\t\t\t\t\t\t\tresourceKey={'General_BuildingType_' + be.buildingType}\n\t\t\t\t\t\t\t\ttransform=\"capitalize\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</li>\n\t\t\t\t\t{shownFields != 'preMarketing' && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<li className=\"mod-textBlock__listingItem\">\n\t\t\t\t\t\t\t\t<div className=\"mod-textBlock__listingHeading\">\n\t\t\t\t\t\t\t\t\t<ResourceText\n\t\t\t\t\t\t\t\t\t\tresourceKey=\"BusinessEntityPage_ConstructionYear\"\n\t\t\t\t\t\t\t\t\t\tdefaultText=\"Rakennusvuosi\"\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div className=\"mod-textBlock__listingText\">{be.constructionYear}</div>\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t{be.energyEfficiencyClass && (\n\t\t\t\t\t\t\t\t<li className=\"mod-textBlock__listingItem\">\n\t\t\t\t\t\t\t\t\t<div className=\"mod-textBlock__listingHeading\">\n\t\t\t\t\t\t\t\t\t\t<ResourceText\n\t\t\t\t\t\t\t\t\t\t\tresourceKey=\"BusinessEntityPage_EnergyEfficiencyClass\"\n\t\t\t\t\t\t\t\t\t\t\tdefaultText=\"Energialuokka\"\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<div className=\"mod-textBlock__listingText\">{be.energyEfficiencyClass}</div>\n\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</>\n\t\t\t\t\t)}\n\n\t\t\t\t\t{shownFields == 'full' && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<li className=\"mod-textBlock__listingItem\">\n\t\t\t\t\t\t\t\t<div className=\"mod-textBlock__listingHeading\">\n\t\t\t\t\t\t\t\t\t<ResourceText\n\t\t\t\t\t\t\t\t\t\tresourceKey=\"BusinessEntityPage_IsTenantSelectionFinanciallyLimited\"\n\t\t\t\t\t\t\t\t\t\tdefaultText=\"Varallisuusrajoitettu\"\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div className=\"mod-textBlock__listingText\">\n\t\t\t\t\t\t\t\t\t<ResourceText\n\t\t\t\t\t\t\t\t\t\tresourceKey={\n\t\t\t\t\t\t\t\t\t\t\t'BusinessEntityPage_IsTenantSelectionFinanciallyLimited_' +\n\t\t\t\t\t\t\t\t\t\t\tbe.isTenantSelectionFinanciallyLimited\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdefaultText=\"Kyllä, [lue lisää ›](/???) \"\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</li>\n\n\t\t\t\t\t\t\t{be.hasElevator != undefined && (\n\t\t\t\t\t\t\t\t<li className=\"mod-textBlock__listingItem\">\n\t\t\t\t\t\t\t\t\t<div className=\"mod-textBlock__listingHeading\">\n\t\t\t\t\t\t\t\t\t\t<ResourceText resourceKey=\"General_Elevator\" defaultText=\"Hissi\" />\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<div className=\"mod-textBlock__listingText\">\n\t\t\t\t\t\t\t\t\t\t<ResourceText resourceKey={'General_' + (be.hasElevator ? 'Yes' : 'No')} />\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</>\n\t\t\t\t\t)}\n\n\t\t\t\t\t{shownFields != 'preMarketing' && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<li className=\"mod-textBlock__listingItem\">\n\t\t\t\t\t\t\t\t<div className=\"mod-textBlock__listingHeading\">\n\t\t\t\t\t\t\t\t\t<ResourceText\n\t\t\t\t\t\t\t\t\t\tresourceKey=\"General_AntennaSystem\"\n\t\t\t\t\t\t\t\t\t\tdefaultText=\"Antennijärjestelmä\"\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div className=\"mod-textBlock__listingText\">\n\t\t\t\t\t\t\t\t\t{be.cableTV && be.cableTV.available ? (\n\t\t\t\t\t\t\t\t\t\tbe.cableTV.provider ? (\n\t\t\t\t\t\t\t\t\t\t\t<ResourceText\n\t\t\t\t\t\t\t\t\t\t\t\tresourceKey=\"BusinessEntityPage_DvbCWithProvider\"\n\t\t\t\t\t\t\t\t\t\t\t\tparameters={[be.cableTV.provider]}\n\t\t\t\t\t\t\t\t\t\t\t\tdefaultText=\"Kaapeli-TV (DVB-C): {0}\"\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t<ResourceText\n\t\t\t\t\t\t\t\t\t\t\t\tresourceKey=\"BusinessEntityPage_DvbCWithoutProvider\"\n\t\t\t\t\t\t\t\t\t\t\t\tdefaultText=\"Kaapeli-TV (DVB-C)\"\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<ResourceText\n\t\t\t\t\t\t\t\t\t\t\tresourceKey=\"BusinessEntityPage_DvbT\"\n\t\t\t\t\t\t\t\t\t\t\tdefaultText=\"Antenni (DVB-T)\"\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t<li className=\"mod-textBlock__listingItem\">\n\t\t\t\t\t\t\t\t<div className=\"mod-textBlock__listingHeading\">\n\t\t\t\t\t\t\t\t\t<ResourceText resourceKey=\"General_Broadband\" />\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t{be.broadband && (\n\t\t\t\t\t\t\t\t\t<div className=\"mod-textBlock__listingText\">\n\t\t\t\t\t\t\t\t\t\t{`${be.broadband.provider} ${be.broadband.speed}`}\n\t\t\t\t\t\t\t\t\t\t{be.broadband.type === 'Mobile' && (\n\t\t\t\t\t\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t\t\t\t\t<ResourceText resourceKey=\"BusinessEntityPage_BroadbandType_Mobile\" />)\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t</>\n\t\t\t\t\t)}\n\t\t\t\t\t{shownFields == 'full' && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{be.isNonSmoking && (\n\t\t\t\t\t\t\t\t<li className=\"mod-textBlock__listingItem\">\n\t\t\t\t\t\t\t\t\t<div className=\"mod-textBlock__listingHeading\">\n\t\t\t\t\t\t\t\t\t\t<ResourceText\n\t\t\t\t\t\t\t\t\t\t\tresourceKey=\"BusinessEntityPage_NonSmokingHouse_Heading\"\n\t\t\t\t\t\t\t\t\t\t\tdefaultText=\"Savuton talo\"\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<div className=\"mod-textBlock__listingText\">\n\t\t\t\t\t\t\t\t\t\t<ResourceText\n\t\t\t\t\t\t\t\t\t\t\tresourceKey=\"BusinessEntityPage_NonSmokingHouse_Description\"\n\t\t\t\t\t\t\t\t\t\t\tdefaultText=\"Talo on savuton. Tupakointi asunnoissa, parvekkeilla ja talon yhteistiloissa on\n kielletty. Tupakointipaikka löytyy piha-alueelta.\"\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{formatParkingSpaces()}\n\t\t\t\t\t\t</>\n\t\t\t\t\t)}\n\t\t\t\t\t{!!communalAreaFeatures.length && (\n\t\t\t\t\t\t<li className=\"mod-textBlock__listingItem\">\n\t\t\t\t\t\t\t<div className=\"mod-textBlock__listingHeading\">\n\t\t\t\t\t\t\t\t<ResourceText\n\t\t\t\t\t\t\t\t\tresourceKey=\"BusinessEntityPage_CommunalAreas\"\n\t\t\t\t\t\t\t\t\tdefaultText=\"Talon yhteiset tilat\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div className=\"mod-textBlock__listingText\">\n\t\t\t\t\t\t\t\t{communalAreaFeatures.map((f, idx) => (\n\t\t\t\t\t\t\t\t\t<TextFeature feature={f} isFirst={idx === 0} />\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t)}\n\t\t\t\t</ul>\n\t\t\t</div>\n\t\t\t{props.children && props.children}\n\t\t</div>\n\t);\n}\n\nexport default withResourceTextSupport(BusinessEntityInformation);\n\nfunction TextFeature({ feature, isFirst }: { feature: BusinessEntityFeature; isFirst: boolean }) {\n\tconst { getResourceText } = useResource();\n\tconst resourceKey = 'BusinessEntityPage_Feature_' + feature;\n\tconst text = getResourceText(resourceKey, feature, { transform: isFirst ? 'capitalize' : undefined });\n\tconst desc = getResourceText(`${resourceKey}_Description`, undefined, { optional: true });\n\tconst [open, setOpen] = useState(false);\n\treturn (\n\t\t<React.Fragment key={feature}>\n\t\t\t{isFirst ? '' : ', '}\n\t\t\t{text}\n\t\t\t{!!desc && (\n\t\t\t\t<Tooltip\n\t\t\t\t\ttrigger={\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"icon\"\n\t\t\t\t\t\t\tisSmall\n\t\t\t\t\t\t\tstyle={{ transform: 'translateY(20%)', marginTop: '-8px' }}\n\t\t\t\t\t\t\tonClick={() => setOpen(!open)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<IconUIInfo />\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t}\n\t\t\t\t\tcontentProps={{ style: { zIndex: 101 } }}\n\t\t\t\t\topen={open}\n\t\t\t\t\tonOpenChange={setOpen}\n\t\t\t\t>\n\t\t\t\t\t{desc}\n\t\t\t\t</Tooltip>\n\t\t\t)}\n\t\t</React.Fragment>\n\t);\n}\n","import React, { useState, useEffect } from 'react';\nimport { ResourceText, useLanguage } from '../Components/ResourceText';\nimport { ApartmentBenefitAM } from '../Apartments/Api/ApartmentAM';\nimport { LazyImage } from '../Components/LazyImage';\nimport { Link } from 'react-router-dom';\nimport { routeFromRoot, routes } from '../Common/routes';\nimport { getBenefitIconUrl } from './BenefitUtils';\n\nexport function BenefitsList(props: {\n\tbenefits: ApartmentBenefitAM[];\n\tvariant?: '-bgBeige';\n\theading: React.ReactElement;\n\tshowAll?: boolean;\n}) {\n\tconst [showAll, setShowAll] = useState(props.showAll || false);\n\n\tconst shownBenefitCount = 5;\n\n\tuseEffect(() => setShowAll(props.showAll || false), [props.showAll]);\n\tconst language = useLanguage();\n\n\treturn (\n\t\t<div\n\t\t\tid=\"benefits\"\n\t\t\tclassName={\n\t\t\t\t'mod-placeFeatures' +\n\t\t\t\t(showAll ? ' -open' : '') +\n\t\t\t\t(props.variant ? ' ' + props.variant : '') +\n\t\t\t\t(props.benefits.length <= shownBenefitCount || showAll ? ' -allVisible' : '')\n\t\t\t}\n\t\t>\n\t\t\t<div className=\"mod-placeFeatures__wrapper\">\n\t\t\t\t<h2 className=\"mod-placeFeatures__heading\">{props.heading}</h2>\n\t\t\t\t<ul className=\"mod-placeFeatures__list\">\n\t\t\t\t\t{props.benefits.map((b, idx) => (\n\t\t\t\t\t\t<li\n\t\t\t\t\t\t\tclassName={\n\t\t\t\t\t\t\t\t'mod-placeFeatures__listItem' + (idx >= shownBenefitCount && !showAll ? ' -hidden' : '')\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tkey={b.heading}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div className=\"mod-placeFeatures__listIcon\">\n\t\t\t\t\t\t\t\t<LazyImage src={getBenefitIconUrl(b)} height=\"31\" />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div className=\"mod-placeFeatures__listWrapper\">\n\t\t\t\t\t\t\t\t<p className=\"mod-placeFeatures__listHeading\">{b.heading}</p>\n\t\t\t\t\t\t\t\t<div className=\"mod-placeFeatures__listDesc\">\n\t\t\t\t\t\t\t\t\t<Link\n\t\t\t\t\t\t\t\t\t\tto={`${routeFromRoot(routes.benefits)[language]}#${b.technicalName}`}\n\t\t\t\t\t\t\t\t\t\tclassName=\"plainLink\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<ResourceText resourceKey=\"Benefits_ReadMore\" />\n\t\t\t\t\t\t\t\t\t</Link>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t))}\n\t\t\t\t</ul>\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"mod-placeFeatures__showMore\"\n\t\t\t\t\tstyle={{ display: props.benefits.length <= shownBenefitCount || showAll ? 'none' : undefined }}\n\t\t\t\t>\n\t\t\t\t\t<button\n\t\t\t\t\t\tclassName=\"atom-button atom-button--clear button--show-more\"\n\t\t\t\t\t\tonClick={() => setShowAll(true)}\n\t\t\t\t\t>\n\t\t\t\t\t\t<ResourceText resourceKey=\"Benefits_ShowMore\" defaultText=\"Näytä lisää\" />\n\t\t\t\t\t</button>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n","import React, { useEffect, useState } from 'react';\r\nimport { useForm } from 'react-hook-form';\r\nimport { contactActions } from '../Contact/contactActions';\r\nimport { MarketingBusinessEntityContactAM } from '../Contact/contactApiClient';\r\nimport { connect } from 'react-redux';\r\nimport { ILumoOneAppState } from '../boot/configureStore';\r\nimport { LanguageProps } from '../Common/language';\r\nimport { BusinessEntityAM } from '../Apartments/Api/BusinessEntityAM';\r\nimport { formatBasicDateString } from '../DateUtils';\r\nimport { ResourceText, IUseResourceTexts, withResourceTextSupport } from '../Components/ResourceText';\r\nimport { MarketingBusinessEntityContactFormState } from '../Contact/contactState';\r\nimport { LoadingSpinner } from '../Components/LoadingSpinner';\r\nimport { ErrorMessageDisplay } from '../Components/ErrorMessageDisplay';\r\nimport { LocationBusinessEntity, LocationData } from '../LocationDataProvider/LocationData';\r\nimport {\r\n\tBuildBusinessEntityUrl,\r\n\tBuildBusinessEntityBrowserUrl,\r\n\tBuildMarketingBusinessEntityMarketingInterestUrl,\r\n} from './Url/BusinessEntityUrlParser';\r\nimport { Link } from 'react-router-dom';\r\nimport { layoutActions } from '../Common/Layout/layoutActions';\r\nimport { businessEntityPageActions } from './Page/businessEntityPageActions';\r\nimport { WaitingButton } from '../Components/WaitingButton';\r\nimport { OperationState, isAlreadyRequested, isOperationSuccess } from '../Common/Api/ApiOperationState';\r\nimport { createTranslatedUrlsUsing } from '../Common/Layout/layoutState';\r\nimport { pageViewTelemetryActions } from '../Telemetry/pageViewTelemetryActions';\r\nimport PageMeta from '../Common/Layout/PageMeta';\r\nimport { addRegisterForPremarketingEvent } from '../Telemetry/TelemetryManager';\r\nimport { CheckBox } from '../Components/CheckBox';\r\nimport { newsletterActions } from '../Components/Newsletter/newsletterActions';\r\nimport { addTelemetryEventForNewsletterSubscription } from '../Components/Newsletter/Telemetry';\r\nimport { useLocation } from 'react-router-dom';\r\nimport { useRunOnce } from '../SSR/inlineRenderDispatchHelper';\r\n\r\nexport interface IMarketingBusinessEntityContactFormParams {\r\n\tlocationBusinessEntity: LocationBusinessEntity;\r\n}\r\ninterface DispatchProps {\r\n\tgetBusinessEntityById: typeof businessEntityPageActions.getBusinessEntityById.request;\r\n\tsendPremarketingContact: typeof contactActions.sendMarketingBusinessEntityContact.request;\r\n\tclearMarketingBusinessEntityContact: typeof contactActions.clearMarketingBusinessEntityContact;\r\n\tsetLayoutValues: typeof layoutActions.setValues;\r\n\tpageComplete: typeof pageViewTelemetryActions.pageComplete;\r\n\tsubscribeToNewsletter: typeof newsletterActions.subscribe.request;\r\n}\r\ntype ReduxProps = MarketingBusinessEntityContactFormState &\r\n\tLanguageProps & {\r\n\t\tbusinessEntity?: OperationState<BusinessEntityAM>;\r\n\t\tlocationData: LocationData | undefined;\r\n\t};\r\n\r\ntype Props = IMarketingBusinessEntityContactFormParams & ReduxProps & DispatchProps & IUseResourceTexts;\r\n\r\nfunction MarketingBusinessEntityContactForm(props: Props) {\r\n\tconst { register, handleSubmit } = useForm();\r\n\tconst [subscribeToNewsletter, setSubscribeToNewsletter] = useState<boolean>(false);\r\n\tconst location = useLocation();\r\n\tconst scrollToTop = () => {\r\n\t\tsetTimeout(function () {\r\n\t\t\twindow.scrollTo(0, 0);\r\n\t\t}, 10);\r\n\t};\r\n\r\n\tuseEffect(() => {\r\n\t\tprops.clearMarketingBusinessEntityContact();\r\n\t}, []);\r\n\r\n\tuseEffect(scrollToTop, [props.submitSucceeded]);\r\n\tuseEffect(() => {\r\n\t\tif (props.locationData && !isAlreadyRequested(props.businessEntity, props.locationBusinessEntity.id)) {\r\n\t\t\tprops.getBusinessEntityById({ id: props.locationBusinessEntity.id, allLocations: props.locationData });\r\n\t\t}\r\n\t}, [props.locationBusinessEntity]);\r\n\tuseEffect(() => {\r\n\t\tif (isOperationSuccess(props.businessEntity, props.locationBusinessEntity.id)) {\r\n\t\t\tprops.pageComplete({});\r\n\t\t}\r\n\t}, [props.businessEntity?.status, props.locationBusinessEntity.id]);\r\n\r\n\tconst onSubmit = (data: MarketingBusinessEntityContactAM) => {\r\n\t\tif (!isOperationSuccess(props.businessEntity)) {\r\n\t\t\tthrow new Error('No business entity available!');\r\n\t\t}\r\n\t\tprops.sendPremarketingContact({ id: props.businessEntity.result.id, contact: data });\r\n\t\taddRegisterForPremarketingEvent(location.pathname);\r\n\r\n\t\tif (subscribeToNewsletter) {\r\n\t\t\tprops.subscribeToNewsletter({\r\n\t\t\t\temail: data.email,\r\n\t\t\t\tfirstname: data.firstName,\r\n\t\t\t\tlastname: data.lastName,\r\n\t\t\t\tmunicipalities: [props.businessEntity.result.municipality.name],\r\n\t\t\t});\r\n\t\t\taddTelemetryEventForNewsletterSubscription('ennakkomarkkinointi');\r\n\t\t}\r\n\t};\r\n\r\n\tconst setLayoutProps = () => {\r\n\t\tif (!isOperationSuccess(props.businessEntity)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst be = props.businessEntity.result;\r\n\r\n\t\tconst language = props.language;\r\n\r\n\t\tprops.setLayoutValues({\r\n\t\t\tbreadcrumbCurrentName: props.getResourceText(\r\n\t\t\t\t'BreadCrumb_MarketingBusinessEntityContactForm',\r\n\t\t\t\t'Ilmoitus kiinnostuksesta',\r\n\t\t\t),\r\n\t\t\tbreadcrumbParents: [\r\n\t\t\t\t{\r\n\t\t\t\t\tname: props.getResourceText('BreadCrumb_Houses', 'Lumo-talot'),\r\n\t\t\t\t\tpath: BuildBusinessEntityBrowserUrl(language),\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tname: be.municipality.name,\r\n\t\t\t\t\tpath: BuildBusinessEntityBrowserUrl(language, { municipalities: [be.municipality] }),\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tname: be.name,\r\n\t\t\t\t\tpath: BuildBusinessEntityUrl(language, be),\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t\ttranslateUrl: createTranslatedUrlsUsing((l) => BuildMarketingBusinessEntityMarketingInterestUrl(l, be)),\r\n\t\t});\r\n\t};\r\n\r\n\tuseRunOnce(() => setLayoutProps());\r\n\r\n\tuseEffect(() => {\r\n\t\tif (isOperationSuccess(props.businessEntity, props.locationBusinessEntity.id)) {\r\n\t\t\tsetLayoutProps();\r\n\t\t}\r\n\t}, [props.businessEntity]);\r\n\r\n\tif (!isOperationSuccess(props.businessEntity, props.locationBusinessEntity.id)) {\r\n\t\treturn <LoadingSpinner />;\r\n\t}\r\n\r\n\tconst be = props.businessEntity.result;\r\n\tconst withTitle = (content: JSX.Element) => (\r\n\t\t<>\r\n\t\t\t<PageMeta\r\n\t\t\t\ttitle={props.getResourceText('WindowTitle_MarketingBusinessEntityContactForm', '{0} - kiinnostunut', {\r\n\t\t\t\t\tparameters: [be.name],\r\n\t\t\t\t})}\r\n\t\t\t/>\r\n\t\t\t{content}\r\n\t\t</>\r\n\t);\r\n\r\n\tif (props.submitSucceeded) {\r\n\t\treturn withTitle(\r\n\t\t\t<div className=\"flow-application\">\r\n\t\t\t\t<div className=\"atom-card\">\r\n\t\t\t\t\t<div className=\"atom-card__headingWrapper\">\r\n\t\t\t\t\t\t<h1 className=\"flow-application__heading\">\r\n\t\t\t\t\t\t\t<ResourceText\r\n\t\t\t\t\t\t\t\tresourceKey=\"MarketingBusinessEntityContactForm_Sent_Heading\"\r\n\t\t\t\t\t\t\t\tdefaultText=\"Kiitos!\"\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t</h1>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<div className=\"atom-card__contentWrapper\">\r\n\t\t\t\t\t\t<div className=\"atom-card__text -ingress\">\r\n\t\t\t\t\t\t\t<p>\r\n\t\t\t\t\t\t\t\t<ResourceText\r\n\t\t\t\t\t\t\t\t\tresourceKey=\"MarketingBusinessEntityContactForm_Sent_Intro\"\r\n\t\t\t\t\t\t\t\t\tdefaultText=\"Hienoa, otamme sinuun pian yhteyttä!\"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t</p>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div className=\"atom-card__text\">\r\n\t\t\t\t\t\t\t<ResourceText\r\n\t\t\t\t\t\t\t\tresourceKey=\"MarketingBusinessEntityContactForm_Sent_Text\"\r\n\t\t\t\t\t\t\t\ttextType=\"Markdown\"\r\n\t\t\t\t\t\t\t\tdefaultText=\"Otamme sinuun yhteyttä...\"\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t<p>\r\n\t\t\t\t\t\t\t\t<Link className=\"button button--big\" to={BuildBusinessEntityUrl(props.language, be)}>\r\n\t\t\t\t\t\t\t\t\t<ResourceText\r\n\t\t\t\t\t\t\t\t\t\tresourceKey=\"MarketingBusinessEntityContactForm_BackToBusinessEntityPage_LinkText\"\r\n\t\t\t\t\t\t\t\t\t\tdefaultText=\"Takaisin talon tietoihin ›\"\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t</Link>\r\n\t\t\t\t\t\t\t</p>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</div>,\r\n\t\t);\r\n\t}\r\n\r\n\treturn withTitle(\r\n\t\t<div className=\"page-padded\">\r\n\t\t\t<div className=\"mod-heroCard\">\r\n\t\t\t\t<picture className=\"mod-heroCard__image\">\r\n\t\t\t\t\t<source media=\"(max-width: 539px)\" srcSet=\"/images/lumo-talot-mobi-min.jpg\" />\r\n\t\t\t\t\t<source media=\"(max-width: 899px)\" srcSet=\"/images/lumo-talot-tablet-min.jpg\" />\r\n\t\t\t\t\t<img className=\"mod-heroCard__image-img\" src=\"/images/lumo-talot-desktop-min.jpg\" alt=\"\" />\r\n\t\t\t\t</picture>\r\n\t\t\t\t<div className=\"mod-heroCard__wrapper\">\r\n\t\t\t\t\t<div className=\"mod-heroCard__card atom-card\">\r\n\t\t\t\t\t\t{props.submitSucceeded === false && (\r\n\t\t\t\t\t\t\t<ErrorMessageDisplay\r\n\t\t\t\t\t\t\t\tmessage={props.getResourceText(\r\n\t\t\t\t\t\t\t\t\t'MarketingBusinessEntityContactForm_SendFailed',\r\n\t\t\t\t\t\t\t\t\t'Olemme pahoillamme, tietojen lähettäminen epäonnistui! Virheestä on lähetetty tieto ylläpidolle.',\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t<div className=\"mod-heroCard__headingWrapper\">\r\n\t\t\t\t\t\t\t<h1 className=\"mod-heroCard__heading\">\r\n\t\t\t\t\t\t\t\t<ResourceText\r\n\t\t\t\t\t\t\t\t\tresourceKey=\"MarketingBusinessEntityContactForm_Heading\"\r\n\t\t\t\t\t\t\t\t\tdefaultText=\"Ilmoittautuminen ennakkomarkki­nointiin\"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t</h1>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div className=\"mod-heroCard__contentWrapper\">\r\n\t\t\t\t\t\t\t<div className=\"mod-heroCard__ingress\">\r\n\t\t\t\t\t\t\t\t<ResourceText\r\n\t\t\t\t\t\t\t\t\tresourceKey=\"MarketingBusinessEntityContactForm_Intro\"\r\n\t\t\t\t\t\t\t\t\tdefaultText=\"Mukavaa, että olet kiinnostunut Lumo-kodeista.\"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t<div className=\"atom-card__text\">\r\n\t\t\t\t\t\t\t\t<ResourceText\r\n\t\t\t\t\t\t\t\t\tresourceKey=\"MarketingBusinessEntityContactForm_Text\"\r\n\t\t\t\t\t\t\t\t\ttextType=\"Markdown\"\r\n\t\t\t\t\t\t\t\t\tdefaultText=\"Asuntojen vuokraus ja markkinointi alkaa noin 4-6 kuukautta ennen niiden valmistumista. Täytä alla olevaan lomakkeeseen yhteystietosi, niin saat lisätietoa sähköpostitse sinua kiinnostavista kodeista heti ensimmäisten joukossa.\r\n\r\n[Lisätietoja henkilötietojen käytöstä ›](#)\"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\r\n\t\t\t<div className=\"atom-card\">\r\n\t\t\t\t<div className=\"atom-card__headingWrapper\">\r\n\t\t\t\t\t<h2 className=\"atom-card__subheading\">\r\n\t\t\t\t\t\t<strong>\r\n\t\t\t\t\t\t\t<ResourceText\r\n\t\t\t\t\t\t\t\tresourceKey=\"MarketingBusinessEntityContactForm_BusinessEntityHeading\"\r\n\t\t\t\t\t\t\t\tdefaultText=\"Olen kiinnostunut kohteesta:\"\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t</strong>\r\n\t\t\t\t\t</h2>\r\n\t\t\t\t</div>\r\n\t\t\t\t<div className=\"atom-card__contentWrapper\">\r\n\t\t\t\t\t<p className=\"atom-card__text\">\r\n\t\t\t\t\t\t<strong>\r\n\t\t\t\t\t\t\t{be.name}, {be.zipCode} {be.postOffice}.\r\n\t\t\t\t\t\t</strong>{' '}\r\n\t\t\t\t\t\t{be.estimatedFinishingTime && (\r\n\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t<ResourceText\r\n\t\t\t\t\t\t\t\t\tresourceKey=\"MarketingBusinessEntityContactForm_EstimatedFinishingTime\"\r\n\t\t\t\t\t\t\t\t\tdefaultText=\"Arvioitu valmistuminen:\"\r\n\t\t\t\t\t\t\t\t/>{' '}\r\n\t\t\t\t\t\t\t\t{formatBasicDateString(be.estimatedFinishingTime)}\r\n\t\t\t\t\t\t\t\t<br />\r\n\t\t\t\t\t\t\t</>\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t</p>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\r\n\t\t\t<form onSubmit={handleSubmit(onSubmit)}>\r\n\t\t\t\t<div className=\"atom-card\">\r\n\t\t\t\t\t<div className=\"atom-card__headingWrapper\">\r\n\t\t\t\t\t\t<h2 className=\"atom-card__subheading\">\r\n\t\t\t\t\t\t\t<strong>\r\n\t\t\t\t\t\t\t\t<ResourceText\r\n\t\t\t\t\t\t\t\t\tresourceKey=\"MarketingBusinessEntityContactForm_Contact_Heading\"\r\n\t\t\t\t\t\t\t\t\tdefaultText=\"Yhteystiedot\"\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t</strong>\r\n\t\t\t\t\t\t</h2>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<div className=\"atom-card__contentWrapper\">\r\n\t\t\t\t\t\t<div className=\"input-basic\">\r\n\t\t\t\t\t\t\t<label className=\"input-basic__label\" htmlFor=\"prem_firstname\">\r\n\t\t\t\t\t\t\t\t<ResourceText\r\n\t\t\t\t\t\t\t\t\tresourceKey=\"MarketingBusinessEntityContactForm_Contact_FirstName\"\r\n\t\t\t\t\t\t\t\t\tdefaultText=\"Etunimi\"\r\n\t\t\t\t\t\t\t\t/>{' '}\r\n\t\t\t\t\t\t\t\t<span className=\"input-basic__required\">*</span>\r\n\t\t\t\t\t\t\t</label>\r\n\t\t\t\t\t\t\t<input\r\n\t\t\t\t\t\t\t\tclassName=\"input-basic__input\"\r\n\t\t\t\t\t\t\t\tid=\"prem_firstname\"\r\n\t\t\t\t\t\t\t\t{...register('firstName')}\r\n\t\t\t\t\t\t\t\trequired\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div className=\"input-basic\">\r\n\t\t\t\t\t\t\t<label className=\"input-basic__label\" htmlFor=\"prem_lastname\">\r\n\t\t\t\t\t\t\t\t<ResourceText\r\n\t\t\t\t\t\t\t\t\tresourceKey=\"MarketingBusinessEntityContactForm_Contact_LastName\"\r\n\t\t\t\t\t\t\t\t\tdefaultText=\"Sukunimi\"\r\n\t\t\t\t\t\t\t\t/>{' '}\r\n\t\t\t\t\t\t\t\t<span className=\"input-basic__required\">*</span>\r\n\t\t\t\t\t\t\t</label>\r\n\t\t\t\t\t\t\t<input\r\n\t\t\t\t\t\t\t\tclassName=\"input-basic__input\"\r\n\t\t\t\t\t\t\t\tid=\"prem_lastname\"\r\n\t\t\t\t\t\t\t\t{...register('lastName')}\r\n\t\t\t\t\t\t\t\trequired\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div className=\"input-basic\">\r\n\t\t\t\t\t\t\t<label className=\"input-basic__label\" htmlFor=\"prem_email\">\r\n\t\t\t\t\t\t\t\t<ResourceText\r\n\t\t\t\t\t\t\t\t\tresourceKey=\"MarketingBusinessEntityContactForm_Contact_Email\"\r\n\t\t\t\t\t\t\t\t\tdefaultText=\"Sähköposti\"\r\n\t\t\t\t\t\t\t\t/>{' '}\r\n\t\t\t\t\t\t\t\t<span className=\"input-basic__required\">*</span>\r\n\t\t\t\t\t\t\t</label>\r\n\t\t\t\t\t\t\t<input\r\n\t\t\t\t\t\t\t\tclassName=\"input-basic__input\"\r\n\t\t\t\t\t\t\t\tid=\"prem_email\"\r\n\t\t\t\t\t\t\t\ttype=\"email\"\r\n\t\t\t\t\t\t\t\t{...register('email')}\r\n\t\t\t\t\t\t\t\trequired\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div className=\"input-basic\">\r\n\t\t\t\t\t\t\t<label className=\"input-basic__label\" htmlFor=\"prem_phone\">\r\n\t\t\t\t\t\t\t\t<ResourceText\r\n\t\t\t\t\t\t\t\t\tresourceKey=\"MarketingBusinessEntityContactForm_Contact_Phone\"\r\n\t\t\t\t\t\t\t\t\tdefaultText=\"Puhelinnumero\"\r\n\t\t\t\t\t\t\t\t/>{' '}\r\n\t\t\t\t\t\t\t\t<span className=\"input-basic__required\">*</span>\r\n\t\t\t\t\t\t\t</label>\r\n\t\t\t\t\t\t\t<input className=\"input-basic__input\" id=\"prem_phone\" {...register('phone')} required />\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\r\n\t\t\t\t{props.language === 'fi' && (\r\n\t\t\t\t\t<div className=\"atom-card\">\r\n\t\t\t\t\t\t<div className=\"atom-card__headingWrapper\">\r\n\t\t\t\t\t\t\t<h2 className=\"atom-card__subheading\">\r\n\t\t\t\t\t\t\t\t<strong>\r\n\t\t\t\t\t\t\t\t\t<ResourceText\r\n\t\t\t\t\t\t\t\t\t\tresourceKey=\"Newsletter_Heading\"\r\n\t\t\t\t\t\t\t\t\t\tdefaultText=\"Lumo-uutiskirjeen tilaus\"\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t</strong>\r\n\t\t\t\t\t\t\t</h2>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div className=\"atom-card__contentWrapper\">\r\n\t\t\t\t\t\t\t<CheckBox\r\n\t\t\t\t\t\t\t\tid=\"subscribeToNewsletterCheckbox\"\r\n\t\t\t\t\t\t\t\tlabelKey=\"Newsletter_Subscribe\"\r\n\t\t\t\t\t\t\t\tclassName=\"input-checkbox\"\r\n\t\t\t\t\t\t\t\tvalue={subscribeToNewsletter}\r\n\t\t\t\t\t\t\t\tvalueChanged={() => setSubscribeToNewsletter(!subscribeToNewsletter)}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t)}\r\n\t\t\t\t<div className=\"atom-centerContent page-padded__cta\">\r\n\t\t\t\t\t<WaitingButton\r\n\t\t\t\t\t\tclassName=\"atom-card__button atom-button atom-button--big\"\r\n\t\t\t\t\t\twaiting={props.submitting}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<ResourceText\r\n\t\t\t\t\t\t\tresourceKey=\"MarketingBusinessEntityContactForm_SendButton\"\r\n\t\t\t\t\t\t\tdefaultText=\"Lähetä tiedot\"\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t</WaitingButton>\r\n\t\t\t\t</div>\r\n\t\t\t</form>\r\n\t\t</div>,\r\n\t);\r\n}\r\n\r\nexport default withResourceTextSupport(\r\n\tconnect<ReduxProps, DispatchProps, IMarketingBusinessEntityContactFormParams, ILumoOneAppState>(\r\n\t\t({ language, businessEntityPage, contact, locationData }) => ({\r\n\t\t\tlanguage: language.currentLanguage,\r\n\t\t\tbusinessEntity: businessEntityPage.businessEntity,\r\n\t\t\tlocationData: locationData.locationData,\r\n\t\t\t...contact.marketingBusinessEntityContact,\r\n\t\t}),\r\n\t\t{\r\n\t\t\tgetBusinessEntityById: businessEntityPageActions.getBusinessEntityById.request,\r\n\t\t\tsendPremarketingContact: contactActions.sendMarketingBusinessEntityContact.request,\r\n\t\t\tclearMarketingBusinessEntityContact: contactActions.clearMarketingBusinessEntityContact,\r\n\t\t\tsetLayoutValues: layoutActions.setValues,\r\n\t\t\tpageComplete: pageViewTelemetryActions.pageComplete,\r\n\t\t\tsubscribeToNewsletter: newsletterActions.subscribe.request,\r\n\t\t},\r\n\t)(MarketingBusinessEntityContactForm),\r\n);\r\n","import * as React from 'react';\nimport { connect } from 'react-redux';\nimport { LocationBusinessEntity, LocationData } from '../../LocationDataProvider/LocationData';\nimport { businessEntityPageActions } from './businessEntityPageActions';\nimport { BusinessEntityPageState } from './BusinessEntityPageState';\nimport {\n\tIUseResourceTexts,\n\tResourceText,\n\tResourceTextInline,\n\tuseLanguage,\n\tuseResource,\n\twithResourceTextSupport,\n} from '../../Components/ResourceText';\nimport { formatBasicDateString, formatDateTimeRange } from '../../DateUtils';\nimport { ILumoOneAppState } from '../../boot/configureStore';\nimport { GetUrlForCriteria, GetUrlForSearchResults } from '../../Apartments/Browser/apartmentSearchUrlHandling';\nimport { Link, useNavigate } from 'react-router-dom';\nimport SuggestedApartmentsReel from '../../Apartments/SuggestedApartments/SuggestedApartmentsReel';\nimport { NearbyServices } from '../../Components/NearbyServices';\nimport { BusinessEntityAM } from '../../Apartments/Api/BusinessEntityAM';\nimport { MarkdownContent } from '../../Components/MarkdownContent';\nimport { ExpandableContent } from '../../Components/ExpandableContent';\nimport { layoutActions, LayoutDispatchProps } from '../../Common/Layout/layoutActions';\nimport {\n\tBuildBusinessEntityBrowserUrl,\n\tBuildBusinessEntityUrl,\n\tBuildMarketingBusinessEntityMarketingInterestUrl,\n} from '../Url/BusinessEntityUrlParser';\nimport { routeFromRoot, routes } from '../../Common/routes';\nimport DynamicBanner from '../../Components/DynamicBanners/DynamicBanner';\nimport { toFormattedString } from '../../Components/numberUtils';\nimport TopBar from '../../Common/TopBar';\nimport { isAlreadyRequested, isOperationSuccess, OperationState } from '../../Common/Api/ApiOperationState';\nimport { IDefineSsrRequirements, withSsrSupport } from '../../SSR/ssrDispatchWrapper';\nimport { suggestedApartmentsActions } from '../../Apartments/SuggestedApartments/suggestedApartmentsActions';\nimport { createTranslatedUrlsUsing } from '../../Common/Layout/layoutState';\nimport { IBusinessEntityDataStore } from '../Browser/BusinessEntityDataStore';\nimport { pageViewTelemetryActions } from '../../Telemetry/pageViewTelemetryActions';\nimport PageMeta, { PageMetaFields } from '../../Common/Layout/PageMeta';\nimport SmartLink from '../../Components/SmartLink';\nimport { createSearchWatchActions } from '../../SearchWatch/Create/createSearchWatchActions';\nimport { BenefitsListNew } from './BenefitsListNew';\nimport ArticleLinks from '../../Components/ArticleLinks/ArticleLinks';\nimport { ArticleRequest } from '../../Common/Api/contentApiClient';\nimport {\n\tgetMarketingBusinessEntityMedia,\n\tMarketingBusinessEntityImageGallery,\n} from './MarketingBusinessEntityImageGallery';\nimport { ThreeDGallery } from './ThreeDGallery';\nimport { ImageAM } from '../../Apartments/Api/ImageAM';\nimport { orderBy } from '../../Components/arrayUtilities';\nimport { ApartmentSearchResultAM } from '../../Apartments/Api/ApartmentSearchResultAM';\nimport ApartmentsReel from '../../Apartments/Browser/ApartmentsReel';\nimport { YoutubeEmbed } from '../../Components/YoutubeEmbed';\nimport ArticleLinksWrapper from './ArticleLinksWrapper';\nimport { MediaItem } from '../../Components/MediaCarousel';\nimport { HostingService, LinkedMediaAM } from '../../Apartments/Api/LinkedMediaAM';\nimport { Language } from '../../Common/interfaces/language';\nimport { ScrollToHash } from '../../Components/ScrollToHash';\nimport { rentalServiceRequestActions } from '../../RentalServiceRequest/rentalServiceRequestActions';\nimport { PoiDataAM } from '../../Components/Map/PoiApiClient';\nimport { ApartmentListName } from '../../Apartments/Telemetry';\nimport { GA4EventAction } from '../../Telemetry/TelemetryGA4';\n\nexport interface Params {\n\tlocationBusinessEntity: LocationBusinessEntity;\n}\n\ninterface StateProps {\n\tbrowserState: IBusinessEntityDataStore['browserState'];\n\tbusinessEntityState: BusinessEntityPageState;\n\tallLocations: LocationData;\n\tlanguage: Language;\n\tcommonUiRoot: string;\n\tavailableApartments: OperationState<ApartmentSearchResultAM[], string> | undefined;\n\tpointsOfInterest?: PoiDataAM;\n}\n\nexport type Props = Params & StateProps & DispatchProps & IUseResourceTexts & IDefineSsrRequirements;\n\nexport type DispatchProps = LayoutDispatchProps & {\n\tgetBusinessEntityById: typeof businessEntityPageActions.getBusinessEntityById.request;\n\tgetApartmentCount: typeof businessEntityPageActions.getApartmentCount.request;\n\tinitRentalServiceRequestCreation: typeof rentalServiceRequestActions.initRequestCreationData;\n\tinitNewSearchWatchCreation: typeof createSearchWatchActions.initNewSearchWatchCreation;\n\tpageComplete: typeof pageViewTelemetryActions.pageComplete;\n\tgetAvailableApartments: typeof businessEntityPageActions.getAvailableApartments.request;\n};\n\nclass MarketingBusinessEntityPage extends React.Component<Props> {\n\tmap: React.RefObject<HTMLDivElement>;\n\n\tconstructor(props: Props, context?: any) {\n\t\tsuper(props, context);\n\t\tthis.map = React.createRef();\n\n\t\tthis.props.requireForSsr(\n\t\t\tbusinessEntityPageActions.getBusinessEntityById,\n\t\t\tbusinessEntityPageActions.getApartmentCount,\n\t\t\tsuggestedApartmentsActions.getApartments, // SuggestedApartmentsReel\n\t\t);\n\n\t\tthis.loadDataAsNeeded();\n\t\tif (isOperationSuccess(this.props.businessEntityState.businessEntity)) {\n\t\t\tthis.setLayoutProps(this.props.businessEntityState.businessEntity.result);\n\t\t}\n\t}\n\n\tcomponentDidMount() {\n\t\tthis.logTelemetry();\n\t\tif (isOperationSuccess(this.props.businessEntityState.businessEntity)) {\n\t\t\tthis.setLayoutProps(this.props.businessEntityState.businessEntity.result);\n\t\t}\n\t}\n\n\tcomponentDidUpdate() {\n\t\tconst businessEntity = this.props.businessEntityState.businessEntity;\n\t\tif (isOperationSuccess(businessEntity) && !!businessEntity.result.productionEntityId) {\n\t\t\tconst prodBeId = businessEntity.result.productionEntityId;\n\t\t\tif (!isAlreadyRequested(this.props.availableApartments, prodBeId)) {\n\t\t\t\tthis.props.getAvailableApartments(prodBeId);\n\t\t\t\tthis.props.requireForSsr(businessEntityPageActions.getAvailableApartments);\n\t\t\t}\n\t\t}\n\t}\n\n\tlogTelemetry() {\n\t\tif (isOperationSuccess(this.props.businessEntityState.businessEntity, this.props.locationBusinessEntity.id)) {\n\t\t\tthis.props.pageComplete({\n\t\t\t\tdata: {\n\t\t\t\t\tbusinessEntityName: this.props.businessEntityState.businessEntity.result.name,\n\t\t\t\t\tisPreMarketing: true,\n\t\t\t\t\tmunicipality: this.props.businessEntityState.businessEntity.result.municipality.name,\n\t\t\t\t\tmunicipalitySubArea: this.props.businessEntityState.businessEntity.result.municipalitySubArea.name,\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\t}\n\n\tloadDataAsNeeded() {\n\t\tconst { businessEntity, municipalityApartmentCount } = this.props.businessEntityState;\n\t\tif (!isAlreadyRequested(businessEntity, this.props.locationBusinessEntity.id)) {\n\t\t\tthis.props.getBusinessEntityById({\n\t\t\t\tid: this.props.locationBusinessEntity.id,\n\t\t\t\tallLocations: this.props.allLocations,\n\t\t\t});\n\t\t}\n\n\t\tif (!isAlreadyRequested(municipalityApartmentCount)) {\n\t\t\tconst municipality = this.props.allLocations.municipalities.find(\n\t\t\t\t(m) => m.id === this.props.locationBusinessEntity.municipalityId,\n\t\t\t)!;\n\t\t\tthis.props.getApartmentCount(municipality.name);\n\t\t}\n\n\t\tif (isOperationSuccess(businessEntity) && !!businessEntity.result.productionEntityId) {\n\t\t\tconst prodBeId = businessEntity.result.productionEntityId;\n\t\t\tif (!isAlreadyRequested(this.props.availableApartments, prodBeId)) {\n\t\t\t\tthis.props.getAvailableApartments(prodBeId);\n\t\t\t\tthis.props.requireForSsr(businessEntityPageActions.getAvailableApartments);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate getAreaArticlesRequest(): ArticleRequest {\n\t\tconst municipality = this.props.allLocations.municipalities.find(\n\t\t\t(m) => m.id == this.props.locationBusinessEntity.municipalityId,\n\t\t)!;\n\t\tconst req = this.props.locationBusinessEntity.municipalitySubAreaId\n\t\t\t? {\n\t\t\t\t\ttagPrimary: municipality.name,\n\t\t\t\t\ttagSecondary: this.props.allLocations.municipalitySubAreas.find(\n\t\t\t\t\t\t(m) => m.id == this.props.locationBusinessEntity.municipalitySubAreaId,\n\t\t\t\t\t)!.name,\n\t\t\t\t}\n\t\t\t: { tagPrimary: municipality.name };\n\t\treturn { ...req, take: 4 };\n\t}\n\n\trender() {\n\t\tif (!isOperationSuccess(this.props.businessEntityState.businessEntity, this.props.locationBusinessEntity.id)) {\n\t\t\treturn null;\n\t\t}\n\t\tconst be = this.props.businessEntityState.businessEntity.result;\n\t\tconst { municipalityApartmentCount } = this.props.businessEntityState;\n\n\t\tconst badgeContents = this.getBadgeContents(be);\n\t\tconst title =\n\t\t\tbe.name + (be.municipalitySubArea ? ', ' + be.municipalitySubArea.name : '') + ', ' + be.municipality.name;\n\n\t\tconst images = orderBy(be.images, (i) => i.orderNumber);\n\t\tconst primaryImage = images.length > 0 ? images[0] : undefined;\n\t\tconst meta: PageMetaFields = {\n\t\t\tdescription: this.props.getResourceText('BusinessEntityPage_PreMarketing_MetaDescription', undefined, {\n\t\t\t\toptional: true,\n\t\t\t}),\n\t\t\tshareImageUrl: primaryImage\n\t\t\t\t? getMarketingBusinessEntityImageUrl(be.id, primaryImage, this.props.commonUiRoot) +\n\t\t\t\t\t'/1200x800-shop-carousel'\n\t\t\t\t: undefined,\n\t\t};\n\t\tconst media = getMarketingBusinessEntityMedia(be, this.props.commonUiRoot);\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<ScrollToHash />\n\t\t\t\t<PageMeta title={title} meta={meta} />\n\t\t\t\t<div className=\"view-houseNew\">\n\t\t\t\t\t<TopBar\n\t\t\t\t\t\tbackButton={{\n\t\t\t\t\t\t\ttarget: BuildBusinessEntityBrowserUrl(this.props.language, this.props.browserState),\n\t\t\t\t\t\t\ttext: <ResourceText resourceKey=\"BusinessEntityPage_BackToList\" defaultText=\"Lumo-talot\" />,\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tvariant=\"bgWhite\"\n\t\t\t\t\t/>\n\n\t\t\t\t\t<div className=\"view-houseNew__infoPrimary mod-houseInfoNew\">\n\t\t\t\t\t\t<div className=\"mod-houseInfoNew__wrapperOuter\">\n\t\t\t\t\t\t\t<div className=\"mod-houseInfoNew__wrapper-primary\">\n\t\t\t\t\t\t\t\t<h2 className=\"mod-houseInfoNew__mainTitle\">{be.marketingTextTitle}</h2>\n\t\t\t\t\t\t\t\t<div className=\"mod-houseInfoNew__info\">\n\t\t\t\t\t\t\t\t\t<div className=\"mod-houseInfoNew__tags\">\n\t\t\t\t\t\t\t\t\t\t<span className=\"mod-houseInfoNew__tag -bgTurquoise\">\n\t\t\t\t\t\t\t\t\t\t\t<ResourceText\n\t\t\t\t\t\t\t\t\t\t\t\tresourceKey={\n\t\t\t\t\t\t\t\t\t\t\t\t\tbe.productionEntityId\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? 'BusinessEntityCard_IsPremarketing_WithProductionEntities'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: 'BusinessEntityCard_IsPremarketing'\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tdefaultText=\"Ennakkomarkkinoinnissa\"\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t{!!badgeContents.length && (\n\t\t\t\t\t\t\t\t\t\t\t<span className=\"mod-houseInfoNew__tag -blue\">{badgeContents}</span>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<h1 className=\"mod-houseInfoNew__street\">{be.name}</h1>\n\t\t\t\t\t\t\t\t\t<span className=\"mod-houseInfoNew__city\">\n\t\t\t\t\t\t\t\t\t\t{be.municipalitySubArea && be.municipalitySubArea.name + ', '} {be.zipCode}{' '}\n\t\t\t\t\t\t\t\t\t\t{be.postOffice}\n\t\t\t\t\t\t\t\t\t</span>\n\n\t\t\t\t\t\t\t\t\t<span className=\"mod-houseInfoNew__availability\">\n\t\t\t\t\t\t\t\t\t\t{be.estimatedAvailabilityTime && (\n\t\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t\t<ResourceText\n\t\t\t\t\t\t\t\t\t\t\t\t\tresourceKey=\"BusinessEntityPage_EstimatedAvailabilityTime\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tdefaultText=\"Vuokrattavissa\"\n\t\t\t\t\t\t\t\t\t\t\t\t/>{' '}\n\t\t\t\t\t\t\t\t\t\t\t\t{formatBasicDateString(be.estimatedAvailabilityTime)}\n\t\t\t\t\t\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t{be.estimatedFinishingTime && (\n\t\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t\t<ResourceText\n\t\t\t\t\t\t\t\t\t\t\t\t\tresourceKey=\"BusinessEntityPage_EstimatedFinishingTime\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tdefaultText=\"Arvioitu valmistuminen\"\n\t\t\t\t\t\t\t\t\t\t\t\t/>{' '}\n\t\t\t\t\t\t\t\t\t\t\t\t{formatBasicDateString(be.estimatedFinishingTime)}\n\t\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t{this.renderHero(be, media)}\n\t\t\t\t\t\t\t<div className=\"mod-houseInfoNew__quicklinks\">\n\t\t\t\t\t\t\t\t{be.interactiveMedia && be.interactiveMedia.length > 0 && (\n\t\t\t\t\t\t\t\t\t<a href=\"#3d-gallery\">\n\t\t\t\t\t\t\t\t\t\t<ResourceText\n\t\t\t\t\t\t\t\t\t\t\tresourceKey=\"MarketingBusinessEntityPage_Show3dPresentationsLinkText\"\n\t\t\t\t\t\t\t\t\t\t\tdefaultText=\"Katso 3D-esittelyjä\"\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t<a href=\"\" onClick={this.scrollToMap}>\n\t\t\t\t\t\t\t\t\t<ResourceText\n\t\t\t\t\t\t\t\t\t\tresourceKey=\"BusinessEntityPage_ShowMapLinkText\"\n\t\t\t\t\t\t\t\t\t\tdefaultText=\"Katso kartalla\"\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t{media.length > 1 && (\n\t\t\t\t\t\t\t\t\t<a href=\"#image-gallery\">\n\t\t\t\t\t\t\t\t\t\t{media\n\t\t\t\t\t\t\t\t\t\t\t.slice(1)\n\t\t\t\t\t\t\t\t\t\t\t.filter((m) => m.kind === 'linkedMedia')\n\t\t\t\t\t\t\t\t\t\t\t.some((m) => (m as LinkedMediaAM).mediaClass === 'Video') ? (\n\t\t\t\t\t\t\t\t\t\t\t<ResourceText\n\t\t\t\t\t\t\t\t\t\t\t\tresourceKey=\"MarketingBusinessEntityPage_ShowImagesLinkText\"\n\t\t\t\t\t\t\t\t\t\t\t\tdefaultText=\"Katso kuvat ja videot\"\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t<ResourceText resourceKey=\"MarketingBusinessEntityPage_ShowImagesLinkText_NoVideos\" />\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div className=\"mod-houseInfoNew__wrapper-secondary\">\n\t\t\t\t\t\t\t\t<div className=\"mod-houseInfoNew__description\">\n\t\t\t\t\t\t\t\t\t<MarkdownContent text={be.marketingText!} />\n\t\t\t\t\t\t\t\t\t<div className=\"mod-houseInfoNew__cta\">\n\t\t\t\t\t\t\t\t\t\t<CTA\n\t\t\t\t\t\t\t\t\t\t\tbe={be}\n\t\t\t\t\t\t\t\t\t\t\tinitNewSearchWatchCreation={this.props.initNewSearchWatchCreation}\n\t\t\t\t\t\t\t\t\t\t\tinitRentalServiceRequestCreation={\n\t\t\t\t\t\t\t\t\t\t\t\tthis.props.initRentalServiceRequestCreation\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tallLocations={this.props.allLocations}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div className=\"mod-houseInfoNew__mainDetailsWrapper\">\n\t\t\t\t\t\t\t\t\t<ul className=\"mod-houseInfoNew__mainDetails\">\n\t\t\t\t\t\t\t\t\t\t<li className=\"mod-houseInfoNew__mainDetails-single\">\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"mod-houseInfoNew__mainDetails-icon -house\">\n\t\t\t\t\t\t\t\t\t\t\t\t<svg\n\t\t\t\t\t\t\t\t\t\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\t\t\t\t\t\t\t\t\t\twidth=\"33\"\n\t\t\t\t\t\t\t\t\t\t\t\t\theight=\"32\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tviewBox=\"0 0 33 32\"\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<defs>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<path id=\"a\" d=\"M0 0h33v32H0z\" />\n\t\t\t\t\t\t\t\t\t\t\t\t\t</defs>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<g fill=\"none\" fillRule=\"evenodd\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<mask id=\"b\" fill=\"#fff\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<use xlinkHref=\"#a\" />\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</mask>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<path\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfill=\"#002663\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\td=\"M31.886 23.172l-1.528-4.414H13.91l-1.5 4.435 19.476-.021zm-1.843 1.103H14.237v5.518c0 .609.506 1.103 1.13 1.103h9.031v-5.517h4.516v5.517c.622 0 1.13-.494 1.13-1.103v-5.518zm-4.515 6.621h2.258v-4.414h-2.258v4.414zm-12.42-2.207v-4.414h-.714c-.759 0-1.296-.727-1.056-1.43l1.518-4.447c.15-.444.575-.743 1.054-.743h4.154V1.103H2.258v26.486c0 .607.504 1.1 1.125 1.1h1.133v-5.517h5.645v5.517h2.947zm-7.463 0h3.387v-4.414H5.645v4.414zm26.24-4.414h-.713v5.518c0 1.218-1.01 2.206-2.258 2.206H15.367c-1.248 0-2.258-.988-2.258-2.206H3.384c-1.246 0-2.255-.988-2.255-2.204V1.103H.565C.252 1.103 0 .856 0 .551S.252 0 .565 0h19.192c.312 0 .565.247.565.551s-.253.552-.565.552h-.564v16.552H30.37c.479 0 .904.299 1.057.744l1.516 4.446c.24.704-.297 1.43-1.057 1.43zM9.033 19.862h2.258v-2.207H9.032v2.207zm-4.516 0h2.258v-2.207H4.516v2.207zm9.032-4.414h2.258V13.24h-2.258v2.207zm-4.516 0h2.258V13.24H9.032v2.207zm-4.516 0h2.258V13.24H4.516v2.207zm9.032-4.414h2.258V8.827h-2.258v2.207zm-4.516 0h2.258V8.827H9.032v2.207zm-4.516 0h2.258V8.827H4.516v2.207zm15.366 18.759h2.258v-4.414h-2.258v4.414zm-3.387 0h2.258v-4.414h-2.258v4.414zm-.69-25.379c0-.61-.504-1.103-1.129-1.103s-1.129.493-1.129 1.103v2.207h2.258V4.414zm-4.516 0c0-.61-.504-1.103-1.129-1.103-.624 0-1.129.493-1.129 1.103v2.207h2.258V4.414zM6.773 6.621H4.515V4.414c0-.61.505-1.103 1.13-1.103s1.128.493 1.128 1.103v2.207z\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmask=\"url(#b)\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</g>\n\t\t\t\t\t\t\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"mod-houseInfoNew__mainDetails-infoContainer\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span className=\"mod-houseInfoNew__mainDetails-heading\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t{this.props.getResourceText(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'General_BuildingType_' + be.buildingType,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbe.buildingType,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttransform: 'capitalize',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t\t<span className=\"mod-houseInfoNew__mainDetails-text\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t{be.estimatedFinishingTime && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ResourceText\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tresourceKey=\"BusinessEntityPage_EstimatedFinishingTime\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdefaultText=\"Arvioitu valmistuminen\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{formatBasicDateString(be.estimatedFinishingTime)}, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t{be.estimatedAvailabilityTime && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ResourceText\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tresourceKey=\"BusinessEntityPage_EstimatedAvailabilityTime\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdefaultText=\"Vuokrattavissa\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{formatBasicDateString(be.estimatedAvailabilityTime)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t</li>\n\n\t\t\t\t\t\t\t\t\t\t{be.apartmentTypes && be.apartmentTypes.length ? (\n\t\t\t\t\t\t\t\t\t\t\t<li className=\"mod-houseInfoNew__mainDetails-single\">\n\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"mod-houseInfoNew__mainDetails-icon -floorplan\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<svg\n\t\t\t\t\t\t\t\t\t\t\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth=\"26\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\theight=\"26\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tviewBox=\"0 0 26 26\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<path\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfill=\"#002663\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfillRule=\"evenodd\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\td=\"M25.071 13.929h-6.5v-2.322a.464.464 0 00-.928 0v5.597h.005c.013.244.211.439.46.439a.462.462 0 00.459-.44h.004v-2.346h6.5v9.286a.93.93 0 01-.928.928H18.57V23.68a.464.464 0 00-.928 0v1.392h-7.429c0-3.584-2.915-6.5-6.5-6.5h-.928v6.5h-.929a.93.93 0 01-.928-.928v-7.429h10.678a.464.464 0 000-.928H.93V1.857A.93.93 0 011.857.93h15.786v4.178a.464.464 0 00.928 0V.93h5.572a.93.93 0 01.928.928V13.93zM3.714 25.07V19.44a5.639 5.639 0 015.633 5.632H3.714zM24.143 0H1.857A1.858 1.858 0 000 1.857v22.286C0 25.168.832 26 1.857 26h22.286A1.858 1.858 0 0026 24.143V1.857A1.858 1.858 0 0024.143 0z\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"mod-houseInfoNew__mainDetails-infoContainer\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t{be.apartmentTypes.map((t) => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst areaMinStr = toFormattedString(t.minAreaInSqm, 1);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst areaMaxStr = toFormattedString(t.maxAreaInSqm, 1);\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tkey={'apartment-count_' + t.roomCount}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"mod-houseInfoNew__mainDetails-infoMultiLine\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span className=\"mod-houseInfoNew__mainDetails-heading\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ResourceText\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tresourceKey={\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'BusinessEntityPage_ApartmentTypeByRoomCount_' +\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tt.roomCount\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdefaultText={t.roomCount.toString()}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span className=\"mod-houseInfoNew__mainDetails-text\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{t.count}{' '}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ResourceText\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tresourceKey=\"BusinessEntityPage_ApartmentTypeByRoomCount_Unit\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdefaultText=\"kpl\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span className=\"mod-houseInfoNew__mainDetails-text\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{areaMinStr == areaMaxStr ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tareaMinStr\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{areaMinStr}—{areaMaxStr}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}{' '}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tm²\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{!!t.priceFrom && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span className=\"mod-houseInfoNew__mainDetails-text\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ResourceTextInline\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tresourceKey=\"BusinessEntityPage_ApartmentTypeByRoomCount_PricePrefix\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdefaultText=\"Alk.\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t {t.priceFrom} €\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t''\n\t\t\t\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t\t\t\t{be.nextShowing && (\n\t\t\t\t\t\t\t\t\t\t\t<li className=\"mod-houseInfoNew__mainDetails-single\">\n\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"mod-houseInfoNew__mainDetails-icon -showing\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<svg\n\t\t\t\t\t\t\t\t\t\t\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth=\"29px\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\theight=\"28px\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tviewBox=\"0 0 29 28\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<defs>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<path\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\td=\"M15.5833333,27.5 L16.5275,27.5 L17.16,24.75 L16.2158333,24.75 L15.5833333,27.5 Z M27.6558333,23.485 C27.61,23.5583333 27.5641667,23.6408333 27.5091667,23.7141667 C27.3331667,23.9286667 27.1269167,24.1138333 26.895,24.2641667 L27.6375,27.5 L28.5541667,27.5 L27.6558333,23.485 Z M0.861666667,23.7783333 L0,27.5 L0.916666667,27.5 L1.6225,24.42 C1.33191667,24.2540833 1.07433333,24.0368333 0.861666667,23.7783333 L0.861666667,23.7783333 Z M11.4216667,24.75 L12.0541667,27.5 L12.9983333,27.5 L12.3658333,24.75 L11.4216667,24.75 Z M26.2808333,21.7983333 L21.6241667,1.63166667 C21.5279167,1.20541667 21.1438333,0.905666667 20.7075,0.916666667 L7.975,0.916666667 C7.89616667,0.913916667 7.81733333,0.92125 7.74125,0.938666667 C7.24716667,1.0505 6.93733333,1.54091667 7.04916667,2.035 L11.7058333,22.2016667 C11.8020833,22.6288333 12.18525,22.9276667 12.6225,22.9166667 L25.355,22.9166667 C25.6373333,22.9185 25.9040833,22.78925 26.0791667,22.5683333 C26.25975,22.3556667 26.3349167,22.0724167 26.2808333,21.7983333 L26.2808333,21.7983333 Z M11.0916667,22.9166667 C10.99725,22.7599167 10.92575,22.5903333 10.8808333,22.4125 L6.41666667,3.06166667 L2.04416667,21.7891667 C1.98275,22.06325 2.05058333,22.3501667 2.2275,22.5683333 C2.40075,22.7865 2.66383333,22.91575 2.9425,22.9166667 L11.0916667,22.9166667 Z M27.18925,22.0009167 C27.1883333,23.0129167 26.3679167,23.83425 25.355,23.8333333 L2.98833333,23.8333333 C2.83341667,23.837 2.6785,23.8214167 2.52816667,23.7865833 C1.54183333,23.5583333 0.92675,22.5738333 1.155,21.5875 L5.81166667,1.42083333 C6.00416667,0.5885 6.74483333,0 7.59916667,0 L20.7075,0 C21.5609167,0 22.3025,0.5885 22.495,1.42083333 L27.1425,21.5875 C27.1745833,21.7231667 27.18925,21.8625 27.18925,22.0009167 L27.18925,22.0009167 Z M16.7291667,8.26833333 L21.2666667,11.3575 L17.9575,14.4375 L17.71,13.1908333 L13.3833333,13.1908333 L12.65,9.52416667 L16.9766667,9.52416667 L16.7291667,8.26833333 Z\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tid=\"path-1\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t></path>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</defs>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<g stroke=\"none\" strokeWidth=\"1\" fill=\"none\" fillRule=\"evenodd\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<g transform=\"translate(-27.000000, -884.000000)\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<rect\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfill=\"#FFF\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tx=\"0\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ty=\"0\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth=\"375\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\theight=\"5479\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t></rect>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<g transform=\"translate(26.000000, 883.000000)\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<g id=\"icons-/-library-/-icon-esittely\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<g>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<g transform=\"translate(1.250000, 1.250000)\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<mask id=\"mask-2\" fill=\"white\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<use xlinkHref=\"#path-1\"></use>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</mask>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<use\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tid=\"Page-1\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfill=\"#002663\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\txlinkHref=\"#path-1\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t></use>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<g mask=\"url(#mask-2)\" fill=\"#002663\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<g\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttransform=\"translate(-1.250000, -1.250000)\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tid=\"🎨-Color\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<rect\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tx=\"0\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ty=\"0\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth=\"30\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\theight=\"30\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t></rect>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</g>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</g>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</g>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</g>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</g>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</g>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</g>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t</g>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"mod-houseInfoNew__mainDetails-infoContainer\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span className=\"mod-houseInfoNew__mainDetails-heading\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<ResourceText\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tresourceKey=\"General_Showing\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttransform=\"capitalize\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdefaultText=\"Esittely\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span className=\"mod-houseInfoNew__mainDetails-text\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{formatDateTimeRange(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbe.nextShowing.start,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbe.nextShowing.end,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tthis.props.language,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{be.nextShowing.description && (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{be.nextShowing.description}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t\t\t{be.brochureId && be.brochureTitle ? (\n\t\t\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"atom-downloadMaterial__box -bgPink\"\n\t\t\t\t\t\t\t\t\t\t\thref={`${this.props.commonUiRoot}documents/marketing-business-entities/${be.brochureId}`}\n\t\t\t\t\t\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t\t\t\t\t\t\trel=\"noopener noreferrer\"\n\t\t\t\t\t\t\t\t\t\t\tid=\"download-material-link\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<svg\n\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"atom-downloadMaterial__icon\"\n\t\t\t\t\t\t\t\t\t\t\t\twidth=\"33\"\n\t\t\t\t\t\t\t\t\t\t\t\theight=\"30\"\n\t\t\t\t\t\t\t\t\t\t\t\tviewBox=\"0 0 33 30\"\n\t\t\t\t\t\t\t\t\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t<g\n\t\t\t\t\t\t\t\t\t\t\t\t\tstroke=\"#CF3F6C\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tstrokeWidth=\"2\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tfill=\"none\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tfillRule=\"evenodd\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tstrokeLinecap=\"round\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tstrokeLinejoin=\"round\"\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<path d=\"M9.5 28.5h-5a3 3 0 01-3-3v-24h11l3 5h16v19a3 3 0 01-3 3h-5M16.5 28.5v-14\"></path>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<path d=\"M21.5 23.5l-5 5-5-5\"></path>\n\t\t\t\t\t\t\t\t\t\t\t\t</g>\n\t\t\t\t\t\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"atom-downloadMaterial__link\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span className=\"atom-downloadMaterial__linkText\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t{be.brochureTitle} ›\n\t\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t\t) : undefined}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t{this.renderAvailableApartments(be)}\n\n\t\t\t\t\t<ThreeDGallery be={be} commonUiRoot={this.props.commonUiRoot} />\n\n\t\t\t\t\t<MarketingBusinessEntityImageGallery be={be} commonUiRoot={this.props.commonUiRoot} />\n\n\t\t\t\t\t<BenefitsListNew benefits={be.benefits} />\n\n\t\t\t\t\t<ArticleLinksWrapper tag={be.name} take={4} />\n\n\t\t\t\t\t{be.location && (\n\t\t\t\t\t\t<div ref={this.map} className=\"map-container\">\n\t\t\t\t\t\t\t<NearbyServices\n\t\t\t\t\t\t\t\tcenter={be.location}\n\t\t\t\t\t\t\t\tservices={\n\t\t\t\t\t\t\t\t\tthis.props.pointsOfInterest?.nearbyServices ?? {\n\t\t\t\t\t\t\t\t\t\tCityCenter: [],\n\t\t\t\t\t\t\t\t\t\tCulture: [],\n\t\t\t\t\t\t\t\t\t\tDaycare: [],\n\t\t\t\t\t\t\t\t\t\tGrocery: [],\n\t\t\t\t\t\t\t\t\t\tHealth: [],\n\t\t\t\t\t\t\t\t\t\tNature: [],\n\t\t\t\t\t\t\t\t\t\tPublicTransport: [],\n\t\t\t\t\t\t\t\t\t\tRestaurants: [],\n\t\t\t\t\t\t\t\t\t\tSports: [],\n\t\t\t\t\t\t\t\t\t\tSchools: [],\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbusinessEntityId={be.id}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\n\t\t\t\t\t<div className=\"mod-textBlocksNew -bgWhite\">\n\t\t\t\t\t\t<div className=\"mod-textBlocksNew__wrapper\">\n\t\t\t\t\t\t\t{be.municipalitySubAreaDescription && (\n\t\t\t\t\t\t\t\t<div className=\"mod-textBlock -cityInfo\">\n\t\t\t\t\t\t\t\t\t<h2 className=\"mod-textBlock__heading\">{be.municipalitySubArea.name}</h2>\n\t\t\t\t\t\t\t\t\t<ExpandableContent\n\t\t\t\t\t\t\t\t\t\tclassName=\"mod-textBlock__text\"\n\t\t\t\t\t\t\t\t\t\tcontent={<MarkdownContent text={be.municipalitySubAreaDescription} />}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t<div className=\"mod-textBlock -fullWide\">\n\t\t\t\t\t\t\t\t<h2 className=\"mod-textBlock__heading\">{be.municipality.name}</h2>\n\t\t\t\t\t\t\t\t<ArticleLinks {...this.getAreaArticlesRequest()} />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div className=\"mod-textBlock\">\n\t\t\t\t\t\t\t\t{be.municipalityDescription && (\n\t\t\t\t\t\t\t\t\t<ExpandableContent\n\t\t\t\t\t\t\t\t\t\tclassName=\"mod-textBlock__text\"\n\t\t\t\t\t\t\t\t\t\tcontent={<MarkdownContent text={be.municipalityDescription} />}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<SuggestedApartmentsReel\n\t\t\t\t\t\tmaxAmount={9}\n\t\t\t\t\t\tsearchCriteria={{ location: { businessEntityIds: [be.id] } }}\n\t\t\t\t\t\tshowMoreLinkText={\n\t\t\t\t\t\t\tisOperationSuccess(municipalityApartmentCount) ? (\n\t\t\t\t\t\t\t\t<ResourceText\n\t\t\t\t\t\t\t\t\tresourceKey=\"BusinessEntityPage_SuggestedApartments_LinkText\"\n\t\t\t\t\t\t\t\t\tdefaultText=\"Katso muut vuokrattavissa olevat kodit samalla paikkakunnalla ({0} kpl) ›\"\n\t\t\t\t\t\t\t\t\tparameters={[municipalityApartmentCount.result.toString()]}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) : undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t\tshowMoreLinkUrl={GetUrlForSearchResults(this.props.language, be.municipality.slug)}\n\t\t\t\t\t\theading={\n\t\t\t\t\t\t\t<ResourceText\n\t\t\t\t\t\t\t\tresourceKey=\"BusinessEntityPage_SuggestedApartmentsHeading_PreMarketing\"\n\t\t\t\t\t\t\t\tdefaultText=\"Etkö malta odottaa?\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\n\t\t\t\t\t<DynamicBanner\n\t\t\t\t\t\tname=\"preMarketingEntityPage\"\n\t\t\t\t\t\ttelemetryId={GA4EventAction.MarketingBusinessEntityPage_DynamicBannerCTA}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</>\n\t\t);\n\t}\n\n\trenderHero(be: BusinessEntityAM, media: MediaItem[]) {\n\t\tif (media.length === 0) {\n\t\t\treturn null;\n\t\t}\n\t\tconst heroMedia = media[0];\n\t\tif (heroMedia.kind === 'linkedMedia') {\n\t\t\tif (heroMedia.mediaClass !== 'Video' || heroMedia.hostingService !== HostingService.Youtube) {\n\t\t\t\t// Only images and youtube videos are supported at the moment\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\treturn (\n\t\t\t\t<div className=\"mod-houseInfoNew__heroImage\">\n\t\t\t\t\t<YoutubeEmbed videoId={heroMedia.hostingServiceId} options={{ autoplay: true, loop: true }} />\n\t\t\t\t</div>\n\t\t\t);\n\t\t} else {\n\t\t\treturn (\n\t\t\t\t<div className=\"mod-houseInfoNew__heroImage\">\n\t\t\t\t\t<picture>\n\t\t\t\t\t\t<source\n\t\t\t\t\t\t\tmedia=\"(max-width: 500px)\"\n\t\t\t\t\t\t\tsrcSet={`${getMarketingBusinessEntityImageUrl(\n\t\t\t\t\t\t\t\tbe.id,\n\t\t\t\t\t\t\t\theroMedia,\n\t\t\t\t\t\t\t\tthis.props.commonUiRoot,\n\t\t\t\t\t\t\t)}/780x520-shop-carousel`}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<img\n\t\t\t\t\t\t\tclassName=\"mod-houseInfoNew__image\"\n\t\t\t\t\t\t\tsrc={`${getMarketingBusinessEntityImageUrl(\n\t\t\t\t\t\t\t\tbe.id,\n\t\t\t\t\t\t\t\theroMedia,\n\t\t\t\t\t\t\t\tthis.props.commonUiRoot,\n\t\t\t\t\t\t\t)}/1200x800-shop-carousel`}\n\t\t\t\t\t\t\talt=\"\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</picture>\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\t}\n\n\tgetBadgeContents(be: BusinessEntityAM): (JSX.Element | string)[] {\n\t\tconst badgeContents: (JSX.Element | string)[] = [];\n\t\tconst addToBadgeContents = (element: JSX.Element | string) => {\n\t\t\tif (badgeContents.length) {\n\t\t\t\tbadgeContents.push(' - ');\n\t\t\t}\n\t\t\tbadgeContents.push(element);\n\t\t};\n\n\t\tif (be.isNew) {\n\t\t\taddToBadgeContents(\n\t\t\t\t<strong>\n\t\t\t\t\t<ResourceText resourceKey=\"BusinessEntityPage_Badge_New\" defaultText=\"Uudiskohde\" />\n\t\t\t\t</strong>,\n\t\t\t);\n\t\t}\n\t\tif (be.nextShowing) {\n\t\t\taddToBadgeContents(\n\t\t\t\tthis.props.getResourceText('General_Showing', 'esittely', { transform: 'capitalize' }) +\n\t\t\t\t\t' ' +\n\t\t\t\t\tformatBasicDateString(be.nextShowing.start),\n\t\t\t);\n\t\t}\n\t\treturn badgeContents;\n\t}\n\n\tprivate renderAvailableApartments(be: BusinessEntityAM) {\n\t\tif (!be.productionEntityId || !isOperationSuccess(this.props.availableApartments, be.productionEntityId)) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst apartments = this.props.availableApartments.result;\n\t\tif (apartments.length === 0) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst showMoreUrl = GetUrlForCriteria(\n\t\t\tthis.props.language,\n\t\t\t{ location: { businessEntityIds: [be.productionEntityId] } },\n\t\t\tthis.props.allLocations,\n\t\t);\n\n\t\treturn (\n\t\t\t<ApartmentsReel\n\t\t\t\tapartments={this.props.availableApartments.result}\n\t\t\t\theading={\n\t\t\t\t\t<ResourceText\n\t\t\t\t\t\tresourceKey=\"MarketingBusinessEntityPage_FreeApartments_Heading\"\n\t\t\t\t\t\tdefaultText=\"Vapaita asuntoja\"\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t\tingress={\n\t\t\t\t\t<ResourceText\n\t\t\t\t\t\tresourceKey=\"MarketingBusinessEntityPage_FreeApartments_Ingress\"\n\t\t\t\t\t\tdefaultText=\"Tähän joku vähän pidempi ingressiteksti\"\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t\tshowMoreLinkUrl={showMoreUrl}\n\t\t\t\tshowMoreLinkText={\n\t\t\t\t\t<ResourceText\n\t\t\t\t\t\tresourceKey=\"MarketingBusinessEntityPage_FreeApartments_ShowMoreLinkText\"\n\t\t\t\t\t\tdefaultText=\"Katso kaikki\"\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t\tlistNameForTelemetry={ApartmentListName.ValmiitaAsuntoja}\n\t\t\t/>\n\t\t);\n\t}\n\n\tprivate scrollToMap = (e: React.MouseEvent) => {\n\t\tif (this.map.current) {\n\t\t\tthis.map.current.scrollIntoView();\n\t\t}\n\t\te.preventDefault();\n\t};\n\n\tprivate setLayoutProps(be: BusinessEntityAM) {\n\t\tif (!be) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst language = this.props.language;\n\n\t\tthis.props.setLayoutValues({\n\t\t\tbreadcrumbCurrentName: be.name,\n\t\t\tbreadcrumbParents: [\n\t\t\t\t{\n\t\t\t\t\tname: this.props.getResourceText('BreadCrumb_Houses', 'Lumo-talot'),\n\t\t\t\t\tpath: BuildBusinessEntityBrowserUrl(language),\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tname: be.municipality.name,\n\t\t\t\t\tpath: BuildBusinessEntityBrowserUrl(language, { municipalities: [be.municipality] }),\n\t\t\t\t},\n\t\t\t],\n\t\t\ttranslateUrl: createTranslatedUrlsUsing((l) => BuildBusinessEntityUrl(l, be)),\n\t\t});\n\t}\n}\n\nfunction CTA({\n\tbe,\n\tinitNewSearchWatchCreation,\n\tinitRentalServiceRequestCreation,\n\tallLocations,\n}: {\n\tbe: BusinessEntityAM;\n\tinitNewSearchWatchCreation: DispatchProps['initNewSearchWatchCreation'];\n\tinitRentalServiceRequestCreation: DispatchProps['initRentalServiceRequestCreation'];\n\tallLocations: StateProps['allLocations'];\n}) {\n\tconst { getResourceText } = useResource();\n\tconst language = useLanguage();\n\tconst navigate = useNavigate();\n\n\tif (be.callToActionType) {\n\t\tlet text: string;\n\t\tlet link: string;\n\n\t\tif (be.callToActionType === 'DefaultButton') {\n\t\t\ttext = getResourceText('BusinessEntityPage_MoreInformationOnPremarketingEntity', 'Haluan lisätietoja');\n\t\t\tlink = BuildMarketingBusinessEntityMarketingInterestUrl(language, be);\n\t\t} else if (be.callToActionType === 'CustomButton') {\n\t\t\ttext = be.extraCallToAction!.buttonText;\n\t\t\tlink = be.extraCallToAction!.buttonLink;\n\t\t} else {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn (\n\t\t\t<SmartLink className=\"mod-houseInfoNew__button\" to={link}>\n\t\t\t\t{text}\n\t\t\t</SmartLink>\n\t\t);\n\t}\n\n\tif (be.availableApartmentsCount > 0) {\n\t\tconst searchUrl = GetUrlForCriteria(language, { location: { businessEntityIds: [be.id] } }, allLocations);\n\t\treturn (\n\t\t\t<Link className=\"mod-houseInfoNew__button\" to={searchUrl}>\n\t\t\t\t<ResourceText\n\t\t\t\t\tresourceKey=\"BusinessEntityPage_ShowApartmentsLink\"\n\t\t\t\t\tparameters={[String(be.availableApartmentsCount)]}\n\t\t\t\t\tdefaultText=\"Näytä talon vapaat asunnot ({0})\"\n\t\t\t\t/>\n\t\t\t</Link>\n\t\t);\n\t}\n\n\tconst onCreateRentalServiceRequest = (e: React.MouseEvent, be: BusinessEntityAM) => {\n\t\te.preventDefault();\n\n\t\tinitRentalServiceRequestCreation({\n\t\t\tsearchCriteria: {\n\t\t\t\tlocation: {\n\t\t\t\t\tbusinessEntityIds: [be.id],\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\t\tnavigate(routeFromRoot(routes.rentalServiceRequest)[language]);\n\t};\n\n\tconst onCreateSearchWatch = (e: React.MouseEvent, be: BusinessEntityAM) => {\n\t\te.preventDefault();\n\n\t\tinitNewSearchWatchCreation({\n\t\t\tlanguage: language,\n\t\t\tsearchCriteria: {\n\t\t\t\tlocation: {\n\t\t\t\t\tbusinessEntityIds: [be.id],\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\t\tnavigate(routeFromRoot(routes.searchWatch)[language]);\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<button\n\t\t\t\tid=\"businessEntityPage_RentalServiceRequest\"\n\t\t\t\tclassName=\"mod-houseInfoNew__button\"\n\t\t\t\tonClick={(ev) => onCreateRentalServiceRequest(ev, be)}\n\t\t\t>\n\t\t\t\t<ResourceText resourceKey=\"BusinessEntityPage_CreateRentalServiceRequest\" />\n\t\t\t</button>\n\t\t\t<br />\n\t\t\t<button className=\"mod-houseInfoNew__button\" onClick={(ev) => onCreateSearchWatch(ev, be)}>\n\t\t\t\t<ResourceText resourceKey=\"BusinessEntityPage_CreateSearchWatch\" defaultText=\"Jätä hakuvahti\" />\n\t\t\t</button>\n\t\t\t<p className=\"mod-houseInfoNew__additionalText\">\n\t\t\t\t<ResourceText resourceKey=\"BusinessEntityPage_NoAvailableApartments\" />\n\t\t\t</p>\n\t\t</>\n\t);\n}\n\nconst mapStateToProps = ({\n\tbusinessEntities,\n\tbusinessEntityPage,\n\tlocationData,\n\tlanguage,\n\tsettings,\n\tpointsOfInterest,\n}: ILumoOneAppState): StateProps => ({\n\tbrowserState: businessEntities.browserState,\n\tbusinessEntityState: businessEntityPage,\n\tallLocations: locationData.locationData!,\n\tlanguage: language.currentLanguage,\n\tcommonUiRoot: settings.settings!.commonUiRoot,\n\tavailableApartments: businessEntityPage.availableApartments,\n\tpointsOfInterest: pointsOfInterest.poiData,\n});\n\nexport default withResourceTextSupport(\n\twithSsrSupport(\n\t\tconnect<StateProps, DispatchProps, Params>(mapStateToProps, {\n\t\t\tgetBusinessEntityById: businessEntityPageActions.getBusinessEntityById.request,\n\t\t\tsetLayoutValues: layoutActions.setValues,\n\t\t\tgetApartmentCount: businessEntityPageActions.getApartmentCount.request,\n\t\t\tinitRentalServiceRequestCreation: rentalServiceRequestActions.initRequestCreationData,\n\t\t\tinitNewSearchWatchCreation: createSearchWatchActions.initNewSearchWatchCreation,\n\t\t\tpageComplete: pageViewTelemetryActions.pageComplete,\n\t\t\tgetAvailableApartments: businessEntityPageActions.getAvailableApartments.request,\n\t\t})(MarketingBusinessEntityPage),\n\t),\n);\n\nexport function getMarketingBusinessEntityImageUrl(beId: string, i: ImageAM, commonUiRoot: string): string {\n\treturn getMarketingBusinessEntityImageUrlById(beId, i.id, commonUiRoot);\n}\n\nexport function getMarketingBusinessEntityImageUrlById(beId: string, imageId: string, commonUiRoot: string): string {\n\treturn `${commonUiRoot}images/marketing-business-entities/${beId}/${imageId}`;\n}\n","import * as React from 'react';\nimport { ApartmentBenefitAM } from '../../Apartments/Api/ApartmentAM';\nimport { getBenefitIconUrl } from '../../Benefits/BenefitUtils';\nimport { LazyImage } from '../../Components/LazyImage';\nimport { ResourceTextInline, useLanguage } from '../../Components/ResourceText';\nimport { Link } from 'react-router-dom';\nimport { routeFromRoot, routes } from '../../Common/routes';\n\nexport function BenefitsListNew(props: { benefits: ApartmentBenefitAM[] }) {\n\tif (props.benefits.length === 0) {\n\t\treturn null;\n\t}\n\tconst language = useLanguage();\n\n\tconst freeBenefits = props.benefits.filter((b) => !b.priceFrom);\n\tconst paidBenefits = props.benefits.filter((b) => !!b.priceFrom);\n\treturn (\n\t\t<div className=\"mod-servicesListing\">\n\t\t\t<div className=\"mod-servicesListing__wrapper\">\n\t\t\t\t{freeBenefits.length > 0 && (\n\t\t\t\t\t<div className=\"mod-servicesListing__services\">\n\t\t\t\t\t\t<h2 className=\"mod-servicesListing__listHeading\">\n\t\t\t\t\t\t\t<ResourceTextInline\n\t\t\t\t\t\t\t\tresourceKey=\"MarketingBusinessEntityPage_Benefits_Free_Title\"\n\t\t\t\t\t\t\t\tdefaultText=\"Maksuttomat Lumo-palvelut\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</h2>\n\t\t\t\t\t\t<ul className=\"mod-servicesListing__list\">\n\t\t\t\t\t\t\t{freeBenefits.map((b) => (\n\t\t\t\t\t\t\t\t<BenefitItem key={b.technicalName} b={b} />\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t</ul>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t\t{paidBenefits.length > 0 && (\n\t\t\t\t\t<div className=\"mod-servicesListing__services\">\n\t\t\t\t\t\t<h2 className=\"mod-servicesListing__listHeading\">\n\t\t\t\t\t\t\t<ResourceTextInline\n\t\t\t\t\t\t\t\tresourceKey=\"MarketingBusinessEntityPage_Benefits_Paid_Title\"\n\t\t\t\t\t\t\t\tdefaultText=\"Maksulliset Lumo-palvelut\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</h2>\n\t\t\t\t\t\t<ul className=\"mod-servicesListing__list\">\n\t\t\t\t\t\t\t{paidBenefits.map((b) => (\n\t\t\t\t\t\t\t\t<BenefitItem key={b.technicalName} b={b} />\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t</ul>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t\t<div className=\"mod-servicesListing__showAll\">\n\t\t\t\t\t<Link to={routeFromRoot(routes.benefits)[language]} className=\"l-button\">\n\t\t\t\t\t\t<ResourceTextInline\n\t\t\t\t\t\t\tresourceKey=\"MarketingBusinessEntityPage_Benefits_ShowAllLink\"\n\t\t\t\t\t\t\tdefaultText=\"Katso kaikki Lumo-palvelut\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Link>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nfunction BenefitItem({ b: benefit }: { b: ApartmentBenefitAM }) {\n\treturn (\n\t\t<li className=\"mod-servicesListing__listItem\">\n\t\t\t<div className=\"mod-servicesListing__icon\">\n\t\t\t\t<LazyImage src={getBenefitIconUrl(benefit)} height=\"21\" />\n\t\t\t</div>\n\t\t\t<span className=\"mod-servicesListing__label\">\n\t\t\t\t{benefit.heading}\n\t\t\t\t{/* <button type=\"button\" className=\"button--infoCircle not-implemented\"></button> */}\n\t\t\t</span>\n\t\t</li>\n\t);\n}\n","import * as React from 'react';\nimport { LinkedMediaItem, MediaItem, ImageItem } from '../../Components/MediaCarousel';\nimport { BusinessEntityAM } from '../../Apartments/Api/BusinessEntityAM';\nimport { LazyImage } from '../../Components/LazyImage';\nimport { orderBy } from '../../Components/arrayUtilities';\nimport { getMarketingBusinessEntityImageUrlById } from './MarketingBusinessEntityPage';\nimport { LinkedMediaAM } from '../../Apartments/Api/LinkedMediaAM';\nimport { ImageAM } from '../../Apartments/Api/ImageAM';\nimport { ResourceText, ResourceTextInline } from '../../Components/ResourceText';\nimport { FullScreenImageGallery } from '../../Components/FullScreenImageGallery';\nimport { housingImagesPresetConfig, housingVideoPresetConfig } from '../../Components/realEstateMediaPresets';\n\nexport function getMarketingBusinessEntityMedia(be: BusinessEntityAM, commonUiRoot: string): MediaItem[] {\n\tconst videos = be.linkedMedia\n\t\t.filter((m) => m.mediaClass === 'Video')\n\t\t.map((v: LinkedMediaAM): LinkedMediaItem => ({ ...v, kind: 'linkedMedia', ...housingVideoPresetConfig }));\n\n\tconst images = be.images.map(\n\t\t(i: ImageAM): ImageItem => ({\n\t\t\t...i,\n\t\t\tkind: 'image',\n\t\t\turl: getMarketingBusinessEntityImageUrlById(be.id, i.id, commonUiRoot),\n\t\t\taltText: '',\n\t\t\t...housingImagesPresetConfig,\n\t\t}),\n\t);\n\n\treturn orderBy((images as MediaItem[]).concat(videos), (c) => c.orderNumber);\n}\n\nexport function MarketingBusinessEntityImageGallery(props: { be: BusinessEntityAM; commonUiRoot: string }) {\n\tconst [showOverlay, setShowOverlay] = React.useState<boolean>(false);\n\tconst [selectedItemIndex, setSelectedImageIndex] = React.useState<number>(0);\n\n\tconst media = getMarketingBusinessEntityMedia(props.be, props.commonUiRoot).slice(1);\n\tif (media.length === 0) {\n\t\treturn null;\n\t}\n\n\tconst firstItem = media[0];\n\tconst numToShow = 4;\n\tconst others = media.slice(1, 1 + numToShow + 1);\n\n\tconst galleryItem = (imageUrl: string, caption?: string) => (\n\t\t<>\n\t\t\t<LazyImage src={imageUrl} />\n\t\t\t<span className=\"mod-imageGallery__galleryItemText\">{caption}</span>\n\t\t</>\n\t);\n\n\tconst renderMediaItem = (i: MediaItem) => {\n\t\tif (i.kind == 'image') {\n\t\t\treturn galleryItem(`${i.url}/1200x800-shop-carousel`, i.caption);\n\t\t} else if (i.kind === 'linkedMedia') {\n\t\t\treturn galleryItem('/images/video-placeholder.png', i.caption);\n\t\t}\n\t\treturn null;\n\t};\n\n\tconst onSelectedItemChanging = (idx: number) => {\n\t\tsetSelectedImageIndex(idx);\n\t};\n\n\tconst showGallery = (ev: React.MouseEvent, slideToShow: number) => {\n\t\tev.preventDefault();\n\t\tonSelectedItemChanging(slideToShow);\n\t\tsetShowOverlay(true);\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<div id=\"image-gallery\" className={'mod-imageGallery'}>\n\t\t\t\t<div className=\"mod-imageGallery__wrapper\">\n\t\t\t\t\t<h2 className=\"mod-imageGallery__title\">\n\t\t\t\t\t\t<ResourceTextInline\n\t\t\t\t\t\t\tresourceKey=\"MarketingBusinessEntityPage_Images_Title\"\n\t\t\t\t\t\t\tdefaultText=\"Kuvia ja videoita talosta\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</h2>\n\t\t\t\t\t<div className=\"mod-imageGallery__galleryHero\">\n\t\t\t\t\t\t<a href=\"\" className=\"mod-imageGallery__galleryItemLink\" onClick={(e) => showGallery(e, 0)}>\n\t\t\t\t\t\t\t{renderMediaItem(firstItem)}\n\t\t\t\t\t\t</a>\n\t\t\t\t\t</div>\n\t\t\t\t\t<ul className=\"mod-imageGallery__gallery\">\n\t\t\t\t\t\t{others.map((i, idx) => (\n\t\t\t\t\t\t\t<li key={idx} className=\"mod-imageGallery__galleryItem\">\n\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\t\thref=\"\"\n\t\t\t\t\t\t\t\t\tclassName=\"mod-imageGallery__galleryItemLink\"\n\t\t\t\t\t\t\t\t\tonClick={(e) => showGallery(e, idx + 1)}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{renderMediaItem(i)}\n\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</ul>\n\t\t\t\t\t<div className=\"mod-imageGallery__showAll\">\n\t\t\t\t\t\t<button className=\"atom-button\" onClick={(e) => showGallery(e, 0)}>\n\t\t\t\t\t\t\t<ResourceText\n\t\t\t\t\t\t\t\tresourceKey=\"MarketingBusinessEntityPage_Images_ShowAll\"\n\t\t\t\t\t\t\t\tdefaultText=\"Näytä kaikki\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<FullScreenImageGallery\n\t\t\t\tmedia={media}\n\t\t\t\tselectedItemIndex={selectedItemIndex}\n\t\t\t\tonSelectedItemIndexChanged={(idx) => onSelectedItemChanging(idx)}\n\t\t\t\tisOpen={showOverlay}\n\t\t\t\tonOpenChanged={(isVisible) => setShowOverlay(isVisible)}\n\t\t\t/>\n\t\t</>\n\t);\n}\n","import * as React from 'react';\n\nimport { BusinessEntityAM } from '../../Apartments/Api/BusinessEntityAM';\nimport { getMarketingBusinessEntityImageUrlById } from './MarketingBusinessEntityPage';\nimport { withWindow } from '../../Common/window';\nimport { ResourceText, ResourceTextInline } from '../../Components/ResourceText';\nimport { OverlayGallery } from '../../Components/OverlayGallery';\n\nexport function ThreeDGallery(props: { be: BusinessEntityAM; commonUiRoot: string }) {\n\tconst [isOpen, setIsOpen] = React.useState<boolean>(false);\n\tconst [selectedIndex, setSelectedIndex] = React.useState<number>(0);\n\tconst [scrollPosOriginalY, setScrollPosOriginalY] = React.useState<number | undefined>();\n\n\tconst onSelectedItemChanging = (idx: number) => {\n\t\tsetSelectedIndex(idx);\n\t};\n\n\tconst openGallery = (event: React.MouseEvent, index: number) => {\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\tonSelectedItemChanging(index);\n\t\twithWindow((w) => setScrollPosOriginalY(w.scrollY));\n\t\tsetIsOpen(true);\n\t};\n\n\tReact.useEffect(() => {\n\t\tif (!isOpen && scrollPosOriginalY) {\n\t\t\twithWindow((w) => setTimeout(() => w.scrollTo(0, scrollPosOriginalY), 10));\n\t\t}\n\t}, [isOpen]);\n\n\tif (!props.be.interactiveMedia || props.be.interactiveMedia.length === 0) {\n\t\treturn null;\n\t}\n\n\tconst data = props.be.interactiveMedia.map(({ previewImageName, ...rest }) => ({\n\t\t...rest,\n\t\tthumbnailUrl: previewImageName\n\t\t\t? `${getMarketingBusinessEntityImageUrlById(\n\t\t\t\t\tprops.be.id,\n\t\t\t\t\tpreviewImageName,\n\t\t\t\t\tprops.commonUiRoot,\n\t\t\t\t)}/780x520-shop-carousel`\n\t\t\t: null,\n\t}));\n\n\tconst hero = data[0];\n\tconst other = data.slice(1);\n\n\tconst Thumbnail = (d: typeof hero, index: number) => (\n\t\t<>\n\t\t\t<a href=\"\" className=\"mod-thirdDimensionGallery__galleryThumbLink\" onClick={(e) => openGallery(e, index)}>\n\t\t\t\t<img src={d.thumbnailUrl || '/images/3d-placeholder.png'} alt=\"\" />\n\t\t\t\t<span className=\"mod-thirdDimensionGallery__galleryThumbButton\">\n\t\t\t\t\t<ResourceText\n\t\t\t\t\t\tresourceKey=\"MarketingBusinessEntityPage_3dPresentations_ThumbnailButton\"\n\t\t\t\t\t\tdefaultText=\"Näytä 3D-esittely\"\n\t\t\t\t\t/>\n\t\t\t\t</span>\n\t\t\t</a>\n\t\t\t<span className=\"mod-thirdDimensionGallery__galleryItemText\">{d.caption}</span>\n\t\t</>\n\t);\n\n\treturn (\n\t\t<div id=\"3d-gallery\" className={'mod-thirdDimensionGallery' + (isOpen ? ' -isOpen' : '')}>\n\t\t\t<OverlayGallery\n\t\t\t\ttopBar={\n\t\t\t\t\t<nav className=\"view-overlayGallery__nav\">\n\t\t\t\t\t\t{data.map((d, idx) => (\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\thref=\"\"\n\t\t\t\t\t\t\t\tkey={idx}\n\t\t\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\t\tonSelectedItemChanging(idx);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tclassName={idx == selectedIndex ? '-active' : ''}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{d.caption}\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</nav>\n\t\t\t\t}\n\t\t\t\tisOpen={isOpen}\n\t\t\t\tonOpenChanged={(v) => setIsOpen(v)}\n\t\t\t\trenderChildrenEvenIfClosed={true}\n\t\t\t>\n\t\t\t\t<div className=\"mod-thirdDimensionGallery__wrapper\">\n\t\t\t\t\t<h2 className=\"mod-thirdDimensionGallery__title\">\n\t\t\t\t\t\t<ResourceTextInline\n\t\t\t\t\t\t\tresourceKey=\"MarketingBusinessEntityPage_3dPresentations_Title\"\n\t\t\t\t\t\t\tdefaultText=\"3D-esittelyjä talosta\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</h2>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={\n\t\t\t\t\t\t\t'mod-thirdDimensionGallery__galleryHero' + (isOpen && selectedIndex === 0 ? ' -isOpen' : '')\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonClick={(e) => openGallery(e, 0)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{isOpen || hero.showEmbedded ? (\n\t\t\t\t\t\t\t<iframe className=\"mod-thirdDimensionGallery__iframe\" src={hero.url}></iframe>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\tThumbnail(hero, 0)\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={\n\t\t\t\t\t\t\t'mod-thirdDimensionGallery__gallery' + (isOpen && selectedIndex > 0 ? ' -isOpen' : '')\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t{isOpen && selectedIndex > 0 && (\n\t\t\t\t\t\t\t<iframe\n\t\t\t\t\t\t\t\tclassName={'mod-thirdDimensionGallery__iframe'}\n\t\t\t\t\t\t\t\tsrc={data[selectedIndex].url}\n\t\t\t\t\t\t\t></iframe>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t\t<ul className=\"mod-thirdDimensionGallery__galleryThumbs\">\n\t\t\t\t\t\t{other.map((d, idx) => (\n\t\t\t\t\t\t\t<li key={idx} className=\"mod-thirdDimensionGallery__galleryThumb\">\n\t\t\t\t\t\t\t\t{Thumbnail(d, idx + 1)}\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</ul>\n\t\t\t\t</div>\n\t\t\t</OverlayGallery>\n\t\t</div>\n\t);\n}\n","import React from 'react';\nimport { connect } from 'react-redux';\n\nimport ArticleLinks from '../../Components/ArticleLinks/ArticleLinks';\nimport { isOperationSuccess } from '../../Common/Api/ApiOperationState';\nimport { ILumoOneAppState } from '../../boot/configureStore';\nimport { getArticleRequestKey } from '../../Components/ArticleLinks/articleLinksState';\nimport { Language } from '../../Common/interfaces/language';\n\ninterface Params {\n\ttag: string;\n\ttake: number;\n}\ninterface StateProps {\n\thasData: boolean;\n\tcurrentLanguage: Language;\n}\ntype Props = StateProps & Params;\n\n/**\n * Wrapper component for ArticleLinks to hide it and the envelope HTML if there are no articles\n *\n * @param {Props} props\n * @returns\n */\nfunction ArticleLinksWrapper(props: Props) {\n\tconst inner = <ArticleLinks tagPrimary={props.tag} take={props.take} />;\n\n\tif (!props.hasData) {\n\t\t// Need to return component itself so it triggers data loading.\n\t\treturn inner;\n\t}\n\treturn (\n\t\t<div className=\"mod-textBlocksNew\">\n\t\t\t<div className=\"mod-textBlocksNew__wrapper\">\n\t\t\t\t<div className=\"mod-textBlock -fullWide\">{inner}</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nexport default connect<StateProps, Record<string, never>, Params, ILumoOneAppState>(\n\t({ articleLinks, language }: ILumoOneAppState, parameters): StateProps => {\n\t\tconst key = getArticleRequestKey({ tagPrimary: parameters.tag, take: parameters.take + 1 });\n\t\tconst op = articleLinks.articlesByTag[key];\n\t\treturn {\n\t\t\thasData: isOperationSuccess(op, key) && op.result.length > 0,\n\t\t\tcurrentLanguage: language.currentLanguage,\n\t\t};\n\t},\n)(ArticleLinksWrapper);\n"],"names":["$ed3kz","parcelRequire","$a4abd28e9c047a39$export$2e2bcd8739ae039","pathname","search","hash","useLocation","locationData","useAppSelector","language","useLanguage","navigate","useNavigate","result","useMemo","ParseUrl","isDataLoaded","SearchPageResult","redirect","jsx","$lP20Z","Redirect","to","BuildBusinessEntityBrowserUrl","searchParams","$78Yed","default","municipalities","typeFilter","BusinessEntityPageResult","variant","$kwDmO","locationBusinessEntity","businessEntity","isMarketing","$9LVB0","$qqheS","RedirectResult","routeFromRoot","routes","houses","pathSegments","join","BusinessEntityBrowserPage","React","constructor","props","context","super","isAlreadyRequested","this","allBusinessEntities","getAllBusinessEntities","setLayoutProps","componentDidMount","pageComplete","headingResourceKey","isNewApartmentsFilterSet","arePreMarketingAndNewApartmentsFiltersSet","ingressResourceKey","isPreMarketingFilterSet","indexOf","render","getResourceText","jsxs","$iU6fI","Fragment","$2LBWb","media","srcSet","src","children","$jjuiK","ResourceText","resourceKey","defaultText","orderBy","value","m","slug","name","$iF3jp","item","map","$djSjy","MunicipalityTag","onRemoved","municipalityRemoved","id","type","className","checked","length","typeFilterChanged","formatResults","event","currentTarget","find","municipalitySlug","municipality","newFilter","newUrl","persistState","filter","target","preventDefault","$kJ5Yf","handleTypeFilterChange","isChecked","filterCurrentlyContainsType","newState","t","browserState","persistBrowserState","status","$2H4Tg","ApiOperationState","Requested","Failed","businessEntities","urlWithoutTypeFilter","$iffFd","Link","be","types","typesIdentifier","some","f","isNew","isPreMarketing","breadCrumb","path","push","$88Y98","capitalize","setLayoutValues","breadcrumbCurrentName","breadcrumbParents","slice","mapStateToProps","l","pageViewTelemetryActions","$fbmYJ","connect","businessEntityActions","request","$cFBGu","Tag","text","BusinessEntityPage","requireForSsr","businessEntityPageActions","getBusinessEntityById","getApartmentCount","suggestedApartmentsActions","getApartments","loadDataAsNeeded","isOperationSuccess","businessEntityState","logTelemetry","componentDidUpdate","prevProps","data","businessEntityName","municipalitySubArea","municipalityApartmentCount","allLocations","municipalityId","getArticlesRequest","municipalitySubAreaId","tagPrimary","tagSecondary","municipalitySubAreas","take","badgeContents","getBadgeContents","title","shareImageUrl","images","getImageUrl","undefined","meta","description","optional","mediaItems","getMediaItems","$9ma2w","backButton","zipCode","postOffice","location","href","onClick","scrollToMap","xmlns","width","height","viewBox","fill","fillRule","d","$044jS","ImageCarouselWithFullScreenSupport","thumbDisplayMode","telemetryContext","formatCTA","xlinkHref","mask","buildingType","transform","constructionYear","apartmentTypes","areaMinStr","toFormattedString","minAreaInSqm","areaMaxStr","maxAreaInSqm","roomCount","toString","count","nextShowing","stroke","strokeWidth","x","y","formatDateTimeRange","start","end","$lONAM","displayLevel","brochureId","brochureTitle","commonUiRoot","strokeLinecap","strokeLinejoin","ref","$fR768","NearbyServices","center","services","nearbyServices","businessEntityId","municipalitySubAreaDescription","$9QCB5","ExpandableContent","content","$hJlnN","MarkdownContent","$77qec","municipalityDescription","benefits","$5t4gy","BenefitsList","heading","$jdgXg","maxAmount","searchCriteria","businessEntityIds","showMoreLinkText","parameters","showMoreLinkUrl","GetUrlForSearchResults","$eMJA0","BannerApartmentAndBusinessEntity","addToBadgeContents","element","formatBasicDateString","availableApartmentsCount","searchUrl","GetUrlForCriteria","String","ev","onCreateRentalServiceRequest","onCreateSearchWatch","i","kind","url","housingImagesPresetConfig","altText","linkedMedia","e","initRentalServiceRequestCreation","rentalServiceRequest","initNewSearchWatchCreation","searchWatch","current","scrollIntoView","translateUrl","createTranslatedUrlsUsing","BuildBusinessEntityUrl","$b122e0aaefd41ab7$export$2e2bcd8739ae039","withResourceTextSupport","withSsrSupport","businessEntityPage","settings","currentLanguage","layoutActions","setValues","rentalServiceRequestActions","initRequestCreationData","createSearchWatchActions","useCommonUiRoot","LinkWithBackground","textType","linkTarget","linkText","image","getResourceImageUrlByKey","imageMedium","imageSmall","$5ac1e3881359cb02$export$2e2bcd8739ae039","shownFields","communalAreaFeatures","filterInOrder","features","localizedMarketingText","marketingTextEn","marketingText","marketingTextTitle","dangerouslySetInnerHTML","__html","energyEfficiencyClass","isTenantSelectionFinanciallyLimited","hasElevator","cableTV","available","provider","broadband","speed","isNonSmoking","formatParkingSpaces","externalParkingSpaceManagementDescription","availableParkingSpaceCount","idx","$5ac1e3881359cb02$var$TextFeature","feature","isFirst","TextFeature","useResource","desc","open","setOpen","useState","$parcel$interopDefault","$icxVu","Tooltip","trigger","Button","isSmall","style","marginTop","IconUIInfo","contentProps","zIndex","onOpenChange","showAll","setShowAll","useEffect","b","$btB8r","LazyImage","getBenefitIconUrl","technicalName","display","$d1b036b443e7f2e8$export$2e2bcd8739ae039","contact","marketingBusinessEntityContact","sendPremarketingContact","contactActions","sendMarketingBusinessEntityContact","clearMarketingBusinessEntityContact","subscribeToNewsletter","newsletterActions","subscribe","register","handleSubmit","useForm","setSubscribeToNewsletter","scrollToTop","setTimeout","window","scrollTo","submitSucceeded","BuildMarketingBusinessEntityMarketingInterestUrl","useRunOnce","$fQt7u","LoadingSpinner","withTitle","alt","$islVD","ErrorMessageDisplay","message","estimatedFinishingTime","onSubmit","Error","addRegisterForPremarketingEvent","email","firstname","firstName","lastname","lastName","addTelemetryEventForNewsletterSubscription","htmlFor","required","$23pNT","CheckBox","labelKey","valueChanged","$f6yV8","WaitingButton","waiting","submitting","MarketingBusinessEntityPage","productionEntityId","prodBeId","availableApartments","getAvailableApartments","getAreaArticlesRequest","orderNumber","primaryImage","getMarketingBusinessEntityImageUrl","getMarketingBusinessEntityMedia","$eesM2","ScrollToHash","estimatedAvailabilityTime","renderHero","interactiveMedia","mediaClass","$c26fdda0a121737a$var$CTA","priceFrom","ResourceTextInline","rel","renderAvailableApartments","$ii09n","ThreeDGallery","$7f8cE","MarketingBusinessEntityImageGallery","$dF24z","BenefitsListNew","$kfJNZ","tag","pointsOfInterest","CityCenter","Culture","Daycare","Grocery","Health","Nature","PublicTransport","Restaurants","Sports","Schools","$alhHG","telemetryId","GA4EventAction","MarketingBusinessEntityPage_DynamicBannerCTA","heroMedia","hostingService","HostingService","Youtube","$etTbp","YoutubeEmbed","videoId","hostingServiceId","options","autoplay","loop","showMoreUrl","$bDJaZ","apartments","ingress","listNameForTelemetry","ApartmentListName","ValmiitaAsuntoja","CTA","callToActionType","link","extraCallToAction","buttonText","buttonLink","$e3EsW","$c26fdda0a121737a$export$2e2bcd8739ae039","poiData","beId","getMarketingBusinessEntityImageUrlById","imageId","freeBenefits","paidBenefits","$dcff19d59e85d6ff$var$BenefitItem","BenefitItem","benefit","videos","v","housingVideoPresetConfig","concat","c","showOverlay","setShowOverlay","selectedItemIndex","setSelectedImageIndex","firstItem","others","galleryItem","imageUrl","caption","renderMediaItem","onSelectedItemChanging","showGallery","slideToShow","$14Ar4","FullScreenImageGallery","onSelectedItemIndexChanged","isOpen","onOpenChanged","isVisible","setIsOpen","selectedIndex","setSelectedIndex","scrollPosOriginalY","setScrollPosOriginalY","openGallery","index","stopPropagation","withWindow","w","scrollY","previewImageName","rest","thumbnailUrl","hero","other","Thumbnail","$7dII4","OverlayGallery","topBar","renderChildrenEvenIfClosed","showEmbedded","$79ec11ba988227f4$export$2e2bcd8739ae039","articleLinks","key","getArticleRequestKey","op","articlesByTag","hasData","inner"],"version":3,"file":"BusinessEntityUrlResolver.0577f14d.js.map"}