{"version":3,"file":"js/application_detailed_view-23f0a6c833fc4c1d645d.js","mappings":"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","sources":["webpack:///./app/javascript/entry_detailed_view/ sync ^\\.\\/.*$","webpack:///./app/javascript/src/images/energy_certificates/ sync ^\\.\\/.*$","webpack:///./app/javascript/src/images/icons/facts_and_facilities/ sync ^\\.\\/.*\\.svg$","webpack:///./app/javascript/api/httpService.js","webpack:///./app/javascript/components/Breadcrumb/index.jsx","webpack:///./app/javascript/components/DetailedViewHeader/DescriptionSection/Description.jsx","webpack:///./app/javascript/components/DetailedViewHeader/DescriptionSection/DescriptionTopMenu.jsx","webpack:///./app/javascript/components/DetailedViewHeader/DescriptionSection/index.jsx","webpack:///./app/javascript/components/DetailedViewHeader/EconomySection/SectionRow.jsx","webpack:///./app/javascript/components/DetailedViewHeader/EconomySection/index.jsx","webpack:///./app/javascript/components/DetailedViewHeader/FactsAndFacilities/DistancesListItem.jsx","webpack:///./app/javascript/components/DetailedViewHeader/FactsAndFacilities/FacilitiesListItem.jsx","webpack:///./app/javascript/components/DetailedViewHeader/FactsAndFacilities/ParkingListItem.jsx","webpack:///./app/javascript/components/DetailedViewHeader/FactsAndFacilities/index.jsx","webpack:///./app/javascript/components/DetailedViewHeader/FixedNavigationBar/index.jsx","webpack:///./app/javascript/components/DetailedViewHeader/Gallery/AssetBlock.jsx","webpack:///./app/javascript/components/DetailedViewHeader/Gallery/GallerySwitcher.jsx","webpack:///./app/javascript/components/DetailedViewHeader/Gallery/ImageGalleryWrapper.jsx","webpack:///./app/javascript/components/DetailedViewHeader/Gallery/index.jsx","webpack:///./app/javascript/components/DetailedViewHeader/Header/index.jsx","webpack:///./app/javascript/components/DetailedViewHeader/InfoSections/index.jsx","webpack:///./app/javascript/components/DetailedViewHeader/MapSection/index.jsx","webpack:///./app/javascript/components/DetailedViewHeader/SmartTextTooltip/index.jsx","webpack:///./app/javascript/components/DetailedViewHeader/index.jsx","webpack:///./app/javascript/components/ErrorBoundary/ErrorModalDialog.jsx","webpack:///./app/javascript/components/ErrorBoundary/index.jsx","webpack:///./app/javascript/components/SharedComponents/CollapsibleSection/index.jsx","webpack:///./app/javascript/components/SharedComponents/FAQSection/index.jsx","webpack:///./app/javascript/entry_detailed_view/DetailedViewRoot/index.jsx","webpack:///./app/javascript/packs/application_detailed_view.js","webpack:///./app/javascript/utils/localStorage.js","webpack:///./app/javascript/utils/resizeObzerver.js"],"sourcesContent":["var map = {\n\t\"./DetailedViewRoot\": 59706,\n\t\"./DetailedViewRoot/\": 59706,\n\t\"./DetailedViewRoot/index\": 59706,\n\t\"./DetailedViewRoot/index.jsx\": 59706,\n\t\"./mainStyles\": 54505,\n\t\"./mainStyles.scss\": 54505\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 44226;","var map = {\n\t\"./1\": 31495,\n\t\"./1.svg\": 31495,\n\t\"./14\": 86620,\n\t\"./14.webp\": 86620,\n\t\"./15\": 62406,\n\t\"./15.webp\": 62406,\n\t\"./16\": 44229,\n\t\"./16.webp\": 44229,\n\t\"./17\": 21557,\n\t\"./17.webp\": 21557,\n\t\"./2\": 81503,\n\t\"./2.svg\": 81503,\n\t\"./3\": 46163,\n\t\"./3.svg\": 46163,\n\t\"./4\": 59157,\n\t\"./4.svg\": 59157,\n\t\"./5\": 88363,\n\t\"./5.svg\": 88363,\n\t\"./6\": 27614,\n\t\"./6.svg\": 27614,\n\t\"./7\": 14360,\n\t\"./7.svg\": 14360,\n\t\"./8\": 452,\n\t\"./8.webp\": 452\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 64585;","var map = {\n\t\"./ExemptedEnergyRating.svg\": 10461,\n\t\"./Map.svg\": 49476,\n\t\"./access24Hour.svg\": 29649,\n\t\"./airConditioning.svg\": 69400,\n\t\"./airport.svg\": 14120,\n\t\"./alarmSystem.svg\": 93333,\n\t\"./atm.svg\": 24428,\n\t\"./balcony.svg\": 50546,\n\t\"./bank.svg\": 11867,\n\t\"./bar.svg\": 9029,\n\t\"./bicycle_parking.svg\": 2727,\n\t\"./bikeRacks.svg\": 94615,\n\t\"./boat.svg\": 28276,\n\t\"./build_route.svg\": 73403,\n\t\"./bus.svg\": 46578,\n\t\"./cafe.svg\": 25218,\n\t\"./canteen.svg\": 58132,\n\t\"./car_repair.svg\": 63070,\n\t\"./car_wash.svg\": 83631,\n\t\"./catering.svg\": 8333,\n\t\"./charging_station.svg\": 87973,\n\t\"./cinema.svg\": 7993,\n\t\"./cleaning.svg\": 35702,\n\t\"./clinic.svg\": 19481,\n\t\"./closedCircuitTelevision.svg\": 61552,\n\t\"./coffee_shop.svg\": 83369,\n\t\"./conferenceRooms.svg\": 38855,\n\t\"./cooling.svg\": 52156,\n\t\"./copying_facilities.svg\": 55943,\n\t\"./coworking.svg\": 22328,\n\t\"./coworkingSpace.svg\": 9078,\n\t\"./currency_exchange.svg\": 1396,\n\t\"./default.svg\": 14443,\n\t\"./dentist.svg\": 61141,\n\t\"./disabled.svg\": 44905,\n\t\"./electricCarCharge.svg\": 90081,\n\t\"./elevator.svg\": 92105,\n\t\"./enclosedProperty.svg\": 34976,\n\t\"./fast_food.svg\": 52784,\n\t\"./fiberInternet.svg\": 8842,\n\t\"./fitness_centre.svg\": 22566,\n\t\"./furnished.svg\": 61368,\n\t\"./gym.svg\": 52283,\n\t\"./hotDesk.svg\": 20670,\n\t\"./hotel.svg\": 73704,\n\t\"./itSupport.svg\": 55996,\n\t\"./kitchenette.svg\": 43486,\n\t\"./light_rail.svg\": 1280,\n\t\"./local_train.svg\": 71667,\n\t\"./lounge.svg\": 73111,\n\t\"./mall.svg\": 13680,\n\t\"./meetingRooms.svg\": 12553,\n\t\"./metro.svg\": 41542,\n\t\"./outdoorArea.svg\": 22163,\n\t\"./ownSignage.svg\": 5870,\n\t\"./parking.svg\": 14535,\n\t\"./petFriendly.svg\": 88842,\n\t\"./pharmacy.svg\": 34997,\n\t\"./phoneAnswering.svg\": 93854,\n\t\"./post_office.svg\": 33210,\n\t\"./postalFacilities.svg\": 13333,\n\t\"./privateOffices.svg\": 85383,\n\t\"./pub.svg\": 67007,\n\t\"./reception.svg\": 52981,\n\t\"./restaurant.svg\": 63481,\n\t\"./s-train.svg\": 39839,\n\t\"./secretarial.svg\": 26928,\n\t\"./shower.svg\": 39921,\n\t\"./spatialPlanning.svg\": 35998,\n\t\"./storage.svg\": 72648,\n\t\"./supermarket.svg\": 23604,\n\t\"./taxi.svg\": 67874,\n\t\"./telephoneSystem.svg\": 90645,\n\t\"./train.svg\": 79953,\n\t\"./tram.svg\": 49989,\n\t\"./trolleybus.svg\": 67301,\n\t\"./unfurnished.svg\": 98409,\n\t\"./videoConference.svg\": 28575,\n\t\"./virtualOffices.svg\": 80038,\n\t\"./wC.svg\": 43575,\n\t\"./wifi.svg\": 74726,\n\t\"./yoga.svg\": 75703\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 54084;","// import ES6Promise from 'es6-promise';\nimport { apiProvider } from './core';\nimport { camelizeName } from '../utils/helpers';\n// ES6Promise.polyfill();\n\n\nexport const requestBuilder = (requestParams) => {\n  const bodyFormData = new FormData();\n\n  Object.keys(requestParams).map(elem => {\n    if (Array.isArray(requestParams[elem]))  {\n      requestParams[elem].map(section => bodyFormData.append(`${elem}[]`, section));\n    } else {\n      if (requestParams[elem] != null) {\n        bodyFormData.append(elem, requestParams[elem]);\n      }\n    }\n  });\n\n  return bodyFormData;\n};\n\n\nclass httpService {\n\n  static getLocationsByIds(locationsIds) {\n    const locale = localStorage.getItem('locale');\n    const url = '/api/locations/get_by_ids?locale=' + locale + '&';\n    const params = locationsIds.reduce((sum, item) => sum + 'ids[]=' + item + '&', '');\n    const queryString = url + params.slice(0, -1);\n\n    return apiProvider.getAll(queryString);\n  }\n\n\n  static orderInfoListViewForm(url, data, uuid) {\n\n    const {\n      name,\n      email,\n      company: company_name,\n      option_parking_lots,\n      phone: phone_number,\n      // jeudan_policy,\n      comment,\n      ab_code\n    } = data;\n\n    const order = {\n      order: {\n        location_uuid: uuid,\n        person_name: camelizeName(name),\n        company_name,\n        phone_number,\n        email,\n        option_parking_lots,\n        // jeudan_policy,\n        comment,\n        ab_code,\n      },\n      api_version: 2\n    };\n\n    return apiProvider.post(url, order);\n  }\n}\n\nexport default httpService;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { SvgIco } from \"../SharedComponents/Icons\";\n\nimport './index.sass';\n\n\nconst Breadcrumb = ({ breadcrumbs, root, detailsPage }) => {\n\n  const linksList = breadcrumbs.map( (breadcrumb, index) => (\n    <div className=\"breadcrumbs__link-wrapper\" key={ breadcrumb.label }>\n      { index === breadcrumbs.length - 1\n        ? <div className=\"breadcrumbs__link breadcrumbs__last-one-link breadcrumbs__link--disabled\">{ breadcrumb.label }</div>\n        : <div className=\"breadcrumbs__link-wrapper\">\n            <a className=\"breadcrumbs__link\" href={ breadcrumb.path }>\n              { breadcrumb.label }\n            </a>\n            <SvgIco name=\"keyboard-arrow-right-rounded\" size={15}/>\n          </div>\n      }\n    </div>\n  ));\n\n  return (\n    <div className={ `breadcrumbs ${ root ? root : '' } ${detailsPage ? 'details-page' : ''}`}>\n      <div className=\"container\">\n        <div className=\"breadcrumbs__wrapper\">{ linksList }</div>\n      </div>\n    </div>\n  );\n};\n\nBreadcrumb.defaultProps = {\n  breadcrumbs: [],\n};\n\nBreadcrumb.propTypes = {\n  breadcrumbs: PropTypes.array,\n};\n\n\nexport default Breadcrumb;\n","import React, { useContext, useState } from 'react';\n\nimport { SvgIco } from '../../SharedComponents/Icons';\nimport DescriptionTopMenu from './DescriptionTopMenu';\nimport { Context } from \"../index\";\n\nimport './Description.sass';\n\n\nconst Description = ({ activeTranslatedDescription, setTranslatedDescription }) => {\n\n  const {\n    isRequestFromPrerender,\n    siteKey,\n    tabs: { originalDescription, translatedDescriptions },\n  } = useContext(Context);\n\n  const [readMore, setReadMore] = useState(false);\n  const [showOriginalDescription, setShowOriginalDescription] = useState(false);\n\n  const textLength = activeTranslatedDescription.description ? activeTranslatedDescription.description.length : null;\n\n\n  return (\n    <div className=\"localized-desc\">\n\n      <DescriptionTopMenu\n        activeTranslatedDescription={activeTranslatedDescription}\n        setTranslatedDescription={setTranslatedDescription}\n        siteKey={siteKey}\n        translatedDescriptions={translatedDescriptions}\n      />\n\n      <div>\n        { activeTranslatedDescription &&\n          <div className=\"localized-desc__content\">\n            <p className=\"dv-info-section__title\">\n              { activeTranslatedDescription.title }\n            </p>\n\n            <div className=\"localized-desc__description-text\"\n                 dangerouslySetInnerHTML={{ __html:\n                     showOriginalDescription\n                       ? originalDescription\n                       : (readMore || isRequestFromPrerender)\n                         ? activeTranslatedDescription.description\n                         : activeTranslatedDescription.description.slice(0, 500)\n                 }}\n            />\n          </div>\n        }\n\n        { textLength > 500 &&\n          <div className=\"localized-desc__original_desc_wrapper\">\n            { !readMore && <div className=\"opacity-block\" /> }\n\n            <div className=\"localized-desc__original_desc_read_more\">\n              <a onClick={() => setReadMore(prevState => !prevState)}>\n                { readMore\n                  ? I18n.t('apps.lb_showroom.detailed.description.hide_more_link')\n                  : I18n.t('apps.lb_showroom.detailed.description.read_more_link')\n                }\n                <SvgIco name={readMore ? \"expand-less\" : \"expand-more\"} size={16} />\n              </a>\n            </div>\n          </div>\n        }\n      </div>\n\n    </div>\n  );\n}\n\nexport default Description;\n","import React, { Component, Fragment } from 'react';\n\nimport { SvgIco } from '../../SharedComponents/Icons';\nimport { hasSomeParentTheClass } from '../../../utils/helpers';\nimport { translateDescription } from '../../../utils/api';\nimport googleTranslate from '../../../src/images/icons/google-translate.svg';\n\nimport './Description.sass';\n\n\nexport class DescriptionTopMenu extends Component {\n  constructor(props) {\n    super(props);\n\n    this.availableLocales = [\n      {locale: 'da', country: 'dk'}, {locale: 'nl', country: 'nl'}, {locale: 'en', country: 'gb'}, {locale: 'fi', country: 'fi'},\n      {locale: 'fr', country: 'fr'}, {locale: 'de', country: 'de'}, {locale: 'it', country: 'it'}, {locale: 'nb', country: 'no'},\n      {locale: 'pl', country: 'pl'}, {locale: 'es', country: 'es'}, {locale: 'sv', country: 'se'}, {locale: 'tr', country: 'tr'},\n      {locale: 'uk', country: 'ua'}\n    ];\n\n    this.switcherClassName = 'localized-desc__switcher';\n\n    const originalLocale = this.getOriginalLocale();\n\n    this.state = {\n      showLocaleSwitcher: (this.props.siteKey === 'global'),\n      showLocaleSwitcherItems: false,\n      localesExceptActive: this.availableLocales.filter(item => item.locale !== originalLocale),\n      activeLocale: originalLocale,\n      originalLocale: originalLocale,\n      showOriginalDescription: false,\n      isShowingScrapedInfo: false,\n    };\n  }\n\n  componentDidMount() {\n    this.clickOutside();\n    this.setActiveTranslatedDescription(this.state.activeLocale);\n  };\n\n  getOriginalLocale = () => {\n    this.locales = this.props.translatedDescriptions.map(\n      translated => translated.locale\n    );\n    return this.locales[0];\n  };\n\n  simplifyLocale = locale => locale.substring(0, 2);\n\n  clickOutside = () => {\n    document.addEventListener('click', e => {\n      if (!hasSomeParentTheClass(e.target, this.switcherClassName)) {\n        this.setState({\n          showLocaleSwitcherItems: false,\n        });\n      }\n    });\n  };\n\n  toggleLocaleSwitcherItems = () => {\n    this.setState({\n      showLocaleSwitcherItems: !this.state.showLocaleSwitcherItems,\n    });\n  };\n\n  localesClickHandler = locale => {\n    this.setState({ activeLocale: locale });\n    this.setState({ localesExceptActive: this.availableLocales.filter(item => item.locale !== locale) });\n    this.setState({ showLocaleSwitcherItems: false });\n    this.setActiveTranslatedDescription(locale);\n  };\n\n  getTranslatedDescription = (locale) => {\n    return this.props.translatedDescriptions.filter(\n      translated => translated.locale === locale\n    )[0];\n  };\n\n  setActiveTranslatedDescription = (locale) => {\n    let desc = this.getTranslatedDescription(locale);\n\n    if (desc !== undefined) {\n      this.props.setTranslatedDescription(desc);\n    }\n    else {\n      this.translateDescriptionWithGoogle(locale);\n    }\n  };\n\n  translateDescriptionWithGoogle = (locale) => {\n    let originalDesc = this.getTranslatedDescription(this.state.originalLocale);\n\n    this.props.setTranslatedDescription({ description: 'Translating...', title: 'Translating...' });\n\n    let localeFrom = this.simplifyLocale(this.state.originalLocale);\n\n    translateDescription(originalDesc.description, originalDesc.title, localeFrom, locale)\n      .then(res => {\n        this.props.setTranslatedDescription(res.data);\n        this.props.translatedDescriptions.push(res.data)\n      })\n      .catch(() =>\n        this.props.setTranslatedDescription({ description: 'Translation error. Please, try again later', title: 'Translation error' })\n      );\n  };\n\n  render() {\n    const { activeLocale, showLocaleSwitcherItems } = this.state;\n    const { activeTranslatedDescription } = this.props;\n\n\n    return (\n      <div>\n        { this.state.showLocaleSwitcher &&\n          <div className='localized-desc__top-menu'>\n            <div className={ `localized-desc__top-menu-left` }>\n              <div className={this.switcherClassName}>\n                <a className=\"localized-desc__active-locale\" onClick={this.toggleLocaleSwitcherItems}>\n              <span className=\"localized-desc__active-locale-text\">\n                { I18n.t('generic.lang.' + activeLocale) }\n              </span>\n                  { showLocaleSwitcherItems\n                    ? <SvgIco name=\"expand-less\" size={20} />\n                    : <SvgIco name=\"expand-more\" size={20} />\n                  }\n                </a>\n\n                { showLocaleSwitcherItems &&\n                  <div className=\"localized-desc__locales_wrapper\">\n                    { this.availableLocales.map((locale, index) =>\n                      <div className=\"localized-desc__locales-link-wrap\" key={index}>\n                        <div className=\"select-option-group\">\n                          <input\n                            id={locale.locale}\n                            type=\"radio\"\n                            value={locale.locale}\n                            checked={this.state.activeLocale === locale.locale}\n                            onChange={() => this.localesClickHandler(locale.locale)}\n                            className=\"checkoption-input\"\n                          />\n                          <label htmlFor={locale.locale} className=\"select-option\"><span className=\"option-checkmark\" />\n                            { I18n.t('generic.lang.' + locale.locale) }\n                          </label>\n                        </div>\n                      </div>\n                    )}\n                  </div>\n                }\n              </div>\n\n              { activeTranslatedDescription.sourceLanguage &&\n                <Fragment>\n                  <div className=\"localized-desc__google-translated-text\">\n                    <div>Translated by Google Translate</div>\n                  </div>\n                  <div className=\"localized-desc__translated-by-google-icon\">\n                    <img data-src={googleTranslate}\n                         alt=\"google-translate-icon\"\n                         className=\"lazyload\"\n                         data-sizes=\"auto\"\n                         height={16}\n                         width={16}\n                    />\n                  </div>\n                </Fragment>\n              }\n            </div>\n          </div>\n        }\n      </div>\n    );\n  }\n}\n\n\nexport default DescriptionTopMenu;\n","import React, { Suspense, useState, useContext } from 'react';\n\nconst Contacts = React.lazy(() => import('../Contacts'));\nimport { Context } from \"../index\";\nimport Description from './Description';\n\nimport './index.sass';\n\n\nconst DescriptionSection = () => {\n\n  const { locationContactDetails, tabs: { originalDescription } } = useContext(Context);\n\n  const [translatedDescription, setTranslatedDescription] = useState('');\n\n  const showContactsSection = locationContactDetails.available || (!locationContactDetails.available && locationContactDetails.provider.partner);\n\n\n  return (\n    <div className=\"row\">\n      <div className=\"col-12 col-md-7 col-lg-12\">\n        <div className=\"dv-info-section-wrapper dv-info-section-wrapper--description\" id=\"description\">\n          <div className=\"dv-info-section__container\">\n\n            { originalDescription &&\n              <div className=\"section\">\n                <Description\n                  activeTranslatedDescription={translatedDescription}\n                  setTranslatedDescription={setTranslatedDescription}\n                />\n              </div>\n            }\n\n            { showContactsSection &&\n              <Suspense fallback={''}>\n                <Contacts />\n              </Suspense>\n            }\n          </div>\n        </div>\n      </div>\n    </div>\n  );\n};\n\n\nexport default React.memo(DescriptionSection);\n","import React, { Fragment } from 'react';\nimport { Accordion, Card } from 'react-bootstrap';\nimport { isMobile } from 'react-device-detect';\n\nimport { SvgIco } from '../../SharedComponents/Icons';\n\n\nconst SectionRow = ({ activeKey,\n                      columnWrapperClass,\n                      content,\n                      handleClick,\n                      isOpen,\n                      sectionHeadline,\n                      sectionClasses,\n                    }) => {\n\n  return (\n    <div className={`dv-info-section__section ${sectionClasses}`}>\n      <div className=\"dv-info-section__section-wrapper\">\n        { isMobile ?\n          <Accordion defaultActiveKey={activeKey}>\n            <Card>\n              <Card.Header>\n                <Accordion.Toggle as={Card.Header} onClick={handleClick} variant=\"link\" eventKey={activeKey}>\n                  <div className=\"card-header-wrapper\">\n                    <div>\n                      <h3 className=\"dv-info-section__header\">\n                        <SvgIco name=\"price\" size={22}/>\n                        <span>{ sectionHeadline }</span>\n                      </h3>\n                    </div>\n                    <div>\n                      <h3 className=\"dv-info-section__header\">\n                        { isOpen\n                          ? <span className=\"hide-show-mobile\">{ I18n.t('generic.hide') }</span>\n                          : <span className=\"hide-show-mobile\">{ I18n.t('generic.show') }</span>\n                        }\n                        { isOpen\n                          ? <SvgIco name=\"expand-less\" size={18} />\n                          : <SvgIco name=\"expand-more\" size={18} />\n                        }\n                      </h3>\n                    </div>\n                  </div>\n                </Accordion.Toggle>\n              </Card.Header>\n              <Accordion.Collapse eventKey={activeKey}>\n                <div className=\"dv-info-section__section-wrapper\">\n                  { content }\n                </div>\n              </Accordion.Collapse>\n            </Card>\n          </Accordion>\n          :\n          <Fragment>\n            <h3 className=\"dv-info-section__header\">\n              <SvgIco name=\"price\" size={22}/>\n              <span>{ sectionHeadline }</span>\n            </h3>\n            <div className={columnWrapperClass}>\n              { content }\n            </div>\n          </Fragment>\n        }\n      </div>\n    </div>\n  )\n}\n\nexport default SectionRow;\n","import React, { Fragment, useContext, useState } from \"react\";\nimport ReactTooltip from \"react-tooltip\";\nimport Truncate from 'react-truncate';\nimport classNames from 'classnames';\nimport PropTypes from \"prop-types\";\n\nimport { toUnderscore } from \"../../../utils/helpers\";\nimport { SvgIco } from '../../SharedComponents/Icons';\nimport SmartTextTooltip from \"../SmartTextTooltip\";\nimport { Context } from \"../index\";\nimport SectionRow from './SectionRow';\n\nimport './index.sass';\n\n\nconst EconomySection = () => {\n\n  const {\n    areaUnit,\n    contactOrdered,\n    facts,\n    isRequestFromPrerender,\n    kind,\n    linkToDisposalPriceInfo,\n    locationClosed,\n    rentedOut,\n    scrollToForm,\n    section,\n    setModalFormOpen,\n    siteKey,\n    switchSelectedOrderForm,\n    tabs,\n    temporarilyUnavailable,\n  } = useContext(Context);\n\n  const [economyText, setEconomyText] = useState(false);\n  const [openAnnualPrice, setOpenAnnualPrice] = useState(true);\n  const [openPricePerSquareMeter, setOpenPricePerSquareMeter] = useState(true);\n  const [openPricePerHour, setOpenPricePerHour] = useState(true);\n\n  const { economy, isRentIncludeOperationalCost, smartText } = tabs;\n  const { disposalPrice, pricePerHour, pricesPerM2, pricesPerYear } = economy;\n  const { price } = facts;\n  const smartTextEconomy = smartText.economy;\n  const pricePerM2Present = pricesPerM2 && Object.keys(pricesPerM2).length > 0;\n  const pricesPerYearPresent = pricesPerYear && Object.keys(pricesPerYear).length > 0;\n  const textLines = isMobile ? 4 : 2;\n  const isMobile = window.innerWidth <= 574;\n  const isDisposalRender = parseInt(disposalPrice) > 0 && (siteKey === 'dk' || siteKey === 'global');\n  const showPricePerHour = kind === 'meeting_room' && !pricePerM2Present && !pricesPerYearPresent;\n  const i18nPricePerHour = I18n.t(`providers.locations.form.rent_price_per_hour`);\n  const i18nAnnualPrices = I18n.t('apps.lb_showroom.detailed.economy.annual_prices');\n  const rightColumnClasses = 'dv-info-section__year-price-table col-lg-6 col-md-6 order-lg-3 order-md-3 order-3';\n  const leftColumnClasses = classNames('dv-info-section__year-price-table col-lg-6 col-md-6',\n    { 'disposal-true': isDisposalRender,\n      'order-lg-1 order-md-2 order-2': isMobile,\n    });\n  const leftColumnTitle = section !== \"lease\"\n    ? I18n.t('apps.lb_showroom.detailed.economy.prices_for_sale')\n    : kind === 'parking'\n      ? I18n.t('parking.parking_lots.parking_interval_row.monthly_rent_per_space')\n      : I18n.t('apps.lb_showroom.detailed.economy.annual_prices_' + areaUnit);\n\n\n  const askProvider = () => {\n    if (isMobile && !rentedOut && !temporarilyUnavailable && !locationClosed) {\n      setModalFormOpen(true);\n    } else {\n      const formWrapper = document.getElementById('order-form-wrapper');\n\n      switchSelectedOrderForm('provider_message');\n      scrollToForm('order-form-target');\n      formWrapper.classList.remove('highlight');\n      setTimeout(() => formWrapper.classList.add('highlight'), 500);\n    }\n  };\n\n\n  const askProviderLink =\n    <div className=\"dv-info-section__ask-provider-link\" onClick={!contactOrdered ? askProvider : null}>\n      { contactOrdered\n        ? I18n.t('apps.lb_showroom.detailed.order_form.ask_question_sent_economy')\n        : I18n.t('generic.not_provided_new')\n      }\n    </div>;\n\n\n  const rightColumnContent = pricesPerYearPresent &&\n    Object.keys(pricesPerYear).map((item, index) =>\n      <div key={index} className=\"dv-info-section__table-row dv-info-section__label dv-info-section__label--full-width\">\n        <div className=\"dv-info-section__table-col dv-info-section__table-col--left\">\n          { item === 'annualRent' && isRentIncludeOperationalCost\n            ? I18n.t('apps.lb_showroom.detailed.economy.annual_prices_m2_including_operational')\n            : I18n.t(`apps.lb_showroom.detailed.economy.${ toUnderscore(item) }`)\n          }\n        </div>\n        <div className=\"dv-info-section__table-col dv-info-section__table-col--right\">\n          { pricesPerYear[item] || (!rentedOut && !temporarilyUnavailable && !locationClosed && askProviderLink) || null }\n        </div>\n      </div>\n    );\n\n\n  const leftColumnContent = pricePerM2Present ?\n    Object.keys(pricesPerM2).map((item, index) =>\n      <div className=\"dv-info-section__label dv-info-section__label--full-width\" key={index}>\n        {kind === \"parking\"\n          ?\n            <Fragment>\n              <div>{ I18n.t('parking.parking_lots.parking_interval_row.monthly_rent_per_space') }</div>\n              <div>{price.value}</div>\n            </Fragment>\n          :\n            <Fragment>\n              <div>\n                { item === 'pricePerYear' && isRentIncludeOperationalCost\n                  ? I18n.t('apps.lb_showroom.detailed.economy.annual_prices_m2_including_operational')\n                  : I18n.t(`apps.lb_showroom.detailed.economy.${ toUnderscore(item) }_new`)\n                }\n              </div>\n              { pricesPerM2[item] ? <div>{ pricesPerM2[item] }</div> : askProviderLink }\n            </Fragment>\n        }\n      </div>\n    ) :\n      <div className=\"dv-info-section__label dv-info-section__label--full-width\">\n        <div>{ I18n.t('parking.parking_lots.parking_interval_row.monthly_rent_per_space') }</div>\n        <div>{ price.value }</div>\n      </div>;\n\n\n  const pricePerHourContent = showPricePerHour &&\n    <div className=\"dv-info-section__label dv-info-section__label--full-width\">\n      <div>{ i18nPricePerHour }</div>\n      { pricePerHour ? <div>{ pricePerHour }</div> : askProviderLink }\n    </div>;\n\n\n  return (\n    <div className=\"dv-info-section-wrapper dv-info-section-wrapper--economy\" id=\"economy\">\n      <h2 className=\"dv-info-section__title\">\n        { I18n.t('apps.lb_showroom.detailed.tabs.economy') }\n      </h2>\n\n      { smartTextEconomy && <SmartTextTooltip id=\"economy\" /> }\n\n      { economyText || isRequestFromPrerender ?\n          <Fragment>\n            <p className=\"smart-text-extended\">{ smartTextEconomy }</p>\n            <div className=\"dv-info-section__read-more-smart-text\">\n              <a onClick={() => setEconomyText(prevState => !prevState)}>\n                { I18n.t('apps.lb_showroom.detailed.description.hide_more_link') }\n                <SvgIco name=\"expand-less\" size={15} />\n              </a>\n            </div>\n          </Fragment>\n        :\n          <Fragment>\n            { smartTextEconomy &&\n              <div className=\"smart-text\">\n                <Truncate\n                  lines={ textLines }\n                  ellipsis={ <Fragment><span>{textLines !== 0 && '... '}</span>\n                    <div className=\"dv-info-section__read-more-smart-text\">\n                    <a onClick={() => setEconomyText(prevState => !prevState)}>\n                      { I18n.t('generic.read_more') }\n                      <SvgIco name=\"expand-more\" size={15} />\n                    </a>\n                  </div></Fragment> }\n                  children={ smartTextEconomy }\n                />\n              </div>\n            }\n          </Fragment>\n      }\n\n      <div className=\"dv-info-section__content row\">\n\n        { showPricePerHour &&\n          <SectionRow\n            activeKey=\"0\"\n            columnWrapperClass=\"left-column-wrapper\"\n            content={pricePerHourContent}\n            handleClick={() => setOpenPricePerHour(prevState => !prevState)}\n            isOpen={openPricePerHour}\n            sectionClasses={leftColumnClasses}\n            sectionHeadline={i18nPricePerHour}\n          />\n        }\n\n        { (pricePerM2Present || kind === \"parking\") &&\n          <SectionRow\n            activeKey=\"1\"\n            columnWrapperClass=\"left-column-wrapper\"\n            content={leftColumnContent}\n            handleClick={() => setOpenPricePerSquareMeter(prevState => !prevState)}\n            isOpen={openPricePerSquareMeter}\n            sectionClasses={leftColumnClasses}\n            sectionHeadline={leftColumnTitle}\n          />\n        }\n\n        { isDisposalRender &&\n          <div className=\"dv-info-section__section-wrapper dv-info-section__section-wrapper--disposal col-lg-6 col-md-6 order-lg-2 order-md-1 order-1\">\n            <h3 className=\"dv-info-section__header disposal-header\">\n              <div className=\"dv-info-section__info-wrapper\">\n                <SvgIco name=\"disposal\" size={22} />\n                { I18n.t('apps.lb_showroom.detailed.economy.disposal') }\n              </div>\n              <a className=\"dv-info-section__info\"\n                 href={linkToDisposalPriceInfo}\n                 data-tip={I18n.t('apps.lb_showroom.detailed.economy.info_tooltip')}\n                 data-class=\"dv-info-section__info-tooltip\"\n                 target=\"_blank\">\n                 <SvgIco name=\"info_outline\" size={22} />\n              </a>\n              <ReactTooltip place='bottom' effect='solid' />\n            </h3>\n            <div className=\"disposal-column-wrapper\">\n              <div className=\"dv-info-section__label dv-info-section__label--full-width\">\n                <div>{ I18n.t('apps.lb_showroom.detailed.economy.consideration_received') }</div>\n                <div>{ disposalPrice }</div>\n              </div>\n            </div>\n          </div>\n        }\n\n        { pricesPerYearPresent && section === \"lease\" && kind !== \"parking\" &&\n          <SectionRow\n            activeKey=\"0\"\n            columnWrapperClass=\"right-column-wrapper\"\n            content={rightColumnContent}\n            handleClick={() => setOpenAnnualPrice(prevState => !prevState)}\n            isOpen={openAnnualPrice}\n            sectionClasses={rightColumnClasses}\n            sectionHeadline={i18nAnnualPrices}\n          />\n        }\n      </div>\n    </div>\n  )\n};\n\n\nexport default EconomySection;\n\n\nEconomySection.propTypes = {\n  price: PropTypes.shape({\n    label: PropTypes.string,\n    value: PropTypes.string,\n  }),\n  area: PropTypes.shape({\n    label: PropTypes.string,\n    value: PropTypes.string,\n  }),\n  location: PropTypes.shape({\n    latitude: PropTypes.number,\n    longitude: PropTypes.number,\n  }),\n  tabs: PropTypes.shape({\n    facility: PropTypes.shape({\n      facilities: PropTypes.array,\n    }),\n    economy: PropTypes.shape({\n      disposalPrice: PropTypes.string,\n    }),\n    smartText: PropTypes.shape({\n      factAndFacilities: PropTypes.string,\n    }),\n    transport: PropTypes.shape({\n      distances: PropTypes.array,\n      postalDistrict: PropTypes.shape({\n        postalName: PropTypes.string,\n      }),\n    }),\n  }),\n  facts: PropTypes.shape({\n    area: PropTypes.shape({\n      icon: PropTypes.string,\n    }),\n    price: PropTypes.object,\n  }),\n};\n\n\nEconomySection.defaultProps = {\n  tabs: {\n    facility: {\n      facilities: [],\n    },\n    economy: {\n      disposalPrice: '0 kr.',\n    },\n    smartText: {\n      factAndFacilities: '',\n    },\n    transport: {\n      distances: [],\n      postalDistrict: {\n        postalName: '',\n      },\n    },\n  },\n  facts: {\n    area: {\n      icon: '',\n      label: '',\n      value: '',\n      unit: '',\n    },\n    price: {\n      icon: '',\n      label: '',\n      value: '',\n      unit: null,\n    },\n    economy: {},\n  },\n};\n","import React from 'react';\n\nconst DistancesListItem = ({ item, lazyload }) => {\n\n  // If icon with facility doesn't exist yet we will show default checked icon\n  const iconPathHandler = (iconName) => {\n    try {\n      return require(`../../../src/images/icons/facts_and_facilities/${iconName}.svg`);\n    } catch (error) {\n      return require(`../../../src/images/icons/facts_and_facilities/default.svg`);\n    }\n  };\n\n  const backgroundImage = { backgroundImage: `url(${iconPathHandler(item.tag)})` };\n\n  return (\n    <div className=\"facts-and-facilities__list-item distances col-lg-6 col-md-6 col-12\">\n      <div className=\"facts-and-facilities__distance-item-type\">\n        <div className=\"facts-and-facilities__icon-wrapper\">\n          <div className={`facts-and-facilities__list-item-icon ${ lazyload ? 'lazyload' : '' }`}\n               data-bg={iconPathHandler(item.tag)}\n               data-sizes=\"auto\"\n               style={backgroundImage}\n          />\n        </div>\n        <span>{ item.name }</span>\n      </div>\n      <div className=\"facts-and-facilities__transport-distance\">{ item.distance } { item.unit }</div>\n    </div>\n  )\n};\n\nexport default React.memo(DistancesListItem);\n","import React from 'react';\n\nconst FacilitiesListItem = ({ item }) => {\n\n  return (\n    <div className=\"facts-and-facilities__facility-block-wrapper row\">\n      <p className=\"facts-and-facilities__facilities-type-headline col-xl-12 col-lg-12 col-md-12\">\n        { item.groupName }\n      </p>\n      { item.items.map(facility =>\n        <div className=\"facts-and-facilities__list-item col-xl-3 col-lg-4 col-md-4 col-6\" key={facility.key}>\n          <div className=\"facts-and-facilities__list-item-icon lazyload\"\n               data-bg={facility.iconSvg || require(`../../../src/images/icons/facts_and_facilities/default.svg`)}\n               data-sizes=\"auto\"\n          />\n          <span>{ facility.name }</span>\n        </div>\n      )}\n    </div>\n  )\n};\n\n\nexport default React.memo(FacilitiesListItem);\n","import React from 'react';\nimport parkingIcon from '../../../src/images/icons/parking.svg';\n\nconst ParkingListItem = ({ item, index }) => {\n\n  return (\n    <div className=\"facts-and-facilities__parking-wrapper\" key={index}>\n      <div className=\"facts-and-facilities__parking-icon lazyload\" data-bg={parkingIcon} data-sizes=\"auto\" />\n      <div className=\"facts-and-facilities__parking-text-wrapper\">\n        <a target=\"_blank\" href={item.url} className=\"facts-and-facilities__parking-links\">\n          {item.address}\n        </a>\n        <div className=\"facts-and-facilities__parking-distance\">\n          {item.distance}\n        </div>\n      </div>\n    </div>\n  )\n};\n\nexport default React.memo(ParkingListItem);","import React, { Fragment, useContext, useState } from 'react';\nimport Truncate from 'react-truncate';\nimport { isMobile } from 'react-device-detect';\n\nimport ExemptedEnergyRatingIcon from '../../../src/images/icons/facts_and_facilities/ExemptedEnergyRating.svg';\nimport { SvgIco } from '../../SharedComponents/Icons';\nimport CollapsibleSection from '../../SharedComponents/CollapsibleSection';\nimport SmartTextTooltip from '../SmartTextTooltip';\nimport { Context } from \"../index\";\nimport FacilitiesListItem from './FacilitiesListItem';\nimport DistancesListItem from './DistancesListItem';\nimport ParkingListItem from './ParkingListItem';\n\nimport './index.sass';\n\n\nconst FactsAndFacilities = () => {\n\n  const {\n    anonymous,\n    isRequestFromPrerender,\n    location: { addressLine1 },\n    suitableFor,\n    tabs: {\n      facility: { buildRoute, energyRating, energyCertificateLevels, exemptedEnergy, facilities },\n      nearbyParkingLots,\n      smartText: { factAndFacilities: smartTextFacilities },\n      transport,\n    },\n  } = useContext(Context);\n\n  const [facilityText, setFacilityText] = useState(false);\n  const [showAllFacilities, setShowAllFacilities] = useState(false);\n  const [showAllDistances, setShowAllDistances] = useState(false);\n  const [showMoreParkings, setShowMoreParkings] = useState(false);\n\n  const collapseDistances = !!transport.distances.length && transport.distances.length > 6;\n  const visibleDistancesList = !!transport.distances.length && (collapseDistances ? transport.distances.slice(0, 6) : transport.distances);\n  const collapsedDistancesList = collapseDistances && transport.distances.slice(6);\n  const collapseFacilities = !!facilities.length && facilities.length > 1;\n  const visibleFacilitiesList = !!facilities.length && facilities[0];\n  const collapsedFacilitiesList = collapseFacilities && facilities.slice(1);\n  const collapsedParkings = nearbyParkingLots && nearbyParkingLots.slice(3);\n  const visibleParkingsList = nearbyParkingLots && nearbyParkingLots.slice(0, 3);\n  const textLines = isMobile ? 4 : 2;\n\n\n  const showMoreLinkText = (showMore) =>\n    showMore\n      ? I18n.t('views.locations.show.facilities.show_less_link')\n      : I18n.t('views.locations.show.facilities.show_more_link');\n\n\n  const showMoreLink = (showAll, handleShow) => (\n    <div className=\"facts-and-facilities__facilities-toggle-link-wrapper\" onClick={handleShow}>\n      <span>{ showMoreLinkText(showAll) }</span>\n      { showAll\n        ? <SvgIco name=\"expand-less\" size={24} />\n        : <SvgIco name=\"expand-more\" size={24} />\n      }\n    </div>\n  );\n\n\n  const showMoreParkingsLink = (showAllParkings) => (\n    <div className=\"facts-and-facilities__facilities-toggle-link-wrapper parking-link\"\n         onClick={() => setShowMoreParkings(prevState => !prevState)}>\n      <span>{ showMoreLinkText(showAllParkings) }</span>\n      { showAllParkings\n        ? <SvgIco name=\"expand-less\" size={24} />\n        : <SvgIco name=\"expand-more\" size={24} />\n      }\n    </div>\n  );\n\n\n  const energyCertificateIconHandler = (id) => {\n    try {\n      return require(`../../../src/images/energy_certificates/${id}`);\n    } catch (error) {\n      return require(`../../../src/images/energy_certificates/8`);\n    }\n  };\n\n\n  return (\n    <div className=\"dv-info-section-wrapper facts-and-facilities\" id=\"facts\">\n      <div className=\"dv-info-section__background-full-width\" />\n\n      <h2 className=\"dv-info-section__title\">\n        { I18n.t('apps.lb_showroom.detailed.tabs.facts_and_facilities') }\n      </h2>\n\n      <div>\n        <div className=\"row\">\n          <div className=\"col-lg-12\">\n            { smartTextFacilities && <SmartTextTooltip id=\"facts\" /> }\n\n            { facilityText || isRequestFromPrerender\n              ?\n                <Fragment>\n                  <p className=\"smart-text-extended\">{smartTextFacilities}</p>\n                  <div className=\"dv-info-section__read-more-smart-text\">\n                    <a onClick={() => setFacilityText(prevState => !prevState)}>\n                      { I18n.t('apps.lb_showroom.detailed.description.hide_more_link') }\n                      <SvgIco name=\"expand-less\" size={16} />\n                    </a>\n                  </div>\n                </Fragment>\n              :\n                <Fragment>\n                  { smartTextFacilities &&\n                    <div className=\"smart-text\">\n                      <Truncate\n                        children={smartTextFacilities}\n                        lines={textLines}\n                        ellipsis={\n                          <Fragment>\n                            <span>{textLines !== 0 && '... '}</span>\n                            <div className=\"dv-info-section__read-more-smart-text\">\n                              <a onClick={() => setFacilityText(prevState => !prevState)}>\n                                {I18n.t('generic.read_more')}\n                                <SvgIco name=\"expand-more\" size={16} />\n                              </a>\n                            </div>\n                          </Fragment>\n                        }\n                      />\n                    </div>\n                  }\n                </Fragment>\n            }\n          </div>\n\n          <div className=\"facts-and-facilities__column col-xl-6 col-lg-12\">\n            <div className=\"facts-and-facilities__address-line\">\n              <SvgIco name=\"map_detail\" size={22} />\n              <div>\n                { !anonymous && <p>{ addressLine1 }</p> }\n                <p>{ transport.postalDistrict.postalName }</p>\n                <a href={transport.postalDistrict.districtUrl} className=\"facts-and-facilities__area-link\">\n                  <span>\n                    { I18n.t('apps.lb_showroom.detailed.area.area_link', { kinds: I18n.t(`global.models.location.kinds.${transport.kind}.short`, { count: 2 })})}\n                  </span>\n                </a>\n              </div>\n            </div>\n\n            { buildRoute && !anonymous &&\n              <div className=\"facts-and-facilities__build-route-wrapper\">\n                <div className=\"facts-and-facilities__build-route-icon\">\n                  <SvgIco name=\"direction\" size={20} />\n                </div>\n                <a target=\"_blank\" href={buildRoute} className=\"facts-and-facilities__build-route-link\">\n                  <span>\n                    { I18n.t('views.locations.show.build_route') }\n                  </span>\n                </a>\n              </div>\n            }\n\n            { energyRating &&\n              <div className=\"facts-and-facilities__energy-rating-wrapper\">\n                <SvgIco\n                  className=\"facts-and-facilities__energy-rating-icon\"\n                  name={`energy-rating-${energyRating}`}\n                  size={20}\n                />\n                { I18n.t('views.locations.show.energy_rating') } { energyRating.toUpperCase() }\n              </div>\n            }\n\n            { exemptedEnergy &&\n              <div className=\"facts-and-facilities__energy-rating-wrapper\">\n                <img\n                  className=\"lazyload\"\n                  data-sizes=\"auto\"\n                  data-src={ExemptedEnergyRatingIcon}\n                  alt=\"energy\"\n                  data-expand=\"100\"\n                />\n                { I18n.t('views.locations.show.exempted_from_energy_rating') }\n              </div>\n            }\n          </div>\n        </div>\n\n        { !!(energyCertificateLevels && energyCertificateLevels.length) &&\n          <Fragment>\n            <h3 className=\"facts-and-facilities__headline\">\n              { I18n.t('generic.certifications') }\n            </h3>\n\n            <div className=\"row\">\n              <div className=\"facts-and-facilities__facilities-wrapper col-md-8 col-lg-12 col-xl-12\">\n                { energyCertificateLevels.map(certificate =>\n                  <div className=\"facts-and-facilities__energy-certificate-wrapper\">\n                    <img alt={`${certificate.certificateName} ${certificate.name}`}\n                         src={energyCertificateIconHandler(certificate.id)}\n                         height={24}\n                         width={24}\n                    />\n                    { certificate.certificateName } { certificate.name }\n                  </div>\n                )}\n              </div>\n            </div>\n          </Fragment>\n        }\n\n        { visibleDistancesList.length &&\n          <Fragment>\n            <h3 className=\"facts-and-facilities__headline\">\n              { I18n.t('lb_showroom.detailed.transport_distances.transport_distances_headline')}\n            </h3>\n\n            <div className=\"row\">\n              <div className=\"facts-and-facilities__facilities-wrapper col-md-8 col-lg-12 col-xl-12 distances\">\n                <div className=\"row\">\n                  { visibleDistancesList.map((item, index) =>\n                    <DistancesListItem\n                      item={item}\n                      key={index}\n                      lazyload={true}\n                    />\n                  )}\n                </div>\n\n                { collapseDistances &&\n                  <CollapsibleSection\n                    uncollapse={showAllDistances}\n                    isRequestFromPrerender={isRequestFromPrerender}\n                    classes=\"row\">\n                    { collapsedDistancesList.map((item, index) => <DistancesListItem item={item} key={index + 6} />)}\n                  </CollapsibleSection>\n                }\n\n                { collapseDistances && showMoreLink(showAllDistances, () => setShowAllDistances(prevState => !prevState)) }\n              </div>\n            </div>\n          </Fragment>\n        }\n\n        { nearbyParkingLots &&\n          <Fragment>\n            <h3 className=\"facts-and-facilities__headline--parking\">\n              { I18n.t('parking.generic.parking_nearby_headline') }\n            </h3>\n\n            <div className=\"row\">\n              <div className=\"col-md-8 col-xs-12 facts-and-facilities__parking-block\">\n\n                { visibleParkingsList.map((item, index) =>\n                  <ParkingListItem item={item} key={index} />\n                )}\n\n                { nearbyParkingLots.length > 3 &&\n                  <CollapsibleSection\n                    uncollapse={showMoreParkings}\n                    isRequestFromPrerender={isRequestFromPrerender}>\n                    { collapsedParkings.map((item, index) => <ParkingListItem item={item} key={index} />)}\n                  </CollapsibleSection>\n                }\n                { nearbyParkingLots.length > 3 && showMoreParkingsLink(showMoreParkings) }\n              </div>\n            </div>\n          </Fragment>\n        }\n\n        <h3 className=\"facts-and-facilities__headline--facilities\">\n          { I18n.t('apps.lb_showroom.detailed.tabs.facilities') }\n        </h3>\n\n        <div className=\"facts-and-facilities__facilities-wrapper\">\n          { suitableFor.length > 0 &&\n            <div className=\"facts-and-facilities__facility-block-wrapper row\">\n              <p className=\"facts-and-facilities__facilities-type-headline col-xl-12 col-lg-12 col-md-12\">\n                { I18n.t('generic.suitable_for') }\n              </p>\n              { suitableFor.map((elem, index) => (\n                <div className=\"facts-and-facilities__suitable-for-item col-xl-3 col-lg-4 col-md-4 col-6\" key={index}>\n                  <SvgIco name={elem.icon} width={20} height={20} className=\"facts-and-facilities__suitable-for-icon\" />\n                  <span className=\"facts-and-facilities__suitable-for-label\">\n                    { elem.shortLabel }\n                  </span>\n                </div>\n              ))}\n            </div>\n          }\n\n          { visibleFacilitiesList\n            ?\n              <Fragment>\n                <FacilitiesListItem item={visibleFacilitiesList} key={0} />\n                { collapseFacilities &&\n                  <CollapsibleSection\n                    uncollapse={showAllFacilities}\n                    isRequestFromPrerender={isRequestFromPrerender}>\n                    { collapsedFacilitiesList.map((item, index) =>\n                      <FacilitiesListItem item={item} key={index + 1} />\n                    )}\n                  </CollapsibleSection>\n                }\n              </Fragment>\n            :\n              <div className={`facts-and-facilities__blank-title${suitableFor.length > 0 ? ' with-indentation' : ''}`}>\n                { I18n.t('facilities.no_information_provided') }\n              </div>\n          }\n        </div>\n\n        { collapseFacilities && showMoreLink(showAllFacilities, () => setShowAllFacilities(prevState => !prevState)) }\n      </div>\n    </div>\n  );\n}\n\n\nexport default FactsAndFacilities;\n","import React from 'react';\nimport { KeyboardArrowRightRounded, KeyboardArrowLeftRounded, SvgIco } from '../../SharedComponents/Icons';\n\nimport './index.sass';\n\n\nclass FixedNavigationBar extends React.PureComponent {\n\n  state = {\n    activeSection: null,\n    initialization: true,\n    isScrollable: false,\n    navigationListLeftBorder: null,\n    navigationListRightBorder: null,\n    showLeftArrow: false,\n    showRightArrow: false,\n    topOffset: null,\n  };\n\n\n  componentDidMount() {\n    this.handleNavigationTop();\n\n    this.setState({\n      activeSection: this.props.activeSection || null,\n    }, () =>\n      this.state.activeSection && this.handleActiveSectionChange(this.state.activeSection)\n    );\n\n    this.handleHorizontalScroll();\n    window.addEventListener('resize', this.handleHorizontalScroll);\n    window.addEventListener('orientationchange', this.handleNavigationTop);\n  };\n\n\n  componentWillUnmount() {\n    this.navigationLinksList.removeEventListener('scroll', this.handleArrowAppearance);\n    window.removeEventListener('resize', this.handleHorizontalScroll);\n    window.removeEventListener('orientationchange', this.handleNavigationTop);\n  };\n\n\n  componentDidUpdate(prevProps, prevState, snapshot) {\n    if (this.props.activeSection && this.props.activeSection !== prevProps.activeSection) {\n      this.handleActiveSectionChange(this.props.activeSection);\n    }\n  };\n\n\n  // We need to use setTimeout as header changes the layout after the recalculateNavigationTop fires\n  handleNavigationTop = () => setTimeout(this.recalculateNavigationTop, 10);\n\n\n  recalculateNavigationTop = () =>\n    this.setState({ topOffset:  document.getElementById('top-menu').offsetHeight + 'px' });\n\n\n  handleHorizontalScroll = () => {\n    const navigationListFirstChild = this.navigationLinksList && this.navigationLinksList.firstChild;\n    const navigationListLastChild = this.navigationLinksList && this.navigationLinksList.lastChild;\n\n    const isScrollable = navigationListFirstChild\n      && (Math.round(navigationListFirstChild.getBoundingClientRect().left) < this.navigationLinksList.getBoundingClientRect().left\n      || (navigationListLastChild && Math.round(navigationListLastChild.getBoundingClientRect().right) > this.navigationLinksList.getBoundingClientRect().right));\n\n    this.handleArrowAppearance();\n    this.navigationLinksList.addEventListener('scroll', this.handleArrowAppearance);\n    this.setState({ isScrollable: isScrollable });\n\n    this.handleNavigationTop();\n  };\n\n\n  handleActiveSectionChange = (targetName) => {\n    const { activeSection, isScrollable, initialization } = this.state;\n    const targetSection = this[targetName];\n\n    if (targetSection) {\n      if (targetName !== activeSection || initialization) {\n        if (isScrollable) {\n          const targetRightCoodrs = targetSection.getBoundingClientRect().right,\n                targetLeftCoords = targetSection.getBoundingClientRect().left,\n                navigationListFirstChild = this.navigationLinksList.firstChild,\n                navigationListLastChild = this.navigationLinksList.lastChild,\n                navigationListRightCoords = targetSection === navigationListLastChild\n                                            ? this.navigationLinksList.getBoundingClientRect().right\n                                            : this.navigationLinksList.getBoundingClientRect().right - 24,\n                navigationListLeftCoords = targetSection === navigationListFirstChild\n                                           ? this.navigationLinksList.getBoundingClientRect().left\n                                           : this.navigationLinksList.getBoundingClientRect().left + 24;\n\n          targetRightCoodrs > navigationListRightCoords\n          ? this.scrollToRightTarget(targetLeftCoords)\n          : targetLeftCoords < navigationListLeftCoords\n            ? this.scrollToLeftTarget(targetLeftCoords)\n            : null;\n        }\n        activeSection && this[activeSection].classList.remove('active');\n        targetSection.classList.add('active');\n        this.setState({ activeSection: targetName });\n        initialization && this.setState({ initialization: false });\n      }\n    } else {\n      // At first render React needs time to initialize ref and we get undefined\n      setTimeout(() => this.handleActiveSectionChange(targetName), 10);\n    }\n  };\n\n\n  handleArrowAppearance = () => {\n    const leftBoundary = this.navigationLinksList.firstChild.getBoundingClientRect().left;\n    const rightBoundary = this.navigationLinksList.lastChild.getBoundingClientRect().right;\n    const navigationListLeftBorder = this.navigationLinksList.getBoundingClientRect().left;\n    const navigationListRightBorder = this.navigationLinksList.getBoundingClientRect().right;\n\n    this.setState({\n      showLeftArrow: Math.round(leftBoundary) < navigationListLeftBorder,\n      showRightArrow: Math.round(rightBoundary) > navigationListRightBorder,\n    });\n  };\n\n  scrollToTarget = (target) => {\n    if (this.state.activeSection !== target) {\n      this.handleActiveSectionChange(target);\n      this.props.scrollToTarget(target);\n    }\n  };\n\n\n  handleLeftScroll = () =>\n    this.navigationLinksList.scrollLeft = this.navigationLinksList.scrollLeft - this.navigationLinksList.offsetWidth;\n\n\n  handleRightScroll = () =>\n    this.navigationLinksList.scrollLeft = this.navigationLinksList.offsetWidth + this.navigationLinksList.scrollLeft;\n\n\n  scrollToRightTarget = (targetLeftCoords) => {\n    this.navigationLinksList.scrollLeft = (targetLeftCoords - 44) + this.navigationLinksList.scrollLeft;\n  };\n\n\n  scrollToLeftTarget = (targetLeftCoords) => {\n    const targetLeftScroll = targetLeftCoords >= 0 ? targetLeftCoords : targetLeftCoords * -1;\n    this.navigationLinksList.scrollLeft = this.navigationLinksList.scrollLeft - (targetLeftScroll + 44);\n  };\n\n\n  render () {\n\n    const { showMap, showOrderFormButton, showNavigationMenu, showSimilarLocations, similarLocationsHeadline, scrollToForm, showRichSnippets, checkEconomySectionPresent } = this.props;\n    const { showLeftArrow, showRightArrow, topOffset } = this.state;\n    const classes = `fixed-nav${ showNavigationMenu ? ' active' : '' } ${showOrderFormButton ? 'with-button' : ''}`;\n    const wrapperTop = { 'top': topOffset };\n\n\n    return (\n      <div className={classes} id=\"dv-fixed-nav\" style={wrapperTop}>\n        <div className=\"container\">\n\n          <div className=\"fixed-nav__links-wrapper\">\n            <ul className=\"fixed-nav__links-list\" ref={el => this.navigationLinksList = el}>\n\n              <li className=\"fixed-nav__link\" ref={el => this.description = el}>\n                <span onClick={() => this.scrollToTarget('description')}>{ I18n.t('activerecord.attributes.property.description') }</span>\n              </li>\n\n              <li className=\"fixed-nav__link\" ref={ el => this.facts = el }>\n                <span onClick={() => this.scrollToTarget('facts')}>{ I18n.t('apps.lb_showroom.detailed.tabs.facts_and_facilities') }</span>\n              </li>\n\n              { checkEconomySectionPresent &&\n                <li className=\"fixed-nav__link\" ref={el => this.economy = el}>\n                <span\n                  onClick={() => this.scrollToTarget('economy')}>{I18n.t('apps.lb_showroom.detailed.tabs.economy')}</span>\n                </li>\n              }\n\n              { showMap &&\n                <li className=\"fixed-nav__link\" ref={ el => this.map = el }>\n                  <span onClick={() => this.scrollToTarget('map')}>{ I18n.t('detailed.location.headline') }</span>\n                </li>\n              }\n\n              { showSimilarLocations &&\n                <li className=\"fixed-nav__link\" ref={ el => this.similarLocations = el }>\n                  <span onClick={() => this.scrollToTarget('similarLocations')}>{ similarLocationsHeadline }</span>\n                </li>\n              }\n\n              { showRichSnippets &&\n                <li className=\"fixed-nav__link\" ref={ el => this.faq = el }>\n                  <span onClick={() => this.scrollToTarget('faq')}>{ I18n.t('apps.lb_showroom.detailed.tabs.faq_title') }</span>\n                </li>\n              }\n\n            </ul>\n\n            { showLeftArrow &&\n              <div className=\"fixed-nav__arrow-left\" onClick={this.handleLeftScroll}>\n                <KeyboardArrowLeftRounded />\n              </div>\n            }\n            { showRightArrow &&\n              <div className=\"fixed-nav__arrow-right\" onClick={this.handleRightScroll}>\n                <KeyboardArrowRightRounded />\n              </div>\n            }\n          </div>\n\n          { showOrderFormButton &&\n            <div className=\"order-form-scroll-btn\" onClick={() => scrollToForm('order-form-target')}>\n              <SvgIco name=\"contract\" size={24} />\n              { I18n.t('apps.lb_showroom.detailed.get_more_insights') }\n            </div>\n          }\n\n        </div>\n      </div>\n    )\n  }\n}\n\n\nexport default FixedNavigationBar;\n","import React, { Suspense, useContext, useEffect, useState } from 'react';\nimport { isMobile, isTablet } from \"react-device-detect\";\n\nimport ImageGalleryWrapper from './ImageGalleryWrapper';\nimport { Context } from \"../index\";\n\nconst VirtualTour = React.lazy(() => import('../VirtualTour'));\nconst DetailsMapWrapper = React.lazy(() => import('../../NewMainMap/DetailsMapWrapper'));\n\n\nconst AssetBlock = () => {\n\n  const {\n    activeGallerySection,\n    assets: { photos, floorPlans, videos },\n    googleApiKey,\n    location: { latitude, longitude },\n  } = useContext(Context);\n\n  const [orientationHorizontalMobile, setOrientationHorizontalMobile] = useState(null);\n\n\n  useEffect(() => {\n    if (isMobile && !isTablet) {\n      window.innerHeight < window.innerWidth && setOrientationHorizontalMobile(true);\n      window.addEventListener('orientationchange', handleOrientationChange);\n    }\n\n    return () => {\n      isMobile && !isTablet && window.removeEventListener('orientationchange', handleOrientationChange);\n    };\n  }, []);\n\n\n  const handleOrientationChange = () => {\n    setOrientationHorizontalMobile(prevState => !prevState);\n  };\n\n\n  switch (activeGallerySection) {\n    case 'photos':\n      return (\n        <ImageGalleryWrapper\n          isDefault={true}\n          photos={photos}\n        />\n      );\n    case 'videos':\n      return (\n        <div className=\"dv-frame-wrapper\">\n          <iframe\n            src={videos[0]}\n            webkitallowfullscreen=\"webkitallowfullscreen\"\n            mozallowfullscreen=\"mozallowfullscreen\"\n            allowFullScreen\n            frameBorder={0}\n            id=\"dv-video\"\n          />\n        </div>\n      );\n\n    case 'floorPlans':\n      return (\n        <ImageGalleryWrapper photos={floorPlans} />\n      );\n\n    case 'virtualTour':\n      return (\n        <Suspense fallback={<div className=\"skeleton-box\" />}>\n          <VirtualTour />\n        </Suspense>\n      );\n\n    case 'map':\n      return (\n        <Suspense fallback={<div className=\"skeleton-box\" />}>\n          <DetailsMapWrapper\n            googleApiKey={googleApiKey}\n            isGalleryComponent={true}\n            latitude={latitude}\n            longitude={longitude}\n            orientationHorizontalMobile={orientationHorizontalMobile}\n          />\n        </Suspense>\n      );\n\n    default:\n      return (\n        <ImageGalleryWrapper photos={photos} />\n      );\n  }\n}\n\nexport default AssetBlock;\n\n","import React, { useContext } from 'react';\n\nimport { toUnderscore } from '../../../utils/helpers';\nimport { DetailedViewSet } from \"../../SharedComponents/Icons\";\nimport { Context } from \"../index\";\n\nimport './GallerySwitcher.sass';\n\n\nconst Label = ({ name, count, isActive, ...props }) => {\n  return (\n    <div className={`switcher-pill ${ isActive ? 'active' : '' }`} {...props}>\n      { DetailedViewSet[name] }\n      <span>\n      { I18n.t(`lb_showroom.detailed.asset_box.new_${ name }_button`) }\n    </span>\n    </div>\n  );\n};\n\n\nconst GallerySwitcher = ({ counters }) => {\n\n  const {\n    activeGallerySection,\n    switchGallerySection,\n  } = useContext(Context);\n\n  const renderPills = () => {\n    // sorted tabs under the photo exactly in this way\n    const sorted = {};\n    sorted['photos'] = counters.photos;\n    sorted['floorPlans'] = counters.floorPlans;\n    sorted['map'] = counters.map;\n    sorted['videos'] = counters.videos;\n    sorted['virtualTour'] = counters.virtualTour;\n    Object.keys(sorted).forEach(key => sorted[key] === undefined ? delete sorted[key] : '');\n\n    const pills = Object.keys(sorted).map(item => {\n      let properties = {\n        isActive: activeGallerySection === item,\n        name: toUnderscore(item),\n        key: item,\n        onClick: () => switchGallerySection(item),\n      };\n\n      item !== 'virtualTour' && (properties.count = sorted[item]);\n      item === 'floorPlans' && (properties.name = 'floor-plans');\n\n      return <Label {...properties} key={item} />;\n    });\n\n    return <div className=\"switcher-row\">{ pills }</div>;\n  };\n\n  return (\n    <div className=\"switcher-container\">{ renderPills() }</div>\n  )\n};\n\n\nexport default GallerySwitcher;\n","import React, { useContext, useMemo, useState, Suspense  } from 'react';\nimport PropTypes from \"prop-types\";\nimport { isMobileOnly } from \"react-device-detect\";\n\nimport { mappedMonths } from \"../../helpers/danishMonths\";\n\nconst InfoBadges = React.lazy(() => import('../../SharedComponents/InfoBadges'));\nconst FullscreenGallery = React.lazy(() => import('./FullscreenGallery'));\nconst MobileGallery = React.lazy(() => import('./MobileGallery'));\nimport { Context } from \"../index\";\n\nimport './ImageGalleryWrapper.sass';\n\n\nconst ImageGalleryWrapper = ({ isDefault, photos }) => {\n\n  const {\n    activeGallerySection,\n    isScraped,\n    location,\n    locationClosed,\n    locationRented,\n    missingImagesUrl,\n    section,\n  } = useContext(Context);\n\n  const [activeSlide, setActiveSlide] = useState(0);\n  const [fullscreenIsOpen, setFullscreenIsOpen] = useState(false);\n\n  const photosCount = useMemo(\n    () => {\n      let count = 0;\n      photos.map(photo => photo.itemType === 'image' && (count = count + 1), 0)\n\n      return count;\n    },\n    [photos],\n  );\n\n\n  const {\n    anonymous,\n    closedMonth,\n    latitude,\n    longitude,\n    showNewBanner,\n    specialOffer\n  } = location;\n\n  const closedMonthLiteral = closedMonth && mappedMonths(closedMonth);\n  const showBadges = locationRented || isScraped || anonymous || showNewBanner || specialOffer;\n  const isSaleLocation = section !== 'lease';\n  const enableFullscreen = photos[0].itemType !== 'placeholder_image' && !locationRented;\n\n\n  const handleOpenFullscreen = (isOpen, slideIndex) => {\n    if (enableFullscreen) {\n      isOpen\n        ? document.body.classList.add('modal-open')\n        : document.body.classList.remove('modal-open');\n\n      setActiveSlide(isOpen && slideIndex ? slideIndex : 0)\n      setFullscreenIsOpen(isOpen);\n    };\n  };\n\n\n  const infoBadges =\n    <Suspense fallback={''}>\n      <InfoBadges\n        anonymous={anonymous}\n        closedMonth={closedMonthLiteral}\n        crawledBottomText={I18n.t('generic.parsed_copyright')}\n        isCrawled={isScraped}\n        isRentedOut={locationRented || locationClosed}\n        isNew={showNewBanner}\n        missingImagesUrl={missingImagesUrl}\n        rentedOutLabel={locationClosed ? I18n.t('lb_showroom.detailed.asset_box.location_not_available') : null}\n        sale={isSaleLocation}\n        specialOffer={specialOffer}\n        wrapperClass=\"detail-view\"\n      />\n    </Suspense>;\n\n\n  const GalleryImage = ({ data, index, withBadges }) =>\n    <div className=\"image-gallery__img-wrapper\">\n      <img\n         alt={data.alt}\n         className={`${locationRented ? 'rented-out' : ''} ${photos[0].itemType === 'placeholder_image' ? 'no-fullscreen' : ''}`}\n         onClick={() => handleOpenFullscreen(true, index)}\n         src={data.original}\n      />\n\n      { withBadges && showBadges && infoBadges }\n    </div>;\n\n\n  const gallery = React.useMemo(\n    () =>\n      !isMobileOnly\n        ?\n          <div className=\"row\">\n            <div className={`image-gallery__main-img-column col-md-${photosCount > 1 &&  photos[1].itemType === 'image' ? '6' : '12'}`}>\n              <GalleryImage data={photos[0]} index={0} withBadges={true} />\n            </div>\n\n            { photosCount > 1 && !(photosCount === 2 && photos[1].itemType !== 'image') &&\n              <div className=\"col-md-6\">\n                { photosCount > 2\n                  ?\n                    <div className=\"row image-gallery__right-images-row\">\n                      { photos.map((photo, index) => {\n                        const columnsCount = photosCount === 3 || (photosCount === 4 && index === 3) ? 12 : 6;\n\n                        if (index !== 0 && index <= 4 && photo.itemType === 'image') {\n                          return (\n                            <div className={`image-gallery__right-images-col col-md-${columnsCount}`} key={`image-slide-right-${index}`}>\n                              <GalleryImage data={photo} index={index} />\n                              { index === 4 && photosCount > 5 && !locationRented &&\n                                <div className=\"image-gallery__more-photos-wrapper\">\n                                  + { photosCount - 5 } { I18n.t('lb_showroom.detailed.asset_box.new_photos_button') }\n                                </div>\n                              }\n                            </div>\n                          )\n                        }\n                      })}\n                    </div>\n                  :\n                    <GalleryImage data={photos[1]} index={1} />\n                }\n              </div>\n            }\n          </div>\n        :\n          <div className={`image-gallery__main-img-column ${locationRented ? 'rented-out' : anonymous ? 'anonymous' : isScraped ? 'crawled' : ''}`}>\n            <div className=\"image-gallery__mobile-fallback\">\n              <GalleryImage data={photos[0]} index={0} withBadges={true} />\n            </div>\n\n            { enableFullscreen &&\n              <Suspense fallback={''}>\n                <MobileGallery\n                  activeSection={activeGallerySection}\n                  data={photos}\n                  isDefault={isDefault}\n                  latitude={latitude}\n                  longitude={longitude}\n                  onClick={handleOpenFullscreen}\n                />\n              </Suspense>\n            }\n\n            { showBadges && infoBadges }\n          </div>,\n    [photos],\n  );\n\n\n  return (\n    <div className=\"image-gallery\">\n\n      { fullscreenIsOpen &&\n        <Suspense fallback={''}>\n          <FullscreenGallery\n            activeSlide={activeSlide}\n            handleClose={() => handleOpenFullscreen(false)}\n            latitude={latitude}\n            longitude={longitude}\n            photos={photos}\n          />\n        </Suspense>\n      }\n\n      { gallery }\n\n    </div>\n  )\n};\n\n\nexport default ImageGalleryWrapper;\n\n\nImageGalleryWrapper.propTypes = {\n  isDefault: PropTypes.bool,\n  locationRented: PropTypes.bool,\n  isScraped: PropTypes.bool,\n  location: PropTypes.shape({\n    anonymous: PropTypes.bool,\n    showNewBanner: PropTypes.bool,\n    specialOffer: PropTypes.bool,\n  }),\n  missingImagesUrl: PropTypes.string,\n  orientationHorizontalMobile: PropTypes.bool,\n  photos: PropTypes.object,\n};\n\n\nImageGalleryWrapper.defaultProps = {\n  isDefault: false,\n  locationRented: false,\n  isScraped: false,\n  location: {\n    anonymous: false,\n    showNewBanner: false,\n    specialOffer: false,\n  },\n  missingImagesUrl: '/',\n  orientationHorizontalMobile: false,\n  photos: [],\n};\n","import React, { useContext, useEffect, useState } from 'react';\nimport classNames from 'classnames';\n\nimport { Context } from \"../index\";\nimport GallerySwitcher from './GallerySwitcher';\nimport AssetBlock from './AssetBlock';\n\nimport './index.sass';\n\n\nconst GallerySection = () => {\n\n  const {\n    assets,\n    location,\n    locationRented,\n    virtualTourOpen,\n  } = useContext(Context);\n\n\n  const [assetsData, setAssetsData] = useState(assets);\n\n\n  useEffect(() => {\n    const interiorDesign = { itemType: 'interior-design-banner', original: '' };\n    const updatedAssets = { ...assetsData };\n\n    assetsData.showInteriorDesignForm && updatedAssets.floorPlans.push(interiorDesign);\n    setAssetsData(updatedAssets);\n  }, []);\n\n\n  const switcherCounters = () => {\n    const assetsObj = {};\n\n    Object.keys(assetsData).map((item) => {\n      if (assetsData[item] && assetsData[item].length) {\n        item === 'photos'\n          ? (assetsObj[item] = assetsData[item].filter(\n              (image) => image.itemType === 'image',\n            ).length)\n          : (assetsObj[item] = assetsData[item].length);\n      }\n    });\n\n    if (!location.anonymous && location.latitude && location.longitude) {\n      assetsObj.map = [];\n    }\n    return assetsObj;\n  };\n\n\n  const assetContainerClasses = classNames('asset-container container', {\n    'rented-out': locationRented,\n    'virtual-tour-box': virtualTourOpen,\n  });\n\n\n  return (\n    <div className=\"container dv-gallery\">\n      <div className={assetContainerClasses} id=\"asset-container\">\n        <AssetBlock />\n      </div>\n\n      <GallerySwitcher counters={switcherCounters()} />\n    </div>\n  );\n};\n\n\nexport default GallerySection;\n","import React, { useContext, useState, Fragment, Suspense } from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport ReactTooltip from \"react-tooltip\";\nimport { isMobileOnly } from \"react-device-detect\";\n\nconst InfoNotice = React.lazy(() => import('../../SharedComponents/InfoNotice'));\nconst CompareIcon = React.lazy(() => import('../../SharedComponents/CompareIcon'));\nconst SpaceCalculator = React.lazy(() => import('../../SharedComponents/SpaceCalculator'));\nimport { SvgIco } from '../../SharedComponents/Icons';\nimport FavouriteIcon from '../../SharedComponents/FavouriteIcon';\nimport { Context } from \"../index\";\n\nimport './index.sass';\n\n\nconst Header = () => {\n\n  const {\n    allKinds,\n    anonymous,\n    areaUnit,\n    comparableLocations,\n    facts,\n    favouriteLocationsIds,\n    isScraped,\n    kind,\n    locationClosed,\n    locationId,\n    locationRented,\n    missingImagesUrl,\n    section,\n    setFavouriteLocationsIds,\n    siteKey,\n    suitableFor,\n    tabs,\n    title,\n    updateComparableLocations,\n  } = useContext(Context);\n\n\n  const [showAllKinds, setShowAllKinds] = useState(false);\n\n  const { price, area, persons } = facts;\n  const { economy } = tabs;\n  const disposalPrice = economy.disposalPrice || 0;\n  const showEmployees = persons;\n  const visibleKinds = showAllKinds || allKinds.length <= 2 ? allKinds : allKinds.slice(0, 2);\n  const reducedKinds = allKinds.length > 2 ? `+${allKinds.length - 2}` : false;\n  const disposal = parseInt(disposalPrice) > 0 && (siteKey === 'dk' || siteKey === 'global');\n  const sectionTitle = section !== \"lease\" ? I18n.t('apps.lb_showroom.detailed.economy.prices_for_sale') : I18n.t('apps.lb_showroom.detailed.economy.annual_prices_' + areaUnit);\n  const badgesWrapperClasses = classNames('dv-header__cafe-disposal-block', {'indentation-mobile': suitableFor.length });\n  const bottomBorderClasses = classNames('dv-header__bottom-border', {'indentation-mobile': suitableFor.length });\n  const verifiedLabel = section === 'lease' ? I18n.t('apps.lb_showroom.verified_lease') : 'Verificeret salgsejendom';\n  const pricePerM2Present = economy.pricesPerM2 && Object.keys(economy.pricesPerM2).length > 0;\n  const pricesPerYearPresent = economy.pricesPerYear && Object.keys(economy.pricesPerYear).length > 0;\n  const checkEconomySectionPresent = pricePerM2Present || pricesPerYearPresent || disposal || kind === 'meeting_room';\n  const pricePerYearM2 = economy.pricesPerM2 && economy.pricesPerM2.pricePerYear;\n\n\n  const scrollToEconomySection = () =>\n    window.scroll(0, document.getElementById('economy-section').getBoundingClientRect().top + window.pageYOffset - (document.getElementById('top-menu').offsetHeight + 48));\n\n\n  const InfoCell = ({ data, showUnit, icon, isPersons, isArea }) => !!data.value &&\n    <div className=\"dv-header__location-details-cell\">\n      <div className=\"dv-header__cell-value\">\n        <SvgIco name={icon || data.icon} size={22}/>\n        <span>{ data.value } {showUnit && data.unit}</span>\n        { isPersons && data.tooltip &&\n          <span className=\"dv-header__info-tooltip\"\n                data-for={'persons-tooltip'}\n                data-tip={data.tooltip}>\n            <SvgIco name=\"info_outline\" size={16} />\n            <ReactTooltip\n              effect=\"solid\"\n              id={'persons-tooltip'}\n              place=\"right\"\n              className=\"info-tooltip\"\n            />\n          </span>\n        }\n      </div>\n\n      <div className=\"dv-header__cell-label\">\n        { data.label }\n      </div>\n\n      { isArea && kind === 'office' && siteKey === 'dk' &&\n        <Suspense fallback=\"\">\n          <SpaceCalculator />\n        </Suspense>\n      }\n    </div>;\n\n\n  return (\n    <div className=\"dv-header\">\n\n      { anonymous &&\n        <Suspense fallback=\"\">\n          <InfoNotice\n            missingImagesUrl={missingImagesUrl}\n            noticeKind={'anonymous'}\n            root=\"detail\"\n          />\n        </Suspense>\n      }\n\n      { isScraped &&\n        <div className=\"dv-header__scraped-info-wrapper\">\n          <div className=\"dv-header__scraped-info-block\">\n            <p className=\"dv-header__scraped-headline\" data-nosnippet={true}>\n              <SvgIco name=\"info_outline\" size={22} />\n              { I18n.t('generic.title_info_text') }\n            </p>\n            <p className=\"dv-header__scraped-content\" data-nosnippet={true}>\n              { I18n.t('generic.parsed_info_text') }&nbsp;\n              <a href={missingImagesUrl} target=\"_blank\" className=\"read-more\">\n                { I18n.t('generic.read_more') }\n              </a>\n            </p>\n          </div>\n        </div>\n      }\n\n      <div className=\"dv-header__top-wrapper\">\n        <div className=\"section dv-header__location-kinds\">\n          { visibleKinds.map((kind, index) =>\n            <span key={index}>\n              { I18n.t(`generic.${kind}`) }\n            </span>\n          )}\n          { (reducedKinds && !showAllKinds) &&\n            <span className={!showAllKinds ? 'dv-header__show-all-kinds-link' : ''}\n                  onClick={ !showAllKinds ? setShowAllKinds(true) : () => null }>\n              { reducedKinds }\n            </span>\n          }\n        </div>\n\n        { !locationRented &&\n          <div className=\"dv-header__action-icons-wrapper\">\n            { section === 'lease' && !isMobileOnly &&\n              <Suspense fallback=\"\">\n                <CompareIcon\n                  comparableLocations={comparableLocations}\n                  kind={kind}\n                  locationId={locationId}\n                  siteKey={siteKey}\n                  tooltipPosition={'left'}\n                  updateComparableLocations={updateComparableLocations}\n                  withLabel={true}\n                />\n              </Suspense>\n            }\n\n            <FavouriteIcon\n              favoriteLocations={favouriteLocationsIds}\n              isDetailView={true}\n              locationId={locationId}\n              section={section}\n              siteKey={siteKey}\n              tooltipPosition={'left'}\n              updateFavouriteLocations={(ids) => setFavouriteLocationsIds(ids)} />\n          </div>\n        }\n\n      </div>\n\n      <div className=\"dv-header__title-wrapper\">\n        <h1 className={`dv-header__location-title${ isScraped ? ' extra-indentation' : ''}`}>\n          { title }\n        </h1>\n        { !isScraped &&\n          <div className=\"dv-header__verified-lease\">\n            <SvgIco name=\"verified\" size={22}/>\n            <span>{ verifiedLabel }</span>\n          </div>\n        }\n      </div>\n\n      <div className=\"row\">\n        { kind !== 'virtual_office' &&\n          <div className=\"dv-header__location-details-row area col-12\">\n            { kind === 'meeting_room' && showEmployees\n              ? <InfoCell data={persons} isPersons={true} />\n              : !showEmployees\n              ? <InfoCell data={area} showUnit={area.icon !== 'desks'} isArea={true} />\n              : kind !== 'parking' && kind !== 'virtual_office' &&\n                <Fragment>\n                  <InfoCell data={area} showUnit={true} isArea={true} />\n                  <InfoCell data={persons} isPersons={true} />\n                </Fragment>\n            }\n\n          </div>\n        }\n      </div>\n\n      { kind !== 'virtual_office' && !locationClosed &&\n        <div className=\"dv-header__separator-wrapper\">\n          <div className=\"dv-header__location-details-separator\" />\n        </div>\n      }\n\n      { !locationClosed &&\n        <div className=\"dv-header__location-details-wrapper\">\n          <div className=\"dv-header__location-details-row\">\n            { pricePerYearM2 &&\n              <div className=\"dv-header__location-details-cell\">\n                <div className=\"dv-header__cell-value\">\n                  <SvgIco name=\"price\" size={22} />\n                  <span>{ pricePerYearM2 }</span>\n                </div>\n                <div className=\"dv-header__cell-label\">\n                  { sectionTitle }\n                </div>\n                { checkEconomySectionPresent &&\n                  <div className=\"dv-header__economy-section-link\" onClick={scrollToEconomySection}>\n                    { I18n.t('apps.lb_showroom.detailed.see_economy_link') }\n                  </div>\n                }\n              </div>\n            }\n\n            <InfoCell data={{ ...price, icon: 'calendar_month' }} />\n\n            { disposal &&\n              <InfoCell\n                data={{\n                  icon: 'real_estate_agent',\n                  label: I18n.t('apps.lb_showroom.detailed.economy.disposal_price'),\n                  value: disposalPrice\n                }}\n                showUnit={false}\n              />\n            }\n          </div>\n        </div>\n      }\n\n      { suitableFor.length > 0 &&\n        <div className={badgesWrapperClasses}>\n          { (!locationClosed || (locationClosed && suitableFor.length > 0)) && <div className=\"separator\" /> }\n\n          { suitableFor.length > 0 && suitableFor.map((elem, index) =>\n            <div className='dv-header__suitable-for' key={index}>\n              <SvgIco name={elem.icon} width={20} height={20} className=\"dv-header__suitable-for-icon\" />\n              <span className=\"dv-header__suitable-for-label\">\n                { elem.label }\n              </span>\n            </div>\n          )}\n        </div>\n      }\n\n      <div className={bottomBorderClasses}>\n        <div className=\"dv-header__location-details-separator\" />\n      </div>\n\n    </div>\n  )\n};\n\nexport default Header;\n\n\nHeader.propTypes = {\n  economy: PropTypes.object,\n}\n\nHeader.defaultProps = {\n  economy: {},\n};\n","import React, { useContext, useEffect, useRef, useState, Fragment, Suspense } from 'react';\nimport { debounce } from 'throttle-debounce';\nimport classNames from 'classnames';\n\nconst CombinedLeases = React.lazy(() => import('../CombinedLeases'));\nconst SameAddressLocations = React.lazy(() => import('../SameAddressLocations'));\nconst BaseSlider = React.lazy(() => import('../../SharedComponents/BaseSlider'));\nconst LocationTemplate = React.lazy(() => import('../../SharedComponents/LocationTemplate'));\nconst SimilarLocations = React.lazy(() => import('../../SimilarLocations'));\n\nimport EconomySection from '../EconomySection';\nimport { apiProvider } from '../../../api/core';\nimport SearchAgentBanner from '../../SharedComponents/SearchAgentBanner';\nimport FAQSection from '../../SharedComponents/FAQSection';\nimport MapSection from '../MapSection';\nimport FixedNavigationBar from '../FixedNavigationBar';\nimport FactsAndFacilities from '../FactsAndFacilities';\nimport DescriptionSection from '../DescriptionSection';\nimport { Context } from \"../index\";\n\nimport './index.sass';\n\n\nconst InfoSections = () => {\n\n  const {\n    anonymous,\n    comparableLocations,\n    combinedLocations,\n    tabs: {\n      economy,\n      isRentIncludeOperationalCost,\n    },\n    favouriteLocationsIds,\n    isRequestFromPrerender,\n    kind,\n    locale,\n    location,\n    locationClosed,\n    locationId,\n    newSearchAgentPath,\n    rentedOut,\n    richSnippetQuestions,\n    richSnippetQuestionsTitle,\n    scrollToForm,\n    section,\n    sectionType,\n    setComparableLocations,\n    setFavouriteLocationsIds,\n    setShowSimilarLocations,\n    showSimilarLocations,\n    siteKey,\n    similarLocationsEndpoint,\n    similarLocationsHeadline,\n    temporarilyUnavailable,\n    viewedLocations,\n    visitorToken,\n    updateViewedLocations,\n  } = useContext(Context);\n\n  const [activeSection, setActiveSection] = useState(null);\n  const [locationsWithSameAddress, setLocationsWithSameAddress] = useState([]);\n  const [showNavigationMenuState, setShowNavigationMenuState] = useState(false);\n\n  const scrollTargetsRefs = {\n    descriptionRef: useRef(),\n    factsRef: useRef(),\n    economyRef: useRef(),\n    mapRef: useRef(),\n    similarLocationsRef: useRef(),\n    faqRef: useRef(),\n  };\n\n  const { descriptionRef, economyRef, factsRef, faqRef, mapRef, similarLocationsRef } = scrollTargetsRefs;\n\n\n  useEffect(() => {\n    const { addressLine1, postalDistrictId } = location;\n    const retrievedFavouriteLocations = localStorage && localStorage.getItem(`my.favourite_${sectionType}_${siteKey}`);\n    const retrievedComparableLocations = localStorage && localStorage.getItem(`my.comparable_${sectionType}_${siteKey}`);\n    const favouriteLocationsIds = JSON.parse(retrievedFavouriteLocations) || [];\n    const comparableLocations = JSON.parse(retrievedComparableLocations) || [];\n\n    favouriteLocationsIds && setFavouriteLocationsIds(favouriteLocationsIds);\n    comparableLocations && setComparableLocations(comparableLocations);\n\n    window.innerWidth >= 992 && updateViewedLocations();\n\n    showNavigationMenu();\n    window.addEventListener('scroll', showNavigationMenu);\n\n    apiProvider\n      .getAll(\n        `/api/locations/${locationId}/get_by_address?postal_district_id=${postalDistrictId}&address_line_1=${addressLine1}&locale=${locale}`\n      )\n      .then(\n        (response) =>\n          response &&\n          response.length &&\n          setLocationsWithSameAddress(response)\n      );\n\n    return () => {\n      window.removeEventListener('scroll', showNavigationMenu);\n    };\n  }, []);\n\n\n  const showNavigationMenu = () => {\n    const topOffset = document.getElementById('top-menu').offsetHeight + 48;\n    const showNavigation = descriptionRef && descriptionRef.current && descriptionRef.current.getBoundingClientRect().top - 100 <= topOffset;\n\n    if (showNavigation) {\n      debounce(10, handleActiveAreaSection);\n      handleActiveAreaSection();\n    }\n\n    setShowNavigationMenuState(showNavigation);\n  };\n\n\n  const handleActiveAreaSection = () => {\n    const topOffset = document.getElementById('top-menu').offsetHeight + 48;\n    const sectionsList = document.querySelectorAll('.info-sections__block-wrapper');\n    const viewPortBottomBorder = (window.innerHeight - topOffset) / 2;\n\n    if (descriptionRef && descriptionRef.current && descriptionRef.current.getBoundingClientRect().top <= topOffset) {\n      Object.keys(sectionsList).forEach((elem) => {\n        const node = sectionsList[elem];\n        const nodeName = node && node.firstChild && node.firstChild.dataset.name;\n\n        if (nodeName && activeSection !== nodeName) {\n          const nodeTop = node.getBoundingClientRect().top;\n          const nodeBottom = node.getBoundingClientRect().bottom;\n\n          // If node is partially in area viewPort\n          if (nodeTop < viewPortBottomBorder && nodeBottom > topOffset) {\n            // If node is 100% in area viewPort\n            if ((nodeTop < topOffset && nodeBottom > viewPortBottomBorder) || (nodeTop > topOffset && nodeBottom < viewPortBottomBorder)) {\n              setActiveSection(nodeName);\n            } else {\n              const viewPortNodeTop = nodeTop < topOffset ? topOffset : nodeTop;\n              const viewPortNodeBottom =\n                nodeBottom > viewPortBottomBorder\n                  ? viewPortBottomBorder\n                  : nodeBottom;\n\n              // If node takes at least 50% of area viewPort\n              if (\n                viewPortNodeBottom - viewPortNodeTop >=\n                (viewPortBottomBorder - topOffset) / 2\n              ) {\n                setActiveSection(nodeName);\n              }\n            }\n          }\n        }\n      });\n    } else if (activeSection !== 'description') {\n      setActiveSection('description');\n    }\n  };\n\n\n  const scrollToTarget = (target) => {\n    const targetCoords = Math.floor(scrollTargetsRefs[`${target}Ref`].current.getBoundingClientRect().top + window.pageYOffset - (document.getElementById('top-menu').offsetHeight + 48));\n\n    window.removeEventListener('scroll', showNavigationMenu);\n    window.scroll(0, targetCoords);\n    window.addEventListener('scroll', debounce(20, () => endOfScroll(targetCoords)));\n  };\n\n\n  const endOfScroll = (targetCoords) => {\n    if (window.pageYOffset === targetCoords) {\n      window.addEventListener('scroll', showNavigationMenu);\n      window.removeEventListener('scroll', debounce(20, () => endOfScroll(targetCoords)));\n    }\n  };\n\n\n  const disposalPrice = economy.disposalPrice;\n  const richSnippetsAvailable = !!richSnippetQuestions && richSnippetQuestions.length > 0;\n  const filteredViewedLocations = viewedLocations && viewedLocations.filter((viewed) => viewed.id !== location.id);\n  const showViewedLocations = filteredViewedLocations && filteredViewedLocations.length > 0;\n  const showMap = !anonymous && !!location.latitude && !!location.longitude;\n  const isDisposalRender = parseInt(disposalPrice) > 0 && (siteKey === 'dk' || siteKey === 'global');\n  const pricePerM2Present = economy.pricesPerM2 && Object.keys(economy.pricesPerM2).length > 0;\n  const pricesPerYearPresent = economy.pricesPerYear && Object.keys(economy.pricesPerYear).length > 0;\n  const checkEconomySectionPresent = (pricePerM2Present || pricesPerYearPresent || isDisposalRender || kind === 'meeting_room') && !locationClosed;\n  const viewedLocationsWrapperClasses = classNames('viewed-locations-wrapper', { 'top-indentation': !showSimilarLocations });\n  const showOrderFormButton = !!(!rentedOut && !temporarilyUnavailable && !locationClosed);\n\n\n  return (\n    <Fragment>\n      <div className=\"container\">\n        <div className=\"info-sections-row row\">\n          { combinedLocations && combinedLocations.length > 0 &&\n            <Suspense fallback={''}>\n              <div className=\"col-12\">\n                <div className=\"info-sections__block-wrapper\">\n                  <CombinedLeases\n                    combinedLocations={combinedLocations}\n                    isRentIncludeOperationalCost={isRentIncludeOperationalCost}\n                  />\n                </div>\n              </div>\n            </Suspense>\n          }\n\n          <div className=\"col-lg-8 col-md-12 col-12\">\n            <div className=\"info-sections\">\n              { showNavigationMenuState &&\n                <FixedNavigationBar\n                  activeSection={activeSection}\n                  checkEconomySectionPresent={checkEconomySectionPresent}\n                  scrollToForm={scrollToForm}\n                  scrollToTarget={scrollToTarget}\n                  showMap={showMap}\n                  similarLocationsHeadline={similarLocationsHeadline}\n                  showNavigationMenu={showNavigationMenuState}\n                  showOrderFormButton={showOrderFormButton}\n                  showRichSnippets={richSnippetsAvailable}\n                  showSimilarLocations={showSimilarLocations}\n                />\n              }\n\n              <div className=\"info-sections__block-wrapper\">\n                <div\n                  className=\"sectionScrollTarget description\"\n                  data-name=\"description\"\n                  ref={descriptionRef}\n                />\n                <DescriptionSection />\n              </div>\n            </div>\n          </div>\n\n          <div className=\"full-width-background-wrapper\">\n            <div className=\"full-width-background\" />\n            <div className=\"col-lg-8 col-md-12 col-12\">\n              <div className=\"info-sections__block-wrapper\">\n                <div\n                  className=\"sectionScrollTarget\"\n                  data-name=\"facts\"\n                  ref={factsRef}\n                />\n                <FactsAndFacilities />\n              </div>\n            </div>\n          </div>\n\n          { checkEconomySectionPresent &&\n            <div className=\"col-lg-8 col-md-12 col-12\">\n              <div className=\"info-sections__block-wrapper\">\n                <div\n                  className=\"sectionScrollTarget\"\n                  data-name=\"economy\"\n                  id=\"economy-section\"\n                  ref={economyRef}\n                />\n                <EconomySection />\n              </div>\n            </div>\n          }\n\n          { showMap &&\n            <div className=\"col-lg-8 col-md-12 col-md-8 col-12\">\n              <div className=\"info-sections__block-wrapper\">\n                <div className=\"info-sections__block-wrapper\">\n                  <div\n                    className=\"sectionScrollTarget\"\n                    data-name=\"map\"\n                    ref={mapRef}\n                  />\n                  { !anonymous && <MapSection /> }\n                </div>\n              </div>\n            </div>\n          }\n        </div>\n      </div>\n\n      { !!locationsWithSameAddress.length &&\n        <Suspense fallback={''}>\n          <SameAddressLocations\n            locationsWithSameAddress={locationsWithSameAddress}\n          />\n        </Suspense>\n      }\n\n      { !anonymous &&\n        <Suspense fallback={''}>\n          <div className=\"info-sections__block-wrapper with-favourite\">\n            <div\n              className=\"sectionScrollTarget\"\n              data-name=\"similarLocations\"\n              id=\"similar-locations-section\"\n              ref={similarLocationsRef}\n            />\n              <SimilarLocations\n                comparableLocations={comparableLocations}\n                favouriteLocationsIds={favouriteLocationsIds}\n                handleInit={() => setShowSimilarLocations(true)}\n                similarLocationsEndpoint={similarLocationsEndpoint}\n                similarLocationsHeadline={similarLocationsHeadline}\n                section={section}\n                siteKey={siteKey}\n                updateComparableLocations={setComparableLocations}\n                updateFavouriteLocations={(ids) => setFavouriteLocationsIds(ids)}\n              />\n          </div>\n        </Suspense>\n      }\n\n      { showViewedLocations &&\n        <Suspense fallback={''}>\n          <div className={viewedLocationsWrapperClasses}>\n            <div className=\"viewed-locations container\">\n              <h2 className=\"viewed-locations__headline container\">\n                { siteKey === 'dk' && section !== 'lease'\n                  ? I18n.t('apps.lb_showroom.viewed_sales')\n                  : I18n.t('apps.lb_showroom.viewed_leases')}\n              </h2>\n              <BaseSlider infinite withDots>\n                { filteredViewedLocations.map(item =>\n                  item.id !== location.id &&\n                  <LocationTemplate\n                    comparableLocations={comparableLocations}\n                    component=\"viewed\"\n                    data={item}\n                    key={item.uuid}\n                    section={section}\n                    siteKey={siteKey}\n                    updateComparableLocations={setComparableLocations}\n                    updateFavouriteLocations={(ids) => setFavouriteLocationsIds(ids)}\n                  />,\n                )}\n              </BaseSlider>\n            </div>\n          </div>\n        </Suspense>\n      }\n\n      <SearchAgentBanner\n        newSearchAgentPath={newSearchAgentPath}\n        page=\"detail-view\"\n        richSnippetsAvailable={richSnippetsAvailable}\n        searchAgentHeadline={I18n.t('lb_showroom.detailed.search_agent.headline')}\n        searchAgentText={I18n.t('lb_showroom.detailed.search_agent.description')}\n        siteKey={siteKey}\n        visitorToken={visitorToken}\n      />\n\n      { richSnippetsAvailable &&\n        <div className=\"info-sections__block-wrapper\">\n          <div\n            className=\"sectionScrollTarget\"\n            data-name=\"faq\"\n            ref={faqRef}\n          />\n          <FAQSection\n            isRequestFromPrerender={isRequestFromPrerender}\n            richSnippetQuestions={richSnippetQuestions}\n            title={richSnippetQuestionsTitle['title']}\n          />\n        </div>\n      }\n    </Fragment>\n  );\n};\n\n\nexport default InfoSections;\n","import React, { useContext, useState, useEffect, Fragment, Suspense } from 'react';\nimport Truncate from 'react-truncate';\nimport { isMobile } from \"react-device-detect\";\n\nimport { SvgIco } from '../../SharedComponents/Icons';\nimport SmartTextTooltip from \"../SmartTextTooltip\";\nimport { Context}  from \"../index\";\n\nconst ParkingMarkerMap = React.lazy(() => import('../../NewMainMap/ParkingMarkerMap'));\n\n\nconst MapSection = () => {\n\n  const {\n    anonymous,\n    googleApiKey,\n    isRequestFromPrerender,\n    location: { addressLine1, latitude, longitude },\n    staticMapUrl,\n    tabs: { smartText: { geography: smartTextLocation }, transport },\n  } = useContext(Context);\n\n  const [isMapHovering, setIsMapHovering] = useState(false);\n  const [locationText, setLocationText] = useState(false);\n  const [staticImageAvailable, setStaticImageAvailable] = useState(true);\n\n  const textLines = isMobile ? 4 : 2;\n\n  const mapContainerStyle = {\n    position: 'absolute',\n    objectFit: 'cover',\n    width: '100%'\n  };\n\n  useEffect(() => {\n    const img = new Image();\n\n    img.src = staticMapUrl;\n    img.error = () => setStaticImageAvailable(false);\n  }, []);\n\n\n  const handleMapMouseHover = ({ target }) => {\n    if (!isMapHovering) {\n      target.style.background = 'white';\n      setIsMapHovering(true);\n    }\n  };\n\n\n  return (\n    <div className=\"dv-info-section-wrapper location-details-section dv-info-section-wrapper--location\">\n      <div className=\"row\">\n        <div className=\"col-md-12\">\n          <h2 className='dv-map-section location-title'>{ I18n.t('detailed.location.headline') }</h2>\n        </div>\n        <div className=\"dv-map-section-location-address-wrapper col-12\">\n          <SvgIco name=\"map_detail\" size={22}/>\n          <div className=\"dv-map-section-location-address\">\n            <h2>{ !anonymous && `${ addressLine1 }, `}{ transport.postalDistrict.postalName }</h2>\n          </div>\n        </div>\n      </div>\n\n      { smartTextLocation && <SmartTextTooltip id=\"map\" /> }\n\n      { locationText || isRequestFromPrerender\n        ?\n          <Fragment>\n            <p className=\"smart-text-extended\">\n              {smartTextLocation}\n            </p>\n            <div className=\"dv-info-section__read-more-smart-text\">\n              <a onClick={() => setLocationText(prevState => !prevState)}>\n                { I18n.t('apps.lb_showroom.detailed.description.hide_more_link') }\n                <SvgIco name=\"expand-less\" size={15} />\n              </a>\n            </div>\n          </Fragment>\n        :\n          <Fragment>\n            { smartTextLocation &&\n              <div className=\"smart-text\">\n                <Truncate\n                  lines={ textLines }\n                  ellipsis={\n                    <Fragment><span>{textLines !== 0 && '... '}</span>\n                      <div className=\"dv-info-section__read-more-smart-text\">\n                        <a onClick={() => setLocationText(prevState => !prevState)}>\n                          { I18n.t('generic.read_more') }\n                          <SvgIco name=\"expand-more\" size={15} />\n                        </a>\n                      </div>\n                    </Fragment>\n                  }\n                  children={smartTextLocation}\n                />\n              </div>\n            }\n          </Fragment>\n      }\n\n      <div className=\"bottom-location-map wrapper-map-location\">\n        { staticImageAvailable &&\n        <img\n          alt={!anonymous && `${ addressLine1 }, ${transport.postalDistrict.postalName}`}\n          className='bottom-location-map lazyload'\n          data-src={staticMapUrl}\n          data-sizes=\"auto\"\n          onMouseEnter={handleMapMouseHover}\n          onTouchStart={handleMapMouseHover}\n          style={mapContainerStyle}\n        />\n        }\n        { (isMapHovering || !staticImageAvailable) &&\n          <Suspense fallback={<div className=\"skeleton-box\" />}>\n            <ParkingMarkerMap googleApiKey={googleApiKey} coordinates={{ latitude: latitude, longitude: longitude }} />\n          </Suspense>\n        }\n      </div>\n    </div>\n  )\n}\n\nexport default MapSection;\n","import React from 'react';\nimport ReactTooltip from \"react-tooltip\";\n\nimport { SvgIco } from \"../../SharedComponents/Icons\";\n\nimport './index.sass';\n\n\nconst SmartTextTooltip = ({ id }) => {\n\n  return (\n    <div className=\"smart-text-tooltip\">\n      <i className=\"smart-text-tooltip__icon\"\n         data-tip={I18n.t('apps.lb_showroom.detailed.smart_text_tooltip')}\n         data-for={`${id}-smart-text-tooltip`}>\n         <SvgIco name=\"info_outline\" size={20} />\n      </i>\n\n      <ReactTooltip\n        place='right'\n        effect='solid'\n        id={`${id}-smart-text-tooltip`}\n        type=\"light\"\n        border={true}\n        borderColor=\"black\" />\n    </div>\n  )\n}\n\nexport default SmartTextTooltip;\n","import React, { useEffect, useState, Fragment, Suspense } from 'react';\nimport { createContext } from 'react';\nimport PropTypes from 'prop-types';\nimport { isMobileOnly } from \"react-device-detect\";\n\nimport { preventResizeObserverError } from \"../../utils/resizeObzerver\";\nimport Storage from '../../utils/localStorage';\nimport httpService from '../../api/httpService';\nimport { loadTawkTo } from '../TawkTo/TawkTo';\nimport ErrorBoundary from '../ErrorBoundary';\nimport { ToTheTopBtn } from '../SharedComponents/Buttons';\nimport { SvgIco } from \"../SharedComponents/Icons\";\nimport GallerySection from './Gallery';\nimport Header from './Header';\nimport InfoSections from './InfoSections';\n\nimport '../SharedComponents/TrustLogos.sass';\nimport './index.sass';\n\nconst AskProviderModalForm = React.lazy(() => import('./AskProviderModalForm'));\nconst ClosedLocationBanner = React.lazy(() => import('./ClosedLocationBanner'));\nconst LocationUnavailable = React.lazy(() => import('./LocationUnavailable'));\nconst OrderForm = React.lazy(() => import('../OrderForm'));\n\n\nexport const Context = createContext({});\n\n\nconst DetailedViewHeader = (props) => {\n\n  const {\n    apiCreateOrderPath,\n    apiShowcasePath,\n    location,\n    locationAvailable,\n    locationIsClosed,\n    // locationContactDetails,\n    rentedOut,\n    section,\n    siteKey,\n    temporarilyUnavailable,\n  } = props;\n\n  const [activeGallerySection, setActiveGallerySection] = useState('photos');\n  const [contactOrdered, setContactOrdered] = useState(Storage.isContactOrdered(location.uuid));\n  const [comparableLocations, setComparableLocations] = useState(null);\n  const [favouriteLocationsIds, setFavouriteLocationsIds] = useState(null);\n  const [locationOrdered, setLocationOrdered] = useState(localStorage && Storage.isLocationOrdered(location.uuid));\n  const [mapSectionOpen, setMapSectionOpen] = useState(false);\n  const [modalFormOpen, setModalFormOpen] = useState(false);\n  const [selectedFormOption, setSelectedFormOption] = useState('order');\n  const [showcaseOrdered, setShowcaseOrdered] = useState(localStorage && Storage.isShowcaseOrdered(location.uuid));\n  const [viewedLocations, setViewedLocations] = useState(null);\n  const [virtualTourOpen, setVirtualTourOpen] = useState(false);\n  const [updateOrderForm, setUpdateOrderForm] = useState(false);\n  const [updateVirtualTourForm, setUpdateVirtualTourForm] = useState(false);\n  const [updateAskLandlord, setUpdateAskLandlord] = useState(false);\n  const [showSimilarLocations, setShowSimilarLocations] = useState(false);\n\n  // const isJeudan = locationContactDetails.provider.name && locationContactDetails.provider.name.toLowerCase() === 'jeudan';\n  const locationClosed = locationIsClosed && !rentedOut && !locationAvailable;\n  const locationRented = !!(rentedOut || temporarilyUnavailable || locationClosed);\n  const sectionType = section === 'lease' ? section : 'sale';\n\n\n  useEffect(() => {\n    localStorage && localStorage.setItem('locale', props.locale);\n    !isMobileOnly && loadTawkTo(siteKey);\n    preventResizeObserverError();\n  }, []);\n\n\n  useEffect(() => {\n    updateAskLandlord && setContactOrdered(true);\n  }, [updateAskLandlord]);\n\n\n  const switchGallerySection = (option) => {\n    setActiveGallerySection(option);\n    setMapSectionOpen(option === 'map');\n    setVirtualTourOpen(option === 'virtualTour');\n  };\n\n\n  const scrollToTarget = (target) => {\n    const targetElem = document.getElementById(target);\n\n    if (targetElem) {\n      const targetCoords = Math.floor(targetElem.getBoundingClientRect().top + window.pageYOffset - (document.getElementById('top-menu').offsetHeight + 48));\n      window.scroll(0, targetCoords);\n    }\n  };\n\n\n  const updateViewedLocations = () => {\n    const locationIdStr = location.id.toString();\n    const retrievedViewed = localStorage && localStorage.getItem(`my.viewed_${sectionType}_${siteKey}`);\n    let viewedLocations = JSON.parse(retrievedViewed) || [];\n\n    if (viewedLocations.indexOf(locationIdStr) < 0) {\n      // Limit viewed locations to last 10\n      viewedLocations.length && viewedLocations.length === 10 && viewedLocations.pop();\n      viewedLocations.unshift(locationIdStr);\n    }\n\n    localStorage.setItem(`my.viewed_${sectionType}_${siteKey}`, JSON.stringify(viewedLocations));\n    viewedLocations && viewedLocations.length && getViewedLocations(viewedLocations);\n  };\n\n\n  const getViewedLocations = (viewedLocationsIds) => {\n    httpService.getLocationsByIds(viewedLocationsIds)\n      .then((response) => {\n        if (response) {\n          response.length\n          && response.length !== viewedLocationsIds.length\n          && localStorage\n          && localStorage.setItem(`my.viewed_${sectionType}_${siteKey}`, JSON.stringify(response.map(location => `${location.id}`)));\n\n          setViewedLocations(response);\n        }\n      });\n  };\n\n\n  const contextProps = {\n    ...props,\n    activeGallerySection,\n    anonymous: location.anonymous,\n    areaUnit: location.areaUnit,\n    comparableLocations,\n    contactOrdered,\n    favouriteLocationsIds,\n    // isJeudan,\n    locationAddress: location.address,\n    locationClosed,\n    locationId: location.id,\n    locationOrdered,\n    locationRented,\n    locationUuid: location.uuid,\n    mapSectionOpen,\n    modalFormOpen,\n    orderPath: apiCreateOrderPath,\n    scrollToForm: scrollToTarget,\n    sectionType,\n    selectedFormOption,\n    setModalFormOpen,\n    setComparableLocations,\n    setContactOrdered,\n    setFavouriteLocationsIds,\n    setLocationOrdered,\n    setShowcaseOrdered,\n    setShowSimilarLocations,\n    setUpdateAskLandlord,\n    setUpdateOrderForm,\n    setUpdateVirtualTourForm,\n    showCasePath: apiShowcasePath,\n    showcaseOrdered,\n    showSimilarLocations,\n    switchGallerySection,\n    switchSelectedOrderForm: setSelectedFormOption,\n    viewedLocations,\n    virtualTourOpen,\n    updateAskLandlord,\n    updateOrderForm,\n    updateViewedLocations,\n    updateVirtualTourForm,\n  };\n\n\n  return (\n    <Context.Provider value={contextProps}>\n      <ErrorBoundary>\n\n        { !locationRented && !locationClosed &&\n          <div className=\"order-form-scroll-btn-mobile\">\n            <div className=\"order-form-scroll-btn\" onClick={() => scrollToTarget('order-form-target')}>\n              <SvgIco name=\"contract\" size={24} />\n              { I18n.t('apps.lb_showroom.detailed.get_more_insights') }\n            </div>\n          </div>\n        }\n\n        { !locationRented && !locationClosed &&\n          <Suspense fallback={''}>\n            <AskProviderModalForm />\n          </Suspense>\n        }\n\n        <div className={`dv-wrapper${locationRented ? ' dv-wrapper--rented-out' : ''}`}>\n          { (locationAvailable || locationClosed)\n            ?\n              <Fragment>\n                <GallerySection />\n\n                <div className=\"container\">\n                  <div className=\"row\">\n                    <div className=\"col-12 col-md-7 col-lg-8\">\n                      <Header />\n                    </div>\n\n                    { !locationRented && !locationClosed &&\n                      <Suspense fallback={''}>\n                        <div className=\"col-12 col-md-5 col-lg-4\" id=\"order-form-target\">\n                          <div className=\"form-wrapper\">\n                            <OrderForm />\n                          </div>\n                        </div>\n                      </Suspense>\n                    }\n\n                    { !isMobileOnly && locationClosed &&\n                      <Suspense fallback={''}>\n                        <div className=\"col-12 col-md-5 col-lg-4\">\n                          <ClosedLocationBanner />\n                        </div>\n                      </Suspense>\n                    }\n                  </div>\n                </div>\n\n\n                { !locationRented && !locationClosed &&\n                  <Suspense fallback={''}>\n                    <div className=\"col-lg-4 col-md-4 col-12 form-wrapper form-wrapper--mobile\" id=\"order-form-target\">\n                      <OrderForm />\n                    </div>\n                  </Suspense>\n                }\n\n                { isMobileOnly && locationClosed &&\n                  <Suspense fallback={''}>\n                    <ClosedLocationBanner />\n                  </Suspense>\n                }\n\n                <div className=\"dv-description-wrapper\">\n                  <InfoSections />\n                </div>\n              </Fragment>\n            :\n              <Suspense fallback={''}>\n                <LocationUnavailable />\n              </Suspense>\n          }\n          <ToTheTopBtn />\n        </div>\n      </ErrorBoundary>\n    </Context.Provider>\n  );\n};\n\n\nexport default DetailedViewHeader;\n\n\nDetailedViewHeader.propTypes = {\n  title: PropTypes.string.isRequired,\n  suitableFor: PropTypes.array,\n  assets: PropTypes.shape({\n    photos: PropTypes.array,\n    videos: PropTypes.array,\n    floorPlans: PropTypes.array,\n    virtualTour: PropTypes.string,\n  }),\n  price: PropTypes.shape({\n    label: PropTypes.string,\n    value: PropTypes.string,\n  }),\n  area: PropTypes.shape({\n    label: PropTypes.string,\n    value: PropTypes.string,\n  }),\n  location: PropTypes.shape({\n    latitude: PropTypes.number,\n    longitude: PropTypes.number,\n  }),\n  tabs: PropTypes.shape({\n    facility: PropTypes.shape({\n      facilities: PropTypes.array,\n    }),\n    economy: PropTypes.shape({\n      disposalPrice: PropTypes.string,\n    }),\n    smartText: PropTypes.shape({\n      factAndFacilities: PropTypes.string,\n    }),\n    transport: PropTypes.shape({\n      distances: PropTypes.array,\n      postalDistrict: PropTypes.shape({\n        postalName: PropTypes.string,\n      }),\n    }),\n  }),\n  facts: PropTypes.shape({\n    area: PropTypes.shape({\n      icon: PropTypes.string,\n    }),\n    price: PropTypes.object,\n  }),\n};\n\n\nDetailedViewHeader.defaultProps = {\n  tabs: {\n    facility: {\n      facilities: [],\n    },\n    economy: {\n      disposalPrice: '0 kr.',\n    },\n    smartText: {\n      factAndFacilities: '',\n    },\n    transport: {\n      distances: [],\n      postalDistrict: {\n        postalName: '',\n      },\n    },\n  },\n  facts: {\n    area: {\n      icon: '',\n      label: '',\n      value: '',\n      unit: '',\n    },\n    price: {\n      icon: '',\n      label: '',\n      value: '',\n      unit: null,\n    },\n    economy: {},\n  },\n};\n","import React, { Component } from 'react';\nimport Modal from 'react-modal';\n\nconst customStyles = {\n  content: {\n    top: '50%',\n    left: '50%',\n    right: 'auto',\n    bottom: 'auto',\n    marginRight: '-50%',\n    transform: 'translate(-50%, -50%)',\n  },\n};\n\nclass ErrorModalDialog extends Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      isShowingModal: false,\n      errorName: null,\n      errorInfo: null,\n    };\n  }\n  componentDidMount() {\n    this.setState({\n      isShowingModal: this.props.didCatchError,\n      errorName: this.props.errorName,\n      errorInfo: this.props.errorInfo,\n    });\n  }\n  handleClose = () => {\n    this.setState({ isShowingModal: false });\n    window.location.href += '/404';\n  };\n  render() {\n    return (\n      <div>\n        <Modal\n          isOpen={this.state.isShowingModal}\n          onAfterOpen={this.afterOpenModal}\n          onRequestClose={this.handleClose}\n          contentLabel=\"Error Modal\"\n          ariaHideApp={false}\n          style={customStyles}\n        >\n          <h2 ref={subtitle => (this.subtitle = subtitle)}>\n            {this.state.errorName}\n          </h2>\n          <p> {this.state.errorInfo} </p>\n          <button className=\"\" onClick={this.handleClose}>\n            Close\n          </button>\n        </Modal>\n      </div>\n    );\n  }\n}\n\nexport default ErrorModalDialog;\n","import React, { Component } from 'react';\nimport ErrorModalDialog from './ErrorModalDialog';\n\nclass ErrorBoundary extends Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      error: null,\n      errorInfo: null,\n      didCatchError: false,\n    };\n  }\n\n  componentDidCatch(error, errorInfo) {\n    this.setState({\n      error: error,\n      errorInfo: errorInfo,\n      didCatchError: true,\n    });\n  }\n\n  render() {\n    if (this.state.errorInfo) {\n      return (\n        <ErrorModalDialog\n          errorName={this.state.error.toString()}\n          errorInfo={this.state.errorInfo.componentStack}\n          didCatchError={this.state.didCatchError}\n        />\n      );\n    }\n    return this.props.children;\n  }\n}\n\nexport default ErrorBoundary;\n","import React, { Component } from 'react';\n\nimport './index.sass';\n\n\nclass CollapsibleSection extends Component {\n  state = {\n    uncollapsed: false,\n  };\n\n  componentDidUpdate(prevProps, prevState, snapshot) {\n    if (this.props.uncollapse !== prevProps.uncollapse) {\n      if (this.props.uncollapse) {\n        this.setState({ uncollapsed: true }, () =>\n          this.collapsibleSection.classList.toggle('uncollapsed'),\n        );\n      } else {\n        this.collapsibleSection.classList.toggle('uncollapsed');\n        setTimeout(() => this.setState({ uncollapsed: false }), 400);\n      }\n    }\n  }\n\n  render() {\n\n    const delimiter = this.props.isRequestFromPrerender ? ' uncollapsed ' : ' ';\n    const defaultDelimiter = this.props.isRequestFromPrerender ? ' uncollapsed' : '';\n\n    return (\n      <div className={`collapsible-section${this.props.classes ? delimiter + this.props.classes : defaultDelimiter}`}\n           ref={(el) => (this.collapsibleSection = el)}>\n        { (this.state.uncollapsed || this.props.isRequestFromPrerender) && this.props.children }\n      </div>\n    );\n  }\n}\n\nexport default CollapsibleSection;\n","import React from 'react';\n\nimport './index.sass';\n\n\nclass FAQSection extends React.PureComponent {\n\n  state = {\n    activeTab: null,\n  };\n\n  toggleFAQWrapper = (wrapperName) => {\n    const { activeTab } = this.state;\n\n    this.setState({ activeTab: wrapperName }, () => {\n\n      !activeTab && this[wrapperName].classList.add('FAQSection__question-wrapper--open');\n\n      if (activeTab) {\n\n        if (activeTab === wrapperName) {\n          this[activeTab].classList.toggle('FAQSection__question-wrapper--open');\n          this[activeTab].classList.toggle('FAQSection__question-wrapper--close');\n        } else {\n          this[activeTab].classList.remove('FAQSection__question-wrapper--open');\n          this[activeTab].classList.add('FAQSection__question-wrapper--close');\n          this[wrapperName].classList.remove('FAQSection__question-wrapper--close');\n          this[wrapperName].classList.add('FAQSection__question-wrapper--open');\n        }\n      }\n    });\n  };\n\n  render() {\n    const { indentation, isRequestFromPrerender, richSnippetQuestions, title, hidden } = this.props;\n\n    if (!hidden) {\n      return (\n        <div className={`FAQSection container${ indentation === 0 ? ' no-padding' : '' }`} id=\"faq\">\n          <h2 className=\"FAQSection__title\">\n            { title }\n          </h2>\n          { richSnippetQuestions.map((questionBlock, index) => {\n            return (\n              <div key={index}\n                   className={`FAQSection__question-wrapper${ isRequestFromPrerender ? ' FAQSection__question-wrapper--open' : '' }`}\n                   ref={el => this[`faqAnswer${index}`] = el}>\n                <div className=\"FAQSection__question\" onClick={() => this.toggleFAQWrapper(`faqAnswer${index}`)}>\n                  { questionBlock.question }\n                </div>\n                <div className=\"FAQSection__answer\">\n                  <div dangerouslySetInnerHTML={{ __html: questionBlock.answer }} />\n                </div>\n              </div>\n            )})\n          }\n        </div>\n      )\n    } else {\n      return null;\n    }\n  }\n}\n\nexport default FAQSection;\n","import RootComponent from \"../../components/SharedComponents/RootComponent\";\nimport Breadcrumb from \"../../components/Breadcrumb\";\nimport DetailedViewHeader from \"../../components/DetailedViewHeader\";\nimport * as Sentry from '@sentry/browser';\n\nif (process.env.RAILS_ENV == 'production') {\n    Sentry.init({dsn: \"https://a15e533883ac4e09a17ba54ccba0ebdc@o35589.ingest.sentry.io/5260847\"});\n}\n\nclass DetailedViewRoot extends RootComponent {\n\n  childComponentsMap = [\n    {\n      dom_container_id: 'breadcrumb',\n      component: Breadcrumb,\n      props: this.props.breadcrumb\n    },\n    {\n      dom_container_id: 'detailed_view_header',\n      component: DetailedViewHeader,\n      props: this.props.detailedViewHeader\n    }\n  ]\n}\n\n\nexport default DetailedViewRoot;\n","/* eslint no-console:0 */\n// This file is automatically compiled by Webpack, along with any other files\n// present in this directory. You're encouraged to place your actual application logic in\n// a relevant structure within app/javascript and only use these pack files to reference\n// that code so it'll be compiled.\n//\n// To reference this file, add <%= javascript_pack_tag 'application' %> to the appropriate\n// layout file, like app/views/layouts/application.html.erb\n\n\n// Support component names relative to this directory:\n//var componentRequireContext = require.context('components', true);\nvar componentRequireContext = require.context('entry_detailed_view', true);\nvar ReactRailsUJS = require('react_ujs');\nReactRailsUJS.useContext(componentRequireContext);\n","import { postLocationShown } from './api';\n\nclass Storage {\n  constructor() {\n    this.locationViewedKey = 'my.viewed_locations';\n    this.locationOrderedKey = 'my.ordered_locations';\n    this.locationShowcaseKey = 'my.ordered_showcase';\n    this.locationContactKey = 'my.contact_locations';\n  }\n\n  static timestamp() {\n    return { timestamp: new Date().toISOString() };\n  }\n\n  populateStorageItems(key) {\n    if (!!localStorage) {\n      if (!!localStorage.getItem(key)) {\n        this[`${key}Obj`] = JSON.parse(localStorage.getItem(key));\n      } else {\n        this[`${key}Obj`] = {};\n        localStorage.setItem(key, '{}');\n      }\n    }\n  }\n\n  isLocationViewed(itemId) {\n    // --> TODO: cahnge this to be functional\n    this.itemId = itemId;\n    this.viewedLocations = localStorage && localStorage.getItem(this.locationViewedKey);\n\n    //if (this.viewedLocations != undefined && JSON.parse(this.viewedLocations)[this.itemId] == undefined) {\n      postLocationShown(this.itemId)\n    //}\n\n    this.populateStorageItems(this.locationViewedKey);\n    this.updateViewedItem();\n    return (\n      Object.keys(this[`${this.locationViewedKey}Obj`]).indexOf(this.itemId) !== -1\n    );\n  }\n\n  isLocationOrdered(itemId) {\n    // --> TODO: cahnge this to be functional\n    let orderLocation;\n    let orderedDate;\n    let todayDate = new Date();\n    let oneWeekAgoDate = new Date(todayDate.getTime() - (60*60*24*7*1000)); // one week ago\n    this.itemId = itemId;\n    this.populateStorageItems(this.locationOrderedKey);\n    orderLocation = localStorage && JSON.parse(localStorage.getItem(\"my.ordered_locations\"))[this.itemId];\n\n    if (orderLocation) {\n      orderedDate = new Date(orderLocation[0].timestamp);\n\n      return oneWeekAgoDate < orderedDate;\n    } else {\n      return false   // location not yet ordered\n    }\n  }\n\n  isShowcaseOrdered(itemId) {\n     // --> TODO: cahnge this to be functional\n     this.itemId = itemId;\n     this.populateStorageItems(this.locationShowcaseKey);\n     return (\n       Object.keys(this[`${this.locationShowcaseKey}Obj`]).indexOf(\n         this.itemId\n       ) !== -1\n     );\n  }\n\n  isContactOrdered(itemId) {\n    // --> TODO: cahnge this to be functional\n    const locationObj = this[`${this.locationContactKey}Obj`] || null;\n\n    this.itemId = itemId;\n    this.populateStorageItems(this.locationContactKey);\n\n    if (locationObj) {\n      return (\n        Object.keys(this[`${this.locationContactKey}Obj`]).indexOf(\n          this.itemId\n        ) !== -1\n      );\n    }\n  };\n\n  updateViewedItem() {\n    this[`${this.locationViewedKey}Obj`][this.itemId] = [\n      this.constructor.timestamp(),\n    ];\n    const viewedLocationStr = JSON.stringify(\n      this[`${this.locationViewedKey}Obj`]\n    );\n    localStorage.setItem(this.locationViewedKey, viewedLocationStr);\n  }\n\n  updateOrderedItem() {\n    // --> TODO: cahnge this to be functional\n    this[`${this.locationOrderedKey}Obj`][this.itemId] = [\n      this.constructor.timestamp(),\n    ];\n    const orderedLocationStr = JSON.stringify(\n      this[`${this.locationOrderedKey}Obj`]\n    );\n    localStorage.setItem(this.locationOrderedKey, orderedLocationStr);\n  }\n\n  updateContactItem() {\n    // --> TODO: cahnge this to be functional\n    this[`${this.locationContactKey}Obj`][this.itemId] = [\n      this.constructor.timestamp(),\n    ];\n    const orderedLocationStr = JSON.stringify(\n      this[`${this.locationContactKey}Obj`]\n    );\n    localStorage.setItem(this.locationContactKey, orderedLocationStr);\n  }\n\n  updateShowcaseItem() {\n    // --> TODO: cahnge this to be functional\n    this[`${this.locationShowcaseKey}Obj`][this.itemId] = [\n      this.constructor.timestamp(),\n    ];\n    const orderedLocationStr = JSON.stringify(\n      this[`${this.locationShowcaseKey}Obj`]\n    );\n    localStorage.setItem(this.locationShowcaseKey, orderedLocationStr);\n  }\n}\n\nexport default new Storage();\n","//Stop error resizeObserver\n\nexport const preventResizeObserverError = () => {\n  const debounce = (callback, delay) => {\n    let tid\n    return function(...args) {\n      // eslint-disable-next-line no-restricted-globals\n      const ctx = self\n      tid && clearTimeout(tid)\n      tid = setTimeout(() => {\n        callback.apply(ctx, args)\n      }, delay)\n    }\n  }\n\n  const _ = window.ResizeObserver\n  window.ResizeObserver = class ResizeObserver extends _ {\n    constructor(callback) {\n      callback = debounce(callback, 20)\n      super(callback)\n    }\n  }\n};\n"],"names":["map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","module","exports","requestBuilder","requestParams","bodyFormData","FormData","elem","Array","isArray","section","append","concat","httpService","_classCallCheck","_createClass","key","value","locationsIds","queryString","localStorage","getItem","reduce","sum","item","slice","apiProvider","getAll","url","data","uuid","name","email","company_name","company","option_parking_lots","phone_number","phone","comment","ab_code","order","location_uuid","person_name","camelizeName","api_version","post","Breadcrumb","_ref","breadcrumbs","root","detailsPage","linksList","breadcrumb","index","React","className","label","length","href","path","SvgIco","size","defaultProps","activeTranslatedDescription","setTranslatedDescription","_useContext","useContext","Context","isRequestFromPrerender","siteKey","_useContext$tabs","tabs","originalDescription","translatedDescriptions","_useState","useState","_useState2","_slicedToArray","readMore","setReadMore","_useState3","_useState4","showOriginalDescription","textLength","description","DescriptionTopMenu","title","dangerouslySetInnerHTML","__html","onClick","prevState","I18n","t","_Component","_inherits","_super","_createSuper","props","_this","call","_defineProperty","_assertThisInitialized","locales","translated","locale","substring","document","addEventListener","hasSomeParentTheClass","target","switcherClassName","setState","showLocaleSwitcherItems","state","activeLocale","localesExceptActive","availableLocales","filter","setActiveTranslatedDescription","desc","getTranslatedDescription","undefined","translateDescriptionWithGoogle","originalDesc","originalLocale","localeFrom","simplifyLocale","translateDescription","then","res","push","catch","country","getOriginalLocale","showLocaleSwitcher","isShowingScrapedInfo","this","clickOutside","_this2","_this$state","toggleLocaleSwitcherItems","type","checked","onChange","localesClickHandler","htmlFor","sourceLanguage","Fragment","googleTranslate","alt","height","width","Component","Contacts","DescriptionSection","locationContactDetails","translatedDescription","showContactsSection","available","provider","partner","Description","Suspense","fallback","activeKey","columnWrapperClass","content","handleClick","isOpen","sectionHeadline","sectionClasses","isMobile","Accordion","defaultActiveKey","Card","Header","Toggle","as","variant","eventKey","Collapse","EconomySection","areaUnit","contactOrdered","facts","kind","linkToDisposalPriceInfo","locationClosed","rentedOut","scrollToForm","setModalFormOpen","switchSelectedOrderForm","temporarilyUnavailable","economyText","setEconomyText","openAnnualPrice","setOpenAnnualPrice","_useState5","_useState6","openPricePerSquareMeter","setOpenPricePerSquareMeter","_useState7","_useState8","openPricePerHour","setOpenPricePerHour","economy","isRentIncludeOperationalCost","smartText","disposalPrice","pricePerHour","pricesPerM2","pricesPerYear","price","smartTextEconomy","pricePerM2Present","pricesPerYearPresent","textLines","window","innerWidth","isDisposalRender","parseInt","showPricePerHour","i18nPricePerHour","i18nAnnualPrices","leftColumnClasses","classNames","leftColumnTitle","askProviderLink","formWrapper","getElementById","classList","remove","setTimeout","add","rightColumnContent","toUnderscore","leftColumnContent","pricePerHourContent","SmartTextTooltip","Truncate","lines","ellipsis","children","SectionRow","ReactTooltip","place","effect","facility","facilities","factAndFacilities","transport","distances","postalDistrict","postalName","area","icon","unit","DistancesListItem","lazyload","iconPathHandler","iconName","require","error","backgroundImage","tag","style","distance","FacilitiesListItem","groupName","items","iconSvg","ParkingListItem","parkingIcon","address","showAllParkings","anonymous","addressLine1","location","suitableFor","_useContext$tabs$faci","buildRoute","energyRating","energyCertificateLevels","exemptedEnergy","nearbyParkingLots","smartTextFacilities","facilityText","setFacilityText","showAllFacilities","setShowAllFacilities","showAllDistances","setShowAllDistances","showMoreParkings","setShowMoreParkings","collapseDistances","visibleDistancesList","collapsedDistancesList","collapseFacilities","visibleFacilitiesList","collapsedFacilitiesList","collapsedParkings","visibleParkingsList","showMoreLinkText","showMore","showMoreLink","showAll","handleShow","energyCertificateIconHandler","districtUrl","kinds","count","toUpperCase","ExemptedEnergyRatingIcon","certificate","certificateName","src","CollapsibleSection","uncollapse","classes","shortLabel","FixedNavigationBar","_React$PureComponent","_len","arguments","args","_key","apply","activeSection","initialization","isScrollable","navigationListLeftBorder","navigationListRightBorder","showLeftArrow","showRightArrow","topOffset","recalculateNavigationTop","offsetHeight","navigationListFirstChild","navigationLinksList","firstChild","navigationListLastChild","lastChild","Math","round","getBoundingClientRect","left","right","handleArrowAppearance","handleNavigationTop","targetName","targetSection","targetRightCoodrs","targetLeftCoords","navigationListRightCoords","navigationListLeftCoords","scrollToRightTarget","scrollToLeftTarget","handleActiveSectionChange","leftBoundary","rightBoundary","scrollToTarget","scrollLeft","offsetWidth","targetLeftScroll","handleHorizontalScroll","removeEventListener","prevProps","snapshot","_this3","_this$props","showMap","showOrderFormButton","showNavigationMenu","showSimilarLocations","similarLocationsHeadline","showRichSnippets","checkEconomySectionPresent","_this$state2","wrapperTop","ref","el","similarLocations","faq","handleLeftScroll","KeyboardArrowLeftRounded","handleRightScroll","KeyboardArrowRightRounded","VirtualTour","DetailsMapWrapper","activeGallerySection","_useContext$assets","assets","photos","floorPlans","videos","googleApiKey","_useContext$location","latitude","longitude","orientationHorizontalMobile","setOrientationHorizontalMobile","useEffect","isTablet","innerHeight","handleOrientationChange","ImageGalleryWrapper","isDefault","webkitallowfullscreen","mozallowfullscreen","allowFullScreen","frameBorder","isGalleryComponent","Label","isActive","_objectWithoutProperties","_excluded","assign","DetailedViewSet","_ref2","counters","switchGallerySection","sorted","virtualTour","forEach","pills","properties","renderPills","InfoBadges","FullscreenGallery","MobileGallery","isScraped","locationRented","missingImagesUrl","activeSlide","setActiveSlide","fullscreenIsOpen","setFullscreenIsOpen","photosCount","useMemo","photo","itemType","closedMonth","showNewBanner","specialOffer","closedMonthLiteral","mappedMonths","showBadges","isSaleLocation","enableFullscreen","handleOpenFullscreen","slideIndex","body","infoBadges","crawledBottomText","isCrawled","isRentedOut","isNew","rentedOutLabel","sale","wrapperClass","GalleryImage","withBadges","original","gallery","isMobileOnly","columnsCount","handleClose","virtualTourOpen","assetsData","setAssetsData","updatedAssets","_objectSpread","showInteriorDesignForm","assetsObj","assetContainerClasses","AssetBlock","GallerySwitcher","image","InfoNotice","CompareIcon","SpaceCalculator","allKinds","comparableLocations","favouriteLocationsIds","locationId","setFavouriteLocationsIds","updateComparableLocations","showAllKinds","setShowAllKinds","persons","showEmployees","visibleKinds","reducedKinds","disposal","sectionTitle","badgesWrapperClasses","bottomBorderClasses","verifiedLabel","pricePerYearM2","pricePerYear","InfoCell","showUnit","isPersons","isArea","tooltip","noticeKind","tooltipPosition","withLabel","FavouriteIcon","favoriteLocations","isDetailView","updateFavouriteLocations","ids","scroll","top","pageYOffset","CombinedLeases","SameAddressLocations","BaseSlider","LocationTemplate","SimilarLocations","combinedLocations","newSearchAgentPath","richSnippetQuestions","richSnippetQuestionsTitle","sectionType","setComparableLocations","setShowSimilarLocations","similarLocationsEndpoint","viewedLocations","visitorToken","updateViewedLocations","setActiveSection","locationsWithSameAddress","setLocationsWithSameAddress","showNavigationMenuState","setShowNavigationMenuState","scrollTargetsRefs","descriptionRef","useRef","factsRef","economyRef","mapRef","similarLocationsRef","faqRef","postalDistrictId","retrievedFavouriteLocations","retrievedComparableLocations","JSON","parse","response","showNavigation","current","debounce","handleActiveAreaSection","sectionsList","querySelectorAll","viewPortBottomBorder","node","nodeName","dataset","nodeTop","nodeBottom","bottom","endOfScroll","targetCoords","richSnippetsAvailable","filteredViewedLocations","viewed","showViewedLocations","viewedLocationsWrapperClasses","floor","FactsAndFacilities","MapSection","handleInit","infinite","withDots","component","SearchAgentBanner","page","searchAgentHeadline","searchAgentText","FAQSection","ParkingMarkerMap","staticMapUrl","smartTextLocation","geography","isMapHovering","setIsMapHovering","locationText","setLocationText","staticImageAvailable","setStaticImageAvailable","img","Image","handleMapMouseHover","background","onMouseEnter","onTouchStart","position","objectFit","coordinates","border","borderColor","AskProviderModalForm","ClosedLocationBanner","LocationUnavailable","OrderForm","createContext","DetailedViewHeader","apiCreateOrderPath","apiShowcasePath","locationAvailable","locationIsClosed","setActiveGallerySection","Storage","isContactOrdered","setContactOrdered","_useState9","isLocationOrdered","_useState10","locationOrdered","setLocationOrdered","_useState11","_useState12","mapSectionOpen","setMapSectionOpen","_useState13","_useState14","modalFormOpen","_useState15","_useState16","selectedFormOption","setSelectedFormOption","_useState17","isShowcaseOrdered","_useState18","showcaseOrdered","setShowcaseOrdered","_useState19","_useState20","setViewedLocations","_useState21","_useState22","setVirtualTourOpen","_useState23","_useState24","updateOrderForm","setUpdateOrderForm","_useState25","_useState26","updateVirtualTourForm","setUpdateVirtualTourForm","_useState27","_useState28","updateAskLandlord","setUpdateAskLandlord","_useState29","_useState30","setItem","loadTawkTo","preventResizeObserverError","targetElem","getViewedLocations","viewedLocationsIds","getLocationsByIds","stringify","contextProps","locationAddress","locationUuid","orderPath","showCasePath","option","locationIdStr","toString","retrievedViewed","indexOf","pop","unshift","Provider","ErrorBoundary","GallerySection","InfoSections","ToTheTopBtn","customStyles","marginRight","transform","ErrorModalDialog","isShowingModal","errorName","errorInfo","didCatchError","Modal","onAfterOpen","afterOpenModal","onRequestClose","contentLabel","ariaHideApp","subtitle","componentStack","uncollapsed","collapsibleSection","toggle","delimiter","defaultDelimiter","activeTab","wrapperName","indentation","hidden","questionBlock","toggleFAQWrapper","question","answer","Sentry","dsn","DetailedViewRoot","_RootComponent","dom_container_id","detailedViewHeader","RootComponent","componentRequireContext","locationViewedKey","locationOrderedKey","locationShowcaseKey","locationContactKey","itemId","postLocationShown","populateStorageItems","updateViewedItem","orderLocation","todayDate","Date","oneWeekAgoDate","getTime","timestamp","locationObj","constructor","viewedLocationStr","orderedLocationStr","toISOString","_","ResizeObserver","callback","delay","tid","ctx","self","clearTimeout"],"sourceRoot":""}