{"version":3,"file":"singletons.c9d83d59.mjs","sources":["../../../../../../node_modules/svelte/store/index.mjs","../../../../../../node_modules/@sveltejs/kit/src/runtime/client/constants.js","../../../../../../node_modules/@sveltejs/kit/src/runtime/client/utils.js","../../../../../../node_modules/@sveltejs/kit/src/runtime/client/singletons.js"],"sourcesContent":["import { noop, safe_not_equal, subscribe, run_all, is_function } from '../internal/index.mjs';\nexport { get_store_value as get } from '../internal/index.mjs';\n\nconst subscriber_queue = [];\n/**\n * Creates a `Readable` store that allows reading by subscription.\n * @param value initial value\n * @param {StartStopNotifier} [start]\n */\nfunction readable(value, start) {\n    return {\n        subscribe: writable(value, start).subscribe\n    };\n}\n/**\n * Create a `Writable` store that allows both updating and reading by subscription.\n * @param {*=}value initial value\n * @param {StartStopNotifier=} start\n */\nfunction writable(value, start = noop) {\n    let stop;\n    const subscribers = new Set();\n    function set(new_value) {\n        if (safe_not_equal(value, new_value)) {\n            value = new_value;\n            if (stop) { // store is ready\n                const run_queue = !subscriber_queue.length;\n                for (const subscriber of subscribers) {\n                    subscriber[1]();\n                    subscriber_queue.push(subscriber, value);\n                }\n                if (run_queue) {\n                    for (let i = 0; i < subscriber_queue.length; i += 2) {\n                        subscriber_queue[i][0](subscriber_queue[i + 1]);\n                    }\n                    subscriber_queue.length = 0;\n                }\n            }\n        }\n    }\n    function update(fn) {\n        set(fn(value));\n    }\n    function subscribe(run, invalidate = noop) {\n        const subscriber = [run, invalidate];\n        subscribers.add(subscriber);\n        if (subscribers.size === 1) {\n            stop = start(set) || noop;\n        }\n        run(value);\n        return () => {\n            subscribers.delete(subscriber);\n            if (subscribers.size === 0 && stop) {\n                stop();\n                stop = null;\n            }\n        };\n    }\n    return { set, update, subscribe };\n}\nfunction derived(stores, fn, initial_value) {\n    const single = !Array.isArray(stores);\n    const stores_array = single\n        ? [stores]\n        : stores;\n    const auto = fn.length < 2;\n    return readable(initial_value, (set) => {\n        let started = false;\n        const values = [];\n        let pending = 0;\n        let cleanup = noop;\n        const sync = () => {\n            if (pending) {\n                return;\n            }\n            cleanup();\n            const result = fn(single ? values[0] : values, set);\n            if (auto) {\n                set(result);\n            }\n            else {\n                cleanup = is_function(result) ? result : noop;\n            }\n        };\n        const unsubscribers = stores_array.map((store, i) => subscribe(store, (value) => {\n            values[i] = value;\n            pending &= ~(1 << i);\n            if (started) {\n                sync();\n            }\n        }, () => {\n            pending |= (1 << i);\n        }));\n        started = true;\n        sync();\n        return function stop() {\n            run_all(unsubscribers);\n            cleanup();\n            // We need to set this to false because callbacks can still happen despite having unsubscribed:\n            // Callbacks might already be placed in the queue which doesn't know it should no longer\n            // invoke this derived store.\n            started = false;\n        };\n    });\n}\n/**\n * Takes a store and returns a new one derived from the old one that is readable.\n *\n * @param store - store to make readonly\n */\nfunction readonly(store) {\n    return {\n        subscribe: store.subscribe.bind(store)\n    };\n}\n\nexport { derived, readable, readonly, writable };\n","export const SNAPSHOT_KEY = 'sveltekit:snapshot';\nexport const SCROLL_KEY = 'sveltekit:scroll';\nexport const INDEX_KEY = 'sveltekit:index';\n\nexport const PRELOAD_PRIORITIES = /** @type {const} */ ({\n\ttap: 1,\n\thover: 2,\n\tviewport: 3,\n\teager: 4,\n\toff: -1\n});\n","import { BROWSER, DEV } from 'esm-env';\nimport { writable } from 'svelte/store';\nimport { assets } from '__sveltekit/paths';\nimport { version } from '__sveltekit/environment';\nimport { PRELOAD_PRIORITIES } from './constants.js';\n\n/* global __SVELTEKIT_APP_VERSION_FILE__, __SVELTEKIT_APP_VERSION_POLL_INTERVAL__ */\n\n/** @param {HTMLDocument} doc */\nexport function get_base_uri(doc) {\n\tlet baseURI = doc.baseURI;\n\n\tif (!baseURI) {\n\t\tconst baseTags = doc.getElementsByTagName('base');\n\t\tbaseURI = baseTags.length ? baseTags[0].href : doc.URL;\n\t}\n\n\treturn baseURI;\n}\n\nexport function scroll_state() {\n\treturn {\n\t\tx: pageXOffset,\n\t\ty: pageYOffset\n\t};\n}\n\nconst warned = new WeakSet();\n\n/** @typedef {keyof typeof valid_link_options} LinkOptionName */\n\nconst valid_link_options = /** @type {const} */ ({\n\t'preload-code': ['', 'off', 'tap', 'hover', 'viewport', 'eager'],\n\t'preload-data': ['', 'off', 'tap', 'hover'],\n\tnoscroll: ['', 'off'],\n\treload: ['', 'off']\n});\n\n/**\n * @template {LinkOptionName} T\n * @typedef {typeof valid_link_options[T][number]} ValidLinkOptions\n */\n\n/**\n * @template {LinkOptionName} T\n * @param {Element} element\n * @param {T} name\n */\nfunction link_option(element, name) {\n\tconst value = /** @type {ValidLinkOptions<T> | null} */ (\n\t\telement.getAttribute(`data-sveltekit-${name}`)\n\t);\n\n\tif (DEV) {\n\t\tvalidate_link_option(element, name, value);\n\t}\n\n\treturn value;\n}\n\n/**\n * @template {LinkOptionName} T\n * @template {ValidLinkOptions<T> | null} U\n * @param {Element} element\n * @param {T} name\n * @param {U} value\n */\nfunction validate_link_option(element, name, value) {\n\tif (value === null) return;\n\n\t// @ts-expect-error - includes is dumb\n\tif (!warned.has(element) && !valid_link_options[name].includes(value)) {\n\t\tconsole.error(\n\t\t\t`Unexpected value for ${name} — should be one of ${valid_link_options[name]\n\t\t\t\t.map((option) => JSON.stringify(option))\n\t\t\t\t.join(', ')}`,\n\t\t\telement\n\t\t);\n\n\t\twarned.add(element);\n\t}\n}\n\nconst levels = {\n\t...PRELOAD_PRIORITIES,\n\t'': PRELOAD_PRIORITIES.hover\n};\n\n/**\n * @param {Element} element\n * @returns {Element | null}\n */\nfunction parent_element(element) {\n\tlet parent = element.assignedSlot ?? element.parentNode;\n\n\t// @ts-expect-error handle shadow roots\n\tif (parent?.nodeType === 11) parent = parent.host;\n\n\treturn /** @type {Element} */ (parent);\n}\n\n/**\n * @param {Element} element\n * @param {Element} target\n */\nexport function find_anchor(element, target) {\n\twhile (element && element !== target) {\n\t\tif (element.nodeName.toUpperCase() === 'A' && element.hasAttribute('href')) {\n\t\t\treturn /** @type {HTMLAnchorElement | SVGAElement} */ (element);\n\t\t}\n\n\t\telement = /** @type {Element} */ (parent_element(element));\n\t}\n}\n\n/**\n * @param {HTMLAnchorElement | SVGAElement} a\n * @param {string} base\n */\nexport function get_link_info(a, base) {\n\t/** @type {URL | undefined} */\n\tlet url;\n\n\ttry {\n\t\turl = new URL(a instanceof SVGAElement ? a.href.baseVal : a.href, document.baseURI);\n\t} catch {}\n\n\tconst target = a instanceof SVGAElement ? a.target.baseVal : a.target;\n\n\tconst external =\n\t\t!url ||\n\t\t!!target ||\n\t\tis_external_url(url, base) ||\n\t\t(a.getAttribute('rel') || '').split(/\\s+/).includes('external') ||\n\t\ta.hasAttribute('download');\n\n\treturn { url, external, target };\n}\n\n/**\n * @param {HTMLFormElement | HTMLAnchorElement | SVGAElement} element\n */\nexport function get_router_options(element) {\n\t/** @type {ValidLinkOptions<'noscroll'> | null} */\n\tlet noscroll = null;\n\n\t/** @type {ValidLinkOptions<'preload-code'> | null} */\n\tlet preload_code = null;\n\n\t/** @type {ValidLinkOptions<'preload-data'> | null} */\n\tlet preload_data = null;\n\n\t/** @type {ValidLinkOptions<'reload'> | null} */\n\tlet reload = null;\n\n\t/** @type {Element} */\n\tlet el = element;\n\n\twhile (el && el !== document.documentElement) {\n\t\tif (preload_code === null) preload_code = link_option(el, 'preload-code');\n\t\tif (preload_data === null) preload_data = link_option(el, 'preload-data');\n\t\tif (noscroll === null) noscroll = link_option(el, 'noscroll');\n\t\tif (reload === null) reload = link_option(el, 'reload');\n\n\t\tel = /** @type {Element} */ (parent_element(el));\n\t}\n\n\treturn {\n\t\tpreload_code: levels[preload_code ?? 'off'],\n\t\tpreload_data: levels[preload_data ?? 'off'],\n\t\tnoscroll: noscroll === 'off' ? false : noscroll === '' ? true : null,\n\t\treload: reload === 'off' ? false : reload === '' ? true : null\n\t};\n}\n\n/** @param {any} value */\nexport function notifiable_store(value) {\n\tconst store = writable(value);\n\tlet ready = true;\n\n\tfunction notify() {\n\t\tready = true;\n\t\tstore.update((val) => val);\n\t}\n\n\t/** @param {any} new_value */\n\tfunction set(new_value) {\n\t\tready = false;\n\t\tstore.set(new_value);\n\t}\n\n\t/** @param {(value: any) => void} run */\n\tfunction subscribe(run) {\n\t\t/** @type {any} */\n\t\tlet old_value;\n\t\treturn store.subscribe((new_value) => {\n\t\t\tif (old_value === undefined || (ready && new_value !== old_value)) {\n\t\t\t\trun((old_value = new_value));\n\t\t\t}\n\t\t});\n\t}\n\n\treturn { notify, set, subscribe };\n}\n\nexport function create_updated_store() {\n\tconst { set, subscribe } = writable(false);\n\n\tconst interval = __SVELTEKIT_APP_VERSION_POLL_INTERVAL__;\n\n\t/** @type {NodeJS.Timeout} */\n\tlet timeout;\n\n\t/** @type {() => Promise<boolean>} */\n\tasync function check() {\n\t\tif (DEV || !BROWSER) return false;\n\n\t\tclearTimeout(timeout);\n\n\t\tif (interval) timeout = setTimeout(check, interval);\n\n\t\tconst res = await fetch(`${assets}/${__SVELTEKIT_APP_VERSION_FILE__}`, {\n\t\t\theaders: {\n\t\t\t\tpragma: 'no-cache',\n\t\t\t\t'cache-control': 'no-cache'\n\t\t\t}\n\t\t});\n\n\t\tif (res.ok) {\n\t\t\tconst data = await res.json();\n\t\t\tconst updated = data.version !== version;\n\n\t\t\tif (updated) {\n\t\t\t\tset(true);\n\t\t\t\tclearTimeout(timeout);\n\t\t\t}\n\n\t\t\treturn updated;\n\t\t} else {\n\t\t\tthrow new Error(`Version check failed: ${res.status}`);\n\t\t}\n\t}\n\n\tif (interval) timeout = setTimeout(check, interval);\n\n\treturn {\n\t\tsubscribe,\n\t\tcheck\n\t};\n}\n\n/**\n * @param {URL} url\n * @param {string} base\n */\nexport function is_external_url(url, base) {\n\treturn url.origin !== location.origin || !url.pathname.startsWith(base);\n}\n","import { writable } from 'svelte/store';\nimport { create_updated_store, notifiable_store } from './utils.js';\n\n/** @type {import('./types').Client} */\nexport let client;\n\n/**\n * @param {{\n *   client: import('./types').Client;\n * }} opts\n */\nexport function init(opts) {\n\tclient = opts.client;\n}\n\nexport const stores = {\n\turl: notifiable_store({}),\n\tpage: notifiable_store({}),\n\tnavigating: writable(/** @type {import('types').Navigation | null} */ (null)),\n\tupdated: create_updated_store()\n};\n"],"names":["subscriber_queue","writable","value","start","noop","stop","subscribers","set","new_value","safe_not_equal","run_queue","subscriber","i","update","fn","subscribe","run","invalidate","SNAPSHOT_KEY","SCROLL_KEY","INDEX_KEY","PRELOAD_PRIORITIES","get_base_uri","doc","baseURI","baseTags","scroll_state","link_option","element","name","levels","parent_element","parent","find_anchor","target","get_link_info","a","base","url","external","is_external_url","get_router_options","noscroll","preload_code","preload_data","reload","el","notifiable_store","store","ready","notify","val","old_value","create_updated_store","timeout","check","res","assets","updated","version","client","init","opts","stores"],"mappings":"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","x_google_ignoreList":[0,1,2,3]}