{"version":3,"sources":["components/Apartment/ApartmentHeading/styles.js","../assets/images/brand-identity/graphics/km-icon-online-offer.png","components/Apartment/ApartmentHeadingTypes/styles.js","components/Apartment/ApartmentHeadingTypes/index.tsx","components/Apartment/ApartmentHeading/index.tsx","pages/InfoDisplayPage/styles.js","pages/InfoDisplayPage/property.tsx","pages/InfoDisplayPage/agent.tsx","components/Logos/LogoWhite.tsx","pages/InfoDisplayPage/index.tsx"],"names":["HeadingContainer","styled","Container","withConfig","componentId","media","lg","_templateObject","_taggedTemplateLiteral","HeadingArea","div","_templateObject2","textStyles","H1","sm","_templateObject3","md","_templateObject4","SpaceInfo","color","Prices","span","PriceInfo","H3Condensed","props","green","module","exports","Types","xxl","OnlineOfferButton","CtaButton","Badge","_templateObject5","BadgeText","p","_templateObject6","_templateObject7","OnlineOfferBadge","onlineOffer","_templateObject8","_templateObject9","ApartmentHeadingTypes","doc","React","createElement","className","onClick","scrollToOnlineOffer","offset","hasWindow","stickyHeader","document","getElementById","height","getBoundingClientRect","e","console","log","scroller","scrollTo","duration","smooth","ApartmentHeading","noOnlineOffer","noWrapper","address","district","livingArea","municipality","rentInfo","rental","roomTypes","salesPrice","salesPriceUnencumbered","sortArea","totalArea","type","isLot","area","totalAreaBlock","toString","replace","priceText","priceTextAdditional","elems","Fragment","id","NumberFormat","decimalScale","decimalSeparator","displayType","fixedDecimalScale","renderText","fv","suffix","thousandSeparator","value","rentPerMonth","deposit","Wrapper","InfoDisplayWrapper","InfoDisplayHeader","NoProperties","InfoDisplayProperties","InfoDisplayPropertyWrapper","ribbon","InfoDisplayHeading","InfoDisplayPropertyImage","OpenHouseBanner","hexToRGB","InfoDisplayTexts","InfoDisplayText","TextLabel","TextValue","QrCodeWrapper","InfoDisplayFooter","InfoDisplayAgencyBlock","AgencyName","AgencyCompany","InfoDisplayFooterAgent","InfoDisplayFooterAgentCode","InfoDisplayAgents","InfoDisplayAgentWrapper","InfoDisplayAgentImageWrapper","AgentTexts","AgentName","h1","AgentTitle","AgentPhone","AgentEmail","AgentRecommendation","InfoDisplayProperty","infoDisplayMode","property","valueListing","firstImage","alt","src","getAssetUrl","description","onError","_ref","currentTarget","onerror","getImageUrl","openHouse","openHouseText","liveDemonstration","obj","getOpenHouseDate","weekday","toLowerCase","date","month","year","startHours","startMins","length","formatOpenHouse","houseType","key","energyCertificate","dangerouslySetInnerHTML","__html","qrCode","QRCode","fgColor","style","maxWidth","width","InfoDisplayAgent","agent","isSuperAgent","halfBodyImageName","halfBodyImagePath","name","imageName","imagePath","title","phone","email","recommendationPercentage","FaIcon","icon","LogoWhite","viewBox","fill","xmlns","clipPath","d","connect","state","agency","agents","properties","visibleProperties","setVisibleProperties","useState","nextProperties","setNextProperties","current","setCurrent","timer","useEffect","body","classList","add","tick","remove","fetchProperties","__awaiter","params","mode","axios","get","then","response","data","catch","getClassName","index","baseClass","window","screen","availHeight","availWidth","rangeEnd","concat","clearTimeout","c","newC","setTimeout","LogoHorizontal","map","marketingName","companyName"],"mappings":"2UAIO,MAAMA,EAAmBC,YAAOC,KAAUC,WAAA,CAAAC,YAAA,eAAjBH,CAAiB,ugBAG9CI,IAAMC,GAAEC,MAAAC,YAAA,iNA2DEC,EAAcR,IAAOS,IAAGP,WAAA,CAAAC,YAAA,eAAVH,CAAU,8IAKlCI,IAAMC,GAAEK,MAAAH,YAAA,6FAOPI,IAAWC,GAIXR,IAAMS,GAAEC,MAAAP,YAAA,0CAIRH,IAAMW,GAAEC,MAAAT,YAAA,2CAUCU,EAAYjB,IAAOS,IAAGP,WAAA,CAAAC,YAAA,eAAVH,CAAU,2LACzBkB,YAAM,OAAQ,GAKbA,YAAM,cAAe,IAgBnBC,GAFanB,IAAOoB,KAAIlB,WAAA,CAAAC,YAAA,eAAXH,CAAW,MAEfA,IAAOS,IAAGP,WAAA,CAAAC,YAAA,eAAVH,CAAU,4EAQnBqB,EAAYrB,IAAOS,IAAGP,WAAA,CAAAC,YAAA,eAAVH,CAAU,uNAChCW,IAAWW,YACJC,GAAUA,EAAMC,MAAQN,YAAM,cAAe,GAAKA,YAAM,OAAQ,GAO/DA,YAAM,OAAQ,K,mBCvIzBO,EAAOC,QAAU,8lP,yICKV,MAAMC,EAAQ3B,IAAOS,IAAGP,WAAA,CAAAC,YAAA,gBAAVH,CAAU,gOACVkB,YAAM,OAAQ,GAUhCd,IAAMC,GAAEC,MAAAC,YAAA,6JAQRH,IAAMwB,IAAGlB,MAAAH,YAAA,6CASCsB,EAAoB7B,YAAO8B,KAAU5B,WAAA,CAAAC,YAAA,gBAAjBH,CAAiB,sFAM/CI,IAAMC,GAAES,MAAAP,YAAA,uHAORH,IAAMwB,IAAGZ,MAAAT,YAAA,iGAOCwB,EAAQ/B,IAAOS,IAAGP,WAAA,CAAAC,YAAA,gBAAVH,CAAU,yNAEhBkB,YAAM,SAYlBd,IAAMC,GAAE2B,MAAAzB,YAAA,uHASE0B,EAAYjC,IAAOkC,EAAChC,WAAA,CAAAC,YAAA,gBAARH,CAAQ,wFACvBkB,YAAM,YAAa,GAM1Bd,IAAMC,GAAE8B,MAAA5B,YAAA,kCAIRH,IAAMwB,IAAGQ,MAAA7B,YAAA,mCAKC8B,EAAmBrC,IAAOoB,KAAIlB,WAAA,CAAAC,YAAA,gBAAXH,CAAW,2KAClBsC,IAStBlC,IAAMC,GAAEkC,MAAAhC,YAAA,gGAORH,IAAMwB,IAAGY,MAAAjC,YAAA,kD,WC1DGkC,MAzCgBlB,IAC9B,MAAM,IAAEmB,GAAQnB,GACV,YAAEe,GAAgBI,EAExB,IAAKJ,EACJ,OAAO,KAyBR,OACCK,IAAAC,cAACjB,EAAK,CAACkB,UAAU,iBAChBF,IAAAC,cAACb,EAAK,CAACc,UAAU,iBAChBF,IAAAC,cAACP,EAAgB,MACjBM,IAAAC,cAACX,EAAS,CAACY,UAAU,cAAa,kBAEnCF,IAAAC,cAACf,EAAiB,CAACiB,QA5BOC,KAC3B,IAAIC,GAAU,GAEd,GAAIC,IACH,IACC,MAAMC,EAAeC,SAASC,eAAe,2BAC7C,GAAIF,EAAc,CACjB,MAAM,OAAEG,GAAWH,EAAaI,wBAChCN,EAAUK,EAAS,GAAM,GAEzB,MAAOE,GACRC,QAAQC,IAAIF,GAIdG,WAASC,SAAS,yBAA0B,CAC3CC,SAAU,IACVZ,SACAa,QAAQ,MAUyC,qB,mBC2DrCC,IA7FWvC,IACzB,MAAM,IAAEmB,EAAG,cAAEqB,GAAgB,EAAK,UAAEC,GAAY,GAAUzC,GACpD,QACL0C,EAAO,SACPC,EAAQ,WACRC,EAAU,aACVC,EAAY,YACZ9B,EAAW,SACX+B,EAAQ,OACRC,EAAM,UACNC,EAAS,WACTC,EAAU,uBACVC,EAAsB,SACtBC,EAAQ,UACRC,EAAS,KACTC,GACGlC,EAEEmC,EAAiB,OAATD,GAA0B,SAATA,EACzBE,EAAQD,EAMXF,IAECD,GAEC,MATFP,IAECQ,GAEC,MAOCI,EAAiBJ,EAAYhC,IAAAC,cAAA,QAAMC,UAAU,cAAc,MAAG8B,EAAUK,WAAWC,QAAQ,IAAK,KAAM,UAAiB,GAEvHC,EAAYZ,EAAS,SAAWhC,EAAc,2BAAuB,gBACrE6C,EAAsBb,EAAS,eAAiBhC,EAAc,sCAAkC,cAetG,OAb2B8C,EAaFzC,IAAAC,cAAAD,IAAA0C,SAAA,KACxB1C,IAAAC,cAACpC,IAAW,CAAC8E,GAAG,qBACf3C,IAAAC,cAAC3B,IAAS,CAAC4B,UAAU,cACnBiC,GAAQnC,IAAAC,cAAAD,IAAA0C,SAAA,KAAE1C,IAAAC,cAAA,QAAMC,UAAU,cAAciC,EAAKE,WAAWC,QAAQ,IAAK,KAAM,UAAeF,GAC3FpC,IAAAC,cAAA,QAAMC,UAAW,cAAgBiC,EAAO,YAAc,KAAMD,EAAQD,EAAOL,IAE5E5B,IAAAC,cAAA,UACEqB,EAAQ,KAAGC,EACXA,GAAYE,EAAe,KAAO,GAClCA,GAEFzB,IAAAC,cAACzB,IAAM,CAAC0B,UAAU,4BACjBF,IAAAC,cAACvB,IAAS,CAACwB,UAAU,0BAA0BrB,OAAO,GACrDmB,IAAAC,cAAC2C,IAAY,CACZC,aAAc,EACdC,iBAAiB,IACjBC,YAAY,OACZC,mBAAmB,EACnBC,WAAYC,GAAMlD,IAAAC,cAACyC,WAAQ,KAAEQ,GAC7BC,OAAQxB,EAAS,aAAU,UAC3ByB,kBAAkB,IAClBC,MAAO1B,EAASD,EAAS4B,aAAexB,IAEzC9B,IAAAC,cAAA,QAAMC,UAAU,gCAAgCqC,IAEjDvC,IAAAC,cAACvB,IAAS,CAACwB,UAAU,iCACpBF,IAAAC,cAAC2C,IAAY,CACZC,aAAc,EACdC,iBAAiB,IACjBC,YAAY,OACZC,mBAAmB,EACnBC,WAAYC,GAAMlD,IAAAC,cAACyC,WAAQ,KAAEQ,GAC7BC,OAAO,UACPC,kBAAkB,IAClBC,MAAO1B,EAASD,EAAS6B,QAAU1B,IAEpC7B,IAAAC,cAAA,QAAMC,UAAU,sCAAsCsC,OAIvDpB,GAAiBpB,IAAAC,cAACH,EAAqB,CAACC,IAAKA,KApD3CsB,EACIoB,EAGPzC,IAAAC,cAACuD,IAAO,KACPxD,IAAAC,cAAC7C,IAAgB,KACfqF,IAPsBA,Q,kFC7C5B,MAIagB,EAAqBpG,IAAOS,IAAGP,WAAA,CAAAC,YAAA,gBAAVH,CAAU,+JAC7BkB,YAAM,QAAS,GACpBA,YAAM,OAAQ,GASRA,YAAM,YAAa,GACxBA,YAAM,UAIJmF,EAAoBrG,IAAOS,IAAGP,WAAA,CAAAC,YAAA,gBAAVH,CAAU,6EAO9BsG,EAAetG,IAAOS,IAAGP,WAAA,CAAAC,YAAA,gBAAVH,CAAU,+IAWzBuG,EAAwBvG,IAAOS,IAAGP,WAAA,CAAAC,YAAA,gBAAVH,CAAU,6KAgBlCwG,EAA6BxG,IAAOS,IAAGP,WAAA,CAAAC,YAAA,gBAAVH,CAAU,w5DACIkB,YAAM,SAvDnC,qBACH,OAmHpBuF,IAlHe,MAoKPvF,YAAM,aAAc,GAMpBA,YAAM,OAAQ,IA8CbwF,EAAqB1G,IAAOS,IAAGP,WAAA,CAAAC,YAAA,gBAAVH,CAAU,wBAI/BqC,EAAmBrC,IAAOS,IAAGP,WAAA,CAAAC,YAAA,gBAAVH,CAAU,kRAgB7B2G,EAA2B3G,IAAOS,IAAGP,WAAA,CAAAC,YAAA,gBAAVH,CAAU,+qBAoDrC4G,EAAkB5G,IAAOS,IAAGP,WAAA,CAAAC,YAAA,gBAAVH,CAAU,uSAE1B6G,YAAS3F,YAAM,YAAa,GAAI,IACrCA,YAAM,cAAe,IAqBlB4F,EAAmB9G,IAAOS,IAAGP,WAAA,CAAAC,YAAA,gBAAVH,CAAU,yNAmB7B+G,EAAkB/G,IAAOS,IAAGP,WAAA,CAAAC,YAAA,iBAAVH,CAAU,uGAW5BgH,EAAYhH,IAAOS,IAAGP,WAAA,CAAAC,YAAA,iBAAVH,CAAU,MAGtBiH,EAAYjH,IAAOS,IAAGP,WAAA,CAAAC,YAAA,iBAAVH,CAAU,MAGtBkH,EAAgBlH,IAAOS,IAAGP,WAAA,CAAAC,YAAA,iBAAVH,CAAU,8FAa1BmH,EAAoBnH,IAAOS,IAAGP,WAAA,CAAAC,YAAA,iBAAVH,CAAU,8KAE5BkB,YAAM,QAAS,GASdA,YAAM,YAAa,GACxBA,YAAM,UAIJkG,EAAyBpH,IAAOS,IAAGP,WAAA,CAAAC,YAAA,iBAAVH,CAAU,qHASnCqH,EAAarH,IAAOS,IAAGP,WAAA,CAAAC,YAAA,iBAAVH,CAAU,eAC1BkB,YAAM,YAAa,IAGhBoG,EAAgBtH,IAAOS,IAAGP,WAAA,CAAAC,YAAA,iBAAVH,CAAU,MAG1BuH,EAAyBvH,IAAOS,IAAGP,WAAA,CAAAC,YAAA,iBAAVH,CAAU,2GAEtCkB,YAAM,UAQHsG,EAA6BxH,IAAOS,IAAGP,WAAA,CAAAC,YAAA,iBAAVH,CAAU,gFACrCkB,YAAM,UAMRuG,EAAoBzH,IAAOS,IAAGP,WAAA,CAAAC,YAAA,iBAAVH,CAAU,uKAU9B0H,EAA0B1H,IAAOS,IAAGP,WAAA,CAAAC,YAAA,iBAAVH,CAAU,8nBACOkB,YAAM,SAvanC,qBACH,OA8cpBuF,IA7ce,OAydNkB,EAA+B3H,IAAOS,IAAGP,WAAA,CAAAC,YAAA,iBAAVH,CAAU,wZA0BzC4H,EAAa5H,IAAOS,IAAGP,WAAA,CAAAC,YAAA,iBAAVH,CAAU,uHAE1BkB,YAAM,OAAQ,IAOX2G,EAAY7H,IAAO8H,GAAE5H,WAAA,CAAAC,YAAA,iBAATH,CAAS,uCACxBkB,YAAM,YAAa,IAKhB6G,EAAa/H,IAAOS,IAAGP,WAAA,CAAAC,YAAA,iBAAVH,CAAU,uDAKvBgI,EAAahI,IAAOS,IAAGP,WAAA,CAAAC,YAAA,iBAAVH,CAAU,gCAC1BkB,YAAM,aAAc,IAIjB+G,EAAajI,IAAOS,IAAGP,WAAA,CAAAC,YAAA,iBAAVH,CAAU,gCAC1BkB,YAAM,aAAc,IAIjBgH,EAAsBlI,IAAOS,IAAGP,WAAA,CAAAC,YAAA,iBAAVH,CAAU,qIAQlCkB,YAAM,cAAe,I,2EC5gBzB,MAAMiH,EAAuB5G,IAEnC,MAAM,UAAEsB,EAAS,gBAAEuF,EAAkB,UAAS,SAAEC,GAAa9G,EAgB7D,OAAOoB,IAAAC,cAAC4D,EAA0B,CAAC3D,UAAWA,GAC7CF,IAAAC,cAAC8D,EAAkB,KAClB/D,IAAAC,cAACkB,IAAgB,CAACpB,IAAK2F,EAAUtE,eAAe,EAAMC,WAAW,IAChEqE,EAAS/F,aAAeK,IAAAC,cAACP,EAAgB,CAACQ,UAAWuF,KAEvDzF,IAAAC,cAAC+D,EAAwB,CAAC9D,WAAYwF,EAASC,aAAe,gBAAkB,IAAM,IAAMF,IACzFC,EAASE,YAAc5F,IAAAC,cAAA,OACxB4F,IAAI,GACJC,IAAKC,YAAY,+DAEjBL,EAASE,YAAc5F,IAAAC,cAAA,OACvB4F,IAAKH,EAASE,WAAWI,aAAe,GACxCC,QAASC,IAAsB,IAArB,cAAEC,GAAeD,EAC1BC,EAAcC,QAAU,KACxBD,EAAcL,IAAMC,YAAY,8DAEjCD,IAAKC,YAAYM,YAAYX,EAASE,eAEtCF,EAASY,WAAatG,IAAAC,cAACgE,EAAe,CAAC/D,UAAWuF,GAhC5Ba,KACxB,MAAMC,EAAgBD,EAAUE,kBAC7B,gBACoB,UAAnBF,EAAUrE,KACT,eACA,oBAGCwE,EAAWC,YAAiBJ,GAAW,GAC7C,OAAOC,EAAgB,IAAME,EAAIE,QAAQC,cAAgB,MAAQH,EAAII,KAAO,IAAMJ,EAAIK,MAAQ,IAAML,EAAIM,KACvG,QAAUN,EAAIO,WAAa,KAA2C,IAApCP,EAAIQ,UAAU5E,WAAW6E,OAAe,IAAM,IAAMT,EAAIQ,WAuBxFE,CAAgBzB,EAASY,aAI5BtG,IAAAC,cAACkE,EAAgB,CAACjE,UAAWuF,GAC5BzF,IAAAC,cAACmE,EAAe,KACfpE,IAAAC,cAACqE,EAAS,KAAEoB,EAAS0B,YAEtBpH,IAAAC,cAACmE,EAAe,KACfpE,IAAAC,cAACoE,EAAS,KAAC,gBACXrE,IAAAC,cAACqE,EAAS,KAAEoB,EAAS2B,MAErB3B,EAAS4B,mBAAqBtH,IAAAC,cAACmE,EAAe,KAC9CpE,IAAAC,cAACoE,EAAS,KAAC,mCACXrE,IAAAC,cAACqE,EAAS,CAACiD,wBAAyB,CAAEC,OAAQ9B,EAAS4B,sBAEvD5B,EAAS+B,QAAUzH,IAAAC,cAACsE,EAAa,CAACrE,UAAWuF,GAC7CzF,IAAAC,cAACyH,IAAM,CACNC,QAASpJ,YAAM,YAAa,GAC5BqJ,MAAO,CAAElH,OAAQ,OAAQmH,SAAU,OAAQC,MAAO,QAClDzE,MAAOqC,EAAS+B,a,YC7Dd,MAAMM,EAAoBnJ,IAEhC,MAAM,MAAEoJ,EAAK,UAAE9H,GAActB,EAE7B,OAAOoB,IAAAC,cAAC8E,EAAuB,CAAC7E,UAAWA,GAC1CF,IAAAC,cAAC+E,EAA4B,CAAC9E,UAAW8H,EAAMC,aAAe,cAAgB,IAC3ED,EAAME,mBAAqBF,EAAMG,mBAAsBnI,IAAAC,cAAA,OACxD4F,IAAKmC,EAAMI,MAAQ,GACnBtC,IAAKC,YAAY,UAAYiC,EAAMG,kBAAoB,IAAMH,EAAME,uBAEhEF,EAAME,oBAAsBF,EAAMG,oBAAsBH,EAAMK,WAAaL,EAAMM,WAActI,IAAAC,cAAA,OAClG4F,IAAKmC,EAAMI,MAAQ,GACnBtC,IAAKC,YAAY,UAAYiC,EAAMM,UAAY,IAAMN,EAAMK,cAG7DrI,IAAAC,cAACgF,EAAU,KACVjF,IAAAC,cAACiF,EAAS,KAAE8C,EAAMI,MAAQ,IAC1BpI,IAAAC,cAACmF,EAAU,KAAE4C,EAAMO,OAAS,IAC5BvI,IAAAC,cAACoF,EAAU,KAAE2C,EAAMQ,OAAS,IAC5BxI,IAAAC,cAACqF,EAAU,KAAE0C,EAAMS,OAAS,IAC3BT,EAAMU,0BAA4B1I,IAAAC,cAACsF,EAAmB,KACtDvF,IAAAC,cAAC0I,IAAM,CAACC,KAAK,cACZZ,EAAMU,yBAA0B,iCClCxBG,EAAYA,IACjB7I,IAAAC,cAAA,OAAK6H,MAAM,MAAMpH,OAAO,KAAKoI,QAAQ,aAAaC,KAAK,OAAOC,MAAM,8BAC1EhJ,IAAAC,cAAA,KAAGgJ,SAAS,0BACXjJ,IAAAC,cAAA,QACCiJ,EAAE,iLACFH,KAAK,UACN/I,IAAAC,cAAA,QACCiJ,EAAE,oNACFH,KAAK,UACN/I,IAAAC,cAAA,QAAMiJ,EAAE,oDAAoDH,KAAK,UACjE/I,IAAAC,cAAA,QACCiJ,EAAE,iNACFH,KAAK,UACN/I,IAAAC,cAAA,QAAMiJ,EAAE,oDAAoDH,KAAK,UACjE/I,IAAAC,cAAA,QACCiJ,EAAE,kRACFH,KAAK,UACN/I,IAAAC,cAAA,QACCiJ,EAAE,+SACFH,KAAK,UACN/I,IAAAC,cAAA,QACCiJ,EAAE,0eACFH,KAAK,UACN/I,IAAAC,cAAA,QACCiJ,EAAE,kNACFH,KAAK,UACN/I,IAAAC,cAAA,QAAMiJ,EAAE,oDAAoDH,KAAK,UACjE/I,IAAAC,cAAA,QACCiJ,EAAE,ynBACFH,KAAK,UACN/I,IAAAC,cAAA,QACCiJ,EAAE,+SACFH,KAAK,UACN/I,IAAAC,cAAA,QACCiJ,EAAE,oNACFH,KAAK,UACN/I,IAAAC,cAAA,QACCiJ,EAAE,oNACFH,KAAK,UACN/I,IAAAC,cAAA,QACCiJ,EAAE,4ZACFH,KAAK,UACN/I,IAAAC,cAAA,QACCiJ,EAAE,qeACFH,KAAK,UACN/I,IAAAC,cAAA,QACCiJ,EAAE,wdACFH,KAAK,UACN/I,IAAAC,cAAA,QACCiJ,EAAE,wdACFH,KAAK,UACN/I,IAAAC,cAAA,QACCiJ,EAAE,oNACFH,KAAK,UACN/I,IAAAC,cAAA,QAAMiJ,EAAE,oDAAoDH,KAAK,UACjE/I,IAAAC,cAAA,QAAMiJ,EAAE,kDAAkDH,KAAK,UAC/D/I,IAAAC,cAAA,QACCiJ,EAAE,yeACFH,KAAK,UACN/I,IAAAC,cAAA,QACCiJ,EAAE,udACFH,KAAK,UACN/I,IAAAC,cAAA,QACCiJ,EAAE,6GACFH,KAAK,UACN/I,IAAAC,cAAA,QAAMiJ,EAAE,kDAAkDH,KAAK,UAC/D/I,IAAAC,cAAA,QAAMiJ,EAAE,qEAAqEH,KAAK,UAClF/I,IAAAC,cAAA,QAAMiJ,EAAE,0FACFH,KAAK,aAEZ/I,IAAAC,cAAA,YACCD,IAAAC,cAAA,YAAU0C,GAAG,oBACZ3C,IAAAC,cAAA,QAAM6H,MAAM,MAAMpH,OAAO,KAAKqI,KAAK,a,0SCmKxBI,4BAJUC,IAAwB,CAChDrJ,IAAKqJ,EAAM5I,WAGG2I,CApNSjD,IAAY,IAAX,IAAEnG,GAAKmG,EAE/B,MAAM,OAAEmD,EAAM,OAAEC,EAAM,gBAAE7D,EAAkB,UAAS,WAAE8D,GAAexJ,GAC5DyJ,EAAmBC,GAAyBC,mBAAcH,IAC1DI,EAAgBC,GAAsBF,mBAAcH,IACpDM,EAASC,GAAeJ,mBAAiB,GACjD,IAAIK,EAGJC,oBAAU,KACL1J,MACHE,SAASyJ,KAAKC,UAAUC,IAAI,mBAC5BC,KAGM,KACF9J,KACHE,SAASyJ,KAAKC,UAAUG,OAAO,qBAG/B,IAEHL,oBAAU,KACe,UAApBvE,GAGAoE,IAAYL,EAAkBtC,QAA8B,SAApBzB,EAA6B,EAAI,IAC5E6E,KAEC,CAAET,IAEL,MAAMS,EAAkBA,IAAWC,OAAA,6BAClC,IAAKlB,EAEJ,YADAxI,QAAQC,IAAI,mCAGb,MAAM0J,EAAS,CACdnB,OAAQA,EAAOhC,IACfoD,KAAMhF,GAEPiF,IAAMC,IAAI,yCAA0C,CAAEH,WAAUI,KAAMC,IACrEjB,EAAkBiB,EAASC,QACzBC,MAAOnK,IACTC,QAAQC,IAAI,kCAAmCF,QAI3CoK,EAAgBC,IAErB,IAAIC,EAAoB5K,KAAa6K,OAAOC,OAAOC,YAAcF,OAAOC,OAAOE,WAAa,YAAc,WAE1G,GAAwB,SAApB7F,EAA4B,CAC/ByF,GAAa,QACb,MAAMK,EAAW1B,EAAU,EAC3B,GAAIoB,GAASpB,GAAWoB,EAAQM,EAAU,CACzC,OAAQN,GACP,KAAKpB,EACJqB,GAAa,SACb,MACD,KAAKrB,EAAU,EACdqB,GAAa,UACb,MACD,KAAKrB,EAAU,EACdqB,GAAa,SACb,MACD,KAAKrB,EAAU,EACdqB,GAAa,UAGf,MAAO,GAAPM,OAAUN,EAAS,YAEpB,GAAID,EAAQpB,GAAWoB,EAAQ,GAAKpB,EAAS,CAC5C,OAAQoB,GACP,KAAKpB,EAAU,EACdqB,GAAa,SACb,MACD,KAAKrB,EAAU,EACdqB,GAAa,UACb,MACD,KAAKrB,EAAU,EACdqB,GAAa,SACb,MACD,KAAKrB,EAAU,EACdqB,GAAa,UAGf,MAAO,GAAPM,OAAUN,EAAS,SAEpB,GAAID,EAAQpB,GAAWoB,EAAQpB,GAAW,EAAG,CAC5C,OAAQoB,GACP,KAAKpB,EAAU,EACdqB,GAAa,SACb,MACD,KAAKrB,EAAU,EACdqB,GAAa,UACb,MACD,KAAKrB,EAAU,EACdqB,GAAa,SACb,MACD,KAAKrB,EAAU,EACdqB,GAAa,UAGf,MAAO,GAAPM,OAAUN,EAAS,cAEd,CACN,GAAID,IAAUpB,EACb,MAAO,GAAP2B,OAAUN,EAAS,YAEpB,GAAID,EAAQ,IAAMpB,GAAYA,IAAYL,EAAkBtC,OAAS,GAAgB,IAAV+D,EAC1E,MAAO,GAAPO,OAAUN,EAAS,SAEpB,GAAID,EAAQ,IAAMpB,GAAwB,IAAZA,GAAkBoB,IAAUzB,EAAkBtC,OAAS,EACpF,MAAO,GAAPsE,OAAUN,EAAS,WAKhBd,EAAOA,KACRL,GACH0B,aAAa1B,GAEVzJ,KAAa,UAAW6K,QAAUA,OAAe,OAIrDrB,EAAY4B,IACX,IAAIC,EAAOD,GAAyB,SAApBjG,EAA6B,EAAI,GAWjD,MAVwB,UAApBA,EACCkG,GAAQrC,EAAOpC,SAClByE,EAAO,GAGJA,GAAQnC,EAAkBtC,SAC7BuC,EAAqBE,GACrBgC,EAAO,GAGFA,IAfP5B,EAAQ6B,WAAWxB,EApHF,MAwInB,OAAOpK,IAAAC,cAACwD,EAAkB,CAACvD,UAAWuF,GAErCzF,IAAAC,cAACyD,EAAiB,KACI,UAApB+B,EAA8BzF,IAAAC,cAAC4I,EAAS,MAAM7I,IAAAC,cAAC4L,IAAc,QAG7DxC,GAAUrJ,IAAAC,cAAC0D,EAAY,KAAC3D,IAAAC,cAAA,UAAI,qCAE7BoJ,GAAUrJ,IAAAC,cAAAD,IAAA0C,SAAA,KACW,UAApB+C,EACEzF,IAAAC,cAAAD,IAAA0C,SAAA,KACkB,IAAlB4G,EAAOpC,OACLlH,IAAAC,cAAC0D,EAAY,KAAC3D,IAAAC,cAAA,UAAI,uCAClBD,IAAAC,cAAC6E,EAAiB,KAClBwE,EAAOwC,IAAI,CAAC9D,EAAYiD,IACjBjL,IAAAC,cAAC8H,EAAgB,CACvBC,MAAOA,EACP9H,UAAW8K,EAAaC,GACxB5D,IAAK,OAAS4D,OAMjBjL,IAAAC,cAAAD,IAAA0C,SAAA,KAC6B,IAA7B8G,EAAkBtC,QAAgBlH,IAAAC,cAAC0D,EAAY,KAC/C3D,IAAAC,cAAA,UAAI,wBAAmBoJ,EAAO0C,eAC9B/L,IAAAC,cAAA,UAAKoJ,EAAOb,QAGbxI,IAAAC,cAAC2D,EAAqB,CAAC1D,UAAWuF,GAChC+D,EAAkBsC,IAAI,CAACpG,EAAeuF,IAC/BjL,IAAAC,cAACuF,EAAmB,CAC1BtF,UAAW8K,EAAaC,GACxBxF,gBAAiBA,EACjB4B,IAAK,OAAS4D,EACdvF,SAAUA,OAKf1F,IAAAC,cAACuE,EAAiB,CAACtE,UAAWuF,GACR,UAApBA,EACEzF,IAAAC,cAAAD,IAAA0C,SAAA,KAAI4G,EAAQO,IAAaP,EAAQO,GAAUpC,QAAWzH,IAAAC,cAAC2E,EAAsB,KAC9E,4CACA5E,IAAAC,cAAC4E,EAA0B,KAC1B7E,IAAAC,cAACyH,IAAM,CACNC,QAASpJ,YAAM,YAAa,GAC5BqJ,MAAO,CAAElH,OAAQ,OAAQmH,SAAU,OAAQC,MAAO,QAClDzE,MAAOiG,EAAQO,GAAUpC,YAK5BzH,IAAAC,cAACwE,EAAsB,KACtBzE,IAAAC,cAACyE,EAAU,KAAC,wBAAmB2E,EAAO0C,eACtC/L,IAAAC,cAAC0E,EAAa,KAAE0E,EAAO2C","file":"assets/js/pages-InfoDisplayPage.chunk.js?cb=3b46c307d3a266afa1ed","sourcesContent":["import styled from \"styled-components\";\nimport { color, media, textStyles } from \"@utils/style-utils\";\nimport { Container } from \"@components/Grid\";\n\nexport const HeadingContainer = styled(Container)`\n\tmargin-top: 100px;\n\n\t${media.lg`\n\t\talign-items: center;\n\t\tdisplay: flex;\n\t\tflex-direction: row;\n\t\tjustify-content: space-between;\n\t\tmargin-top: 150px;\n\n\t\t&::before,\n\t\t&::after {\n\t\t\tdisplay: none;\n\t\t}\n\t`};\n\n\t@supports (display: grid) {\n\t\t@media (min-width: 764px) and (max-width: 991px) {\n\t\t\tdisplay: grid;\n\t\t\tgrid-column-gap: 20px;\n\t\t\tgrid-template-columns: 2fr 1fr;\n\n\t\t\th1 {\n\t\t\t\tfont-size: 28px !important;\n\t\t\t}\n\n\t\t\t.heading-types {\n\t\t\t\tflex-direction: column;\n\n\t\t\t\t.heading-badge {\n\t\t\t\t\tflex-direction: column;\n\t\t\t\t\tposition: static;\n\t\t\t\t\ttransform: none;\n\n\t\t\t\t\tspan {\n\t\t\t\t\t\theight: 52px;\n\t\t\t\t\t\tmargin-bottom: 5px;\n\t\t\t\t\t\tmargin-right: 0;\n\t\t\t\t\t\twidth: 50px;\n\t\t\t\t\t}\n\n\t\t\t\t\t.badge-text {\n\t\t\t\t\t\tfont-size: 13px;\n\t\t\t\t\t\tfont-weight: bold;\n\t\t\t\t\t\tmargin-bottom: 22px;\n\t\t\t\t\t\ttext-transform: uppercase;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tbutton {\n\t\t\t\t\tfont-size: 16px !important;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t&::before,\n\t\t\t&::after {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\t\t}\n\t}\n`;\n\nexport const HeadingArea = styled.div`\n\tdisplay: flex;\n\tflex-direction: column;\n\tpadding: 40px 0;\n\n\t${media.lg`\n\t\tdisplay: block;\n\t\tmax-width: 896px;\n\t\twidth: calc(896 / 1364 * 100%);\n\t`}\n\n\th1 {\n\t\t${textStyles.H1};\n\t\torder: -1;\n\t\tmargin-bottom: 33px;\n\n\t\t${media.sm`\n\t\t\tmargin-bottom: 43px;\n\t\t`};\n\n\t\t${media.md`\n\t\t\tmargin-bottom: 37px;\n\t\t`};\n\n\t\t@media (max-width: 991px) {\n\t\t\tmargin-top: 0;\n\t\t}\n\t}\n`;\n\nexport const SpaceInfo = styled.div`\n\tcolor: ${color(\"grey\", 3)};\n\tfont-size: 20px;\n\tmargin-bottom: 24px;\n\n\tspan {\n\t\tcolor: ${color(\"greenBright\", 1)};\n\t\tdisplay: inline-block;\n\t\tfont-weight: 500;\n\t\tmargin-right: 12px;\n\t\t&:not(:first-of-type) {\n\t\t\tmargin-left: -12px;\n\t\t}\n\n\t\t&.has-area {\n\t\t\tmargin-left: 0;\n\t\t}\n\t}\n`;\n\nexport const LivingArea = styled.span``;\n\nexport const Prices = styled.div`\n\tdisplay: flex;\n\n\t@media (max-width: 485px) {\n\t\tjustify-content: space-between;\n\t}\n`;\n\nexport const PriceInfo = styled.div`\n\t${textStyles.H3Condensed}\n\tcolor: ${props => (props.green ? color(\"greenBright\", 1) : color(\"grey\", 2))};\n\n\t@media (max-width: 485px) {\n\t\twidth: calc((100% - 24px) / 2);\n\t}\n\n\tspan {\n\t\tcolor: ${color(\"grey\", 3)};\n\t\tdisplay: block;\n\t\tfont-size: 15px;\n\t\tfont-weight: normal;\n\t\tmargin-top: 6px;\n\t}\n\n\t&:first-of-type {\n\t\t@media (min-width: 486px) {\n\t\t\tmargin-right: 45px;\n\t\t}\n\t}\n`;\n","module.exports = \"data:image/png;base64,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\"","import styled from \"styled-components\";\nimport CtaButton from \"@components/Buttons/CtaButton\";\nimport onlineOffer from \"@images/brand-identity/graphics/km-icon-online-offer.png\";\nimport { media, color } from \"@utils/style-utils\";\n\nexport const Types = styled.div`\n\tborder: 1px solid ${color(\"grey\", 5)};\n\tborder-radius: 4px;\n\tdisplay: flex;\n\tjustify-content: space-between;\n\tmargin-bottom: 32px;\n\tmargin-top: 32px;\n\tpadding: 23px 22px 20px;\n\tposition: relative;\n\twidth: 100%;\n\n\t${media.lg`\n\t\theight: 100%;\n\t\tmargin-bottom: 0;\n\t\tmargin-top: 0;\n\t\tpadding: 32px 15px 32px 0;\n\t\twidth: calc((1364 - 896 - 40) / 1364 * 100%);\n\t`}\n\n\t${media.xxl`\n\t\tpadding: 32px 24px 32px 0;\n\t`}\n\n\t@media (min-width: 1240px) {\n\t\tpadding-left: 0;\n\t}\n`;\n\nexport const OnlineOfferButton = styled(CtaButton)`\n\tflex-grow: 1;\n\tfont-size: 17px !important;\n\tline-height: normal;\n\tmax-height: 103px;\n\n\t${media.lg`\n\t\tfont-size: 15px !important;\n\t\tmax-width: 190px;\n\t\tpadding-left: 40px;\n\t\tpadding-right: 40px;\n\t`}\n\n\t${media.xxl`\n\t\tfont-size: 16px !important;\n\t\tpadding-left: 16px;\n\t\tpadding-right: 16px;\n\t`}\n`;\n\nexport const Badge = styled.div`\n\talign-items: center;\n\tbackground: ${color(\"white\")};\n\tbottom: calc(100% + 5px);\n\tdisplay: flex;\n\tflex-grow: 1;\n\tjustify-content: center;\n\tleft: 50%;\n\tpadding: 5px 12px;\n\tposition: absolute;\n\ttext-align: center;\n\ttransform: translate(-50%, 50%);\n\twidth: auto;\n\n\t${media.lg`\n\t\tbottom: 0;\n\t\tflex-direction: column;\n\t\tleft: 0;\n\t\tposition: relative;\n\t\ttransform: none;\n\t`}\n`;\n\nexport const BadgeText = styled.p`\n\tcolor: ${color(\"greenDark\", 1)};\n\tfont-size: 13px;\n\tfont-weight: bold;\n\tmargin: 0;\n\ttext-transform: uppercase;\n\n\t${media.lg`\n\t\tfont-size: 12px;\n\t`}\n\n\t${media.xxl`\n\t\tfont-size: 13px;\n\t`}\n`;\n\nexport const OnlineOfferBadge = styled.span`\n\tbackground-image: url(${onlineOffer});\n\tbackground-repeat: no-repeat;\n\tbackground-position: center;\n\tbackground-size: contain;\n\tdisplay: block;\n\theight: 37px;\n\tmargin-right: 7px;\n\twidth: 35px;\n\n\t${media.lg`\n\t\theight: 54px;\n\t\tmargin-bottom: 4px;\n\t\tmargin-right: 0;\n\t\twidth: 50px;\n\t`}\n\n\t${media.xxl`\n\t\theight: 80px;\n\t\twidth: 75px;\n\t`}\n`;\n","import React from \"react\";\nimport { scroller } from \"react-scroll\";\n\nimport { Types, Badge, BadgeText, OnlineOfferBadge, OnlineOfferButton } from \"./styles\";\nimport { hasWindow } from \"@utils\";\n\ninterface IProps {\n\tdoc: IProperty;\n}\n\nconst ApartmentHeadingTypes = (props: IProps) => {\n\tconst { doc } = props;\n\tconst { onlineOffer } = doc;\n\n\tif (!onlineOffer) {\n\t\treturn null;\n\t}\n\n\tconst scrollToOnlineOffer = () => {\n\t\tlet offset = -50;\n\n\t\tif (hasWindow) {\n\t\t\ttry {\n\t\t\t\tconst stickyHeader = document.getElementById(\"apartment-sticky-header\");\n\t\t\t\tif (stickyHeader) {\n\t\t\t\t\tconst { height } = stickyHeader.getBoundingClientRect();\n\t\t\t\t\toffset = (height / 2) * -1;\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\tconsole.log(e);\n\t\t\t}\n\t\t}\n\n\t\tscroller.scrollTo(\"apartment-online-offer\", {\n\t\t\tduration: 1000,\n\t\t\toffset,\n\t\t\tsmooth: true,\n\t\t});\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\tTarjouskauppa\n\t\t\t\n\t\t\tSeuraa kohdetta\n\t\t\n\t);\n};\n\nexport default ApartmentHeadingTypes;\n","import React, { Fragment } from \"react\";\nimport { Wrapper } from \"@components/Grid\";\nimport ApartmentHeadingTypes from \"@components/Apartment/ApartmentHeadingTypes\";\nimport { HeadingContainer, HeadingArea, SpaceInfo, Prices, PriceInfo } from \"./styles\";\nimport NumberFormat from \"react-number-format\";\n\ninterface IProps {\n\tdoc: IProperty;\n\tnoOnlineOffer?: boolean;\n\tnoWrapper?: boolean;\n}\n\nconst ApartmentHeading = (props: IProps) => {\n\tconst { doc, noOnlineOffer = false, noWrapper = false } = props;\n\tconst {\n\t\taddress,\n\t\tdistrict,\n\t\tlivingArea,\n\t\tmunicipality,\n\t\tonlineOffer,\n\t\trentInfo,\n\t\trental,\n\t\troomTypes,\n\t\tsalesPrice,\n\t\tsalesPriceUnencumbered,\n\t\tsortArea,\n\t\ttotalArea,\n\t\ttype,\n\t} = doc;\n\n\tconst isLot = type === \"TO\" || type === \"OKTT\";\n\tconst area = !isLot\n\t\t? livingArea\n\t\t\t? livingArea\n\t\t\t: totalArea\n\t\t\t\t? totalArea\n\t\t\t\t: null\n\t\t: totalArea\n\t\t\t? totalArea\n\t\t\t: sortArea\n\t\t\t\t? sortArea\n\t\t\t\t: null;\n\n\tconst totalAreaBlock = totalArea ? / {totalArea.toString().replace(\".\", \",\")} m² : \"\";\n\n\tconst priceText = rental ? \"Vuokra\" : onlineOffer ? \"Velaton lähtöhinta\" : \"Velaton hinta\";\n\tconst priceTextAdditional = rental ? \"Vuokravakuus\" : onlineOffer ? \"Lähtöhinta ilman velkaosuutta\" : \"Myyntihinta\";\n\n\tconst conditionallyWrap = (elems: any) => {\n\t\tif (noWrapper) {\n\t\t\treturn elems;\n\t\t}\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{elems}\n\t\t\t\t\n\t\t\t\n\t\t);\n\t};\n\n\treturn conditionallyWrap(<>\n\t\t\n\t\t\t\n\t\t\t\t{area && <>{area.toString().replace(\".\", \",\")} m²{totalAreaBlock}>}\n\t\t\t\t{isLot ? type : roomTypes}\n\t\t\t\n\t\t\t\n\t\t\t\t{address}, {district}\n\t\t\t\t{district && municipality ? \", \" : \"\"}\n\t\t\t\t{municipality}\n\t\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t {fv}}\n\t\t\t\t\t\tsuffix={rental ? \" €/kk\" : \" €\"}\n\t\t\t\t\t\tthousandSeparator=\" \"\n\t\t\t\t\t\tvalue={rental ? rentInfo.rentPerMonth : salesPriceUnencumbered}\n\t\t\t\t\t/>\n\t\t\t\t\t{priceText}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t {fv}}\n\t\t\t\t\t\tsuffix=\" €\"\n\t\t\t\t\t\tthousandSeparator=\" \"\n\t\t\t\t\t\tvalue={rental ? rentInfo.deposit : salesPrice}\n\t\t\t\t\t/>\n\t\t\t\t\t{priceTextAdditional}\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t{!noOnlineOffer && }\n\t>);\n};\n\nexport default ApartmentHeading;\n","import styled from \"styled-components\";\nimport { color, hexToRGB, ribbon } from \"@utils/style-utils\";\n\nconst ANIMATION_DURATION = \"0.5s\";\nconst ANIMATION_DELAY = \"0.5s\";\nconst SLIDE_TIME = \"10s\";\n\nexport const InfoDisplayWrapper = styled.div`\n\tbackground: ${color(\"beige\", 3)};\n\tcolor: ${color(\"grey\", 1)};\n\tdisplay: flex;\n\tflex-direction: column;\n\tmargin: 0;\n\tmin-height: 100vh;\n\tmin-width: 100vw;\n\tposition: relative;\n\n\t&.agent {\n\t\tbackground: ${color(\"greenDark\", 1)};\n\t\tcolor: ${color(\"white\")};\n\t}\n`;\n\nexport const InfoDisplayHeader = styled.div`\n\talign-items: center;\n\tdisplay: flex;\n\theight: 14.688em;\n\tjustify-content: center;\n`;\n\nexport const NoProperties = styled.div`\n\talign-items: center;\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 2em;\n\theight: 100%;\n\tjustify-content: center;\n\tmin-height: calc(100vh - 4em);\n\twidth: 100%;\n`;\n\nexport const InfoDisplayProperties = styled.div`\n\tflex: 1 0 auto;\n\tleft: 3em;\n\tmax-width: calc(100vw - 6em);\n\toverflow: hidden;\n\tposition: relative;\n\ttop: 0;\n\n\t&.four {\n\t\tdisplay: flex;\n\t\tflex-wrap: wrap;\n\t\tgap: 1.5em;\n\t\tjustify-content: space-between;\n\t}\n`;\n\nexport const InfoDisplayPropertyWrapper = styled.div`\n\tbackground: linear-gradient(to top, transparent 6px, ${color(\"white\")} 6px 100%);\n\theight: 100%;\n\tleft: 0;\n\tmax-width: 100%;\n\tmin-height: 100%;\n\tpadding: 3em;\n\tposition: absolute;\n\ttransform: translateX(200vw);\n\ttransition: none;\n\ttop: 0;\n\twidth: 100%;\n\n\t&.four {\n\t\theight: calc(50% - 1.5em);\n\t\tmin-height: calc(50% - 1.5em);\n\t\toverflow: hidden;\n\t\twidth: calc(50% - 1.5em);\n\n\t\t&.first, &.third {\n\t\t\tleft: 0;\n\t\t}\n\n\t\t&.second, &.fourth {\n\t\t\tleft: unset;\n\t\t\tright: 0;\n\t\t}\n\n\t\t&.third, &.fourth {\n\t\t\ttop: unset;\n\t\t\tbottom: 0;\n\t\t}\n\t}\n\n\t&.current {\n\t\ttransform: translateX(0);\n\t\ttransition: transform ${ANIMATION_DURATION} ease-in-out;\n\n\t\t:after {\n\t\t\twidth: 0;\n\t\t}\n\t}\n\n\t&.prev {\n\t\ttransform: translateX(-100vw);\n\t\ttransition: transform ${ANIMATION_DURATION} ease-in-out;\n\n\t\t&:after {\n\t\t\twidth: 0;\n\t\t}\n\t}\n\n\t&.next {\n\t\ttransform: translateX(100vw);\n\t\ttransition: transform ${ANIMATION_DURATION} ease-in-out ${ANIMATION_DELAY};\n\n\t\t&:after {\n\t\t\twidth: 100%;\n\t\t}\n\t}\n\n\t&:after {\n\t\t${ribbon};\n\t\tcontent: '';\n\t\tdisplay: block;\n\t\theight: 6px;\n\t\tleft: 0;\n\t\tposition: absolute;\n\t\tbottom: 0;\n\t\ttransition: width ${SLIDE_TIME} linear;\n\t\twidth: 100%;\n\t}\n\n\t&.landscape:not(.four) {\n\t\tmax-height: unset;\n\n\t\timg {\n\t\t\tmax-height: unset;\n\t\t}\n\t}\n\n\t#apartment-heading {\n\t\talign-items: flex-start;\n\t\tdisplay: flex !important;\n\t\tjustify-content: flex-start;\n\t\tpadding: 3em 0 40px 0;\n\t\twidth: 100%;\n\n\t\th1 {\n\t\t\tfont-size: 4.2rem;\n\t\t\tmargin-bottom: 2rem;\n\t\t\tmargin-top: 0;\n\t\t\torder: -4;\n\t\t\twhite-space: normal;\n\t\t}\n\n\t\t.space-info {\n\t\t\tmargin-bottom: 3.75em;\n\t\t\torder: -2;\n\t\t\twhite-space: nowrap;\n\n\t\t\t&:nth-of-type(1) {\n\t\t\t\tmargin-right: 1em;\n\t\t\t}\n\n\t\t\t.space-type {\n\t\t\t\tmargin-left: 0;\n\t\t\t\tmargin-right: 0;\n\t\t\t}\n\t\t}\n\n\t\t.apartment-heading-price, span.space-area {\n\t\t\tcolor: ${color(\"greenBasic\", 1)};\n\t\t\tfont-size: 3.2rem;\n\t\t\twhite-space: nowrap;\n\t\t}\n\n\t\t.apartment-heading-sales-price, span.space-type {\n\t\t\tcolor: ${color(\"grey\", 1)};\n\t\t\tfont-size: 3.2rem;\n\t\t\twhite-space: nowrap;\n\t\t}\n\n\t\t.apartment-heading-price-text, .apartment-heading-sales-price-text {\n\t\t\tfont-size: 1.9rem;\n\t\t\twhite-space: normal;\n\t\t}\n\t}\n\n\t&.four #apartment-heading {\n\t\tpadding: 0 0 20px 0;\n\t\twidth: 100%;\n\n\t\th1 {\n\t\t\tfont-size: 2.6rem;\n\t\t\tmargin-top: 0;\n\t\t\tmin-height: max(60px, 3.125vh);\n\t\t\twhite-space: normal;\n\t\t}\n\n\t\t.space-info {\n\t\t\tfont-size: 1.8rem;\n\t\t\tmargin-bottom: 1em;\n\t\t\t//white-space: normal;\n\t\t}\n\n\t\t.apartment-heading-prices {\n\t\t\tpadding-right: 55px;\n\t\t}\n\n\t\t.apartment-heading-price, span.space-area {\n\t\t\tfont-size: 1.8rem;\n\t\t}\n\n\t\t.apartment-heading-sales-price, span.space-type {\n\t\t\tfont-size: 1.8rem;\n\t\t}\n\n\t\t.apartment-heading-price-text, .apartment-heading-sales-price-text {\n\t\t\tfont-size: 1.4rem;\n\t\t}\n\t}\n`;\n\nexport const InfoDisplayHeading = styled.div`\n\tposition: relative;\n`;\n\nexport const OnlineOfferBadge = styled.div`\n\tbackground-image: url(\"/assets/images/icons-brochure/tarjouskauppa.svg\");\n\tbackground-position: 50% 50%;\n\tbackground-repeat: no-repeat;\n\tbottom: 40px;\n\theight: max(104px, 10.3vw);\n\tposition: absolute;\n\tright: 0;\n\twidth: max(104px, 10.3vw);\n\n\t&.four {\n\t\theight: min(52px, 4.8vw);\n\t\twidth: min(52px, 4.8vw);\n\t}\n`;\n\nexport const InfoDisplayPropertyImage = styled.div`\n\talign-items: center;\n\tdisplay: flex;\n\tflex-direction: column;\n\tjustify-content: center;\n\tmin-height: 37.4vh;\n\tpadding: 0;\n\tposition: relative;\n\n\timg {\n\t\taspect-ratio: 1077/718;\n\t\tleft: 0;\n\t\tmargin: 0;\n\t\tmax-height: 37.4vh;\n\t\tmax-width: 100%;\n\t\tobject-fit: cover;\n\t\tposition: absolute;\n\t\tright: 0;\n\t\ttop: 0;\n\t\twidth: 100%;\n\t}\n\n\t&.value-listing::before {\n\t\tbackground-image: url(\"/assets/images/icons-brochure/arvokohde.png\");\n\t\tbackground-position: 50% 50%;\n\t\tbackground-repeat: no-repeat;\n\t\tbackground-size: 100% 100%;\n\t\tcontent: '';\n\t\tdisplay: block;\n\t\theight: min(280px, max(70px, 10vw));\n\t\tleft: 3em;\n\t\tposition: absolute;\n\t\ttop: 3em;\n\t\twidth: min(280px, max(70px, 10vw));\n\t\tz-index: 3;\n\t}\n\n\t&.four {\n\t\tmin-height: 15vh;\n\t\timg {\n\t\t\tmax-height: 15vh;\n\t\t}\n\n\t\t&.value-listing::before {\n\t\t\theight: 63px;\n\t\t\tleft: 1em;\n\t\t\ttop: 1em;\n\t\t\twidth: 63px;\n\t\t}\n\t}\n`;\n\nexport const OpenHouseBanner = styled.div`\n\talign-items: center;\n\tbackground: ${hexToRGB(color(\"greenDark\", 1), 0.7)};\n\tcolor: ${color(\"greenBright\", 4)} !important;\n\tdisplay: inline-flex;\n\tfont-size: 2.5rem;\n\theight: 3em;\n\tjustify-content: flex-start;\n\tmargin-top: -3em;\n\tpadding: 0 40px;\n\twhite-space: nowrap;\n\twidth: 100%;\n\n\t&.four {\n\t\tbottom: 1.75em;\n\t\tfont-size: 1.25rem;\n\t\theight: 1.5em;\n\t\tleft: 0;\n\t\tmargin-top: 0;\n\t\tposition: absolute;\n\t\tright: 0;\n\t}\n`;\n\nexport const InfoDisplayTexts = styled.div`\n\talign-items: flex-start;\n\tdisplay: flex;\n\tflex-direction: column;\n\tfont-size: 3.0rem;\n\tgap: 10px;\n\tjustify-content: flex-start;\n\tmargin: 0;\n\tpadding-right: 128px; // leave room for qr code, long text will overlap otherwise\n\tposition: relative;\n\n\t&.four {\n\t\tfont-size: 1.6rem;\n\t\tmargin: 0;\n\t\tpadding-right: 84px;\n\t}\n\n`;\n\nexport const InfoDisplayText = styled.div`\n\tdisplay: grid;\n\tgap: 1em;\n\tgrid-template-columns: 42% 58%;\n\twidth: 100%;\n\n\t&:first-of-type {\n\t\tmargin-bottom: 1em;\n\t}\n`;\n\nexport const TextLabel = styled.div`\n`;\n\nexport const TextValue = styled.div`\n`;\n\nexport const QrCodeWrapper = styled.div`\n\theight: 124px;\n\ttop: 0;\n\twidth: 124px;\n\tposition: absolute;\n\tright: 0;\n\n\t&.four {\n\t\theight: 80px;\n\t\twidth: 80px;\n\t}\n`;\n\nexport const InfoDisplayFooter = styled.div`\n\talign-items: flex-start;\n\tbackground: ${color(\"beige\", 3)};\n\tdisplay: flex;\n\theight: 10vh;\n\tjustify-content: space-between;\n\tmargin-top: 2em;\n\tpadding: 3em 6em;\n\twidth: 100%;\n\n\t&.agent {\n\t\tbackground: ${color(\"greenDark\", 1)};\n\t\tcolor: ${color(\"white\")};\n\t}\n`;\n\nexport const InfoDisplayAgencyBlock = styled.div`\n\talign-items: flex-start;\n\tdisplay: flex;\n\tflex-direction: column;\n\tfont-size: 2.6rem;\n\tgap: 10px;\n\tjustify-content: flex-start;\n`;\n\nexport const AgencyName = styled.div`\n\tcolor: ${color(\"greenDark\", 1)};\n`;\n\nexport const AgencyCompany = styled.div`\n`;\n\nexport const InfoDisplayFooterAgent = styled.div`\n\talign-items: center;\n\tcolor: ${color(\"white\")};\n\tdisplay: flex;\n\tfont-size: 3.6rem;\n\tgap: 47px;\n\tjustify-content: center;\n\twidth: 100%;\n`;\n\nexport const InfoDisplayFooterAgentCode = styled.div`\n\tbackground: ${color(\"white\")};\n\theight: max(130px, 8.3vw);\n\tpadding: 10px;\n\twidth: max(130px, 8.3vw);\n`;\n\nexport const InfoDisplayAgents = styled.div`\n\tleft: 3em;\n\tmax-height: calc(100vh - 23.688em - 130px);\n\tmax-width: calc(100vw - 6em);\n\tmin-height: calc(100vh - 23.688em - 130px);\n\toverflow: hidden;\n\tposition: relative;\n\ttop: 0;\n`;\n\nexport const InfoDisplayAgentWrapper = styled.div`\n\tbackground: linear-gradient(to top, transparent 6px, ${color(\"white\")} 6px 100%);\n\theight: 100%;\n\tleft: 0;\n\tmax-height: 100%;\n\tmax-width: 100%;\n\tmin-height: calc(100vh - 23.688em - 130px);\n\tposition: absolute;\n\ttop: 0;\n\ttransform: translateX(200vw);\n\ttransition: none;\n\twidth: 100%;\n\n\t&.current {\n\t\ttransform: translateX(0);\n\t\ttransition: transform ${ANIMATION_DURATION} ease-in-out;\n\n\t\t:after {\n\t\t\twidth: 0;\n\t\t}\n\t}\n\n\t&.prev {\n\t\ttransform: translateX(-100vw);\n\t\ttransition: transform ${ANIMATION_DURATION} ease-in-out;\n\n\t\t&:after {\n\t\t\twidth: 0;\n\t\t}\n\t}\n\n\t&.next {\n\t\ttransform: translateX(100vw);\n\t\ttransition: transform ${ANIMATION_DURATION} ease-in-out ${ANIMATION_DELAY};\n\n\t\t&:after {\n\t\t\twidth: 100%;\n\t\t}\n\t}\n\n\t&:after {\n\t\t${ribbon};\n\t\tcontent: '';\n\t\tdisplay: block;\n\t\theight: 6px;\n\t\tleft: 0;\n\t\tposition: absolute;\n\t\tbottom: 0;\n\t\ttransition: width ${SLIDE_TIME} linear;\n\t\twidth: 100%;\n\t}\n`;\n\nexport const InfoDisplayAgentImageWrapper = styled.div`\n\talign-items: center;\n\tdisplay: flex;\n\theight: max(892px, 46.5vh);\n\tjustify-content: center;\n\tmargin: 3em 0;\n\tmax-height: max(892px, 46.5vh);\n\tposition: relative;\n\n\timg {\n\t\tmax-height: 100%;\n\t}\n\n\t&.super-agent::before {\n\t\tbackground: url(/assets/images/km-2026/huippumyyja@2x.png) no-repeat center center;\n\t\tbackground-size: 100% 100%;\n\t\tcontent: \"\";\n\t\tdisplay: block;\n\t\theight: max(180px, 16.7vw);\n\t\tposition: absolute;\n\t\tright: 3em;\n\t\ttop: 3em;\n\t\twidth: max(180px, 16.7vw);\n\t}\n`;\n\nexport const AgentTexts = styled.div`\n\talign-items: flex-start;\n\tcolor: ${color(\"grey\", 1)};\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 1em;\n\tjustify-content: flex-start;\n\tmargin: 3em;\n`;\nexport const AgentName = styled.h1`\n\tcolor: ${color(\"greenDark\", 1)};\n\tfont-size: 5rem;\n\tmargin: 0;\n`;\n\nexport const AgentTitle = styled.div`\n\tfont-size: 3.2rem;\n\tline-height: 120%;\n\tmargin: 0.5em 0;\n`;\nexport const AgentPhone = styled.div`\n\tcolor: ${color(\"greenBasic\", 1)};\n\tfont-size: 3.6rem;\n`;\n\nexport const AgentEmail = styled.div`\n\tcolor: ${color(\"greenBasic\", 1)};\n\tfont-size: 3.6rem;\n`;\n\nexport const AgentRecommendation = styled.div`\n\tfont-size: 2.4rem;\n\tfont-weight: 700;\n\tletter-spacing: 0.03em;\n\tmargin-top: 1em;\n\ttext-transform: uppercase;\n\n\tsvg {\n\t\tcolor: ${color(\"greenBright\", 1)};\n\t\tmargin-right: 12px;\n\t}\n`;\n","import React from \"react\";\nimport {\n\tInfoDisplayHeading,\n\tInfoDisplayPropertyImage,\n\tInfoDisplayPropertyWrapper, InfoDisplayText, InfoDisplayTexts,\n\tOnlineOfferBadge, OpenHouseBanner, QrCodeWrapper, TextLabel, TextValue,\n} from \"./styles\";\nimport ApartmentHeading from \"@components/Apartment/ApartmentHeading\";\nimport { getAssetUrl, getOpenHouseDate } from \"@utils\";\nimport { getImageUrl } from \"@utils/apartment\";\nimport QRCode from \"react-qr-code\";\nimport { color } from \"@utils/style-utils\";\n\ninterface IInfoDisplayPropertyProps {\n\tclassName: string;\n\tinfoDisplayMode: string;\n\tproperty: any;\n}\nexport const InfoDisplayProperty = (props: IInfoDisplayPropertyProps) => {\n\n\tconst { className, infoDisplayMode = \"default\", property } = props;\n\n\tconst formatOpenHouse = (openHouse: any) => {\n\t\tconst openHouseText = openHouse.liveDemonstration\n\t\t\t? \"Live-esittely\"\n\t\t\t: (openHouse.type === \"FIRST\"\n\t\t\t\t\t? \"Ensiesittely\"\n\t\t\t\t\t: \"Seuraava esittely\"\n\t\t\t)\n\t\t;\n\t\tconst obj: any = getOpenHouseDate(openHouse, true);\n\t\treturn openHouseText + \" \" + obj.weekday.toLowerCase() + \"na \" + obj.date + \".\" + obj.month + \".\" + obj.year +\n\t\t\t\" klo \" + obj.startHours + \":\" + (obj.startMins.toString().length === 1 ? \"0\" : \"\") + obj.startMins\n\t\t\t;\n\t};\n\n\treturn \n\t\t\n\t\t\t\n\t\t\t{property.onlineOffer && }\n\t\t\n\t\t\n\t\t\t{!property.firstImage &&
}\n\t\t\t{property.firstImage &&
{\n\t\t\t\t\tcurrentTarget.onerror = null;\n\t\t\t\t\tcurrentTarget.src = getAssetUrl(\"/assets/images/km-2019/kohde/kohde_placeholder-img@2x.png\");\n\t\t\t\t}}\n\t\t\t\tsrc={getAssetUrl(getImageUrl(property.firstImage))}\n\t\t\t/>}\n\t\t\t{property.openHouse && \n\t\t\t\t{formatOpenHouse(property.openHouse)}\n\t\t\t}\n\t\t\n\n\t\t\n\t\t\t\n\t\t\t\t{property.houseType}\n\t\t\t\n\t\t\t\n\t\t\t\tKohdenumero:\n\t\t\t\t{property.key}\n\t\t\t\n\t\t\t{property.energyCertificate && \n\t\t\t\tEnergiatehokkuusluokka:\n\t\t\t\t\n\t\t\t}\n\t\t\t{property.qrCode && \n\t\t\t\t\n\t\t\t}\n\t\t\n\t;\n\n};\n","import React from \"react\";\nimport {\n\tAgentEmail,\n\tAgentName,\n\tAgentPhone,\n\tAgentRecommendation,\n\tAgentTexts,\n\tAgentTitle,\n\tInfoDisplayAgentImageWrapper,\n\tInfoDisplayAgentWrapper,\n} from \"./styles\";\nimport { getAssetUrl } from \"@utils\";\nimport { FontAwesomeIcon as FaIcon } from \"@fortawesome/react-fontawesome\";\n\nexport const InfoDisplayAgent = (props: any) => {\n\n\tconst { agent, className } = props;\n\n\treturn \n\t\t\n\t\t\t{(agent.halfBodyImageName && agent.halfBodyImagePath) &&
}\n\t\t\t{((!agent.halfBodyImageName || !agent.halfBodyImagePath) && agent.imageName && agent.imagePath) &&
}\n\t\t\n\t\t\n\t\t\t{agent.name || \"\"}\n\t\t\t{agent.title || \"\"}\n\t\t\t{agent.phone || \"\"}\n\t\t\t{agent.email || \"\"}\n\t\t\t{agent.recommendationPercentage && \n\t\t\t\t\n\t\t\t\t{agent.recommendationPercentage} % asiakkaista suosittelee\n\t\t\t}\n\t\t\n\t;\n\n};\n","import React from \"react\";\n\nexport const LogoWhite = () => {\n\treturn ;\n};\n","import React, { useEffect, useState } from \"react\";\nimport { IApplicationState } from \"@redux\";\nimport { connect } from \"react-redux\";\nimport {\n\tAgencyCompany,\n\tAgencyName,\n\tInfoDisplayAgencyBlock,\n\tInfoDisplayAgents,\n\tInfoDisplayFooter,\n\tInfoDisplayFooterAgent,\n\tInfoDisplayFooterAgentCode,\n\tInfoDisplayHeader,\n\tInfoDisplayProperties,\n\tInfoDisplayWrapper,\n\tNoProperties,\n} from \"./styles\";\nimport { hasWindow } from \"@utils\";\nimport axios, { AxiosError, AxiosResponse } from \"axios\";\nimport LogoHorizontal from \"@components/Logos/LogoHorizontal\";\nimport { InfoDisplayProperty } from \"./property\";\nimport { InfoDisplayAgent } from \"./agent\";\nimport { LogoWhite } from \"@components/Logos/LogoWhite\";\nimport QRCode from \"react-qr-code\";\nimport { color } from \"@utils/style-utils\";\n\nconst InfoDisplayPage = ({ doc }) => {\n\n\tconst { agency, agents, infoDisplayMode = \"default\", properties } = doc;\n\tconst [ visibleProperties, setVisibleProperties ] = useState(properties);\n\tconst [ nextProperties, setNextProperties ] = useState(properties);\n\tconst [ current, setCurrent ] = useState(0);\n\tlet timer: any;\n\tconst SLIDE_TIME = 10000;\n\n\tuseEffect(() => {\n\t\tif (hasWindow) {\n\t\t\tdocument.body.classList.add(\"infoDisplayPage\");\n\t\t\ttick();\n\t\t}\n\n\t\treturn () => {\n\t\t\tif (hasWindow) {\n\t\t\t\tdocument.body.classList.remove(\"infoDisplayPage\");\n\t\t\t}\n\t\t};\n\t}, []);\n\n\tuseEffect(() => {\n\t\tif (infoDisplayMode === \"agent\") {\n\t\t\treturn;\n\t\t}\n\t\tif (current === visibleProperties.length - (infoDisplayMode === \"four\" ? 8 : 2)) {\n\t\t\tfetchProperties();\n\t\t}\n\t}, [ current ]);\n\n\tconst fetchProperties = async () => {\n\t\tif (!agency) {\n\t\t\tconsole.log(\"No agency set, unable to fetch!\");\n\t\t\treturn;\n\t\t}\n\t\tconst params = {\n\t\t\tagency: agency.key,\n\t\t\tmode: infoDisplayMode,\n\t\t};\n\t\taxios.get(\"/api/km/KMSite/info-display-properties\", { params }).then((response: AxiosResponse) => {\n\t\t\tsetNextProperties(response.data);\n\t\t}).catch((e: AxiosError) => {\n\t\t\tconsole.log(\"Fetching next properties failed\", e);\n\t\t});\n\t};\n\n\tconst getClassName = (index: number) => {\n\t\t// add landscape/portrait so that testing with landscape displays somewhat works (image height is not limited etc.)\n\t\tlet baseClass: string = hasWindow && window.screen.availHeight < window.screen.availWidth ? \"landscape\" : \"portrait\";\n\n\t\tif (infoDisplayMode === \"four\") {\n\t\t\tbaseClass += \" four\";\n\t\t\tconst rangeEnd = current + 4;\n\t\t\tif (index >= current && index < rangeEnd) {\n\t\t\t\tswitch (index) {\n\t\t\t\t\tcase current:\n\t\t\t\t\t\tbaseClass += \" first\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase current + 1:\n\t\t\t\t\t\tbaseClass += \" second\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase current + 2:\n\t\t\t\t\t\tbaseClass += \" third\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase current + 3:\n\t\t\t\t\t\tbaseClass += \" fourth\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\treturn `${baseClass} current`;\n\t\t\t}\n\t\t\tif (index < current && index + 4 >= current) {\n\t\t\t\tswitch (index) {\n\t\t\t\t\tcase current - 4:\n\t\t\t\t\t\tbaseClass += \" first\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase current - 3:\n\t\t\t\t\t\tbaseClass += \" second\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase current - 2:\n\t\t\t\t\t\tbaseClass += \" third\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase current - 1:\n\t\t\t\t\t\tbaseClass += \" fourth\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\treturn `${baseClass} prev`;\n\t\t\t}\n\t\t\tif (index > current && index - current <= 7) {\n\t\t\t\tswitch (index) {\n\t\t\t\t\tcase current + 4:\n\t\t\t\t\t\tbaseClass += \" first\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase current + 5:\n\t\t\t\t\t\tbaseClass += \" second\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase current + 6:\n\t\t\t\t\t\tbaseClass += \" third\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase current + 7:\n\t\t\t\t\t\tbaseClass += \" fourth\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\treturn `${baseClass} next`;\n\t\t\t}\n\t\t} else {\n\t\t\tif (index === current) {\n\t\t\t\treturn `${baseClass} current`;\n\t\t\t}\n\t\t\tif (index - 1 === current || (current === visibleProperties.length - 1) && index === 0) {\n\t\t\t\treturn `${baseClass} next`;\n\t\t\t}\n\t\t\tif (index + 1 === current || (current === 0) && index === visibleProperties.length - 1) {\n\t\t\t\treturn `${baseClass} prev`;\n\t\t\t}\n\t\t}\n\t};\n\n\tconst tick = () => {\n\t\tif (timer) {\n\t\t\tclearTimeout(timer);\n\t\t}\n\t\tif (hasWindow && \"DEBUG\" in window && window[ \"DEBUG\" ]) {\n\t\t\ttimer = setTimeout(tick, SLIDE_TIME);\n\t\t\treturn;\n\t\t}\n\t\tsetCurrent((c: number) => {\n\t\t\tlet newC = c + (infoDisplayMode === \"four\" ? 4 : 1);\n\t\t\tif (infoDisplayMode === \"agent\") {\n\t\t\t\tif (newC >= agents.length) {\n\t\t\t\t\tnewC = 0;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (newC >= visibleProperties.length) {\n\t\t\t\t\tsetVisibleProperties(nextProperties);\n\t\t\t\t\tnewC = 0;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn newC;\n\t\t});\n\t\ttimer = setTimeout(tick, SLIDE_TIME);\n\t};\n\n\treturn \n\n\t\t\n\t\t\t{infoDisplayMode === \"agent\" ? : }\n\t\t\n\n\t\t{!agency && Myymälää ei löytynyt
}\n\n\t\t{agency && <>\n\t\t\t{infoDisplayMode === \"agent\"\n\t\t\t\t? <>\n\t\t\t\t\t{agents.length === 0\n\t\t\t\t\t\t? Välittäjiä ei löytynyt
\n\t\t\t\t\t\t: \n\t\t\t\t\t\t\t{agents.map((agent: any, index: number) => {\n\t\t\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\t: <>\n\t\t\t\t\t{visibleProperties.length === 0 && \n\t\t\t\t\t\tKiinteistömaailma {agency.marketingName}
\n\t\t\t\t\t\t{agency.phone}
\n\t\t\t\t\t}\n\n\t\t\t\t\t\n\t\t\t\t\t\t{visibleProperties.map((property: any, index: number) => {\n\t\t\t\t\t\t\treturn ;\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\t{infoDisplayMode === \"agent\"\n\t\t\t\t\t? <>{(agents[ current ] && agents[ current ].qrCode) && \n\t\t\t\t\t\tKutsu minut kotikäynnille tästä:\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\t:\n\t\t\t\t\t\n\t\t\t\t\t\tKiinteistömaailma {agency.marketingName}\n\t\t\t\t\t\t{agency.companyName}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\n\t\t>}\n\t;\n\n};\n\nconst mapStateToProps = (state: IApplicationState) => ({\n\tdoc: state.document,\n});\n\nexport default connect(mapStateToProps)(InfoDisplayPage);\n"],"sourceRoot":""}