with [state]\n } else if ('string' === typeof path) {\n this['string' === typeof fn ? 'redirect' : 'show'](path, fn);\n // start [options]\n } else {\n this.start(path);\n }\n }\n\n /**\n * Unhandled `ctx`. When it's not the initial\n * popstate then redirect. If you wish to handle\n * 404s on your own use `page('*', callback)`.\n *\n * @param {Context} ctx\n * @api private\n */\n function unhandled(ctx) {\n if (ctx.handled) return;\n var current;\n var page = this;\n var window = page._window;\n\n if (page._hashbang) {\n current = isLocation && this._getBase() + window.location.hash.replace('#!', '');\n } else {\n current = isLocation && window.location.pathname + window.location.search;\n }\n\n if (current === ctx.canonicalPath) return;\n page.stop();\n ctx.handled = false;\n isLocation && (window.location.href = ctx.canonicalPath);\n }\n\n /**\n * Escapes RegExp characters in the given string.\n *\n * @param {string} s\n * @api private\n */\n function escapeRegExp(s) {\n return s.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, '\\\\$1');\n }\n\n /**\n * Initialize a new \"request\" `Context`\n * with the given `path` and optional initial `state`.\n *\n * @constructor\n * @param {string} path\n * @param {Object=} state\n * @api public\n */\n\n function Context(path, state, pageInstance) {\n var _page = this.page = pageInstance || page;\n var window = _page._window;\n var hashbang = _page._hashbang;\n\n var pageBase = _page._getBase();\n if ('/' === path[0] && 0 !== path.indexOf(pageBase)) path = pageBase + (hashbang ? '#!' : '') + path;\n var i = path.indexOf('?');\n\n this.canonicalPath = path;\n var re = new RegExp('^' + escapeRegExp(pageBase));\n this.path = path.replace(re, '') || '/';\n if (hashbang) this.path = this.path.replace('#!', '') || '/';\n\n this.title = (hasDocument && window.document.title);\n this.state = state || {};\n this.state.path = path;\n this.querystring = ~i ? _page._decodeURLEncodedURIComponent(path.slice(i + 1)) : '';\n this.pathname = _page._decodeURLEncodedURIComponent(~i ? path.slice(0, i) : path);\n this.params = {};\n\n // fragment\n this.hash = '';\n if (!hashbang) {\n if (!~this.path.indexOf('#')) return;\n var parts = this.path.split('#');\n this.path = this.pathname = parts[0];\n this.hash = _page._decodeURLEncodedURIComponent(parts[1]) || '';\n this.querystring = this.querystring.split('#')[0];\n }\n }\n\n /**\n * Push state.\n *\n * @api private\n */\n\n Context.prototype.pushState = function() {\n var page = this.page;\n var window = page._window;\n var hashbang = page._hashbang;\n\n page.len++;\n if (hasHistory) {\n window.history.pushState(this.state, this.title,\n hashbang && this.path !== '/' ? '#!' + this.path : this.canonicalPath);\n }\n };\n\n /**\n * Save the context state.\n *\n * @api public\n */\n\n Context.prototype.save = function() {\n var page = this.page;\n if (hasHistory) {\n page._window.history.replaceState(this.state, this.title,\n page._hashbang && this.path !== '/' ? '#!' + this.path : this.canonicalPath);\n }\n };\n\n /**\n * Initialize `Route` with the given HTTP `path`,\n * and an array of `callbacks` and `options`.\n *\n * Options:\n *\n * - `sensitive` enable case-sensitive routes\n * - `strict` enable strict matching for trailing slashes\n *\n * @constructor\n * @param {string} path\n * @param {Object=} options\n * @api private\n */\n\n function Route(path, options, page) {\n var _page = this.page = page || globalPage;\n var opts = options || {};\n opts.strict = opts.strict || _page._strict;\n this.path = (path === '*') ? '(.*)' : path;\n this.method = 'GET';\n this.regexp = pathToRegexp_1(this.path, this.keys = [], opts);\n }\n\n /**\n * Return route middleware with\n * the given callback `fn()`.\n *\n * @param {Function} fn\n * @return {Function}\n * @api public\n */\n\n Route.prototype.middleware = function(fn) {\n var self = this;\n return function(ctx, next) {\n if (self.match(ctx.path, ctx.params)) {\n ctx.routePath = self.path;\n return fn(ctx, next);\n }\n next();\n };\n };\n\n /**\n * Check if this route matches `path`, if so\n * populate `params`.\n *\n * @param {string} path\n * @param {Object} params\n * @return {boolean}\n * @api private\n */\n\n Route.prototype.match = function(path, params) {\n var keys = this.keys,\n qsIndex = path.indexOf('?'),\n pathname = ~qsIndex ? path.slice(0, qsIndex) : path,\n m = this.regexp.exec(decodeURIComponent(pathname));\n\n if (!m) return false;\n\n delete params[0];\n\n for (var i = 1, len = m.length; i < len; ++i) {\n var key = keys[i - 1];\n var val = this.page._decodeURLEncodedURIComponent(m[i]);\n if (val !== undefined || !(hasOwnProperty.call(params, key.name))) {\n params[key.name] = val;\n }\n }\n\n return true;\n };\n\n\n /**\n * Module exports.\n */\n\n var globalPage = createPage();\n var page_js = globalPage;\n var default_1 = globalPage;\n\npage_js.default = default_1;\n\nreturn page_js;\n\n})));\n","import { cubicInOut, linear, cubicOut } from '../easing/index.mjs';\nimport { is_function, assign } from '../internal/index.mjs';\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\n\nfunction blur(node, { delay = 0, duration = 400, easing = cubicInOut, amount = 5, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const f = style.filter === 'none' ? '' : style.filter;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `opacity: ${target_opacity - (od * u)}; filter: ${f} blur(${u * amount}px);`\n };\n}\nfunction fade(node, { delay = 0, duration = 400, easing = linear } = {}) {\n const o = +getComputedStyle(node).opacity;\n return {\n delay,\n duration,\n easing,\n css: t => `opacity: ${t * o}`\n };\n}\nfunction fly(node, { delay = 0, duration = 400, easing = cubicOut, x = 0, y = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `\n\t\t\ttransform: ${transform} translate(${(1 - t) * x}px, ${(1 - t) * y}px);\n\t\t\topacity: ${target_opacity - (od * u)}`\n };\n}\nfunction slide(node, { delay = 0, duration = 400, easing = cubicOut } = {}) {\n const style = getComputedStyle(node);\n const opacity = +style.opacity;\n const height = parseFloat(style.height);\n const padding_top = parseFloat(style.paddingTop);\n const padding_bottom = parseFloat(style.paddingBottom);\n const margin_top = parseFloat(style.marginTop);\n const margin_bottom = parseFloat(style.marginBottom);\n const border_top_width = parseFloat(style.borderTopWidth);\n const border_bottom_width = parseFloat(style.borderBottomWidth);\n return {\n delay,\n duration,\n easing,\n css: t => 'overflow: hidden;' +\n `opacity: ${Math.min(t * 20, 1) * opacity};` +\n `height: ${t * height}px;` +\n `padding-top: ${t * padding_top}px;` +\n `padding-bottom: ${t * padding_bottom}px;` +\n `margin-top: ${t * margin_top}px;` +\n `margin-bottom: ${t * margin_bottom}px;` +\n `border-top-width: ${t * border_top_width}px;` +\n `border-bottom-width: ${t * border_bottom_width}px;`\n };\n}\nfunction scale(node, { delay = 0, duration = 400, easing = cubicOut, start = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const sd = 1 - start;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `\n\t\t\ttransform: ${transform} scale(${1 - (sd * u)});\n\t\t\topacity: ${target_opacity - (od * u)}\n\t\t`\n };\n}\nfunction draw(node, { delay = 0, speed, duration, easing = cubicInOut } = {}) {\n const len = node.getTotalLength();\n if (duration === undefined) {\n if (speed === undefined) {\n duration = 800;\n }\n else {\n duration = len / speed;\n }\n }\n else if (typeof duration === 'function') {\n duration = duration(len);\n }\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `stroke-dasharray: ${t * len} ${u * len}`\n };\n}\nfunction crossfade(_a) {\n var { fallback } = _a, defaults = __rest(_a, [\"fallback\"]);\n const to_receive = new Map();\n const to_send = new Map();\n function crossfade(from, node, params) {\n const { delay = 0, duration = d => Math.sqrt(d) * 30, easing = cubicOut } = assign(assign({}, defaults), params);\n const to = node.getBoundingClientRect();\n const dx = from.left - to.left;\n const dy = from.top - to.top;\n const dw = from.width / to.width;\n const dh = from.height / to.height;\n const d = Math.sqrt(dx * dx + dy * dy);\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n const opacity = +style.opacity;\n return {\n delay,\n duration: is_function(duration) ? duration(d) : duration,\n easing,\n css: (t, u) => `\n\t\t\t\topacity: ${t * opacity};\n\t\t\t\ttransform-origin: top left;\n\t\t\t\ttransform: ${transform} translate(${u * dx}px,${u * dy}px) scale(${t + (1 - t) * dw}, ${t + (1 - t) * dh});\n\t\t\t`\n };\n }\n function transition(items, counterparts, intro) {\n return (node, params) => {\n items.set(params.key, {\n rect: node.getBoundingClientRect()\n });\n return () => {\n if (counterparts.has(params.key)) {\n const { rect } = counterparts.get(params.key);\n counterparts.delete(params.key);\n return crossfade(rect, node, params);\n }\n // if the node is disappearing altogether\n // (i.e. wasn't claimed by the other list)\n // then we need to supply an outro\n items.delete(params.key);\n return fallback && fallback(node, params, intro);\n };\n };\n }\n return [\n transition(to_send, to_receive, false),\n transition(to_receive, to_send, true)\n ];\n}\n\nexport { blur, crossfade, draw, fade, fly, scale, slide };\n","\r\n\r\n{#if address}\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n Property | \r\n Value | \r\n
\r\n \r\n \r\n \r\n Uprn | \r\n {address.uprn} | \r\n
\r\n \r\n Northing | \r\n {address.northing} | \r\n
\r\n \r\n Easting | \r\n {address.easting} | \r\n
\r\n {#if address.parish}\r\n \r\n Parish | \r\n {address.parish} | \r\n
\r\n {/if}\r\n {#if address.ward}\r\n \r\n Ward | \r\n {address.ward} | \r\n
\r\n {/if}\r\n {#if address.organisation}\r\n \r\n Organisation | \r\n {address.organisation} | \r\n
\r\n {/if}\r\n {#if address.department}\r\n \r\n Department | \r\n {address.department} | \r\n
\r\n {#if address.poBox}\r\n \r\n PO Box | \r\n {address.poBox} | \r\n
\r\n {/if}\r\n {/if}\r\n \r\n
\r\n
\r\n
\r\n
\r\n{/if}\r\n","\r\n\r\n{#if addresses && addresses.length > 0}\r\n \r\n \r\n \r\n
\r\n{/if}\r\n\r\n\r\n","// const baseUrl = \"https://addresses.york.gov.uk/\"; // Test against live service\r\n// const baseUrl = \"https://localhost:44347/\"; // Test against dev api server\r\nconst baseUrl = window.location.href;\r\nconst constants = {\r\n serviceUrls: {\r\n lookupByPostcode: {\r\n OSPlaces: baseUrl + \"api/osplaces/lookupbypostcode/\",\r\n GMSConnector: baseUrl + \"api/address/lookupbypostcode/\",\r\n },\r\n lookupByUprn: {\r\n OSPlaces: baseUrl + \"api/osplaces/lookupbyuprn/\",\r\n GMSConnector: baseUrl + \"api/address/lookupbyuprn/\",\r\n },\r\n },\r\n errorMessages: {\r\n postcodeNotFound: \"No addresses were found for that postcode!\",\r\n uprnNotFound: \"No property was found for that uprn\",\r\n gmsConnectorDown:\r\n \"We are currently experiencing problems with our address search provider. Please try again later.\",\r\n osPlacesDown:\r\n \"We are currently experiencing problems with our os address search. Please try again later.\",\r\n },\r\n};\r\n\r\nexport default constants;\r\n","import constants from \"../constants\";\r\n\r\nconst postcodeSearch = async (postcode) => {\r\n // Default error message\r\n let errorMessage = constants.errorMessages.postcodeNotFound;\r\n\r\n try {\r\n // GMSConnector request\r\n const gmsConnectorResponse = await fetch(\r\n constants.serviceUrls.lookupByPostcode.GMSConnector + postcode\r\n );\r\n\r\n if (gmsConnectorResponse.ok) {\r\n const addresses = await gmsConnectorResponse.json();\r\n if (addresses.length > 0) {\r\n return addresses;\r\n }\r\n } else {\r\n errorMessage = constants.errorMessages.gmsConnectorDown;\r\n }\r\n } catch (error) {\r\n errorMessage = error;\r\n }\r\n\r\n // OSPlaces request\r\n try {\r\n const osPlacesResponse = await fetch(\r\n constants.serviceUrls.lookupByPostcode.OSPlaces + postcode\r\n );\r\n\r\n if (osPlacesResponse.ok) {\r\n const addresses = await osPlacesResponse.json();\r\n return addresses;\r\n } else {\r\n errorMessage = constants.errorMessages.osPlacesDown;\r\n }\r\n } catch (error) {\r\n errorMessage = error;\r\n }\r\n\r\n // If we get this far then both attempts failed to retrieve any data\r\n throw errorMessage;\r\n};\r\n\r\nconst uprnSearch = async (uprn) => {\r\n let errorMessage = constants.errorMessages.osPlacesDown;\r\n\r\n // GMSConnector request\r\n try {\r\n const gmsConnectorResponse = await fetch(\r\n constants.serviceUrls.lookupByUprn.GMSConnector + uprn\r\n );\r\n\r\n if (gmsConnectorResponse.ok) {\r\n const address = await gmsConnectorResponse.json();\r\n if (address) {\r\n return address;\r\n }\r\n }\r\n } catch (error) {\r\n errorMessage = error;\r\n }\r\n\r\n try {\r\n // OSPlaces request\r\n const osPlacesResponse = await fetch(\r\n constants.serviceUrls.lookupByUprn.OSPlaces + uprn\r\n );\r\n\r\n if (osPlacesResponse.ok) {\r\n const address = await osPlacesResponse.json();\r\n return address;\r\n }\r\n\r\n if (osPlacesResponse.status === 404) {\r\n return null; // Not finding an address is not an error\r\n }\r\n } catch (error) {\r\n errorMessage = constants.errorMessages.osPlacesDown;\r\n }\r\n\r\n // If we get this far then both attempts failed to retrieve any data\r\n throw errorMessage;\r\n};\r\n\r\nexport default {\r\n postcodeSearch,\r\n uprnSearch,\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 {#if searchCompleted}\r\n \r\n {:else}\r\n \r\n Find Address\r\n \r\n {/if}\r\n
\r\n\r\n{#if message.length > 0}\r\n {message}
\r\n{/if}\r\n\r\n\r\n","\r\n\r\n{#if isActive}\r\n \r\n {text}\r\n
\r\n{/if}\r\n","\r\n\r\n\r\n\r\n\r\n\r\n (selectedAddress = address)}\r\n/>\r\n\r\n","\r\n\r\n\r\n \r\n \r\n
\r\n\r\n {#if searchCompleted}\r\n \r\n {:else}\r\n \r\n Find Address\r\n \r\n {/if}\r\n
\r\n\r\n{#if message.length > 0}\r\n {message}
\r\n{/if}\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
{title}
\r\n \r\n
\r\n
\r\n\r\n\r\n\r\n","\n\n\n\n \n {#if isHomePage}\n Search for an address by postcode or uprn\n {:else}\n Search for an address by postcode or uprn\n {/if}\n
\n \n\n","import App from \"./App.svelte\";\r\n\r\nconst app = new App({\r\n target: document.body,\r\n});\r\n\r\nexport default app;\r\n"],"names":["noop","identity","x","run","fn","blank_object","Object","create","run_all","fns","forEach","is_function","thing","safe_not_equal","a","b","create_slot","definition","ctx","$$scope","slot_ctx","get_slot_context","tar","src","k","assign","slice","update_slot","slot","slot_definition","dirty","get_slot_changes_fn","get_slot_context_fn","slot_changes","lets","undefined","merged","len","Math","max","length","i","get_slot_changes","slot_context","p","is_client","window","now","performance","Date","raf","cb","requestAnimationFrame","tasks","Set","run_tasks","task","c","delete","f","size","append","target","node","appendChild","insert","anchor","insertBefore","detach","parentNode","removeChild","element","name","document","createElement","text","data","createTextNode","space","empty","listen","event","handler","options","addEventListener","removeEventListener","attr","attribute","value","removeAttribute","getAttribute","setAttribute","set_data","wholeText","select_option","select","option","__value","selected","active_docs","current_component","active","delete_rule","previous","style","animation","split","next","filter","anim","indexOf","deleted","join","doc","stylesheet","__svelte_stylesheet","cssRules","deleteRule","__svelte_rules","clear","set_current_component","component","dirty_components","binding_callbacks","render_callbacks","flush_callbacks","resolved_promise","Promise","resolve","update_scheduled","add_render_callback","push","flushing","seen_callbacks","flush","update","$$","pop","callback","has","add","fragment","before_update","after_update","promise","dispatch","direction","kind","dispatchEvent","type","detail","e","createEvent","initCustomEvent","custom_event","outroing","outros","group_outros","r","check_outros","transition_in","block","local","transition_out","o","d","null_transition","duration","create_in_transition","params","animation_name","config","running","uid","cleanup","go","delay","easing","tick","css","ease","step","keyframes","t","rule","str","hash","charCodeAt","ownerDocument","head","sheet","current_rules","insertRule","create_rule","start_time","end_time","abort","fulfill","[object Object]","loop","started","then","create_component","mount_component","customElement","on_mount","on_destroy","m","new_on_destroy","map","destroy_component","detaching","make_dirty","fill","init","instance","create_fragment","not_equal","props","parent_component","bound","on_disconnect","context","Map","callbacks","skip_bound","ready","ret","rest","hydrate","nodes","Array","from","childNodes","children","l","intro","SvelteComponent","this","$destroy","index","splice","$$props","obj","$$set","keys","module","isarray","isArray","arr","prototype","toString","call","pathToRegexp_1","pathToRegexp","parse_1","parse","compile_1","compile","tokensToFunction_1","tokensToFunction","tokensToRegExp_1","tokensToRegExp","PATH_REGEXP","RegExp","res","tokens","key","path","exec","escaped","offset","prefix","capture","group","suffix","asterisk","repeat","optional","delimiter","pattern","escapeGroup","substr","matches","token","segment","TypeError","j","encodeURIComponent","test","escapeString","replace","attachKeys","re","flags","sensitive","regexpToRegexp","groups","source","match","arrayToRegexp","parts","stringToRegexp","strict","end","route","lastToken","endsWithSlash","loaded","hasDocument","hasWindow","hasHistory","history","hasProcess","process","clickEvent","ontouchstart","isLocation","location","Page","exits","current","_decodeURLComponents","_base","_strict","_running","_hashbang","clickHandler","bind","_onpopstate","createPage","pageInstance","pageFn","page","apply","arguments","base","start","stop","show","back","redirect","exit","configure","sameOrigin","defineProperty","get","set","val","Context","Route","middleware","unhandled","handled","_window","_getBase","pathname","search","canonicalPath","href","escapeRegExp","s","state","_page","hashbang","pageBase","title","querystring","_decodeURLEncodedURIComponent","globalPage","opts","method","regexp","decodeURLComponents","_popstate","popstate","_click","click","loc","protocol","enable","url","prev","prevContext","pushState","setTimeout","to","inst","save","nextExit","nextEnter","_which","metaKey","ctrlKey","shiftKey","defaultPrevented","el","eventPath","composedPath","nodeName","toUpperCase","svg","constructor","hasAttribute","link","_samePath","baseVal","orig","preventDefault","readyState","which","button","_toURL","URL","anc","hostname","port","decodeURIComponent","replaceState","self","routePath","qsIndex","hasOwnProperty","page_js","default_1","default","factory","fade","linear","getComputedStyle","opacity","shortAddress","uprn","northing","easting","parish","ward","organisation","department","poBox","address","iterations","selectedAddress","addresses","onAddressChanged","selected_option","querySelector","baseUrl","constants","lookupByPostcode","OSPlaces","GMSConnector","lookupByUprn","postcodeNotFound","uprnNotFound","gmsConnectorDown","osPlacesDown","async","postcode","errorMessage","gmsConnectorResponse","fetch","ok","json","error","osPlacesResponse","status","disabled","onClick","isBusy","buttonDisabled","postCodeRegex","onSearchStarted","onSearchCompleted","onError","onReset","message","searchCompleted","isValidPostcode","newPostcode","apiService","isActive","errorMessageRef","handleReset","dismiss","results","uprnRegex","isValidUprn","newUprn","router","PostcodeFinder","UprnFinder","isHomePage","body"],"mappings":"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"}