{"version":3,"sources":["../node_modules/wake-react-components/repeater.js","../node_modules/wake-react-components/lib/repeater/index.js","components/ContentBlocks/Base/styles.js","components/ContentBlocks/Base/agency-selector.tsx","../node_modules/wake-react-components/reference.js","components/ContentBlocks/TwoTextBoxes/styles.js","components/ContentBlocks/TwoTextBoxes/index.tsx","components/ContentBlocks/TextBoxes/styles.js","components/ContentBlocks/TextBoxes/index.tsx","components/ContentBlocks/Video/styles.js","components/ContentBlocks/Video/index.tsx","../node_modules/wake-react-components/lib/reference/index.js","../node_modules/wake-react-components/lib/utils/classnames.js","../node_modules/wake-react-components/lib/utils/array.js","components/Agency/Blocks/Stats/styles.js","pages/AgencyPage/styles.js","components/Agency/Blocks/Agents/styles.js","components/Agency/Blocks/Agents/index.tsx","components/Agency/Blocks/ContactInfoMap/styles.js","components/Agency/AddressInfo.tsx","components/Agency/PhoneInfo.tsx","components/Agency/LegalInfo.tsx","components/Agency/Blocks/ContactInfoMap/index.tsx","components/Agency/Blocks/Stats/index.tsx","utils/property-carousel.tsx","components/DynamicPropertyCarousel/styles.js","components/DynamicPropertyCarousel/index.tsx","components/Agency/AgencyProperties/styles.js","components/Agency/AgencyProperties/index.tsx","components/Agency/Blocks/Properties/styles.js","components/Agency/Blocks/Properties/index.tsx","components/Agency/Blocks/OwnerGreetings/styles.js","components/Agency/AgencySomeLinks/styles.js","components/Agency/AgencySomeLinks/index.tsx","components/Agency/Blocks/OwnerGreetings/index.tsx","components/Agency/Blocks/AgencyArticles/index.tsx","components/Agency/Blocks/AgencyContactForm/styles.js","components/Agency/Blocks/AgencyContactForm/index.tsx","components/Agency/Blocks/OtherAgencies/styles.js","components/Agency/Blocks/OtherAgencies/card.tsx","components/Agency/Blocks/OtherAgencies/index.tsx","components/Agency/AgencyContactBar/index.tsx","pages/AgencyPage/index.tsx"],"names":["Object","defineProperty","exports","value","default","e","_repeater","__esModule","_react","_interopRequireWildcard","_render","_getRequireWildcardCache","WeakMap","r","t","_typeof","has","get","n","__proto__","a","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","o","Symbol","iterator","constructor","prototype","FrontComponent","_ref","children","className","doc","limit","name","tag","Tag","tagName","references","Array","isArray","length","slice","createElement","Fragment","map","item","index","$$index","ItemContext","Provider","key","concat","ItemChildren","keyPrefix","Repeater","props","displayName","defaultProps","AddAgencyButton","styled","div","withConfig","componentId","AdminAgencyList","ul","AgencyOptions","AgencySelector","centered","fields","adminAgencies","setAdminAgencies","useState","useEffect","agencies","React","isAdmin","adminAgency","onClick","button","currentTarget","target","referenceClickArea","getElementsByClassName","click","Reference","type","_reference","BoxWrapper","media","lg","_templateObject","_taggedTemplateLiteral","Box","color","md","_templateObject2","_templateObject3","grid","gutterSmall","lgx","_templateObject4","gutter","BoxTitle","css","BoxText","textStyles","AInline","TwoTextBoxes","arguments","undefined","elementID","restProps","__rest","Wrapper","Container","Background","stopPropagation","Text","placeholder","multiline","Editor","settings","thumb","src","getAssetUrl","alt","TextBoxesTitle","H2","TextBoxesWrapper","invert","TextBox","_templateObject5","TextBoxIcon","TextBoxTitle","TextBoxContent","PSmall","buttons","textLinkPrimary","calculateTallestTitle","items","tallest","height","getBoundingClientRect","breakpoints","TextBoxes","hasGradientBg","textBoxesTitle","textBoxes","id","getID","breakpoint","ref","useRef","setTallest","makeSameHeight","elems","window","innerWidth","onResize","debounce","current","querySelectorAll","addEventListener","removeEventListener","grey","textBoxIcon","style","Input","VideoContainer","Video","video","YoutubeEmbed","videoID","_interopRequireDefault","_classnames","_excluded","_extends","assign","bind","apply","includes","_objectWithoutPropertiesLoose","getOwnPropertySymbols","s","propertyIsEnumerable","_objectWithoutProperties","classNames","classes","len","arg","argType","push","_toConsumableArray","split","classSep","inner","hasOwn","filter","_array","arrayUnique","join","_arrayLikeToArray","_arrayWithoutHoles","from","_iterableToArray","toString","test","_unsupportedIterableToArray","TypeError","_nonIterableSpread","self","indexOf","move","targetArray","pos1","pos2","tmp","parseInt","StatsContainer","StatsTitle","h2","StatsWrapper","Stat","numberAnimation","keyframes","StatNumber","step","Number","StatLabel","StatDescription","AgencyHero","sm","AgencyHeroContent","StickyContainer","AgencyName","MicroTextCaps","ContactButton","TextButton","_templateObject6","H3Condensed","AgentsContainer","smd","AgentsWrapper","xsm","AgentsCarousel","Agents","mainDoc","useSelector","state","document","page","agents","isEmpty","valittajat","sortedAgents","handleClick","clickTarget","hasWindow","location","href","canonicalPath","defaultValue","agent","AgentListItem","agentImageSize","halfBody","Swiper","swiperOptions","autoplay","delay","freeMode","grabCursor","loop","navigation","nextEl","prevEl","pagination","clickable","el","slidesPerGroup","slidesPerView","spaceBetween","Slide","lazy","ContactInfoMapWrapper","ContactInfo","ContactInfoBox","Legal","MicroText","AgencyMap","AddressInfo","title","titleTag","address","city","email","marketingName","postcode","itemProp","itemScope","itemType","Email","to","PhoneInfo","LegalInfo","businessId","companyName","Link","ContactInfoMap","coordinates","openingHours","phone","showPriceList","telPhone","CtaButton","preventDefault","Phone","single","withIcon","latitude","longitude","content","GoogleMap","addBounds","initialCenter","lat","lng","markers","zoom","Stats","soldCount","propertyCount","showPercentage","visibleCount","onScreen","useOnScreen","swiperOptionsBase","swiperOptionsOne","swiperOptionsTwo","450","580","860","1920","swiperOptionsThree","1130","swiperOptionsFourOrMore","forcedSlidesPerGroup","1300","CarouselContainer","LoadMoreBlock","fontFamily","base","count","getSwiperOptions","mousewheel","DynamicPropertyCarousel","forwardRef","agencyKey","small","properties","setProperties","totalCount","setTotalCount","skip","setSkip","allLoaded","setAllLoaded","isLoading","setLoading","loc","useLocation","isRendering","baseParams","agencyArea","excludeAgency","openhouses","openHouses","sort","sortOrder","loadProperties","skipAmount","__awaiter","params","data","searchService","fetchProperties","console","log","loadMore","newSkip","loadedProperties","results","matches","setTotalProperties","useLayoutEffect","swiper","update","wake","loading","onNoProperties","pathname","CarouselPlaceholder","reachEnd","onReachEnd","slideChange","onSlideChange","property","ApartmentBlock","FaIcon","icon","spin","CarouselTabsWrapper","CarouselTabs","CarouselHeader","CarouselTitle","h3","H3","CarouselButtons","AgencyProperties","agency","firstRef","secondRef","thirdRef","currentRef","setCurrentRef","contentfulTabs","setContentfulTabs","totalPropertiesSecond","setTotalPropertiesSecond","totalPropertiesThird","setTotalPropertiesThird","slideChanged","setSlideChanged","getSwiper","updateSwiper","setTimeout","updateSize","updateSlides","hideTab","ts","isVisible","currentValue","TabSwitcher","renderHidden","Tab","hidden","aria-label","slideToPrev","slidePrev","slideToNext","slideNext","TabPanel","whenActive","PropertyBlockContainer","Properties","agencyKeys","liftAgency","OwnerGreetingsContainer","OwnerGreetingsWrapper","OwnerGreetingsText","OwnerName","h4","OwnerBottom","OwnerTitle","p","OwnerImage","AgencySomeLinksWrapper","SomeLinks","AgencySomeLinks","socialAccounts","socialAccount","someIcon","SomeButton","url","rel","OwnerGreetings","agencyAgent","hasMultipleImages","activeImageIndex","setActiveImageIndex","intervalId","setInterval","previousIndex","clearInterval","defaultGreetings","news","description","greetingsText","firstName","lastName","agencyAgentItem","AgentImage","AgencyArticles","agencyArticles","Articles","ArticlesTitle","ArticleCards","articles","MainFormWrapper","FormHeader","condensed","AgencyContactForm","as","ScrollTarget","AContactForm","OtherAgenciesContainer","OtherAgenciesTitle","OtherAgenciesWrapper","AgencyCard","flipCard","flipBack","ImageOrMap","NameAndAddress","OtherAgencyCard","imageName","imagePath","urlParts","hovered","setHovered","hasMap","bubbles","onMouseLeave","onMouseEnter","Image","fallbackSrc","OtherAgencies","otherAgencies","otherAgency","AgencyContactBar","inHeader","scrollToContact","connect","supportedBlocks","MediaCarousel","TextContent","historyTracker","trackHistory","JSON","stringify","visitedAt","Date","getTime","dataLayerPush","documentID","hasHeroBackground","agencyHeroBackground","formElements","scrollTo","behavior","left","top","parentElement","offsetTop","sizeInfo","heroTitleColor","marginBottom","marginTop","StickyContactBar","Blocklist","blocks"],"mappings":"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","file":"assets/js/pages-AgencyPage.chunk.js?cb=ae2b1c12770b4cbbfc7a","sourcesContent":["\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _repeater = _interopRequireDefault(require(\"./lib/repeater\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }\nvar _default = exports.default = _repeater.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _react = _interopRequireWildcard(require(\"react\"));\nvar _render = _interopRequireWildcard(require(\"../utils/render\"));\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar FrontComponent = function FrontComponent(_ref) {\n var children = _ref.children,\n className = _ref.className,\n doc = _ref.doc,\n limit = _ref.limit,\n name = _ref.name,\n tag = _ref.tag,\n Tag = _ref.tagName;\n var value = doc[name];\n if (!value) {\n return null;\n }\n // Support admin data, where references are not automatically serialized. \"tag\" prop is mainly for internal use only.\n if (tag === \"Reference\" && value.references) {\n value = value.references;\n }\n if (!Array.isArray(value)) {\n return null;\n }\n if (limit && value.length > limit) {\n value = value.slice(0, limit);\n }\n return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, value.map(function (item, index) {\n if (!item || _typeof(item) !== \"object\") {\n return null;\n }\n item.$$index = index;\n return /*#__PURE__*/_react.default.createElement(_render.ItemContext.Provider, {\n value: item,\n key: \"r-\".concat(name, \"-\").concat(index)\n }, /*#__PURE__*/_react.default.createElement(Tag, {\n className: className\n }, /*#__PURE__*/_react.default.createElement(_render.ItemChildren, {\n keyPrefix: \"repeater\",\n item: item,\n children: children\n })));\n }));\n};\nvar Repeater = function Repeater(props) {\n return (0, _render.default)(props.tag || \"Repeater\", props, FrontComponent);\n};\nRepeater.displayName = \"Repeater\";\nRepeater.defaultProps = {\n className: \"\",\n tagName: \"div\"\n};\nvar _default = exports.default = Repeater;","import styled from \"styled-components\";\n\nexport const AddAgencyButton = styled.div`\n\t&:not(.show-reference) {\n\t\tcursor: pointer;\n\t display: block;\n\t position: relative;\n\t\tpadding: 16px 16px 15px;\n\t\tborder-radius: 4px;\n\t\tbackground-color: lightgray;\n\t\tmax-width: fit-content;\n\t\tmargin-bottom: 1.5rem;\n\t\ttransition: 0.2s;\n\t\t:hover {\n\t\t\tbackground-color: darkgray;\n\t\t}\n\n\t\t.r-content {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n`;\n\nexport const AdminAgencyList = styled.ul`\n\tdisplay: grid;\n\tgrid-template-columns: 1fr 1fr;\n\tgap: 0.5em;\n\tlist-style: none;\n\tpadding: 0;\n`;\n\nexport const AgencyOptions = styled.div`\n\t&.isAdmin {\n\t\talign-items: flex-start;\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tjustify-content: center;\n\t\twidth: 100%;\n\n\t\t&.centered {\n\t\t\talign-items: center;\n\t\t}\n\t}\n`;\n","import React, { useEffect, useRef, useState } from \"react\";\nimport { AddAgencyButton, AdminAgencyList, AgencyOptions } from \"./styles\";\nimport Reference from \"wake-react-components/reference\";\nimport { isAdmin } from \"wake-react-components/utils\";\n\ninterface IAgencySelectorProps {\n\tcentered?: boolean;\n\tchildren?: React.ReactNode;\n\tfields?: string[];\n\titem: any;\n}\n\nexport const AgencySelector = (props: IAgencySelectorProps) => {\n\n\tconst {\n\t\tcentered = false,\n\t\tchildren,\n\t\tfields = [\"key\", \"name\"],\n\t\titem,\n\t} = props;\n\n\tconst [ adminAgencies, setAdminAgencies ] = useState([]);\n\n\tuseEffect(() => {\n\t\tif (item.agencies) {\n\t\t\tsetAdminAgencies(\"references\" in item.agencies ? item.agencies.references : item.agencies);\n\t\t}\n\t}, [ item.agencies ]);\n\n\treturn \n\t\t{isAdmin && <>\n\t\t\t

Valitut myymälät ({adminAgencies.length} kpl):

\n\t\t\t\n\t\t\t\t{adminAgencies &&\n\t\t\t\t\tadminAgencies.length > 0 &&\n\t\t\t\t\tadminAgencies.map((adminAgency: any) => {\n\t\t\t\t\t\treturn
  • {adminAgency.name}
  • ;\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t
    \n\t\t}\n\t\t {\n\t\t\t\tconst button = e.currentTarget || e.target;\n\t\t\t\tif (button) {\n\t\t\t\t\tconst referenceClickArea = button.getElementsByClassName(\"r-reference__click-area\")[ 0 ];\n\t\t\t\t\tif (referenceClickArea) {\n\t\t\t\t\t\treferenceClickArea.click();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}}\n\t\t>\n\t\t\t{isAdmin && <>Muokkaa myymälöitä}\n\t\t\t{/*\n\t\t\t// @ts-ignore */}\n\t\t\t\n\t\t\t\t{children}\n\t\t\t\n\t\t\n\t
    ;\n\n};\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _reference = _interopRequireDefault(require(\"./lib/reference\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }\nvar _default = exports.default = _reference.default;","import styled, { css } from \"styled-components\";\nimport { color, media, textStyles, grid } from \"@utils/style-utils\";\n\nexport const BoxWrapper = styled.div`\n\tdisplay: flex;\n\tflex-direction: column;\n\tmargin: auto;\n\tmax-width: 1130px;\n\n\t${media.lg`\n\t\tflex-direction: row;\n\t\tjustify-content: space-between;\n\t`}\n`;\n\nexport const Box = styled.div`\n\tbackground: ${color(\"grey\", 7)};\n\tdisplay: flex;\n\tflex-direction: column;\n\tmargin: 0 auto 30px;\n\tmax-width: 484px;\n\tpadding: 40px 30px 50px;\n\twidth: 100%;\n\n\t${media.md`\n\t\tpadding: 48px 56px 56px;\n\t`}\n\n\t${media.lg`\n\t\tflex-basis: calc((100% - ${grid.gutterSmall}px) / 2);\n\t\tmargin: 0 0 20px;\n\t\tmax-width: 100%;\n\t`}\n\n\t${media.lgx`\n\t\tflex-basis: calc((100% - ${grid.gutter}px) / 2);\n\t\tpadding: 48px 64px 75px;\n\t`}\n`;\n\nexport const BoxTitle = styled.div`\n\th3 {\n\t\tbackground-position: left 22px;\n\t\tbackground-size: 46px;\n\t\tfont-size: 22px;\n\t\tfont-weight: 500;\n\t\tline-height: 1.25;\n\t\tmargin: 0 0 20px;\n\t\tpadding: 20px 0;\n\t\ttext-align: center;\n\n\t\t> span {\n\t\t\tdisplay: block;\n\t\t}\n\t}\n\n\th3[style*=\"background-image\"] {\n\t\tbackground-position: 50% 0;\n\t\tbackground-repeat: no-repeat;\n\t\tbackground-size: 40px;\n\t\tpadding: 64px 0 20px;\n\t}\n\n\t${props =>\n\t\tprops.isAdmin &&\n\t\tcss`\n\t\t\th3 > span {\n\t\t\t\tcursor: text;\n\t\t\t}\n\t\t`}\n`;\n\nexport const BoxText = styled.div`\n\ttext-align: center;\n\n\ta {\n\t\t${textStyles.AInline}\n\t}\n`;\n","import React from \"react\";\nimport { Wrapper, Container } from \"@components/Grid\";\n\nimport Text from \"wake-react-components/text\";\nimport Editor from \"wake-react-components/editor\";\nimport Background from \"wake-react-components/background\";\nimport { isAdmin } from \"wake-react-components/utils\";\nimport { getAssetUrl } from \"@utils\";\n\nimport { BoxWrapper, Box, BoxTitle, BoxText } from \"./styles\";\n\nconst TwoTextBoxes = (props: any = {}) => {\n\tconst {\n\t\titem: { elementID },\n\t\t...restProps\n\t} = props;\n\n\tif (elementID) {\n\t\trestProps[\"id\"] = elementID;\n\t}\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{[1, 2].map(i => (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t e.stopPropagation()}>\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t))}\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nTwoTextBoxes.settings = () => (\n\t
    \n\t\t\n\t\t\tElementin ID (esim ankkuriksi) \n\t\t\n\t\t\n\t
    \n);\n\nTwoTextBoxes.thumb = () => (\n\t
    \n\t\t\"Vaakalaatikot\n\t\t

    Vaakalaatikot x 2

    \n\t
    \n);\n\nexport default TwoTextBoxes;\n","import styled, { css } from \"styled-components\";\nimport { textStyles, media, color, grid, buttons } from \"@utils/style-utils\";\n\nexport const TextBoxesTitle = styled.div`\n\tpadding: 40px 0;\n\ttext-align: center;\n\n\t${media.md`\n\t\tpadding: 53px 0;\n\t`}\n\n\th2 {\n\t\t${textStyles.H2}\n\t\tmargin: 0;\n\t}\n`;\n\nexport const TextBoxesWrapper = styled.div`\n\tdisplay: flex;\n\tflex-direction: column;\n\tflex-wrap: wrap;\n\tjustify-content: center;\n\tpadding-bottom: 40px;\n\n\t${media.md`\n\t\tflex-direction: row;\n\t\tjustify-content: space-between;\n\t\tpadding-bottom: 53px;\n\t`}\n\n\t${props =>\n\t\tprops.invert &&\n\t\tcss`\n\t\t\t${TextBox} {\n\t\t\t\tbackground: ${color(\"white\")};\n\t\t\t\tborder: 1px solid ${color(\"grey\", 6)};\n\t\t\t}\n\t\t`}\n`;\n\nexport const TextBox = styled.div`\n\tbackground: ${color(\"grey\", 7)};\n display: flex;\n flex-direction: column;\n flex-wrap: wrap;\n margin-bottom: ${grid.gutterSmall}px;\n\tpadding: 40px 20px;\n\tposition: relative;\n\ttext-align: center;\n\n\t[ng-app=\"editor\"] & {\n\t\tpadding-top: 35px;\n\n\t\t.r-toolbar {\n\t\t\tposition: absolute;\n\t\t\tright: 0;\n\t\t\ttop: 0;\n\t\t}\n\t}\n\n\t${media.md`\n\t\t&:first-child:nth-last-child(1) {\n\t\t\tflex-basis: 100%;\n\t\t}\n\n\t\t&:first-child:nth-last-child(2),\n\t\t&:first-child:nth-last-child(2) ~ & {\n\t\t\tflex-basis: calc((100% - ${grid.gutter}px) / 2);\n\t\t}\n\n\t\t&:first-child:nth-last-child(3),\n\t\t&:first-child:nth-last-child(3) ~ & {\n\t\t\tflex-basis: 100%;\n\t\t\tmargin-bottom: ${grid.gutter}px;\n\t\t}\n\n\t\t&:first-child:nth-last-child(4),\n\t\t&:first-child:nth-last-child(4) ~ & {\n\t\t\tflex-basis: calc((100% - ${grid.gutter}px) / 2);\n\t\t}\n\t`}\n\n\t${media.lg`\n\t\tpadding: 40px 20px;\n\n\t\t&:first-child:nth-last-child(1) {\n\t\t\tflex-basis: 100%;\n\t\t}\n\n\t\t&:first-child:nth-last-child(2),\n\t\t&:first-child:nth-last-child(2) ~ & {\n\t\t\tflex-basis: calc((100% - ${grid.gutter}px) / 2);\n\t\t}\n\n\t\t&:first-child:nth-last-child(3),\n\t\t&:first-child:nth-last-child(3) ~ & {\n\t\t\tflex-basis: calc((100% - ${grid.gutterSmall * 2}px) / 3);\n\t\t}\n\n\t\t&:first-child:nth-last-child(4),\n\t\t&:first-child:nth-last-child(4) ~ & {\n\t\t\tflex-basis: calc((100% - ${grid.gutter}px) / 2);\n\t\t}\n\t`}\n\n\t${media.lgx`\n\t\t&:first-child:nth-last-child(4),\n\t\t&:first-child:nth-last-child(4) ~ & {\n\t\t\tflex-basis: calc((100% - ${grid.gutter * 3}px) / 4);\n\t\t}\n\t`}\n`;\n\nexport const TextBoxIcon = styled.div`\n\tbackground-position: center;\n\tbackground-repeat: no-repeat;\n\tbackground-size: 50px;\n\tdisplay: inline-block;\n\theight: 60px;\n\tmargin: 0 auto 20px;\n\twidth: 60px;\n\n\t/* &:empty {\n\t\tdisplay: none;\n\t} */\n`;\n\nexport const TextBoxTitle = styled.div`\n\t/* flex-grow: 1; */\n\n\th5 {\n\t\tfont-size: 22px;\n\t\tfont-weight: 500;\n\t\tline-height: 1.25;\n\t\tmargin: 0;\n\t}\n`;\n\nexport const TextBoxContent = styled.div`\n\t${textStyles.PSmall}\n\n\ta:not(.cta) {\n\t\t${textStyles.AInline}\n\t}\n\n\t> div {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tflex-grow: 1;\n\t}\n\n\ta.cta {\n\t\t${buttons.textLinkPrimary}\n\t}\n`;\n","import React, { Fragment, useState, useEffect, useRef } from \"react\";\nimport { Wrapper, Container } from \"@components/Grid\";\nimport Input from \"wake-react-components/input\";\nimport Text from \"wake-react-components/text\";\nimport Editor from \"wake-react-components/editor\";\nimport Repeater from \"wake-react-components/repeater\";\nimport { isAdmin } from \"wake-react-components/utils\";\nimport Background from \"wake-react-components/background\";\nimport { getID } from \"@components/ContentBlocks/Base\";\nimport debounce from \"lodash-es/debounce\";\nimport { getAssetUrl } from \"@utils\";\n\nimport { TextBoxesTitle, TextBoxesWrapper, TextBox, TextBoxIcon, TextBoxTitle, TextBoxContent } from \"./styles\";\n\nfunction calculateTallestTitle(items: HTMLDivElement[]) {\n\tlet tallest = 0;\n\n\tfor (const item of items) {\n\t\tconst { height } = item.children[0].getBoundingClientRect();\n\t\ttallest = height > tallest ? height : tallest;\n\t}\n\n\treturn tallest;\n}\n\nconst breakpoints = [9999, 768, 991, 1120];\n\nconst TextBoxes = (props: any = {}) => {\n\tconst {\n\t\titem: { hasGradientBg, textBoxesTitle, textBoxes },\n\t\t...restProps\n\t} = props;\n\n\tconst id = getID(props);\n\n\tconst breakpoint = breakpoints[(textBoxes || []).length - 1] || 9999;\n\n\tconst ref = useRef(null);\n\tconst [tallest, setTallest] = useState(null);\n\n\tconst makeSameHeight = (elems: HTMLDivElement[]) => {\n\t\tif (isAdmin) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (elems && elems.length > 0) {\n\t\t\tif (window.innerWidth > breakpoint) {\n\t\t\t\tsetTallest(calculateTallestTitle(elems));\n\t\t\t} else {\n\t\t\t\tsetTallest(null);\n\t\t\t}\n\t\t}\n\t};\n\n\tconst onResize = debounce(() => {\n\t\tif (ref && ref.current) {\n\t\t\tconst elems = [...ref.current.querySelectorAll(\".textbox-title\")];\n\t\t\tmakeSameHeight(elems);\n\t\t}\n\t}, 100);\n\n\tuseEffect(() => {\n\t\twindow.addEventListener(\"resize\", onResize);\n\t\tif (ref && ref.current) {\n\t\t\tconst elems = [...ref.current.querySelectorAll(\".textbox-title\")];\n\t\t\tmakeSameHeight(elems);\n\t\t}\n\n\t\treturn () => {\n\t\t\twindow.removeEventListener(\"resize\", onResize);\n\t\t};\n\t}, [ref]);\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{(isAdmin || (!isAdmin && textBoxesTitle)) && (\n\t\t\t\t\t\n\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t

    \n\t\t\t\t\t
    \n\t\t\t\t)}\n\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{({ item }) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{(isAdmin || (!isAdmin && item.textBoxIcon)) && (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t);\n};\n\nTextBoxes.thumb = () => (\n\t
    \n\t\t\"Pystylaatikot\"\n\t\t

    Pystylaatikot

    \n\t
    \n);\n\nTextBoxes.settings = () => (\n\t
    \n\t\t\n\t\t
    \n\t\t\n\t\t\tElementin ID (esim ankkuriksi) \n\t\t\n\t\t\n\t
    \n);\n\nexport default TextBoxes;\n","import styled, { css } from \"styled-components\";\nimport { media, color } from \"@utils/style-utils\";\n\nexport const VideoContainer = styled.div`\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 1em;\n\tmargin: 0 auto 50px;\n\tmax-width: min(896px, 95vw);\n\n\tlabel span {\n\t\tfont-weight: normal;\n\t}\n\n\t> div {\n\t\tdisplay: flex;\n\t\tflex-basis: 100%;\n\t\tjustify-content: center;\n\n\t\t.yt-embed {\n\t\t\tbackground-color: ${color(\"blue\", 4)};\n\t\t}\n\t}\n\n\t${media.md`\n\t\tmargin: 0 auto 90px;\n\t`};\n`;\n","import React from \"react\";\nimport { Container, Wrapper } from \"@components/Grid\";\nimport Text from \"wake-react-components/text\";\nimport { isAdmin } from \"wake-react-components/utils\";\nimport YoutubeEmbed from \"@components/Embeds/Youtube\";\nimport { getAssetUrl } from \"@utils\";\nimport { VideoContainer } from \"./styles\";\n\nconst Video = (props: any = {}) => {\n\tconst {\n\t\titem: { video },\n\t\t...restProps\n\t} = props;\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{isAdmin && }\n\t\t\t\t\t{video && }\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nVideo.thumb = () => (\n\t
    \n\t\t\"Video\"\n\t\t

    Video

    \n\t
    \n);\n\nVideo.settings = () => (\n\t
    \n\t\t\n\t\t\tElementin ID (esim. ankkuriksi) \n\t\t\n\t\t\n\t
    \n);\n\nexport default Video;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _classnames = _interopRequireDefault(require(\"../utils/classnames\"));\nvar _repeater = _interopRequireDefault(require(\"../repeater\"));\nvar _excluded = [\"children\", \"className\"];\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nvar Reference = function Reference(_ref) {\n var children = _ref.children,\n className = _ref.className,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/_react.default.createElement(\"div\", {\n className: (0, _classnames.default)(className, \"r-reference\", \"r-content\")\n }, /*#__PURE__*/_react.default.createElement(_repeater.default, _extends({}, props, {\n tag: \"Reference\"\n }), children));\n};\nReference.displayName = \"Reference\";\nvar _default = exports.default = Reference;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = classNames;\nvar _array = require(\"./array\");\nfunction _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _iterableToArray(r) { if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r); }\nfunction _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\n/*!\n Classnames, Copyright (c) 2018 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n\n Timo Partti:\n This is a modified version of classnames library\n\n Mainly here because I couldn't export the classnames lib with the component library. Also made some changes.\n*/\n\nvar hasOwn = {}.hasOwnProperty;\nvar classSep = /\\s+/g;\nfunction classNames() {\n var classes = [];\n for (var i = 0, len = arguments.length; i < len; i++) {\n var arg = arguments[i];\n if (!arg) continue;\n var argType = _typeof(arg);\n if (argType === \"string\") {\n classes.push.apply(classes, _toConsumableArray(arg.split(classSep)));\n } else if (argType === \"number\") {\n classes.push(arg);\n } else if (Array.isArray(arg) && arg.length) {\n var inner = classNames.apply(null, arg);\n if (inner) {\n classes.push(inner);\n }\n } else if (argType === \"object\") {\n for (var key in arg) {\n if (hasOwn.call(arg, key) && arg[key]) {\n classes.push(key);\n }\n }\n }\n }\n return classes.filter(_array.arrayUnique).join(\" \");\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.arrayUnique = arrayUnique;\nexports.move = move;\n/**\n * Modify given array by moving item from first given position to second.\n *\n * based from: http://stackoverflow.com/questions/5306680/move-an-array-element-from-one-array-position-to-another\n * fixed moving last entry of array\n *\n * @param {Array} targetArray\n * @param {number|string} pos1\n * @param {number|string} pos2\n */\nfunction move(targetArray, pos1, pos2) {\n var i, tmp;\n pos1 = parseInt(pos1, 10);\n pos2 = parseInt(pos2, 10);\n if (pos1 !== pos2 && 0 <= pos1 && pos1 < targetArray.length && 0 <= pos2 && pos2 < targetArray.length) {\n tmp = targetArray[pos1];\n if (pos1 < pos2) {\n for (i = pos1; i < pos2; i++) {\n targetArray[i] = targetArray[i + 1];\n }\n } else {\n for (i = pos1; i > pos2; i--) {\n targetArray[i] = targetArray[i - 1];\n }\n }\n targetArray[pos2] = tmp;\n }\n}\nfunction arrayUnique(value, index, self) {\n return self.indexOf(value) === index;\n}","import styled, { keyframes } from \"styled-components\";\nimport { color, media } from \"@utils/style-utils\";\n\nexport const StatsContainer = styled.div`\n\talign-items: center;\n\tdisplay: flex;\n\tflex-direction: column;\n\tjustify-content: center;\n\n\t&.has-data {\n\t\tmargin-bottom: 9em;\n\t}\n`;\n\nexport const StatsTitle = styled.h2`\n`;\n\n\nexport const StatsWrapper = styled.div`\n\talign-items: flex-start;\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 3em;\n\tjustify-content: space-evenly;\n\n\t${media.md`\n\t\tflex-direction: row;\n\t\tjustify-content: center;\n\t`};\n`;\n\nexport const Stat = styled.div`\n\talign-items: center;\n\tdisplay: flex;\n\tgap: 10px;\n\tflex-direction: column;\n\tjustify-content: center;\n`;\n\nconst numberAnimation = keyframes`\n\t0% {\n\t\ttransform: translateY(-5%) scale(0);\n\t}\n\t50% {\n\t\ttransform: translateY(0) scale(2);\n\t}\n\t75% {\n\t\ttransform: translateY(-5%) scale(0.75);\n\t}\n\t100% {\n\t\ttransform: translateY(0) scale(1);\n\t}\n`;\n\nexport const StatNumber = styled.div`\n\tcolor: ${color(\"greenBright\", 1)};\n\tfont-size: 8rem;\n\ttransform: translateY(100%) scale(0);\n\n\t&.number-visible {\n\t\tanimation: ${numberAnimation} 1666ms ease-in-out forwards;\n\t}\n\t&.number-delay {\n\t\tanimation-delay: 666ms;\n\t}\n\t&.number-delay-2 {\n\t\tanimation-delay: 1332ms;\n\t}\n\n\t${props => props.step\n\t\t? `\n\t\t\t&.number-visible {\n\t\t\t\tanimation-delay : calc(${Number.parseInt(props.step)} * 400ms);\n\t\t\t}\n\t\t`\n\t\t: null\n\t};\n`;\n\nexport const StatLabel = styled.div`\n\tcolor: ${color(\"grey\", 1)};\n\tfont-size: 1.7rem;\n`;\n\nexport const StatDescription = styled.div`\n\tcolor: ${color(\"greenDark\", 2)};\n\tfont-size: 1.4rem;\n\tmargin-top: 0;\n`;\n","import styled from \"styled-components\";\nimport { color, media, textStyles } from \"@utils/style-utils\";\nimport { Container } from \"@components/Grid\";\nimport TextButton from \"@components/Buttons/TextButton\";\n\nexport const AgencyHero = styled.div`\n\tbackground: ${color(\"beige\", 4)};\n\tbackground-position: center center;\n\tbackground-repeat: no-repeat;\n\tbackground-size: auto 100%;\n\tmargin-bottom: 36px;\n\tmin-height: 300px;\n\tpadding: 80px 0 20px;\n\n\t${media.sm`\n\t\tmargin-bottom: 60px;\n\t\tpadding: 110px 0 40px;\n\t`};\n\t${media.md`\n\t\tmargin-bottom: 120px;\n\t\tpadding: 130px 0 0;\n\t`};\n\t${media.lg`\n\t\tmargin-bottom: 110px;\n\t\tmin-height: 540px;\n\t\tpadding: 194px 0 147px;\n\t`};\n\n\t&.fallback-background {\n\t\tbackground-position: bottom right;\n\t\tbackground-size: 50vw auto;\n\t}\n`;\n\nexport const AgencyHeroContent = styled.div`\n\tposition: relative;\n\twidth: 100%;\n\n\th1 {\n\t\tmargin: 0 0 20px;\n\n\t\t&.black-shadow {\n\t\t\ttext-shadow: 3px 3px 3px ${color(\"white\")};\n\t\t}\n\n\t\t&.white, &.white-shadow {\n\t\t\tcolor: ${color(\"white\")};\n\n\t\t\t&.white-shadow {\n\t\t\t\ttext-shadow: 3px 3px 3px ${color(\"grey\", 1)};\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport const StickyContainer = styled(Container)`\n\talign-items: center;\n\tdisplay: flex;\n\tgap: 1em;\n\tjustify-content: space-between;\n\tmin-height: 59px;\n\tpadding: 0;\n\n\t&.static {\n\t\tmargin-top: 65px;\n\t\tpadding-bottom: 1em;\n\t\tpadding-top: 1em;\n\t}\n\n\t.spacer {\n\t\tdisplay: none;\n\t\tflex: 1 1 auto;\n\t}\n\n\t.phone-button {\n\t\tmin-height: 38px;\n\t\tpadding: 4px 16px;\n\t\twhite-space: nowrap;\n\n\t\ta {\n\t\t\talign-items: center;\n\t\t\tcolor: ${color(\"white\")};\n\t\t\tdisplay: flex;\n\t\t\tgap: 1em;\n\t\t\tjustify-content: flex-start;\n\t\t}\n\n\t\t.icon {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n\n\t${media.md`\n\t\tmin-height: 77px;\n\n\t\t.spacer {\n\t\t\tdisplay: inline-block;\n\t\t}\n\t\t.phone-button {\n\t\t\tmin-height: 64px;\n\t\t\tpadding: 16px 16px 15px;\n\n\t\t\t.icon {\n\t\t\t\tdisplay: inline-block;\n\t\t\t}\n\t\t}\n\t`};\n`;\n\nexport const AgencyName = styled.div`\n\t${textStyles.MicroTextCaps};\n\tcolor: ${color(\"gray\", 2)};\n\tdisplay: none;\n\tfont-size: 1.7rem;\n\n\t${media.md`\n\t\tdisplay: block;\n\t`};\n`;\n\nexport const ContactButton = styled(TextButton)`\n\tborder: 1px solid ${color(\"greenBright\", 1)};\n\tborder-radius: 4px;\n\tmin-height: 38px;\n\tpadding: 4px 16px;\n\twhite-space: nowrap;\n\n\t&:after {\n\t\tdisplay: none;\n\t}\n\n\t${media.md`\n\t\tmin-height: 64px;\n\t\tpadding: 16px 16px 15px;\n\n\t\t&:after {\n\t\t\tdisplay: inline-block;\n\t\t}\n\t`};\n\n`;\n\nexport const InfoBox = styled.div`\n\tborder: 1px solid ${color(\"blue\", 2)};\n\tborder-radius: 4px;\n\tmargin-bottom: 16px;\n\tpadding: 24px;\n\n\th4 {\n\t\t${textStyles.MicroTextCaps};\n\t\tfont-weight: bold;\n\t\tmargin: 0 0 15px;\n\t}\n\n\tp {\n\t\t${textStyles.PSmall};\n\t\tcolor: ${color(\"grey\", 2)};\n\t\tmargin: 0 0 15px;\n\n\t\t&:last-of-type {\n\t\t\tmargin-bottom: 0;\n\t\t}\n\n\t\ta {\n\t\t\tcolor: ${color(\"grey\", 1)};\n\t\t\ttext-decoration: none;\n\t\t\ttransition: color 150ms;\n\n\t\t\t&:not(:first-of-type) {\n\t\t\t\t&::before {\n\t\t\t\t\tcontent: \"\\\\A\";\n\t\t\t\t\twhite-space: pre;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t&[itemprop=\"email\"] {\n\t\t\t\ttext-decoration: underline;\n\t\t\t}\n\n\t\t\t&:hover {\n\t\t\t\tcolor: ${color(\"greenBright\", 1)};\n\t\t\t}\n\t\t}\n\t}\n\n\t&.telephones {\n\t\ta {\n\t\t\t${textStyles.H3Condensed};\n\t\t\tmargin-bottom: 5px;\n\n\t\t\tspan {\n\t\t\t\tdisplay: inline-block;\n\t\t\t\tmargin-bottom: 5px;\n\t\t\t}\n\t\t}\n\n\t\tp:first-of-type {\n\t\t\tpadding-left: 25px;\n\t\t\tposition: relative;\n\t\t}\n\n\t\t.icon {\n\t\t\tcolor: ${color(\"grey\", 1)};\n\t\t\tfont-size: 16px;\n\t\t\tleft: 0;\n\t\t\tposition: absolute;\n\t\t\ttop: 2px;\n\n\t\t\tsvg {\n\t\t\t\tmax-width: 16px;\n\t\t\t}\n\t\t}\n\t}\n`;\n","import styled from \"styled-components\";\nimport { color, media } from \"@utils/style-utils\";\nimport { Container } from \"@components/Grid\";\n\nexport const AgentsContainer = styled(Container)`\n\tmargin: 0 2em 2em 2em;\n\tpadding: 0;\n\n\th3 {\n\t\ttext-align: center;\n\t}\n\n\t${media.lg`\n\t\tmargin: 0 0 2em 0;\n\t`};\n\n\t.agent-list-item {\n\t\tbackground-color: ${color(\"white\")};\n\t\tflex-basis: 100%;\n\t\tmax-width: 312px;\n\t\tmin-width: 312px;\n\n\t\t// (100% - (number of boxes * padding+border around each box) - gap) / number of boxes\n\t\t${media.sm`\n\t\t\tflex-basis: calc((100% - (2 * 38px) - 3em) / 2);\n\t\t`};\n\t\t${media.smd`\n\t\t\tflex-basis: calc((100% - (3 * 38px) - 6em) / 3);\n\t\t`};\n\t\t${media.md`\n\t\t\tflex-basis: calc((100% - (4 * 38px) - 9em) / 4);\n\t\t`};\n\n\t\t.agent-recommendation {\n\t\t\tfont-size: 18px;\n\t\t\tline-height: 22px;\n\n\t\t\tspan {\n\t\t\t\tfont-size: 22px;\n\t\t\t\tsvg {\n\t\t\t\t\tmax-width: 22px;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t.agent-header {\n\t\t\talign-items: flex-start;\n\t\t\tborder-bottom: none;\n\t\t\tflex-direction: column;\n\t\t\tmargin-top: 1em;\n\t\t}\n\n\t\t.agent-portrait {\n\t\t\talign-items: stretch;\n\t\t\tdisplay: flex;\n\t\t\theight: auto;\n\t\t\tjustify-content: center;\n\t\t\tmargin-bottom: 1em;\n\t\t\tmargin-right: 0;\n\t\t\tmax-height: 282px;\n\t\t\tmax-width: 286px;\n\t\t\twidth: 100%;\n\n\t\t\t&::before {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\n\t\t\timg {\n\t\t\t\tbottom: unset;\n\t\t\t\theight: unset;\n\t\t\t\tleft: unset;\n\t\t\t\tmax-width: 100%;\n\t\t\t\tposition: relative;\n\t\t\t\tright: unset;\n\t\t\t\ttop: unset;\n\t\t\t\twidth: unset;\n\n\t\t\t\t&[src*=\"backup\"] {\n\t\t\t\t\theight: unset;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t.agent-title:not(.has-extra) {\n\t\t\tmin-height: 55px; // to keep the height consistent\n\t\t}\n\n\t\t.agent-read-more {\n\t\t\tcolor: ${color(\"greenBright\", 1)};\n\t\t}\n\t}\n`;\nexport const AgentsWrapper = styled.div`\n\talign-items: flex-start;\n\tdisplay: none;\n\tflex-wrap: wrap;\n\tgap: 3em;\n\tjustify-content: flex-start;\n\tmargin-bottom: 6em;\n\tposition: relative;\n\n\t${media.xsm`\n\t\tdisplay: flex;\n\t`};\n\n\t&:before {\n\t\tbackground-color: ${color(\"beige\", 4)};\n\t\tcontent: \"\";\n\t\tdisplay: block;\n\t\theight: calc(100% + 3em);\n\t\tleft: -25vw;\n\t\tposition: absolute;\n\t\ttop: 3em;\n\t\twidth: 200vw;\n\t}\n`;\n\nexport const AgentsCarousel = styled.div`\n\tdisplay: block;\n\n\t${media.xsm`\n\t\tdisplay: none;\n\t`};\n\n\t.swiper-slide {\n\t\theight: auto;\n\n\t\t> div {\n\t\t\theight: 100%;\n\t\t}\n\n\t\t.agent-list-item {\n\t\t\tflex-basis: 100%;\n\t\t}\n\t}\n\n\t.swiper-button-next,\n\t.swiper-button-prev {\n\t\tdisplay: none !important;\n\t}\n\n\t.swiper-pagination {\n\t\tpadding: 30px 0 15px;\n\t\tposition: relative;\n\n\t\t.swiper-pagination-bullet {\n\t\t\tbackground: ${color(\"white\")};\n\t\t\tborder: 1px solid ${color(\"greenBright\", 1)};\n\t\t\tcursor: pointer;\n\t\t\theight: 8px;\n\t\t\topacity: 1;\n\t\t\ttransition: background-color 300ms;\n\t\t\twidth: 8px;\n\n\t\t\t&.swiper-pagination-bullet-active {\n\t\t\t\tbackground: ${color(\"greenBright\", 1)};\n\t\t\t}\n\t\t}\n\t}\n`;\n","import React from \"react\";\nimport { getAssetUrl, hasWindow } from \"@utils\";\nimport Text from \"wake-react-components/text\";\nimport { useSelector } from \"react-redux\";\nimport { Wrapper } from \"@components/Grid\";\nimport { AgentsCarousel, AgentsContainer, AgentsWrapper } from \"./styles\";\nimport AgentListItem from \"@components/AgentList/AgentListItem\";\nimport { isAdmin } from \"wake-react-components/utils\";\nimport { getID } from \"@components/ContentBlocks/Base\";\nimport { Slide, Swiper } from \"react-dynamic-swiper\";\nimport isEmpty from \"lodash-es/isEmpty\";\n\nconst Agents = ({ item }) => {\n\n\tconst mainDoc: any = useSelector(state => state && \"document\" in state ? (state as any).document : null);\n\tconst { page } = mainDoc;\n\tconst agents = page && !isEmpty(page.valittajat) ? page.valittajat : (mainDoc.sortedAgents || []);\n\n\tconst handleClick = (clickTarget: any) => {\n\t\tif (isAdmin) {\n\t\t\treturn;\n\t\t}\n\t\tif (hasWindow) {\n\t\t\tlocation.href = clickTarget.canonicalPath;\n\t\t}\n\t};\n\n\tif ((!Array.isArray(agents) || agents.length === 0) && !isAdmin) {\n\t\treturn null;\n\t}\n\n\tconst id = getID(item);\n\n\tconst swiperOptions: any = {\n\t\tautoplay: {\n\t\t\tdelay: 5000,\n\t\t},\n\t\tfreeMode: true,\n\t\tgrabCursor: true,\n\t\tloop: true,\n\t\tnavigation: {\n\t\t\tnextEl: \".swiper-btn-next\",\n\t\t\tprevEl: \".swiper-btn-prev\",\n\t\t},\n\t\tpagination: {\n\t\t\tclickable: true,\n\t\t\tel: \".swiper-pagination\",\n\t\t\ttype: \"bullets\",\n\t\t},\n\t\tslidesPerGroup: 1,\n\t\tslidesPerView: 1.1,\n\t\tspaceBetween: 10,\n\t};\n\n\treturn \n\t\t\n\t\t\t

    \n\t\t\t\n\t\t\t\t{Array.isArray(agents) && agents.map((agent: IAgent) => {\n\t\t\t\t\treturn ;\n\t\t\t\t})}\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{Array.isArray(agents) && agents.map((agent: IAgent) => {\n\t\t\t\t\t\treturn \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t;\n\t\t\t\t\t})}\n\t\t\t\t\n\t\t\t\n\t\t
    \n\t
    ;\n\n};\n\nAgents.thumb = () => (\n\t
    \n\t\t\"Välittäjänosto\"\n\t\t

    Välittäjänosto

    \n\t
    \n);\n\nAgents.settings = () => (\n\t
    \n\t\tBlockin ID (esim. ankkuriksi) \n\t\t
    \n\t
    \n);\n\nexport default Agents;\n","import styled from \"styled-components\";\nimport { color, media, textStyles } from \"@utils/style-utils\";\n\nexport const ContactInfoMapWrapper = styled.div`\n\talign-items: flex-start;\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 3em;\n\tjustify-content: space-between;\n\tmargin: 6em auto;\n\tmax-width: 896px;\n\tpadding: 0 20px;\n\n\t${media.md`\n\t\tflex-direction: row;\n\t`};\n`;\n\nexport const ContactInfo = styled.div`\n\tmax-width: 341px;\n\n\t.phone-button {\n\t\tmin-height: 64px;\n\n\t\ta {\n\t\t\talign-items: center;\n\t\t\tcolor: ${color(\"white\")};\n\t\t\tdisplay: flex;\n\t\t\tgap: 1em;\n\t\t\tjustify-content: flex-start;\n\t\t}\n\n\t\tmargin-bottom: 3em;\n\t}\n`;\n\nexport const ContactInfoBox = styled.div`\n\tmargin-bottom: 3em;\n\n\th4 {\n\t\t${textStyles.MicroTextCaps};\n\t\tfont-weight: bold;\n\t\tmargin: 0 0 15px;\n\t}\n\n\tp {\n\t\t${textStyles.PSmall};\n\t\tcolor: ${color(\"grey\", 2)};\n\t\tmargin: 0;\n\n\t\t&:last-of-type {\n\t\t\tmargin-bottom: 0;\n\t\t}\n\n\t\ta {\n\t\t\tcolor: ${color(\"grey\", 1)};\n\t\t\ttext-decoration: none;\n\t\t\ttransition: color 150ms;\n\n\t\t\t&:not(:first-of-type) {\n\t\t\t\t&::before {\n\t\t\t\t\tcontent: \"\\\\A\";\n\t\t\t\t\twhite-space: pre;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t&[itemprop=\"email\"] {\n\t\t\t\ttext-decoration: underline;\n\t\t\t}\n\n\t\t\t&:hover {\n\t\t\t\tcolor: ${color(\"greenBright\", 1)};\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport const Legal = styled.div`\n\tmargin: 40px 0 40px;\n\n\tp {\n\t\t${textStyles.MicroText};\n\t\tcolor: ${color(\"grey\", 3)};\n\t\tmargin: 0;\n\n\t\t&:last-of-type {\n\t\t\tmargin-top: 6px;\n\t\t}\n\t}\n\n\ta {\n\t\tcolor: ${color(\"greenDark\", 1)};\n\t\ttext-decoration: none;\n\n\t\t&:hover {\n\t\t\tcolor: ${color(\"greenDark\", 2)};\n\t\t\ttext-decoration: underline;\n\t\t}\n\t}\n`;\n\nexport const AgencyMap = styled.div`\n\t//max-height: 462px;\n\toverflow: hidden;\n\tposition: relative;\n\twidth: 100%;\n`;\n","import React, { Fragment } from \"react\";\nimport { IDocument } from \"@redux/document\";\nimport Email from \"@components/Info/Email\";\n\ninterface IAddressInfoProps {\n\tdoc: IDocument | IAgency;\n\ttitle?: string;\n\ttitleTag?: string;\n}\n\nconst AddressInfo = (props: IAddressInfoProps) => {\n\tconst { doc, title, titleTag } = props;\n\tconst { address, city, email, marketingName, postcode } = doc;\n\tconst Tag: any = titleTag || \"h1\";\n\n\treturn (\n\t\t\n\t\t\t{title && {title}}\n\t\t\t

    \n\t\t\t\tKiinteistömaailma {marketingName}\n\t\t\t\t
    \n\t\t\t\t{address}\n\t\t\t\t
    \n\t\t\t\t{postcode} {city}\n\t\t\t\t
    \n\t\t\t

    \n\t\t\t

    \n\t\t\t\t\n\t\t\t

    \n\t\t
    \n\t);\n};\n\nexport default AddressInfo;\n","import React, { Fragment } from \"react\";\nimport Phone from \"@components/Info/Phone\";\n\nconst PhoneInfo = ({ doc, children = null }) => {\n\tconst { phone, phone2, phoneInfo, phoneInformation, telPhone } = doc;\n\treturn (\n\t\t\n\t\t\t

    \n\t\t\t\t\n\t\t\t\t{phone2 && }\n\n\t\t\t\t{children && children}\n\t\t\t

    \n\t\t\t{(phoneInfo || phoneInformation) && (\n\t\t\t\t

    \n\t\t\t\t\t{phoneInformation ? phoneInformation : phoneInfo}\n\t\t\t\t

    \n\t\t\t)}\n\t\t
    \n\t);\n};\n\nexport default PhoneInfo;\n","import React, { Fragment } from \"react\";\nimport { IDocument } from \"@redux/document\";\n\nimport { Link } from \"react-router-dom\";\n\ninterface IProps {\n\tdoc: IDocument;\n}\n\nconst LegalInfo = ({ doc }: IProps) => {\n\tconst { businessId, companyName, canonicalPath } = doc;\n\n\treturn (\n\t\t\n\t\t\t

    {companyName}

    \n\t\t\t

    {businessId}

    \n\t\t\t

    \n\t\t\t\tTietosuojaseloste ›\n\t\t\t

    \n\t\t
    \n\t);\n};\n\nexport default LegalInfo;\n","import React from \"react\";\nimport { getAssetUrl } from \"@utils\";\nimport Text from \"wake-react-components/text\";\nimport { getID } from \"@components/ContentBlocks/Base\";\nimport { useSelector } from \"react-redux\";\nimport Phone from \"@components/Info/Phone\";\nimport { AgencyMap, ContactInfo, ContactInfoBox, ContactInfoMapWrapper, Legal } from \"./styles\";\nimport { Container } from \"@components/Grid\";\nimport CtaButton from \"@components/Buttons/CtaButton\";\nimport { AddressInfo, LegalInfo } from \"@components/Agency\";\nimport GoogleMap from \"@components/GoogleMap\";\nimport { Link } from \"react-router-dom\";\n\nconst ContactInfoMap = ({ item }) => {\n\n\tconst mainDoc: any = useSelector(state => state && \"document\" in state ? (state as any).document : null);\n\tconst id = getID(item);\n\tconst { coordinates, openingHours, phone, showPriceList, telPhone } = mainDoc;\n\n\treturn \n\t\t\n\t\t\t\n\t\t\t\t{phone && {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\tlocation.href = \"tel:\" + telPhone;\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t\n\t\t\t\t}\n\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t{openingHours && (\n\t\t\t\t\t\n\t\t\t\t\t\t

    Tavoitat meidät

    \n\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t{openingHours}\n\t\t\t\t\t\t

    \n\t\t\t\t\t
    \n\t\t\t\t)}\n\n\t\t\t\t{showPriceList && Palveluhinnasto ›}\n\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t{coordinates && coordinates.latitude && coordinates.longitude && (\n\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t)}\n\t\t
    \n\t
    ;\n\n};\n\nContactInfoMap.thumb = () => (\n\t
    \n\t\t\"Yhteystiedot\n\t\t

    Yhteystiedot ja kartta

    \n\t
    \n);\n\nContactInfoMap.settings = () => (\n\t
    \n\t\tBlockin ID (esim. ankkuriksi) \n\t\t
    \n\t
    \n);\n\nexport default ContactInfoMap;\n","import React, { useEffect, useState, useRef } from \"react\";\nimport { getAssetUrl, hasWindow } from \"@utils\";\nimport Text from \"wake-react-components/text\";\nimport { useSelector } from \"react-redux\";\nimport { Stat, StatLabel, StatNumber, StatsContainer, StatsTitle, StatsWrapper, StatDescription } from \"./styles\";\nimport { getID } from \"@components/ContentBlocks/Base\";\nimport useOnScreen from \"@hooks/use-on-screen\";\n\nconst Stats = ({ item }) => {\n\n\tconst mainDoc: any = useSelector(state => state && \"document\" in state ? (state as any).document : null);\n\tconst { soldCount, propertyCount, showPercentage, marketingName } = mainDoc;\n\tconst visibleCount = [ soldCount, propertyCount, showPercentage ].filter(value => !!value).length;\n\n\tconst ref = useRef(null);\n\tconst onScreen = useOnScreen(ref, \"0px\", false);\n\n\tuseEffect(() => {\n\t\tif (!hasWindow) {\n\t\t\treturn;\n\t\t}\n\t}, [ onScreen ]);\n\n\tconst id = getID(item);\n\n\treturn \n\t\t{!!visibleCount && \n\t\t\t\n\t\t}\n\t\t\n\t\t\t{!!propertyCount && \n\t\t\t\t{propertyCount}\n\t\t\t\tkohdetta myynnissä\n\t\t\t}\n\t\t\t{!!soldCount && \n\t\t\t\t\n\t\t\t\t\t{soldCount}\n\t\t\t\t\n\t\t\t\tmyydyt kohteet\n\t\t\t\tviim. 12kk aikana\n\t\t\t}\n\t\t\t{!!showPercentage && \n\t\t\t\t\n\t\t\t\t\t{showPercentage}%\n\t\t\t\t\n\t\t\t\tsuosittelee välittäjiämme\n\t\t\t}\n\t\t\n\t;\n\n};\n\nStats.thumb = () => (\n\t
    \n\t\t\"Myymälän\n\t\t

    Myymälän tilastot

    \n\t
    \n);\n\nStats.settings = () => (\n\t
    \n\t\tBlockin ID (esim. ankkuriksi) \n\t\t
    \n\t
    \n);\n\nexport default Stats;\n","export const swiperOptionsBase = {\n\tgrabCursor: true,\n\tpagination: false,\n};\n\nexport const swiperOptionsOne = {\n\t...swiperOptionsBase,\n\tloop: false,\n\tslidesPerGroup: 1,\n\tslidesPerView: 1,\n\tspaceBetween: 40,\n};\n\nexport const swiperOptionsTwo = {\n\t...swiperOptionsBase,\n\tbreakpoints: {\n\t\t450: {\n\t\t\tfreeMode: true,\n\t\t\tslidesPerGroup: 1,\n\t\t\tslidesPerView: 1.1,\n\t\t\tspaceBetween: 10,\n\t\t},\n\t\t580: {\n\t\t\tfreeMode: true,\n\t\t\tslidesPerGroup: 1,\n\t\t\tslidesPerView: 1.4,\n\t\t\tspaceBetween: 20,\n\t\t},\n\t\t860: {\n\t\t\tfreeMode: true,\n\t\t\tslidesPerGroup: 2,\n\t\t\tslidesPerView: 2,\n\t\t\tspaceBetween: 20,\n\t\t},\n\t\t1920: {\n\t\t\tslidesPerGroup: 2,\n\t\t\tslidesPerView: 2,\n\t\t\tspaceBetween: 40,\n\t\t},\n\t},\n\tloop: false,\n\tslidesPerGroup: 2,\n\tslidesPerView: 2,\n\tspaceBetween: 40,\n};\n\nexport const swiperOptionsThree = {\n\t...swiperOptionsBase,\n\tbreakpoints: {\n\t\t450: {\n\t\t\tfreeMode: true,\n\t\t\tslidesPerGroup: 1,\n\t\t\tslidesPerView: 1.1,\n\t\t\tspaceBetween: 10,\n\t\t},\n\t\t580: {\n\t\t\tfreeMode: true,\n\t\t\tslidesPerGroup: 1,\n\t\t\tslidesPerView: 1.4,\n\t\t\tspaceBetween: 20,\n\t\t},\n\t\t860: {\n\t\t\tfreeMode: true,\n\t\t\tslidesPerGroup: 2,\n\t\t\tslidesPerView: 2,\n\t\t\tspaceBetween: 20,\n\t\t},\n\t\t1130: {\n\t\t\tfreeMode: false,\n\t\t\tslidesPerGroup: 3,\n\t\t\tslidesPerView: 3,\n\t\t\tspaceBetween: 20,\n\t\t},\n\t\t1920: {\n\t\t\tslidesPerGroup: 3,\n\t\t\tslidesPerView: 3,\n\t\t\tspaceBetween: 40,\n\t\t},\n\t},\n\tloop: false,\n\tslidesPerGroup: 3,\n\tslidesPerView: 3,\n\tspaceBetween: 40,\n};\n\nexport const swiperOptionsFourOrMore = (loop: boolean = false, forcedSlidesPerGroup: number = null) => ({\n\t...swiperOptionsBase,\n\tbreakpoints: {\n\t\t450: {\n\t\t\tfreeMode: true,\n\t\t\tslidesPerGroup: 1,\n\t\t\tslidesPerView: 1.1,\n\t\t\tspaceBetween: 10,\n\t\t},\n\t\t580: {\n\t\t\tfreeMode: true,\n\t\t\tslidesPerGroup: 1,\n\t\t\tslidesPerView: 1.4,\n\t\t\tspaceBetween: 20,\n\t\t},\n\t\t860: {\n\t\t\tfreeMode: true,\n\t\t\tslidesPerGroup: forcedSlidesPerGroup || 2,\n\t\t\tslidesPerView: 2,\n\t\t\tspaceBetween: 20,\n\t\t},\n\t\t1130: {\n\t\t\tfreeMode: false,\n\t\t\tslidesPerGroup: forcedSlidesPerGroup || 3,\n\t\t\tslidesPerView: 3,\n\t\t\tspaceBetween: 20,\n\t\t},\n\t\t1300: {\n\t\t\tslidesPerView: 4,\n\t\t\tspaceBetween: 20,\n\t\t},\n\t\t1920: {\n\t\t\tslidesPerGroup: forcedSlidesPerGroup || 4,\n\t\t\tspaceBetween: 40,\n\t\t},\n\t},\n\n\tloop,\n\tslidesPerGroup: forcedSlidesPerGroup || 4,\n\tslidesPerView: 4,\n\tspaceBetween: 40,\n});\n\nexport const getSwiperOptions = (count: number, loop: boolean = false, forcedSlidesPerGroup: number = null) => {\n\tswitch (count) {\n\t\tcase 1:\n\t\t\treturn swiperOptionsOne;\n\n\t\tcase 2:\n\t\t\treturn swiperOptionsTwo;\n\t\tcase 3:\n\t\t\treturn swiperOptionsThree;\n\n\t\tcase 4:\n\t\t\treturn swiperOptionsFourOrMore(loop, forcedSlidesPerGroup);\n\n\t\tdefault:\n\t\t\treturn swiperOptionsFourOrMore(loop, forcedSlidesPerGroup);\n\t}\n};\n","import styled from \"styled-components\";\nimport { Container } from \"@components/Grid\";\nimport { color, fontFamily } from \"@utils/style-utils\";\n\nexport const CarouselContainer = styled(Container)`\n\t.swiper-slide {\n\t\theight: auto;\n\n\t\t> div {\n\t\t\theight: 100%;\n\t\t}\n\t}\n\n\t.swiper-button-next,\n\t.swiper-button-prev {\n\t\tdisplay: none;\n\t}\n`;\n\nexport const LoadMoreBlock = styled.button`\n\t-webkit-appearance: none;\n\t-moz-appearance: none;\n\talign-items: center;\n\tbackground: ${color(\"greenBright\", 6)};\n\tborder-radius: 4px;\n\tborder: 1px solid ${color(\"greenBright\", 1)};\n\tcolor: ${color(\"greenBright\", 1)};\n\tcursor: pointer;\n\tdisplay: flex;\n\tflex-direction: column;\n\tfont-family: ${fontFamily.base};\n\tfont-size: 16px;\n\tfont-weight: bold;\n\theight: 100%;\n\tjustify-content: center;\n\toutline: 0;\n\ttext-transform: uppercase;\n\ttransition: background-color 150ms;\n\twidth: 100%;\n\n\t&:hover {\n\t\tbackground-color: ${color(\"greenBright\", 5)};\n\t}\n\n\t.icon {\n\t\tfont-size: 40px;\n\n\t\tsvg {\n\t\t\tanimation-duration: 0.4s;\n\t\t\tmax-width: 40px;\n\t\t}\n\t}\n`;\n","import React, { useState, useEffect, useLayoutEffect, forwardRef, RefObject } from \"react\";\nimport { Swiper, Slide } from \"react-dynamic-swiper\";\nimport searchService from \"@services/search.service\";\nimport CarouselPlaceholder from \"@components/PropertyCarousel/placeholder\";\nimport ApartmentBlock from \"@components/ApartmentBlock\";\nimport { getSwiperOptions } from \"@utils/property-carousel\";\nimport { CarouselContainer, LoadMoreBlock } from \"./styles\";\nimport { FontAwesomeIcon as FaIcon } from \"@fortawesome/react-fontawesome\";\nimport isEmpty from \"lodash-es/isEmpty\";\nimport { wake } from \"@utils\";\nimport { useLocation } from \"react-router\";\n\ninterface IProps {\n\tagencyKey: string | number;\n\tagencyArea?: boolean;\n\texcludeAgency?: boolean;\n\topenHouses?: boolean;\n\tonNoProperties?: () => void;\n\tonSlideChange?: any;\n\tsetTotalProperties?: any;\n\tsmall?: boolean;\n}\n\nconst swiperOptions = {\n\t...getSwiperOptions(3, false, 1),\n\tfreeMode: true,\n\tmousewheel: true,\n\tslidesPerGroup: 1,\n};\n\nconst DynamicPropertyCarousel = forwardRef((props: IProps, ref: RefObject) => {\n\t// const ref = useRef(null);\n\tconst { agencyKey, small = true } = props;\n\tconst [properties, setProperties] = useState([]);\n\tconst [totalCount, setTotalCount] = useState(null);\n\tconst [skip, setSkip] = useState(0);\n\tconst [allLoaded, setAllLoaded] = useState(false);\n\tconst [isLoading, setLoading] = useState(false);\n\tconst loc = useLocation();\n\tlet isRendering: boolean = true;\n\n\tconst baseParams = {\n\t\tagencyArea: props.agencyArea || undefined,\n\t\tagencyKey,\n\t\texcludeAgency: props.excludeAgency || undefined,\n\t\tlimit: 7,\n\t\topenhouses: props.openHouses || undefined,\n\t\tskip,\n\t\tsort: \"latestPublishTimestamp\",\n\t\tsortOrder: \"desc\",\n\t\ttype: \"agency\",\n\t};\n\n\tconst loadProperties = async (skipAmount: number = 0) => {\n\t\tconst params = {\n\t\t\t...baseParams,\n\t\t\tskip: skipAmount,\n\t\t};\n\n\t\ttry {\n\t\t\tconst { data } = await searchService.fetchProperties(params);\n\t\t\treturn data;\n\t\t} catch (e) {\n\t\t\tconsole.log(\"error while fetching agency properties: \", e);\n\t\t\tif (isRendering) {\n\t\t\t\tsetLoading(false);\n\t\t\t}\n\t\t\treturn [];\n\t\t}\n\t};\n\n\tconst getInitialProperties = async () => {\n\t\tif (wake && wake.loading) {\n\t\t\treturn;\n\t\t}\n\t\tif (isRendering) {\n\t\t\tsetLoading(true);\n\t\t\tconst data = await loadProperties();\n\t\t\tconst { results, matches } = data || { results: null, matches: null };\n\n\t\t\tif (results && matches) {\n\t\t\t\tif (isRendering) {\n\t\t\t\t\tsetTotalCount(matches);\n\t\t\t\t\tif (props.setTotalProperties) {\n\t\t\t\t\t\tprops.setTotalProperties(matches);\n\t\t\t\t\t}\n\t\t\t\t\tsetProperties(results);\n\t\t\t\t\tsetLoading(false);\n\t\t\t\t}\n\n\t\t\t\tif (results.length === matches) {\n\t\t\t\t\tconsole.log(`loaded all ${matches} agency properties`);\n\t\t\t\t\tif (isRendering) {\n\t\t\t\t\t\tsetAllLoaded(true);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (isEmpty(results) && typeof props.onNoProperties === \"function\") {\n\t\t\t\tprops.onNoProperties();\n\t\t\t}\n\t\t}\n\t};\n\n\tconst loadMore = async () => {\n\t\tsetLoading(true);\n\n\t\tif (isLoading) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!allLoaded) {\n\t\t\tconst newSkip = skip + 7;\n\t\t\tsetSkip(newSkip);\n\n\t\t\tconst loadedProperties = await loadProperties(newSkip);\n\t\t\tconst { results, matches } = loadedProperties || { results: null, matches: null };\n\n\t\t\tif (results.length + newSkip >= totalCount) {\n\t\t\t\tconsole.log(`loaded all ${matches} agency properties`);\n\t\t\t\tsetAllLoaded(true);\n\t\t\t}\n\n\t\t\tif (matches !== null && props.setTotalProperties) {\n\t\t\t\tprops.setTotalProperties(matches);\n\t\t\t}\n\t\t\tsetProperties([...properties, ...results]);\n\t\t\tsetLoading(false);\n\t\t}\n\t};\n\n\tconst onReachEnd = () => {\n\t\tif (!allLoaded && !isLoading) {\n\t\t\tconsole.log(\"loading more\");\n\t\t\tloadMore();\n\t\t}\n\t};\n\n\tuseLayoutEffect(() => {\n\t\tif (isRendering && ref.current) {\n\t\t\tconst swiper = ref.current.swiper();\n\t\t\tswiper.update();\n\t\t}\n\t}, [properties]);\n\n\tuseEffect(() => {\n\t\tif (isRendering) {\n\t\t\tgetInitialProperties();\n\t\t}\n\n\t\treturn () => {\n\t\t\tisRendering = false;\n\t\t};\n\t}, [wake.loading]);\n\n\tuseEffect(() => {\n\t\tisRendering = true;\n\t}, [loc.pathname]);\n\n\treturn (\n\t\t
    \n\t\t\t{(!properties || properties.length <= 0) && }\n\n\t\t\t{properties && properties.length > 0 && (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{properties.map((property: IProperty) => (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t))}\n\t\t\t\t\t\t{!allLoaded && (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{!isLoading && Lataa lisää}\n\t\t\t\t\t\t\t\t\t{isLoading && (\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t)}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t)}\n\t\t
    \n\t);\n});\n\nexport default DynamicPropertyCarousel;\n","import styled from \"styled-components\";\nimport { Container, Wrapper } from \"@components/Grid\";\nimport { color, textStyles, fontFamily, media, grid } from \"@utils/style-utils\";\n\nexport const CarouselTabsWrapper = styled(Wrapper)`\n\tposition: relative;\n\n\t&::before,\n\t&::after {\n\t\tcontent: \"\";\n\t\tdisplay: block;\n\t\theight: 100%;\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\twidth: ${grid.gutterSmall / 2}px;\n\t\tz-index: 999;\n\n\t\t${media.sm`\n\t\t\twidth: ${grid.gutterSmall / 2}px;\n\t\t`}\n\t}\n\n\t&::before {\n\t\tbackground-image: linear-gradient(to right, rgba(255, 255, 255, 1) 20%, rgba(255, 255, 255, 0) 100%);\n\t\tpointer-events: none;\n\t\tleft: 0;\n\t}\n\n\t&::after {\n\t\tbackground-image: linear-gradient(to left, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0) 100%);\n\t\tpointer-events: none;\n\t\tright: 0;\n\t\twidth: ${grid.gutterSmall + 5}px;\n\t}\n`;\n\nexport const CarouselTabs = styled(Container)`\n\toverflow-x: auto;\n\t-webkit-overflow-scrolling: touch;\n\tposition: relative;\n`;\n\nexport const CarouselHeader = styled.div`\n\tdisplay: flex;\n\tmargin-bottom: 40px;\n\twhite-space: nowrap;\n\n\t.spacer {\n\t\tborder-bottom: 1px solid ${color(\"grey\", 5)};\n\t\tflex-grow: 1;\n\t\tmargin-bottom: 0;\n\t\ttransform: translateY(-50%);\n\n\t\t@media (max-width: 640px) {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n`;\n\nexport const CarouselTitle = styled.h3`\n\t${textStyles.H3Condensed};\n\tcolor: ${color(\"grey\", 4)};\n\tcursor: pointer;\n\tfont-size: 24px;\n\tmargin: 0 20px 0 0;\n\n\t.is-pointer & {\n\t\t&:hover {\n\t\t\tcolor: ${color(\"grey\", 3)};\n\t\t}\n\t}\n\n\t${media.md`\n\t\t${textStyles.H3};\n\t\tcolor: ${color(\"grey\", 4)};\n\t\tfont-family: ${fontFamily.base};\n\t\tmargin-bottom: 0;\n\t`}\n\t.tab-button--active & {\n\t\tcolor: ${color(\"grey\", 1)};\n\n\t\t&:hover {\n\t\t\tcolor: ${color(\"grey\", 1)};\n\t\t}\n\t}\n`;\n\nexport const CarouselButtons = styled.div`\n\tdisplay: flex;\n\n\t@media (max-width: 640px) {\n\t\tdisplay: none;\n\t}\n\n\tdiv:not(.hidden) {\n\t\talign-items: center;\n\t\tcolor: ${color(\"greenBright\", 1)};\n\t\tdisplay: flex;\n\t\tjustify-content: center;\n\t\tmargin: 0 0 0 20px;\n\t}\n\n\tbutton {\n\t\talign-items: center;\n\t\tborder: 0;\n\t\tbackground: rgba(255, 255, 255, 0);\n\t\tcolor: ${color(\"greenBright\", 1)};\n\t\tcursor: pointer;\n\t\tdisplay: inline-flex;\n\t\tfont-size: 20px;\n\t\theight: 30px;\n\t\tmargin: 0 0 0 20px;\n\t\toutline: 0;\n\t\tpadding: 0;\n\t\twidth: 20px;\n\n\t\tsvg {\n\t\t\tmax-width: 20px;\n\t\t\ttransform: scale(1);\n\t\t\ttransition: transform 150ms;\n\t\t}\n\n\t\t+ button {\n\t\t\tmargin-left: 5px;\n\t\t}\n\n\t\t&.next,\n\t\t&.prev {\n\t\t\tjustify-content: flex-end;\n\t\t}\n\n\t\t&.swiper-button-disabled {\n\t\t\tdisplay: none;\n\t\t}\n\n\t\t&:hover {\n\t\t\tsvg {\n\t\t\t\ttransform: scale(1.2);\n\t\t\t}\n\t\t}\n\t}\n`;\n","import React, { useEffect, useRef, useState } from \"react\";\nimport TabSwitcher, { Tab, TabPanel } from \"@components/TabSwitcher\";\nimport DynamicPropertyCarousel from \"@components/DynamicPropertyCarousel\";\nimport { CarouselTabs, CarouselButtons, CarouselHeader, CarouselTitle, CarouselTabsWrapper } from \"./styles\";\nimport { FontAwesomeIcon as FaIcon } from \"@fortawesome/react-fontawesome\";\n\nconst AgencyProperties = ({ agency, propertyCount }) => {\n\tlet isRendering = true;\n\tconst tabs = [1, 2, 3];\n\tconst firstRef = useRef(null);\n\tconst secondRef = useRef(null);\n\tconst thirdRef = useRef(null);\n\tconst [currentRef, setCurrentRef] = useState(null);\n\tconst [contentfulTabs, setContentfulTabs] = useState(tabs);\n\tconst [totalPropertiesSecond, setTotalPropertiesSecond] = useState(0);\n\tconst [totalPropertiesThird, setTotalPropertiesThird] = useState(0);\n\tconst [slideChanged, setSlideChanged] = useState(false);\n\n\tconst getSwiper = ref => (ref && ref.current ? ref.current.swiper() : null);\n\n\tconst updateSwiper = ref => {\n\t\ttry {\n\t\t\tif (ref && ref.current) {\n\t\t\t\tconst swiper = getSwiper(ref);\n\t\t\t\tsetCurrentRef(ref);\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tswiper.updateSize();\n\t\t\t\t\tswiper.updateSlides();\n\t\t\t\t}, 0);\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t};\n\n\tconst hideTab = (index: number) => {\n\t\tsetContentfulTabs(ts => ts.filter(t => t !== index));\n\t};\n\n\tconst isVisible = (index: number) => {\n\t\treturn contentfulTabs.indexOf(index) !== -1;\n\t};\n\n\tconst slideToNext = () => {\n\t\tif (!isRendering || !currentRef || !currentRef.current) {\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\tgetSwiper(currentRef).slideNext();\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t};\n\n\tconst slideToPrev = () => {\n\t\tif (!isRendering || !currentRef || !currentRef.current) {\n\t\t\treturn;\n\t\t}\n\t\ttry {\n\t\t\tgetSwiper(currentRef).slidePrev();\n\t\t} catch (e) {\n\t\t\tconsole.log(e);\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\treturn () => {\n\t\t\tisRendering = false;\n\t\t};\n\t}, []);\n\n\tuseEffect(() => {\n\t\tif (isRendering && !currentRef && firstRef && firstRef.current) {\n\t\t\tsetCurrentRef(firstRef);\n\t\t}\n\t}, [firstRef.current]);\n\n\tconst getSwiperIndex = (ref: any) => {\n\t\tconst swiper = getSwiper(ref);\n\t\tconst index = swiper ? swiper.activeIndex + 1 : 1;\n\t\treturn `${index}-${index + 2}`;\n\t};\n\n\tconst slideChange = () => {\n\t\t// this is used to trigger re-render when slide is changed to get the correct index from sliders\n\t\tsetSlideChanged((currentValue: boolean) => !currentValue);\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{/* */}\n\t\t\t\t\t\t\t{/* \t{getSwiperIndex(firstRef)}/{propertyCount} */}\n\t\t\t\t\t\t\t{/* */}\n\t\t\t\t\t\t\t{/* */}\n\t\t\t\t\t\t\t{/* \t{getSwiperIndex(secondRef)}/{totalPropertiesSecond} */}\n\t\t\t\t\t\t\t{/* */}\n\t\t\t\t\t\t\t{/* */}\n\t\t\t\t\t\t\t{/* \t{getSwiperIndex(thirdRef)}/{totalPropertiesThird} */}\n\t\t\t\t\t\t\t{/* */}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\t\n\t\t\t\t hideTab(1)}\n\t\t\t\t\tonSlideChange={() => slideChange()}\n\t\t\t\t\tref={firstRef}\n\t\t\t\t\tsmall={true}\n\t\t\t\t/>\n\t\t\t\n\t\t\t\n\t\t\t\t hideTab(2)}\n\t\t\t\t\tonSlideChange={() => slideChange()}\n\t\t\t\t\tref={secondRef}\n\t\t\t\t\tsetTotalProperties={setTotalPropertiesSecond}\n\t\t\t\t\tsmall={true}\n\t\t\t\t/>\n\t\t\t\n\t\t\t\n\t\t\t\t hideTab(3)}\n\t\t\t\t\tonSlideChange={() => slideChange()}\n\t\t\t\t\topenHouses={true}\n\t\t\t\t\tref={thirdRef}\n\t\t\t\t\tsetTotalProperties={setTotalPropertiesThird}\n\t\t\t\t\tsmall={true}\n\t\t\t\t/>\n\t\t\t\n\t\t\n\t);\n};\n\nexport default AgencyProperties;\n","import styled from \"styled-components\";\nimport { Container } from \"@components/Grid\";\n\nexport const PropertyBlockContainer = styled(Container)`\n\t.swiper-container {\n\t\tpadding-bottom: 1em;\n\t}\n`;\n","import React from \"react\";\nimport { getID } from \"@components/ContentBlocks/Base\";\nimport AgencyProperties from \"@components/Agency/AgencyProperties\";\nimport { useSelector } from \"react-redux\";\nimport Text from \"wake-react-components/text\";\nimport { getAssetUrl } from \"@utils\";\nimport { PropertyBlockContainer } from \"@components/Agency/Blocks/Properties/styles\";\n\nconst Properties = ({item}) => {\n\n\tconst mainDoc: any = useSelector(state => state && \"document\" in state ? (state as any).document : null);\n\n\tconst agencyKeys: string[] = [\n\t\tmainDoc.key,\n\t];\n\tif (mainDoc.agencies) {\n\t\tconst agencies = \"references\" in mainDoc.agencies ? mainDoc.agencies.references : mainDoc.agencies;\n\t\tfor (const liftAgency of agencies) {\n\t\t\tif (liftAgency.key) {\n\t\t\t\tagencyKeys.push(liftAgency.key);\n\t\t\t}\n\t\t}\n\t}\n\n\tconst id = getID(item);\n\treturn \n\t\t\n\t;\n\n};\n\nProperties.thumb = () => (\n\t
    \n\t\t\"Kohdenosto\"\n\t\t

    Kohdenosto

    \n\t
    \n);\n\nProperties.settings = () => (\n\t
    \n\t\tBlockin ID (esim. ankkuriksi) \n\t\t
    \n\t
    \n);\n\nexport default Properties;\n","import styled from \"styled-components\";\nimport { Container } from \"@components/Grid\";\nimport { color, media, textStyles } from \"@utils/style-utils\";\n\nexport const OwnerGreetingsContainer = styled(Container)`\n\tbackground: transparent url(/assets/images/brand-identity/graphics/agent-bg-pattern.svg) repeat top left;\n\tmargin: 9em 0;\n\tpadding: 1em;\n\n\t${media.md`\n\t\tpadding: 3em;\n\t`};\n`;\n\nexport const OwnerGreetingsWrapper = styled.div`\n\talign-items: center;\n\tbackground: ${color(\"beige\", 4)};\n\tdisplay: flex;\n\tflex-direction: column;\n\tjustify-content: center;\n\n\t${media.md`\n\t\talign-items: stretch;\n\t\tflex-direction: row;\n\t`};\n`;\n\nexport const OwnerGreetingsText = styled.div`\n\tmargin: 3em;\n\tmax-width: min(895px, 70%);\n\tmin-width: unset;\n\n\t${media.md`\n\t\tmargin: 3em 9em;\n\t\tmin-width: calc(46vw - 18em);\n\t`};\n`;\n\nexport const OwnerName = styled.h4`\n\t${textStyles.MicroTextCaps};\n\tfont-weight: bold;\n\tmargin: 3em 0 15px;\n\n\t&.multiple-names {\n\t\tmargin-bottom: 0;\n\t}\n`;\n\nexport const OwnerBottom = styled.div`\n\talign-items: flex-start;\n\tdisplay: flex;\n\tflex-direction: column;\n\tjustify-content: space-between;\n\n\t${media.md`\n\t\tflex-direction: row;\n\t\tgap: 1em;\n\t`};\n`;\n\nexport const OwnerTitle = styled.p`\n\t&.multiple-names {\n\t\tmargin-top: 5px;\n\t}\n`;\n\nexport const OwnerImage = styled.div`\n\talign-items: center;\n\tdisplay: flex;\n\tjustify-content: flex-end;\n\tposition: relative;\n\n\timg {\n\t\tdisplay: block;\n\t\tmax-height: min(100%, 505px);\n\t\tmax-width: min(100%, 384px);\n\n\t\t${media.md`\n\t\t\tmax-height: 505px;\n\t\t\tmax-width: 384px;\n\t\t`};\n\n\t\t&:not(:first-child) {\n\t\t\tright: 0;\n\t\t\tposition: absolute;\n\t\t\ttop: 0;\n\t\t}\n\t}\n\n\t&.crossfade {\n\t\t> * {\n\t\t\topacity: 0;\n\t\t\tposition: absolute;\n\t\t\tright: 0;\n\t\t\ttop: 0;\n\t\t\ttransition: opacity 1200ms ease-in-out;\n\n\t\t\t&:not(.first) {\n\t\t\t\ttop: 50%;\n\t\t\t\ttransform: translateY(-50%);\n\t\t\t}\n\t\t}\n\n\t\t> *:first-child {\n\t\t\tposition: relative;\n\t\t}\n\n\t\t> *.is-active {\n\t\t\topacity: 1;\n\t\t}\n\t}\n`;\n","import styled from \"styled-components\";\nimport { SomeLinks } from \"@components/SiteFooter/styles\";\n\nexport const AgencySomeLinksWrapper = styled.div`\n\talign-items: center;\n\tdisplay: flex;\n\tjustify-content: flex-start;\n\n\t${SomeLinks} {\n\t\talign-items: flex-start;\n\t\tflex-wrap: wrap;\n\t\tgap: 16px;\n\t\tjustify-content: flex-start;\n\n\t\ta {\n\t\t\tmargin-right: 0;\n\t\t}\n\t}\n`;\n","import React from \"react\";\nimport { SomeButton, SomeLinks } from \"@components/SiteFooter/styles\";\nimport { FontAwesomeIcon as FaIcon } from \"@fortawesome/react-fontawesome\";\nimport { AgencySomeLinksWrapper } from \"./styles\";\n\ninterface IAgencySomeLinksProps {\n\tsocialAccounts: any[];\n}\n\nexport const AgencySomeLinks = (props: IAgencySomeLinksProps) => {\n\n\tconst { socialAccounts = [] } = props;\n\n\tif (!Array.isArray(socialAccounts) || socialAccounts.length === 0) {\n\t\treturn null;\n\t}\n\n\treturn \n\t\t\n\t\t\t{socialAccounts.map((socialAccount: any, index: number) => {\n\t\t\t\tlet someIcon = null;\n\t\t\t\tswitch (socialAccount.type || null) {\n\t\t\t\t\tcase \"facebook\":\n\t\t\t\t\t\tsomeIcon = \"facebook-f\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"instagram\":\n\t\t\t\t\t\tsomeIcon = \"instagram\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"linkedin\":\n\t\t\t\t\t\tsomeIcon = \"linkedin-in\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"twitter\":\n\t\t\t\t\t\tsomeIcon = \"twitter\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif (!someIcon) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\treturn \n\t\t\t\t\t\n\t\t\t\t;\n\t\t\t})}\n\t\t\n\t;\n\n};\n","import React, { Fragment, useEffect, useState } from \"react\";\nimport { getAssetUrl, hasWindow } from \"@utils\";\nimport Editor from \"wake-react-components/editor\";\nimport Text from \"wake-react-components/text\";\nimport { getID } from \"@components/ContentBlocks/Base\";\nimport {\n\tOwnerBottom,\n\tOwnerGreetingsContainer,\n\tOwnerGreetingsText,\n\tOwnerGreetingsWrapper,\n\tOwnerImage,\n\tOwnerName,\n\tOwnerTitle,\n} from \"./styles\";\nimport { useSelector } from \"react-redux\";\nimport AgentImage from \"@components/Agent/AgentImage\";\nimport { AgencySomeLinks } from \"@components/Agency/AgencySomeLinks\";\nimport { isAdmin } from \"wake-react-components/utils\";\n\nconst OwnerGreetings = ({item}) => {\n\n\tconst mainDoc: any = useSelector(state => state && \"document\" in state ? (state as any).document : null);\n\tconst { agencyAgent } = mainDoc;\n\tconst id = getID(item);\n\tconst hasMultipleImages = Array.isArray(agencyAgent) && agencyAgent.length > 1;\n\tconst [activeImageIndex, setActiveImageIndex] = useState(0);\n\n\tuseEffect(() => {\n\t\tif (!hasWindow) {\n\t\t\treturn;\n\t\t}\n\t\tif (!hasMultipleImages) {\n\t\t\tsetActiveImageIndex(0);\n\t\t\treturn;\n\t\t}\n\n\t\tconst intervalId = setInterval(() => {\n\t\t\tsetActiveImageIndex(previousIndex => (previousIndex + 1) % agencyAgent.length);\n\t\t}, 4000);\n\n\t\treturn () => {\n\t\t\tclearInterval(intervalId);\n\t\t};\n\t}, [hasMultipleImages, Array.isArray(agencyAgent) ? agencyAgent.length : 0]);\n\n\tconst defaultGreetings = mainDoc && Array.isArray(mainDoc.news) && mainDoc.news.length > 0 && mainDoc.news[0].description\n\t\t? mainDoc.news[0].description\n\t\t: \"Kutsu meidät maksuttomalle kotikäynnille, kerromme, kuinka teemme asunnon vaihdon Sinulle helpoksi. Kukaan ei välitä niin kuin me.\"\n\t;\n\n\tif (!isAdmin &&\n\t\t(!mainDoc || !Array.isArray(mainDoc.news) || mainDoc.news.length === 0 || !mainDoc.news[0].description) &&\n\t\t!item.greetingsText\n\t) {\n\t\treturn null;\n\t}\n\n\treturn \n\t\t\n\t\t\t\n\t\t\t\t

    \n\t\t\t\t\t\n\t\t\t\t

    \n\t\t\t\t\n\t\t\t\t{!!(agencyAgent && !Array.isArray(agencyAgent)) && \n\t\t\t\t\t{agencyAgent.firstName} {agencyAgent.lastName}\n\t\t\t\t}\n\t\t\t\t{!!(agencyAgent && Array.isArray(agencyAgent)) && <>\n\t\t\t\t\t{agencyAgent.map((agencyAgentItem: any) => {\n\t\t\t\t\t\treturn \n\t\t\t\t\t\t\t{agencyAgentItem.firstName} {agencyAgentItem.lastName}\n\t\t\t\t\t\t\t{agencyAgentItem.title || \"\"}\n\t\t\t\t\t\t;\n\t\t\t\t\t})}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t\t{agencyAgent\n\t\t\t\t\t\t? Array.isArray(agencyAgent)\n\t\t\t\t\t\t\t? null\n\t\t\t\t\t\t\t: agencyAgent.title || \"\"\n\t\t\t\t\t\t: \"\"\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t\t\n\t\t\t\t{Array.isArray(agencyAgent)\n\t\t\t\t? <>{agencyAgent.map((agencyAgentItem: any, index: number) => {\n\t\t\t\t\t\treturn \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t;\n\t\t\t\t\t})}\n\t\t\t\t: }\n\t\t\t\n\t\t
    \n\t
    ;\n\n};\n\nOwnerGreetings.thumb = () => (\n\t
    \n\t\t\"Välittäjänosto\"\n\t\t

    Yrittäjän terveiset + somenostot

    \n\t
    \n);\n\nOwnerGreetings.settings = () => (\n\t
    \n\t\tBlockin ID (esim. ankkuriksi) \n\t\t
    \n\t
    \n);\n\nexport default OwnerGreetings;\n","import React from \"react\";\nimport isEmpty from \"lodash-es/isEmpty\";\nimport { Container, Wrapper } from \"@components/Grid\";\nimport ArticleCards from \"@components/ArticleCards\";\nimport { useSelector } from \"react-redux\";\nimport { Articles, ArticlesTitle } from \"./styles\";\nimport { getID } from \"@components/ContentBlocks/Base\";\nimport { getAssetUrl } from \"@utils\";\nimport Text from \"wake-react-components/text\";\nimport { isAdmin } from \"wake-react-components/utils\";\n\nconst AgencyArticles = ({ item }) => {\n\n\tconst mainDoc: any = useSelector(state => state && \"document\" in state ? (state as any).document : null);\n\tconst { page = {} } = mainDoc;\n\tconst { agencyArticles } = page; // populated by repeater defined in manifest.xml\n\tconst id = getID(item);\n\n\treturn \n\t\t\n\t\t\t{isEmpty(agencyArticles)\n\t\t\t\t? (isAdmin ?

    Ei nostettavia artikkeleita.

    : \"\")\n\t\t\t\t:\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t

    Ajankohtaista

    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t}\n\t\t
    \n\t
    ;\n\n};\n\nAgencyArticles.thumb = () => (\n\t
    \n\t\t\"Artikkelinosto\"\n\t\t

    Artikkelinosto

    \n\t
    \n);\n\nAgencyArticles.settings = () => (\n\t
    \n\t\tBlockin ID (esim. ankkuriksi) \n\t\t
    \n\t
    \n);\n\nexport default AgencyArticles;\n","import styled from \"styled-components\";\nimport { color, fontFamily, grid, media } from \"@utils/style-utils\";\n\nexport const MainFormWrapper = styled.div`\n\tmargin: 60px 0;\n\twidth: 100vw;\n\n\t.contact-form {\n\t\tpadding-top: 30px;\n\n\t\t.form-container {\n\t\t\ttop: 0;\n\t\t}\n\t}\n\n\t${media.lg`\n\t\ttransform: translateX(calc(-1 * (100vw - 1404px) / 2)); // (view width - container max-width) / 2 = container left auto margin\n\n\t\t.contact-form {\n\t\t\tpadding-top: 70px;\n\n\t\t\t.form-container {\n\t\t\t\ttop: 30px;\n\t\t\t}\n\t\t}\n\t`};\n`;\n\nexport const FormHeader = styled.div`\n\ttext-align: center;\n\n\th3 {\n\t\tmargin: 0 0 16px;\n\t}\n\n\tp {\n\t\tcolor: ${color(\"grey\", 2)};\n\t\tfont-family: ${fontFamily.condensed};\n\t\tfont-size: 14px;\n\t\tmargin: 0 0 44px;\n\n\t\t${media.md`\n\t\t\tfont-size: 16px;\n\t\t`};\n\n\t\tspan {\n\t\t\tcolor: ${color(\"greenBright\", 1)};\n\t\t\tfont-size: 20px;\n\t\t\tmargin-right: 10px;\n\n\t\t\tsvg {\n\t\t\t\tmax-width: 16px;\n\t\t\t}\n\t\t}\n\t}\n`;\n","import React from \"react\";\nimport { MainFormWrapper, FormHeader } from \"./styles\";\nimport { Element as ScrollTarget } from \"react-scroll\";\nimport { FontAwesomeIcon as FaIcon } from \"@fortawesome/react-fontawesome\";\nimport AContactForm from \"@components/Form/ContactFormAgentOrAgency\";\nimport { useSelector } from \"react-redux\";\nimport Text from \"wake-react-components/text\";\nimport { getAssetUrl } from \"@utils\";\nimport { getID } from \"@components/ContentBlocks/Base\";\n\nconst AgencyContactForm = ({ item }) => {\n\n\tconst mainDoc: any = useSelector(state => state && \"document\" in state ? (state as any).document : null);\n\tconst { marketingName, name } = mainDoc;\n\tconst id = getID(item);\n\n\treturn \n\t\t\n\t\t\t\n\t\t\t\t

    \n\t\t\t\t\t\n\t\t\t\t

    \n\t\t\t\t

    \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t{marketingName ? `Kiinteistömaailma ${marketingName}` : name}\n\t\t\t\t

    \n\t\t\t
    \n\t\t
    \n\t
    ;\n\n};\n\nAgencyContactForm.thumb = () => (\n\t
    \n\t\t\"Yhteydenottolomake\"\n\t\t

    Yhteydenottolomake

    \n\t
    \n);\n\nAgencyContactForm.settings = () => (\n\t
    \n\t\tBlockin ID (esim. ankkuriksi) \n\t\t
    \n\t
    \n);\n\nexport default AgencyContactForm;\n","import styled, { keyframes } from \"styled-components\";\nimport { color, media } from \"@utils/style-utils\";\nimport { Container } from \"@components/Grid\";\n\nexport const OtherAgenciesContainer = styled(Container)`\n\tposition: relative;\n\n\t&:before {\n\t\tbackground: ${color(\"blue\", 5)};\n\t\tcontent: \"\";\n\t\tdisplay: block;\n\t\theight: calc(100% - 7em);\n\t\tleft: -25vw;\n\t\tposition: absolute;\n\t\ttop: 7em;\n\t\twidth: 200vw;\n\t}\n`;\n\nexport const OtherAgenciesTitle = styled.h3`\n\tmargin: 3em auto 1em;\n\ttext-align: center;\n`;\n\nexport const OtherAgenciesWrapper = styled.div`\n\talign-items: flex-start;\n\tdisplay: flex;\n\tflex-wrap: wrap;\n\tgap: 3em;\n\tjustify-content: center;\n\tmargin-bottom: 6em;\n\tposition: relative;\n`;\n\nexport const AgencyCard = styled.div`\n\twidth: 100%;\n\n\t${media.md`\n\t\twidth: calc((100% - 3em) / 2);\n\t`};\n\n\t${media.lg`\n\t\twidth: calc((100% - 6em) / 3);\n\t`};\n`;\n\nconst flipCard = keyframes`\n\t0% {\n\t\topacity: 1;\n\t}\n\t100% {\n\t\topacity: 0;\n\t}\n`;\nconst flipBack = keyframes`\n\t0% {\n\t\topacity: 0;\n\t}\n\t100% {\n\t\topacity: 1;\n\t}\n`;\n\nexport const ImageOrMap = styled.div`\n\theight: 283px;\n\tposition: relative;\n\n\t.front {\n\t\tanimation: ${flipBack} 222ms linear forwards;\n\t\theight: 100%;\n\t\tleft: 0;\n\t\tposition: relative;\n\t\ttop: 0;\n\t\tz-index: 10;\n\t\twidth: 100%;\n\t}\n\t.back {\n\t\tanimation: ${flipCard} 222ms linear forwards;\n\t\theight: 100%;\n\t\tleft: 0;\n\t\tpointer-events: none;\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\twidth: 100%;\n\t\tz-index: 5;\n\t}\n`;\n\nexport const AgencyMap = styled.div`\n\toverflow: hidden;\n\tposition: relative;\n\twidth: 100%;\n`;\n\nexport const NameAndAddress = styled.a`\n\talign-items: flex-start;\n\tdisplay: flex;\n\tflex-direction: column;\n\tjustify-content: flex-start;\n\tmargin: 1em 0 0;\n\tposition: relative;\n\n\t.agency-name {\n\t\tmargin: 0 0 10px 0;\n\t}\n\t.agency-address {\n\t\tcolor: ${color(\"grey\", 1)};\n\t\tfont-size: 2rem;\n\t}\n\n\t&:hover {\n\t\t.agency-name, .agency-address {\n\t\t\tcolor: ${color(\"greenBright\", 1)};\n\t\t}\n\t}\n`;\n","import React, { useState } from \"react\";\nimport { getAssetUrl } from \"@utils\";\nimport Image from \"@components/Image\";\nimport { AgencyCard, AgencyMap, ImageOrMap, NameAndAddress } from \"./styles\";\nimport GoogleMap from \"@components/GoogleMap\";\n\nexport const OtherAgencyCard = ({ agency }) => {\n\n\tconst {\n\t\taddress,\n\t\tcoordinates,\n\t\timageName,\n\t\timagePath,\n\t\tkey,\n\t\tmarketingName,\n\t\tname,\n\t\turlParts,\n\t} = agency;\n\n\tconst [ hovered, setHovered ] = useState(false);\n\tconst hasMap = coordinates && coordinates.latitude && coordinates.longitude;\n\n\treturn \n\t\t {\n\t\t\t\tif (!e.bubbles) {\n\t\t\t\t\tsetHovered((current: boolean) => !current);\n\t\t\t\t}\n\t\t\t}}\n\t\t\tonMouseLeave={() => setHovered(false)}\n\t\t\tonMouseEnter={() => setHovered(true)}\n\t\t>\n\t\t\t\n\t\t\t{hasMap && \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t\n\t\t\t
    }\n\t\t\n\t\t\n\t\t\t

    {marketingName ? `Kiinteistömaailma ${marketingName}` : name}

    \n\t\t\t{address}\n\t\t
    \n\t
    ;\n\n};\n","import React from \"react\";\nimport { useSelector } from \"react-redux\";\nimport isEmpty from \"lodash-es/isEmpty\";\nimport { getID } from \"@components/ContentBlocks/Base\";\nimport { OtherAgenciesContainer, OtherAgenciesTitle, OtherAgenciesWrapper } from \"./styles\";\nimport Text from \"wake-react-components/text\";\nimport { OtherAgencyCard } from \"./card\";\nimport { getAssetUrl } from \"@utils\";\n\nconst OtherAgencies = ({ item }) => {\n\n\tconst mainDoc: any = useSelector(state => state && \"document\" in state ? (state as any).document : null);\n\tconst { otherAgencies } = mainDoc;\n\n\tif (isEmpty(otherAgencies)) {\n\t\treturn null;\n\t}\n\tconst id = getID(item);\n\n\treturn \n\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t{otherAgencies.map((otherAgency: any, index: number) => {\n\t\t\t\treturn ;\n\t\t\t})}\n\t\t\n\t;\n\n};\n\nOtherAgencies.thumb = () => (\n\t
    \n\t\t\"Yrityksen\n\t\t

    Yrityksen muut myymälät

    \n\t
    \n);\n\nOtherAgencies.settings = () => (\n\t
    \n\t\tBlockin ID (esim. ankkuriksi) \n\t\t
    \n\t
    \n);\n\nexport default OtherAgencies;\n","import React from \"react\";\nimport { AgencyName, ContactButton, StickyContainer } from \"@pages/AgencyPage/styles\";\nimport CtaButton from \"@components/Buttons/CtaButton\";\nimport { hasWindow } from \"@utils\";\nimport Phone from \"@components/Info/Phone\";\n\nexport const AgencyContactBar = (props: any) => {\n\n\tconst { agency, inHeader = false, scrollToContact } = props;\n\tconst { marketingName, name, phone, telPhone } = agency;\n\n\treturn \n\t\t\n\t\t\t{marketingName ? `Kiinteistömaailma ${marketingName}` : name}\n\t\t\n\t\t
    \n\t\t{(phone && telPhone) && {\n\t\t\t\te.preventDefault();\n\t\t\t\te.stopPropagation();\n\t\t\t\tif (hasWindow) {\n\t\t\t\t\tlocation.href = \"tel:\" + telPhone;\n\t\t\t\t}\n\t\t\t}}\n\t\t>\n\t\t\t\n\t\t}\n\t\t {\n\t\t\t\tscrollToContact();\n\t\t\t\tif (hasWindow) {\n\t\t\t\t\tsetTimeout(() => scrollToContact(), 1);\n\t\t\t\t}\n\t\t\t}}\n\t\t>\n\t\t\tOta yhteyttä\n\t\t\n\t;\n\n};\n","import React, { useEffect } from \"react\";\n\nimport { Container, Wrapper } from \"@components/Grid\";\nimport { IApplicationState } from \"@redux\";\nimport { connect } from \"react-redux\";\n\nimport { AgencyHero, AgencyHeroContent } from \"./styles\";\nimport isEmpty from \"lodash-es/isEmpty\";\nimport historyTracker from \"@services/history-tracker\";\nimport dataLayerPush from \"@utils/dataLayerPush\";\nimport Blocklist from \"wake-react-components/blocklist\";\nimport TextBoxes from \"@components/ContentBlocks/TextBoxes\";\nimport TextContent from \"@components/ContentBlocks/TextContent\";\nimport TwoTextBoxes from \"@components/ContentBlocks/TwoTextBoxes\";\nimport { getAssetUrl, hasWindow } from \"@utils\";\nimport Background from \"wake-react-components/background\";\nimport { isAdmin } from \"wake-react-components/utils\";\nimport Input from \"wake-react-components/input\";\nimport Agents from \"@components/Agency/Blocks/Agents\";\nimport ContactInfoMap from \"@components/Agency/Blocks/ContactInfoMap\";\nimport Stats from \"@components/Agency/Blocks/Stats\";\nimport Video from \"@components/ContentBlocks/Video\";\nimport MediaCarousel from \"@components/ContentBlocks/MediaCarousel\";\nimport Properties from \"@components/Agency/Blocks/Properties\";\nimport OwnerGreetings from \"@components/Agency/Blocks/OwnerGreetings\";\nimport { AgencySomeLinks } from \"@components/Agency/AgencySomeLinks\";\nimport AgencyArticles from \"@components/Agency/Blocks/AgencyArticles\";\nimport AgencyContactForm from \"@components/Agency/Blocks/AgencyContactForm\";\nimport OtherAgencies from \"@components/Agency/Blocks/OtherAgencies\";\nimport StickyContactBar from \"@components/StickyContactBar\";\nimport { AgencyContactBar } from \"@components/Agency/AgencyContactBar\";\nimport { AgencySelector } from \"@components/ContentBlocks/Base/agency-selector\";\n\nconst AgencyPage = (props: any) => {\n\tconst { document: doc } = props;\n\n\tconst supportedBlocks: any = {\n\t\tAgencyArticles,\n\t\tAgencyContactForm,\n\t\tAgents,\n\t\tContactInfoMap,\n\t\tMediaCarousel,\n\t\tOtherAgencies,\n\t\tOwnerGreetings,\n\t\tProperties,\n\t\tStats,\n\t\tTextBoxes,\n\t\tTextContent,\n\t\tTwoTextBoxes,\n\t\tVideo,\n\t};\n\n\tconst {\n\t\tmarketingName,\n\t\tname,\n\t} = doc;\n\n\tuseEffect(() => {\n\t\tif (!isEmpty(doc)) {\n\t\t\thistoryTracker.trackHistory(\"seller-county\", doc.city);\n\t\t\thistoryTracker.trackHistory(\"seller-postcode\", doc.postcode);\n\n\t\t\thistoryTracker.trackHistory(\"visited-agency\" as any, JSON.stringify({...doc, visitedAt: new Date().getTime()}));\n\n\t\t\tdataLayerPush({\n\t\t\t\t\"agency-details\": {\n\t\t\t\t\t\"myymala-id\": doc.key || \"\",\n\t\t\t\t\t\"myymala-laki\": doc.companyName || \"\",\n\t\t\t\t\t\"myymala-markkinointi\": doc.marketingName || \"\",\n\t\t\t\t\t\"sisalto\": \"myymalasivu\",\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\t}, [ doc.documentID ]);\n\n\tconst hasHeroBackground = !isEmpty(doc.agencyHeroBackground) && !isEmpty(doc.agencyHeroBackground.src);\n\n\tconst scrollToContact = () => {\n\t\tconst formElements = hasWindow ? document.getElementsByClassName(\"contact-form\") : [];\n\t\tif (!formElements) {\n\t\t\treturn;\n\t\t}\n\t\twindow.scrollTo({\n\t\t\tbehavior: \"smooth\",\n\t\t\tleft: 0,\n\t\t\ttop: formElements[0].parentElement.offsetTop - 75,\n\t\t});\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tKiinteistömaailma {marketingName ? marketingName : name}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t{isAdmin && \n\t\t\t\t

    Hero-alueen otsikon väri

    \n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\n\t\t\t\t

    Valitse muut myymälät, joiden kohteet nostetaan myymäläsivulle

    \n\t\t\t\t\n\t\t\t
    }\n\n\t\t\t\n\t\t\t\t\n\t\t\t\n\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t
    \n\t);\n};\n\nconst mapStateToProps = (state: IApplicationState) => ({\n\tdocument: state.document,\n});\n\nexport default connect(mapStateToProps)(AgencyPage);\n"],"sourceRoot":""}