diff --git a/runtime.js.map b/runtime.js.map deleted file mode 100644 index 50e4ce5..0000000 --- a/runtime.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"runtime.js","sources":["src/runtime/utils.ts","src/runtime/index.ts"],"sourcesContent":["export function detach(node: Node) {\n\tnode.parentNode.removeChild(node);\n}\n\nexport function findAnchor(node: Node) {\n\twhile (node && node.nodeName.toUpperCase() !== 'A') node = node.parentNode; // SVG elements have a lowercase name\n\treturn node;\n}\n\nexport function which(event: MouseEvent) {\n\treturn event.which === null ? event.button : event.which;\n}\n\nexport function scroll_state() {\n\treturn {\n\t\tx: window.scrollX,\n\t\ty: window.scrollY\n\t};\n}","import { detach, findAnchor, scroll_state, which } from './utils';\nimport { Component, ComponentConstructor, Params, Query, Route, RouteData, ScrollPosition } from './interfaces';\n\nexport let component: Component;\nlet target: Node;\nlet routes: Route[];\n\nconst history = typeof window !== 'undefined' ? window.history : {\n\tpushState: (state: any, title: string, href: string) => {},\n\treplaceState: (state: any, title: string, href: string) => {},\n\tscrollRestoration: ''\n};\n\nconst scroll_history: Record = {};\nlet uid = 1;\nlet cid: number;\n\nif ('scrollRestoration' in history) {\n\thistory.scrollRestoration = 'manual';\n}\n\nfunction select_route(url: URL): { route: Route, data: RouteData } {\n\tif (url.origin !== window.location.origin) return null;\n\n\tfor (const route of routes) {\n\t\tconst match = route.pattern.exec(url.pathname);\n\t\tif (match) {\n\t\t\tconst params = route.params(match);\n\n\t\t\tconst query: Record = {};\n\t\t\tfor (const [key, value] of url.searchParams) query[key] = value || true;\n\n\t\t\treturn { route, data: { params, query } };\n\t\t}\n\t}\n}\n\nlet current_token: {};\n\nfunction render(Component: ComponentConstructor, data: any, scroll: ScrollPosition, token: {}) {\n\tif (current_token !== token) return;\n\n\tif (component) {\n\t\tcomponent.destroy();\n\t} else {\n\t\t// first load — remove SSR'd contents\n\t\tconst start = document.querySelector('#sapper-head-start');\n\t\tconst end = document.querySelector('#sapper-head-end');\n\n\t\tif (start && end) {\n\t\t\twhile (start.nextSibling !== end) detach(start.nextSibling);\n\t\t\tdetach(start);\n\t\t\tdetach(end);\n\t\t}\n\n\t\t// preload additional routes\n\t\troutes.reduce((promise: Promise, route) => promise.then(route.load), Promise.resolve());\n\t}\n\n\tcomponent = new Component({\n\t\ttarget,\n\t\tdata,\n\t\thydrate: !component\n\t});\n\n\tif (scroll) {\n\t\twindow.scrollTo(scroll.x, scroll.y);\n\t}\n}\n\nfunction prepare_route(Component: ComponentConstructor, data: RouteData) {\n\tif (!Component.preload) {\n\t\treturn { Component, data };\n\t}\n\n\tif (!component && window.__SAPPER__ && window.__SAPPER__.preloaded) {\n\t\treturn { Component, data: Object.assign(data, window.__SAPPER__.preloaded) };\n\t}\n\n\treturn Promise.resolve(Component.preload(data)).then(preloaded => {\n\t\tObject.assign(data, preloaded)\n\t\treturn { Component, data };\n\t});\n}\n\nfunction navigate(url: URL, id: number) {\n\tconst selected = select_route(url);\n\tif (selected) {\n\t\tif (id) {\n\t\t\t// popstate or initial navigation\n\t\t\tcid = id;\n\t\t} else {\n\t\t\t// clicked on a link. preserve scroll state\n\t\t\tscroll_history[cid] = scroll_state();\n\n\t\t\tid = cid = ++uid;\n\t\t\tscroll_history[cid] = { x: 0, y: 0 };\n\t\t}\n\n\t\tconst loaded = prefetching && prefetching.href === url.href ?\n\t\t\tprefetching.promise :\n\t\t\tselected.route.load().then(mod => prepare_route(mod.default, selected.data));\n\n\t\tprefetching = null;\n\n\t\tconst token = current_token = {};\n\n\t\tloaded.then(({ Component, data }) => {\n\t\t\trender(Component, data, scroll_history[id], token);\n\t\t});\n\n\t\tcid = id;\n\t\treturn true;\n\t}\n}\n\nfunction handle_click(event: MouseEvent) {\n\t// Adapted from https://github.com/visionmedia/page.js\n\t// MIT license https://github.com/visionmedia/page.js#license\n\tif (which(event) !== 1) return;\n\tif (event.metaKey || event.ctrlKey || event.shiftKey) return;\n\tif (event.defaultPrevented) return;\n\n\tconst a: HTMLAnchorElement | SVGAElement = findAnchor(event.target);\n\tif (!a) return;\n\n\t// check if link is inside an svg\n\t// in this case, both href and target are always inside an object\n\tconst svg = typeof a.href === 'object' && a.href.constructor.name === 'SVGAnimatedString';\n\tconst href = String(svg ? (a).href.baseVal : a.href);\n\n\tif (href === window.location.href) {\n\t\tevent.preventDefault();\n\t\treturn;\n\t}\n\n\t// Ignore if tag has\n\t// 1. 'download' attribute\n\t// 2. rel='external' attribute\n\tif (a.hasAttribute('download') || a.getAttribute('rel') === 'external') return;\n\n\t// Ignore if has a target\n\tif (svg ? (a).target.baseVal : a.target) return;\n\n\tconst url = new URL(href);\n\n\t// Don't handle hash changes\n\tif (url.pathname === window.location.pathname && url.search === window.location.search) return;\n\n\tif (navigate(url, null)) {\n\t\tevent.preventDefault();\n\t\thistory.pushState({ id: cid }, '', url.href);\n\t}\n}\n\nfunction handle_popstate(event: PopStateEvent) {\n\tscroll_history[cid] = scroll_state();\n\n\tif (event.state) {\n\t\tnavigate(new URL(window.location.href), event.state.id);\n\t} else {\n\t\t// hashchange\n\t\tcid = ++uid;\n\t\thistory.replaceState({ id: cid }, '', window.location.href);\n\t}\n}\n\nlet prefetching: {\n\thref: string;\n\tpromise: Promise<{ Component: ComponentConstructor, data: any }>;\n} = null;\n\nexport function prefetch(href: string) {\n\tconst selected = select_route(new URL(href));\n\n\tif (selected) {\n\t\tprefetching = {\n\t\t\thref,\n\t\t\tpromise: selected.route.load().then(mod => prepare_route(mod.default, selected.data))\n\t\t};\n\t}\n}\n\nfunction handle_touchstart_mouseover(event: MouseEvent | TouchEvent) {\n\tconst a: HTMLAnchorElement = findAnchor(event.target);\n\tif (!a || a.rel !== 'prefetch') return;\n\n\tprefetch(a.href);\n}\n\nlet inited: boolean;\n\nexport function init(_target: Node, _routes: Route[]) {\n\ttarget = _target;\n\troutes = _routes;\n\n\tif (!inited) { // this check makes HMR possible\n\t\twindow.addEventListener('click', handle_click);\n\t\twindow.addEventListener('popstate', handle_popstate);\n\n\t\t// prefetch\n\t\twindow.addEventListener('touchstart', handle_touchstart_mouseover);\n\t\twindow.addEventListener('mouseover', handle_touchstart_mouseover);\n\n\t\tinited = true;\n\t}\n\n\tsetTimeout(() => {\n\t\tconst { hash, href } = window.location;\n\n\t\tconst deep_linked = hash && document.querySelector(hash);\n\t\tscroll_history[uid] = deep_linked ?\n\t\t\t{ x: 0, y: deep_linked.getBoundingClientRect().top } :\n\t\t\tscroll_state();\n\n\t\thistory.replaceState({ id: uid }, '', href);\n\t\tnavigate(new URL(window.location.href), uid);\n\t});\n}\n\nexport function goto(href: string, opts = { replaceState: false }) {\n\tif (navigate(new URL(href, window.location.href), null)) {\n\t\tif (history) history[opts.replaceState ? 'replaceState' : 'pushState']({ id: cid }, '', href);\n\t} else {\n\t\twindow.location.href = href;\n\t}\n}\n"],"names":[],"mappings":"gBAAuB,IAAU;IAChC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;CAClC;AAED,oBAA2B,IAAU;IACpC,OAAO,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,GAAG;QAAE,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;IAC3E,OAAO,IAAI,CAAC;CACZ;AAED,eAAsB,KAAiB;IACtC,OAAO,KAAK,CAAC,KAAK,KAAK,IAAI,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;CACzD;AAED;IACC,OAAO;QACN,CAAC,EAAE,MAAM,CAAC,OAAO;QACjB,CAAC,EAAE,MAAM,CAAC,OAAO;KACjB,CAAC;CACF;;ACfM,IAAI,SAAoB,CAAC;AAChC,IAAI,MAAY,CAAC;AACjB,IAAI,MAAe,CAAC;AAEpB,IAAM,OAAO,GAAG,OAAO,MAAM,KAAK,WAAW,GAAG,MAAM,CAAC,OAAO,GAAG;IAChE,SAAS,EAAE,UAAC,KAAU,EAAE,KAAa,EAAE,IAAY,KAAO;IAC1D,YAAY,EAAE,UAAC,KAAU,EAAE,KAAa,EAAE,IAAY,KAAO;IAC7D,iBAAiB,EAAE,EAAE;CACrB,CAAC;AAEF,IAAM,cAAc,GAAmC,EAAE,CAAC;AAC1D,IAAI,GAAG,GAAG,CAAC,CAAC;AACZ,IAAI,GAAW,CAAC;AAEhB,IAAI,mBAAmB,IAAI,OAAO,EAAE;IACnC,OAAO,CAAC,iBAAiB,GAAG,QAAQ,CAAC;CACrC;AAED,sBAAsB,GAAQ;IAC7B,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,CAAC,QAAQ,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAEvD,KAAoB,UAAM,EAAN,iBAAM,EAAN,oBAAM,EAAN,IAAM;QAArB,IAAM,KAAK,eAAA;QACf,IAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAI,KAAK,EAAE;YACV,IAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAEnC,IAAM,KAAK,GAAkC,EAAE,CAAC;YAChD,KAA2B,UAAgB,EAAhB,KAAA,GAAG,CAAC,YAAY,EAAhB,cAAgB,EAAhB,IAAgB;gBAAhC,IAAA,WAAY,EAAX,WAAG,EAAE,aAAK;gBAAuB,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,IAAI,IAAI,CAAC;aAAA;YAExE,OAAO,EAAE,KAAK,OAAA,EAAE,IAAI,EAAE,EAAE,MAAM,QAAA,EAAE,KAAK,OAAA,EAAE,EAAE,CAAC;SAC1C;KACD;CACD;AAED,IAAI,aAAiB,CAAC;AAEtB,gBAAgB,SAA+B,EAAE,IAAS,EAAE,MAAsB,EAAE,KAAS;IAC5F,IAAI,aAAa,KAAK,KAAK;QAAE,OAAO;IAEpC,IAAI,SAAS,EAAE;QACd,SAAS,CAAC,OAAO,EAAE,CAAC;KACpB;SAAM;;QAEN,IAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC;QAC3D,IAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;QAEvD,IAAI,KAAK,IAAI,GAAG,EAAE;YACjB,OAAO,KAAK,CAAC,WAAW,KAAK,GAAG;gBAAE,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAC5D,MAAM,CAAC,KAAK,CAAC,CAAC;YACd,MAAM,CAAC,GAAG,CAAC,CAAC;SACZ;;QAGD,MAAM,CAAC,MAAM,CAAC,UAAC,OAAqB,EAAE,KAAK,IAAK,OAAA,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAA,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;KAC7F;IAED,SAAS,GAAG,IAAI,SAAS,CAAC;QACzB,MAAM,QAAA;QACN,IAAI,MAAA;QACJ,OAAO,EAAE,CAAC,SAAS;KACnB,CAAC,CAAC;IAEH,IAAI,MAAM,EAAE;QACX,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;KACpC;CACD;AAED,uBAAuB,SAA+B,EAAE,IAAe;IACtE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE;QACvB,OAAO,EAAE,SAAS,WAAA,EAAE,IAAI,MAAA,EAAE,CAAC;KAC3B;IAED,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE;QACnE,OAAO,EAAE,SAAS,WAAA,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;KAC7E;IAED,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAA,SAAS;QAC7D,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;QAC9B,OAAO,EAAE,SAAS,WAAA,EAAE,IAAI,MAAA,EAAE,CAAC;KAC3B,CAAC,CAAC;CACH;AAED,kBAAkB,GAAQ,EAAE,EAAU;IACrC,IAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IACnC,IAAI,QAAQ,EAAE;QACb,IAAI,EAAE,EAAE;;YAEP,GAAG,GAAG,EAAE,CAAC;SACT;aAAM;;YAEN,cAAc,CAAC,GAAG,CAAC,GAAG,YAAY,EAAE,CAAC;YAErC,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,CAAC;YACjB,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;SACrC;QAED,IAAM,MAAM,GAAG,WAAW,IAAI,WAAW,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI;YAC1D,WAAW,CAAC,OAAO;YACnB,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,UAAA,GAAG,IAAI,OAAA,aAAa,CAAC,GAAG,CAAC,SAAO,CAAA,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAA,CAAC,CAAC;QAE9E,WAAW,GAAG,IAAI,CAAC;QAEnB,IAAM,OAAK,GAAG,aAAa,GAAG,EAAE,CAAC;QAEjC,MAAM,CAAC,IAAI,CAAC,UAAC,EAAmB;gBAAjB,wBAAS,EAAE,cAAI;YAC7B,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,CAAC,EAAE,OAAK,CAAC,CAAC;SACnD,CAAC,CAAC;QAEH,GAAG,GAAG,EAAE,CAAC;QACT,OAAO,IAAI,CAAC;KACZ;CACD;AAED,sBAAsB,KAAiB;;;IAGtC,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;QAAE,OAAO;IAC/B,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,QAAQ;QAAE,OAAO;IAC7D,IAAI,KAAK,CAAC,gBAAgB;QAAE,OAAO;IAEnC,IAAM,CAAC,GAAqE,UAAU,CAAO,KAAK,CAAC,MAAM,CAAC,CAAC;IAC3G,IAAI,CAAC,CAAC;QAAE,OAAO;;;IAIf,IAAM,GAAG,GAAG,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,mBAAmB,CAAC;IAC1F,IAAM,IAAI,GAAG,MAAM,CAAC,GAAG,GAAiB,CAAE,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;IAElE,IAAI,IAAI,KAAK,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE;QAClC,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,OAAO;KACP;;;;IAKD,IAAI,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,UAAU;QAAE,OAAO;;IAG/E,IAAI,GAAG,GAAiB,CAAE,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,MAAM;QAAE,OAAO;IAE7D,IAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;;IAG1B,IAAI,GAAG,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAAC,QAAQ,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,CAAC,QAAQ,CAAC,MAAM;QAAE,OAAO;IAE/F,IAAI,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE;QACxB,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;KAC7C;CACD;AAED,yBAAyB,KAAoB;IAC5C,cAAc,CAAC,GAAG,CAAC,GAAG,YAAY,EAAE,CAAC;IAErC,IAAI,KAAK,CAAC,KAAK,EAAE;QAChB,QAAQ,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;KACxD;SAAM;;QAEN,GAAG,GAAG,EAAE,GAAG,CAAC;QACZ,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;KAC5D;CACD;AAED,IAAI,WAAW,GAGX,IAAI,CAAC;AAET,kBAAyB,IAAY;IACpC,IAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IAE7C,IAAI,QAAQ,EAAE;QACb,WAAW,GAAG;YACb,IAAI,MAAA;YACJ,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,UAAA,GAAG,IAAI,OAAA,aAAa,CAAC,GAAG,CAAC,SAAO,CAAA,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAA,CAAC;SACrF,CAAC;KACF;CACD;AAED,qCAAqC,KAA8B;IAClE,IAAM,CAAC,GAAyC,UAAU,CAAO,KAAK,CAAC,MAAM,CAAC,CAAC;IAC/E,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,UAAU;QAAE,OAAO;IAEvC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;CACjB;AAED,IAAI,MAAe,CAAC;AAEpB,cAAqB,OAAa,EAAE,OAAgB;IACnD,MAAM,GAAG,OAAO,CAAC;IACjB,MAAM,GAAG,OAAO,CAAC;IAEjB,IAAI,CAAC,MAAM,EAAE;QACZ,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QAC/C,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;;QAGrD,MAAM,CAAC,gBAAgB,CAAC,YAAY,EAAE,2BAA2B,CAAC,CAAC;QACnE,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,2BAA2B,CAAC,CAAC;QAElE,MAAM,GAAG,IAAI,CAAC;KACd;IAED,UAAU,CAAC;QACJ,IAAA,oBAAgC,EAA9B,cAAI,EAAE,cAAI,CAAqB;QAEvC,IAAM,WAAW,GAAG,IAAI,IAAI,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACzD,cAAc,CAAC,GAAG,CAAC,GAAG,WAAW;YAChC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,qBAAqB,EAAE,CAAC,GAAG,EAAE;YACpD,YAAY,EAAE,CAAC;QAEhB,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QAC5C,QAAQ,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;KAC7C,CAAC,CAAC;CACH;AAED,cAAqB,IAAY,EAAE,IAA8B;IAA9B,qBAAA,EAAA,SAAS,YAAY,EAAE,KAAK,EAAE;IAChE,IAAI,QAAQ,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE;QACxD,IAAI,OAAO;YAAE,OAAO,CAAC,IAAI,CAAC,YAAY,GAAG,cAAc,GAAG,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;KAC9F;SAAM;QACN,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;KAC5B;CACD;;;;"} \ No newline at end of file