{"version":3,"sources":["../node_modules/wake-react-components/repeater.js","../node_modules/wake-react-components/lib/repeater/index.js","../node_modules/date-fns/start_of_iso_week/index.js","../node_modules/date-fns/format/index.js","../node_modules/date-fns/get_iso_year/index.js","../node_modules/date-fns/get_day_of_year/index.js","../node_modules/date-fns/start_of_year/index.js","../node_modules/date-fns/difference_in_calendar_days/index.js","../node_modules/date-fns/start_of_day/index.js","../node_modules/date-fns/get_iso_week/index.js","../node_modules/date-fns/start_of_week/index.js","../node_modules/date-fns/start_of_iso_year/index.js","../node_modules/date-fns/is_valid/index.js","../node_modules/date-fns/locale/en/index.js","../node_modules/date-fns/locale/en/build_distance_in_words_locale/index.js","../node_modules/date-fns/locale/en/build_format_locale/index.js","../node_modules/date-fns/locale/_lib/build_formatting_tokens_reg_exp/index.js","services/online-offer.service.tsx","pages/OnlineOfferPropertyPage/styles.js","components/Form/OnlineOfferFollowForm/styles.js","components/Form/OnlineOfferFollowForm/index.tsx","components/OnlineOffer/OnlineOfferApartmentPreview/styles.js","components/OnlineOffer/OnlineOfferApartmentPreview/index.tsx","components/OnlineOffer/OnlineOfferHistory/styles.js","components/OnlineOffer/OnlineOfferHistory/index.tsx","pages/OnlineOfferPropertyPage/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","startOfWeek","module","dirtyDate","weekStartsOn","getDayOfYear","getISOWeek","getISOYear","parse","isValid","enLocale","formatters","date","getMonth","addLeadingZeros","Math","ceil","getDate","getDay","getFullYear","substr","String","getHours","hours","getMinutes","getSeconds","floor","getMilliseconds","formatTimezone","getTimezoneOffset","getTime","removeFormattingTokens","input","match","replace","offset","delimeter","sign","absOffset","abs","minutes","number","targetLength","output","toString","dirtyFormatStr","dirtyOptions","formatStr","locale","localeFormatters","format","formattingTokensRegExp","formatter","array","Function","buildFormatFn","formatFn","startOfISOWeek","year","fourthOfJanuaryOfNextYear","Date","setFullYear","setHours","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","startOfYear","differenceInCalendarDays","cleanDate","startOfDay","dirtyDateLeft","dirtyDateRight","startOfDayLeft","startOfDayRight","timestampLeft","timestampRight","round","startOfISOYear","diff","Number","day","setDate","fourthOfJanuary","isDate","isNaN","TypeError","buildDistanceInWordsLocale","buildFormatLocale","distanceInWords","distanceInWordsLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","localize","token","count","options","result","addSuffix","comparison","buildFormattingTokensRegExp","months3char","monthsFull","weekdays2char","weekdays3char","weekdaysFull","meridiemUppercase","meridiemLowercase","meridiemFull","forEach","formatterToken","rem100","ordinal","commonFormatterKeys","formatterKeys","push","formattingTokens","sort","reverse","RegExp","join","addFollower","data","axios","post","fetchOnlineOfferProperties","params","query","queryObjects","rest","__rest","queryString","stringify","arrayFormat","q","encodeURIComponent","JSON","url","fetchAPI","console","log","Hero","styled","div","withConfig","componentId","rgba","color","media","md","_templateObject","_taggedTemplateLiteral","lgx","_templateObject2","_templateObject3","_templateObject4","HeroColumns","_templateObject5","HeroColumn","_templateObject6","grid","gutterSmall","xl","_templateObject7","OnlineOfferTitle","sm","_templateObject8","textStyles","MicroTextCaps","_templateObject9","H1","OnlineOfferIcon","img","smd","_templateObject10","OnlineOfferIntroText","_templateObject11","lg","_templateObject12","PMedium","OnlineOfferStepsTitle","h2","OnlineOfferSteps","OnlineOfferStep","_templateObject13","_templateObject14","PSmall","AInline","H2","_templateObject15","_templateObject16","_templateObject17","_templateObject18","FormContainer","boxShadow","hugeLight","ribbon","xsm","FormContent","FormCheckbox","p","FormPlaceholderText","Formik","lazy","then","ErrorMessage","validationSchema","getSchema","FormPlaceholder","React","Placeholder","PlaceholderInput","PlaceholderTextarea","PlaceholderText","PlaceholderGdpr","PlaceholderButton","OnlineOfferFollowForm","property","initialValues","city","email","firstName","lastName","message","phone","postCode","streetAddress","contactSubmitTimeout","isSubmitted","setSubmitted","useState","visited","setVisited","useEffect","clearTimeout","hasWindow","Suspense","fallback","onSubmit","doSubmit","values","_ref2","setSubmitting","resetForm","__awaiter","formData","assign","window","res","onlineOfferService","dataLayerPush","action","conversionDetails","event","setTimeout","_ref3","handleChange","handleBlur","handleSubmit","isSubmitting","InputGroup","aria-label","disabled","onBlur","onChange","placeholder","FaIcon","icon","component","msg","FormError","type","Textarea","id","onClick","v","ThankYouMessage","GdprLink","Link","to","target","CtaButton","text","submitting","PreviewContainer","PreviewImageContainer","PreviewImage","attrs","PreviewInfo","MediumText","AreaAndRoomtypes","Area","RoomTypes","fontFamily","condensed","Followers","MicroText","OnlineOfferApartmentPreview","_a","small","addressString","getAddressString","canonicalPath","canonicalUrl","images","livingArea","onlineFollowers","roomTypes","sortArea","totalArea","updateFollowers","urlPart","isEmpty","mainImage","getMainImage","mainImageUrl","getImageUrl","followerCount","setFollowerCount","area","response","followers","catch","data-small","Image","alt","fallbackSrc","getAssetUrl","src","imageWithSize","thumb","HistoryContainer","HistoryHeader","HistoryTitle","h4","noResults","HighestOffer","HighestOfferColumn","HightestOfferValue","HighestOfferDate","HightestOfferLabel","OffersContainer","Offers","isOpen","OfferRow","OfferValue","span","bold","bounce","keyframes","HistoryToggler","button","OnlineOfferHistory","onlineOfferHistory","highestOnlineOffer","historyOpen","setHistoryOpen","firstOffer","d","firstOfferDate","startDate","NumberFormat","thousandSeparator","displayType","suffix","amount","conditional","customerKey","getFormattedDate","memo","connect","state","document","page","offerSteps","pageOfferSteps","Container","ApartmentPreview","NarrowContainer","isAdmin","Text","multiline","Editor","offerStepTitle","offerStepContent","dangerouslySetInnerHTML","__html","filterXSS"],"mappings":"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","file":"assets/js/pages-OnlineOfferPropertyPage.chunk.js?cb=f4425765e8f90d7f8fd0","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;","var startOfWeek = require('../start_of_week/index.js')\n\n/**\n * @category ISO Week Helpers\n * @summary Return the start of an ISO week for the given date.\n *\n * @description\n * Return the start of an ISO week for the given date.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the start of an ISO week\n *\n * @example\n * // The start of an ISO week for 2 September 2014 11:55:00:\n * var result = startOfISOWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\nfunction startOfISOWeek (dirtyDate) {\n return startOfWeek(dirtyDate, {weekStartsOn: 1})\n}\n\nmodule.exports = startOfISOWeek\n","var getDayOfYear = require('../get_day_of_year/index.js')\nvar getISOWeek = require('../get_iso_week/index.js')\nvar getISOYear = require('../get_iso_year/index.js')\nvar parse = require('../parse/index.js')\nvar isValid = require('../is_valid/index.js')\nvar enLocale = require('../locale/en/index.js')\n\n/**\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format.\n *\n * Accepted tokens:\n * | Unit | Token | Result examples |\n * |-------------------------|-------|----------------------------------|\n * | Month | M | 1, 2, ..., 12 |\n * | | Mo | 1st, 2nd, ..., 12th |\n * | | MM | 01, 02, ..., 12 |\n * | | MMM | Jan, Feb, ..., Dec |\n * | | MMMM | January, February, ..., December |\n * | Quarter | Q | 1, 2, 3, 4 |\n * | | Qo | 1st, 2nd, 3rd, 4th |\n * | Day of month | D | 1, 2, ..., 31 |\n * | | Do | 1st, 2nd, ..., 31st |\n * | | DD | 01, 02, ..., 31 |\n * | Day of year | DDD | 1, 2, ..., 366 |\n * | | DDDo | 1st, 2nd, ..., 366th |\n * | | DDDD | 001, 002, ..., 366 |\n * | Day of week | d | 0, 1, ..., 6 |\n * | | do | 0th, 1st, ..., 6th |\n * | | dd | Su, Mo, ..., Sa |\n * | | ddd | Sun, Mon, ..., Sat |\n * | | dddd | Sunday, Monday, ..., Saturday |\n * | Day of ISO week | E | 1, 2, ..., 7 |\n * | ISO week | W | 1, 2, ..., 53 |\n * | | Wo | 1st, 2nd, ..., 53rd |\n * | | WW | 01, 02, ..., 53 |\n * | Year | YY | 00, 01, ..., 99 |\n * | | YYYY | 1900, 1901, ..., 2099 |\n * | ISO week-numbering year | GG | 00, 01, ..., 99 |\n * | | GGGG | 1900, 1901, ..., 2099 |\n * | AM/PM | A | AM, PM |\n * | | a | am, pm |\n * | | aa | a.m., p.m. |\n * | Hour | H | 0, 1, ... 23 |\n * | | HH | 00, 01, ... 23 |\n * | | h | 1, 2, ..., 12 |\n * | | hh | 01, 02, ..., 12 |\n * | Minute | m | 0, 1, ..., 59 |\n * | | mm | 00, 01, ..., 59 |\n * | Second | s | 0, 1, ..., 59 |\n * | | ss | 00, 01, ..., 59 |\n * | 1/10 of second | S | 0, 1, ..., 9 |\n * | 1/100 of second | SS | 00, 01, ..., 99 |\n * | Millisecond | SSS | 000, 001, ..., 999 |\n * | Timezone | Z | -01:00, +00:00, ... +12:00 |\n * | | ZZ | -0100, +0000, ..., +1200 |\n * | Seconds timestamp | X | 512969520 |\n * | Milliseconds timestamp | x | 512969520900 |\n *\n * The characters wrapped in square brackets are escaped.\n *\n * The result may vary by locale.\n *\n * @param {Date|String|Number} date - the original date\n * @param {String} [format='YYYY-MM-DDTHH:mm:ss.SSSZ'] - the string of tokens\n * @param {Object} [options] - the object with options\n * @param {Object} [options.locale=enLocale] - the locale object\n * @returns {String} the formatted date string\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * var result = format(\n * new Date(2014, 1, 11),\n * 'MM/DD/YYYY'\n * )\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * var eoLocale = require('date-fns/locale/eo')\n * var result = format(\n * new Date(2014, 6, 2),\n * 'Do [de] MMMM YYYY',\n * {locale: eoLocale}\n * )\n * //=> '2-a de julio 2014'\n */\nfunction format (dirtyDate, dirtyFormatStr, dirtyOptions) {\n var formatStr = dirtyFormatStr ? String(dirtyFormatStr) : 'YYYY-MM-DDTHH:mm:ss.SSSZ'\n var options = dirtyOptions || {}\n\n var locale = options.locale\n var localeFormatters = enLocale.format.formatters\n var formattingTokensRegExp = enLocale.format.formattingTokensRegExp\n if (locale && locale.format && locale.format.formatters) {\n localeFormatters = locale.format.formatters\n\n if (locale.format.formattingTokensRegExp) {\n formattingTokensRegExp = locale.format.formattingTokensRegExp\n }\n }\n\n var date = parse(dirtyDate)\n\n if (!isValid(date)) {\n return 'Invalid Date'\n }\n\n var formatFn = buildFormatFn(formatStr, localeFormatters, formattingTokensRegExp)\n\n return formatFn(date)\n}\n\nvar formatters = {\n // Month: 1, 2, ..., 12\n 'M': function (date) {\n return date.getMonth() + 1\n },\n\n // Month: 01, 02, ..., 12\n 'MM': function (date) {\n return addLeadingZeros(date.getMonth() + 1, 2)\n },\n\n // Quarter: 1, 2, 3, 4\n 'Q': function (date) {\n return Math.ceil((date.getMonth() + 1) / 3)\n },\n\n // Day of month: 1, 2, ..., 31\n 'D': function (date) {\n return date.getDate()\n },\n\n // Day of month: 01, 02, ..., 31\n 'DD': function (date) {\n return addLeadingZeros(date.getDate(), 2)\n },\n\n // Day of year: 1, 2, ..., 366\n 'DDD': function (date) {\n return getDayOfYear(date)\n },\n\n // Day of year: 001, 002, ..., 366\n 'DDDD': function (date) {\n return addLeadingZeros(getDayOfYear(date), 3)\n },\n\n // Day of week: 0, 1, ..., 6\n 'd': function (date) {\n return date.getDay()\n },\n\n // Day of ISO week: 1, 2, ..., 7\n 'E': function (date) {\n return date.getDay() || 7\n },\n\n // ISO week: 1, 2, ..., 53\n 'W': function (date) {\n return getISOWeek(date)\n },\n\n // ISO week: 01, 02, ..., 53\n 'WW': function (date) {\n return addLeadingZeros(getISOWeek(date), 2)\n },\n\n // Year: 00, 01, ..., 99\n 'YY': function (date) {\n return addLeadingZeros(date.getFullYear(), 4).substr(2)\n },\n\n // Year: 1900, 1901, ..., 2099\n 'YYYY': function (date) {\n return addLeadingZeros(date.getFullYear(), 4)\n },\n\n // ISO week-numbering year: 00, 01, ..., 99\n 'GG': function (date) {\n return String(getISOYear(date)).substr(2)\n },\n\n // ISO week-numbering year: 1900, 1901, ..., 2099\n 'GGGG': function (date) {\n return getISOYear(date)\n },\n\n // Hour: 0, 1, ... 23\n 'H': function (date) {\n return date.getHours()\n },\n\n // Hour: 00, 01, ..., 23\n 'HH': function (date) {\n return addLeadingZeros(date.getHours(), 2)\n },\n\n // Hour: 1, 2, ..., 12\n 'h': function (date) {\n var hours = date.getHours()\n if (hours === 0) {\n return 12\n } else if (hours > 12) {\n return hours % 12\n } else {\n return hours\n }\n },\n\n // Hour: 01, 02, ..., 12\n 'hh': function (date) {\n return addLeadingZeros(formatters['h'](date), 2)\n },\n\n // Minute: 0, 1, ..., 59\n 'm': function (date) {\n return date.getMinutes()\n },\n\n // Minute: 00, 01, ..., 59\n 'mm': function (date) {\n return addLeadingZeros(date.getMinutes(), 2)\n },\n\n // Second: 0, 1, ..., 59\n 's': function (date) {\n return date.getSeconds()\n },\n\n // Second: 00, 01, ..., 59\n 'ss': function (date) {\n return addLeadingZeros(date.getSeconds(), 2)\n },\n\n // 1/10 of second: 0, 1, ..., 9\n 'S': function (date) {\n return Math.floor(date.getMilliseconds() / 100)\n },\n\n // 1/100 of second: 00, 01, ..., 99\n 'SS': function (date) {\n return addLeadingZeros(Math.floor(date.getMilliseconds() / 10), 2)\n },\n\n // Millisecond: 000, 001, ..., 999\n 'SSS': function (date) {\n return addLeadingZeros(date.getMilliseconds(), 3)\n },\n\n // Timezone: -01:00, +00:00, ... +12:00\n 'Z': function (date) {\n return formatTimezone(date.getTimezoneOffset(), ':')\n },\n\n // Timezone: -0100, +0000, ... +1200\n 'ZZ': function (date) {\n return formatTimezone(date.getTimezoneOffset())\n },\n\n // Seconds timestamp: 512969520\n 'X': function (date) {\n return Math.floor(date.getTime() / 1000)\n },\n\n // Milliseconds timestamp: 512969520900\n 'x': function (date) {\n return date.getTime()\n }\n}\n\nfunction buildFormatFn (formatStr, localeFormatters, formattingTokensRegExp) {\n var array = formatStr.match(formattingTokensRegExp)\n var length = array.length\n\n var i\n var formatter\n for (i = 0; i < length; i++) {\n formatter = localeFormatters[array[i]] || formatters[array[i]]\n if (formatter) {\n array[i] = formatter\n } else {\n array[i] = removeFormattingTokens(array[i])\n }\n }\n\n return function (date) {\n var output = ''\n for (var i = 0; i < length; i++) {\n if (array[i] instanceof Function) {\n output += array[i](date, formatters)\n } else {\n output += array[i]\n }\n }\n return output\n }\n}\n\nfunction removeFormattingTokens (input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|]$/g, '')\n }\n return input.replace(/\\\\/g, '')\n}\n\nfunction formatTimezone (offset, delimeter) {\n delimeter = delimeter || ''\n var sign = offset > 0 ? '-' : '+'\n var absOffset = Math.abs(offset)\n var hours = Math.floor(absOffset / 60)\n var minutes = absOffset % 60\n return sign + addLeadingZeros(hours, 2) + delimeter + addLeadingZeros(minutes, 2)\n}\n\nfunction addLeadingZeros (number, targetLength) {\n var output = Math.abs(number).toString()\n while (output.length < targetLength) {\n output = '0' + output\n }\n return output\n}\n\nmodule.exports = format\n","var parse = require('../parse/index.js')\nvar startOfISOWeek = require('../start_of_iso_week/index.js')\n\n/**\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the ISO week-numbering year of the given date.\n *\n * @description\n * Get the ISO week-numbering year of the given date,\n * which always starts 3 days before the year's first Thursday.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} date - the given date\n * @returns {Number} the ISO week-numbering year\n *\n * @example\n * // Which ISO-week numbering year is 2 January 2005?\n * var result = getISOYear(new Date(2005, 0, 2))\n * //=> 2004\n */\nfunction getISOYear (dirtyDate) {\n var date = parse(dirtyDate)\n var year = date.getFullYear()\n\n var fourthOfJanuaryOfNextYear = new Date(0)\n fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4)\n fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0)\n var startOfNextYear = startOfISOWeek(fourthOfJanuaryOfNextYear)\n\n var fourthOfJanuaryOfThisYear = new Date(0)\n fourthOfJanuaryOfThisYear.setFullYear(year, 0, 4)\n fourthOfJanuaryOfThisYear.setHours(0, 0, 0, 0)\n var startOfThisYear = startOfISOWeek(fourthOfJanuaryOfThisYear)\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year\n } else {\n return year - 1\n }\n}\n\nmodule.exports = getISOYear\n","var parse = require('../parse/index.js')\nvar startOfYear = require('../start_of_year/index.js')\nvar differenceInCalendarDays = require('../difference_in_calendar_days/index.js')\n\n/**\n * @category Day Helpers\n * @summary Get the day of the year of the given date.\n *\n * @description\n * Get the day of the year of the given date.\n *\n * @param {Date|String|Number} date - the given date\n * @returns {Number} the day of year\n *\n * @example\n * // Which day of the year is 2 July 2014?\n * var result = getDayOfYear(new Date(2014, 6, 2))\n * //=> 183\n */\nfunction getDayOfYear (dirtyDate) {\n var date = parse(dirtyDate)\n var diff = differenceInCalendarDays(date, startOfYear(date))\n var dayOfYear = diff + 1\n return dayOfYear\n}\n\nmodule.exports = getDayOfYear\n","var parse = require('../parse/index.js')\n\n/**\n * @category Year Helpers\n * @summary Return the start of a year for the given date.\n *\n * @description\n * Return the start of a year for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the start of a year\n *\n * @example\n * // The start of a year for 2 September 2014 11:55:00:\n * var result = startOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Jan 01 2014 00:00:00\n */\nfunction startOfYear (dirtyDate) {\n var cleanDate = parse(dirtyDate)\n var date = new Date(0)\n date.setFullYear(cleanDate.getFullYear(), 0, 1)\n date.setHours(0, 0, 0, 0)\n return date\n}\n\nmodule.exports = startOfYear\n","var startOfDay = require('../start_of_day/index.js')\n\nvar MILLISECONDS_IN_MINUTE = 60000\nvar MILLISECONDS_IN_DAY = 86400000\n\n/**\n * @category Day Helpers\n * @summary Get the number of calendar days between the given dates.\n *\n * @description\n * Get the number of calendar days between the given dates.\n *\n * @param {Date|String|Number} dateLeft - the later date\n * @param {Date|String|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar days\n *\n * @example\n * // How many calendar days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * var result = differenceInCalendarDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 366\n */\nfunction differenceInCalendarDays (dirtyDateLeft, dirtyDateRight) {\n var startOfDayLeft = startOfDay(dirtyDateLeft)\n var startOfDayRight = startOfDay(dirtyDateRight)\n\n var timestampLeft = startOfDayLeft.getTime() -\n startOfDayLeft.getTimezoneOffset() * MILLISECONDS_IN_MINUTE\n var timestampRight = startOfDayRight.getTime() -\n startOfDayRight.getTimezoneOffset() * MILLISECONDS_IN_MINUTE\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a day is not constant\n // (e.g. it's different in the day of the daylight saving time clock shift)\n return Math.round((timestampLeft - timestampRight) / MILLISECONDS_IN_DAY)\n}\n\nmodule.exports = differenceInCalendarDays\n","var parse = require('../parse/index.js')\n\n/**\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the start of a day\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * var result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\nfunction startOfDay (dirtyDate) {\n var date = parse(dirtyDate)\n date.setHours(0, 0, 0, 0)\n return date\n}\n\nmodule.exports = startOfDay\n","var parse = require('../parse/index.js')\nvar startOfISOWeek = require('../start_of_iso_week/index.js')\nvar startOfISOYear = require('../start_of_iso_year/index.js')\n\nvar MILLISECONDS_IN_WEEK = 604800000\n\n/**\n * @category ISO Week Helpers\n * @summary Get the ISO week of the given date.\n *\n * @description\n * Get the ISO week of the given date.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} date - the given date\n * @returns {Number} the ISO week\n *\n * @example\n * // Which week of the ISO-week numbering year is 2 January 2005?\n * var result = getISOWeek(new Date(2005, 0, 2))\n * //=> 53\n */\nfunction getISOWeek (dirtyDate) {\n var date = parse(dirtyDate)\n var diff = startOfISOWeek(date).getTime() - startOfISOYear(date).getTime()\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1\n}\n\nmodule.exports = getISOWeek\n","var parse = require('../parse/index.js')\n\n/**\n * @category Week Helpers\n * @summary Return the start of a week for the given date.\n *\n * @description\n * Return the start of a week for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|String|Number} date - the original date\n * @param {Object} [options] - the object with options\n * @param {Number} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Date} the start of a week\n *\n * @example\n * // The start of a week for 2 September 2014 11:55:00:\n * var result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00:\n * var result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), {weekStartsOn: 1})\n * //=> Mon Sep 01 2014 00:00:00\n */\nfunction startOfWeek (dirtyDate, dirtyOptions) {\n var weekStartsOn = dirtyOptions ? (Number(dirtyOptions.weekStartsOn) || 0) : 0\n\n var date = parse(dirtyDate)\n var day = date.getDay()\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn\n\n date.setDate(date.getDate() - diff)\n date.setHours(0, 0, 0, 0)\n return date\n}\n\nmodule.exports = startOfWeek\n","var getISOYear = require('../get_iso_year/index.js')\nvar startOfISOWeek = require('../start_of_iso_week/index.js')\n\n/**\n * @category ISO Week-Numbering Year Helpers\n * @summary Return the start of an ISO week-numbering year for the given date.\n *\n * @description\n * Return the start of an ISO week-numbering year,\n * which always starts 3 days before the year's first Thursday.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param {Date|String|Number} date - the original date\n * @returns {Date} the start of an ISO year\n *\n * @example\n * // The start of an ISO week-numbering year for 2 July 2005:\n * var result = startOfISOYear(new Date(2005, 6, 2))\n * //=> Mon Jan 03 2005 00:00:00\n */\nfunction startOfISOYear (dirtyDate) {\n var year = getISOYear(dirtyDate)\n var fourthOfJanuary = new Date(0)\n fourthOfJanuary.setFullYear(year, 0, 4)\n fourthOfJanuary.setHours(0, 0, 0, 0)\n var date = startOfISOWeek(fourthOfJanuary)\n return date\n}\n\nmodule.exports = startOfISOYear\n","var isDate = require('../is_date/index.js')\n\n/**\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param {Date} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} argument must be an instance of Date\n *\n * @example\n * // For the valid date:\n * var result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the invalid date:\n * var result = isValid(new Date(''))\n * //=> false\n */\nfunction isValid (dirtyDate) {\n if (isDate(dirtyDate)) {\n return !isNaN(dirtyDate)\n } else {\n throw new TypeError(toString.call(dirtyDate) + ' is not an instance of Date')\n }\n}\n\nmodule.exports = isValid\n","var buildDistanceInWordsLocale = require('./build_distance_in_words_locale/index.js')\nvar buildFormatLocale = require('./build_format_locale/index.js')\n\n/**\n * @category Locales\n * @summary English locale.\n */\nmodule.exports = {\n distanceInWords: buildDistanceInWordsLocale(),\n format: buildFormatLocale()\n}\n","function buildDistanceInWordsLocale () {\n var distanceInWordsLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n\n halfAMinute: 'half a minute',\n\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n }\n\n function localize (token, count, options) {\n options = options || {}\n\n var result\n if (typeof distanceInWordsLocale[token] === 'string') {\n result = distanceInWordsLocale[token]\n } else if (count === 1) {\n result = distanceInWordsLocale[token].one\n } else {\n result = distanceInWordsLocale[token].other.replace('{{count}}', count)\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'in ' + result\n } else {\n return result + ' ago'\n }\n }\n\n return result\n }\n\n return {\n localize: localize\n }\n}\n\nmodule.exports = buildDistanceInWordsLocale\n","var buildFormattingTokensRegExp = require('../../_lib/build_formatting_tokens_reg_exp/index.js')\n\nfunction buildFormatLocale () {\n // Note: in English, the names of days of the week and months are capitalized.\n // If you are making a new locale based on this one, check if the same is true for the language you're working on.\n // Generally, formatted dates should look like they are in the middle of a sentence,\n // e.g. in Spanish language the weekdays and months should be in the lowercase.\n var months3char = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']\n var monthsFull = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n var weekdays2char = ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa']\n var weekdays3char = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']\n var weekdaysFull = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n var meridiemUppercase = ['AM', 'PM']\n var meridiemLowercase = ['am', 'pm']\n var meridiemFull = ['a.m.', 'p.m.']\n\n var formatters = {\n // Month: Jan, Feb, ..., Dec\n 'MMM': function (date) {\n return months3char[date.getMonth()]\n },\n\n // Month: January, February, ..., December\n 'MMMM': function (date) {\n return monthsFull[date.getMonth()]\n },\n\n // Day of week: Su, Mo, ..., Sa\n 'dd': function (date) {\n return weekdays2char[date.getDay()]\n },\n\n // Day of week: Sun, Mon, ..., Sat\n 'ddd': function (date) {\n return weekdays3char[date.getDay()]\n },\n\n // Day of week: Sunday, Monday, ..., Saturday\n 'dddd': function (date) {\n return weekdaysFull[date.getDay()]\n },\n\n // AM, PM\n 'A': function (date) {\n return (date.getHours() / 12) >= 1 ? meridiemUppercase[1] : meridiemUppercase[0]\n },\n\n // am, pm\n 'a': function (date) {\n return (date.getHours() / 12) >= 1 ? meridiemLowercase[1] : meridiemLowercase[0]\n },\n\n // a.m., p.m.\n 'aa': function (date) {\n return (date.getHours() / 12) >= 1 ? meridiemFull[1] : meridiemFull[0]\n }\n }\n\n // Generate ordinal version of formatters: M -> Mo, D -> Do, etc.\n var ordinalFormatters = ['M', 'D', 'DDD', 'd', 'Q', 'W']\n ordinalFormatters.forEach(function (formatterToken) {\n formatters[formatterToken + 'o'] = function (date, formatters) {\n return ordinal(formatters[formatterToken](date))\n }\n })\n\n return {\n formatters: formatters,\n formattingTokensRegExp: buildFormattingTokensRegExp(formatters)\n }\n}\n\nfunction ordinal (number) {\n var rem100 = number % 100\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st'\n case 2:\n return number + 'nd'\n case 3:\n return number + 'rd'\n }\n }\n return number + 'th'\n}\n\nmodule.exports = buildFormatLocale\n","var commonFormatterKeys = [\n 'M', 'MM', 'Q', 'D', 'DD', 'DDD', 'DDDD', 'd',\n 'E', 'W', 'WW', 'YY', 'YYYY', 'GG', 'GGGG',\n 'H', 'HH', 'h', 'hh', 'm', 'mm',\n 's', 'ss', 'S', 'SS', 'SSS',\n 'Z', 'ZZ', 'X', 'x'\n]\n\nfunction buildFormattingTokensRegExp (formatters) {\n var formatterKeys = []\n for (var key in formatters) {\n if (formatters.hasOwnProperty(key)) {\n formatterKeys.push(key)\n }\n }\n\n var formattingTokens = commonFormatterKeys\n .concat(formatterKeys)\n .sort()\n .reverse()\n var formattingTokensRegExp = new RegExp(\n '(\\\\[[^\\\\[]*\\\\])|(\\\\\\\\)?' + '(' + formattingTokens.join('|') + '|.)', 'g'\n )\n\n return formattingTokensRegExp\n}\n\nmodule.exports = buildFormattingTokensRegExp\n","import queryString from \"query-string\";\nimport axios from \"axios\";\n\nconst API = \"/api/km/KM/sales?\";\n\nasync function fetchOnlineOfferProperties(params) {\n\tif (!params) {\n\t\treturn;\n\t}\n\n\tconst { query: queryObjects, ...rest } = params;\n\tlet query = queryString.stringify(rest, { arrayFormat: \"bracket\" });\n\n\t// let qstr = \"\";\n\n\tif (queryObjects) {\n\t\tfor (const q of queryObjects) {\n\t\t\tquery += \"&query[]=\" + encodeURIComponent(JSON.stringify(q));\n\t\t}\n\t}\n\n\ttry {\n\t\tconst url = `${API}${query}`;\n\t\tconst response = await fetchAPI(url);\n\t\treturn response.data;\n\t} catch (e) {\n\t\tconsole.log(\"[OnlineOfferService] - errored online offer search\", e);\n\t}\n}\n\nasync function fetchAPI(url: string) {\n\tconst request = await axios.get(url);\n\treturn request;\n}\n\nasync function addFollower(data) {\n\tconst request = await axios.post(\"/api/km/KMSite/PropertyFollower\", data);\n\treturn request.data;\n}\n\nexport default {\n\taddFollower,\n\tfetchOnlineOfferProperties,\n};\n","import styled from \"styled-components\";\nimport { color, media, grid, textStyles } from \"@utils/style-utils\";\nimport { rgba } from \"polished\";\n\nexport const Hero = styled.div`\n\tbackground: ${rgba(color(\"greenBright\", 4), 0.25)};\n\tmargin-bottom: 60px;\n\tpadding-top: 110px;\n\n\t${media.md`\n\t\tmargin-bottom: 80px;\n\t`}\n\n\t${media.lgx`\n\t\tmargin-bottom: 224px;\n\t\tpadding-top: 0;\n\t`}\n\n\t> * {\n\t\t${media.lgx`\n\t\t\tposition: relative;\n\t\t\ttop: 110px;\n\t\t`}\n\t}\n\n\t.mini-preview {\n\t\tmargin-bottom: 24px;\n\n\t\t${media.md`\n\t\t\tdisplay: none;\n\t\t`}\n\t}\n`;\n\nexport const HeroColumns = styled.div`\n\tposition: relative;\n\n\t${media.lgx`\n\t\tdisplay: flex;\n\t\tjustify-content: space-between;\n\n\t\t&::after {\n\t\t\tborder-top: 1px solid ${color(\"grey\", 5)};\n\t\t\tbottom: -100px;\n\t\t\tdisplay: block;\n\t\t\tcontent: \"\";\n\t\t\tleft: 0;\n\t\t\tposition: absolute;\n\t\t\twidth: 100%;\n\t\t}\n\t`}\n`;\n\nexport const HeroColumn = styled.div`\n\tmargin-bottom: 40px;\n\n\t${media.lgx`\n\t\tmargin-bottom: 0;\n\n\t\t&:first-of-type {\n\t\t\tflex-basis: calc((100% - ${grid.gutterSmall}px) / 2);\n\t\t}\n\t\t&:last-of-type {\n\t\t\tflex-basis: calc((100% - ${grid.gutterSmall}px) / 2);\n\t\t}\n\t`}\n\n\t${media.xl`\n\t\t&:first-of-type {\n\t\t\tflex-basis: calc(779 / 1364 * 100%);\n\t\t}\n\t\t&:last-of-type {\n\t\t\tflex-basis: calc(545 / 1364 * 100%);\n\t\t}\n\t`}\n`;\n\nexport const OnlineOfferTitle = styled.div`\n\talign-items: center;\n\tdisplay: flex;\n\tmargin-bottom: 40px;\n\n\t${media.sm`\n\t\tjustify-content: center;\n\t\ttext-align: center;\n\t`}\n\n\th1 {\n\t\t${textStyles.MicroTextCaps}\n\t\tmargin: 0;\n\n\t\t${media.sm`\n\t\t\t${textStyles.H1}\n\t\t\ttext-transform: none;\n\t\t`}\n\t}\n`;\n\nexport const OnlineOfferIcon = styled.img`\n\tdisplay: block;\n\tmargin-right: 8px;\n\tmax-width: 24px;\n\twidth: 100%;\n\n\t${media.smd`\n\t\tmargin-right: 24px;\n\t\tmax-width: 55px;\n\t`}\n\n\t&.online-offer-icon-intro {\n\t\tmargin-bottom: 16px;\n\t\tmargin-left: auto;\n\t\tmargin-right: auto;\n\t\tmax-width: 85px;\n\t}\n`;\n\nexport const OnlineOfferIntroText = styled.div`\n\tmargin-bottom: 50px;\n\tpadding-top: 80px;\n\ttext-align: center;\n\n\t${media.md`\n\t\tmargin-bottom: 65px;\n\t`}\n\n\t${media.lg`\n\t\tmargin-bottom: 80px;\n\t`}\n\n\tp {\n\t\t${textStyles.PMedium}\n\t}\n`;\n\nexport const OnlineOfferStepsTitle = styled.h2`\n\tmargin-bottom: 40px;\n\ttext-align: center;\n`;\n\nexport const OnlineOfferSteps = styled.div`\n\tposition: relative;\n`;\n\nexport const OnlineOfferStep = styled.div`\n\tcounter-increment: offerStepCount;\n\tpadding-bottom: 26px;\n\tpadding-left: 56px;\n\tposition: relative;\n\n\t${media.md`\n\t\tpadding-bottom: 35px;\n\t\tpadding-left: 90px;\n\t`}\n\n\t${media.lg`\n\t\tpadding-bottom: 56px;\n\t\tpadding-left: 120px;\n\t`}\n\n\t> h3 {\n\t\tmargin-top: 0;\n\t}\n\n\t.offer-step-content {\n\t\tp {\n\t\t\t${textStyles.PSmall}\n\t\t}\n\n\t\ta {\n\t\t\t${textStyles.AInline}\n\t\t}\n\t}\n\n\t&::before {\n\t\t${textStyles.H2}\n\t\talign-items: center;\n\t\tbackground: ${color(\"greenBright\", 1)};\n\t\tborder-radius: 50%;\n\t\tcolor: ${color(\"white\")};\n\t\tcontent: counter(offerStepCount);\n\t\tdisplay: flex;\n\t\theight: 40px;\n\t\tjustify-content: center;\n\t\tleft: 0;\n\t\tposition: absolute;\n\t\ttext-align: center;\n\t\ttop: 0;\n\t\twidth: 40px;\n\t\tz-index: 4;\n\n\t\t${media.md`\n\t\t\theight: 56px;\n\t\t\twidth: 56px;\n\t\t`}\n\n\t\t${media.lg`\n\t\t\theight: 64px;\n\t\t\twidth: 64px;\n\t\t`}\n\t}\n\n\t&::after {\n\t\tbackground: ${color(\"grey\", 5)};\n\t\tcontent: \"\";\n\t\theight: 100%;\n\t\tposition: absolute;\n\t\tleft: 20px;\n\t\ttop: 3px;\n\t\twidth: 1px;\n\t\tz-index: 1;\n\n\t\t${media.md`\n\t\t\tleft: 28px;\n\t\t`}\n\n\t\t${media.lg`\n\t\t\tleft: 32px;\n\t\t`}\n\t}\n\n\t&:last-of-type {\n\t\t&::after {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n`;\n","import styled from \"styled-components\";\nimport { color, ribbon, boxShadow, grid, media, textStyles } from \"@utils/style-utils\";\n\nexport const FormContainer = styled.div`\n\tbackground: ${color(\"white\")};\n\tbox-shadow: ${boxShadow.hugeLight};\n\tposition: relative;\n\tpadding: 86px 20px 60px;\n\n\t&::before {\n\t\t${ribbon}\n\t\tcontent: '';\n\t\theight: 6px;\n\t\tleft: 0;\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\twidth: 100%;\n\t}\n\n\t.form-placeholder,\n\tform {\n\t\tdisplay: flex;\n\t\tjustify-content: space-between;\n\t\tflex-wrap: wrap;\n\n\t\t.placeholder-textarea,\n\t\ttextarea {\n\t\t\theight: 58px;\n\t\t\tmargin-bottom: 16px;\n\t\t\tmargin-top: 0;\n\t\t}\n\n\t\ttextarea {\n\t\t\tmargin-top: 16px;\n\n\t\t\t${media.xsm`\n\t\t\t\tmargin-top: 0;\n\t\t\t`}\n\t\t}\n\n\t\t.placeholder-gdpr,\n\t\t.gdpr-link {\n\t\t\tmargin-top: 0;\n\n\t\t\t${media.xsm`\n\t\t\t\tmargin-bottom: 0;\n\t\t\t\tmargin-left: 0;\n\t\t\t\tmargin-top: 15px;\n\t\t\t`}\n\t\t}\n\n\t\t.placeholder-button,\n\t\tbutton {\n\t\t\tmargin-right: 0;\n\t\t\twidth: 100%;\n\n\t\t\t${media.xsm`\n\t\t\t\twidth: calc((100% - 20px) / 2);\n\t\t\t`}\n\t\t}\n\n\t\t.placeholder-text {\n\t\t\tmargin-bottom: 29px;\n\t\t}\n\n\t\t.full {\n\t\t\twidth: 100%;\n\t\t}\n\n\t\t.half {\n\t\t\twidth: 100%;\n\n\t\t\t${media.xsm`\n\t\t\t\twidth: calc((100% - 20px) / 2);\n\t\t\t`}\n\t\t}\n\t}\n`;\n\nexport const FormContent = styled.div`\n\tmargin: 0 auto;\n\tmax-width: 545px;\n\n\th3 {\n\t\tmargin: 0 auto 32px;\n\t\ttext-align: center;\n\t}\n`;\n\nexport const FormCheckbox = styled.p`\n\t${textStyles.FormPlaceholderText}\n\tcolor: ${color(\"grey\", 2)};\n\tcursor: pointer;\n\tdisplay: block;\n\tmargin: 0 0 29px;\n\twidth: 100%;\n\n\t&[disabled] {\n\t\topacity: 0.7;\n\t\tpointer-events: none;\n\t}\n\n\tspan.icon {\n\t\tcolor: ${color(\"grey\", 5)};\n\t\tdisplay: inline-block;\n\t\tmargin-right: 10px;\n\n\t\t&.active {\n\t\t\tcolor: ${color(\"greenBright\", 1)};\n\t\t}\n\n\t\tsvg {\n\t\t\tmax-width: 16px;\n\t\t}\n\t}\n`;\n","import React, { lazy, Suspense, Fragment, useState, useEffect } from \"react\";\nimport {\n\tInputGroup,\n\tFormError,\n\tGdprLink,\n\tTextarea,\n\tThankYouMessage,\n\tPlaceholder,\n\tPlaceholderButton,\n\tPlaceholderGdpr,\n\tPlaceholderInput,\n\tPlaceholderTextarea,\n\tPlaceholderText,\n} from \"@components/Form/form-styles\";\n\nimport { hasWindow } from \"@utils\";\nimport { getSchema } from \"@utils/validators\";\nimport CtaButton from \"@components/Buttons/CtaButton\";\nimport { Link } from \"react-router-dom\";\nimport { FontAwesomeIcon as FaIcon } from \"@fortawesome/react-fontawesome\";\nimport { FormContainer, FormContent, FormCheckbox } from \"./styles\";\nimport onlineOfferService from \"@services/online-offer.service\";\nimport dataLayerPush from \"@utils/dataLayerPush\";\n\nconst Formik = lazy(() => import(/* webpackPrefetch:true */ \"formik\").then(module => ({ default: module.Formik })));\nconst ErrorMessage = lazy(() =>\n\timport(/* webpackPrefetch:true */ \"formik\").then(module => ({ default: module.ErrorMessage }))\n);\n\nconst validationSchema = getSchema([\n\t\"city\",\n\t\"email\",\n\t\"firstName\",\n\t\"lastName\",\n\t\"message\",\n\t\"phone\",\n\t\"postCode\",\n\t\"streetAddress\",\n]);\n\nconst FormPlaceholder = () => {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nconst OnlineOfferFollowForm = ({ property }) => {\n\tconst initialValues = {\n\t\tcity: \"\",\n\t\temail: \"\",\n\t\tfirstName: \"\",\n\t\tlastName: \"\",\n\t\tmessage: \"\",\n\t\tphone: \"\",\n\t\tpostCode: \"\",\n\t\tstreetAddress: \"\",\n\t};\n\n\tlet contactSubmitTimeout: number;\n\tconst [isSubmitted, setSubmitted] = useState(false);\n\tconst [visited, setVisited] = useState(false);\n\n\tconst doSubmit = async (values, { setSubmitting, resetForm }) => {\n\t\tsetSubmitting(true);\n\n\t\tconst formData = {\n\t\t\tproperty,\n\t\t\tvisited,\n\t\t\t...values,\n\t\t};\n\n\t\tif (hasWindow && window[\"wakeTestEmail\"]) {\n\t\t\tformData[\"wakeTestEmail\"] = window[\"wakeTestEmail\"];\n\t\t}\n\n\t\ttry {\n\t\t\tconst res = await onlineOfferService.addFollower(formData);\n\t\t\tconsole.log(\"successful form submit\", res);\n\t\t\tsetSubmitting(false);\n\t\t\tsetSubmitted(true);\n\n\t\t\tif (hasWindow) {\n\t\t\t\t// _gaq.push([\"_trackEvent\", \"Seuraa kohdetta\", \"Lähetä\"]);\n\t\t\t\tdataLayerPush({\n\t\t\t\t\taction: \"Lähetä\",\n\t\t\t\t\tconversionDetails: \"Seuraa kohdetta\",\n\t\t\t\t\tevent: \"customConversion\",\n\t\t\t\t});\n\n\t\t\t\tcontactSubmitTimeout = window.setTimeout(() => {\n\t\t\t\t\tsetSubmitted(false);\n\t\t\t\t\tresetForm(initialValues);\n\t\t\t\t\tsetVisited(false);\n\t\t\t\t}, 6000);\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.log(\"error while sending form..\", e);\n\t\t\tsetSubmitting(false);\n\t\t\tsetSubmitted(false);\n\t\t\tthrow e;\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\treturn () => {\n\t\t\t/* clear the reset timeout before component unmounts */\n\t\t\tif (contactSubmitTimeout) {\n\t\t\t\tclearTimeout(contactSubmitTimeout);\n\t\t\t}\n\t\t};\n\t}, []);\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t

Seuraa kohdetta ja tiedä missä mennään

\n\t\t\t\t{!hasWindow && }\n\t\t\t\t{hasWindow && (\n\t\t\t\t\t}>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{({ values, handleChange, handleBlur, handleSubmit, isSubmitting }) => (\n\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\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{msg => {msg}}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\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\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{msg => {msg}}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\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\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{msg => {msg}}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\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\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{msg => {msg}}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\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\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{msg => {msg}}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\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\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{msg => {msg}}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\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\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t{msg => {msg}}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\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{msg => {msg}}\n\t\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\t setVisited(v => !v)}\n\t\t\t\t\t\t\t\t\t\tdisabled={isSubmitted || isSubmitting}\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{visited && }\n\t\t\t\t\t\t\t\t\t\t\t{!visited && }\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tOlen jo tutustunut kohteeseen tai sopinut esittelyajasta.\n\t\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\t{isSubmitted && (\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\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\tKiitos, sinut on lisätty tämän tarjouskauppakohteen seuraajaksi!\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t\t\t{!isSubmitted && (\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\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\tTietosuojaseloste\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\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 OnlineOfferFollowForm;\n","import styled, { css } from \"styled-components\";\nimport { color, media, textStyles, fontFamily } from \"@utils/style-utils\";\nimport { Link } from \"react-router-dom\";\n\nexport const PreviewContainer = styled(Link)`\n\tbackground: ${color(\"white\")};\n\tborder: 1px solid ${color(\"grey\", 6)};\n\tdisplay: flex;\n\tflex-direction: column;\n\tpadding: 32px;\n\ttext-decoration: none;\n\n\t&[data-small=\"true\"] {\n\t\tflex-direction: row;\n\t\tpadding: 0;\n\t}\n\n\t${media.md`\n\t\tflex-direction: row;\n\t\tjustify-content: space-between;\n\t`}\n`;\n\nexport const PreviewImageContainer = styled.div`\n\tflex-basis: 100%;\n\n\t[data-small=\"true\"] & {\n\t\tflex-basis: auto;\n\t\tmargin-right: 15px;\n\t\twidth: 85px;\n\t}\n\n\t[data-small=\"false\"] & {\n\t\tmargin-bottom: 20px;\n\t}\n\n\t${media.md`\n\t\tflex-basis: 233px;\n\t\tmax-width: 233px;\n\n\t\t[data-small=\"false\"] & {\n\t\t\tmargin-bottom: 0;\n\t\t}\n\t`}\n`;\n\nexport const PreviewImage = styled.div.attrs(() => ({\n\tclassName: \"preview-image\",\n}))`\n\theight: 0;\n\toverflow: hidden;\n\tpadding-bottom: 100%;\n\tposition: relative;\n\twidth: 100%;\n\n\t[data-small=\"false\"] & {\n\t\tborder-radius: 4px;\n\t\tpadding-bottom: 70.82%;\n\t}\n\n\t.mini-preview & {\n\t\theight: 100%;\n\t\tpadding-bottom: 0;\n\t}\n\n\timg {\n\t\tdisplay: block;\n\t\tleft: 50%;\n\t\topacity: 0;\n\t\tposition: absolute;\n\t\ttop: 50%;\n\t\ttransform: translate(-50%, -50%);\n\t\twidth: 100%;\n\n\t\t&.loaded {\n\t\t\topacity: 1;\n\t\t\ttransition: opacity 500ms;\n\t\t}\n\n\t\t@supports (object-fit: cover) {\n\t\t\theight: 100%;\n\t\t\tobject-fit: cover;\n\t\t}\n\t}\n`;\n\nexport const PreviewInfo = styled.div`\n\tdisplay: flex;\n\tflex-basis: calc(100% - 85px - 16px);\n\tflex-wrap: wrap;\n\tpadding: 12px 12px 4px 0;\n\n\t.mini-preview & {\n\t\tflex-basis: 100%;\n\t\toverflow: hidden;\n\t\tpadding-right: 20px;\n\t\tposition: relative;\n\t\twidth: calc(100% - 85px - 16px);\n\n\t\t&::after {\n\t\t\tbackground-image: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 1) 50%);\n\t\t\tcontent: \"\";\n\t\t\tdisplay: block;\n\t\t\theight: 100%;\n\t\t\tposition: absolute;\n\t\t\tright: 0;\n\t\t\ttop: 0;\n\t\t\twidth: 20px;\n\t\t\tz-index: 99;\n\t\t}\n\t}\n\n\t${media.md`\n\t\tjustify-content: center;\n\t\tflex-basis: calc(100% - 233px - 16px);\n\t\tflex-direction: column;\n\t\tflex-wrap: nowrap;\n\t\tpadding: 0;\n\t`}\n\n\th4 {\n\t\tmargin: 8px 0 0;\n\t\twidth: 100%;\n\n\t\t${media.md`\n\t\t\tmargin: 0 0 3px;\n\t\t`}\n\n\t\t.mini-preview & {\n\t\t\t${textStyles.MediumText}\n\t\t\tmargin-bottom: 4px;\n\t\t\tmargin-top: 0;\n\t\t}\n\t}\n`;\n\nexport const AreaAndRoomtypes = styled.div`\n\tdisplay: flex;\n\tflex-direction: column;\n\t/* white-space: nowrap; */\n\n\t.mini-preview & {\n\t\tflex-direction: row;\n\t\tflex-wrap: nowrap;\n\t\twhite-space: nowrap;\n\t}\n`;\n\nexport const Area = styled.p`\n\tcolor: ${color(\"greenBright\", 1)};\n\tfont-size: 16px;\n\tfont-weight: 500;\n\tmargin: 0 15px 0 0;\n\n\t[data-small=\"false\"] & {\n\t\twidth: 100%;\n\t}\n\n\t${media.md`\n\t\tmargin: 0 0 2px;\n\n\t\t[data-small=\"false\"] & {\n\t\t\twidth: auto;\n\t\t}\n\t`}\n`;\n\nexport const RoomTypes = styled.p`\n\tcolor: ${color(\"grey\", 3)};\n\tfont-family: ${fontFamily.condensed};\n\tfont-size: 16px;\n\tmargin: 0;\n\n\t${media.md`\n\t\tmargin: 0 0 12px;\n\t`}\n`;\n\nexport const Followers = styled.p`\n\t${textStyles.MicroText}\n\tcolor: ${color(\"grey\", 1)};\n\tdisplay: block;\n\tflex-grow: 1;\n\tmargin: 3px 0 14px;\n\twidth: 100%;\n\n\tspan.icon {\n\t\tcolor: ${color(\"greenBright\", 1)};\n\t\tdisplay: inline-block;\n\t\tfont-size: 14px;\n\t\tmargin-right: 10px;\n\n\t\tsvg {\n\t\t\tmax-width: 18px;\n\t\t}\n\t}\n\n\t[data-small=\"true\"] & {\n\t\tdisplay: none;\n\t}\n`;\n","import React, { useEffect } from \"react\";\nimport {\n\tPreviewContainer,\n\tPreviewImage,\n\tPreviewImageContainer,\n\tPreviewInfo,\n\tRoomTypes,\n\tFollowers,\n\tArea,\n\tAreaAndRoomtypes,\n} from \"./styles\";\nimport Image from \"@components/Image\";\nimport { getAddressString, getMainImage, getImageUrl } from \"@utils/apartment\";\nimport { getAssetUrl, hasWindow, imageWithSize } from \"@utils\";\nimport { FontAwesomeIcon as FaIcon } from \"@fortawesome/react-fontawesome\";\nimport isEmpty from \"lodash-es/isEmpty\";\nimport axios, { AxiosResponse ,AxiosError } from \"axios\";\n\ninterface IProps {\n\tdoc: IProperty;\n\tsmall?: boolean;\n\t[key: string]: any;\n}\n\nconst OnlineOfferApartmentPreview = ({ doc, small = false, ...rest }: IProps) => {\n\tconst addressString = getAddressString(doc);\n\tconst {\n\t\tcanonicalPath,\n\t\tcanonicalUrl,\n\t\timages,\n\t\tkey,\n\t\tlivingArea,\n\t\tonlineFollowers,\n\t\troomTypes,\n\t\tsortArea,\n\t\ttotalArea,\n\t\ttype,\n\t\tupdateFollowers,\n\t\turlPart,\n\t} = doc;\n\n\tif (isEmpty(key)) {\n\t\treturn null;\n\t}\n\n\tconst mainImage: IPropertyImage = getMainImage(images);\n\tconst mainImageUrl = getImageUrl(mainImage);\n\tconst [ followerCount, setFollowerCount ] = React.useState(onlineFollowers);\n\n\tconst url = canonicalPath ? canonicalPath : canonicalUrl ? canonicalUrl : urlPart ? \"/\" + urlPart : \"/haku\";\n\n\tconst isLot = type === \"TO\" || type === \"OKTT\";\n\t/* prettier-ignore */\n\tconst area = !isLot\n\t\t? livingArea\n\t\t\t? livingArea\n\t\t\t: (totalArea ? totalArea : null)\n\t\t: totalArea\n\t\t\t? totalArea\n\t\t\t: (sortArea ? sortArea : null);\n\t/* prettier-ignore-end */\n\n\tuseEffect(() => {\n\t\tif (!hasWindow) {\n\t\t\treturn;\n\t\t}\n\t\tif (updateFollowers && !small) {\n\t\t\taxios.get(\"/api/km/KMSite/get-followers?key=\" + key).then((response: AxiosResponse) => {\n\t\t\t\tif (response && response.data && response.data.data && \"followers\" in response.data.data) {\n\t\t\t\t\tsetFollowerCount(response.data.data.followers);\n\t\t\t\t}\n\t\t\t}).catch((e: AxiosError) => {\n\t\t\t\tconsole.log(\"Updating followers failed\", e);\n\t\t\t});\n\t\t}\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\n\t\t\t\n\t\t\t\t{!!followerCount && followerCount > 0 && (\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\tKohdetta seuraa {followerCount > 1 ? `${followerCount} henkilöä` : \"1 henkilö\"}\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\t\n\t\t\t\t\t{!!area && {area} m²}\n\t\t\t\t\t\n\t\t\t\t\t\t{type}\n\t\t\t\t\t\t{roomTypes ? \", \" + roomTypes : \"\"}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t

{addressString}

\n\t\t\t
\n\t\t
\n\t);\n};\n\nexport default OnlineOfferApartmentPreview;\n","import styled, { keyframes } from \"styled-components\";\nimport { color, fontFamily, textStyles, media } from \"@utils/style-utils\";\nimport { rgba } from \"polished\";\n\nexport const HistoryContainer = styled.div`\n\tborder: 1px solid ${color(\"grey\", 6)};\n`;\n\nexport const HistoryHeader = styled.div`\n\tbackground: ${color(\"grey\", 7)};\n\tpadding: 20px 31px 24px;\n`;\n\nexport const HistoryTitle = styled.h4`\n\t${textStyles.MicroTextCaps}\n\tmargin: ${props => (props.noResults ? \"17px 0\" : \"0 0 17px\")};\n`;\n\nexport const HighestOffer = styled.div`\n\t${media.sm`\n\t\talign-items: flex-end;\n\t\tdisplay: flex;\n\t\tjustify-content: space-between;\n\t`}\n`;\n\nexport const HighestOfferColumn = styled.div`\n\tmargin-bottom: 17px;\n\n\t${media.sm`\n\t\tflex-basis: calc((100% - 20px) / 2);\n\t\tmargin-bottom: 0;\n\t`}\n`;\n\nexport const HightestOfferValue = styled.h4`\n\tcolor: ${color(\"greenBright\", 1)};\n\tfont-family: ${fontFamily.condensed};\n\tfont-size: 24px;\n\tfont-weight: 500;\n\tmargin: 0 0 4px;\n`;\n\nexport const HighestOfferDate = styled.p`\n\tcolor: ${color(\"grey\", 1)};\n\tfont-weight: 500;\n\tfont-size: 14px;\n\tmargin: 0 0 4px;\n`;\n\nexport const HightestOfferLabel = styled.p`\n\tcolor: ${color(\"grey\", 2)};\n\tfont-size: 14px;\n\tmargin: 0;\n`;\n\nexport const OffersContainer = styled.div`\n\tposition: relative;\n\toverflow-x: auto;\n\t-webkit-overflow-scrolling: touch;\n`;\n\nexport const Offers = styled.div`\n\tbackground: ${color(\"white\")};\n\tdisplay: ${props => (props.isOpen ? \"block\" : \"none\")};\n\tmin-width: 540px;\n\tpadding-top: 10px;\n\n\t${media.lgx`\n\t\tdisplay: block;\n\t\tmin-width: 0;\n\t`}\n`;\n\nexport const OfferRow = styled.div`\n\talign-items: center;\n\tborder-bottom: 1px solid ${color(\"grey\", 6)};\n\tdisplay: flex;\n\tjustify-content: space-between;\n\tpadding-left: 31px;\n\tpadding-right: 31px;\n\n\t&:last-of-type {\n\t\tborder-bottom: 0;\n\t}\n`;\n\nexport const OfferValue = styled.span`\n\tflex-basis: calc((100% - (3 * 16px)) / 4);\n\tfont-size: 14px;\n\tfont-weight: ${props => (props.bold ? \"500\" : \"normal\")};\n\tpadding: ${props => (props.bold ? \"18px 0\" : \"11px 0\")};\n`;\n\nconst bounce = keyframes`\n\t0%, 40%, 100% {\n\t\ttransform: translateY(0);\n\t}\n\t10%, 30% {\n\t\ttransform: translateY(3px);\n\t}\n\t20% {\n\t\ttransform: translateY(-1px);\n\t}\n`;\n\nexport const HistoryToggler = styled.button`\n\t-webkit-appearance: none;\n\t-moz-appearance: none;\n\talign-items: center;\n\tbackground-color: ${color(\"white\")};\n\tborder: 0;\n\tborder-top: 1px solid ${props => (props.isOpen ? color(\"grey\", 6) : \"rgba(255,255,255,0)\")};\n\tborder-radius: 0;\n\tcursor: pointer;\n\tdisplay: flex;\n\tfont-family: ${fontFamily.condensed};\n\tfont-size: 16px;\n\tjustify-content: center;\n\toutline: 0;\n\tpadding: 16px 31px;\n\ttext-align: center;\n\ttransition: background-color 150ms, border-color 150ms;\n\twidth: 100%;\n\n\t${media.lgx`\n\t\tdisplay: none;\n\t`}\n\n\t.is-pointer & {\n\t\t&:hover {\n\t\t\tbackground-color: ${rgba(color(\"greenBright\", 4), 0.1)};\n\n\t\t\tspan {\n\t\t\t\tanimation: ${bounce} 2s linear infinite;\n\t\t\t}\n\t\t}\n\t}\n\n\tspan.icon {\n\t\tcolor: ${color(\"greenBright\", 1)};\n\t\tfont-size: 16px;\n\t\tmargin-left: 8px;\n\n\t\tsvg {\n\t\t\tmax-width: 14px;\n\t\t}\n\t}\n`;\n","import React, { memo, Fragment, useState } from \"react\";\nimport isEmpty from \"lodash-es/isEmpty\";\nimport {\n\tHistoryTitle,\n\tHighestOffer,\n\tHighestOfferColumn,\n\tHightestOfferValue,\n\tHightestOfferLabel,\n\tHighestOfferDate,\n\tHistoryHeader,\n\tOffers,\n\tOfferRow,\n\tOfferValue,\n\tHistoryContainer,\n\tHistoryToggler,\n\tOffersContainer,\n} from \"./styles\";\nimport NumberFormat from \"react-number-format\";\nimport format from \"date-fns/format\";\nimport { getSeconds } from \"@utils\";\nimport { FontAwesomeIcon as FaIcon } from \"@fortawesome/react-fontawesome\";\n\ninterface IProps {\n\tdoc: IProperty;\n}\n\nconst getFormattedDate = (startDate): string => {\n\ttry {\n\t\tconst d = getSeconds(startDate) * 1000;\n\t\treturn format(d, \"DD.MM.YYYY\");\n\t} catch (e) {\n\t\treturn \"-\";\n\t}\n};\n\nconst OnlineOfferHistory = ({ doc }: IProps) => {\n\tconst { onlineOfferHistory, highestOnlineOffer } = doc;\n\tconst [historyOpen, setHistoryOpen] = useState(false);\n\n\tconst firstOffer = !isEmpty(onlineOfferHistory) ? onlineOfferHistory[0] : null;\n\n\tlet d: number;\n\tlet firstOfferDate: string;\n\n\tif (firstOffer) {\n\t\td = getSeconds(firstOffer.startDate) * 1000;\n\t\tfirstOfferDate = format(d, \"DD.MM.YYYY\");\n\t}\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{!isEmpty(onlineOfferHistory) ? (\n\t\t\t\t\t\n\t\t\t\t\t\tTarjoukset tähän mennessä\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{!!highestOnlineOffer && (\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\t\n\t\t\t\t\t\t\t\t\t{!!highestOnlineOffer\n\t\t\t\t\t\t\t\t\t\t? \"Uusin voimassa oleva tarjous\"\n\t\t\t\t\t\t\t\t\t\t: \"Ei voimassa olevia tarjouksia\"}\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{!!highestOnlineOffer && (\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{firstOfferDate}\n\t\t\t\t\t\t\t\t\tTarjous annettu\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\t\tTästä kohteesta ei ole vielä jätetty tarjouksia\n\t\t\t\t)}\n\t\t\t\n\t\t\t{!isEmpty(onlineOfferHistory) && (\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\t\n\t\t\t\t\t\t\t\tSumma\n\t\t\t\t\t\t\t\tTarjoustyyppi\n\t\t\t\t\t\t\t\tAnnettu\n\t\t\t\t\t\t\t\tAsiakasnumero\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{onlineOfferHistory.map(\n\t\t\t\t\t\t\t\t({ amount, conditional, customerKey, startDate }, index: number) => (\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\t\n\t\t\t\t\t\t\t\t\t\t\t{conditional ? \"Ehdollinen tarjous\" : \"Kirjallinen tarjous\"}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{getFormattedDate(startDate)}\n\t\t\t\t\t\t\t\t\t\t{customerKey}\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\t setHistoryOpen(o => !o)}>\n\t\t\t\t\t\t{historyOpen ? \"Sulje tarjoushistoria\" : \"Katso koko tarjoushistoria\"}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{historyOpen && }\n\t\t\t\t\t\t\t{!historyOpen && }\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 memo(OnlineOfferHistory);\n","import React, { Fragment } from \"react\";\nimport { connect } from \"react-redux\";\nimport { IApplicationState } from \"@redux\";\nimport {\n\tOnlineOfferTitle,\n\tOnlineOfferIcon,\n\tHero,\n\tHeroColumns,\n\tHeroColumn,\n\tOnlineOfferIntroText,\n\tOnlineOfferStep,\n\tOnlineOfferSteps,\n\tOnlineOfferStepsTitle,\n} from \"./styles\";\nimport { Container, NarrowContainer } from \"@components/Grid\";\n\nimport OnlineOfferFollowForm from \"@components/Form/OnlineOfferFollowForm\";\nimport ApartmentPreview from \"@components/OnlineOffer/OnlineOfferApartmentPreview\";\nimport OnlineOfferHistory from \"@components/OnlineOffer/OnlineOfferHistory\";\n\nimport Repeater from \"wake-react-components/repeater\";\nimport Text from \"wake-react-components/text\";\nimport Editor from \"wake-react-components/editor\";\nimport { isAdmin } from \"wake-react-components/utils\";\nimport isEmpty from \"lodash-es/isEmpty\";\nimport { filterXSS } from \"xss\";\nimport { getAddressString } from \"@utils/apartment\";\nimport { getAssetUrl } from \"@utils/index\";\n\ninterface IProps {\n\tdoc: IProperty;\n\t[key: string]: any;\n}\n\nconst OnlineOfferPropertyPage = ({ doc }: IProps) => {\n\tconst { page, offerSteps: pageOfferSteps } = doc;\n\n\tconst addressString = getAddressString(doc);\n\tconst offerSteps = !isEmpty(pageOfferSteps)\n\t\t? pageOfferSteps\n\t\t: !isEmpty(page) && !isEmpty(page.offerSteps)\n\t\t? page.offerSteps\n\t\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

Tarjouskauppa

\n\t\t\t\t\t
\n\t\t\t\t\t\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\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\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t

Tarjouskauppa

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

\n\t\t\t\t\t\tKiinteistömaailman Tarjouskauppa® on Kiinteistömaailman vakiintunut kauppatapa, jossa\n\t\t\t\t\t\ttarjoukset tehdään lähtöhinnasta ylöspäin. Näin asuntosi hinnaksi muodostuu sen todellinen\n\t\t\t\t\t\tmarkkinahinta. Myyjän ei tarvitse arvailla, olisiko asunnosta saanut enemmän eikä ostajan,\n\t\t\t\t\t\ttuliko tarjottua liikaa tai liian vähän.\n\t\t\t\t\t

\n\t\t\t\t
\n\t\t\t
\n\t\t\t\n\t\t\t\tNäin tarjouskauppa etenee\n\n\t\t\t\t{isAdmin && (\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\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\n\t\t\t\t{/* Repeater items will be saved for page so we have to do this for front */}\n\t\t\t\t{!isAdmin && !isEmpty(offerSteps) && (\n\t\t\t\t\t\n\t\t\t\t\t\t{offerSteps.map(({ offerStepTitle, offerStepContent }, index: number) => (\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\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\nconst mapStateToProps = (state: IApplicationState) => ({\n\tdoc: state.document,\n});\n\nexport default connect(mapStateToProps)(OnlineOfferPropertyPage);\n"],"sourceRoot":""}