{"mappings":"C,A,W,S,E,C,E,O,c,C,E,a,C,M,C,E,a,C,C,E,C,S,E,C,C,C,C,C,C,C,E,O,c,C,E,E,C,I,E,I,E,W,C,E,a,C,C,E,C,I,E,A,C,A,a,O,W,W,A,a,O,K,K,A,a,O,O,O,A,a,O,O,O,C,C,E,iB,C,E,E,Q,C,E,Q,S,C,C,C,E,E,E,O,E,E,E,O,C,U,W,O,C,G,I,E,E,S,E,E,S,E,E,S,E,E,SC+BA,EArByB,CAAC,CAAA,YAAE,CAAW,CAAA,WAAE,CAAU,CAAS,GAIxD,AAAA,CAAA,EAAA,EAAA,GAAA,AAAA,EAAC,EAAA,aAAK,CADR,CACU,SAXK,cAYX,SAAA,AAAA,CAAA,EAAA,EAAA,GAAA,AAAA,EAAC,EAAA,MAAK,CAAN,CACE,SAAA,AAAA,CAAA,EAAA,EAAA,GAAA,AAAA,EAAC,EAAA,KAAI,CAAL,CACE,KANK,uCAOL,QACE,AAAA,CAAA,EAAA,EAAA,GAAA,AAAA,EAAC,MADH,CACO,UAAU,WACb,SAAA,AAAA,CAAA,EAAA,EAAA,GAAA,AAAA,EAAC,EAAA,qBAAoB,CAArB,CACE,YAAa,EACb,WAAY,C,E,E,E,E,E,G,E,Q,S,C,C,C,E,E,E,O,C,wB,W,O,C,G,I,E,E,S,E,E,S,E,E,S,E,E,S,E,E,S,E,E,S,E,E,S,E,E,S,E,E,S,E,E,S,E,E,S,E,E,S,E,E,S,E,E,SCpB5B,IAAM,EAAyB,AAAA,CAAA,EAAA,EAAA,IAAG,AAAH,EAAK,IAApC,EAAA,UACM,EAAsB,AAAA,CAAA,EAAA,EAAA,IAAG,AAAH,EAAK,IAAjC,EAAA,UACM,EAAsB,AAAA,CAAA,EAAA,EAAA,IAAG,AAAH,EAAK,IAAjC,EAAA,UACM,EAA+B,AAAA,CAAA,EAAA,EAAA,IAAG,AAAH,EACnC,IADF,EAAA,UA6Ba,EAAwB,CAAC,CAAA,YACpC,CAAW,CAAA,WACX,CAAU,CACJ,IACN,GAAM,CAAC,EAAM,EAAQ,CAAG,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAAiB,EAAE,EACrC,CAAC,EAAmB,EAAqB,CAAG,AAAA,CAAA,EAAA,EAAA,QAAO,AAAP,EAE/C,CAAC,GACE,CAAC,EAAoB,EAA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A,EAAA,EAAA,aAAY,AAAZ,EAAc,MAAM,AAAA,CAAA,EAAA,EAAA,YAAW,AAAX,EAAa,GACjC,MAAA,IAAX,GACF,EAAK,IAAI,CAAC,CACR,KAAM,SACN,GAAI,EACJ,MAAO,CAAC,EAAE,EAAO,CAAC,AACpB,EAEJ,CAEA,GACE,EAAK,UAAU,EACf,AAAoB,WAApB,EAAK,UAAU,EACf,AAAoB,oBAApB,EAAK,UAAU,CACf,CACA,IACI,EAAuB,EAAK,UAAU,AAEtC,AAAoB,CAAA,gBAApB,EAAK,UAAU,CAEjB,EAAuB,EADV,EAAK,UAAU,CACiB,EAAG,KACnB,SAApB,EAAK,UAAU,EAExB,CAAA,EAAuB,EADV,EAAK,UAAU,CACiB,EAAG,IAAhD,EAEF,IAAM,EAAgB,EAAqB,OAAO,CAAC,KAAM,KAEnD,EAAoB,AAAA,CAAA,EAAA,EAAA,aAAY,AAAZ,EAAc,GACxC,EAAK,IAAI,CAAC,CACR,KAAM,aACN,WAAY,CACd,EACF,MAAW,EAAK,UAAU,EAAI,AAAoB,oBAApB,EAAK,UAAU,EAC3C,EAAK,IAAI,CAAC,CACR,KAAM,AAAA,EAAA,WAAU,CAAE,gBAAgB,CAClC,UAAW,CAAA,EACX,MAAO,AAAA,EAAA,cAAa,CAAE,WAAW,AACnC,GAGF,OAAO,CACT,CAEA,SAAS,EAAU,CAAgB,CAAE,CAAa,CAAE,CAAmB,EACrE,OACE,EAAS,MAAM,CAAC,EAAG,GACnB,EACA,EAAS,MAAM,CAAC,EAAQ,EAAY,MAAM,CAE9C,C,G,E,Q,S,C,C,C,E,E,E,O,C,S,W,O,C,G,E,E,O,C,e,W,O,C,G,E,E,O,C,gB,W,O,C,G,E,E,O,C,gB,W,O,C,G,E,E,O,C,kB,W,O,C,G,E,E,O,C,qB,W,O,C,G,E,E,O,C,e,W,O,C,G,E,E,O,C,sB,W,O,C,G,E,E,O,C,qB,W,O,C,G,E,E,O,C,qB,W,O,C,G,E,E,O,C,yB,W,O,C,G,E,E,O,C,yB,W,O,C,G,E,E,O,C,yB,W,O,C,G,E,E,O,C,uB,W,O,C,G,E,E,O,C,2B,W,O,C,G,E,E,O,C,gC,W,O,C,G,E,E,O,C,0B,W,O,C,G,E,E,O,C,8B,W,O,C,G,E,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","sources":["","js/React/components/ObjectsListComponents/FilterComponents/ForSaleComponent.tsx","js/React/components/ObjectsListComponents/FilterComponents/ForSaleComponentInner.tsx","js/React/pages/Context/ForSaleBrokerContext.tsx","node_modules/js-cookie/dist/js.cookie.js","js/React/filterTools.tsx","js/React/services/api.tsx","js/React/types/ForSaleString.tsx","js/React/components/CustomHooks/useUserContactId.tsx","js/React/components/ObjectsListComponents/Fallbacks/SearchFieldFallback.tsx","js/React/components/ObjectsListComponents/Fallbacks/EstateSelectorFallback.tsx","js/React/components/CustomHooks/useMediaQuery.tsx","js/React/components/ObjectsListComponents/SearchFieldComponent.tsx","js/React/components/ObjectsListComponents/TagSelectButton.tsx","js/React/components/ObjectsListComponents/RemoveFiltersButton.tsx","js/React/components/ObjectsListComponents/FilterComponents/RemoveFilterBtn.tsx","js/React/components/ObjectsListComponents/FilterComponents/RemoveFilterImg.tsx","js/React/components/ObjectsListComponents/FilterComponents/SearchFieldBtn.tsx","js/React/components/CustomHooks/useAutocomplete.tsx","node_modules/@parcel/runtime-js/lib/runtime-fe26feb50c7ff6b9.js","js/React/components/ObjectsListComponents/FilterComponents/CreateSearchProfileBtn.tsx","node_modules/@parcel/runtime-js/lib/runtime-c6b591a403c11104.js","node_modules/@parcel/runtime-js/lib/runtime-3448cc2d8fe21790.js","node_modules/@parcel/runtime-js/lib/runtime-f9957a666bc0cd17.js","node_modules/@parcel/runtime-js/lib/runtime-abf386a2905f6226.js"],"sourcesContent":["(function () {\n\nfunction $parcel$defineInteropFlag(a) {\n Object.defineProperty(a, '__esModule', {value: true, configurable: true});\n}\n\nfunction $parcel$export(e, n, v, s) {\n Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});\n}\n\nfunction $parcel$interopDefault(a) {\n return a && a.__esModule ? a.default : a;\n}\n\n var $parcel$global =\n typeof globalThis !== 'undefined'\n ? globalThis\n : typeof self !== 'undefined'\n ? self\n : typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {};\n var parcelRequire = $parcel$global[\"parcelRequire7bbe\"];\nvar parcelRegister = parcelRequire.register;\nparcelRegister(\"iO6mJ\", function(module, exports) {\n\n$parcel$defineInteropFlag(module.exports);\n\n$parcel$export(module.exports, \"default\", function () { return $f93b2727744a1dda$export$2e2bcd8739ae039; });\n\nvar $a9eYm = parcelRequire(\"a9eYm\");\n\nvar $awtH3 = parcelRequire(\"awtH3\");\nvar $54mKn = parcelRequire(\"54mKn\");\n\nvar $4Xjp8 = parcelRequire(\"4Xjp8\");\nconst $f93b2727744a1dda$var$basename = \"/till-salu/\";\nconst $f93b2727744a1dda$var$ForSaleComponent = ({ stickyTitle: stickyTitle, stickyText: stickyText })=>{\n const path = `/:estateType?/:county?/:muni?/:area?`;\n return /*#__PURE__*/ (0, $a9eYm.jsx)((0, $awtH3.BrowserRouter), {\n basename: $f93b2727744a1dda$var$basename,\n children: /*#__PURE__*/ (0, $a9eYm.jsx)((0, $54mKn.Routes), {\n children: /*#__PURE__*/ (0, $a9eYm.jsx)((0, $54mKn.Route), {\n path: path,\n element: /*#__PURE__*/ (0, $a9eYm.jsx)(\"div\", {\n className: \"relative\",\n children: /*#__PURE__*/ (0, $a9eYm.jsx)((0, $4Xjp8.ForSaleComponentInner), {\n stickyTitle: stickyTitle,\n stickyText: stickyText\n })\n })\n })\n })\n });\n};\nvar $f93b2727744a1dda$export$2e2bcd8739ae039 = $f93b2727744a1dda$var$ForSaleComponent;\n\n});\nparcelRegister(\"4Xjp8\", function(module, exports) {\n\n$parcel$export(module.exports, \"ForSaleComponentInner\", function () { return $b13d38dcc4f5cbf0$export$5783d03d8957aabb; });\n\nvar $a9eYm = parcelRequire(\"a9eYm\");\n\nvar $dTCkE = parcelRequire(\"dTCkE\");\n\nvar $a1uyt = parcelRequire(\"a1uyt\");\n\nvar $22cn8 = parcelRequire(\"22cn8\");\n\nvar $54mKn = parcelRequire(\"54mKn\");\n\nvar $l8eky = parcelRequire(\"l8eky\");\n\nvar $jfnuU = parcelRequire(\"jfnuU\");\n\nvar $1A7pc = parcelRequire(\"1A7pc\");\n\nvar $60LpM = parcelRequire(\"60LpM\");\n\nvar $67EyS = parcelRequire(\"67EyS\");\n\nvar $cUbQm = parcelRequire(\"cUbQm\");\n\nvar $1QzIr = parcelRequire(\"1QzIr\");\n\nvar $5jxwZ = parcelRequire(\"5jxwZ\");\n\nvar $lcDRl = parcelRequire(\"lcDRl\");\n\nconst $b13d38dcc4f5cbf0$var$FilterEstatesComponent = /*#__PURE__*/ (0, $dTCkE.lazy)(()=>(parcelRequire(\"34thG\")));\n\nconst $b13d38dcc4f5cbf0$var$SEOHeadingComponent = /*#__PURE__*/ (0, $dTCkE.lazy)(()=>(parcelRequire(\"2wZwx\")));\n\nconst $b13d38dcc4f5cbf0$var$ObjectListComponent = /*#__PURE__*/ (0, $dTCkE.lazy)(()=>(parcelRequire(\"kAzIx\")));\n\nconst $b13d38dcc4f5cbf0$var$MonitorSearchFormForSalePage = /*#__PURE__*/ (0, $dTCkE.lazy)(()=>(parcelRequire(\"cCGyt\")));\nconst $b13d38dcc4f5cbf0$var$basename = \"/till-salu/\";\nconst $b13d38dcc4f5cbf0$export$5783d03d8957aabb = ({ stickyTitle: stickyTitle, stickyText: stickyText })=>{\n const [tags, setTags] = (0, $dTCkE.useState)([]);\n const [visibleExtraCrits, setVisibleExtraCrits] = (0, $dTCkE.useState)({});\n const [isAuthorizedBroker, setIsAuthorizedBroker] = (0, $dTCkE.useState)(false);\n const [showErrorForSale, setShowErrorForSale] = (0, $dTCkE.useState)(false);\n const [badFarmCombo, setBadFarmCombo] = (0, $dTCkE.useState)(false);\n const [missingSearchParams, setMissingSearchParams] = (0, $dTCkE.useState)(false);\n const [forbiddenEstateType, setForbiddenEstateType] = (0, $dTCkE.useState)(false);\n const scrollLockUntilTagChange = (0, $dTCkE.useRef)(false);\n const filterItemClicked = (0, $dTCkE.useRef)(false);\n const path = (0, $54mKn.useParams)();\n const sessionId = (0, $l8eky.getSessionId)();\n const { data: user } = (0, $jfnuU.default)(sessionId);\n const isBigScreen = (0, $67EyS.default)(\"(min-width: 64rem)\");\n const isMediumScreen = (0, $67EyS.default)(\"(min-width: 46rem)\");\n const isSmallScreen = (0, $67EyS.default)(\"(max-width: 55.9rem)\");\n const [showHideModal, setShowHideModal] = (0, $dTCkE.useState)(false);\n const [objectListLayout, setObjectListLayout] = (0, $dTCkE.useState)(\"row\");\n (0, $dTCkE.useEffect)(()=>{\n var loginType = (0, (/*@__PURE__*/$parcel$interopDefault($1A7pc))).get(\"loginType\");\n setIsAuthorizedBroker(loginType === \"2\");\n }, []);\n //on filter change\n (0, $dTCkE.useEffect)(()=>{\n if (!filterItemClicked.current) return;\n scrollLockUntilTagChange.current = false;\n const searchFilter = (0, $22cn8.filterToQuerystring)(tags);\n // update url in browser\n const currentUrl = window.location.href;\n let viewSetting = \"\";\n if (currentUrl.indexOf((0, $cUbQm.ObjectListLayout).Map) > -1 || currentUrl.indexOf((0, $cUbQm.ObjectListLayout).Row) > -1) {\n if (currentUrl.indexOf((0, $cUbQm.ObjectListLayout).Map) > -1) viewSetting = \"#\" + (0, $cUbQm.ObjectListLayout).Map;\n else viewSetting = \"#\" + (0, $cUbQm.ObjectListLayout).Row;\n }\n window.history.replaceState(null, \"\", $b13d38dcc4f5cbf0$var$basename + searchFilter + viewSetting);\n if (tags.length === 0) setTags([\n {\n type: (0, $cUbQm.FilterTypes).AllEstates,\n isChecked: true,\n label: \"Alla bost\\xe4der\"\n }\n ]);\n else {\n var existingTags = tags.find((x)=>x.isChecked === true);\n var allEstates = tags.find((x)=>x.type === (0, $cUbQm.FilterTypes).AllEstates);\n if (!existingTags || existingTags === undefined) {\n if (allEstates === undefined) setTags([\n ...tags,\n {\n type: (0, $cUbQm.FilterTypes).AllEstates,\n isChecked: true,\n label: \"Alla bost\\xe4der\"\n }\n ]);\n else setTags(tags.map((x)=>{\n if (x.type === (0, $cUbQm.FilterTypes).AllEstates) x.isChecked = true;\n return x;\n }));\n } else setTags(tags);\n }\n }, [\n tags\n ]);\n (0, $dTCkE.useEffect)(()=>{\n function callback(tags) {\n setTimeout(()=>{\n setTags(tags);\n }, 100);\n }\n if (path.estateType) (0, $22cn8.getFilterFromPath)(path).then(callback);\n else (0, $22cn8.getFilterFromQueryParams)().then(callback);\n }, []);\n if (isSmallScreen === undefined && isMediumScreen === undefined && isBigScreen === undefined) return /*#__PURE__*/ (0, $a9eYm.jsx)(\"div\", {\n className: \"top-0 left-0 z-[9999] absolute bg-white w-full h-full\"\n });\n return /*#__PURE__*/ (0, $a9eYm.jsx)((0, $a1uyt.ForSaleBrokerContext).Provider, {\n value: {\n isAuthorizedBroker: isAuthorizedBroker,\n showErrorForSale: showErrorForSale,\n setShowErrorForSale: setShowErrorForSale,\n setIsAuthorizedBroker: setIsAuthorizedBroker\n },\n children: /*#__PURE__*/ (0, $a9eYm.jsxs)((0, $22cn8.FilterContext).Provider, {\n value: {\n isSmallScreen: isSmallScreen,\n isBigScreen: isBigScreen,\n isMediumScreen: isMediumScreen,\n tags: tags,\n setTags: (newTags)=>{\n filterItemClicked.current = true;\n setTags(newTags);\n },\n visibleExtraCrits: visibleExtraCrits,\n setVisibleExtraCrits: (newTags)=>{\n filterItemClicked.current = true;\n setVisibleExtraCrits(newTags);\n },\n sessionId: sessionId,\n user: user\n },\n children: [\n /*#__PURE__*/ (0, $a9eYm.jsx)((0, $dTCkE.Suspense), {\n children: /*#__PURE__*/ (0, $a9eYm.jsx)($b13d38dcc4f5cbf0$var$SEOHeadingComponent, {\n path: path\n })\n }),\n /*#__PURE__*/ (0, $a9eYm.jsxs)(\"div\", {\n className: \"lg:flex lg:justify-between mx-auto max-w-10xl\",\n children: [\n !isBigScreen && /*#__PURE__*/ (0, $a9eYm.jsx)((0, $1QzIr.default), {\n stickyField: true,\n inputLabel: (0, $cUbQm.Estates).SearchPlaceholder,\n activeInput: false,\n countySelected: false,\n multipleEstateTypesSelected: false,\n brokerOrOfficeTypesSelected: false,\n commercialOrProject: false\n }),\n /*#__PURE__*/ (0, $a9eYm.jsxs)((0, $dTCkE.Suspense), {\n fallback: /*#__PURE__*/ (0, $a9eYm.jsx)((0, $60LpM.SearchFieldFallback), {}),\n children: [\n /*#__PURE__*/ (0, $a9eYm.jsx)($b13d38dcc4f5cbf0$var$FilterEstatesComponent, {\n setShowHideModal: setShowHideModal,\n objectListLayout: objectListLayout\n }),\n isSmallScreen && /*#__PURE__*/ (0, $a9eYm.jsx)((0, $lcDRl.default), {\n sessionId: sessionId,\n setShowHideModalFunction: setShowHideModal\n })\n ]\n }),\n /*#__PURE__*/ (0, $a9eYm.jsx)($b13d38dcc4f5cbf0$var$ObjectListComponent, {\n stickyTitle: stickyTitle,\n stickyText: stickyText,\n badFarmCombo: badFarmCombo,\n setBadFarmCombo: setBadFarmCombo,\n missingSearchParams: missingSearchParams,\n setMissingSearchParams: setMissingSearchParams,\n setForbiddenEstateType: setForbiddenEstateType,\n forbiddenEstateType: forbiddenEstateType,\n setObjectListLayout: setObjectListLayout,\n objectListLayout: objectListLayout\n }),\n showHideModal && /*#__PURE__*/ (0, $a9eYm.jsx)((0, $dTCkE.Suspense), {\n children: /*#__PURE__*/ (0, $a9eYm.jsx)($b13d38dcc4f5cbf0$var$MonitorSearchFormForSalePage, {\n setShowHideModalFunction: setShowHideModal,\n open: showHideModal,\n hasAllReqParamsToSave: missingSearchParams,\n forBiddenEstateTypes: forbiddenEstateType,\n badFarmCombo: badFarmCombo\n })\n }),\n showHideModal && /*#__PURE__*/ (0, $a9eYm.jsx)((0, $5jxwZ.HelmetProvider), {\n children: /*#__PURE__*/ (0, $a9eYm.jsx)((0, $5jxwZ.Helmet), {\n children: /*#__PURE__*/ (0, $a9eYm.jsx)(\"script\", {\n children: `\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: 'filter_klick',\n eventInfo: {\n buttonText: 'Bevaka s\\xf6kning'\n }\n });\n `\n })\n })\n })\n ]\n })\n ]\n })\n });\n};\nvar $b13d38dcc4f5cbf0$export$2e2bcd8739ae039 = $b13d38dcc4f5cbf0$export$5783d03d8957aabb;\n\n});\nparcelRegister(\"a1uyt\", function(module, exports) {\n\n$parcel$export(module.exports, \"ForSaleBrokerContext\", function () { return $4b20ca3b8bdd5e3d$export$c4754ec34da4974d; });\n\nvar $a9eYm = parcelRequire(\"a9eYm\");\n\nvar $1A7pc = parcelRequire(\"1A7pc\");\n\nvar $dTCkE = parcelRequire(\"dTCkE\");\nconst $4b20ca3b8bdd5e3d$export$c4754ec34da4974d = /*#__PURE__*/ (0, $dTCkE.createContext)({});\nconst $4b20ca3b8bdd5e3d$var$ForSaleBrokerContextProvider = ({ children: children })=>{\n const [isAuthorizedBroker, setIsAuthorizedBroker] = (0, $dTCkE.useState)(false);\n const [showErrorForSale, setShowErrorForSale] = (0, $dTCkE.useState)(false);\n (0, $dTCkE.useEffect)(()=>{\n var loginType = (0, (/*@__PURE__*/$parcel$interopDefault($1A7pc))).get(\"loginType\");\n setIsAuthorizedBroker(loginType === \"2\");\n }, []);\n const contextObject = {\n isAuthorizedBroker: isAuthorizedBroker,\n showErrorForSale: showErrorForSale,\n setShowErrorForSale: setShowErrorForSale,\n setIsAuthorizedBroker: setIsAuthorizedBroker\n };\n return /*#__PURE__*/ (0, $a9eYm.jsx)($4b20ca3b8bdd5e3d$export$c4754ec34da4974d.Provider, {\n value: contextObject,\n children: children\n });\n};\nvar $4b20ca3b8bdd5e3d$export$2e2bcd8739ae039 = $4b20ca3b8bdd5e3d$var$ForSaleBrokerContextProvider;\n\n});\nparcelRegister(\"1A7pc\", function(module, exports) {\n(function(global, factory) {\n module.exports = factory();\n})(module.exports, function() {\n \"use strict\";\n /* eslint-disable no-var */ function assign(target) {\n for(var i = 1; i < arguments.length; i++){\n var source = arguments[i];\n for(var key in source)target[key] = source[key];\n }\n return target;\n }\n /* eslint-enable no-var */ /* eslint-disable no-var */ var defaultConverter = {\n read: function(value) {\n if (value[0] === '\"') value = value.slice(1, -1);\n return value.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent);\n },\n write: function(value) {\n return encodeURIComponent(value).replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g, decodeURIComponent);\n }\n };\n /* eslint-enable no-var */ /* eslint-disable no-var */ function init(converter, defaultAttributes) {\n function set(name, value, attributes) {\n if (typeof document === \"undefined\") return;\n attributes = assign({}, defaultAttributes, attributes);\n if (typeof attributes.expires === \"number\") attributes.expires = new Date(Date.now() + attributes.expires * 864e5);\n if (attributes.expires) attributes.expires = attributes.expires.toUTCString();\n name = encodeURIComponent(name).replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent).replace(/[()]/g, escape);\n var stringifiedAttributes = \"\";\n for(var attributeName in attributes){\n if (!attributes[attributeName]) continue;\n stringifiedAttributes += \"; \" + attributeName;\n if (attributes[attributeName] === true) continue;\n // Considers RFC 6265 section 5.2:\n // ...\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n // Consume the characters of the unparsed-attributes up to,\n // not including, the first %x3B (\";\") character.\n // ...\n stringifiedAttributes += \"=\" + attributes[attributeName].split(\";\")[0];\n }\n return document.cookie = name + \"=\" + converter.write(value, name) + stringifiedAttributes;\n }\n function get(name) {\n if (typeof document === \"undefined\" || arguments.length && !name) return;\n // To prevent the for loop in the first place assign an empty array\n // in case there are no cookies at all.\n var cookies = document.cookie ? document.cookie.split(\"; \") : [];\n var jar = {};\n for(var i = 0; i < cookies.length; i++){\n var parts = cookies[i].split(\"=\");\n var value = parts.slice(1).join(\"=\");\n try {\n var found = decodeURIComponent(parts[0]);\n jar[found] = converter.read(value, found);\n if (name === found) break;\n } catch (e) {}\n }\n return name ? jar[name] : jar;\n }\n return Object.create({\n set: set,\n get: get,\n remove: function(name, attributes) {\n set(name, \"\", assign({}, attributes, {\n expires: -1\n }));\n },\n withAttributes: function(attributes) {\n return init(this.converter, assign({}, this.attributes, attributes));\n },\n withConverter: function(converter) {\n return init(assign({}, this.converter, converter), this.attributes);\n }\n }, {\n attributes: {\n value: Object.freeze(defaultAttributes)\n },\n converter: {\n value: Object.freeze(converter)\n }\n });\n }\n var api = init(defaultConverter, {\n path: \"/\"\n });\n /* eslint-enable no-var */ return api;\n});\n\n});\n\n\nparcelRegister(\"22cn8\", function(module, exports) {\n\n$parcel$export(module.exports, \"getFilterFromQueryParams\", function () { return $3a2a085f4d14c4e3$export$e21ccb11fb11305c; });\n$parcel$export(module.exports, \"filterToQuerystring\", function () { return $3a2a085f4d14c4e3$export$81fb3fd77062e5ad; });\n$parcel$export(module.exports, \"FilterContext\", function () { return $3a2a085f4d14c4e3$export$152247e07967bd8f; });\n$parcel$export(module.exports, \"getFilterFromPath\", function () { return $3a2a085f4d14c4e3$export$3f6d48775dbb7b16; });\n\nvar $cUbQm = parcelRequire(\"cUbQm\");\n\nvar $l8eky = parcelRequire(\"l8eky\");\n\nvar $515ZP = parcelRequire(\"515ZP\");\n\nvar $5J7FU = parcelRequire(\"5J7FU\");\n\nvar $dTCkE = parcelRequire(\"dTCkE\");\nasync function $3a2a085f4d14c4e3$export$e21ccb11fb11305c() {\n const tags = [];\n const params = new URLSearchParams(window.location.search);\n // estate types\n const estateTypeParam = params.get((0, $cUbQm.FilterParams).ESTATETYPE_PARAM);\n estateTypeParam?.split(\",\").forEach((estateType)=>{\n tags.push({\n type: \"estateType\",\n estateType: estateType\n });\n });\n const municiParam = params.get((0, $cUbQm.FilterParams).MUNICI_PARAM);\n municiParam?.split(\",\").forEach((municipality)=>{\n tags.push({\n type: \"munici\",\n id: municipality,\n label: `${municipality} (Kommun)`\n });\n });\n const countyParam = params.get((0, $cUbQm.FilterParams).COUNTY_PARAM);\n countyParam?.split(\",\").forEach((county)=>{\n tags.push({\n type: \"county\",\n id: county,\n label: `${county} (L\\xe4n)`\n });\n });\n const areaParam = params.get((0, $cUbQm.FilterParams).AREA_PARAM);\n const areaNames = params.get(\"areaNames\")?.split(\",\");\n areaParam?.split(\",\").forEach((area, i)=>{\n const areaNameFromQP = areaNames?.[i] ?? \"\";\n tags.push({\n type: \"area\",\n id: area,\n label: `${areaNameFromQP ? areaNameFromQP : area} (Omr\\xe5de)`\n });\n });\n // extra criterias\n const extraCriteriaParam = params.get((0, $cUbQm.FilterParams).EXTRACRITERIA_PARAM);\n extraCriteriaParam?.split(\",\").forEach((id)=>{\n const criteriaName = getExtraSearchCriteriaName(id);\n tags.push({\n type: \"extraCriteria\",\n id: id,\n text: criteriaName\n });\n });\n function getExtraSearchCriteriaName(id) {\n const criteriaResp = (0, $cUbQm.ExtraCriterias)[id];\n const criteriaName = criteriaResp?.text;\n return criteriaName;\n }\n // showOnlyHeadStart\n const fromheadStartQuery = params.get((0, $cUbQm.FilterParams).HEADSTART_PARAM);\n if (fromheadStartQuery !== null && ((0, $cUbQm.FilterParams).BROKERID_PARAM !== null || (0, $cUbQm.FilterParams).CUSTOMERID_PARAM !== null)) {\n const fromheadStartParam = fromheadStartQuery === \"true\" ? true : false;\n tags.push({\n type: (0, $cUbQm.FilterParams).HEADSTART_PARAM,\n isChecked: fromheadStartParam\n });\n }\n // showSold\n const fromSoldQuery = params.get((0, $cUbQm.FilterParams).SOLD_PARAM);\n if (fromSoldQuery !== null && ((0, $cUbQm.FilterParams).BROKERID_PARAM !== null || (0, $cUbQm.FilterParams).CUSTOMERID_PARAM !== null)) {\n const soldParam = fromSoldQuery === \"true\" ? true : false;\n tags.push({\n type: (0, $cUbQm.FilterParams).SOLD_PARAM,\n isChecked: soldParam\n });\n }\n // alignment\n const alignmentsParam = params.get((0, $cUbQm.FilterParams).ALIGNMENT_PARAM);\n alignmentsParam?.split(\",\").forEach((id)=>{\n id = id.replace(\"/\", \"-\");\n tags.push({\n type: \"alignment\",\n id: id\n });\n });\n //Broker param from offices\n const brokerParam = params.get((0, $cUbQm.FilterParams).BROKERID_PARAM);\n if (brokerParam !== null) {\n const brokerName = await (0, $515ZP.getBrokerName)(brokerParam);\n if (brokerName !== undefined) tags.push({\n type: \"broker\",\n id: brokerParam,\n label: brokerName\n });\n }\n //Office id from officepage\n const officeParam = params.get((0, $cUbQm.FilterParams).CUSTOMERID_PARAM);\n if (officeParam !== null) {\n const officeName = await (0, $515ZP.getOfficeName)(officeParam);\n tags.push({\n type: \"office\",\n id: officeParam,\n label: officeName\n });\n }\n //Sustainable choice\n const greenEstateParam = params.get((0, $cUbQm.FilterParams).GREENESTATES_PARAM);\n if (greenEstateParam !== null) tags.push({\n type: (0, $cUbQm.FilterParams).GREENESTATES_PARAM,\n label: (0, $cUbQm.ServicesTitles).GreenEstate,\n isChecked: greenEstateParam === \"true\" ? true : false\n });\n //Bidding\n const biddingParam = params.get((0, $cUbQm.FilterParams).BIDDING_PARAM);\n if (biddingParam !== null) tags.push({\n type: (0, $cUbQm.FilterParams).BIDDING_PARAM,\n label: (0, $5J7FU.ForSaleStrings).BiddingShort,\n isChecked: biddingParam === \"true\" ? true : false\n });\n //sorting\n const sortParam = params.get((0, $cUbQm.FilterParams).SORT_PARAM);\n if (sortParam !== null) tags.push({\n type: \"sortType\",\n id: sortParam,\n name: (0, $cUbQm.SortType)[parseInt(sortParam)].label\n });\n // price\n if (params.get((0, $cUbQm.FilterParams).PRICEMIN_PARAM) !== null && params.get((0, $cUbQm.FilterParams).PRICEMAX_PARAM) !== null) {\n const priceMinParam = Number(params.get((0, $cUbQm.FilterParams).PRICEMIN_PARAM));\n const priceMaxParam = Number(params.get((0, $cUbQm.FilterParams).PRICEMAX_PARAM));\n tags.push({\n type: \"rangeTag\",\n name: (0, $cUbQm.RangeTagNames).Price,\n minVal: priceMinParam,\n maxVal: priceMaxParam\n });\n }\n // rooms\n if (params.get((0, $cUbQm.FilterParams).ROOMMIN_PARAM) !== null && params.get((0, $cUbQm.FilterParams).ROOMMAX_PARAM) !== null) {\n const roomMinParam = Number(params.get((0, $cUbQm.FilterParams).ROOMMIN_PARAM));\n const roomMaxParam = Number(params.get((0, $cUbQm.FilterParams).ROOMMAX_PARAM));\n tags.push({\n type: \"rangeTag\",\n name: (0, $cUbQm.RangeTagNames).Room,\n minVal: roomMinParam,\n maxVal: roomMaxParam\n });\n }\n // livingspace\n if (params.get((0, $cUbQm.FilterParams).LIVINGSPACEMIN_PARAM) !== null && params.get((0, $cUbQm.FilterParams).LIVINGSPACEMAX_PARAM) !== null) {\n const livingSpaceMinParam = Number(params.get((0, $cUbQm.FilterParams).LIVINGSPACEMIN_PARAM));\n const livingSpaceMaxParam = Number(params.get((0, $cUbQm.FilterParams).LIVINGSPACEMAX_PARAM));\n tags.push({\n type: \"rangeTag\",\n name: (0, $cUbQm.RangeTagNames).LivingSpace,\n minVal: livingSpaceMinParam,\n maxVal: livingSpaceMaxParam\n });\n }\n // monthly cost\n if (params.get((0, $cUbQm.FilterParams).MONTHLYCOSTMIN_PARAM) !== null && params.get((0, $cUbQm.FilterParams).MONTHLYCOSTMAX_PARAM) !== null) {\n const monthlyCostMinParam = Number(params.get((0, $cUbQm.FilterParams).MONTHLYCOSTMIN_PARAM));\n const monthlyCostMaxParam = Number(params.get((0, $cUbQm.FilterParams).MONTHLYCOSTMAX_PARAM));\n tags.push({\n type: \"rangeTag\",\n name: (0, $cUbQm.RangeTagNames).Charge,\n minVal: monthlyCostMinParam,\n maxVal: monthlyCostMaxParam\n });\n }\n // plotarea\n if (params.get((0, $cUbQm.FilterParams).PLOTAREAMIN_PARAM) !== null && params.get((0, $cUbQm.FilterParams).PLOTAREAMAX_PARAM) !== null) {\n const plotAreaMinParam = Number(params.get((0, $cUbQm.FilterParams).PLOTAREAMIN_PARAM));\n const plotAreaMaxParam = Number(params.get((0, $cUbQm.FilterParams).PLOTAREAMAX_PARAM));\n tags.push({\n type: \"rangeTag\",\n name: (0, $cUbQm.RangeTagNames).PlotArea,\n minVal: plotAreaMinParam,\n maxVal: plotAreaMaxParam\n });\n }\n return tags;\n}\nfunction $3a2a085f4d14c4e3$export$81fb3fd77062e5ad(filter, page, myPagesCheck) {\n const filtersStrings = [];\n // page\n if (page != null) filtersStrings.push(`page=${page}`);\n //municipality\n if (filter.some((x)=>x.type === \"munici\" && !myPagesCheck)) filtersStrings.push(`${(0, $cUbQm.FilterParams).MUNICI_PARAM}=${filter.filter((x)=>x.type === \"munici\").map((x)=>x.id).join(\",\")}`);\n else if (filter.some((x)=>x.type === \"munici\" && myPagesCheck)) filtersStrings.push(`${(0, $cUbQm.FilterParams).MUNICI_PARAM}=${filter.filter((x)=>x.type === \"munici\").map((x)=>x.municipality).join(\",\")}`);\n //county\n if (filter.some((x)=>x.type === \"county\")) filtersStrings.push(`${(0, $cUbQm.FilterParams).COUNTY_PARAM}=${filter.filter((x)=>x.type === \"county\").map((x)=>x.id).join(\",\")}`);\n //area\n if (filter.some((x)=>x.type === \"area\")) {\n filtersStrings.push(`${(0, $cUbQm.FilterParams).AREA_PARAM}=${filter.filter((x)=>x.type === \"area\").map((x)=>x.id).join(\",\")}`);\n filtersStrings.push(`${\"areaNames\"}=${filter.filter((x)=>x.type === \"area\").map((x)=>x.label?.split(\" (\")[0]).join(\",\")}`);\n }\n // estate types\n if (filter.some((x)=>x.type === \"estateType\")) filtersStrings.push(`${(0, $cUbQm.FilterParams).ESTATETYPE_PARAM}=${filter.filter((x)=>x.type === \"estateType\").map((x)=>x.estateType).join(\",\")}`);\n // extra criterias\n if (filter.some((x)=>x.type === \"extraCriteria\")) filtersStrings.push(`${(0, $cUbQm.FilterParams).EXTRACRITERIA_PARAM}=${filter.filter((x)=>x.type === \"extraCriteria\").map((x)=>x.id).join(\",\")}`);\n // alignment\n if (filter.some((x)=>x.type === \"alignment\")) filtersStrings.push(`${(0, $cUbQm.FilterParams).ALIGNMENT_PARAM}=${filter.filter((x)=>x.type === \"alignment\").map((x)=>x.id).join(\",\")}`);\n if (filter.some((x)=>x.type === \"broker\")) filtersStrings.push(`${(0, $cUbQm.FilterParams).BROKERID_PARAM}=${filter.filter((x)=>x.type === \"broker\").map((x)=>x.id)}`);\n if (filter.some((x)=>x.type === \"office\")) filtersStrings.push(`${(0, $cUbQm.FilterParams).CUSTOMERID_PARAM}=${filter.filter((x)=>x.type === \"office\").map((x)=>x.id)}`);\n //Försprång\n if (filter.some((x)=>x.type === (0, $cUbQm.FilterParams).HEADSTART_PARAM)) filtersStrings.push(`${(0, $cUbQm.FilterParams).HEADSTART_PARAM}=${filter.filter((x)=>x.type === (0, $cUbQm.FilterParams).HEADSTART_PARAM).map((x)=>x.isChecked)}`);\n //Only show sold\n if (filter.some((x)=>x.type === (0, $cUbQm.FilterParams).SOLD_PARAM)) filtersStrings.push(`${(0, $cUbQm.FilterParams).SOLD_PARAM}=${filter.filter((x)=>x.type === (0, $cUbQm.FilterParams).SOLD_PARAM).map((x)=>x.isChecked)}`);\n //Sustainable choice\n if (filter.some((x)=>x.type === (0, $cUbQm.FilterParams).GREENESTATES_PARAM)) filtersStrings.push(`${(0, $cUbQm.FilterParams).GREENESTATES_PARAM}=${filter.filter((x)=>x.type === (0, $cUbQm.FilterParams).GREENESTATES_PARAM).map((x)=>x.isChecked)}`);\n //Bidding\n if (filter.some((x)=>x.type === (0, $cUbQm.FilterParams).BIDDING_PARAM)) filtersStrings.push(`${(0, $cUbQm.FilterParams).BIDDING_PARAM}=${filter.filter((x)=>x.type === (0, $cUbQm.FilterParams).BIDDING_PARAM).map((x)=>x.isChecked)}`);\n // price\n if (filter.some((x)=>x.type === \"rangeTag\" && x.name === \"Pris\")) filtersStrings.push(`${(0, $cUbQm.FilterParams).PRICEMIN_PARAM}=${filter.filter((x)=>x.type === \"rangeTag\" && x.name === \"Pris\").map((x)=>x.minVal).join(\",\")}`);\n if (filter.some((x)=>x.type === \"rangeTag\" && x.name === \"Pris\")) filtersStrings.push(`${(0, $cUbQm.FilterParams).PRICEMAX_PARAM}=${filter.filter((x)=>x.type === \"rangeTag\" && x.name === \"Pris\").map((x)=>x.maxVal).join(\",\")}`);\n //rooms\n if (filter.some((x)=>x.type === \"rangeTag\" && x.name === \"Rum\")) filtersStrings.push(`${(0, $cUbQm.FilterParams).ROOMMIN_PARAM}=${filter.filter((x)=>x.type === \"rangeTag\" && x.name === \"Rum\").map((x)=>x.minVal).join(\",\")}`);\n if (filter.some((x)=>x.type === \"rangeTag\" && x.name === \"Rum\")) filtersStrings.push(`${(0, $cUbQm.FilterParams).ROOMMAX_PARAM}=${filter.filter((x)=>x.type === \"rangeTag\" && x.name === \"Rum\").map((x)=>x.maxVal).join(\",\")}`);\n // livingspace\n if (filter.some((x)=>x.type === \"rangeTag\" && x.name === \"Boarea\")) filtersStrings.push(`${(0, $cUbQm.FilterParams).LIVINGSPACEMIN_PARAM}=${filter.filter((x)=>x.type === \"rangeTag\" && x.name === \"Boarea\").map((x)=>x.minVal).join(\",\")}`);\n if (filter.some((x)=>x.type === \"rangeTag\" && x.name === \"Boarea\")) filtersStrings.push(`${(0, $cUbQm.FilterParams).LIVINGSPACEMAX_PARAM}=${filter.filter((x)=>x.type === \"rangeTag\" && x.name === \"Boarea\").map((x)=>x.maxVal).join(\",\")}`);\n // Monthly cost\n if (filter.some((x)=>x.type === \"rangeTag\" && x.name === \"Avgift\")) filtersStrings.push(`${(0, $cUbQm.FilterParams).MONTHLYCOSTMIN_PARAM}=${filter.filter((x)=>x.type === \"rangeTag\" && x.name === \"Avgift\").map((x)=>x.minVal).join(\",\")}`);\n if (filter.some((x)=>x.type === \"rangeTag\" && x.name === \"Avgift\")) filtersStrings.push(`${(0, $cUbQm.FilterParams).MONTHLYCOSTMAX_PARAM}=${filter.filter((x)=>x.type === \"rangeTag\" && x.name === \"Avgift\").map((x)=>x.maxVal).join(\",\")}`);\n // Plot Area\n if (filter.some((x)=>x.type === \"rangeTag\" && x.name === \"Tomtarea\")) filtersStrings.push(`${(0, $cUbQm.FilterParams).PLOTAREAMIN_PARAM}=${filter.filter((x)=>x.type === \"rangeTag\" && x.name === \"Tomtarea\").map((x)=>x.minVal).join(\",\")}`);\n if (filter.some((x)=>x.type === \"rangeTag\" && x.name === \"Tomtarea\")) filtersStrings.push(`${(0, $cUbQm.FilterParams).PLOTAREAMAX_PARAM}=${filter.filter((x)=>x.type === \"rangeTag\" && x.name === \"Tomtarea\").map((x)=>x.maxVal).join(\",\")}`);\n // sortType\n if (filter.some((x)=>x.type === \"sortType\")) filtersStrings.push(`${(0, $cUbQm.FilterParams).SORT_PARAM}=${filter.filter((x)=>x.type === \"sortType\").map((x)=>x.id)}`);\n return filtersStrings.length ? encodeURI(`?${filtersStrings.join(\"&\")}`) : \"\";\n}\nconst $3a2a085f4d14c4e3$export$152247e07967bd8f = /*#__PURE__*/ (0, $dTCkE.createContext)({});\nasync function $3a2a085f4d14c4e3$export$3f6d48775dbb7b16(path) {\n const tags = [];\n if (path.area) {\n const cameledArea = (0, $l8eky.makeCamelCase)(path.area);\n const withoutDashes = cameledArea.replace(/-/g, \" \");\n tags.push({\n type: \"area\",\n id: cameledArea,\n label: `${withoutDashes} (Omr\\xe5de)`\n });\n } else if (path.muni) {\n const cameledMunici = (0, $l8eky.makeCamelCase)(path.muni);\n const municipality = (0, $l8eky.makeCamelCase)(await (0, $515ZP.getMunicipalityTag)(cameledMunici));\n if (municipality !== undefined) tags.push({\n type: \"munici\",\n id: cameledMunici,\n label: `${municipality}`\n });\n } else if (path.county) {\n const cameledCounty = (0, $l8eky.makeCamelCase)(path.county);\n const county = (0, $l8eky.makeCamelCase)(await (0, $515ZP.getCountyTag)(cameledCounty));\n if (county !== undefined) tags.push({\n type: \"county\",\n id: cameledCounty,\n label: `${county}`\n });\n }\n if (path.estateType && path.estateType !== \"bostad\" && path.estateType !== \"bra-energiklass\") {\n let tempHolder = \"\";\n let prettyEstateTypeName = path.estateType;\n //ordinary cases\n if (path.estateType === \"bostadsratt\") {\n tempHolder = path.estateType;\n prettyEstateTypeName = $3a2a085f4d14c4e3$var$replaceAt(tempHolder, 8, \"\\xe4\");\n } else if (path.estateType === \"gard\") {\n tempHolder = path.estateType;\n prettyEstateTypeName = $3a2a085f4d14c4e3$var$replaceAt(tempHolder, 1, \"\\xe5\");\n }\n const withoutDashes = prettyEstateTypeName.replace(/-/g, \" \");\n const cameledEstateType = (0, $l8eky.makeCamelCase)(withoutDashes);\n tags.push({\n type: \"estateType\",\n estateType: cameledEstateType\n });\n } else if (path.estateType && path.estateType === \"bra-energiklass\") tags.push({\n type: (0, $cUbQm.FilterTypes).ShowGreenEstates,\n isChecked: true,\n label: (0, $cUbQm.ServicesTitles).GreenEstate\n });\n return tags;\n}\nfunction $3a2a085f4d14c4e3$var$replaceAt(myString, index, replacement) {\n return myString.substr(0, index) + replacement + myString.substr(index + replacement.length);\n}\n\n});\nparcelRegister(\"515ZP\", function(module, exports) {\n\n$parcel$export(module.exports, \"apiUrl\", function () { return $faac5a7a58925656$export$e9ddf1da8d18d6f; });\n$parcel$export(module.exports, \"kycPortalUrl\", function () { return $faac5a7a58925656$export$ad8fbf1335de6218; });\n$parcel$export(module.exports, \"getBrokerName\", function () { return $faac5a7a58925656$export$8e6d207ebd320889; });\n$parcel$export(module.exports, \"getOfficeName\", function () { return $faac5a7a58925656$export$e7fc2f87021c4f26; });\n$parcel$export(module.exports, \"getPersonalData\", function () { return $faac5a7a58925656$export$35cd3e25af2ef930; });\n$parcel$export(module.exports, \"getMunicipalityTag\", function () { return $faac5a7a58925656$export$930ee366b3d03280; });\n$parcel$export(module.exports, \"getCountyTag\", function () { return $faac5a7a58925656$export$cebb9be7766a1779; });\n$parcel$export(module.exports, \"getQuestionListData\", function () { return $faac5a7a58925656$export$f953ee8ad3c2f078; });\n$parcel$export(module.exports, \"getGeneralInfoData\", function () { return $faac5a7a58925656$export$cfa44af66bbf621d; });\n$parcel$export(module.exports, \"getEconomyInfoData\", function () { return $faac5a7a58925656$export$1c959a0887934c9; });\n$parcel$export(module.exports, \"getAboutEstateInfoData\", function () { return $faac5a7a58925656$export$b4f8909e2e1b029f; });\n$parcel$export(module.exports, \"getHomeAssignmentDates\", function () { return $faac5a7a58925656$export$c2f02f2cdcb26bb4; });\n$parcel$export(module.exports, \"getSurroundingInfoData\", function () { return $faac5a7a58925656$export$c5edcf354e7951a6; });\n$parcel$export(module.exports, \"getTechnicalInfoData\", function () { return $faac5a7a58925656$export$41378c6a48631b14; });\n$parcel$export(module.exports, \"getDeclarationBasisDates\", function () { return $faac5a7a58925656$export$23160db3718428b9; });\n$parcel$export(module.exports, \"getDeclarationBasisSettlement\", function () { return $faac5a7a58925656$export$5b598e839c07c5f4; });\n$parcel$export(module.exports, \"getDeclarationBasisSale\", function () { return $faac5a7a58925656$export$e05d5ef9aa09290e; });\n$parcel$export(module.exports, \"getDeclarationBasisPurchase\", function () { return $faac5a7a58925656$export$c7312eab72c6dcef; });\n$parcel$export(module.exports, \"getDeclarationBasisSuspension\", function () { return $faac5a7a58925656$export$f9dd191eee96b121; });\n$parcel$export(module.exports, \"getDeclarationBasisMAR\", function () { return $faac5a7a58925656$export$4905b08d33ae334f; });\n$parcel$export(module.exports, \"getToDoDates\", function () { return $faac5a7a58925656$export$8da75b13c89971e6; });\n$parcel$export(module.exports, \"getKycForm\", function () { return $faac5a7a58925656$export$ac86386cf209f951; });\n$parcel$export(module.exports, \"getWebsiteVisitor\", function () { return $faac5a7a58925656$export$1f48879c04f44a0f; });\n$parcel$export(module.exports, \"getMunicipalityData\", function () { return $faac5a7a58925656$export$9593ca3a476838b5; });\n$parcel$export(module.exports, \"getObjectTypeData\", function () { return $faac5a7a58925656$export$64e4b188c77435e6; });\n$parcel$export(module.exports, \"getLoginInfo\", function () { return $faac5a7a58925656$export$ebe451eb84baa5b8; });\n$parcel$export(module.exports, \"getGepositData\", function () { return $faac5a7a58925656$export$cc20294e6e95aa8; });\n$parcel$export(module.exports, \"getNrOfSpeculators\", function () { return $faac5a7a58925656$export$1c33aa1c52378f0; });\nconst $faac5a7a58925656$export$40edfb7eeb78c4e8 = true;\nconst $faac5a7a58925656$export$e9ddf1da8d18d6f = \"https://app-lansfast-api.azurewebsites.net\";\nconst $faac5a7a58925656$export$ad8fbf1335de6218 = \"https://kyc.lansfast.se\";\nconst $faac5a7a58925656$export$ad2637a4162a5855 = \"http://localhost:5208\";\nconst $faac5a7a58925656$export$90b486e772451dd = window.location.origin;\nconst $faac5a7a58925656$export$a1449de16bf292a7 = \"/umbraco/api\";\nconst $faac5a7a58925656$export$8e6d207ebd320889 = async (brokerId)=>{\n const response = await fetch($faac5a7a58925656$export$e9ddf1da8d18d6f + `/api/Search/GetBrokerTag?brokerId=${brokerId}`);\n const data = await response.json();\n return data;\n};\nconst $faac5a7a58925656$export$e7fc2f87021c4f26 = async (customerId)=>{\n const response = await fetch($faac5a7a58925656$export$e9ddf1da8d18d6f + `/api/Search/GetOfficeTag?customerId=${customerId}`);\n const data = await response.json();\n return data;\n};\nconst $faac5a7a58925656$export$35cd3e25af2ef930 = async (ssn)=>{\n const response = await fetch($faac5a7a58925656$export$e9ddf1da8d18d6f + `/api/persondata/getpersoninformation?SSN=${ssn}`);\n const personalData = await response.json();\n return personalData;\n};\nconst $faac5a7a58925656$export$930ee366b3d03280 = async (municipality)=>{\n const response = await fetch($faac5a7a58925656$export$e9ddf1da8d18d6f + `/api/Search/CreateMunicipalityTags?municipality=${municipality}`);\n const data = await response.json();\n return data?.tag;\n};\nconst $faac5a7a58925656$export$cebb9be7766a1779 = async (county)=>{\n const response = await fetch($faac5a7a58925656$export$e9ddf1da8d18d6f + `/api/Search/CreateCountyTags?county=${county}`);\n const data = await response.json();\n return data?.tag;\n};\nconst $faac5a7a58925656$export$f953ee8ad3c2f078 = async (sessionId, estateId)=>{\n const SAVE_URL = `/api/MyPages/GetQuestionList?` + new URLSearchParams({\n sessionId: sessionId,\n estateId: estateId\n });\n const response = await fetch($faac5a7a58925656$export$e9ddf1da8d18d6f + SAVE_URL);\n const data = await response.json();\n return data;\n};\nconst $faac5a7a58925656$export$cfa44af66bbf621d = async (sessionId, estateId)=>{\n const SAVE_URL = `/api/MyPages/HomeAssignment/GetGeneralInfo?` + new URLSearchParams({\n sessionId: sessionId,\n estateId: estateId\n });\n const response = await fetch($faac5a7a58925656$export$e9ddf1da8d18d6f + SAVE_URL);\n const data = await response.json();\n return data;\n};\nconst $faac5a7a58925656$export$1c959a0887934c9 = async (sessionId, estateId)=>{\n const SAVE_URL = `/api/MyPages/HomeAssignment/GetEconomyInfo?` + new URLSearchParams({\n sessionId: sessionId,\n estateId: estateId\n });\n const response = await fetch($faac5a7a58925656$export$e9ddf1da8d18d6f + SAVE_URL);\n const data = await response.json();\n return data;\n};\nconst $faac5a7a58925656$export$b4f8909e2e1b029f = async (sessionId, estateId)=>{\n const SAVE_URL = `/api/MyPages/HomeAssignment/GetAboutEstateInfo?` + new URLSearchParams({\n sessionId: sessionId,\n estateId: estateId\n });\n const response = await fetch($faac5a7a58925656$export$e9ddf1da8d18d6f + SAVE_URL);\n const data = await response.json();\n return data;\n};\nconst $faac5a7a58925656$export$c2f02f2cdcb26bb4 = async (sessionId, estateId)=>{\n const SAVE_URL = `/api/MyPages/HomeAssignment/GetDates?` + new URLSearchParams({\n sessionId: sessionId,\n estateId: estateId\n });\n const response = await fetch($faac5a7a58925656$export$e9ddf1da8d18d6f + SAVE_URL);\n const data = await response.json();\n return data;\n};\nconst $faac5a7a58925656$export$c5edcf354e7951a6 = async (sessionId, estateId)=>{\n const SAVE_URL = `/api/MyPages/HomeAssignment/GetSurroundingInfo?` + new URLSearchParams({\n sessionId: sessionId,\n estateId: estateId\n });\n const response = await fetch($faac5a7a58925656$export$e9ddf1da8d18d6f + SAVE_URL);\n const data = await response.json();\n return data;\n};\nconst $faac5a7a58925656$export$41378c6a48631b14 = async (sessionId, estateId)=>{\n const SAVE_URL = `/api/MyPages/HomeAssignment/GetTechnicalInfo?` + new URLSearchParams({\n sessionId: sessionId,\n estateId: estateId\n });\n const response = await fetch($faac5a7a58925656$export$e9ddf1da8d18d6f + SAVE_URL);\n const data = await response.json();\n return data;\n};\nconst $faac5a7a58925656$export$23160db3718428b9 = async (sessionId, estateId)=>{\n const GET_URL = `/api/MyPages/DeclarationBasis/GetDates?` + new URLSearchParams({\n sessionId: sessionId,\n estateId: estateId\n });\n const response = await fetch($faac5a7a58925656$export$e9ddf1da8d18d6f + GET_URL);\n const data = await response.json();\n return data;\n};\nconst $faac5a7a58925656$export$5b598e839c07c5f4 = async (sessionId, estateId)=>{\n const GET_URL = `/api/MyPages/DeclarationBasis/GetSettlement?` + new URLSearchParams({\n sessionId: sessionId,\n estateId: estateId\n });\n const response = await fetch($faac5a7a58925656$export$e9ddf1da8d18d6f + GET_URL);\n const data = await response.json();\n return data;\n};\nconst $faac5a7a58925656$export$e05d5ef9aa09290e = async (sessionId, estateId)=>{\n const GET_URL = `/api/MyPages/DeclarationBasis/GetSale?` + new URLSearchParams({\n sessionId: sessionId,\n estateId: estateId\n });\n const response = await fetch($faac5a7a58925656$export$e9ddf1da8d18d6f + GET_URL);\n const data = await response.json();\n return data;\n};\nconst $faac5a7a58925656$export$c7312eab72c6dcef = async (sessionId, estateId)=>{\n const GET_URL = `/api/MyPages/DeclarationBasis/GetPurchase?` + new URLSearchParams({\n sessionId: sessionId,\n estateId: estateId\n });\n const response = await fetch($faac5a7a58925656$export$e9ddf1da8d18d6f + GET_URL);\n const data = await response.json();\n return data;\n};\nconst $faac5a7a58925656$export$f9dd191eee96b121 = async (sessionId, estateId)=>{\n const GET_URL = `/api/MyPages/DeclarationBasis/GetSuspension?` + new URLSearchParams({\n sessionId: sessionId,\n estateId: estateId\n });\n const response = await fetch($faac5a7a58925656$export$e9ddf1da8d18d6f + GET_URL);\n const data = await response.json();\n return data;\n};\nconst $faac5a7a58925656$export$4905b08d33ae334f = async (sessionId, estateId)=>{\n const GET_URL = `/api/MyPages/DeclarationBasis/GetMaintenanceAndRebuilding?` + new URLSearchParams({\n sessionId: sessionId,\n estateId: estateId\n });\n const response = await fetch($faac5a7a58925656$export$e9ddf1da8d18d6f + GET_URL);\n const data = await response.json();\n return data;\n};\nconst $faac5a7a58925656$export$8da75b13c89971e6 = async (sessionId, estateId)=>{\n const SAVE_URL = `/api/MyPages/GetToDoDates?` + new URLSearchParams({\n sessionId: sessionId,\n estateId: estateId\n });\n const response = await fetch($faac5a7a58925656$export$e9ddf1da8d18d6f + SAVE_URL);\n const data = await response.json();\n return data;\n};\nconst $faac5a7a58925656$export$ac86386cf209f951 = async (userId, estateId)=>{\n const GET_URL = `/api/User/GetKycForms?` + new URLSearchParams({\n sessionId: userId,\n estateId: estateId\n });\n const response = await fetch($faac5a7a58925656$export$e9ddf1da8d18d6f + GET_URL);\n const data = await response.json();\n return data || null;\n};\nconst $faac5a7a58925656$export$1f48879c04f44a0f = async (estateId, sessionId)=>{\n const GET_URL = `/api/Statistics/SourceData?` + new URLSearchParams({\n estateId: estateId,\n sessionId: sessionId\n });\n const response = await fetch($faac5a7a58925656$export$e9ddf1da8d18d6f + GET_URL);\n const objectWebsiteStats = await response.json();\n return objectWebsiteStats;\n};\nconst $faac5a7a58925656$export$9593ca3a476838b5 = async (estateId, sessionId)=>{\n const GET_URL = `/api/Statistics/MunicipalityData?` + new URLSearchParams({\n estateId: estateId,\n sessionId: sessionId\n });\n const response = await fetch($faac5a7a58925656$export$e9ddf1da8d18d6f + GET_URL);\n const objectWebsiteStats = await response.json();\n return objectWebsiteStats;\n};\nconst $faac5a7a58925656$export$64e4b188c77435e6 = async (estateId, sessionId)=>{\n const GET_URL = `/api/Statistics/ObjectTypeData?` + new URLSearchParams({\n estateId: estateId,\n sessionId: sessionId\n });\n const response = await fetch($faac5a7a58925656$export$e9ddf1da8d18d6f + GET_URL);\n const objectData = await response.json();\n return objectData;\n};\nconst $faac5a7a58925656$export$ebe451eb84baa5b8 = async ()=>{\n const GET_URL = \"/userapi/login\";\n const response = await fetch($faac5a7a58925656$export$90b486e772451dd + $faac5a7a58925656$export$a1449de16bf292a7 + GET_URL);\n const loginInfo = await response.json();\n return loginInfo;\n};\nconst $faac5a7a58925656$export$cc20294e6e95aa8 = async (query)=>{\n const GET_URL = `/api/Forms/GetGepositData?` + new URLSearchParams({\n query: query\n });\n const response = await fetch($faac5a7a58925656$export$e9ddf1da8d18d6f + GET_URL);\n const specResult = await response.json();\n return specResult;\n};\nconst $faac5a7a58925656$export$1c33aa1c52378f0 = async (data)=>{\n const POST_URL = `/api/Forms/SpeculatorCheck`;\n const response = await fetch($faac5a7a58925656$export$e9ddf1da8d18d6f + POST_URL, {\n method: \"POST\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify(data)\n });\n if (response.ok) {\n const specResult = await response.json();\n return specResult;\n } else data.setError(\"serverError\", {\n type: \"manual\",\n message: response\n });\n};\n\n});\n\nparcelRegister(\"5J7FU\", function(module, exports) {\n\n$parcel$export(module.exports, \"ForSaleStrings\", function () { return $99df1cd5eac2d33b$export$bcfdb61b9eaf9a50; });\nvar $99df1cd5eac2d33b$export$bcfdb61b9eaf9a50;\n(function(ForSaleStrings) {\n ForSaleStrings[\"NotFindingHeadling\"] = \"Hittar du inte vad du s\\xf6ker?\";\n ForSaleStrings[\"NotFindingText\"] = \"Oroa dig inte. Vi f\\xe5r in nya bost\\xe4der hela tiden. Kanske \\xe4r din dr\\xf6mbostad bara ett par dagar bort? Skapa en bevakning s\\xe5 att du inte missar n\\xe4r den dyker upp!\";\n ForSaleStrings[\"FetchError\"] = \"Kunde inte h\\xe4mta bost\\xe4der just nu. F\\xf6rs\\xf6k igen om en liten stund.\";\n ForSaleStrings[\"Estates\"] = \"Bost\\xe4der\";\n ForSaleStrings[\"SingleEstate\"] = \"Bostad\";\n ForSaleStrings[\"NoResults\"] = \"Din s\\xf6kning gav inga tr\\xe4ffar\";\n ForSaleStrings[\"Loading\"] = \"Laddar...\";\n ForSaleStrings[\"Bidding\"] = \"Budgivning p\\xe5g\\xe5r\";\n ForSaleStrings[\"BiddingShort\"] = \"Budgivning\";\n})($99df1cd5eac2d33b$export$bcfdb61b9eaf9a50 || ($99df1cd5eac2d33b$export$bcfdb61b9eaf9a50 = {}));\n\n});\n\n\nparcelRegister(\"jfnuU\", function(module, exports) {\n\n$parcel$export(module.exports, \"default\", function () { return $6b90f5fe43eab46e$export$2e2bcd8739ae039; });\n\nvar $4cyLg = parcelRequire(\"4cyLg\");\n\nvar $1HGFx = parcelRequire(\"1HGFx\");\nconst $6b90f5fe43eab46e$var$useUserContactId = (sessionId)=>{\n return (0, $4cyLg.useQuery)([\n \"sessionId\",\n sessionId\n ], ()=>(0, $1HGFx.UserService).userGetContactId(sessionId).then((response)=>response), {\n enabled: !!sessionId\n });\n};\nvar $6b90f5fe43eab46e$export$2e2bcd8739ae039 = $6b90f5fe43eab46e$var$useUserContactId;\n\n});\n\nparcelRegister(\"60LpM\", function(module, exports) {\n\n$parcel$export(module.exports, \"SearchFieldFallback\", function () { return $f3b70b6a0c62ea8f$export$8a6fc59e3803f1c2; });\n\nvar $a9eYm = parcelRequire(\"a9eYm\");\n\nvar $cUbQm = parcelRequire(\"cUbQm\");\n\nvar $bGu79 = parcelRequire(\"bGu79\");\nconst $f3b70b6a0c62ea8f$export$8a6fc59e3803f1c2 = ()=>{\n const filteredEstateTypes = Object.values((0, $cUbQm.EstateType)).filter((type)=>type !== (0, $cUbQm.EstateType).OwnedApartment && type !== (0, $cUbQm.EstateType).Premises);\n return /*#__PURE__*/ (0, $a9eYm.jsx)(\"div\", {\n className: \"top-0 lg:top-[4rem] left-0 lg:sticky bg-white pt-3 lg:w-1/4 lg:min-w-[25.8rem] max-w-[25.8rem] h-full lg:max-h-[100vh] lg:overflow-y-auto no-scrollbar\",\n children: /*#__PURE__*/ (0, $a9eYm.jsxs)(\"div\", {\n className: \"animate-pulse\",\n children: [\n /*#__PURE__*/ (0, $a9eYm.jsx)(\"div\", {\n className: \"z-[10] bg-grey50 mr-3 pl-2 rounded-r-3xl h-12 lg:h-16\"\n }),\n /*#__PURE__*/ (0, $a9eYm.jsx)(\"div\", {\n className: \"justify-items-stretch gap-2 md:gap-3 grid grid-cols-4 md:grid-cols-7 lg:grid-cols-4 mt-4 mdplus:mb-4 px-3 overflow-hidden\",\n children: filteredEstateTypes?.map((type)=>/*#__PURE__*/ (0, $a9eYm.jsx)((0, $bGu79.EstateSelectorFallback), {}, type))\n }),\n /*#__PURE__*/ (0, $a9eYm.jsx)(\"div\", {\n className: \"bg-grey50 mx-auto mt-5 mb-3 px-8 py-1 rounded-md w-[11.875rem] h-8\"\n })\n ]\n })\n });\n};\n\n});\nparcelRegister(\"bGu79\", function(module, exports) {\n\n$parcel$export(module.exports, \"EstateSelectorFallback\", function () { return $27ecb7bec8d01a47$export$c54c06577835e812; });\n\nvar $a9eYm = parcelRequire(\"a9eYm\");\nconst $27ecb7bec8d01a47$export$c54c06577835e812 = ()=>{\n return /*#__PURE__*/ (0, $a9eYm.jsx)(\"div\", {\n className: \"w-[5.625rem] h-[5.625rem] justify-self-center select-none lg:h-[5.8125rem]\",\n children: /*#__PURE__*/ (0, $a9eYm.jsx)(\"div\", {\n className: \"bg-grey50 p-3 rounded-md w-[5.625rem] h-[5.625rem] animate-pulse\"\n })\n });\n};\n\n});\n\n\nparcelRegister(\"67EyS\", function(module, exports) {\n\n$parcel$export(module.exports, \"default\", function () { return $23722fec40a37891$export$2e2bcd8739ae039; });\n\nvar $dTCkE = parcelRequire(\"dTCkE\");\nconst $23722fec40a37891$var$useMediaQuery = (query)=>{\n const [matches, setMatches] = (0, $dTCkE.useState)();\n (0, $dTCkE.useEffect)(()=>{\n const media = window.matchMedia(query);\n if (media.matches !== matches) setMatches(media.matches);\n const listener = ()=>setMatches(media.matches);\n media.addEventListener(\"change\", listener);\n return ()=>media.removeEventListener(\"change\", listener);\n }, [\n query,\n matches\n ]);\n return matches;\n};\nvar $23722fec40a37891$export$2e2bcd8739ae039 = $23722fec40a37891$var$useMediaQuery;\n\n});\n\nparcelRegister(\"1QzIr\", function(module, exports) {\n\n$parcel$export(module.exports, \"default\", function () { return $9f730acaadd400cc$export$2e2bcd8739ae039; });\n\nvar $a9eYm = parcelRequire(\"a9eYm\");\n\nvar $dTCkE = parcelRequire(\"dTCkE\");\n\nvar $lkmZP = parcelRequire(\"lkmZP\");\n\nvar $cUbQm = parcelRequire(\"cUbQm\");\n\nvar $4VgqT = parcelRequire(\"4VgqT\");\n\nvar $l8eky = parcelRequire(\"l8eky\");\n\nvar $dNouV = parcelRequire(\"dNouV\");\n\nvar $lfpe5 = parcelRequire(\"lfpe5\");\n\nvar $dEQYx = parcelRequire(\"dEQYx\");\n\nvar $22cn8 = parcelRequire(\"22cn8\");\n\nvar $c0xNe = parcelRequire(\"c0xNe\");\n\nvar $5J7FU = parcelRequire(\"5J7FU\");\n\nvar $8IDY3 = parcelRequire(\"8IDY3\");\n\nconst $9f730acaadd400cc$var$EstateCardContent = /*#__PURE__*/ (0, $dTCkE.lazy)(()=>(parcelRequire(\"2fOeJ\")));\nconst $9f730acaadd400cc$var$SearchField = ({ inputLabel: inputLabel, activeInput: activeInput, countySelected: countySelected, multipleEstateTypesSelected: multipleEstateTypesSelected, brokerOrOfficeTypesSelected: brokerOrOfficeTypesSelected, commercialOrProject: commercialOrProject, stickyField: stickyField = false })=>{\n const filterContext = (0, $dTCkE.useContext)((0, $22cn8.FilterContext));\n const [searchTerm, setSearchTerm] = (0, $dTCkE.useState)(\"\");\n const [inputValue, setInputValue] = (0, $dTCkE.useState)(\"\");\n const debouncedSearchTerm = (0, $l8eky.useDebounce)(searchTerm, 200);\n const [acResults, setACResults] = (0, $dTCkE.useState)();\n const [showSearchResults, setShowSearchResults] = (0, $dTCkE.useState)(false);\n const [showNoSearchResults, setShowNoSearchResults] = (0, $dTCkE.useState)(false);\n const [freetext, setFreetext] = (0, $dTCkE.useState)(\"\");\n const ref = (0, $dTCkE.useRef)(null);\n const [hideAC, setHideAc] = (0, $dTCkE.useState)(false);\n const { data: resp } = (0, $8IDY3.default)(freetext);\n (0, $l8eky.useOnClickOutside)(ref, ()=>setHideAc(true));\n const escPressed = (0, $l8eky.useKeyPress)(\"Escape\");\n (0, $dTCkE.useEffect)(()=>{\n document.addEventListener(\"keydown\", (0, $l8eky.handleUpAndDown));\n return ()=>{\n document.removeEventListener(\"keydown\", (0, $l8eky.handleUpAndDown));\n };\n }, []);\n (0, $dTCkE.useEffect)(()=>{\n setACResults(resp);\n }, [\n resp\n ]);\n (0, $dTCkE.useEffect)(()=>{\n const query = debouncedSearchTerm.trim();\n if (!query || query.length < 2) setACResults(null);\n else {\n setFreetext(query);\n setHideAc(false);\n }\n }, [\n debouncedSearchTerm\n ]);\n function updateLocationTags(type, label, id, county, municipality) {\n const existingTag = filterContext.tags.some((x)=>x.label === label);\n if (existingTag) filterContext.setTags(filterContext.tags.filter((x)=>x.label !== label));\n else filterContext.setTags([\n ...filterContext.tags,\n {\n type: type,\n label: label,\n id: id,\n county: county,\n municipality: municipality\n }\n ]);\n }\n function updateEstateTypeTags(estateType) {\n const existingFarmTag = filterContext.tags.filter((x)=>x.estateType === (0, $cUbQm.EstateType).Agriculture && x.type === (0, $cUbQm.FilterTypes).EstateType);\n if (existingFarmTag && estateType === (0, $cUbQm.EstateType).Agriculture) {\n const filteredArray = filterContext.tags.filter((x)=>x.type !== (0, $cUbQm.FilterTypes).Alignment && x.estateType !== estateType);\n filterContext.setTags(filteredArray);\n } else {\n const existingTag = filterContext.tags.some((x)=>x.estateType === estateType && x.type === (0, $cUbQm.FilterTypes).EstateType);\n if (existingTag) filterContext.setTags(filterContext.tags.filter((x)=>x.estateType !== estateType));\n else filterContext.setTags([\n ...filterContext.tags,\n {\n type: (0, $cUbQm.FilterTypes).EstateType,\n estateType: estateType\n }\n ]);\n }\n }\n function updateRangeTags(type, minVal, maxVal, name) {\n const existingTag = filterContext.tags.some((x)=>x.name === name && x.type === type);\n if (existingTag) filterContext.setTags(filterContext.tags.filter((x)=>x.name !== name));\n else filterContext.setTags([\n ...filterContext.tags,\n {\n name: name,\n minVal: minVal,\n maxVal: maxVal,\n type: type\n }\n ]);\n }\n function updateExtraCritTags(type, id, text) {\n const existingTag = filterContext.tags.some((x)=>x.id === id && x.text === text && x.type === type);\n if (existingTag) filterContext.setTags(filterContext.tags.filter((x)=>x.id !== id));\n else filterContext.setTags([\n ...filterContext.tags,\n {\n type: (0, $cUbQm.FilterTypes).ExtraCritera,\n id: id,\n text: text\n }\n ]);\n }\n function updateAlignmentTags(id) {\n const existingTag = filterContext.tags.some((x)=>x.id === id);\n if (existingTag) filterContext.setTags(filterContext.tags.filter((x)=>x.id !== id));\n else filterContext.setTags([\n ...filterContext.tags,\n {\n type: (0, $cUbQm.FilterTypes).Alignment,\n id: id\n }\n ]);\n }\n function updateFromKeyPress(event) {\n function updateFromAcResults() {\n if (!!acResults?.municipalities[0]) {\n updateLocationTags((0, $cUbQm.FilterTypes).Municipality, `${acResults?.municipalities[0].name} (Kommun)`, acResults?.municipalities[0].name);\n setInputValue(\"\");\n setSearchTerm(\"\");\n } else if (!!acResults?.areas[0]) {\n updateLocationTags((0, $cUbQm.FilterTypes).Area, `${acResults?.areas[0].name} (${acResults?.areas[0].municipality} kommun)`, acResults?.areas[0].id);\n setInputValue(\"\");\n setSearchTerm(\"\");\n } else if (!!acResults?.counties[0]) {\n updateLocationTags((0, $cUbQm.FilterTypes).County, `${acResults?.counties[0].name} (L\\xe4n)`, acResults?.counties[0].name);\n setInputValue(\"\");\n setSearchTerm(\"\");\n }\n return;\n }\n if (document !== null) {\n if (event.key === \"Enter\") updateFromAcResults();\n }\n }\n function updateFromKeyDown(event, currentInputValue) {\n if (filterContext.tags.length > 0) {\n const listFreeFromShowOnly = filterContext.tags.filter((x)=>x.type !== (0, $cUbQm.FilterTypes).ShowOnlyHeadStart && x.type !== (0, $cUbQm.FilterTypes).ShowSold);\n if (listFreeFromShowOnly.length > 0) {\n let itemToCheckForRemove = filterContext.tags[filterContext.tags.length - 1];\n if (event.key === \"Backspace\" && currentInputValue === \"\") {\n if (itemToCheckForRemove.type === (0, $cUbQm.FilterTypes).ShowSold || itemToCheckForRemove.type === (0, $cUbQm.FilterTypes).ShowOnlyHeadStart) {\n if (filterContext.tags.length > 1) {\n itemToCheckForRemove = filterContext.tags[filterContext.tags.length - 2];\n if (itemToCheckForRemove.type === (0, $cUbQm.FilterTypes).ShowSold || itemToCheckForRemove.type === (0, $cUbQm.FilterTypes).ShowOnlyHeadStart) {\n if (filterContext.tags.length > 2) itemToCheckForRemove = filterContext.tags[filterContext.tags.length - 3];\n }\n }\n }\n if (itemToCheckForRemove.type === (0, $cUbQm.FilterTypes).EstateType) filterContext.setTags(filterContext.tags.filter((x)=>x.estateType !== itemToCheckForRemove.estateType));\n else if (itemToCheckForRemove.type === (0, $cUbQm.FilterTypes).RangeTag) filterContext.setTags(filterContext.tags.filter((x)=>x.name !== itemToCheckForRemove.name));\n else filterContext.setTags(filterContext.tags.filter((x)=>x.id !== itemToCheckForRemove.id));\n }\n }\n }\n }\n function updateStatusTags(type) {\n const existingStatusTag = filterContext.tags.some((x)=>x.type === type);\n if (existingStatusTag) filterContext.setTags(filterContext.tags.filter((x)=>x.type !== type));\n else filterContext.setTags([\n ...filterContext.tags,\n {\n type: type,\n isChecked: false\n }\n ]);\n }\n (0, $dTCkE.useEffect)(()=>{\n if (escPressed) setHideAc(true);\n }, [\n escPressed\n ]);\n (0, $dTCkE.useEffect)(()=>{\n setShowSearchResults((0, $c0xNe.shouldShowSearchResults)(hideAC, acResults));\n setShowNoSearchResults((0, $c0xNe.shouldShowNoSearchResults)(hideAC, acResults));\n }, [\n hideAC,\n acResults\n ]);\n if (stickyField) {\n const el = document.querySelector(\".sticky-field\");\n if (el) {\n const observer = new IntersectionObserver(([e])=>{\n const shouldAddClasses = e.intersectionRatio < 1;\n e.target.classList.toggle(\"shadow-bs60\", shouldAddClasses);\n e.target.classList.toggle(\"pt-14\", shouldAddClasses);\n e.target.classList.toggle(\"isSticky\", shouldAddClasses);\n }, {\n threshold: [\n 1\n ]\n });\n observer.observe(el);\n }\n }\n return /*#__PURE__*/ (0, $a9eYm.jsxs)(\"div\", {\n className: `bg-white ${stickyField ? \"sticky lg:static top-[-1px] left-0 z-[11] py-2 sticky-field\" : \"\"}`,\n children: [\n /*#__PURE__*/ (0, $a9eYm.jsx)(\"div\", {\n className: \"pl-2 rounded-r-3xl bg-grey50 flex flex-wrap mr-3 z-[10] border-white\",\n children: /*#__PURE__*/ (0, $a9eYm.jsxs)(\"div\", {\n className: \"flex flex-grow flex-wrap w-auto py-2 search-field\",\n children: [\n filterContext?.tags && /*#__PURE__*/ (0, $a9eYm.jsxs)(\"div\", {\n className: \"flex flex-wrap gap-2 mr-2\",\n children: [\n filterContext.tags.map((x, i)=>{\n if (!activeInput && (x.type === (0, $cUbQm.FilterTypes).County || x.type === (0, $cUbQm.FilterTypes).Municipality || x.type === (0, $cUbQm.FilterTypes).Area)) return /*#__PURE__*/ (0, $a9eYm.jsx)((0, $lfpe5.default), {\n index: i,\n text: x.label,\n onClick: ()=>{\n updateLocationTags(x.type, x.label, x.id, x.county, x.municipality);\n }\n }, i);\n else if (activeInput && countySelected && x.type === (0, $cUbQm.FilterTypes).County) return /*#__PURE__*/ (0, $a9eYm.jsx)((0, $lfpe5.default), {\n index: i,\n text: x.label,\n onClick: ()=>{\n updateLocationTags(x.type, x.label, x.id, x.county, x.municipality);\n }\n }, i);\n else if (activeInput && (x.type === (0, $cUbQm.FilterTypes).Municipality || x.type === (0, $cUbQm.FilterTypes).Area)) return /*#__PURE__*/ (0, $a9eYm.jsx)((0, $lfpe5.default), {\n index: i,\n text: x.label,\n onClick: ()=>{\n updateLocationTags(x.type, x.label, x.id, x.county, x.municipality);\n }\n }, i);\n else if (!activeInput && x.type === (0, $cUbQm.FilterTypes).EstateType) return /*#__PURE__*/ (0, $a9eYm.jsx)((0, $lfpe5.default), {\n index: i,\n text: x.estateType,\n onClick: ()=>{\n updateEstateTypeTags(x.estateType);\n }\n }, i);\n else if (activeInput && x.type === (0, $cUbQm.FilterTypes).EstateType) return /*#__PURE__*/ (0, $a9eYm.jsx)((0, $lfpe5.default), {\n index: i,\n text: x.estateType,\n warningMsg: multipleEstateTypesSelected,\n errorMsg: commercialOrProject,\n onClick: ()=>{\n updateEstateTypeTags(x.estateType);\n }\n }, i);\n else if (x.type === (0, $cUbQm.FilterTypes).RangeTag) return /*#__PURE__*/ (0, $a9eYm.jsx)((0, $lfpe5.default), {\n index: i,\n onClick: ()=>{\n updateRangeTags(x.type, 0, 0, x.name);\n },\n children: x.name === \"Pris\" && x.minVal !== undefined && x.maxVal !== undefined ? /*#__PURE__*/ (0, $a9eYm.jsxs)((0, $a9eYm.Fragment), {\n children: [\n x.name,\n \": \",\n (0, $l8eky.formatLargeNumbers)(x.minVal),\n \"-\",\n (0, $l8eky.formatLargeNumbers)(x.maxVal),\n x.maxVal === 15000000 ? \"+\" : \"\",\n \" SEK\"\n ]\n }) : x.name === \"Avgift\" && x.minVal !== undefined && x.maxVal !== undefined ? /*#__PURE__*/ (0, $a9eYm.jsxs)((0, $a9eYm.Fragment), {\n children: [\n x.name,\n \": \",\n (0, $l8eky.formatLargeNumbers)(x.minVal),\n \"-\",\n (0, $l8eky.formatLargeNumbers)(x.maxVal),\n x.maxVal === 10000 ? \"+\" : \"\",\n \" SEK\"\n ]\n }) : x.name === \"Boarea\" ? /*#__PURE__*/ (0, $a9eYm.jsxs)((0, $a9eYm.Fragment), {\n children: [\n x.name,\n \": \",\n x.minVal,\n \"-\",\n x.maxVal,\n x.maxVal === 200 ? \"+\" : \"\",\n \" m\\xb2\"\n ]\n }) : x.name === \"Tomtarea\" && x.minVal !== undefined && x.maxVal !== undefined ? /*#__PURE__*/ (0, $a9eYm.jsxs)((0, $a9eYm.Fragment), {\n children: [\n x.name,\n \": \",\n (0, $l8eky.formatLargeNumbers)(x.minVal),\n \"-\",\n (0, $l8eky.formatLargeNumbers)(x.maxVal),\n x.maxVal === 15000 ? \"+\" : \"\",\n \" m\\xb2\"\n ]\n }) : /*#__PURE__*/ (0, $a9eYm.jsxs)((0, $a9eYm.Fragment), {\n children: [\n x.name,\n \": \",\n x.minVal,\n \"-\",\n x.maxVal,\n x.maxVal === 10 ? \"+\" : \"\"\n ]\n })\n }, i);\n else if (x.type === (0, $cUbQm.FilterTypes).ExtraCritera) return /*#__PURE__*/ (0, $a9eYm.jsx)((0, $lfpe5.default), {\n index: i,\n text: x.text,\n onClick: ()=>{\n updateExtraCritTags(\"extraCriteria\", x.id, x.text);\n }\n }, i);\n else if (x.type === (0, $cUbQm.FilterTypes).Alignment) return /*#__PURE__*/ (0, $a9eYm.jsx)((0, $lfpe5.default), {\n index: i,\n text: x.id,\n onClick: ()=>{\n updateAlignmentTags(x.id);\n }\n }, i);\n else if (x.type === (0, $cUbQm.FilterTypes).Broker || x.type === (0, $cUbQm.FilterTypes).Office) return /*#__PURE__*/ (0, $a9eYm.jsx)((0, $lfpe5.default), {\n index: i,\n errorMsg: brokerOrOfficeTypesSelected,\n onClick: ()=>{\n updateStatusTags(x.type);\n },\n children: Object.keys(x.label).map((key)=>x.label[key])\n }, i);\n else if (x.type === (0, $cUbQm.FilterTypes).ShowGreenEstates && x.isChecked) return /*#__PURE__*/ (0, $a9eYm.jsx)((0, $lfpe5.default), {\n index: i,\n text: x.label,\n errorMsg: brokerOrOfficeTypesSelected,\n onClick: ()=>{\n updateStatusTags(x.type);\n },\n children: x.label\n }, i);\n else if (x.type === (0, $cUbQm.FilterTypes).ShowBidding && x.isChecked) return /*#__PURE__*/ (0, $a9eYm.jsx)((0, $lfpe5.default), {\n index: i,\n text: x.label,\n errorMsg: brokerOrOfficeTypesSelected,\n onClick: ()=>{\n updateStatusTags(x.type);\n },\n children: x.label\n }, i);\n else if (x.type === (0, $cUbQm.FilterTypes).ShowOnlyHeadStart && x.isChecked) return /*#__PURE__*/ (0, $a9eYm.jsx)((0, $lfpe5.default), {\n index: i,\n text: x.label,\n errorMsg: brokerOrOfficeTypesSelected,\n onClick: ()=>{\n updateStatusTags(x.type);\n },\n children: (0, $cUbQm.Status).headStartPlural\n }, i);\n else if (x.type === (0, $cUbQm.FilterTypes).ShowSold && x.isChecked) return /*#__PURE__*/ (0, $a9eYm.jsx)((0, $lfpe5.default), {\n index: i,\n text: x.label,\n onClick: ()=>{\n updateStatusTags(x.type);\n },\n children: (0, $cUbQm.Status).sold\n }, i);\n else return null;\n }),\n activeInput && (filterContext.tags.length === 0 || filterContext.tags.filter((x)=>x.type === \"showSold\" || x.type === \"showOnlyHeadStart\" || x.type === \"sortType\").length > 0 && filterContext.tags.filter((x)=>x.type !== \"showSold\" && x.type !== \"showOnlyHeadStart\" && x.type !== \"sortType\").length === 0) && /*#__PURE__*/ (0, $a9eYm.jsx)(\"div\", {\n className: \"mt-2 text-grey300\",\n children: \"F\\xf6r att skapa en bevakning m\\xe5ste du ha valt n\\xe5gra s\\xf6kparametrar.\"\n })\n ]\n }),\n !activeInput && /*#__PURE__*/ (0, $a9eYm.jsxs)(\"div\", {\n id: \"searchfield-input-wrapper\",\n className: \"flex flex-grow py-0 mdplus:py-2 relative pr-6\",\n children: [\n /*#__PURE__*/ (0, $a9eYm.jsx)(\"input\", {\n \"aria-label\": (0, $cUbQm.Estates).SearchPlaceholder,\n name: \"searchfield-input\",\n id: \"searchfield-input\",\n className: \"text-black500 md:text-base bg-transparent focus:outline-none py-2 lg:py-1 w-full\",\n type: \"search\",\n value: inputValue,\n placeholder: inputLabel,\n autoComplete: \"off\",\n onClick: ()=>setHideAc(false),\n onChange: (e)=>{\n setSearchTerm(e.currentTarget.value);\n setInputValue(e.currentTarget.value);\n },\n disabled: activeInput,\n onKeyPress: updateFromKeyPress,\n onKeyDown: (e)=>{\n updateFromKeyDown(e, inputValue);\n }\n }),\n filterContext.tags.filter((x)=>x.type !== \"sortType\" && x.type !== (0, $cUbQm.FilterTypes).AllEstates).length > 0 ? /*#__PURE__*/ (0, $a9eYm.jsx)((0, $dNouV.RemoveFiltersButton), {\n resetTags: ()=>{\n filterContext.setTags([\n {\n type: (0, $cUbQm.FilterTypes).AllEstates,\n isChecked: true,\n label: \"Alla bost\\xe4der\"\n }\n ]);\n }\n }) : /*#__PURE__*/ (0, $a9eYm.jsx)((0, $dEQYx.default), {})\n ]\n })\n ]\n })\n }),\n showSearchResults && /*#__PURE__*/ (0, $a9eYm.jsx)(\"div\", {\n className: \"relative\",\n ref: ref,\n children: /*#__PURE__*/ (0, $a9eYm.jsxs)(\"div\", {\n id: \"ac-result-list\",\n className: \"absolute z-50 mt-2 border-t-grey100 left-0 w-[calc(100%-0.75rem)] bg-white shadow-bs80 max-h-xl overflow-y-auto overflow-hidden\",\n children: [\n !!acResults?.municipalities.length && /*#__PURE__*/ (0, $a9eYm.jsx)(\"div\", {\n className: \"outline-none\",\n children: acResults.municipalities?.map((x, i)=>/*#__PURE__*/ (0, $a9eYm.jsx)((0, $lkmZP.TagSelectButton), {\n classToChild: i === 0 ? `bg-grey50` : \"\",\n onClick: ()=>{\n updateLocationTags(\"munici\", `${x.name} (Kommun)`, x.name);\n setHideAc(true);\n setInputValue(\"\");\n setSearchTerm(\"\");\n (0, $l8eky.focusOnInput)();\n },\n text: x.name,\n type: \"Kommun\",\n handleKeyPress: ()=>{\n updateLocationTags(\"munici\", `${x.name} (Kommun)`, x.name);\n setInputValue(\"\");\n setSearchTerm(\"\");\n (0, $l8eky.focusOnInput)();\n }\n }, x.name))\n }),\n !!acResults?.areas.length && /*#__PURE__*/ (0, $a9eYm.jsx)(\"div\", {\n className: \"outline-none\",\n children: acResults.areas?.map((x, i)=>/*#__PURE__*/ (0, $a9eYm.jsx)((0, $lkmZP.TagSelectButton), {\n classToChild: i === 0 && !acResults.municipalities.length ? `bg-grey50` : \"\",\n onClick: ()=>{\n updateLocationTags(\"area\", `${x.name} (${x.municipality} kommun)`, x.id);\n setHideAc(true);\n setInputValue(\"\");\n setSearchTerm(\"\");\n (0, $l8eky.focusOnInput)();\n },\n text: x.name,\n type: `${x.municipality} kommun`,\n handleKeyPress: ()=>{\n updateLocationTags(\"area\", `${x.name} (${x.municipality} kommun)`, x.id);\n setInputValue(\"\");\n setSearchTerm(\"\");\n (0, $l8eky.focusOnInput)();\n }\n }, x.id))\n }),\n !!acResults?.counties.length && /*#__PURE__*/ (0, $a9eYm.jsx)(\"div\", {\n className: \"outline-none\",\n children: acResults.counties?.map((x, i)=>/*#__PURE__*/ (0, $a9eYm.jsx)((0, $lkmZP.TagSelectButton), {\n classToChild: i === 0 && acResults.municipalities.length === 0 && acResults.areas.length === 0 ? `bg-grey50` : \"\",\n onClick: ()=>{\n updateLocationTags(\"county\", `${x.name} (L\\xe4n)`, x.name);\n setHideAc(true);\n setInputValue(\"\");\n setSearchTerm(\"\");\n (0, $l8eky.focusOnInput)();\n },\n text: x.name,\n type: \"L\\xe4n\",\n handleKeyPress: ()=>{\n updateLocationTags(\"county\", `${x.name} (L\\xe4n)`, x.name);\n setInputValue(\"\");\n setSearchTerm(\"\");\n (0, $l8eky.focusOnInput)();\n }\n }, x.name))\n }),\n !!acResults?.estates.length && /*#__PURE__*/ (0, $a9eYm.jsxs)((0, $a9eYm.Fragment), {\n children: [\n /*#__PURE__*/ (0, $a9eYm.jsx)(\"h3\", {\n className: \"my-3 ml-3\",\n children: (0, $5J7FU.ForSaleStrings).Estates\n }),\n acResults.estates?.map((x)=>x.estateType !== (0, $cUbQm.EstateType).Commercial && x.status !== (0, $cUbQm.EstateStatuses).Sold && /*#__PURE__*/ (0, $a9eYm.jsx)(\"a\", {\n className: \"acResult block border-b border-grey75 py-3 px-3 hover:bg-grey50 outline-none\",\n href: x.url,\n children: /*#__PURE__*/ (0, $a9eYm.jsxs)(\"div\", {\n className: \"flex items-center\",\n children: [\n /*#__PURE__*/ (0, $a9eYm.jsx)(\"div\", {\n className: \"rounded-md max-w-1/4 h-20 md:h-[6rem] overflow-hidden\",\n children: /*#__PURE__*/ (0, $a9eYm.jsx)(\"img\", {\n src: x.headerImage ? x.headerImage : \"/Images/fallbacks/hero-image-fallback.jpg\",\n className: \"w-full h-full object-cover\",\n alt: `${x.streetAddress}`,\n loading: \"lazy\"\n })\n }),\n /*#__PURE__*/ (0, $a9eYm.jsx)(\"div\", {\n className: \"-my-6 md:-my-4 -mx-0 md:mx-0 min-w-1/4 flex-grow\",\n children: /*#__PURE__*/ (0, $a9eYm.jsx)((0, $dTCkE.Suspense), {\n children: /*#__PURE__*/ (0, $a9eYm.jsx)($9f730acaadd400cc$var$EstateCardContent, {\n estate: x\n })\n })\n })\n ]\n })\n }, x.url))\n ]\n })\n ]\n })\n }),\n showNoSearchResults && /*#__PURE__*/ (0, $a9eYm.jsx)((0, $dTCkE.Suspense), {\n children: /*#__PURE__*/ (0, $a9eYm.jsx)((0, $4VgqT.default), {\n searchTerm: searchTerm\n })\n })\n ]\n });\n};\nvar $9f730acaadd400cc$export$2e2bcd8739ae039 = $9f730acaadd400cc$var$SearchField;\n\n});\nparcelRegister(\"lkmZP\", function(module, exports) {\n\n$parcel$export(module.exports, \"TagSelectButton\", function () { return $ae60f4327886f8c3$export$f6030b00520bd4d4; });\n\nvar $a9eYm = parcelRequire(\"a9eYm\");\nconst $ae60f4327886f8c3$export$f6030b00520bd4d4 = ({ text: text, type: type, onClick: onClick, handleKeyPress: handleKeyPress, classToChild: classToChild })=>{\n return /*#__PURE__*/ (0, $a9eYm.jsxs)(\"div\", {\n onClick: onClick,\n className: `${classToChild} hover:bg-blue100 p-4 cursor-pointer border-b border-grey75 flex justify-between outline-none focus:bg-blue100`,\n tabIndex: 0,\n onKeyPress: handleKeyPress,\n children: [\n /*#__PURE__*/ (0, $a9eYm.jsxs)(\"div\", {\n children: [\n text,\n \" (\",\n type,\n \")\"\n ]\n }),\n /*#__PURE__*/ (0, $a9eYm.jsx)(\"div\", {\n className: \"text-sm font-icb\",\n children: type !== \"L\\xe4n\" && type !== \"Kommun\" ? \"OMR\\xc5DE\" : type.toLocaleUpperCase()\n })\n ]\n });\n};\n\n});\n\nparcelRegister(\"dNouV\", function(module, exports) {\n\n$parcel$export(module.exports, \"RemoveFiltersButton\", function () { return $8fafa9a27398bc11$export$a4c8ca1b6343dfe9; });\n\nvar $a9eYm = parcelRequire(\"a9eYm\");\nconst $8fafa9a27398bc11$export$a4c8ca1b6343dfe9 = ({ resetTags: resetTags })=>{\n return /*#__PURE__*/ (0, $a9eYm.jsx)(\"button\", {\n \"aria-label\": \"Rensa filter\",\n title: \"Ta bort alla filter\",\n className: \"hover:bg-grey75 bg-grey50 p-2 rounded-full self-center button focus:outline-none absolute right-2 top-1/2 translate-y-1/2-\",\n type: \"button\",\n onClick: ()=>{\n resetTags();\n },\n children: /*#__PURE__*/ (0, $a9eYm.jsx)(\"img\", {\n src: \"/Images/Icons/close.svg\",\n alt: \"Ta bort filter ikon\",\n width: 21,\n height: 21,\n loading: \"lazy\"\n })\n });\n};\n\n});\n\nparcelRegister(\"lfpe5\", function(module, exports) {\n\n$parcel$export(module.exports, \"default\", function () { return $955ee5977b40e142$export$2e2bcd8739ae039; });\n\nvar $a9eYm = parcelRequire(\"a9eYm\");\n\nvar $jseYg = parcelRequire(\"jseYg\");\nconst $955ee5977b40e142$var$RemoveFilterBtn = ({ children: children, index: index, text: text, onClick: onClick, errorMsg: errorMsg, warningMsg: warningMsg })=>{\n return /*#__PURE__*/ (0, $a9eYm.jsx)(\"button\", {\n type: \"button\",\n className: \"focus:outline-none self-center font-ic cursor-pointer filter-btn\",\n title: \"Ta bort filter: \" + text,\n tabIndex: 0,\n onClick: onClick,\n children: /*#__PURE__*/ (0, $a9eYm.jsxs)(\"span\", {\n className: `flex rounded-full py-1 px-3 md:py-2 ${errorMsg ? \"bg-red700 hover:shadow-bs40\" : warningMsg ? \"bg-yellow700 hover:shadow-bs40\" : \"bg-blue700 hover:bg-blue900\"} text-white`,\n children: [\n children ? /*#__PURE__*/ (0, $a9eYm.jsx)((0, $a9eYm.Fragment), {\n children: children\n }) : /*#__PURE__*/ (0, $a9eYm.jsx)((0, $a9eYm.Fragment), {\n children: text\n }),\n /*#__PURE__*/ (0, $a9eYm.jsx)((0, $jseYg.default), {\n onClick: onClick\n })\n ]\n })\n }, index);\n};\nvar $955ee5977b40e142$export$2e2bcd8739ae039 = $955ee5977b40e142$var$RemoveFilterBtn;\n\n});\nparcelRegister(\"jseYg\", function(module, exports) {\n\n$parcel$export(module.exports, \"default\", function () { return $81881f49c45b8c39$export$2e2bcd8739ae039; });\n\nvar $a9eYm = parcelRequire(\"a9eYm\");\nconst $81881f49c45b8c39$var$RemoveFilterImg = ({ onClick: onClick })=>{\n return /*#__PURE__*/ (0, $a9eYm.jsx)(\"img\", {\n className: \"w-2 h-2 self-center ml-3\",\n src: \"/Images/Icons/close-white.svg\",\n alt: \"Ikon kryss ta bort filter\",\n width: 12,\n height: 12,\n onClick: onClick\n });\n};\nvar $81881f49c45b8c39$export$2e2bcd8739ae039 = $81881f49c45b8c39$var$RemoveFilterImg;\n\n});\n\n\nparcelRegister(\"dEQYx\", function(module, exports) {\n\n$parcel$export(module.exports, \"default\", function () { return $e437ca0a10d5905f$export$2e2bcd8739ae039; });\n\nvar $a9eYm = parcelRequire(\"a9eYm\");\nconst $e437ca0a10d5905f$var$SearchFieldBtn = ()=>{\n return /*#__PURE__*/ (0, $a9eYm.jsx)(\"div\", {\n className: `search-field-btn bg-blue700 p-2 rounded-full self-center button focus:outline-none w-10 h-10 flex justify-center items-center absolute top-1/2 translate-y-1/2- \n right-2\n `,\n children: /*#__PURE__*/ (0, $a9eYm.jsx)(\"img\", {\n className: \"w-4 h-4\",\n src: \"/Images/Icons/search-icon.svg\",\n alt: \"S\\xf6k ikon\",\n width: 16,\n height: 16,\n loading: \"lazy\"\n })\n });\n};\nvar $e437ca0a10d5905f$export$2e2bcd8739ae039 = $e437ca0a10d5905f$var$SearchFieldBtn;\n\n});\n\nparcelRegister(\"8IDY3\", function(module, exports) {\n\n$parcel$export(module.exports, \"default\", function () { return $39fd1f118f25a738$export$2e2bcd8739ae039; });\n\nvar $4cyLg = parcelRequire(\"4cyLg\");\n\nvar $1HGFx = parcelRequire(\"1HGFx\");\nconst $39fd1f118f25a738$var$useAutocomplete = (freetext)=>{\n return (0, $4cyLg.useQuery)([\n \"freetext\",\n freetext\n ], ()=>(0, $1HGFx.SearchService).searchAutoComplete(freetext).then((response)=>response), {\n enabled: !!freetext,\n retry: 0,\n keepPreviousData: true,\n refetchOnWindowFocus: false,\n cacheTime: 300000,\n staleTime: 300000\n });\n};\nvar $39fd1f118f25a738$export$2e2bcd8739ae039 = $39fd1f118f25a738$var$useAutocomplete;\n\n});\n\nparcelRegister(\"2fOeJ\", function(module, exports) {\n\n\n\n\nmodule.exports = Promise.all([\n (parcelRequire(\"fj9RB\"))((parcelRequire(\"i55FY\")).resolve(\"cCZ7C\")),\n (parcelRequire(\"fj9RB\"))((parcelRequire(\"i55FY\")).resolve(\"3detd\"))\n]).then(()=>parcelRequire(\"3q65I\"));\n\n});\n\n\nparcelRegister(\"lcDRl\", function(module, exports) {\n\n$parcel$defineInteropFlag(module.exports);\n\n$parcel$export(module.exports, \"default\", function () { return $04e99f6d1e4cad74$export$2e2bcd8739ae039; });\n\nvar $a9eYm = parcelRequire(\"a9eYm\");\n\nvar $dTCkE = parcelRequire(\"dTCkE\");\n\nvar $cUbQm = parcelRequire(\"cUbQm\");\n\nvar $a1uyt = parcelRequire(\"a1uyt\");\nconst $04e99f6d1e4cad74$var$CreateSearchProfileBtn = ({ setShowHideModalFunction: setShowHideModalFunction, isScrollOverHeadline: isScrollOverHeadline = false, sessionId: sessionId })=>{\n const { isAuthorizedBroker: isAuthorizedBroker, setShowErrorForSale: setShowErrorForSale } = (0, $dTCkE.useContext)((0, $a1uyt.ForSaleBrokerContext));\n const [bottomPos, setBottomPos] = (0, $dTCkE.useState)(\"bottom-[-4rem]\");\n (0, $dTCkE.useEffect)(()=>{\n const handleScroll = ()=>{\n const scrollPosition = window.scrollY || window.pageYOffset;\n if (window.innerWidth < 1024 && scrollPosition > 450) {\n if (bottomPos != \"bottom-4\") setBottomPos(\"bottom-4\");\n else setBottomPos(\"bottom-[-4rem]\");\n } else setBottomPos(\"bottom-[-4rem]\");\n };\n window.addEventListener(\"scroll\", handleScroll);\n return ()=>{\n window.removeEventListener(\"scroll\", handleScroll);\n };\n }, []);\n return /*#__PURE__*/ (0, $a9eYm.jsx)(\"div\", {\n className: `${isScrollOverHeadline ? \"xxl:bottom-6\" : \"xxl:bottom-8\"} ${bottomPos} mdplus:bottom-4 lg:sticky fixed left-0 z-[998] w-full lg:w-1/4 lg:min-w-[25.8rem] transition-all duration-75`,\n children: /*#__PURE__*/ (0, $a9eYm.jsxs)(\"button\", {\n className: \"px-8 py-3 text-center rounded-3xl bg-blue700/70 lg:bg-blue700/80 hover:bg-blue700 transition-all duration-200 text-white mx-auto hover:cursor-pointer focus:outline-none button flex items-center\",\n type: \"button\",\n onClick: ()=>{\n isAuthorizedBroker && sessionId != null ? setShowErrorForSale(true) : setShowHideModalFunction(true);\n },\n children: [\n (0, $cUbQm.Estates).CreateSearchProfile,\n /*#__PURE__*/ (0, $a9eYm.jsx)(\"img\", {\n width: 24,\n height: 24,\n className: \"w-6 ml-2\",\n src: \"/Images/Icons/monitoring_white.svg\",\n alt: \"Ikon skapa bevakning\"\n })\n ]\n })\n });\n};\nvar $04e99f6d1e4cad74$export$2e2bcd8739ae039 = $04e99f6d1e4cad74$var$CreateSearchProfileBtn;\n\n});\n\nparcelRegister(\"34thG\", function(module, exports) {\n\n\n\n\nmodule.exports = Promise.all([\n (parcelRequire(\"fj9RB\"))((parcelRequire(\"i55FY\")).resolve(\"eyd9t\")),\n (parcelRequire(\"fj9RB\"))((parcelRequire(\"i55FY\")).resolve(\"jedBR\"))\n]).then(()=>parcelRequire(\"lmTo9\"));\n\n});\n\nparcelRegister(\"2wZwx\", function(module, exports) {\n\n\nmodule.exports = (parcelRequire(\"fj9RB\"))((parcelRequire(\"i55FY\")).resolve(\"gOafK\")).then(()=>parcelRequire(\"fPMhU\"));\n\n});\n\nparcelRegister(\"kAzIx\", function(module, exports) {\n\n\n\n\n\n\nmodule.exports = Promise.all([\n (parcelRequire(\"fj9RB\"))((parcelRequire(\"i55FY\")).resolve(\"cCZ7C\")),\n (parcelRequire(\"fj9RB\"))((parcelRequire(\"i55FY\")).resolve(\"3detd\")),\n (parcelRequire(\"fj9RB\"))((parcelRequire(\"i55FY\")).resolve(\"cWuXQ\"))\n]).then(()=>parcelRequire(\"ccRjs\"));\n\n});\n\nparcelRegister(\"cCGyt\", function(module, exports) {\n\n\n\n\n\n\n\n\nmodule.exports = Promise.all([\n (parcelRequire(\"fj9RB\"))((parcelRequire(\"i55FY\")).resolve(\"5iq3S\")),\n (parcelRequire(\"fj9RB\"))((parcelRequire(\"i55FY\")).resolve(\"fxy8V\")),\n (parcelRequire(\"fj9RB\"))((parcelRequire(\"i55FY\")).resolve(\"74Z0M\")),\n (parcelRequire(\"fj9RB\"))((parcelRequire(\"i55FY\")).resolve(\"iDs0B\"))\n]).then(()=>parcelRequire(\"hSBVu\"));\n\n});\n\n\n\n})();\n//# sourceMappingURL=ForSaleComponent.5a4ecf9d.js.map\n","import { BrowserRouter as Router, Routes, Route } from 'react-router-dom';\nimport { ForSaleComponentInner } from './ForSaleComponentInner';\n\nconst basename = '/till-salu/';\n\ninterface Props {\n stickyTitle?: string;\n stickyText?: string;\n}\n\nconst ForSaleComponent = ({ stickyTitle, stickyText }: Props): JSX.Element => {\n const path = `/:estateType?/:county?/:muni?/:area?`;\n\n return (\n \n \n \n \n \n }\n />\n \n \n );\n};\nexport default ForSaleComponent;\n","import { Suspense, lazy, useEffect, useRef, useState } from 'react';\nimport { ITag } from '../../../types/interfaces';\nconst FilterEstatesComponent = lazy(() => import('../FilterEstatesComponent'));\nconst SEOHeadingComponent = lazy(() => import('../SEOHeadingComponent'));\nconst ObjectListComponent = lazy(() => import('./ObjectListComponent'));\nconst MonitorSearchFormForSalePage = lazy(\n () => import('~js/React/forms/MonitorSearchFormForSalePage')\n);\n\nimport { ForSaleBrokerContext } from '../../../pages/Context/ForSaleBrokerContext';\nimport {\n FilterContext,\n filterToQuerystring,\n getFilterFromPath,\n getFilterFromQueryParams,\n} from '../../../filterTools';\nimport { useParams } from 'react-router-dom';\nimport { getSessionId } from '~js/React/helpers';\nimport useUserContactId from '../../CustomHooks/useUserContactId';\nimport Cookies from 'js-cookie';\nimport { SearchFieldFallback } from '../Fallbacks/SearchFieldFallback';\nimport useMediaQuery from '../../CustomHooks/useMediaQuery';\nimport { Estates, FilterTypes, ObjectListLayout } from '~js/React/Enums';\nimport SearchField from '../SearchFieldComponent';\nimport { Helmet, HelmetProvider } from 'react-helmet-async';\nimport CreateSearchProfileBtn from './CreateSearchProfileBtn';\n\nconst basename = '/till-salu/';\n\ninterface Props {\n stickyTitle?: string;\n stickyText?: string;\n}\n\nexport const ForSaleComponentInner = ({\n stickyTitle,\n stickyText,\n}: Props): JSX.Element => {\n const [tags, setTags] = useState([]);\n const [visibleExtraCrits, setVisibleExtraCrits] = useState<{\n [key: string]: ITag;\n }>({});\n const [isAuthorizedBroker, setIsAuthorizedBroker] = useState(false);\n const [showErrorForSale, setShowErrorForSale] = useState(false);\n const [badFarmCombo, setBadFarmCombo] = useState(false);\n const [missingSearchParams, setMissingSearchParams] = useState(false);\n const [forbiddenEstateType, setForbiddenEstateType] = useState(false);\n const scrollLockUntilTagChange = useRef(false);\n const filterItemClicked = useRef(false);\n const path = useParams>();\n const sessionId = getSessionId();\n const { data: user } = useUserContactId(sessionId);\n const isBigScreen = useMediaQuery('(min-width: 64rem)');\n const isMediumScreen = useMediaQuery('(min-width: 46rem)');\n const isSmallScreen = useMediaQuery('(max-width: 55.9rem)');\n const [showHideModal, setShowHideModal] = useState(false);\n const [objectListLayout, setObjectListLayout] = useState('row');\n\n useEffect(() => {\n var loginType = Cookies.get('loginType');\n setIsAuthorizedBroker(loginType === '2');\n }, []);\n\n //on filter change\n useEffect(() => {\n if (!filterItemClicked.current) return;\n\n scrollLockUntilTagChange.current = false;\n const searchFilter = filterToQuerystring(tags);\n // update url in browser\n const currentUrl = window.location.href;\n let viewSetting = '';\n if (\n currentUrl.indexOf(ObjectListLayout.Map) > -1 ||\n currentUrl.indexOf(ObjectListLayout.Row) > -1\n ) {\n if (currentUrl.indexOf(ObjectListLayout.Map) > -1) {\n viewSetting = '#' + ObjectListLayout.Map;\n } else {\n viewSetting = '#' + ObjectListLayout.Row;\n }\n }\n window.history.replaceState(\n null,\n '',\n basename + searchFilter + viewSetting\n );\n if (tags.length === 0) {\n setTags([\n {\n type: FilterTypes.AllEstates,\n isChecked: true,\n label: 'Alla bostäder',\n },\n ]);\n } else {\n var existingTags = tags.find((x) => x.isChecked === true);\n var allEstates = tags.find((x) => x.type === FilterTypes.AllEstates);\n if (!existingTags || existingTags === undefined) {\n if (allEstates === undefined) {\n setTags([\n ...tags,\n {\n type: FilterTypes.AllEstates,\n isChecked: true,\n label: 'Alla bostäder',\n },\n ]);\n } else {\n setTags(\n tags.map((x) => {\n if (x.type === FilterTypes.AllEstates) {\n x.isChecked = true;\n }\n return x;\n })\n );\n }\n } else {\n setTags(tags);\n }\n }\n }, [tags]);\n\n useEffect(() => {\n function callback(tags: ITag[]) {\n setTimeout(() => {\n setTags(tags);\n }, 100);\n }\n if (path.estateType) {\n getFilterFromPath(path as Record).then(callback);\n } else {\n getFilterFromQueryParams().then(callback);\n }\n }, []);\n\n if (\n isSmallScreen === undefined &&\n isMediumScreen === undefined &&\n isBigScreen === undefined\n ) {\n return (\n
\n );\n }\n return (\n \n {\n filterItemClicked.current = true;\n setTags(newTags);\n },\n visibleExtraCrits,\n setVisibleExtraCrits: (newTags: { [key: string]: ITag }) => {\n filterItemClicked.current = true;\n setVisibleExtraCrits(newTags);\n },\n sessionId: sessionId,\n user: user,\n }}\n >\n \n } />\n \n
\n {!isBigScreen && (\n \n )}\n }>\n \n {isSmallScreen && (\n \n )}\n \n \n\n {showHideModal && (\n \n \n \n )}\n\n {showHideModal && (\n \n \n \n \n \n )}\n
\n \n \n );\n};\nexport default ForSaleComponentInner;\n","import Cookies from 'js-cookie';\nimport { FC, createContext, useState, useEffect, ReactNode } from 'react';\n\ninterface ForSaleBrokerContextTypes {\n isAuthorizedBroker?: boolean;\n showErrorForSale?: boolean;\n setShowErrorForSale(val: boolean): void;\n setIsAuthorizedBroker(val: boolean): void;\n}\n\ntype Props = {\n children: ReactNode;\n};\n\nexport const ForSaleBrokerContext = createContext(\n {} as ForSaleBrokerContextTypes\n);\n\nconst ForSaleBrokerContextProvider: FC = ({ children }) => {\n const [isAuthorizedBroker, setIsAuthorizedBroker] = useState(false);\n const [showErrorForSale, setShowErrorForSale] = useState(false);\n\n useEffect(() => {\n var loginType = Cookies.get('loginType');\n setIsAuthorizedBroker(loginType === '2');\n }, []);\n\n const contextObject: ForSaleBrokerContextTypes = {\n isAuthorizedBroker,\n showErrorForSale,\n setShowErrorForSale,\n setIsAuthorizedBroker,\n };\n\n return (\n \n {children}\n \n );\n};\n\nexport default ForSaleBrokerContextProvider;\n","/*! js-cookie v3.0.5 | MIT */\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, (function () {\n var current = global.Cookies;\n var exports = global.Cookies = factory();\n exports.noConflict = function () { global.Cookies = current; return exports; };\n })());\n})(this, (function () { 'use strict';\n\n /* eslint-disable no-var */\n function assign (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n target[key] = source[key];\n }\n }\n return target\n }\n /* eslint-enable no-var */\n\n /* eslint-disable no-var */\n var defaultConverter = {\n read: function (value) {\n if (value[0] === '\"') {\n value = value.slice(1, -1);\n }\n return value.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent)\n },\n write: function (value) {\n return encodeURIComponent(value).replace(\n /%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,\n decodeURIComponent\n )\n }\n };\n /* eslint-enable no-var */\n\n /* eslint-disable no-var */\n\n function init (converter, defaultAttributes) {\n function set (name, value, attributes) {\n if (typeof document === 'undefined') {\n return\n }\n\n attributes = assign({}, defaultAttributes, attributes);\n\n if (typeof attributes.expires === 'number') {\n attributes.expires = new Date(Date.now() + attributes.expires * 864e5);\n }\n if (attributes.expires) {\n attributes.expires = attributes.expires.toUTCString();\n }\n\n name = encodeURIComponent(name)\n .replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)\n .replace(/[()]/g, escape);\n\n var stringifiedAttributes = '';\n for (var attributeName in attributes) {\n if (!attributes[attributeName]) {\n continue\n }\n\n stringifiedAttributes += '; ' + attributeName;\n\n if (attributes[attributeName] === true) {\n continue\n }\n\n // Considers RFC 6265 section 5.2:\n // ...\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n // Consume the characters of the unparsed-attributes up to,\n // not including, the first %x3B (\";\") character.\n // ...\n stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n }\n\n return (document.cookie =\n name + '=' + converter.write(value, name) + stringifiedAttributes)\n }\n\n function get (name) {\n if (typeof document === 'undefined' || (arguments.length && !name)) {\n return\n }\n\n // To prevent the for loop in the first place assign an empty array\n // in case there are no cookies at all.\n var cookies = document.cookie ? document.cookie.split('; ') : [];\n var jar = {};\n for (var i = 0; i < cookies.length; i++) {\n var parts = cookies[i].split('=');\n var value = parts.slice(1).join('=');\n\n try {\n var found = decodeURIComponent(parts[0]);\n jar[found] = converter.read(value, found);\n\n if (name === found) {\n break\n }\n } catch (e) {}\n }\n\n return name ? jar[name] : jar\n }\n\n return Object.create(\n {\n set,\n get,\n remove: function (name, attributes) {\n set(\n name,\n '',\n assign({}, attributes, {\n expires: -1\n })\n );\n },\n withAttributes: function (attributes) {\n return init(this.converter, assign({}, this.attributes, attributes))\n },\n withConverter: function (converter) {\n return init(assign({}, this.converter, converter), this.attributes)\n }\n },\n {\n attributes: { value: Object.freeze(defaultAttributes) },\n converter: { value: Object.freeze(converter) }\n }\n )\n }\n\n var api = init(defaultConverter, { path: '/' });\n /* eslint-enable no-var */\n\n return api;\n\n}));\n","import {\r\n EstateType,\r\n FilterParams,\r\n ExtraCriterias,\r\n FilterTypes,\r\n ServicesTitles,\r\n SortType,\r\n RangeTagNames,\r\n} from './Enums';\r\nimport { makeCamelCase } from './helpers';\r\nimport {\r\n getBrokerName,\r\n getCountyTag,\r\n getMunicipalityTag,\r\n getOfficeName,\r\n} from './services/api';\r\nimport { ForSaleStrings } from './types/ForSaleString';\r\nimport { ITag } from './types/interfaces';\r\nimport { createContext } from 'react';\r\n\r\n// Collects params from query and set tags from those values\r\nexport async function getFilterFromQueryParams(): Promise {\r\n const tags: ITag[] = [];\r\n const params = new URLSearchParams(window.location.search);\r\n\r\n // estate types\r\n const estateTypeParam = params.get(FilterParams.ESTATETYPE_PARAM);\r\n estateTypeParam?.split(',').forEach((estateType) => {\r\n tags.push({\r\n type: 'estateType',\r\n estateType: estateType as EstateType,\r\n });\r\n });\r\n\r\n const municiParam = params.get(FilterParams.MUNICI_PARAM);\r\n municiParam?.split(',').forEach((municipality) => {\r\n tags.push({\r\n type: 'munici',\r\n id: municipality,\r\n label: `${municipality} (Kommun)`,\r\n });\r\n });\r\n\r\n const countyParam = params.get(FilterParams.COUNTY_PARAM);\r\n countyParam?.split(',').forEach((county) => {\r\n tags.push({ type: 'county', id: county, label: `${county} (Län)` });\r\n });\r\n\r\n const areaParam = params.get(FilterParams.AREA_PARAM);\r\n const areaNames = params.get('areaNames')?.split(',');\r\n areaParam?.split(',').forEach((area, i) => {\r\n const areaNameFromQP = areaNames?.[i] ?? '';\r\n tags.push({\r\n type: 'area',\r\n id: area,\r\n label: `${areaNameFromQP ? areaNameFromQP : area} (Område)`,\r\n });\r\n });\r\n\r\n // extra criterias\r\n const extraCriteriaParam = params.get(FilterParams.EXTRACRITERIA_PARAM);\r\n extraCriteriaParam?.split(',').forEach((id) => {\r\n const criteriaName = getExtraSearchCriteriaName(id);\r\n tags.push({ type: 'extraCriteria', id, text: criteriaName });\r\n });\r\n\r\n function getExtraSearchCriteriaName(id: string) {\r\n const criteriaResp = ExtraCriterias[id];\r\n const criteriaName = criteriaResp?.text;\r\n return criteriaName;\r\n }\r\n\r\n // showOnlyHeadStart\r\n const fromheadStartQuery = params.get(FilterParams.HEADSTART_PARAM);\r\n if (\r\n fromheadStartQuery !== null &&\r\n (FilterParams.BROKERID_PARAM !== null ||\r\n FilterParams.CUSTOMERID_PARAM !== null)\r\n ) {\r\n const fromheadStartParam = fromheadStartQuery === 'true' ? true : false;\r\n tags.push({\r\n type: FilterParams.HEADSTART_PARAM,\r\n isChecked: fromheadStartParam,\r\n });\r\n }\r\n\r\n // showSold\r\n const fromSoldQuery = params.get(FilterParams.SOLD_PARAM);\r\n if (\r\n fromSoldQuery !== null &&\r\n (FilterParams.BROKERID_PARAM !== null ||\r\n FilterParams.CUSTOMERID_PARAM !== null)\r\n ) {\r\n const soldParam = fromSoldQuery === 'true' ? true : false;\r\n tags.push({ type: FilterParams.SOLD_PARAM, isChecked: soldParam });\r\n }\r\n\r\n // alignment\r\n const alignmentsParam = params.get(FilterParams.ALIGNMENT_PARAM);\r\n alignmentsParam?.split(',').forEach((id) => {\r\n id = id.replace('/', '-');\r\n tags.push({ type: 'alignment', id });\r\n });\r\n\r\n //Broker param from offices\r\n const brokerParam = params.get(FilterParams.BROKERID_PARAM);\r\n if (brokerParam !== null) {\r\n const brokerName = await getBrokerName(brokerParam);\r\n if (brokerName !== undefined) {\r\n tags.push({\r\n type: 'broker',\r\n id: brokerParam,\r\n label: brokerName,\r\n });\r\n }\r\n }\r\n\r\n //Office id from officepage\r\n const officeParam = params.get(FilterParams.CUSTOMERID_PARAM);\r\n if (officeParam !== null) {\r\n const officeName = await getOfficeName(officeParam);\r\n tags.push({ type: 'office', id: officeParam, label: officeName });\r\n }\r\n\r\n //Sustainable choice\r\n const greenEstateParam = params.get(FilterParams.GREENESTATES_PARAM);\r\n if (greenEstateParam !== null) {\r\n tags.push({\r\n type: FilterParams.GREENESTATES_PARAM,\r\n label: ServicesTitles.GreenEstate,\r\n isChecked: greenEstateParam === 'true' ? true : false,\r\n });\r\n }\r\n //Bidding\r\n const biddingParam = params.get(FilterParams.BIDDING_PARAM);\r\n if (biddingParam !== null) {\r\n tags.push({\r\n type: FilterParams.BIDDING_PARAM,\r\n label: ForSaleStrings.BiddingShort,\r\n isChecked: biddingParam === 'true' ? true : false,\r\n });\r\n }\r\n //sorting\r\n const sortParam = params.get(FilterParams.SORT_PARAM);\r\n if (sortParam !== null) {\r\n tags.push({\r\n type: 'sortType',\r\n id: sortParam,\r\n name: SortType[parseInt(sortParam)].label,\r\n });\r\n }\r\n\r\n // price\r\n if (\r\n params.get(FilterParams.PRICEMIN_PARAM) !== null &&\r\n params.get(FilterParams.PRICEMAX_PARAM) !== null\r\n ) {\r\n const priceMinParam = Number(params.get(FilterParams.PRICEMIN_PARAM));\r\n const priceMaxParam = Number(params.get(FilterParams.PRICEMAX_PARAM));\r\n tags.push({\r\n type: 'rangeTag',\r\n name: RangeTagNames.Price,\r\n minVal: priceMinParam,\r\n maxVal: priceMaxParam,\r\n });\r\n }\r\n\r\n // rooms\r\n if (\r\n params.get(FilterParams.ROOMMIN_PARAM) !== null &&\r\n params.get(FilterParams.ROOMMAX_PARAM) !== null\r\n ) {\r\n const roomMinParam = Number(params.get(FilterParams.ROOMMIN_PARAM));\r\n const roomMaxParam = Number(params.get(FilterParams.ROOMMAX_PARAM));\r\n tags.push({\r\n type: 'rangeTag',\r\n name: RangeTagNames.Room,\r\n minVal: roomMinParam,\r\n maxVal: roomMaxParam,\r\n });\r\n }\r\n\r\n // livingspace\r\n if (\r\n params.get(FilterParams.LIVINGSPACEMIN_PARAM) !== null &&\r\n params.get(FilterParams.LIVINGSPACEMAX_PARAM) !== null\r\n ) {\r\n const livingSpaceMinParam = Number(\r\n params.get(FilterParams.LIVINGSPACEMIN_PARAM)\r\n );\r\n const livingSpaceMaxParam = Number(\r\n params.get(FilterParams.LIVINGSPACEMAX_PARAM)\r\n );\r\n tags.push({\r\n type: 'rangeTag',\r\n name: RangeTagNames.LivingSpace,\r\n minVal: livingSpaceMinParam,\r\n maxVal: livingSpaceMaxParam,\r\n });\r\n }\r\n\r\n // monthly cost\r\n if (\r\n params.get(FilterParams.MONTHLYCOSTMIN_PARAM) !== null &&\r\n params.get(FilterParams.MONTHLYCOSTMAX_PARAM) !== null\r\n ) {\r\n const monthlyCostMinParam = Number(\r\n params.get(FilterParams.MONTHLYCOSTMIN_PARAM)\r\n );\r\n const monthlyCostMaxParam = Number(\r\n params.get(FilterParams.MONTHLYCOSTMAX_PARAM)\r\n );\r\n tags.push({\r\n type: 'rangeTag',\r\n name: RangeTagNames.Charge,\r\n minVal: monthlyCostMinParam,\r\n maxVal: monthlyCostMaxParam,\r\n });\r\n }\r\n\r\n // plotarea\r\n if (\r\n params.get(FilterParams.PLOTAREAMIN_PARAM) !== null &&\r\n params.get(FilterParams.PLOTAREAMAX_PARAM) !== null\r\n ) {\r\n const plotAreaMinParam = Number(params.get(FilterParams.PLOTAREAMIN_PARAM));\r\n const plotAreaMaxParam = Number(params.get(FilterParams.PLOTAREAMAX_PARAM));\r\n tags.push({\r\n type: 'rangeTag',\r\n name: RangeTagNames.PlotArea,\r\n minVal: plotAreaMinParam,\r\n maxVal: plotAreaMaxParam,\r\n });\r\n }\r\n\r\n return tags;\r\n}\r\n\r\n//create querystring from our tags\r\nexport function filterToQuerystring(\r\n filter: ITag[],\r\n page?: number,\r\n myPagesCheck?: boolean\r\n): string {\r\n const filtersStrings = [];\r\n\r\n // page\r\n if (page != null) {\r\n filtersStrings.push(`page=${page}`);\r\n }\r\n\r\n //municipality\r\n if (filter.some((x) => x.type === 'munici' && !myPagesCheck)) {\r\n filtersStrings.push(\r\n `${FilterParams.MUNICI_PARAM}=${filter\r\n .filter((x) => x.type === 'munici')\r\n .map((x) => x.id)\r\n .join(',')}`\r\n );\r\n } else if (filter.some((x) => x.type === 'munici' && myPagesCheck)) {\r\n filtersStrings.push(\r\n `${FilterParams.MUNICI_PARAM}=${filter\r\n .filter((x) => x.type === 'munici')\r\n .map((x) => x.municipality)\r\n .join(',')}`\r\n );\r\n }\r\n\r\n //county\r\n if (filter.some((x) => x.type === 'county')) {\r\n filtersStrings.push(\r\n `${FilterParams.COUNTY_PARAM}=${filter\r\n .filter((x) => x.type === 'county')\r\n .map((x) => x.id)\r\n .join(',')}`\r\n );\r\n }\r\n\r\n //area\r\n if (filter.some((x) => x.type === 'area')) {\r\n filtersStrings.push(\r\n `${FilterParams.AREA_PARAM}=${filter\r\n .filter((x) => x.type === 'area')\r\n .map((x) => x.id)\r\n .join(',')}`\r\n );\r\n filtersStrings.push(\r\n `${'areaNames'}=${filter\r\n .filter((x) => x.type === 'area')\r\n .map((x) => x.label?.split(' (')[0])\r\n .join(',')}`\r\n );\r\n }\r\n\r\n // estate types\r\n if (filter.some((x) => x.type === 'estateType')) {\r\n filtersStrings.push(\r\n `${FilterParams.ESTATETYPE_PARAM}=${filter\r\n .filter((x) => x.type === 'estateType')\r\n .map((x) => x.estateType)\r\n .join(',')}`\r\n );\r\n }\r\n\r\n // extra criterias\r\n if (filter.some((x) => x.type === 'extraCriteria')) {\r\n filtersStrings.push(\r\n `${FilterParams.EXTRACRITERIA_PARAM}=${filter\r\n .filter((x) => x.type === 'extraCriteria')\r\n .map((x) => x.id)\r\n .join(',')}`\r\n );\r\n }\r\n\r\n // alignment\r\n if (filter.some((x) => x.type === 'alignment')) {\r\n filtersStrings.push(\r\n `${FilterParams.ALIGNMENT_PARAM}=${filter\r\n .filter((x) => x.type === 'alignment')\r\n .map((x) => x.id)\r\n .join(',')}`\r\n );\r\n }\r\n\r\n if (filter.some((x) => x.type === 'broker')) {\r\n filtersStrings.push(\r\n `${FilterParams.BROKERID_PARAM}=${filter\r\n .filter((x) => x.type === 'broker')\r\n .map((x) => x.id)}`\r\n );\r\n }\r\n\r\n if (filter.some((x) => x.type === 'office')) {\r\n filtersStrings.push(\r\n `${FilterParams.CUSTOMERID_PARAM}=${filter\r\n .filter((x) => x.type === 'office')\r\n .map((x) => x.id)}`\r\n );\r\n }\r\n\r\n //Försprång\r\n if (filter.some((x) => x.type === FilterParams.HEADSTART_PARAM)) {\r\n filtersStrings.push(\r\n `${FilterParams.HEADSTART_PARAM}=${filter\r\n .filter((x) => x.type === FilterParams.HEADSTART_PARAM)\r\n .map((x) => x.isChecked)}`\r\n );\r\n }\r\n\r\n //Only show sold\r\n if (filter.some((x) => x.type === FilterParams.SOLD_PARAM)) {\r\n filtersStrings.push(\r\n `${FilterParams.SOLD_PARAM}=${filter\r\n .filter((x) => x.type === FilterParams.SOLD_PARAM)\r\n .map((x) => x.isChecked)}`\r\n );\r\n }\r\n //Sustainable choice\r\n if (filter.some((x) => x.type === FilterParams.GREENESTATES_PARAM)) {\r\n filtersStrings.push(\r\n `${FilterParams.GREENESTATES_PARAM}=${filter\r\n .filter((x) => x.type === FilterParams.GREENESTATES_PARAM)\r\n .map((x) => x.isChecked)}`\r\n );\r\n }\r\n //Bidding\r\n if (filter.some((x) => x.type === FilterParams.BIDDING_PARAM)) {\r\n filtersStrings.push(\r\n `${FilterParams.BIDDING_PARAM}=${filter\r\n .filter((x) => x.type === FilterParams.BIDDING_PARAM)\r\n .map((x) => x.isChecked)}`\r\n );\r\n }\r\n // price\r\n if (filter.some((x) => x.type === 'rangeTag' && x.name === 'Pris')) {\r\n filtersStrings.push(\r\n `${FilterParams.PRICEMIN_PARAM}=${filter\r\n .filter((x) => x.type === 'rangeTag' && x.name === 'Pris')\r\n .map((x) => x.minVal)\r\n .join(',')}`\r\n );\r\n }\r\n\r\n if (filter.some((x) => x.type === 'rangeTag' && x.name === 'Pris')) {\r\n filtersStrings.push(\r\n `${FilterParams.PRICEMAX_PARAM}=${filter\r\n .filter((x) => x.type === 'rangeTag' && x.name === 'Pris')\r\n .map((x) => x.maxVal)\r\n .join(',')}`\r\n );\r\n }\r\n\r\n //rooms\r\n if (filter.some((x) => x.type === 'rangeTag' && x.name === 'Rum')) {\r\n filtersStrings.push(\r\n `${FilterParams.ROOMMIN_PARAM}=${filter\r\n .filter((x) => x.type === 'rangeTag' && x.name === 'Rum')\r\n .map((x) => x.minVal)\r\n .join(',')}`\r\n );\r\n }\r\n if (filter.some((x) => x.type === 'rangeTag' && x.name === 'Rum')) {\r\n filtersStrings.push(\r\n `${FilterParams.ROOMMAX_PARAM}=${filter\r\n .filter((x) => x.type === 'rangeTag' && x.name === 'Rum')\r\n .map((x) => x.maxVal)\r\n .join(',')}`\r\n );\r\n }\r\n\r\n // livingspace\r\n if (filter.some((x) => x.type === 'rangeTag' && x.name === 'Boarea')) {\r\n filtersStrings.push(\r\n `${FilterParams.LIVINGSPACEMIN_PARAM}=${filter\r\n .filter((x) => x.type === 'rangeTag' && x.name === 'Boarea')\r\n .map((x) => x.minVal)\r\n .join(',')}`\r\n );\r\n }\r\n\r\n if (filter.some((x) => x.type === 'rangeTag' && x.name === 'Boarea')) {\r\n filtersStrings.push(\r\n `${FilterParams.LIVINGSPACEMAX_PARAM}=${filter\r\n .filter((x) => x.type === 'rangeTag' && x.name === 'Boarea')\r\n .map((x) => x.maxVal)\r\n .join(',')}`\r\n );\r\n }\r\n\r\n // Monthly cost\r\n if (filter.some((x) => x.type === 'rangeTag' && x.name === 'Avgift')) {\r\n filtersStrings.push(\r\n `${FilterParams.MONTHLYCOSTMIN_PARAM}=${filter\r\n .filter((x) => x.type === 'rangeTag' && x.name === 'Avgift')\r\n .map((x) => x.minVal)\r\n .join(',')}`\r\n );\r\n }\r\n\r\n if (filter.some((x) => x.type === 'rangeTag' && x.name === 'Avgift')) {\r\n filtersStrings.push(\r\n `${FilterParams.MONTHLYCOSTMAX_PARAM}=${filter\r\n .filter((x) => x.type === 'rangeTag' && x.name === 'Avgift')\r\n .map((x) => x.maxVal)\r\n .join(',')}`\r\n );\r\n }\r\n\r\n // Plot Area\r\n if (filter.some((x) => x.type === 'rangeTag' && x.name === 'Tomtarea')) {\r\n filtersStrings.push(\r\n `${FilterParams.PLOTAREAMIN_PARAM}=${filter\r\n .filter((x) => x.type === 'rangeTag' && x.name === 'Tomtarea')\r\n .map((x) => x.minVal)\r\n .join(',')}`\r\n );\r\n }\r\n\r\n if (filter.some((x) => x.type === 'rangeTag' && x.name === 'Tomtarea')) {\r\n filtersStrings.push(\r\n `${FilterParams.PLOTAREAMAX_PARAM}=${filter\r\n .filter((x) => x.type === 'rangeTag' && x.name === 'Tomtarea')\r\n .map((x) => x.maxVal)\r\n .join(',')}`\r\n );\r\n }\r\n\r\n // sortType\r\n if (filter.some((x) => x.type === 'sortType')) {\r\n filtersStrings.push(\r\n `${FilterParams.SORT_PARAM}=${filter\r\n .filter((x) => x.type === 'sortType')\r\n .map((x) => x.id)}`\r\n );\r\n }\r\n\r\n return filtersStrings.length ? encodeURI(`?${filtersStrings.join('&')}`) : '';\r\n}\r\n\r\n//Defining Context where all filtering options lives\r\nexport const FilterContext = createContext(\r\n {} as IFilterContext\r\n);\r\n\r\nexport interface IFilterContext {\r\n tags: ITag[];\r\n setTags(newVal: ITag[]): void;\r\n visibleExtraCrits: { [key: string]: ITag };\r\n setVisibleExtraCrits(newVal: { [key: string]: ITag }): void;\r\n sessionId?: string;\r\n user?: string;\r\n isBigScreen: boolean;\r\n isMediumScreen: boolean;\r\n isSmallScreen: boolean;\r\n}\r\n\r\n//For SEO purposes\r\nexport async function getFilterFromPath(\r\n path: Record\r\n): Promise {\r\n const tags: ITag[] = [];\r\n if (path.area) {\r\n const cameledArea = makeCamelCase(path.area);\r\n const withoutDashes = cameledArea.replace(/-/g, ' ');\r\n tags.push({\r\n type: 'area',\r\n id: cameledArea,\r\n label: `${withoutDashes} (Område)`,\r\n });\r\n } else if (path.muni) {\r\n const cameledMunici = makeCamelCase(path.muni);\r\n const municipality = makeCamelCase(await getMunicipalityTag(cameledMunici));\r\n if (municipality !== undefined) {\r\n tags.push({\r\n type: 'munici',\r\n id: cameledMunici,\r\n label: `${municipality}`,\r\n });\r\n }\r\n } else if (path.county) {\r\n const cameledCounty = makeCamelCase(path.county);\r\n const county = makeCamelCase(await getCountyTag(cameledCounty));\r\n if (county !== undefined) {\r\n tags.push({\r\n type: 'county',\r\n id: cameledCounty,\r\n label: `${county}`,\r\n });\r\n }\r\n }\r\n\r\n if (\r\n path.estateType &&\r\n path.estateType !== 'bostad' &&\r\n path.estateType !== 'bra-energiklass'\r\n ) {\r\n let tempHolder = '';\r\n let prettyEstateTypeName = path.estateType;\r\n //ordinary cases\r\n if (path.estateType === 'bostadsratt') {\r\n tempHolder = path.estateType;\r\n prettyEstateTypeName = replaceAt(tempHolder, 8, 'ä');\r\n } else if (path.estateType === 'gard') {\r\n tempHolder = path.estateType;\r\n prettyEstateTypeName = replaceAt(tempHolder, 1, 'å');\r\n }\r\n const withoutDashes = prettyEstateTypeName.replace(/-/g, ' ');\r\n\r\n const cameledEstateType = makeCamelCase(withoutDashes);\r\n tags.push({\r\n type: 'estateType',\r\n estateType: cameledEstateType as EstateType,\r\n });\r\n } else if (path.estateType && path.estateType === 'bra-energiklass') {\r\n tags.push({\r\n type: FilterTypes.ShowGreenEstates,\r\n isChecked: true,\r\n label: ServicesTitles.GreenEstate,\r\n });\r\n }\r\n\r\n return tags;\r\n}\r\n\r\nfunction replaceAt(myString: string, index: number, replacement: string) {\r\n return (\r\n myString.substr(0, index) +\r\n replacement +\r\n myString.substr(index + replacement.length)\r\n );\r\n}\r\n","import {\r\n DeclarationBasisDatesDataResp,\r\n SavedDeclarationBasisSettlementDataResp,\r\n HomeAssignmentDatesDataResp,\r\n SavedDeclarationBasisMARDataResp,\r\n SavedTodoDatesDataResp,\r\n KycFormResp,\r\n} from '../forms/MyPagesAssignments/General/AssignmentConstants';\r\n\r\nimport {\r\n PersonalDataResp,\r\n StatisticObject,\r\n LoginInfo,\r\n GepositRoot,\r\n SpeculationResponse,\r\n} from '../types/interfaces';\r\n\r\nimport {\r\n TagModel,\r\n GeneralInfo,\r\n EconomyInfo,\r\n AboutEstateInfo,\r\n SurroundingInfo,\r\n TechnicalInfo,\r\n Sale,\r\n Purchase,\r\n Suspension,\r\n QuestionList,\r\n} from './generatedApi';\r\nexport const isDev = true;\r\n// define URLs\r\nexport const apiUrl = 'https://app-lansfast-api.azurewebsites.net';\r\nexport const kycPortalUrl = 'https://kyc.lansfast.se';\r\n\r\n//Is needed to make mypages login to work with correct claims\r\nexport const localApiUrl = 'http://localhost:5208';\r\nexport const websiteUrl = window.location.origin;\r\nexport const umbracoApi = '/umbraco/api';\r\n\r\nexport const getBrokerName = async (brokerId: string): Promise => {\r\n const response = await fetch(\r\n apiUrl + `/api/Search/GetBrokerTag?brokerId=${brokerId}`\r\n );\r\n const data = (await response.json()) as string;\r\n return data;\r\n};\r\n\r\nexport const getOfficeName = async (customerId: string): Promise => {\r\n const response = await fetch(\r\n apiUrl + `/api/Search/GetOfficeTag?customerId=${customerId}`\r\n );\r\n const data = (await response.json()) as string;\r\n return data;\r\n};\r\n\r\nexport const getPersonalData = async (\r\n ssn?: string\r\n): Promise => {\r\n const response = await fetch(\r\n apiUrl + `/api/persondata/getpersoninformation?SSN=${ssn}`\r\n );\r\n const personalData = (await response.json()) as PersonalDataResp;\r\n return personalData;\r\n};\r\n\r\nexport const getMunicipalityTag = async (\r\n municipality: string\r\n): Promise => {\r\n const response = await fetch(\r\n apiUrl + `/api/Search/CreateMunicipalityTags?municipality=${municipality}`\r\n );\r\n const data = (await response.json()) as TagModel;\r\n\r\n return data?.tag;\r\n};\r\n\r\nexport const getCountyTag = async (county: string): Promise => {\r\n const response = await fetch(\r\n apiUrl + `/api/Search/CreateCountyTags?county=${county}`\r\n );\r\n const data = (await response.json()) as TagModel;\r\n return data?.tag;\r\n};\r\n\r\nexport const getQuestionListData = async (\r\n sessionId: string,\r\n estateId: string\r\n): Promise => {\r\n const SAVE_URL =\r\n `/api/MyPages/GetQuestionList?` +\r\n new URLSearchParams({ sessionId: sessionId, estateId: estateId });\r\n const response = await fetch(apiUrl + SAVE_URL);\r\n const data = (await response.json()) as QuestionList;\r\n\r\n return data;\r\n};\r\nexport const getGeneralInfoData = async (\r\n sessionId: string,\r\n estateId: string\r\n): Promise => {\r\n const SAVE_URL =\r\n `/api/MyPages/HomeAssignment/GetGeneralInfo?` +\r\n new URLSearchParams({ sessionId: sessionId, estateId: estateId });\r\n const response = await fetch(apiUrl + SAVE_URL);\r\n const data = (await response.json()) as GeneralInfo;\r\n return data;\r\n};\r\n\r\nexport const getEconomyInfoData = async (\r\n sessionId: string,\r\n estateId: string\r\n): Promise => {\r\n const SAVE_URL =\r\n `/api/MyPages/HomeAssignment/GetEconomyInfo?` +\r\n new URLSearchParams({ sessionId: sessionId, estateId: estateId });\r\n const response = await fetch(apiUrl + SAVE_URL);\r\n const data = (await response.json()) as EconomyInfo;\r\n return data;\r\n};\r\n\r\nexport const getAboutEstateInfoData = async (\r\n sessionId: string,\r\n estateId: string\r\n): Promise => {\r\n const SAVE_URL =\r\n `/api/MyPages/HomeAssignment/GetAboutEstateInfo?` +\r\n new URLSearchParams({ sessionId: sessionId, estateId: estateId });\r\n const response = await fetch(apiUrl + SAVE_URL);\r\n const data = (await response.json()) as AboutEstateInfo;\r\n return data;\r\n};\r\n\r\nexport const getHomeAssignmentDates = async (\r\n sessionId: string,\r\n estateId: string\r\n): Promise => {\r\n const SAVE_URL =\r\n `/api/MyPages/HomeAssignment/GetDates?` +\r\n new URLSearchParams({ sessionId: sessionId, estateId: estateId });\r\n const response = await fetch(apiUrl + SAVE_URL);\r\n const data = (await response.json()) as HomeAssignmentDatesDataResp;\r\n return data;\r\n};\r\n\r\nexport const getSurroundingInfoData = async (\r\n sessionId: string,\r\n estateId: string\r\n): Promise => {\r\n const SAVE_URL =\r\n `/api/MyPages/HomeAssignment/GetSurroundingInfo?` +\r\n new URLSearchParams({ sessionId: sessionId, estateId: estateId });\r\n const response = await fetch(apiUrl + SAVE_URL);\r\n const data = (await response.json()) as SurroundingInfo;\r\n return data;\r\n};\r\n\r\nexport const getTechnicalInfoData = async (\r\n sessionId: string,\r\n estateId: string\r\n): Promise => {\r\n const SAVE_URL =\r\n `/api/MyPages/HomeAssignment/GetTechnicalInfo?` +\r\n new URLSearchParams({ sessionId: sessionId, estateId: estateId });\r\n const response = await fetch(apiUrl + SAVE_URL);\r\n const data = (await response.json()) as TechnicalInfo;\r\n return data;\r\n};\r\n\r\nexport const getDeclarationBasisDates = async (\r\n sessionId: string,\r\n estateId: string\r\n): Promise => {\r\n const GET_URL =\r\n `/api/MyPages/DeclarationBasis/GetDates?` +\r\n new URLSearchParams({ sessionId: sessionId, estateId: estateId });\r\n const response = await fetch(apiUrl + GET_URL);\r\n const data = (await response.json()) as DeclarationBasisDatesDataResp;\r\n return data;\r\n};\r\n\r\nexport const getDeclarationBasisSettlement = async (\r\n sessionId: string,\r\n estateId: string\r\n): Promise => {\r\n const GET_URL =\r\n `/api/MyPages/DeclarationBasis/GetSettlement?` +\r\n new URLSearchParams({ sessionId: sessionId, estateId: estateId });\r\n const response = await fetch(apiUrl + GET_URL);\r\n const data =\r\n (await response.json()) as SavedDeclarationBasisSettlementDataResp;\r\n return data;\r\n};\r\n\r\nexport const getDeclarationBasisSale = async (\r\n sessionId: string,\r\n estateId: string\r\n): Promise => {\r\n const GET_URL =\r\n `/api/MyPages/DeclarationBasis/GetSale?` +\r\n new URLSearchParams({ sessionId: sessionId, estateId: estateId });\r\n const response = await fetch(apiUrl + GET_URL);\r\n const data = (await response.json()) as Sale;\r\n return data;\r\n};\r\n\r\nexport const getDeclarationBasisPurchase = async (\r\n sessionId: string,\r\n estateId: string\r\n): Promise => {\r\n const GET_URL =\r\n `/api/MyPages/DeclarationBasis/GetPurchase?` +\r\n new URLSearchParams({ sessionId: sessionId, estateId: estateId });\r\n const response = await fetch(apiUrl + GET_URL);\r\n const data = (await response.json()) as Purchase;\r\n return data;\r\n};\r\n\r\nexport const getDeclarationBasisSuspension = async (\r\n sessionId: string,\r\n estateId: string\r\n): Promise => {\r\n const GET_URL =\r\n `/api/MyPages/DeclarationBasis/GetSuspension?` +\r\n new URLSearchParams({ sessionId: sessionId, estateId: estateId });\r\n const response = await fetch(apiUrl + GET_URL);\r\n const data = (await response.json()) as Suspension;\r\n return data;\r\n};\r\n\r\nexport const getDeclarationBasisMAR = async (\r\n sessionId: string,\r\n estateId: string\r\n): Promise => {\r\n const GET_URL =\r\n `/api/MyPages/DeclarationBasis/GetMaintenanceAndRebuilding?` +\r\n new URLSearchParams({ sessionId: sessionId, estateId: estateId });\r\n const response = await fetch(apiUrl + GET_URL);\r\n const data = (await response.json()) as SavedDeclarationBasisMARDataResp;\r\n return data;\r\n};\r\n\r\nexport const getToDoDates = async (\r\n sessionId: string,\r\n estateId: string\r\n): Promise => {\r\n const SAVE_URL =\r\n `/api/MyPages/GetToDoDates?` +\r\n new URLSearchParams({ sessionId: sessionId, estateId: estateId });\r\n const response = await fetch(apiUrl + SAVE_URL);\r\n const data = (await response.json()) as SavedTodoDatesDataResp;\r\n return data;\r\n};\r\n\r\nexport const getKycForm = async (\r\n userId: string,\r\n estateId: string\r\n): Promise => {\r\n const GET_URL =\r\n `/api/User/GetKycForms?` +\r\n new URLSearchParams({ sessionId: userId, estateId: estateId });\r\n const response = await fetch(apiUrl + GET_URL);\r\n const data = await response.json();\r\n return data || null;\r\n};\r\n\r\nexport const getWebsiteVisitor = async (\r\n estateId: string,\r\n sessionId: string\r\n): Promise => {\r\n const GET_URL =\r\n `/api/Statistics/SourceData?` +\r\n new URLSearchParams({ estateId: estateId, sessionId: sessionId });\r\n\r\n const response = await fetch(apiUrl + GET_URL);\r\n const objectWebsiteStats = (await response.json()) as StatisticObject[];\r\n return objectWebsiteStats;\r\n};\r\n\r\nexport const getMunicipalityData = async (\r\n estateId: string,\r\n sessionId: string\r\n): Promise => {\r\n const GET_URL =\r\n `/api/Statistics/MunicipalityData?` +\r\n new URLSearchParams({ estateId: estateId, sessionId: sessionId });\r\n\r\n const response = await fetch(apiUrl + GET_URL);\r\n\r\n const objectWebsiteStats = await response.json();\r\n return objectWebsiteStats;\r\n};\r\nexport const getObjectTypeData = async (\r\n estateId: string,\r\n sessionId: string\r\n): Promise => {\r\n const GET_URL =\r\n `/api/Statistics/ObjectTypeData?` +\r\n new URLSearchParams({ estateId: estateId, sessionId: sessionId });\r\n\r\n const response = await fetch(apiUrl + GET_URL);\r\n const objectData = (await response.json()) as StatisticObject;\r\n return objectData;\r\n};\r\n\r\nexport const getLoginInfo = async (): Promise => {\r\n const GET_URL = '/userapi/login';\r\n const response = await fetch(websiteUrl + umbracoApi + GET_URL);\r\n const loginInfo = (await response.json()) as LoginInfo;\r\n return loginInfo;\r\n};\r\n\r\nexport const getGepositData = async (query: string): Promise => {\r\n const GET_URL =\r\n `/api/Forms/GetGepositData?` + new URLSearchParams({ query: query });\r\n\r\n const response = await fetch(apiUrl + GET_URL);\r\n const specResult = (await response.json()) as GepositRoot;\r\n return specResult;\r\n};\r\n\r\nexport const getNrOfSpeculators = async (\r\n data: any\r\n): Promise => {\r\n const POST_URL = `/api/Forms/SpeculatorCheck`;\r\n\r\n const response = await fetch(apiUrl + POST_URL, {\r\n method: 'POST',\r\n headers: {\r\n Accept: 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n body: JSON.stringify(data),\r\n });\r\n if (response.ok) {\r\n const specResult = (await response.json()) as SpeculationResponse;\r\n return specResult;\r\n } else {\r\n data.setError('serverError', {\r\n type: 'manual',\r\n message: response,\r\n });\r\n }\r\n};\r\n","export enum ForSaleStrings {\n NotFindingHeadling = 'Hittar du inte vad du söker?',\n NotFindingText = 'Oroa dig inte. Vi får in nya bostäder hela tiden. Kanske är din drömbostad bara ett par dagar bort? Skapa en bevakning så att du inte missar när den dyker upp!',\n FetchError = 'Kunde inte hämta bostäder just nu. Försök igen om en liten stund.',\n Estates = 'Bostäder',\n SingleEstate = 'Bostad',\n NoResults = 'Din sökning gav inga träffar',\n Loading = 'Laddar...',\n Bidding = 'Budgivning pågår',\n BiddingShort = 'Budgivning',\n}\n","import { useQuery } from '@tanstack/react-query';\nimport { UserService } from '../../services/generatedApi';\n\nconst useUserContactId = (sessionId: string) => {\n return useQuery(\n [\"sessionId\", sessionId],\n () => UserService.userGetContactId(sessionId).then((response) => response),\n {\n enabled: !! sessionId\n }\n \n );\n}\n\nexport default useUserContactId;","import { EstateType } from '~js/React/Enums';\nimport { EstateSelectorFallback } from './EstateSelectorFallback';\n\nexport const SearchFieldFallback = (): JSX.Element => {\n const filteredEstateTypes = Object.values(EstateType).filter(\n (type) => type !== EstateType.OwnedApartment && type !== EstateType.Premises\n );\n\n return (\n
\n
\n
\n
\n {filteredEstateTypes?.map((type) => (\n \n ))}\n
\n
\n
\n
\n );\n};\n","export const EstateSelectorFallback = (): JSX.Element => {\n return (\n
\n
\n
\n );\n};\n","import { useState, useEffect } from 'react';\n\nconst useMediaQuery = (query: string) => {\n const [matches, setMatches] = useState();\n\n useEffect(() => {\n const media = window.matchMedia(query);\n if (media.matches !== matches) {\n setMatches(media.matches);\n }\n\n const listener = () => setMatches(media.matches);\n\n media.addEventListener('change', listener);\n return () => media.removeEventListener('change', listener);\n }, [query, matches]);\n\n return matches;\n};\n\nexport default useMediaQuery;\n","import { Suspense, lazy, useContext, useEffect, useRef, useState } from 'react';\r\nimport { TagSelectButton } from './TagSelectButton';\r\nimport {\r\n EstateStatuses,\r\n EstateType,\r\n Estates,\r\n FilterTypes,\r\n Status,\r\n} from '../../Enums';\r\nconst EstateCardContent = lazy(\r\n () => import('../ObjectCardComponents/EstateCardContent')\r\n);\r\nimport NoSearchResults from './FilterComponents/NoSearchResults';\r\n\r\nimport {\r\n useDebounce,\r\n useKeyPress,\r\n useOnClickOutside,\r\n formatLargeNumbers,\r\n handleUpAndDown,\r\n focusOnInput,\r\n} from '../../helpers';\r\nimport { RemoveFiltersButton } from './RemoveFiltersButton';\r\nimport RemoveFilterBtn from './FilterComponents/RemoveFilterBtn';\r\nimport SearchFieldBtn from './FilterComponents/SearchFieldBtn';\r\nimport { FilterContext } from '../../filterTools';\r\nimport {\r\n shouldShowNoSearchResults,\r\n shouldShowSearchResults,\r\n} from './AutocompleteStartpageComponent';\r\nimport { ForSaleStrings } from '~js/React/types/ForSaleString';\r\nimport useAutocomplete from '../CustomHooks/useAutocomplete';\r\nimport { FilterEstateTags } from '~js/React/services/generatedApi';\r\n\r\ninterface Props {\r\n inputLabel: string;\r\n activeInput: boolean;\r\n countySelected: boolean;\r\n multipleEstateTypesSelected: boolean;\r\n brokerOrOfficeTypesSelected: boolean;\r\n commercialOrProject: boolean;\r\n stickyField?: boolean;\r\n}\r\n\r\nconst SearchField = ({\r\n inputLabel,\r\n activeInput,\r\n countySelected,\r\n multipleEstateTypesSelected,\r\n brokerOrOfficeTypesSelected,\r\n commercialOrProject,\r\n stickyField = false,\r\n}: Props): JSX.Element => {\r\n const filterContext = useContext(FilterContext);\r\n const [searchTerm, setSearchTerm] = useState('');\r\n const [inputValue, setInputValue] = useState('');\r\n const debouncedSearchTerm = useDebounce(searchTerm, 200);\r\n const [acResults, setACResults] = useState();\r\n const [showSearchResults, setShowSearchResults] = useState(false);\r\n const [showNoSearchResults, setShowNoSearchResults] = useState(false);\r\n const [freetext, setFreetext] = useState('');\r\n\r\n const ref = useRef(null);\r\n const [hideAC, setHideAc] = useState(false);\r\n const { data: resp } = useAutocomplete(freetext);\r\n\r\n useOnClickOutside(ref, () => setHideAc(true));\r\n const escPressed = useKeyPress('Escape');\r\n\r\n useEffect(() => {\r\n document.addEventListener('keydown', handleUpAndDown);\r\n return () => {\r\n document.removeEventListener('keydown', handleUpAndDown);\r\n };\r\n }, []);\r\n useEffect(() => {\r\n setACResults(resp);\r\n }, [resp]);\r\n useEffect(() => {\r\n const query = debouncedSearchTerm.trim();\r\n if (!query || query.length < 2) {\r\n setACResults(null);\r\n } else {\r\n setFreetext(query);\r\n setHideAc(false);\r\n }\r\n }, [debouncedSearchTerm]);\r\n\r\n function updateLocationTags(\r\n type: string,\r\n label?: string,\r\n id?: string,\r\n county?: string,\r\n municipality?: string\r\n ) {\r\n const existingTag = filterContext.tags.some((x) => x.label === label);\r\n\r\n if (existingTag) {\r\n filterContext.setTags(\r\n filterContext.tags.filter((x) => x.label !== label)\r\n );\r\n } else {\r\n filterContext.setTags([\r\n ...filterContext.tags,\r\n { type, label, id, county, municipality },\r\n ]);\r\n }\r\n }\r\n\r\n function updateEstateTypeTags(estateType?: EstateType) {\r\n const existingFarmTag = filterContext.tags.filter(\r\n (x) =>\r\n x.estateType === EstateType.Agriculture &&\r\n x.type === FilterTypes.EstateType\r\n );\r\n if (existingFarmTag && estateType === EstateType.Agriculture) {\r\n const filteredArray = filterContext.tags.filter(\r\n (x) => x.type !== FilterTypes.Alignment && x.estateType !== estateType\r\n );\r\n filterContext.setTags(filteredArray);\r\n } else {\r\n const existingTag = filterContext.tags.some(\r\n (x) => x.estateType === estateType && x.type === FilterTypes.EstateType\r\n );\r\n\r\n if (existingTag) {\r\n filterContext.setTags(\r\n filterContext.tags.filter((x) => x.estateType !== estateType)\r\n );\r\n } else {\r\n filterContext.setTags([\r\n ...filterContext.tags,\r\n { type: FilterTypes.EstateType, estateType },\r\n ]);\r\n }\r\n }\r\n }\r\n\r\n function updateRangeTags(\r\n type: string,\r\n minVal: number,\r\n maxVal: number,\r\n name?: string\r\n ) {\r\n const existingTag = filterContext.tags.some(\r\n (x) => x.name === name && x.type === type\r\n );\r\n if (existingTag) {\r\n filterContext.setTags(filterContext.tags.filter((x) => x.name !== name));\r\n } else {\r\n filterContext.setTags([\r\n ...filterContext.tags,\r\n { name, minVal, maxVal, type: type },\r\n ]);\r\n }\r\n }\r\n\r\n function updateExtraCritTags(type: string, id?: string, text?: string) {\r\n const existingTag = filterContext.tags.some(\r\n (x) => x.id === id && x.text === text && x.type === type\r\n );\r\n\r\n if (existingTag) {\r\n filterContext.setTags(filterContext.tags.filter((x) => x.id !== id));\r\n } else {\r\n filterContext.setTags([\r\n ...filterContext.tags,\r\n { type: FilterTypes.ExtraCritera, id, text },\r\n ]);\r\n }\r\n }\r\n\r\n function updateAlignmentTags(id?: string) {\r\n const existingTag = filterContext.tags.some((x) => x.id === id);\r\n\r\n if (existingTag) {\r\n filterContext.setTags(filterContext.tags.filter((x) => x.id !== id));\r\n } else {\r\n filterContext.setTags([\r\n ...filterContext.tags,\r\n { type: FilterTypes.Alignment, id },\r\n ]);\r\n }\r\n }\r\n\r\n function updateFromKeyPress(event: any) {\r\n function updateFromAcResults() {\r\n if (!!acResults?.municipalities[0]) {\r\n updateLocationTags(\r\n FilterTypes.Municipality,\r\n `${acResults?.municipalities[0].name} (Kommun)`,\r\n acResults?.municipalities[0].name\r\n );\r\n setInputValue('');\r\n setSearchTerm('');\r\n } else if (!!acResults?.areas[0]) {\r\n updateLocationTags(\r\n FilterTypes.Area,\r\n `${acResults?.areas[0].name} (${acResults?.areas[0].municipality} kommun)`,\r\n acResults?.areas[0].id\r\n );\r\n setInputValue('');\r\n setSearchTerm('');\r\n } else if (!!acResults?.counties[0]) {\r\n updateLocationTags(\r\n FilterTypes.County,\r\n `${acResults?.counties[0].name} (Län)`,\r\n acResults?.counties[0].name\r\n );\r\n setInputValue('');\r\n setSearchTerm('');\r\n }\r\n return;\r\n }\r\n if (document !== null) {\r\n if (event.key === 'Enter') {\r\n updateFromAcResults();\r\n }\r\n }\r\n }\r\n\r\n function updateFromKeyDown(event: any, currentInputValue: any) {\r\n if (filterContext.tags.length > 0) {\r\n const listFreeFromShowOnly = filterContext.tags.filter(\r\n (x) =>\r\n x.type !== FilterTypes.ShowOnlyHeadStart &&\r\n x.type !== FilterTypes.ShowSold\r\n );\r\n if (listFreeFromShowOnly.length > 0) {\r\n let itemToCheckForRemove =\r\n filterContext.tags[filterContext.tags.length - 1];\r\n if (event.key === 'Backspace' && currentInputValue === '') {\r\n if (\r\n itemToCheckForRemove.type === FilterTypes.ShowSold ||\r\n itemToCheckForRemove.type === FilterTypes.ShowOnlyHeadStart\r\n ) {\r\n if (filterContext.tags.length > 1) {\r\n itemToCheckForRemove =\r\n filterContext.tags[filterContext.tags.length - 2];\r\n if (\r\n itemToCheckForRemove.type === FilterTypes.ShowSold ||\r\n itemToCheckForRemove.type === FilterTypes.ShowOnlyHeadStart\r\n ) {\r\n if (filterContext.tags.length > 2) {\r\n itemToCheckForRemove =\r\n filterContext.tags[filterContext.tags.length - 3];\r\n }\r\n }\r\n }\r\n }\r\n if (itemToCheckForRemove.type === FilterTypes.EstateType) {\r\n filterContext.setTags(\r\n filterContext.tags.filter(\r\n (x) => x.estateType !== itemToCheckForRemove.estateType\r\n )\r\n );\r\n } else if (itemToCheckForRemove.type === FilterTypes.RangeTag) {\r\n filterContext.setTags(\r\n filterContext.tags.filter(\r\n (x) => x.name !== itemToCheckForRemove.name\r\n )\r\n );\r\n } else {\r\n filterContext.setTags(\r\n filterContext.tags.filter((x) => x.id !== itemToCheckForRemove.id)\r\n );\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n function updateStatusTags(type: string) {\r\n const existingStatusTag = filterContext.tags.some((x) => x.type === type);\r\n if (existingStatusTag) {\r\n filterContext.setTags(filterContext.tags.filter((x) => x.type !== type));\r\n } else {\r\n filterContext.setTags([\r\n ...filterContext.tags,\r\n { type: type, isChecked: false },\r\n ]);\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n if (escPressed) {\r\n setHideAc(true);\r\n }\r\n }, [escPressed]);\r\n\r\n useEffect(() => {\r\n setShowSearchResults(shouldShowSearchResults(hideAC, acResults));\r\n setShowNoSearchResults(shouldShowNoSearchResults(hideAC, acResults));\r\n }, [hideAC, acResults]);\r\n if (stickyField) {\r\n const el = document.querySelector('.sticky-field') as Element | null;\r\n\r\n if (el) {\r\n const observer = new IntersectionObserver(\r\n ([e]) => {\r\n const shouldAddClasses = e.intersectionRatio < 1;\r\n e.target.classList.toggle('shadow-bs60', shouldAddClasses);\r\n e.target.classList.toggle('pt-14', shouldAddClasses);\r\n e.target.classList.toggle('isSticky', shouldAddClasses);\r\n },\r\n { threshold: [1] }\r\n );\r\n observer.observe(el);\r\n }\r\n }\r\n\r\n return (\r\n \r\n
\r\n
\r\n {filterContext?.tags && (\r\n
\r\n {filterContext.tags.map((x, i) => {\r\n if (\r\n !activeInput &&\r\n (x.type === FilterTypes.County ||\r\n x.type === FilterTypes.Municipality ||\r\n x.type === FilterTypes.Area)\r\n ) {\r\n return (\r\n {\r\n updateLocationTags(\r\n x.type,\r\n x.label,\r\n x.id,\r\n x.county,\r\n x.municipality\r\n );\r\n }}\r\n />\r\n );\r\n } else if (\r\n activeInput &&\r\n countySelected &&\r\n x.type === FilterTypes.County\r\n ) {\r\n return (\r\n {\r\n updateLocationTags(\r\n x.type,\r\n x.label,\r\n x.id,\r\n x.county,\r\n x.municipality\r\n );\r\n }}\r\n />\r\n );\r\n } else if (\r\n activeInput &&\r\n (x.type === FilterTypes.Municipality ||\r\n x.type === FilterTypes.Area)\r\n ) {\r\n return (\r\n {\r\n updateLocationTags(\r\n x.type,\r\n x.label,\r\n x.id,\r\n x.county,\r\n x.municipality\r\n );\r\n }}\r\n />\r\n );\r\n } else if (!activeInput && x.type === FilterTypes.EstateType) {\r\n return (\r\n {\r\n updateEstateTypeTags(x.estateType);\r\n }}\r\n />\r\n );\r\n } else if (activeInput && x.type === FilterTypes.EstateType) {\r\n return (\r\n {\r\n updateEstateTypeTags(x.estateType);\r\n }}\r\n />\r\n );\r\n } else if (x.type === FilterTypes.RangeTag) {\r\n return (\r\n {\r\n updateRangeTags(x.type, 0, 0, x.name);\r\n }}\r\n >\r\n {x.name === 'Pris' &&\r\n x.minVal !== undefined &&\r\n x.maxVal !== undefined ? (\r\n <>\r\n {x.name}: {formatLargeNumbers(x.minVal)}-\r\n {formatLargeNumbers(x.maxVal)}\r\n {x.maxVal === 15000000 ? '+' : ''} SEK\r\n \r\n ) : x.name === 'Avgift' &&\r\n x.minVal !== undefined &&\r\n x.maxVal !== undefined ? (\r\n <>\r\n {x.name}: {formatLargeNumbers(x.minVal)}-\r\n {formatLargeNumbers(x.maxVal)}\r\n {x.maxVal === 10000 ? '+' : ''} SEK\r\n \r\n ) : x.name === 'Boarea' ? (\r\n <>\r\n {x.name}: {x.minVal}-{x.maxVal}\r\n {x.maxVal === 200 ? '+' : ''} m²\r\n \r\n ) : x.name === 'Tomtarea' &&\r\n x.minVal !== undefined &&\r\n x.maxVal !== undefined ? (\r\n <>\r\n {x.name}: {formatLargeNumbers(x.minVal)}-\r\n {formatLargeNumbers(x.maxVal)}\r\n {x.maxVal === 15000 ? '+' : ''} m²\r\n \r\n ) : (\r\n <>\r\n {x.name}: {x.minVal}-{x.maxVal}\r\n {x.maxVal === 10 ? '+' : ''}\r\n \r\n )}\r\n \r\n );\r\n } else if (x.type === FilterTypes.ExtraCritera) {\r\n return (\r\n {\r\n updateExtraCritTags('extraCriteria', x.id, x.text);\r\n }}\r\n />\r\n );\r\n } else if (x.type === FilterTypes.Alignment) {\r\n return (\r\n {\r\n updateAlignmentTags(x.id);\r\n }}\r\n />\r\n );\r\n } else if (\r\n x.type === FilterTypes.Broker ||\r\n x.type === FilterTypes.Office\r\n ) {\r\n return (\r\n {\r\n updateStatusTags(x.type);\r\n }}\r\n >\r\n {Object.keys(x.label).map((key: any) => x.label[key])}\r\n \r\n );\r\n } else if (\r\n x.type === FilterTypes.ShowGreenEstates &&\r\n x.isChecked\r\n ) {\r\n return (\r\n {\r\n updateStatusTags(x.type);\r\n }}\r\n >\r\n {x.label}\r\n \r\n );\r\n } else if (x.type === FilterTypes.ShowBidding && x.isChecked) {\r\n return (\r\n {\r\n updateStatusTags(x.type);\r\n }}\r\n >\r\n {x.label}\r\n \r\n );\r\n } else if (\r\n x.type === FilterTypes.ShowOnlyHeadStart &&\r\n x.isChecked\r\n ) {\r\n return (\r\n {\r\n updateStatusTags(x.type);\r\n }}\r\n >\r\n {Status.headStartPlural}\r\n \r\n );\r\n } else if (x.type === FilterTypes.ShowSold && x.isChecked) {\r\n return (\r\n {\r\n updateStatusTags(x.type);\r\n }}\r\n >\r\n {Status.sold}\r\n \r\n );\r\n } else {\r\n return null;\r\n }\r\n })}\r\n {activeInput &&\r\n (filterContext.tags.length === 0 ||\r\n (filterContext.tags.filter(\r\n (x) =>\r\n x.type === 'showSold' ||\r\n x.type === 'showOnlyHeadStart' ||\r\n x.type === 'sortType'\r\n ).length > 0 &&\r\n filterContext.tags.filter(\r\n (x) =>\r\n x.type !== 'showSold' &&\r\n x.type !== 'showOnlyHeadStart' &&\r\n x.type !== 'sortType'\r\n ).length === 0)) && (\r\n
\r\n För att skapa en bevakning måste du ha valt några\r\n sökparametrar.\r\n
\r\n )}\r\n
\r\n )}\r\n\r\n {!activeInput && (\r\n \r\n setHideAc(false)}\r\n onChange={(e) => {\r\n setSearchTerm(e.currentTarget.value);\r\n setInputValue(e.currentTarget.value);\r\n }}\r\n disabled={activeInput}\r\n onKeyPress={updateFromKeyPress}\r\n onKeyDown={(e) => {\r\n updateFromKeyDown(e, inputValue);\r\n }}\r\n />\r\n {filterContext.tags.filter(\r\n (x) =>\r\n x.type !== 'sortType' && x.type !== FilterTypes.AllEstates\r\n ).length > 0 ? (\r\n {\r\n filterContext.setTags([\r\n {\r\n type: FilterTypes.AllEstates,\r\n isChecked: true,\r\n label: 'Alla bostäder',\r\n },\r\n ]);\r\n }}\r\n />\r\n ) : (\r\n \r\n )}\r\n
\r\n )}\r\n
\r\n \r\n {showSearchResults && (\r\n
\r\n \r\n {!!acResults?.municipalities.length && (\r\n
\r\n {acResults.municipalities?.map((x, i) => (\r\n {\r\n updateLocationTags(\r\n 'munici',\r\n `${x.name} (Kommun)`,\r\n x.name\r\n );\r\n setHideAc(true);\r\n setInputValue('');\r\n setSearchTerm('');\r\n focusOnInput();\r\n }}\r\n key={x.name}\r\n text={x.name}\r\n type=\"Kommun\"\r\n handleKeyPress={() => {\r\n updateLocationTags(\r\n 'munici',\r\n `${x.name} (Kommun)`,\r\n x.name\r\n );\r\n setInputValue('');\r\n setSearchTerm('');\r\n focusOnInput();\r\n }}\r\n />\r\n ))}\r\n
\r\n )}\r\n {!!acResults?.areas.length && (\r\n
\r\n {acResults.areas?.map((x, i) => (\r\n {\r\n updateLocationTags(\r\n 'area',\r\n `${x.name} (${x.municipality} kommun)`,\r\n x.id\r\n );\r\n setHideAc(true);\r\n setInputValue('');\r\n setSearchTerm('');\r\n focusOnInput();\r\n }}\r\n key={x.id}\r\n text={x.name}\r\n type={`${x.municipality} kommun`}\r\n handleKeyPress={() => {\r\n updateLocationTags(\r\n 'area',\r\n `${x.name} (${x.municipality} kommun)`,\r\n x.id\r\n );\r\n setInputValue('');\r\n setSearchTerm('');\r\n focusOnInput();\r\n }}\r\n />\r\n ))}\r\n
\r\n )}\r\n {!!acResults?.counties.length && (\r\n
\r\n {acResults.counties?.map((x, i) => (\r\n {\r\n updateLocationTags('county', `${x.name} (Län)`, x.name);\r\n setHideAc(true);\r\n setInputValue('');\r\n setSearchTerm('');\r\n focusOnInput();\r\n }}\r\n key={x.name}\r\n text={x.name}\r\n type=\"Län\"\r\n handleKeyPress={() => {\r\n updateLocationTags('county', `${x.name} (Län)`, x.name);\r\n setInputValue('');\r\n setSearchTerm('');\r\n focusOnInput();\r\n }}\r\n />\r\n ))}\r\n
\r\n )}\r\n {!!acResults?.estates.length && (\r\n <>\r\n

{ForSaleStrings.Estates}

\r\n {acResults.estates?.map(\r\n (x) =>\r\n x.estateType !== EstateType.Commercial &&\r\n x.status !== EstateStatuses.Sold && (\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n )\r\n )}\r\n \r\n )}\r\n
\r\n \r\n )}\r\n {showNoSearchResults && (\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\nexport default SearchField;\r\n","export const TagSelectButton = ({\r\n text,\r\n type,\r\n onClick,\r\n handleKeyPress,\r\n classToChild,\r\n}: {\r\n text: string;\r\n type: string;\r\n onClick(): void;\r\n handleKeyPress(event: any): void;\r\n classToChild?: string;\r\n}): JSX.Element => {\r\n return (\r\n \r\n
\r\n {text} ({type})\r\n
\r\n
\r\n {type !== 'Län' && type !== 'Kommun'\r\n ? 'OMRÅDE'\r\n : type.toLocaleUpperCase()}\r\n
\r\n \r\n );\r\n};\r\n","interface Props {\r\n resetTags(): void;\r\n}\r\n\r\nexport const RemoveFiltersButton = ({ resetTags }: Props): JSX.Element => {\r\n return (\r\n {\r\n resetTags();\r\n }}\r\n >\r\n \r\n \r\n );\r\n};\r\n","import { ReactNode } from 'react';\nimport RemoveFilterImg from './RemoveFilterImg';\n\nconst RemoveFilterBtn = ({\n children,\n index,\n text,\n onClick,\n errorMsg,\n warningMsg,\n}: {\n children?: ReactNode;\n index: number;\n text?: string;\n onClick: () => void;\n errorMsg?: boolean;\n warningMsg?: boolean;\n}): JSX.Element => {\n return (\n \n \n {children ? <>{children} : <>{text}}\n \n \n \n );\n};\nexport default RemoveFilterBtn;\n","const RemoveFilterImg = ({\n onClick,\n}: {\n onClick?: () => void;\n}): JSX.Element => {\n return (\n \n );\n};\nexport default RemoveFilterImg;\n","const SearchFieldBtn = (): JSX.Element => {\n return (\n \n \n \n );\n};\nexport default SearchFieldBtn;\n","import { useQuery } from '@tanstack/react-query';\nimport { SearchService } from '../../services/generatedApi';\n\nconst useAutocomplete = (freetext: string) => {\n return useQuery(\n ['freetext', freetext],\n () =>\n SearchService.searchAutoComplete(freetext).then((response) => response),\n {\n enabled: !!freetext,\n retry: 0,\n keepPreviousData: true,\n refetchOnWindowFocus: false,\n cacheTime: 1000 * 5 * 60,\n staleTime: 1000 * 5 * 60,\n }\n );\n};\n\nexport default useAutocomplete;\n","module.exports = Promise.all([require(\"./helpers/browser/js-loader\")(require('./helpers/bundle-manifest').resolve(\"cCZ7C\")), require(\"./helpers/browser/js-loader\")(require('./helpers/bundle-manifest').resolve(\"3detd\"))]).then(() => parcelRequire('3q65I'));","import { useContext, useEffect, useState } from 'react';\nimport { Estates } from '~js/React/Enums';\nimport { ForSaleBrokerContext } from '~js/React/pages/Context/ForSaleBrokerContext';\n\nconst CreateSearchProfileBtn = ({\n setShowHideModalFunction,\n isScrollOverHeadline = false,\n sessionId,\n}: {\n setShowHideModalFunction(val: boolean): void;\n sessionId?: string;\n isScrollOverHeadline?: boolean;\n}): JSX.Element => {\n const { isAuthorizedBroker, setShowErrorForSale } =\n useContext(ForSaleBrokerContext);\n const [bottomPos, setBottomPos] = useState('bottom-[-4rem]');\n\n useEffect(() => {\n const handleScroll = () => {\n const scrollPosition = window.scrollY || window.pageYOffset;\n if (window.innerWidth < 1024 && scrollPosition > 450) {\n if (bottomPos != 'bottom-4') {\n setBottomPos('bottom-4');\n } else {\n setBottomPos('bottom-[-4rem]');\n }\n } else {\n setBottomPos('bottom-[-4rem]');\n }\n };\n\n window.addEventListener('scroll', handleScroll);\n return () => {\n window.removeEventListener('scroll', handleScroll);\n };\n }, []);\n return (\n \n {\n isAuthorizedBroker && sessionId != null\n ? setShowErrorForSale(true)\n : setShowHideModalFunction(true);\n }}\n >\n {Estates.CreateSearchProfile}\n \n \n \n );\n};\nexport default CreateSearchProfileBtn;\n","module.exports = Promise.all([require(\"./helpers/browser/js-loader\")(require('./helpers/bundle-manifest').resolve(\"eyd9t\")), require(\"./helpers/browser/js-loader\")(require('./helpers/bundle-manifest').resolve(\"jedBR\"))]).then(() => parcelRequire('lmTo9'));","module.exports = (require(\"./helpers/browser/js-loader\")(require('./helpers/bundle-manifest').resolve(\"gOafK\"))).then(() => parcelRequire('fPMhU'));","module.exports = Promise.all([require(\"./helpers/browser/js-loader\")(require('./helpers/bundle-manifest').resolve(\"cCZ7C\")), require(\"./helpers/browser/js-loader\")(require('./helpers/bundle-manifest').resolve(\"3detd\")), require(\"./helpers/browser/js-loader\")(require('./helpers/bundle-manifest').resolve(\"cWuXQ\"))]).then(() => parcelRequire('ccRjs'));","module.exports = Promise.all([require(\"./helpers/browser/js-loader\")(require('./helpers/bundle-manifest').resolve(\"5iq3S\")), require(\"./helpers/browser/js-loader\")(require('./helpers/bundle-manifest').resolve(\"fxy8V\")), require(\"./helpers/browser/js-loader\")(require('./helpers/bundle-manifest').resolve(\"74Z0M\")), require(\"./helpers/browser/js-loader\")(require('./helpers/bundle-manifest').resolve(\"iDs0B\"))]).then(() => parcelRequire('hSBVu'));"],"names":["$parcel$defineInteropFlag","a","Object","defineProperty","value","configurable","$parcel$export","e","n","v","s","get","set","enumerable","parcelRequire","$parcel$global","globalThis","self","window","global","parcelRegister","register","module","exports","$f93b2727744a1dda$export$2e2bcd8739ae039","$a9eYm","$awtH3","$54mKn","$4Xjp8","stickyTitle","stickyText","jsx","BrowserRouter","basename","children","Routes","Route","path","element","className","ForSaleComponentInner","$b13d38dcc4f5cbf0$export$5783d03d8957aabb","$dTCkE","$a1uyt","$22cn8","$l8eky","$jfnuU","$1A7pc","$60LpM","$67EyS","$cUbQm","$1QzIr","$5jxwZ","$lcDRl","$b13d38dcc4f5cbf0$var$FilterEstatesComponent","lazy","$b13d38dcc4f5cbf0$var$SEOHeadingComponent","$b13d38dcc4f5cbf0$var$ObjectListComponent","$b13d38dcc4f5cbf0$var$MonitorSearchFormForSalePage","tags","setTags","useState","visibleExtraCrits","setVisibleExtraCrits","isAuthorizedBroker","setIsAuthorizedBroker","showErrorForSale","setShowErrorForSale","badFarmCombo","setBadFarmCombo","missingSearchParams","setMissingSearchParams","forbiddenEstateType","setForbiddenEstateType","scrollLockUntilTagChange","useRef","filterItemClicked","useParams","sessionId","getSessionId","data","user","default","isBigScreen","isMediumScreen","isSmallScreen","showHideModal","setShowHideModal","objectListLayout","setObjectListLayout","useEffect","loginType","__esModule","current","searchFilter","filterToQuerystring","currentUrl","location","href","viewSetting","indexOf","ObjectListLayout","Map","Row","history","replaceState","$b13d38dcc4f5cbf0$var$basename","length","type","FilterTypes","AllEstates","isChecked","label","existingTags","find","x","allEstates","undefined","map","callback","setTimeout","estateType","getFilterFromPath","then","getFilterFromQueryParams","ForSaleBrokerContext","Provider","jsxs","FilterContext","newTags","Suspense","stickyField","inputLabel","Estates","SearchPlaceholder","activeInput","countySelected","multipleEstateTypesSelected","brokerOrOfficeTypesSelected","commercialOrProject","fallback","SearchFieldFallback","setShowHideModalFunction","open","hasAllReqParamsToSave","forBiddenEstateTypes","HelmetProvider","Helmet","$4b20ca3b8bdd5e3d$export$c4754ec34da4974d","createContext","factory","assign","target","i","arguments","source","key","init","converter","defaultAttributes","name","attributes","document","expires","Date","now","toUTCString","encodeURIComponent","replace","decodeURIComponent","escape","stringifiedAttributes","attributeName","split","cookie","write","create","cookies","jar","parts","slice","join","found","read","remove","withAttributes","withConverter","freeze","$3a2a085f4d14c4e3$export$e21ccb11fb11305c","$3a2a085f4d14c4e3$export$81fb3fd77062e5ad","$3a2a085f4d14c4e3$export$152247e07967bd8f","$3a2a085f4d14c4e3$export$3f6d48775dbb7b16","$515ZP","$5J7FU","params","URLSearchParams","search","estateTypeParam","FilterParams","ESTATETYPE_PARAM","forEach","push","municiParam","MUNICI_PARAM","municipality","id","countyParam","COUNTY_PARAM","county","areaParam","AREA_PARAM","areaNames","area","areaNameFromQP","extraCriteriaParam","EXTRACRITERIA_PARAM","criteriaName","getExtraSearchCriteriaName","criteriaResp","ExtraCriterias","text","fromheadStartQuery","HEADSTART_PARAM","BROKERID_PARAM","CUSTOMERID_PARAM","fromSoldQuery","SOLD_PARAM","alignmentsParam","ALIGNMENT_PARAM","brokerParam","brokerName","getBrokerName","officeParam","officeName","getOfficeName","greenEstateParam","GREENESTATES_PARAM","ServicesTitles","GreenEstate","biddingParam","BIDDING_PARAM","ForSaleStrings","BiddingShort","sortParam","SORT_PARAM","SortType","parseInt","PRICEMIN_PARAM","PRICEMAX_PARAM","priceMinParam","Number","priceMaxParam","RangeTagNames","Price","minVal","maxVal","ROOMMIN_PARAM","ROOMMAX_PARAM","roomMinParam","roomMaxParam","Room","LIVINGSPACEMIN_PARAM","LIVINGSPACEMAX_PARAM","livingSpaceMinParam","livingSpaceMaxParam","LivingSpace","MONTHLYCOSTMIN_PARAM","MONTHLYCOSTMAX_PARAM","monthlyCostMinParam","monthlyCostMaxParam","Charge","PLOTAREAMIN_PARAM","PLOTAREAMAX_PARAM","plotAreaMinParam","plotAreaMaxParam","PlotArea","filter","page","myPagesCheck","filtersStrings","some","encodeURI","cameledArea","makeCamelCase","withoutDashes","muni","cameledMunici","getMunicipalityTag","cameledCounty","getCountyTag","prettyEstateTypeName","$3a2a085f4d14c4e3$var$replaceAt","cameledEstateType","ShowGreenEstates","myString","index","replacement","substr","$faac5a7a58925656$export$e9ddf1da8d18d6f","$faac5a7a58925656$export$ad8fbf1335de6218","$faac5a7a58925656$export$8e6d207ebd320889","$faac5a7a58925656$export$e7fc2f87021c4f26","$faac5a7a58925656$export$35cd3e25af2ef930","$faac5a7a58925656$export$930ee366b3d03280","$faac5a7a58925656$export$cebb9be7766a1779","$faac5a7a58925656$export$f953ee8ad3c2f078","$faac5a7a58925656$export$cfa44af66bbf621d","$faac5a7a58925656$export$1c959a0887934c9","$faac5a7a58925656$export$b4f8909e2e1b029f","$faac5a7a58925656$export$c2f02f2cdcb26bb4","$faac5a7a58925656$export$c5edcf354e7951a6","$faac5a7a58925656$export$41378c6a48631b14","$faac5a7a58925656$export$23160db3718428b9","$faac5a7a58925656$export$5b598e839c07c5f4","$faac5a7a58925656$export$e05d5ef9aa09290e","$faac5a7a58925656$export$c7312eab72c6dcef","$faac5a7a58925656$export$f9dd191eee96b121","$faac5a7a58925656$export$4905b08d33ae334f","$faac5a7a58925656$export$8da75b13c89971e6","$faac5a7a58925656$export$ac86386cf209f951","$faac5a7a58925656$export$1f48879c04f44a0f","$faac5a7a58925656$export$9593ca3a476838b5","$faac5a7a58925656$export$64e4b188c77435e6","$faac5a7a58925656$export$ebe451eb84baa5b8","$faac5a7a58925656$export$cc20294e6e95aa8","$faac5a7a58925656$export$1c33aa1c52378f0","$faac5a7a58925656$export$90b486e772451dd","origin","brokerId","response","fetch","json","customerId","ssn","tag","estateId","SAVE_URL","GET_URL","userId","query","method","headers","Accept","body","JSON","stringify","ok","setError","message","$99df1cd5eac2d33b$export$bcfdb61b9eaf9a50","$6b90f5fe43eab46e$export$2e2bcd8739ae039","$4cyLg","$1HGFx","useQuery","UserService","userGetContactId","enabled","$f3b70b6a0c62ea8f$export$8a6fc59e3803f1c2","$bGu79","filteredEstateTypes","values","EstateType","OwnedApartment","Premises","EstateSelectorFallback","$27ecb7bec8d01a47$export$c54c06577835e812","$23722fec40a37891$export$2e2bcd8739ae039","matches","setMatches","media","matchMedia","listener","addEventListener","removeEventListener","$9f730acaadd400cc$export$2e2bcd8739ae039","$lkmZP","$4VgqT","$dNouV","$lfpe5","$dEQYx","$c0xNe","$8IDY3","$9f730acaadd400cc$var$EstateCardContent","filterContext","useContext","searchTerm","setSearchTerm","inputValue","setInputValue","debouncedSearchTerm","useDebounce","acResults","setACResults","showSearchResults","setShowSearchResults","showNoSearchResults","setShowNoSearchResults","freetext","setFreetext","ref","hideAC","setHideAc","resp","useOnClickOutside","escPressed","useKeyPress","updateLocationTags","updateEstateTypeTags","existingFarmTag","Agriculture","filteredArray","Alignment","updateStatusTags","handleUpAndDown","trim","shouldShowSearchResults","shouldShowNoSearchResults","el","querySelector","observer","IntersectionObserver","shouldAddClasses","intersectionRatio","classList","toggle","threshold","observe","County","Municipality","Area","onClick","warningMsg","errorMsg","RangeTag","Fragment","formatLargeNumbers","ExtraCritera","Broker","Office","keys","ShowBidding","ShowOnlyHeadStart","Status","headStartPlural","ShowSold","sold","placeholder","autoComplete","onChange","currentTarget","disabled","onKeyPress","event","municipalities","areas","counties","onKeyDown","updateFromKeyDown","currentInputValue","listFreeFromShowOnly","itemToCheckForRemove","RemoveFiltersButton","resetTags","TagSelectButton","classToChild","focusOnInput","handleKeyPress","estates","Commercial","status","EstateStatuses","Sold","url","src","headerImage","alt","streetAddress","loading","estate","$ae60f4327886f8c3$export$f6030b00520bd4d4","tabIndex","toLocaleUpperCase","$8fafa9a27398bc11$export$a4c8ca1b6343dfe9","title","width","height","$955ee5977b40e142$export$2e2bcd8739ae039","$jseYg","$81881f49c45b8c39$export$2e2bcd8739ae039","$e437ca0a10d5905f$export$2e2bcd8739ae039","$39fd1f118f25a738$export$2e2bcd8739ae039","SearchService","searchAutoComplete","retry","keepPreviousData","refetchOnWindowFocus","cacheTime","staleTime","Promise","all","resolve","$04e99f6d1e4cad74$export$2e2bcd8739ae039","isScrollOverHeadline","bottomPos","setBottomPos","handleScroll","scrollPosition","scrollY","pageYOffset","innerWidth","CreateSearchProfile"],"version":3,"file":"ForSaleComponent.5a4ecf9d.js.map"}