import{l as ge,e as be,S as ve,E,A as xe,D as _e,m as I,n as Ee,p as U,k as ke,r as Re,q as Se,s as Le,t as je,v as Ce,R as Ae,w as Me,j as V,__tla as Te}from"./components-CM65SDfl.js";import*as l from"https://assets.finn.no/npm/react/v18/react.production.min.js";import{StrictMode as Fe}from"https://assets.finn.no/npm/react/v18/react.production.min.js";import{hydrate as De}from"https://assets.finn.no/npm/react-dom/v18/react-dom.production.js";import{i as Y}from"./index-CHh6ZbDQ.js";Promise.all([(()=>{try{return Te}catch{}})()]).then(async()=>{function J(e,t=globalThis.document){return e?t.documentElement.getAttribute(e):null}function G(...e){for(let t=0;t<e.length;t++){const r=typeof e[t]=="function"?e[t]():e[t];if(r)return r}return null}class W extends l.Component{constructor(t){super(t),this.state={error:t.error||null,location:t.location}}static getDerivedStateFromError(t){return{error:t}}static getDerivedStateFromProps(t,r){return r.location!==t.location?{error:t.error||null,location:t.location}:{error:t.error||r.error,location:r.location}}render(){return this.state.error?l.createElement(F,{error:this.state.error}):this.props.children}}function F({error:e}){console.error(e);let t=l.createElement("script",{dangerouslySetInnerHTML:{__html:`
        console.log(
          "\u{1F4BF} Hey developer \u{1F44B}. You can provide a way better UX than this when your app throws errors. Check out https://remix.run/guides/errors for more information."
        );
      `}});if(ge(e))return l.createElement(k,{title:"Unhandled Thrown Response!"},l.createElement("h1",{style:{fontSize:"24px"}},e.status," ",e.statusText),t);let r;if(e instanceof Error)r=e;else{let n=e==null?"Unknown Error":typeof e=="object"&&"toString"in e?e.toString():JSON.stringify(e);r=new Error(n)}return l.createElement(k,{title:"Application Error!"},l.createElement("h1",{style:{fontSize:"24px"}},"Application Error"),l.createElement("pre",{style:{padding:"2rem",background:"hsla(10, 50%, 50%, 0.1)",color:"red",overflow:"auto"}},r.stack),t)}function k({title:e,renderScripts:t,children:r}){var n;let{routeModules:a}=be();return(n=a.root)!==null&&n!==void 0&&n.Layout?r:l.createElement("html",{lang:"en"},l.createElement("head",null,l.createElement("meta",{charSet:"utf-8"}),l.createElement("meta",{name:"viewport",content:"width=device-width,initial-scale=1,viewport-fit=cover"}),l.createElement("title",null,e)),l.createElement("body",null,l.createElement("main",{style:{fontFamily:"system-ui, sans-serif",padding:"2rem"}},r,t?l.createElement(ve,null):null)))}function K(e){if(!e)return null;let t=Object.entries(e),r={};for(let[n,a]of t)if(a&&a.__type==="RouteErrorResponse")r[n]=new E(a.status,a.statusText,a.data,a.internal===!0);else if(a&&a.__type==="Error"){if(a.__subType){let s=window[a.__subType];if(typeof s=="function")try{let d=new s(a.message);d.stack=a.stack,r[n]=d}catch{}}if(r[n]==null){let s=new Error(a.message);s.stack=a.stack,r[n]=s}}else r[n]=a;return r}function Q(e){return e.headers.get("X-Remix-Catch")!=null}function Z(e){return e.headers.get("X-Remix-Error")!=null}function ee(e){return D(e)&&e.status>=400&&e.headers.get("X-Remix-Error")==null&&e.headers.get("X-Remix-Catch")==null&&e.headers.get("X-Remix-Response")==null}function te(e){return e.headers.get("X-Remix-Redirect")!=null}function re(e){var t;return!!((t=e.headers.get("Content-Type"))!==null&&t!==void 0&&t.match(/text\/remix-deferred/))}function D(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.headers=="object"&&typeof e.body<"u"}function ae(e){let t=e;return t&&typeof t=="object"&&typeof t.data=="object"&&typeof t.subscribe=="function"&&typeof t.cancel=="function"&&typeof t.resolveData=="function"}async function P(e,t,r=0){let n=new URL(e.url);n.searchParams.set("_data",t);let a={signal:e.signal};if(e.method!=="GET"){a.method=e.method;let i=e.headers.get("Content-Type");i&&/\bapplication\/json\b/.test(i)?(a.headers={"Content-Type":i},a.body=JSON.stringify(await e.json())):i&&/\btext\/plain\b/.test(i)?(a.headers={"Content-Type":i},a.body=await e.text()):i&&/\bapplication\/x-www-form-urlencoded\b/.test(i)?a.body=new URLSearchParams(await e.text()):a.body=await e.formData()}r>0&&await new Promise(i=>setTimeout(i,5**r*10));let s=window.__remixRevalidation,d=await fetch(n.href,a).catch(i=>{if(typeof s=="number"&&s===window.__remixRevalidation&&(i==null?void 0:i.name)==="TypeError"&&r<3)return P(e,t,r+1);throw i});if(Z(d)){let i=await d.json(),o=new Error(i.message);return o.stack=i.stack,o}if(ee(d)){let i=await d.text(),o=new Error(i);return o.stack=void 0,o}return d}const ne="__deferred_promise:";async function oe(e){if(!e)throw new Error("parseDeferredReadableStream requires stream argument");let t,r={};try{let n=ie(e),a=(await n.next()).value;if(!a)throw new Error("no critical data");let s=JSON.parse(a);if(typeof s=="object"&&s!==null)for(let[d,i]of Object.entries(s))typeof i!="string"||!i.startsWith(ne)||(t=t||{},t[d]=new Promise((o,u)=>{r[d]={resolve:m=>{o(m),delete r[d]},reject:m=>{u(m),delete r[d]}}}));return(async()=>{try{for await(let d of n){let[i,...o]=d.split(":"),u=o.join(":"),m=JSON.parse(u);if(i==="data")for(let[p,w]of Object.entries(m))r[p]&&r[p].resolve(w);else if(i==="error")for(let[p,w]of Object.entries(m)){let c=new Error(w.message);c.stack=w.stack,r[p]&&r[p].reject(c)}}for(let[d,i]of Object.entries(r))i.reject(new xe(`Deferred ${d} will never be resolved`))}catch(d){for(let i of Object.values(r))i.reject(d)}})(),new _e({...s,...t})}catch(n){for(let a of Object.values(r))a.reject(n);throw n}}async function*ie(e){let t=e.getReader(),r=[],n=[],a=!1,s=new TextEncoder,d=new TextDecoder,i=async()=>{if(n.length>0)return n.shift();for(;!a&&n.length===0;){let u=await t.read();if(u.done){a=!0;break}r.push(u.value);try{let m=d.decode(O(...r)).split(`

`);if(m.length>=2&&(n.push(...m.slice(0,-1)),r=[s.encode(m.slice(-1).join(`

`))]),n.length>0)break}catch{continue}}return n.length>0||r.length>0&&(n=d.decode(O(...r)).split(`

`).filter(u=>u),r=[]),n.shift()},o=await i();for(;o;)yield o,o=await i()}function O(...e){let t=new Uint8Array(e.reduce((n,a)=>n+a.length,0)),r=0;for(let n of e)t.set(n,r),r+=n.length;return t}function le(){return l.createElement(k,{title:"Loading...",renderScripts:!0},l.createElement("script",{dangerouslySetInnerHTML:{__html:`
              console.log(
                "\u{1F4BF} Hey developer \u{1F44B}. You can provide a way better UX than this " +
                "when your app is running \`clientLoader\` functions on hydration. " +
                "Check out https://remix.run/route/hydrate-fallback for more information."
              );
            `}}))}function B(e){let t={};return Object.values(e).forEach(r=>{let n=r.parentId||"";t[n]||(t[n]=[]),t[n].push(r)}),t}function se(e,t,r){let n=N(t),a=t.HydrateFallback&&(!r||e.id==="root")?t.HydrateFallback:e.id==="root"?le:void 0,s=t.ErrorBoundary?t.ErrorBoundary:e.id==="root"?()=>l.createElement(F,{error:ke()}):void 0;return e.id==="root"&&t.Layout?{...n?{element:l.createElement(t.Layout,null,l.createElement(n,null))}:{Component:n},...s?{errorElement:l.createElement(t.Layout,null,l.createElement(s,null))}:{ErrorBoundary:s},...a?{hydrateFallbackElement:l.createElement(t.Layout,null,l.createElement(a,null))}:{HydrateFallback:a}}:{Component:n,ErrorBoundary:s,HydrateFallback:a}}function de(e,t,r,n,a,s){return S(t,r,n,a,s,"",B(t),e)}function x(e,t,r){if(r){let a=`You cannot call ${e==="action"?"serverAction()":"serverLoader()"} in SPA Mode (routeId: "${t.id}")`;throw console.error(a),new E(400,"Bad Request",new Error(a),!0)}let n=`You are trying to call ${e==="action"?"serverAction()":"serverLoader()"} on a route that does not have a server ${e} (routeId: "${t.id}")`;if(e==="loader"&&!t.hasLoader||e==="action"&&!t.hasAction)throw console.error(n),new E(400,"Bad Request",new Error(n),!0)}function R(e,t){let r=e==="clientAction"?"a":"an",n=`Route "${t}" does not have ${r} ${e}, but you are trying to submit to it. To fix this, please add ${r} \`${e}\` function to the route`;throw console.error(n),new E(405,"Method Not Allowed",new Error(n),!0)}function S(e,t,r,n,a,s="",d=B(e),i){return(d[s]||[]).map(o=>{let u=t[o.id];async function m(f){return o.hasLoader?H(f,o):null}async function p(f){if(!o.hasAction)throw R("action",o.id);return H(f,o)}async function w(f){let h=t[o.id],b=h?U(o,h):Promise.resolve();try{return f()}finally{await b}}let c={id:o.id,index:o.index,path:o.path};if(u){var C,A,M;Object.assign(c,{...c,...se(o,u,a),handle:u.handle,shouldRevalidate:i?X(o.id,u.shouldRevalidate,i):u.shouldRevalidate});let f=r==null||(C=r.loaderData)===null||C===void 0?void 0:C[o.id],h=r==null||(A=r.errors)===null||A===void 0?void 0:A[o.id],b=i==null&&(((M=u.clientLoader)===null||M===void 0?void 0:M.hydrate)===!0||!o.hasLoader);c.loader=async({request:y,params:v})=>{try{return await w(async()=>(I(u,"No `routeModule` available for critical-route loader"),u.clientLoader?u.clientLoader({request:y,params:v,async serverLoader(){if(x("loader",o,a),b){if(h!==void 0)throw h;return f}let T=await m(y);return await _(T)}}):a?null:m(y)))}finally{b=!1}},c.loader.hydrate=$(o,u,a),c.action=({request:y,params:v})=>w(async()=>{if(I(u,"No `routeModule` available for critical-route action"),!u.clientAction){if(a)throw R("clientAction",o.id);return p(y)}return u.clientAction({request:y,params:v,async serverAction(){x("action",o,a);let T=await p(y);return await _(T)}})})}else o.hasClientLoader||(c.loader=({request:f})=>w(()=>a?Promise.resolve(null):m(f))),o.hasClientAction||(c.action=({request:f})=>w(()=>{if(a)throw R("clientAction",o.id);return p(f)})),c.lazy=async()=>{let f=await ue(o,t),h={...f};if(f.clientLoader){let b=f.clientLoader;h.loader=y=>b({...y,async serverLoader(){x("loader",o,a);let v=await m(y.request);return await _(v)}})}if(f.clientAction){let b=f.clientAction;h.action=y=>b({...y,async serverAction(){x("action",o,a);let v=await p(y.request);return await _(v)}})}return i&&(h.shouldRevalidate=X(o.id,f.shouldRevalidate,i)),{...h.loader?{loader:h.loader}:{},...h.action?{action:h.action}:{},hasErrorBoundary:h.hasErrorBoundary,shouldRevalidate:h.shouldRevalidate,handle:h.handle,Component:h.Component,ErrorBoundary:h.ErrorBoundary}};let z=S(e,t,r,n,a,o.id,d,i);return z.length>0&&(c.children=z),c})}function X(e,t,r){let n=!1;return a=>n?t?t(a):a.defaultShouldRevalidate:(n=!0,r.has(e))}async function ue(e,t){let r=await Ee(e,t);return await U(e,r),{Component:N(r),ErrorBoundary:r.ErrorBoundary,clientAction:r.clientAction,clientLoader:r.clientLoader,handle:r.handle,links:r.links,meta:r.meta,shouldRevalidate:r.shouldRevalidate}}async function H(e,t){let r=await P(e,t.id);if(r instanceof Error)throw r;if(te(r))throw ce(r);if(Q(r))throw r;return re(r)&&r.body?await oe(r.body):r}function _(e){if(ae(e))return e.data;if(D(e)){let t=e.headers.get("Content-Type");return t&&/\bapplication\/json\b/.test(t)?e.json():e.text()}return e}function ce(e){let t=parseInt(e.headers.get("X-Remix-Status"),10)||302,r=e.headers.get("X-Remix-Redirect"),n={},a=e.headers.get("X-Remix-Revalidate");a&&(n["X-Remix-Revalidate"]=a);let s=e.headers.get("X-Remix-Reload-Document");return s&&(n["X-Remix-Reload-Document"]=s),Re(r,{status:t,headers:n})}function N(e){if(e.default!=null&&!(typeof e.default=="object"&&Object.keys(e.default).length===0))return e.default}function $(e,t,r){return r&&e.id!=="root"||t.clientLoader!=null&&(t.clientLoader.hydrate===!0||e.hasLoader!==!0)}let g,L=!1,j,Pe=new Promise(e=>{j=e}).catch(()=>{});function fe(e){if(!g){let s=window.__remixContext.url,d=window.location.pathname;if(s!==d&&!window.__remixContext.isSpaMode){let u=`Initial URL (${s}) does not match URL at time of hydration (${d}), reloading page...`;return console.error(u),window.location.reload(),l.createElement(l.Fragment,null)}let i=S(window.__remixManifest.routes,window.__remixRouteModules,window.__remixContext.state,window.__remixContext.future,window.__remixContext.isSpaMode),o;if(!window.__remixContext.isSpaMode){o={...window.__remixContext.state,loaderData:{...window.__remixContext.state.loaderData}};let u=Se(i,window.location);if(u)for(let m of u){let p=m.route.id,w=window.__remixRouteModules[p],c=window.__remixManifest.routes[p];w&&$(c,w,window.__remixContext.isSpaMode)&&(w.HydrateFallback||!c.hasLoader)?o.loaderData[p]=void 0:c&&!c.hasLoader&&(o.loaderData[p]=null)}o&&o.errors&&(o.errors=K(o.errors))}g=Le({routes:i,history:je(),basename:window.__remixContext.basename,future:{v7_normalizeFormMethod:!0,v7_fetcherPersist:window.__remixContext.future.v3_fetcherPersist,v7_partialHydration:!0,v7_prependBasename:!0,v7_relativeSplatPath:window.__remixContext.future.v3_relativeSplatPath},hydrationData:o,mapRouteProperties:Ce}),g.state.initialized&&(L=!0,g.initialize()),g.createRoutesForHMR=de,window.__remixRouter=g,j&&j(g)}let[t,r]=l.useState(void 0),[n,a]=l.useState(g.state.location);return l.useLayoutEffect(()=>{L||(L=!0,g.initialize())},[]),l.useLayoutEffect(()=>g.subscribe(s=>{s.location!==n&&a(s.location)}),[n]),l.createElement(Ae.Provider,{value:{manifest:window.__remixManifest,routeModules:window.__remixRouteModules,future:window.__remixContext.future,criticalCss:t,isSpaMode:window.__remixContext.isSpaMode}},l.createElement(W,{location:n},l.createElement(Me,{router:g,fallbackElement:null,future:{v7_startTransition:!0}})))}const he=JSON.parse(`{"label.mapLayers.map":"Kart","label.mapLayers.ortho":"Flyfoto","label.mapLayers.hybrid":"Hybrid","button.changeMapLayer.title":"Endre kartlag","button.changeMapLayer.ariaLabel":"Endre kartlag","img.image-gallery.no-photos":"Mangler bilder","button.image-gallery-large-photos-view.close-large-photos":"Lukk store bilder","button.image-gallery.big-images":"Store bilder","button.image-gallery.overview":"Oversikt","span.old-browser-not-supported.redirect-message":["Du bruker en gammel nettleser som ikke st\xF8tter denne gallerivisningen. Du kan se alle bildene i ",["fallbackUrl"],"."],"a.old-browser-not-supported.redirect-link":"bildegalleriet","kbd.aria-label.arrow-left":"Pil venstre","kbd.aria-label.arrow-right":"Pil h\xF8yre","p.image-gallery.navigation-explanation":["Trykk p\xE5 ",["spaceIcon"]," for \xE5 bytte mellom oversikt og store bilder. ",["leftArrowIcon"]," ",["rightArrowIcon"]," for \xE5 surfe og ",["escapeIcon"]," for \xE5 avslutte."],"button.image-gallery.display-previous-photo":"Vis forrige bilde","button.image-gallery.display-next-photo":"Vis neste bilde","img.gallery-image.alt-text":"Galleribilde","saved-search.update.error":"An error occurred while updating the search. Try again later.","shippable-items.body":"But don't worry, there are more items available with shipping from all over the country.","saved-search.login.cancel":"Cancel","saved-search.update.cancel":"Cancel","saved-search.login.create-account":"Create account","results.new-saved-search.button":"Create saved search","results.new-saved-search.heading":"Do you want to be notified when new hits appears in this search?","shippable-items-results.heading":"From the rest of the country","saved-search.login.login":"Log in","results.zero-results.alt-text":"No ads found","saved-search.update.save-new":"Save as new search","saved-search.update.save-changes":"Save changes","results.zero-results.button-label":"Save search","saved-search.title":"Save search","shippable-items-results.see-all":"See all","shippable-items.see-all-button":"See all Ship it ads","shippable-items.heading":"That was all we found in your selected area","results.zero-results.information":"We cannot find the product you are looking for, it may already be sold. Would you like to be notified when there are new hits for this search?","breadcrumbs.you-are-here":"You are here","saved-search.update.modified.no":"You have already saved this search named","saved-search.update.modified.yes":"You have made changes to this saved search","saved-search.update.success":"Your search was updated!","filters.range.invalid":"\xABFra\xBB-verdien m\xE5 v\xE6re lavere enn \xABTil\xBB-verdien.","results.status":[["count"]," resultater"],"filters.range.maximum.label":[["filterName"],", maksimum"],"filters.range.minimum.label":[["filterName"],", minimum"],"results.ad":"annonse","results.ads":"annonser","filters.category.all-categories":"Alle kategorier","saved-search.render.error":"Det oppsto en feil under henting av det lagrede s\xF8ket ditt.","filters.mobile.open":"Filtrer","filters.mobile.heading":"Filtrer s\xF8ket","filters.desktop.heading":"Filtre","filters.range.minimum.help":["Fra ",["unit"]],"results.end-of-paging.description":"Snevre inn s\xF8ket for \xE5 bla gjennom flere annonser.","results.zero-results.heading":"Her var det tomt, gitt!","results.end-of-paging.heading":"Oi! Vi klarte ikke \xE5 laste inn flere annonser.","filters.selected.reset":"Fjern alle filtre","filters.selected.remove":"Fjern filter","filters.mobile.reset":"Nullstill","results.count":"treff","results.results-in":"treff i","saved-search.button.open":"Lagre s\xF8k","filters.button.search":"S\xF8k","filters.range.button.search":"S\xF8k","filters.mobile.close":["Vis ",["count"]," treff"],"filters.popular.expand":"Vis alle","filters.popular.collapse":"Vis f\xE6rre","filters.selected.show":"Vis filter","results.link-to-map":"Vis p\xE5 kart","skiplink.skip-to-filters":"G\xE5 til filtre","skiplink.skip-to-results":"G\xE5 til resultat","sorting.label":"Sorter etter","sorting.closest.failed":"Sortering etter \xABN\xE6rmest\xBB mislyktes","filters.range.maximum.help":["Til ",["unit"]]}`),q="nb";function me(){Y.load({nb:he})}function pe(e){Y.activate(e)}async function we(e){me(),pe(e)}const ye=G(J("lang"),q);await we(ye||q),De(V.jsx(Fe,{children:V.jsx(fe,{})}),document)});
