commit 27b41f1bec6bde19b133d327c5aec93dc9c309f0 Author: Fabian Stamm Date: Tue Aug 6 17:08:07 2019 +0200 A lot of new views diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..721928e --- /dev/null +++ b/.editorconfig @@ -0,0 +1,8 @@ +root = true + +[*] +indent_style = space +indent_size = 3 +charset = utf-8 +trim_trailing_whitespace = false +insert_final_newline = false \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6bc74d9 --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +.DS_Store +node_modules +public/bundle.* +package-lock.json +yarn.lock +.rpt2_cache +build/ +build.js \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..725fc8c --- /dev/null +++ b/README.md @@ -0,0 +1,70 @@ +*Psst  looking for a shareable component template? Go here --> [sveltejs/component-template](https://github.com/sveltejs/component-template)* + +--- + +# svelte app + +This is a project template for [Svelte](https://svelte.technology) apps. It lives at https://github.com/sveltejs/template. + +To create a new project based on this template using [degit](https://github.com/Rich-Harris/degit): + +```bash +npm install -g degit # you only need to do this once + +degit sveltejs/template svelte-app +cd svelte-app +``` + +*Note that you will need to have [Node.js](https://nodejs.org) installed.* + + +## Get started + +Install the dependencies... + +```bash +cd svelte-app +npm install +``` + +...then start [Rollup](https://rollupjs.org): + +```bash +npm run dev +``` + +Navigate to [localhost:5000](http://localhost:5000). You should see your app running. Edit a component file in `src`, save it, and reload the page to see your changes. + + +## Deploying to the web + +### With [now](https://zeit.co/now) + +Install `now` if you haven't already: + +```bash +npm install -g now +``` + +Then, from within your project folder: + +```bash +now +``` + +As an alternative, use the [Now desktop client](https://zeit.co/download) and simply drag the unzipped project folder to the taskbar icon. + +### With [surge](https://surge.sh/) + +Install `surge` if you haven't already: + +```bash +npm install -g surge +``` + +Then, from within your project folder: + +```bash +npm run build +surge public +``` diff --git a/build.ts b/build.ts new file mode 100644 index 0000000..3dbfba2 --- /dev/null +++ b/build.ts @@ -0,0 +1,264 @@ +import * as rollup from "rollup"; +import * as svelte from 'rollup-plugin-svelte'; +import * as resolve from 'rollup-plugin-node-resolve'; +import * as commonjs from 'rollup-plugin-commonjs'; +import * as typescript from "rollup-plugin-typescript2"; +import * as fs from "fs"; +import * as copy from "rollup-plugin-copy-assets"; + +import { + sass +} from 'svelte-preprocess-sass'; +import { + terser +} from 'rollup-plugin-terser'; + +const production = process.argv.indexOf("-d") < 0; +console.log(`Runnung in ${production ? "production" : "development"} mode!`); + +let plg = []; + +if (production) { + plg.push(terser()) +} + +if (!fs.existsSync("build")) + fs.mkdirSync("build"); + + +const pages = ["Login", "Home", "User", "Public"]; + +let configs = pages.map(page => { + const pageHtml = generateHtml(page) + + fs.writeFileSync(`build/${page.toLowerCase()}.html`, pageHtml); + + return { + input: `./src/${page}/main.js`, + output: { + sourcemap: true, + format: 'iife', + name: 'app', + file: `build/${page.toLowerCase()}/bundle.js` + }, + watch: { + clearScreen: false + }, + plugins: [ + (typescript as any)({ + tsconfig: "./src/tsconfig.json" + }), + svelte({ + // enable run-time checks when not in production + dev: !production, + css: css => { + css.write(`build/${page.toLowerCase()}/bundle.css`); + }, + preprocess: { + style: sass({ + includePaths: ['src', 'node_modules'] + }) + } + }), + (resolve as any)(), + (commonjs as any)(), + ...plg + ] + }; +}) + +import * as path from "path"; + + +function cssCopyPlugin() { + return { + name: 'css-copy', // this name will show up in warnings and errors + resolveId(source) { + if (source === 'virtual-module') { + return source; // this signals that rollup should not ask other plugins or check the file system to find this id + } + return null; // other ids should be handled as usually + }, + load(id) { + if (id === 'virtual-module') { + return 'export default "This is virtual!"'; // the source code for "virtual-module" + } + return null; // other ids should be handled as usually + } + }; +} + +function generateHtml(pagename: string) { + return ` + + + + + + + OpenAuth - ${pagename} + + + + + + +
+ + + + +` +} + +var absolutePath = /^(?:\/|(?:[A-Za-z]:)?[\\|/])/; +function isAbsolute(path) { + return absolutePath.test(path); +} + +// function getAliasName(resolved, unresolved) { +// var alias = path.basename(unresolved || resolved); +// var ext = path.extname(resolved); +// if (alias.endsWith(ext)) +// alias = alias.substr(0, alias.length - ext.length); +// return alias; +// } + +function relativeId(id) { + if (typeof process === 'undefined' || !isAbsolute(id)) + return id; + return path.relative(process.cwd(), id); +} + +const tc: any = { + enabled: + process.env.FORCE_COLOR || + process.platform === "win32" || + (process.stdout.isTTY && process.env.TERM && process.env.TERM !== "dumb") +}; +const Styles = (tc.Styles = {}); +const defineProp = Object.defineProperty; + +const init = (style, open, close, re) => { + let i, + len = 1, + seq = [(Styles[style] = { open, close, re })]; + + const fn = s => { + if (tc.enabled) { + for (i = 0, s += ""; i < len; i++) { + style = seq[i]; + s = + (open = style.open) + + (~s.indexOf((close = style.close), 4) // skip first \x1b[ + ? s.replace(style.re, open) + : s) + + close; + } + len = 1; + } + return s + }; + + defineProp(tc, style, { + get: () => { + for (let k in Styles) + defineProp(fn, k, { + get: () => ((seq[len++] = Styles[k]), fn) + }); + delete tc[style]; + return (tc[style] = fn) + }, + configurable: true + }); +}; + +init("reset", "\x1b[0m", "\x1b[0m", /\x1b\[0m/g); +init("bold", "\x1b[1m", "\x1b[22m", /\x1b\[22m/g); +init("dim", "\x1b[2m", "\x1b[22m", /\x1b\[22m/g); +init("italic", "\x1b[3m", "\x1b[23m", /\x1b\[23m/g); +init("underline", "\x1b[4m", "\x1b[24m", /\x1b\[24m/g); +init("inverse", "\x1b[7m", "\x1b[27m", /\x1b\[27m/g); +init("hidden", "\x1b[8m", "\x1b[28m", /\x1b\[28m/g); +init("strikethrough", "\x1b[9m", "\x1b[29m", /\x1b\[29m/g); +init("black", "\x1b[30m", "\x1b[39m", /\x1b\[39m/g); +init("red", "\x1b[31m", "\x1b[39m", /\x1b\[39m/g); +init("green", "\x1b[32m", "\x1b[39m", /\x1b\[39m/g); +init("yellow", "\x1b[33m", "\x1b[39m", /\x1b\[39m/g); +init("blue", "\x1b[34m", "\x1b[39m", /\x1b\[39m/g); +init("magenta", "\x1b[35m", "\x1b[39m", /\x1b\[39m/g); +init("cyan", "\x1b[36m", "\x1b[39m", /\x1b\[39m/g); +init("white", "\x1b[37m", "\x1b[39m", /\x1b\[39m/g); +init("gray", "\x1b[90m", "\x1b[39m", /\x1b\[39m/g); +init("bgBlack", "\x1b[40m", "\x1b[49m", /\x1b\[49m/g); +init("bgRed", "\x1b[41m", "\x1b[49m", /\x1b\[49m/g); +init("bgGreen", "\x1b[42m", "\x1b[49m", /\x1b\[49m/g); +init("bgYellow", "\x1b[43m", "\x1b[49m", /\x1b\[49m/g); +init("bgBlue", "\x1b[44m", "\x1b[49m", /\x1b\[49m/g); +init("bgMagenta", "\x1b[45m", "\x1b[49m", /\x1b\[49m/g); +init("bgCyan", "\x1b[46m", "\x1b[49m", /\x1b\[49m/g); +init("bgWhite", "\x1b[47m", "\x1b[49m", /\x1b\[49m/g); + +const turbocolor: any = tc; + + +function handleError(err, recover) { + if (recover === void 0) { recover = false; } + var description = err.message || err; + if (err.name) + description = err.name + ": " + description; + var message = (err.plugin + ? "(" + err.plugin + " plugin) " + description + : description) || err; + console.error(turbocolor.bold.red("[!] " + turbocolor.bold(message.toString()))); + if (err.url) { + console.error(turbocolor.cyan(err.url)); + } + if (err.loc) { + console.error(relativeId(err.loc.file || err.id) + " (" + err.loc.line + ":" + err.loc.column + ")"); + } + else if (err.id) { + console.error(relativeId(err.id)); + } + if (err.frame) { + console.error(turbocolor.dim(err.frame)); + } + if (err.stack) { + + //console.error(turbocolor.dim(err.stack)); + } + console.error(''); + if (!recover) + process.exit(1); +} +let start: [number, number]; +if (process.argv.indexOf("-w") >= 0) { + rollup.watch(configs).on("event", event => { + if (event.code === "BUNDLE_START") { + start = process.hrtime(); + } else if (event.code === "BUNDLE_END") { + let diff = process.hrtime(start); + console.log(`--- Took ${diff[0] * 1000 + diff[1] / 1000000}ms`); + } else if (event.code === "ERROR") { + // console.error(event.error); + handleError(event.error, true); + } else if (event.code === "FATAL") { + handleError(event.error, true); + } else { + console.log(event); + } + }) +} else { + start = process.hrtime(); + Promise.all(configs.map(config => { + return rollup.rollup(config).then((value) => { + value.generate(config as rollup.OutputOptions) + }).catch(err => { + handleError(err, true); + // console.error(err); + }) + })).then(vals => { + let diff = process.hrtime(start); + console.log(`--- Took ${diff[0] * 1000 + diff[1] / 1000000}ms`); + }) +} \ No newline at end of file diff --git a/package.json b/package.json new file mode 100644 index 0000000..2e1a100 --- /dev/null +++ b/package.json @@ -0,0 +1,31 @@ +{ + "name": "svelte-app", + "version": "1.0.0", + "devDependencies": { + "node-sass": "^4.12.0", + "npm-run-all": "^4.1.5", + "rollup": "^1.11.3", + "rollup-plugin-commonjs": "^9.3.4", + "rollup-plugin-copy-assets": "^2.0.1", + "rollup-plugin-node-resolve": "^4.2.3", + "rollup-plugin-svelte": "^5.0.3", + "rollup-plugin-terser": "^4.0.4", + "sirv-cli": "^0.4.0", + "svelte": "^3.2.1", + "svelte-preprocess-sass": "^0.2.0", + "typescript": "^3.4.5" + }, + "scripts": { + "prepublishOnly": "npm run build", + "build": "node build.js", + "autobuild": "node build.js -w -d", + "dev": "run-p start:dev autobuild", + "start": "sirv public", + "start:dev": "sirv public --dev" + }, + "dependencies": { + "@hibas123/utils": "^2.1.0", + "rollup-plugin-typescript2": "^0.21.0", + "what-the-pack": "^2.0.3" + } +} \ No newline at end of file diff --git a/public/font.css b/public/font.css new file mode 100644 index 0000000..d441630 --- /dev/null +++ b/public/font.css @@ -0,0 +1,3 @@ +* { + font-family: 'Roboto', sans-serif !important; +} \ No newline at end of file diff --git a/public/global.css b/public/global.css new file mode 100644 index 0000000..4244752 --- /dev/null +++ b/public/global.css @@ -0,0 +1,245 @@ +:root { + --primary: #1E88E5; + --mdc-theme-primary: var(--primary); + --mdc-theme-primary-bg: var(--mdc-theme--primary); + --mdc-theme-on-primary: white; + --error: #ff2f00; + --border-color: #ababab; + + --default-font-size: 1.05rem; +} + +* { + font-family: 'Roboto', 'Helvetica', sans-serif; +} + +html, +body { + margin: 0; + color: #636363; + position: relative; + background: #eee; + height: 100%; + font-size: var(--default-font-size); +} + +.group { + position: relative; + margin-bottom: 24px; + min-height: 45px; +} + +.floating>input { + font-size: 1.2rem; + padding: 10px 10px 10px 5px; + appearance: none; + -webkit-appearance: none; + display: block; + background: #fafafa; + background: unset; + color: #636363; + width: 100%; + border: none; + border-radius: 0; + /* border-bottom: 1px solid #757575; */ + border-bottom: 1px solid var(--border-color); + box-sizing: border-box; +} + +.floating>input:focus { + outline: none; +} + +/* Label */ + +.floating>label { + color: #999; + font-size: 18px; + font-weight: normal; + position: absolute; + pointer-events: none; + left: 5px; + top: 10px; + transition: all 0.2s ease; +} + +/* active */ + +.floating>input:focus~label, +.floating>input.used~label { + top: -.75em; + transform: scale(.75); + left: -2px; + /* font-size: 14px; */ + color: var(--primary); + transform-origin: left; +} + +/* Underline */ + +.bar { + position: relative; + display: block; + width: 100%; +} + +.bar:before, +.bar:after { + content: ''; + height: 2px; + width: 0; + bottom: 1px; + position: absolute; + background: var(--primary); + transition: all 0.2s ease; +} + +.bar:before { + left: 50%; +} + +.bar:after { + right: 50%; +} + +/* active */ + +.floating>input:focus~.bar:before, +.floating>input:focus~.bar:after { + width: 50%; +} + +/* Highlight */ + +.highlight { + position: absolute; + height: 60%; + width: 100px; + top: 25%; + left: 0; + pointer-events: none; + opacity: 0.5; +} + +/* active */ + +.floating>input:focus~.highlight { + animation: inputHighlighter 0.3s ease; +} + +/* Animations */ + +@keyframes inputHighlighter { + from { + background: var(--primary); + } + + to { + width: 0; + background: transparent; + } +} + + +.btn { + position: relative; + + display: block; + margin: 2rem; + padding: 0 1em; + + overflow: hidden; + + border-width: 0; + outline: none; + border-radius: 4px; + box-shadow: 0 1px 4px rgba(0, 0, 0, .6); + + background-color: #cccccc; + color: #ecf0f1; + + transition: background-color .3s; + + height: 48px; + + text-transform: uppercase; + font-weight: 500; + font-size: 1.2rem; +} + +.btn:hover, +.btn:focus { + filter: brightness(90%); +} + +.btn>* { + position: relative; +} + +.btn span { + display: block; + padding: 12px 24px; +} + +.btn:before { + content: ""; + + position: absolute; + top: 50%; + left: 50%; + + display: block; + width: 0; + padding-top: 0; + + border-radius: 100%; + + background-color: rgba(236, 240, 241, .3); + + -webkit-transform: translate(-50%, -50%); + -moz-transform: translate(-50%, -50%); + -ms-transform: translate(-50%, -50%); + -o-transform: translate(-50%, -50%); + transform: translate(-50%, -50%); +} + +.btn:active:before { + width: 120%; + padding-top: 120%; + + transition: width .2s ease-out, padding-top .2s ease-out; +} + +.loader_box { + width: 64px; + height: 64px; + margin: auto; +} + +.loader { + display: inline-block; + position: relative; + z-index: 100; +} + +.loader:after { + content: " "; + display: block; + width: 46px; + height: 46px; + margin: 1px; + border-radius: 50%; + border: 5px solid var(--primary); + border-color: var(--primary) transparent var(--primary) transparent; + animation: loader 1.2s linear infinite; +} + +@keyframes loader { + 0% { + transform: rotate(0deg); + } + + 100% { + transform: rotate(360deg); + } +} \ No newline at end of file diff --git a/public/global.js b/public/global.js new file mode 100644 index 0000000..53f5cb1 --- /dev/null +++ b/public/global.js @@ -0,0 +1,35 @@ +(() => { + const elements = new WeakSet(); + + function check() { + document.querySelectorAll(".floating>input").forEach(e => { + if (elements.has(e)) return; + elements.add(e); + + function checkState() { + console.log("Check State"); + if (e.value !== "") { + if (e.classList.contains("used")) return; + e.classList.add("used") + } else { + if (e.classList.contains("used")) e.classList.remove("used") + } + } + + e.addEventListener("change", () => checkState()) + checkState() + }) + }; + + const observer = new MutationObserver((mutations) => { + check(); + }); + + + // Start observing the target node for configured mutations + observer.observe(window.document, { + childList: true, + subtree: true + }); + check(); +})() \ No newline at end of file diff --git a/public/home/bundle.css b/public/home/bundle.css new file mode 100644 index 0000000..d54505e --- /dev/null +++ b/public/home/bundle.css @@ -0,0 +1,3 @@ +.main.svelte-o924iy{padding:2rem}li.svelte-o924iy{list-style:none;padding:1rem}li.svelte-o924iy>a.svelte-o924iy{text-decoration:none} + +/*# sourceMappingURL=bundle.css.map */ \ No newline at end of file diff --git a/public/home/bundle.css.map b/public/home/bundle.css.map new file mode 100644 index 0000000..f2e83a3 --- /dev/null +++ b/public/home/bundle.css.map @@ -0,0 +1,12 @@ +{ + "version": 3, + "file": "bundle.css", + "sources": [ + "../../src/Home/App.svelte" + ], + "sourcesContent": [ + "\n\n
\n

Home Page

\n\n

About

\n

\n OpenAuth is a Service to provide simple Authentication to a veriaty of Applications.\n With a simple to use API and different Strategies, it can be easily integrated\n into most Applications.\n

\n\n

QickLinks

\n

\n If you want to manage your Account, click here\n

\n\n

Applications using OpenAuth

\n\n \n
" + ], + "names": [], + "mappings": "AACG,KAAK,cAAC,CAAC,AACJ,OAAO,CAAE,IAAI,AAChB,CAAC,AAED,EAAE,cAAC,CAAC,AACD,UAAU,CAAE,IAAI,CAChB,OAAO,CAAE,IAAI,AAChB,CAAC,AAED,gBAAE,CAAC,CAAC,cAAC,CAAC,AACH,eAAe,CAAE,IAAI,AACxB,CAAC" +} \ No newline at end of file diff --git a/public/home/bundle.js b/public/home/bundle.js new file mode 100644 index 0000000..e3b134c --- /dev/null +++ b/public/home/bundle.js @@ -0,0 +1,1828 @@ +var app = (function () { + 'use strict'; + + function unwrapExports (x) { + return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x; + } + + function createCommonjsModule(fn, module) { + return module = { exports: {} }, fn(module, module.exports), module.exports; + } + + var internal = createCommonjsModule(function (module, exports) { + + Object.defineProperty(exports, '__esModule', { value: true }); + + function noop() {} + + const identity = x => x; + + function assign(tar, src) { + for (const k in src) tar[k] = src[k]; + return tar; + } + + function is_promise(value) { + return value && typeof value.then === 'function'; + } + + function add_location(element, file, line, column, char) { + element.__svelte_meta = { + loc: { file, line, column, char } + }; + } + + function run(fn) { + return fn(); + } + + function blank_object() { + return Object.create(null); + } + + function run_all(fns) { + fns.forEach(run); + } + + function is_function(thing) { + return typeof thing === 'function'; + } + + function safe_not_equal(a, b) { + return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function'); + } + + function not_equal(a, b) { + return a != a ? b == b : a !== b; + } + + function validate_store(store, name) { + if (!store || typeof store.subscribe !== 'function') { + throw new Error(`'${name}' is not a store with a 'subscribe' method`); + } + } + + function subscribe(component, store, callback) { + const unsub = store.subscribe(callback); + + component.$$.on_destroy.push(unsub.unsubscribe + ? () => unsub.unsubscribe() + : unsub); + } + + function create_slot(definition, ctx, fn) { + if (definition) { + const slot_ctx = get_slot_context(definition, ctx, fn); + return definition[0](slot_ctx); + } + } + + function get_slot_context(definition, ctx, fn) { + return definition[1] + ? assign({}, assign(ctx.$$scope.ctx, definition[1](fn ? fn(ctx) : {}))) + : ctx.$$scope.ctx; + } + + function get_slot_changes(definition, ctx, changed, fn) { + return definition[1] + ? assign({}, assign(ctx.$$scope.changed || {}, definition[1](fn ? fn(changed) : {}))) + : ctx.$$scope.changed || {}; + } + + function exclude_internal_props(props) { + const result = {}; + for (const k in props) if (k[0] !== '$') result[k] = props[k]; + return result; + } + + const tasks = new Set(); + let running = false; + + function run_tasks() { + tasks.forEach(task => { + if (!task[0](window.performance.now())) { + tasks.delete(task); + task[1](); + } + }); + + running = tasks.size > 0; + if (running) requestAnimationFrame(run_tasks); + } + + function clear_loops() { + // for testing... + tasks.forEach(task => tasks.delete(task)); + running = false; + } + + function loop(fn) { + let task; + + if (!running) { + running = true; + requestAnimationFrame(run_tasks); + } + + return { + promise: new Promise(fulfil => { + tasks.add(task = [fn, fulfil]); + }), + abort() { + tasks.delete(task); + } + }; + } + + function append(target, node) { + target.appendChild(node); + } + + function insert(target, node, anchor) { + target.insertBefore(node, anchor || null); + } + + function detach(node) { + node.parentNode.removeChild(node); + } + + function detach_between(before, after) { + while (before.nextSibling && before.nextSibling !== after) { + before.parentNode.removeChild(before.nextSibling); + } + } + + function detach_before(after) { + while (after.previousSibling) { + after.parentNode.removeChild(after.previousSibling); + } + } + + function detach_after(before) { + while (before.nextSibling) { + before.parentNode.removeChild(before.nextSibling); + } + } + + function destroy_each(iterations, detaching) { + for (let i = 0; i < iterations.length; i += 1) { + if (iterations[i]) iterations[i].d(detaching); + } + } + + function element(name) { + return document.createElement(name); + } + + function object_without_properties(obj, exclude) { + const target = {}; + for (const k in obj) { + if (Object.prototype.hasOwnProperty.call(obj, k) && exclude.indexOf(k) === -1) { + target[k] = obj[k]; + } + } + return target; + } + + function svg_element(name) { + return document.createElementNS('http://www.w3.org/2000/svg', name); + } + + function text(data) { + return document.createTextNode(data); + } + + function space() { + return text(' '); + } + + function empty() { + return text(''); + } + + function listen(node, event, handler, options) { + node.addEventListener(event, handler, options); + return () => node.removeEventListener(event, handler, options); + } + + function prevent_default(fn) { + return function(event) { + event.preventDefault(); + return fn.call(this, event); + }; + } + + function stop_propagation(fn) { + return function(event) { + event.stopPropagation(); + return fn.call(this, event); + }; + } + + function attr(node, attribute, value) { + if (value == null) node.removeAttribute(attribute); + else node.setAttribute(attribute, value); + } + + function set_attributes(node, attributes) { + for (const key in attributes) { + if (key === 'style') { + node.style.cssText = attributes[key]; + } else if (key in node) { + node[key] = attributes[key]; + } else { + attr(node, key, attributes[key]); + } + } + } + + function set_custom_element_data(node, prop, value) { + if (prop in node) { + node[prop] = value; + } else { + attr(node, prop, value); + } + } + + function xlink_attr(node, attribute, value) { + node.setAttributeNS('http://www.w3.org/1999/xlink', attribute, value); + } + + function get_binding_group_value(group) { + const value = []; + for (let i = 0; i < group.length; i += 1) { + if (group[i].checked) value.push(group[i].__value); + } + return value; + } + + function to_number(value) { + return value === '' ? undefined : +value; + } + + function time_ranges_to_array(ranges) { + const array = []; + for (let i = 0; i < ranges.length; i += 1) { + array.push({ start: ranges.start(i), end: ranges.end(i) }); + } + return array; + } + + function children(element) { + return Array.from(element.childNodes); + } + + function claim_element(nodes, name, attributes, svg) { + for (let i = 0; i < nodes.length; i += 1) { + const node = nodes[i]; + if (node.nodeName === name) { + for (let j = 0; j < node.attributes.length; j += 1) { + const attribute = node.attributes[j]; + if (!attributes[attribute.name]) node.removeAttribute(attribute.name); + } + return nodes.splice(i, 1)[0]; // TODO strip unwanted attributes + } + } + + return svg ? svg_element(name) : element(name); + } + + function claim_text(nodes, data) { + for (let i = 0; i < nodes.length; i += 1) { + const node = nodes[i]; + if (node.nodeType === 3) { + node.data = data; + return nodes.splice(i, 1)[0]; + } + } + + return text(data); + } + + function set_data(text, data) { + data = '' + data; + if (text.data !== data) text.data = data; + } + + function set_input_type(input, type) { + try { + input.type = type; + } catch (e) { + // do nothing + } + } + + function set_style(node, key, value) { + node.style.setProperty(key, value); + } + + function select_option(select, value) { + for (let i = 0; i < select.options.length; i += 1) { + const option = select.options[i]; + + if (option.__value === value) { + option.selected = true; + return; + } + } + } + + function select_options(select, value) { + for (let i = 0; i < select.options.length; i += 1) { + const option = select.options[i]; + option.selected = ~value.indexOf(option.__value); + } + } + + function select_value(select) { + const selected_option = select.querySelector(':checked') || select.options[0]; + return selected_option && selected_option.__value; + } + + function select_multiple_value(select) { + return [].map.call(select.querySelectorAll(':checked'), option => option.__value); + } + + function add_resize_listener(element, fn) { + if (getComputedStyle(element).position === 'static') { + element.style.position = 'relative'; + } + + const object = document.createElement('object'); + object.setAttribute('style', 'display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; pointer-events: none; z-index: -1;'); + object.type = 'text/html'; + + let win; + + object.onload = () => { + win = object.contentDocument.defaultView; + win.addEventListener('resize', fn); + }; + + if (/Trident/.test(navigator.userAgent)) { + element.appendChild(object); + object.data = 'about:blank'; + } else { + object.data = 'about:blank'; + element.appendChild(object); + } + + return { + cancel: () => { + win && win.removeEventListener && win.removeEventListener('resize', fn); + element.removeChild(object); + } + }; + } + + function toggle_class(element, name, toggle) { + element.classList[toggle ? 'add' : 'remove'](name); + } + + function custom_event(type, detail) { + const e = document.createEvent('CustomEvent'); + e.initCustomEvent(type, false, false, detail); + return e; + } + + let stylesheet; + let active = 0; + let current_rules = {}; + + // https://github.com/darkskyapp/string-hash/blob/master/index.js + function hash(str) { + let hash = 5381; + let i = str.length; + + while (i--) hash = ((hash << 5) - hash) ^ str.charCodeAt(i); + return hash >>> 0; + } + + function create_rule(node, a, b, duration, delay, ease, fn, uid = 0) { + const step = 16.666 / duration; + let keyframes = '{\n'; + + for (let p = 0; p <= 1; p += step) { + const t = a + (b - a) * ease(p); + keyframes += p * 100 + `%{${fn(t, 1 - t)}}\n`; + } + + const rule = keyframes + `100% {${fn(b, 1 - b)}}\n}`; + const name = `__svelte_${hash(rule)}_${uid}`; + + if (!current_rules[name]) { + if (!stylesheet) { + const style = element('style'); + document.head.appendChild(style); + stylesheet = style.sheet; + } + + current_rules[name] = true; + stylesheet.insertRule(`@keyframes ${name} ${rule}`, stylesheet.cssRules.length); + } + + const animation = node.style.animation || ''; + node.style.animation = `${animation ? `${animation}, ` : ``}${name} ${duration}ms linear ${delay}ms 1 both`; + + active += 1; + return name; + } + + function delete_rule(node, name) { + node.style.animation = (node.style.animation || '') + .split(', ') + .filter(name + ? anim => anim.indexOf(name) < 0 // remove specific animation + : anim => anim.indexOf('__svelte') === -1 // remove all Svelte animations + ) + .join(', '); + + if (name && !--active) clear_rules(); + } + + function clear_rules() { + requestAnimationFrame(() => { + if (active) return; + let i = stylesheet.cssRules.length; + while (i--) stylesheet.deleteRule(i); + current_rules = {}; + }); + } + + function create_animation(node, from, fn, params) { + if (!from) return noop; + + const to = node.getBoundingClientRect(); + if (from.left === to.left && from.right === to.right && from.top === to.top && from.bottom === to.bottom) return noop; + + const { + delay = 0, + duration = 300, + easing = identity, + start: start_time = window.performance.now() + delay, + end = start_time + duration, + tick = noop, + css + } = fn(node, { from, to }, params); + + let running = true; + let started = false; + let name; + + const css_text = node.style.cssText; + + function start() { + if (css) { + if (delay) node.style.cssText = css_text; // TODO create delayed animation instead? + name = create_rule(node, 0, 1, duration, 0, easing, css); + } + + started = true; + } + + function stop() { + if (css) delete_rule(node, name); + running = false; + } + + loop(now => { + if (!started && now >= start_time) { + start(); + } + + if (started && now >= end) { + tick(1, 0); + stop(); + } + + if (!running) { + return false; + } + + if (started) { + const p = now - start_time; + const t = 0 + 1 * easing(p / duration); + tick(t, 1 - t); + } + + return true; + }); + + if (delay) { + if (css) node.style.cssText += css(0, 1); + } else { + start(); + } + + tick(0, 1); + + return stop; + } + + function fix_position(node) { + const style = getComputedStyle(node); + + if (style.position !== 'absolute' && style.position !== 'fixed') { + const { width, height } = style; + const a = node.getBoundingClientRect(); + node.style.position = 'absolute'; + node.style.width = width; + node.style.height = height; + const b = node.getBoundingClientRect(); + + if (a.left !== b.left || a.top !== b.top) { + const style = getComputedStyle(node); + const transform = style.transform === 'none' ? '' : style.transform; + + node.style.transform = `${transform} translate(${a.left - b.left}px, ${a.top - b.top}px)`; + } + } + } + + function set_current_component(component) { + exports.current_component = component; + } + + function get_current_component() { + if (!exports.current_component) throw new Error(`Function called outside component initialization`); + return exports.current_component; + } + + function beforeUpdate(fn) { + get_current_component().$$.before_render.push(fn); + } + + function onMount(fn) { + get_current_component().$$.on_mount.push(fn); + } + + function afterUpdate(fn) { + get_current_component().$$.after_render.push(fn); + } + + function onDestroy(fn) { + get_current_component().$$.on_destroy.push(fn); + } + + function createEventDispatcher() { + const component = exports.current_component; + + return (type, detail) => { + const callbacks = component.$$.callbacks[type]; + + if (callbacks) { + // TODO are there situations where events could be dispatched + // in a server (non-DOM) environment? + const event = custom_event(type, detail); + callbacks.slice().forEach(fn => { + fn.call(component, event); + }); + } + }; + } + + function setContext(key, context) { + get_current_component().$$.context.set(key, context); + } + + function getContext(key) { + return get_current_component().$$.context.get(key); + } + + // TODO figure out if we still want to support + // shorthand events, or if we want to implement + // a real bubbling mechanism + function bubble(component, event) { + const callbacks = component.$$.callbacks[event.type]; + + if (callbacks) { + callbacks.slice().forEach(fn => fn(event)); + } + } + + const dirty_components = []; + const intros = { enabled: false }; + + const resolved_promise = Promise.resolve(); + let update_scheduled = false; + const binding_callbacks = []; + const render_callbacks = []; + const flush_callbacks = []; + + function schedule_update() { + if (!update_scheduled) { + update_scheduled = true; + resolved_promise.then(flush); + } + } + + function tick() { + schedule_update(); + return resolved_promise; + } + + function add_binding_callback(fn) { + binding_callbacks.push(fn); + } + + function add_render_callback(fn) { + render_callbacks.push(fn); + } + + function add_flush_callback(fn) { + flush_callbacks.push(fn); + } + + function flush() { + const seen_callbacks = new Set(); + + do { + // first, call beforeUpdate functions + // and update components + while (dirty_components.length) { + const component = dirty_components.shift(); + set_current_component(component); + update(component.$$); + } + + while (binding_callbacks.length) binding_callbacks.shift()(); + + // then, once components are updated, call + // afterUpdate functions. This may cause + // subsequent updates... + while (render_callbacks.length) { + const callback = render_callbacks.pop(); + if (!seen_callbacks.has(callback)) { + callback(); + + // ...so guard against infinite loops + seen_callbacks.add(callback); + } + } + } while (dirty_components.length); + + while (flush_callbacks.length) { + flush_callbacks.pop()(); + } + + update_scheduled = false; + } + + function update($$) { + if ($$.fragment) { + $$.update($$.dirty); + run_all($$.before_render); + $$.fragment.p($$.dirty, $$.ctx); + $$.dirty = null; + + $$.after_render.forEach(add_render_callback); + } + } + + let promise; + + function wait() { + if (!promise) { + promise = Promise.resolve(); + promise.then(() => { + promise = null; + }); + } + + return promise; + } + + function dispatch(node, direction, kind) { + node.dispatchEvent(custom_event(`${direction ? 'intro' : 'outro'}${kind}`)); + } + + let outros; + + function group_outros() { + outros = { + remaining: 0, + callbacks: [] + }; + } + + function check_outros() { + if (!outros.remaining) { + run_all(outros.callbacks); + } + } + + function on_outro(callback) { + outros.callbacks.push(callback); + } + + function create_in_transition(node, fn, params) { + let config = fn(node, params); + let running = false; + let animation_name; + let task; + let uid = 0; + + function cleanup() { + if (animation_name) delete_rule(node, animation_name); + } + + function go() { + const { + delay = 0, + duration = 300, + easing = identity, + tick: tick$$1 = noop, + css + } = config; + + if (css) animation_name = create_rule(node, 0, 1, duration, delay, easing, css, uid++); + tick$$1(0, 1); + + const start_time = window.performance.now() + delay; + const end_time = start_time + duration; + + if (task) task.abort(); + running = true; + + task = loop(now => { + if (running) { + if (now >= end_time) { + tick$$1(1, 0); + cleanup(); + return running = false; + } + + if (now >= start_time) { + const t = easing((now - start_time) / duration); + tick$$1(t, 1 - t); + } + } + + return running; + }); + } + + let started = false; + + return { + start() { + if (started) return; + + delete_rule(node); + + if (typeof config === 'function') { + config = config(); + wait().then(go); + } else { + go(); + } + }, + + invalidate() { + started = false; + }, + + end() { + if (running) { + cleanup(); + running = false; + } + } + }; + } + + function create_out_transition(node, fn, params) { + let config = fn(node, params); + let running = true; + let animation_name; + + const group = outros; + + group.remaining += 1; + + function go() { + const { + delay = 0, + duration = 300, + easing = identity, + tick: tick$$1 = noop, + css + } = config; + + if (css) animation_name = create_rule(node, 1, 0, duration, delay, easing, css); + + const start_time = window.performance.now() + delay; + const end_time = start_time + duration; + + loop(now => { + if (running) { + if (now >= end_time) { + tick$$1(0, 1); + + if (!--group.remaining) { + // this will result in `end()` being called, + // so we don't need to clean up here + run_all(group.callbacks); + } + + return false; + } + + if (now >= start_time) { + const t = easing((now - start_time) / duration); + tick$$1(1 - t, t); + } + } + + return running; + }); + } + + if (typeof config === 'function') { + wait().then(() => { + config = config(); + go(); + }); + } else { + go(); + } + + return { + end(reset) { + if (reset && config.tick) { + config.tick(1, 0); + } + + if (running) { + if (animation_name) delete_rule(node, animation_name); + running = false; + } + } + }; + } + + function create_bidirectional_transition(node, fn, params, intro) { + let config = fn(node, params); + + let t = intro ? 0 : 1; + + let running_program = null; + let pending_program = null; + let animation_name = null; + + function clear_animation() { + if (animation_name) delete_rule(node, animation_name); + } + + function init(program, duration) { + const d = program.b - t; + duration *= Math.abs(d); + + return { + a: t, + b: program.b, + d, + duration, + start: program.start, + end: program.start + duration, + group: program.group + }; + } + + function go(b) { + const { + delay = 0, + duration = 300, + easing = identity, + tick: tick$$1 = noop, + css + } = config; + + const program = { + start: window.performance.now() + delay, + b + }; + + if (!b) { + program.group = outros; + outros.remaining += 1; + } + + if (running_program) { + pending_program = program; + } else { + // if this is an intro, and there's a delay, we need to do + // an initial tick and/or apply CSS animation immediately + if (css) { + clear_animation(); + animation_name = create_rule(node, t, b, duration, delay, easing, css); + } + + if (b) tick$$1(0, 1); + + running_program = init(program, duration); + add_render_callback(() => dispatch(node, b, 'start')); + + loop(now => { + if (pending_program && now > pending_program.start) { + running_program = init(pending_program, duration); + pending_program = null; + + dispatch(node, running_program.b, 'start'); + + if (css) { + clear_animation(); + animation_name = create_rule(node, t, running_program.b, running_program.duration, 0, easing, config.css); + } + } + + if (running_program) { + if (now >= running_program.end) { + tick$$1(t = running_program.b, 1 - t); + dispatch(node, running_program.b, 'end'); + + if (!pending_program) { + // we're done + if (running_program.b) { + // intro — we can tidy up immediately + clear_animation(); + } else { + // outro — needs to be coordinated + if (!--running_program.group.remaining) run_all(running_program.group.callbacks); + } + } + + running_program = null; + } + + else if (now >= running_program.start) { + const p = now - running_program.start; + t = running_program.a + running_program.d * easing(p / running_program.duration); + tick$$1(t, 1 - t); + } + } + + return !!(running_program || pending_program); + }); + } + } + + return { + run(b) { + if (typeof config === 'function') { + wait().then(() => { + config = config(); + go(b); + }); + } else { + go(b); + } + }, + + end() { + clear_animation(); + running_program = pending_program = null; + } + }; + } + + function handle_promise(promise, info) { + const token = info.token = {}; + + function update(type, index, key, value) { + if (info.token !== token) return; + + info.resolved = key && { [key]: value }; + + const child_ctx = assign(assign({}, info.ctx), info.resolved); + const block = type && (info.current = type)(child_ctx); + + if (info.block) { + if (info.blocks) { + info.blocks.forEach((block, i) => { + if (i !== index && block) { + group_outros(); + on_outro(() => { + block.d(1); + info.blocks[i] = null; + }); + block.o(1); + check_outros(); + } + }); + } else { + info.block.d(1); + } + + block.c(); + if (block.i) block.i(1); + block.m(info.mount(), info.anchor); + + flush(); + } + + info.block = block; + if (info.blocks) info.blocks[index] = block; + } + + if (is_promise(promise)) { + promise.then(value => { + update(info.then, 1, info.value, value); + }, error => { + update(info.catch, 2, info.error, error); + }); + + // if we previously had a then/catch block, destroy it + if (info.current !== info.pending) { + update(info.pending, 0); + return true; + } + } else { + if (info.current !== info.then) { + update(info.then, 1, info.value, promise); + return true; + } + + info.resolved = { [info.value]: promise }; + } + } + + function destroy_block(block, lookup) { + block.d(1); + lookup.delete(block.key); + } + + function outro_and_destroy_block(block, lookup) { + on_outro(() => { + destroy_block(block, lookup); + }); + + block.o(1); + } + + function fix_and_outro_and_destroy_block(block, lookup) { + block.f(); + outro_and_destroy_block(block, lookup); + } + + function update_keyed_each(old_blocks, changed, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block, next, get_context) { + let o = old_blocks.length; + let n = list.length; + + let i = o; + const old_indexes = {}; + while (i--) old_indexes[old_blocks[i].key] = i; + + const new_blocks = []; + const new_lookup = new Map(); + const deltas = new Map(); + + i = n; + while (i--) { + const child_ctx = get_context(ctx, list, i); + const key = get_key(child_ctx); + let block = lookup.get(key); + + if (!block) { + block = create_each_block(key, child_ctx); + block.c(); + } else if (dynamic) { + block.p(changed, child_ctx); + } + + new_lookup.set(key, new_blocks[i] = block); + + if (key in old_indexes) deltas.set(key, Math.abs(i - old_indexes[key])); + } + + const will_move = new Set(); + const did_move = new Set(); + + function insert(block) { + if (block.i) block.i(1); + block.m(node, next); + lookup.set(block.key, block); + next = block.first; + n--; + } + + while (o && n) { + const new_block = new_blocks[n - 1]; + const old_block = old_blocks[o - 1]; + const new_key = new_block.key; + const old_key = old_block.key; + + if (new_block === old_block) { + // do nothing + next = new_block.first; + o--; + n--; + } + + else if (!new_lookup.has(old_key)) { + // remove old block + destroy(old_block, lookup); + o--; + } + + else if (!lookup.has(new_key) || will_move.has(new_key)) { + insert(new_block); + } + + else if (did_move.has(old_key)) { + o--; + + } else if (deltas.get(new_key) > deltas.get(old_key)) { + did_move.add(new_key); + insert(new_block); + + } else { + will_move.add(old_key); + o--; + } + } + + while (o--) { + const old_block = old_blocks[o]; + if (!new_lookup.has(old_block.key)) destroy(old_block, lookup); + } + + while (n) insert(new_blocks[n - 1]); + + return new_blocks; + } + + function measure(blocks) { + const rects = {}; + let i = blocks.length; + while (i--) rects[blocks[i].key] = blocks[i].node.getBoundingClientRect(); + return rects; + } + + function get_spread_update(levels, updates) { + const update = {}; + + const to_null_out = {}; + const accounted_for = { $$scope: 1 }; + + let i = levels.length; + while (i--) { + const o = levels[i]; + const n = updates[i]; + + if (n) { + for (const key in o) { + if (!(key in n)) to_null_out[key] = 1; + } + + for (const key in n) { + if (!accounted_for[key]) { + update[key] = n[key]; + accounted_for[key] = 1; + } + } + + levels[i] = n; + } else { + for (const key in o) { + accounted_for[key] = 1; + } + } + } + + for (const key in to_null_out) { + if (!(key in update)) update[key] = undefined; + } + + return update; + } + + const invalid_attribute_name_character = /[\s'">/=\u{FDD0}-\u{FDEF}\u{FFFE}\u{FFFF}\u{1FFFE}\u{1FFFF}\u{2FFFE}\u{2FFFF}\u{3FFFE}\u{3FFFF}\u{4FFFE}\u{4FFFF}\u{5FFFE}\u{5FFFF}\u{6FFFE}\u{6FFFF}\u{7FFFE}\u{7FFFF}\u{8FFFE}\u{8FFFF}\u{9FFFE}\u{9FFFF}\u{AFFFE}\u{AFFFF}\u{BFFFE}\u{BFFFF}\u{CFFFE}\u{CFFFF}\u{DFFFE}\u{DFFFF}\u{EFFFE}\u{EFFFF}\u{FFFFE}\u{FFFFF}\u{10FFFE}\u{10FFFF}]/u; + // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2 + // https://infra.spec.whatwg.org/#noncharacter + + function spread(args) { + const attributes = Object.assign({}, ...args); + let str = ''; + + Object.keys(attributes).forEach(name => { + if (invalid_attribute_name_character.test(name)) return; + + const value = attributes[name]; + if (value === undefined) return; + if (value === true) str += " " + name; + + const escaped = String(value) + .replace(/"/g, '"') + .replace(/'/g, '''); + + str += " " + name + "=" + JSON.stringify(escaped); + }); + + return str; + } + + const escaped = { + '"': '"', + "'": ''', + '&': '&', + '<': '<', + '>': '>' + }; + + function escape(html) { + return String(html).replace(/["'&<>]/g, match => escaped[match]); + } + + function each(items, fn) { + let str = ''; + for (let i = 0; i < items.length; i += 1) { + str += fn(items[i], i); + } + return str; + } + + const missing_component = { + $$render: () => '' + }; + + function validate_component(component, name) { + if (!component || !component.$$render) { + if (name === 'svelte:component') name += ' this={...}'; + throw new Error(`<${name}> is not a valid SSR component. You may need to review your build config to ensure that dependencies are compiled, rather than imported as pre-compiled modules`); + } + + return component; + } + + function debug(file, line, column, values) { + console.log(`{@debug} ${file ? file + ' ' : ''}(${line}:${column})`); // eslint-disable-line no-console + console.log(values); // eslint-disable-line no-console + return ''; + } + + let on_destroy; + + function create_ssr_component(fn) { + function $$render(result, props, bindings, slots) { + const parent_component = exports.current_component; + + const $$ = { + on_destroy, + context: new Map(parent_component ? parent_component.$$.context : []), + + // these will be immediately discarded + on_mount: [], + before_render: [], + after_render: [], + callbacks: blank_object() + }; + + set_current_component({ $$ }); + + const html = fn(result, props, bindings, slots); + + set_current_component(parent_component); + return html; + } + + return { + render: (props = {}, options = {}) => { + on_destroy = []; + + const result = { head: '', css: new Set() }; + const html = $$render(result, props, {}, options); + + run_all(on_destroy); + + return { + html, + css: { + code: Array.from(result.css).map(css => css.code).join('\n'), + map: null // TODO + }, + head: result.head + }; + }, + + $$render + }; + } + + function get_store_value(store) { + let value; + store.subscribe(_ => value = _)(); + return value; + } + + function bind(component, name, callback) { + if (component.$$.props.indexOf(name) === -1) return; + component.$$.bound[name] = callback; + callback(component.$$.ctx[name]); + } + + function mount_component(component, target, anchor) { + const { fragment, on_mount, on_destroy, after_render } = component.$$; + + fragment.m(target, anchor); + + // onMount happens after the initial afterUpdate. Because + // afterUpdate callbacks happen in reverse order (inner first) + // we schedule onMount callbacks before afterUpdate callbacks + add_render_callback(() => { + const new_on_destroy = on_mount.map(run).filter(is_function); + if (on_destroy) { + on_destroy.push(...new_on_destroy); + } else { + // Edge case - component was destroyed immediately, + // most likely as a result of a binding initialising + run_all(new_on_destroy); + } + component.$$.on_mount = []; + }); + + after_render.forEach(add_render_callback); + } + + function destroy(component, detaching) { + if (component.$$) { + run_all(component.$$.on_destroy); + component.$$.fragment.d(detaching); + + // TODO null out other refs, including component.$$ (but need to + // preserve final state?) + component.$$.on_destroy = component.$$.fragment = null; + component.$$.ctx = {}; + } + } + + function make_dirty(component, key) { + if (!component.$$.dirty) { + dirty_components.push(component); + schedule_update(); + component.$$.dirty = {}; + } + component.$$.dirty[key] = true; + } + + function init(component, options, instance, create_fragment, not_equal$$1, prop_names) { + const parent_component = exports.current_component; + set_current_component(component); + + const props = options.props || {}; + + const $$ = component.$$ = { + fragment: null, + ctx: null, + + // state + props: prop_names, + update: noop, + not_equal: not_equal$$1, + bound: blank_object(), + + // lifecycle + on_mount: [], + on_destroy: [], + before_render: [], + after_render: [], + context: new Map(parent_component ? parent_component.$$.context : []), + + // everything else + callbacks: blank_object(), + dirty: null + }; + + let ready = false; + + $$.ctx = instance + ? instance(component, props, (key, value) => { + if ($$.ctx && not_equal$$1($$.ctx[key], $$.ctx[key] = value)) { + if ($$.bound[key]) $$.bound[key](value); + if (ready) make_dirty(component, key); + } + }) + : props; + + $$.update(); + ready = true; + run_all($$.before_render); + $$.fragment = create_fragment($$.ctx); + + if (options.target) { + if (options.hydrate) { + $$.fragment.l(children(options.target)); + } else { + $$.fragment.c(); + } + + if (options.intro && component.$$.fragment.i) component.$$.fragment.i(); + mount_component(component, options.target, options.anchor); + flush(); + } + + set_current_component(parent_component); + } + if (typeof HTMLElement !== 'undefined') { + exports.SvelteElement = class extends HTMLElement { + constructor() { + super(); + this.attachShadow({ mode: 'open' }); + } + + connectedCallback() { + for (const key in this.$$.slotted) { + this.appendChild(this.$$.slotted[key]); + } + } + + attributeChangedCallback(attr$$1, oldValue, newValue) { + this[attr$$1] = newValue; + } + + $destroy() { + destroy(this, true); + this.$destroy = noop; + } + + $on(type, callback) { + // TODO should this delegate to addEventListener? + const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = [])); + callbacks.push(callback); + + return () => { + const index = callbacks.indexOf(callback); + if (index !== -1) callbacks.splice(index, 1); + }; + } + + $set() { + // overridden by instance, if it has props + } + }; + } + + class SvelteComponent { + $destroy() { + destroy(this, true); + this.$destroy = noop; + } + + $on(type, callback) { + const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = [])); + callbacks.push(callback); + + return () => { + const index = callbacks.indexOf(callback); + if (index !== -1) callbacks.splice(index, 1); + }; + } + + $set() { + // overridden by instance, if it has props + } + } + + class SvelteComponentDev extends SvelteComponent { + constructor(options) { + if (!options || (!options.target && !options.$$inline)) { + throw new Error(`'target' is a required option`); + } + + super(); + } + + $destroy() { + super.$destroy(); + this.$destroy = () => { + console.warn(`Component was already destroyed`); // eslint-disable-line no-console + }; + } + } + + exports.create_animation = create_animation; + exports.fix_position = fix_position; + exports.handle_promise = handle_promise; + exports.append = append; + exports.insert = insert; + exports.detach = detach; + exports.detach_between = detach_between; + exports.detach_before = detach_before; + exports.detach_after = detach_after; + exports.destroy_each = destroy_each; + exports.element = element; + exports.object_without_properties = object_without_properties; + exports.svg_element = svg_element; + exports.text = text; + exports.space = space; + exports.empty = empty; + exports.listen = listen; + exports.prevent_default = prevent_default; + exports.stop_propagation = stop_propagation; + exports.attr = attr; + exports.set_attributes = set_attributes; + exports.set_custom_element_data = set_custom_element_data; + exports.xlink_attr = xlink_attr; + exports.get_binding_group_value = get_binding_group_value; + exports.to_number = to_number; + exports.time_ranges_to_array = time_ranges_to_array; + exports.children = children; + exports.claim_element = claim_element; + exports.claim_text = claim_text; + exports.set_data = set_data; + exports.set_input_type = set_input_type; + exports.set_style = set_style; + exports.select_option = select_option; + exports.select_options = select_options; + exports.select_value = select_value; + exports.select_multiple_value = select_multiple_value; + exports.add_resize_listener = add_resize_listener; + exports.toggle_class = toggle_class; + exports.custom_event = custom_event; + exports.destroy_block = destroy_block; + exports.outro_and_destroy_block = outro_and_destroy_block; + exports.fix_and_outro_and_destroy_block = fix_and_outro_and_destroy_block; + exports.update_keyed_each = update_keyed_each; + exports.measure = measure; + exports.set_current_component = set_current_component; + exports.beforeUpdate = beforeUpdate; + exports.onMount = onMount; + exports.afterUpdate = afterUpdate; + exports.onDestroy = onDestroy; + exports.createEventDispatcher = createEventDispatcher; + exports.setContext = setContext; + exports.getContext = getContext; + exports.bubble = bubble; + exports.clear_loops = clear_loops; + exports.loop = loop; + exports.dirty_components = dirty_components; + exports.intros = intros; + exports.schedule_update = schedule_update; + exports.tick = tick; + exports.add_binding_callback = add_binding_callback; + exports.add_render_callback = add_render_callback; + exports.add_flush_callback = add_flush_callback; + exports.flush = flush; + exports.get_spread_update = get_spread_update; + exports.invalid_attribute_name_character = invalid_attribute_name_character; + exports.spread = spread; + exports.escaped = escaped; + exports.escape = escape; + exports.each = each; + exports.missing_component = missing_component; + exports.validate_component = validate_component; + exports.debug = debug; + exports.create_ssr_component = create_ssr_component; + exports.get_store_value = get_store_value; + exports.group_outros = group_outros; + exports.check_outros = check_outros; + exports.on_outro = on_outro; + exports.create_in_transition = create_in_transition; + exports.create_out_transition = create_out_transition; + exports.create_bidirectional_transition = create_bidirectional_transition; + exports.noop = noop; + exports.identity = identity; + exports.assign = assign; + exports.is_promise = is_promise; + exports.add_location = add_location; + exports.run = run; + exports.blank_object = blank_object; + exports.run_all = run_all; + exports.is_function = is_function; + exports.safe_not_equal = safe_not_equal; + exports.not_equal = not_equal; + exports.validate_store = validate_store; + exports.subscribe = subscribe; + exports.create_slot = create_slot; + exports.get_slot_context = get_slot_context; + exports.get_slot_changes = get_slot_changes; + exports.exclude_internal_props = exclude_internal_props; + exports.bind = bind; + exports.mount_component = mount_component; + exports.init = init; + exports.SvelteComponent = SvelteComponent; + exports.SvelteComponentDev = SvelteComponentDev; + }); + + unwrapExports(internal); + var internal_1 = internal.current_component; + var internal_2 = internal.SvelteElement; + var internal_3 = internal.create_animation; + var internal_4 = internal.fix_position; + var internal_5 = internal.handle_promise; + var internal_6 = internal.append; + var internal_7 = internal.insert; + var internal_8 = internal.detach; + var internal_9 = internal.detach_between; + var internal_10 = internal.detach_before; + var internal_11 = internal.detach_after; + var internal_12 = internal.destroy_each; + var internal_13 = internal.element; + var internal_14 = internal.object_without_properties; + var internal_15 = internal.svg_element; + var internal_16 = internal.text; + var internal_17 = internal.space; + var internal_18 = internal.empty; + var internal_19 = internal.listen; + var internal_20 = internal.prevent_default; + var internal_21 = internal.stop_propagation; + var internal_22 = internal.attr; + var internal_23 = internal.set_attributes; + var internal_24 = internal.set_custom_element_data; + var internal_25 = internal.xlink_attr; + var internal_26 = internal.get_binding_group_value; + var internal_27 = internal.to_number; + var internal_28 = internal.time_ranges_to_array; + var internal_29 = internal.children; + var internal_30 = internal.claim_element; + var internal_31 = internal.claim_text; + var internal_32 = internal.set_data; + var internal_33 = internal.set_input_type; + var internal_34 = internal.set_style; + var internal_35 = internal.select_option; + var internal_36 = internal.select_options; + var internal_37 = internal.select_value; + var internal_38 = internal.select_multiple_value; + var internal_39 = internal.add_resize_listener; + var internal_40 = internal.toggle_class; + var internal_41 = internal.custom_event; + var internal_42 = internal.destroy_block; + var internal_43 = internal.outro_and_destroy_block; + var internal_44 = internal.fix_and_outro_and_destroy_block; + var internal_45 = internal.update_keyed_each; + var internal_46 = internal.measure; + var internal_47 = internal.set_current_component; + var internal_48 = internal.beforeUpdate; + var internal_49 = internal.onMount; + var internal_50 = internal.afterUpdate; + var internal_51 = internal.onDestroy; + var internal_52 = internal.createEventDispatcher; + var internal_53 = internal.setContext; + var internal_54 = internal.getContext; + var internal_55 = internal.bubble; + var internal_56 = internal.clear_loops; + var internal_57 = internal.loop; + var internal_58 = internal.dirty_components; + var internal_59 = internal.intros; + var internal_60 = internal.schedule_update; + var internal_61 = internal.tick; + var internal_62 = internal.add_binding_callback; + var internal_63 = internal.add_render_callback; + var internal_64 = internal.add_flush_callback; + var internal_65 = internal.flush; + var internal_66 = internal.get_spread_update; + var internal_67 = internal.invalid_attribute_name_character; + var internal_68 = internal.spread; + var internal_69 = internal.escaped; + var internal_70 = internal.escape; + var internal_71 = internal.each; + var internal_72 = internal.missing_component; + var internal_73 = internal.validate_component; + var internal_74 = internal.debug; + var internal_75 = internal.create_ssr_component; + var internal_76 = internal.get_store_value; + var internal_77 = internal.group_outros; + var internal_78 = internal.check_outros; + var internal_79 = internal.on_outro; + var internal_80 = internal.create_in_transition; + var internal_81 = internal.create_out_transition; + var internal_82 = internal.create_bidirectional_transition; + var internal_83 = internal.noop; + var internal_84 = internal.identity; + var internal_85 = internal.assign; + var internal_86 = internal.is_promise; + var internal_87 = internal.add_location; + var internal_88 = internal.run; + var internal_89 = internal.blank_object; + var internal_90 = internal.run_all; + var internal_91 = internal.is_function; + var internal_92 = internal.safe_not_equal; + var internal_93 = internal.not_equal; + var internal_94 = internal.validate_store; + var internal_95 = internal.subscribe; + var internal_96 = internal.create_slot; + var internal_97 = internal.get_slot_context; + var internal_98 = internal.get_slot_changes; + var internal_99 = internal.exclude_internal_props; + var internal_100 = internal.bind; + var internal_101 = internal.mount_component; + var internal_102 = internal.init; + var internal_103 = internal.SvelteComponent; + var internal_104 = internal.SvelteComponentDev; + + /* src/Home/App.svelte generated by Svelte v3.2.1 */ + + const file = "src/Home/App.svelte"; + + function create_fragment(ctx) { + var div, h1, t1, h20, t3, p0, t5, h21, t7, p1, t8, a0, t10, h22, t12, ul, li0, a1, t14, li1, a2; + + return { + c: function create() { + div = internal_13("div"); + h1 = internal_13("h1"); + h1.textContent = "Home Page"; + t1 = internal_17(); + h20 = internal_13("h2"); + h20.textContent = "About"; + t3 = internal_17(); + p0 = internal_13("p"); + p0.textContent = "OpenAuth is a Service to provide simple Authentication to a veriaty of Applications.\n With a simple to use API and different Strategies, it can be easily integrated\n into most Applications."; + t5 = internal_17(); + h21 = internal_13("h2"); + h21.textContent = "QickLinks"; + t7 = internal_17(); + p1 = internal_13("p"); + t8 = internal_16("If you want to manage your Account, click "); + a0 = internal_13("a"); + a0.textContent = "here"; + t10 = internal_17(); + h22 = internal_13("h2"); + h22.textContent = "Applications using OpenAuth"; + t12 = internal_17(); + ul = internal_13("ul"); + li0 = internal_13("li"); + a1 = internal_13("a"); + a1.textContent = "EBook Store and Reader"; + t14 = internal_17(); + li1 = internal_13("li"); + a2 = internal_13("a"); + a2.textContent = "Secure and Simple Notes application"; + internal_87(h1, file, 16, 3, 181); + internal_87(h20, file, 18, 3, 204); + internal_87(p0, file, 19, 3, 222); + internal_87(h21, file, 25, 3, 444); + a0.href = "user.html"; + internal_87(a0, file, 27, 48, 518); + internal_87(p1, file, 26, 3, 466); + internal_87(h22, file, 30, 3, 559); + a1.href = "https://ebook.stamm.me"; + a1.className = "svelte-o924iy"; + internal_87(a1, file, 33, 10, 617); + li0.className = "svelte-o924iy"; + internal_87(li0, file, 33, 6, 613); + a2.href = "https://notes.hibas123.de"; + a2.className = "svelte-o924iy"; + internal_87(a2, file, 34, 10, 692); + li1.className = "svelte-o924iy"; + internal_87(li1, file, 34, 6, 688); + internal_87(ul, file, 32, 3, 602); + div.className = "main svelte-o924iy"; + internal_87(div, file, 15, 0, 159); + }, + + l: function claim(nodes) { + throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); + }, + + m: function mount(target, anchor) { + internal_7(target, div, anchor); + internal_6(div, h1); + internal_6(div, t1); + internal_6(div, h20); + internal_6(div, t3); + internal_6(div, p0); + internal_6(div, t5); + internal_6(div, h21); + internal_6(div, t7); + internal_6(div, p1); + internal_6(p1, t8); + internal_6(p1, a0); + internal_6(div, t10); + internal_6(div, h22); + internal_6(div, t12); + internal_6(div, ul); + internal_6(ul, li0); + internal_6(li0, a1); + internal_6(ul, t14); + internal_6(ul, li1); + internal_6(li1, a2); + }, + + p: internal_83, + i: internal_83, + o: internal_83, + + d: function destroy(detaching) { + if (detaching) { + internal_8(div); + } + } + }; + } + + class App extends internal_104 { + constructor(options) { + super(options); + internal_102(this, options, null, create_fragment, internal_92, []); + } + } + + var app = new App({ + target: document.getElementById("content") + }); + + return app; + +}()); +//# sourceMappingURL=bundle.js.map diff --git a/public/home/bundle.js.map b/public/home/bundle.js.map new file mode 100644 index 0000000..ed36d5a --- /dev/null +++ b/public/home/bundle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bundle.js","sources":["../../node_modules/svelte/internal.js","../../src/Home/main.js"],"sourcesContent":["'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction noop() {}\n\nconst identity = x => x;\n\nfunction assign(tar, src) {\n\tfor (const k in src) tar[k] = src[k];\n\treturn tar;\n}\n\nfunction is_promise(value) {\n\treturn value && typeof value.then === 'function';\n}\n\nfunction add_location(element, file, line, column, char) {\n\telement.__svelte_meta = {\n\t\tloc: { file, line, column, char }\n\t};\n}\n\nfunction run(fn) {\n\treturn fn();\n}\n\nfunction blank_object() {\n\treturn Object.create(null);\n}\n\nfunction run_all(fns) {\n\tfns.forEach(run);\n}\n\nfunction is_function(thing) {\n\treturn typeof thing === 'function';\n}\n\nfunction safe_not_equal(a, b) {\n\treturn a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function');\n}\n\nfunction not_equal(a, b) {\n\treturn a != a ? b == b : a !== b;\n}\n\nfunction validate_store(store, name) {\n\tif (!store || typeof store.subscribe !== 'function') {\n\t\tthrow new Error(`'${name}' is not a store with a 'subscribe' method`);\n\t}\n}\n\nfunction subscribe(component, store, callback) {\n\tconst unsub = store.subscribe(callback);\n\n\tcomponent.$$.on_destroy.push(unsub.unsubscribe\n\t\t? () => unsub.unsubscribe()\n\t\t: unsub);\n}\n\nfunction create_slot(definition, ctx, fn) {\n\tif (definition) {\n\t\tconst slot_ctx = get_slot_context(definition, ctx, fn);\n\t\treturn definition[0](slot_ctx);\n\t}\n}\n\nfunction get_slot_context(definition, ctx, fn) {\n\treturn definition[1]\n\t\t? assign({}, assign(ctx.$$scope.ctx, definition[1](fn ? fn(ctx) : {})))\n\t\t: ctx.$$scope.ctx;\n}\n\nfunction get_slot_changes(definition, ctx, changed, fn) {\n\treturn definition[1]\n\t\t? assign({}, assign(ctx.$$scope.changed || {}, definition[1](fn ? fn(changed) : {})))\n\t\t: ctx.$$scope.changed || {};\n}\n\nfunction exclude_internal_props(props) {\n\tconst result = {};\n\tfor (const k in props) if (k[0] !== '$') result[k] = props[k];\n\treturn result;\n}\n\nconst tasks = new Set();\nlet running = false;\n\nfunction run_tasks() {\n\ttasks.forEach(task => {\n\t\tif (!task[0](window.performance.now())) {\n\t\t\ttasks.delete(task);\n\t\t\ttask[1]();\n\t\t}\n\t});\n\n\trunning = tasks.size > 0;\n\tif (running) requestAnimationFrame(run_tasks);\n}\n\nfunction clear_loops() {\n\t// for testing...\n\ttasks.forEach(task => tasks.delete(task));\n\trunning = false;\n}\n\nfunction loop(fn) {\n\tlet task;\n\n\tif (!running) {\n\t\trunning = true;\n\t\trequestAnimationFrame(run_tasks);\n\t}\n\n\treturn {\n\t\tpromise: new Promise(fulfil => {\n\t\t\ttasks.add(task = [fn, fulfil]);\n\t\t}),\n\t\tabort() {\n\t\t\ttasks.delete(task);\n\t\t}\n\t};\n}\n\nfunction append(target, node) {\n\ttarget.appendChild(node);\n}\n\nfunction insert(target, node, anchor) {\n\ttarget.insertBefore(node, anchor || null);\n}\n\nfunction detach(node) {\n\tnode.parentNode.removeChild(node);\n}\n\nfunction detach_between(before, after) {\n\twhile (before.nextSibling && before.nextSibling !== after) {\n\t\tbefore.parentNode.removeChild(before.nextSibling);\n\t}\n}\n\nfunction detach_before(after) {\n\twhile (after.previousSibling) {\n\t\tafter.parentNode.removeChild(after.previousSibling);\n\t}\n}\n\nfunction detach_after(before) {\n\twhile (before.nextSibling) {\n\t\tbefore.parentNode.removeChild(before.nextSibling);\n\t}\n}\n\nfunction destroy_each(iterations, detaching) {\n\tfor (let i = 0; i < iterations.length; i += 1) {\n\t\tif (iterations[i]) iterations[i].d(detaching);\n\t}\n}\n\nfunction element(name) {\n\treturn document.createElement(name);\n}\n\nfunction object_without_properties(obj, exclude) {\n\tconst target = {};\n\tfor (const k in obj) {\n\t\tif (Object.prototype.hasOwnProperty.call(obj, k) && exclude.indexOf(k) === -1) {\n\t\t\ttarget[k] = obj[k];\n\t\t}\n\t}\n\treturn target;\n}\n\nfunction svg_element(name) {\n\treturn document.createElementNS('http://www.w3.org/2000/svg', name);\n}\n\nfunction text(data) {\n\treturn document.createTextNode(data);\n}\n\nfunction space() {\n\treturn text(' ');\n}\n\nfunction empty() {\n\treturn text('');\n}\n\nfunction listen(node, event, handler, options) {\n\tnode.addEventListener(event, handler, options);\n\treturn () => node.removeEventListener(event, handler, options);\n}\n\nfunction prevent_default(fn) {\n\treturn function(event) {\n\t\tevent.preventDefault();\n\t\treturn fn.call(this, event);\n\t};\n}\n\nfunction stop_propagation(fn) {\n\treturn function(event) {\n\t\tevent.stopPropagation();\n\t\treturn fn.call(this, event);\n\t};\n}\n\nfunction attr(node, attribute, value) {\n\tif (value == null) node.removeAttribute(attribute);\n\telse node.setAttribute(attribute, value);\n}\n\nfunction set_attributes(node, attributes) {\n\tfor (const key in attributes) {\n\t\tif (key === 'style') {\n\t\t\tnode.style.cssText = attributes[key];\n\t\t} else if (key in node) {\n\t\t\tnode[key] = attributes[key];\n\t\t} else {\n\t\t\tattr(node, key, attributes[key]);\n\t\t}\n\t}\n}\n\nfunction set_custom_element_data(node, prop, value) {\n\tif (prop in node) {\n\t\tnode[prop] = value;\n\t} else {\n\t\tattr(node, prop, value);\n\t}\n}\n\nfunction xlink_attr(node, attribute, value) {\n\tnode.setAttributeNS('http://www.w3.org/1999/xlink', attribute, value);\n}\n\nfunction get_binding_group_value(group) {\n\tconst value = [];\n\tfor (let i = 0; i < group.length; i += 1) {\n\t\tif (group[i].checked) value.push(group[i].__value);\n\t}\n\treturn value;\n}\n\nfunction to_number(value) {\n\treturn value === '' ? undefined : +value;\n}\n\nfunction time_ranges_to_array(ranges) {\n\tconst array = [];\n\tfor (let i = 0; i < ranges.length; i += 1) {\n\t\tarray.push({ start: ranges.start(i), end: ranges.end(i) });\n\t}\n\treturn array;\n}\n\nfunction children(element) {\n\treturn Array.from(element.childNodes);\n}\n\nfunction claim_element(nodes, name, attributes, svg) {\n\tfor (let i = 0; i < nodes.length; i += 1) {\n\t\tconst node = nodes[i];\n\t\tif (node.nodeName === name) {\n\t\t\tfor (let j = 0; j < node.attributes.length; j += 1) {\n\t\t\t\tconst attribute = node.attributes[j];\n\t\t\t\tif (!attributes[attribute.name]) node.removeAttribute(attribute.name);\n\t\t\t}\n\t\t\treturn nodes.splice(i, 1)[0]; // TODO strip unwanted attributes\n\t\t}\n\t}\n\n\treturn svg ? svg_element(name) : element(name);\n}\n\nfunction claim_text(nodes, data) {\n\tfor (let i = 0; i < nodes.length; i += 1) {\n\t\tconst node = nodes[i];\n\t\tif (node.nodeType === 3) {\n\t\t\tnode.data = data;\n\t\t\treturn nodes.splice(i, 1)[0];\n\t\t}\n\t}\n\n\treturn text(data);\n}\n\nfunction set_data(text, data) {\n\tdata = '' + data;\n\tif (text.data !== data) text.data = data;\n}\n\nfunction set_input_type(input, type) {\n\ttry {\n\t\tinput.type = type;\n\t} catch (e) {\n\t\t// do nothing\n\t}\n}\n\nfunction set_style(node, key, value) {\n\tnode.style.setProperty(key, value);\n}\n\nfunction select_option(select, value) {\n\tfor (let i = 0; i < select.options.length; i += 1) {\n\t\tconst option = select.options[i];\n\n\t\tif (option.__value === value) {\n\t\t\toption.selected = true;\n\t\t\treturn;\n\t\t}\n\t}\n}\n\nfunction select_options(select, value) {\n\tfor (let i = 0; i < select.options.length; i += 1) {\n\t\tconst option = select.options[i];\n\t\toption.selected = ~value.indexOf(option.__value);\n\t}\n}\n\nfunction select_value(select) {\n\tconst selected_option = select.querySelector(':checked') || select.options[0];\n\treturn selected_option && selected_option.__value;\n}\n\nfunction select_multiple_value(select) {\n\treturn [].map.call(select.querySelectorAll(':checked'), option => option.__value);\n}\n\nfunction add_resize_listener(element, fn) {\n\tif (getComputedStyle(element).position === 'static') {\n\t\telement.style.position = 'relative';\n\t}\n\n\tconst object = document.createElement('object');\n\tobject.setAttribute('style', 'display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; pointer-events: none; z-index: -1;');\n\tobject.type = 'text/html';\n\n\tlet win;\n\n\tobject.onload = () => {\n\t\twin = object.contentDocument.defaultView;\n\t\twin.addEventListener('resize', fn);\n\t};\n\n\tif (/Trident/.test(navigator.userAgent)) {\n\t\telement.appendChild(object);\n\t\tobject.data = 'about:blank';\n\t} else {\n\t\tobject.data = 'about:blank';\n\t\telement.appendChild(object);\n\t}\n\n\treturn {\n\t\tcancel: () => {\n\t\t\twin && win.removeEventListener && win.removeEventListener('resize', fn);\n\t\t\telement.removeChild(object);\n\t\t}\n\t};\n}\n\nfunction toggle_class(element, name, toggle) {\n\telement.classList[toggle ? 'add' : 'remove'](name);\n}\n\nfunction custom_event(type, detail) {\n\tconst e = document.createEvent('CustomEvent');\n\te.initCustomEvent(type, false, false, detail);\n\treturn e;\n}\n\nlet stylesheet;\nlet active = 0;\nlet current_rules = {};\n\n// https://github.com/darkskyapp/string-hash/blob/master/index.js\nfunction hash(str) {\n\tlet hash = 5381;\n\tlet i = str.length;\n\n\twhile (i--) hash = ((hash << 5) - hash) ^ str.charCodeAt(i);\n\treturn hash >>> 0;\n}\n\nfunction create_rule(node, a, b, duration, delay, ease, fn, uid = 0) {\n\tconst step = 16.666 / duration;\n\tlet keyframes = '{\\n';\n\n\tfor (let p = 0; p <= 1; p += step) {\n\t\tconst t = a + (b - a) * ease(p);\n\t\tkeyframes += p * 100 + `%{${fn(t, 1 - t)}}\\n`;\n\t}\n\n\tconst rule = keyframes + `100% {${fn(b, 1 - b)}}\\n}`;\n\tconst name = `__svelte_${hash(rule)}_${uid}`;\n\n\tif (!current_rules[name]) {\n\t\tif (!stylesheet) {\n\t\t\tconst style = element('style');\n\t\t\tdocument.head.appendChild(style);\n\t\t\tstylesheet = style.sheet;\n\t\t}\n\n\t\tcurrent_rules[name] = true;\n\t\tstylesheet.insertRule(`@keyframes ${name} ${rule}`, stylesheet.cssRules.length);\n\t}\n\n\tconst animation = node.style.animation || '';\n\tnode.style.animation = `${animation ? `${animation}, ` : ``}${name} ${duration}ms linear ${delay}ms 1 both`;\n\n\tactive += 1;\n\treturn name;\n}\n\nfunction delete_rule(node, name) {\n\tnode.style.animation = (node.style.animation || '')\n\t\t.split(', ')\n\t\t.filter(name\n\t\t\t? anim => anim.indexOf(name) < 0 // remove specific animation\n\t\t\t: anim => anim.indexOf('__svelte') === -1 // remove all Svelte animations\n\t\t)\n\t\t.join(', ');\n\n\tif (name && !--active) clear_rules();\n}\n\nfunction clear_rules() {\n\trequestAnimationFrame(() => {\n\t\tif (active) return;\n\t\tlet i = stylesheet.cssRules.length;\n\t\twhile (i--) stylesheet.deleteRule(i);\n\t\tcurrent_rules = {};\n\t});\n}\n\nfunction create_animation(node, from, fn, params) {\n\tif (!from) return noop;\n\n\tconst to = node.getBoundingClientRect();\n\tif (from.left === to.left && from.right === to.right && from.top === to.top && from.bottom === to.bottom) return noop;\n\n\tconst {\n\t\tdelay = 0,\n\t\tduration = 300,\n\t\teasing = identity,\n\t\tstart: start_time = window.performance.now() + delay,\n\t\tend = start_time + duration,\n\t\ttick = noop,\n\t\tcss\n\t} = fn(node, { from, to }, params);\n\n\tlet running = true;\n\tlet started = false;\n\tlet name;\n\n\tconst css_text = node.style.cssText;\n\n\tfunction start() {\n\t\tif (css) {\n\t\t\tif (delay) node.style.cssText = css_text; // TODO create delayed animation instead?\n\t\t\tname = create_rule(node, 0, 1, duration, 0, easing, css);\n\t\t}\n\n\t\tstarted = true;\n\t}\n\n\tfunction stop() {\n\t\tif (css) delete_rule(node, name);\n\t\trunning = false;\n\t}\n\n\tloop(now => {\n\t\tif (!started && now >= start_time) {\n\t\t\tstart();\n\t\t}\n\n\t\tif (started && now >= end) {\n\t\t\ttick(1, 0);\n\t\t\tstop();\n\t\t}\n\n\t\tif (!running) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (started) {\n\t\t\tconst p = now - start_time;\n\t\t\tconst t = 0 + 1 * easing(p / duration);\n\t\t\ttick(t, 1 - t);\n\t\t}\n\n\t\treturn true;\n\t});\n\n\tif (delay) {\n\t\tif (css) node.style.cssText += css(0, 1);\n\t} else {\n\t\tstart();\n\t}\n\n\ttick(0, 1);\n\n\treturn stop;\n}\n\nfunction fix_position(node) {\n\tconst style = getComputedStyle(node);\n\n\tif (style.position !== 'absolute' && style.position !== 'fixed') {\n\t\tconst { width, height } = style;\n\t\tconst a = node.getBoundingClientRect();\n\t\tnode.style.position = 'absolute';\n\t\tnode.style.width = width;\n\t\tnode.style.height = height;\n\t\tconst b = node.getBoundingClientRect();\n\n\t\tif (a.left !== b.left || a.top !== b.top) {\n\t\t\tconst style = getComputedStyle(node);\n\t\t\tconst transform = style.transform === 'none' ? '' : style.transform;\n\n\t\t\tnode.style.transform = `${transform} translate(${a.left - b.left}px, ${a.top - b.top}px)`;\n\t\t}\n\t}\n}\n\nfunction set_current_component(component) {\n\texports.current_component = component;\n}\n\nfunction get_current_component() {\n\tif (!exports.current_component) throw new Error(`Function called outside component initialization`);\n\treturn exports.current_component;\n}\n\nfunction beforeUpdate(fn) {\n\tget_current_component().$$.before_render.push(fn);\n}\n\nfunction onMount(fn) {\n\tget_current_component().$$.on_mount.push(fn);\n}\n\nfunction afterUpdate(fn) {\n\tget_current_component().$$.after_render.push(fn);\n}\n\nfunction onDestroy(fn) {\n\tget_current_component().$$.on_destroy.push(fn);\n}\n\nfunction createEventDispatcher() {\n\tconst component = exports.current_component;\n\n\treturn (type, detail) => {\n\t\tconst callbacks = component.$$.callbacks[type];\n\n\t\tif (callbacks) {\n\t\t\t// TODO are there situations where events could be dispatched\n\t\t\t// in a server (non-DOM) environment?\n\t\t\tconst event = custom_event(type, detail);\n\t\t\tcallbacks.slice().forEach(fn => {\n\t\t\t\tfn.call(component, event);\n\t\t\t});\n\t\t}\n\t};\n}\n\nfunction setContext(key, context) {\n\tget_current_component().$$.context.set(key, context);\n}\n\nfunction getContext(key) {\n\treturn get_current_component().$$.context.get(key);\n}\n\n// TODO figure out if we still want to support\n// shorthand events, or if we want to implement\n// a real bubbling mechanism\nfunction bubble(component, event) {\n\tconst callbacks = component.$$.callbacks[event.type];\n\n\tif (callbacks) {\n\t\tcallbacks.slice().forEach(fn => fn(event));\n\t}\n}\n\nconst dirty_components = [];\nconst intros = { enabled: false };\n\nconst resolved_promise = Promise.resolve();\nlet update_scheduled = false;\nconst binding_callbacks = [];\nconst render_callbacks = [];\nconst flush_callbacks = [];\n\nfunction schedule_update() {\n\tif (!update_scheduled) {\n\t\tupdate_scheduled = true;\n\t\tresolved_promise.then(flush);\n\t}\n}\n\nfunction tick() {\n\tschedule_update();\n\treturn resolved_promise;\n}\n\nfunction add_binding_callback(fn) {\n\tbinding_callbacks.push(fn);\n}\n\nfunction add_render_callback(fn) {\n\trender_callbacks.push(fn);\n}\n\nfunction add_flush_callback(fn) {\n\tflush_callbacks.push(fn);\n}\n\nfunction flush() {\n\tconst seen_callbacks = new Set();\n\n\tdo {\n\t\t// first, call beforeUpdate functions\n\t\t// and update components\n\t\twhile (dirty_components.length) {\n\t\t\tconst component = dirty_components.shift();\n\t\t\tset_current_component(component);\n\t\t\tupdate(component.$$);\n\t\t}\n\n\t\twhile (binding_callbacks.length) binding_callbacks.shift()();\n\n\t\t// then, once components are updated, call\n\t\t// afterUpdate functions. This may cause\n\t\t// subsequent updates...\n\t\twhile (render_callbacks.length) {\n\t\t\tconst callback = render_callbacks.pop();\n\t\t\tif (!seen_callbacks.has(callback)) {\n\t\t\t\tcallback();\n\n\t\t\t\t// ...so guard against infinite loops\n\t\t\t\tseen_callbacks.add(callback);\n\t\t\t}\n\t\t}\n\t} while (dirty_components.length);\n\n\twhile (flush_callbacks.length) {\n\t\tflush_callbacks.pop()();\n\t}\n\n\tupdate_scheduled = false;\n}\n\nfunction update($$) {\n\tif ($$.fragment) {\n\t\t$$.update($$.dirty);\n\t\trun_all($$.before_render);\n\t\t$$.fragment.p($$.dirty, $$.ctx);\n\t\t$$.dirty = null;\n\n\t\t$$.after_render.forEach(add_render_callback);\n\t}\n}\n\nlet promise;\n\nfunction wait() {\n\tif (!promise) {\n\t\tpromise = Promise.resolve();\n\t\tpromise.then(() => {\n\t\t\tpromise = null;\n\t\t});\n\t}\n\n\treturn promise;\n}\n\nfunction dispatch(node, direction, kind) {\n\tnode.dispatchEvent(custom_event(`${direction ? 'intro' : 'outro'}${kind}`));\n}\n\nlet outros;\n\nfunction group_outros() {\n\toutros = {\n\t\tremaining: 0,\n\t\tcallbacks: []\n\t};\n}\n\nfunction check_outros() {\n\tif (!outros.remaining) {\n\t\trun_all(outros.callbacks);\n\t}\n}\n\nfunction on_outro(callback) {\n\toutros.callbacks.push(callback);\n}\n\nfunction create_in_transition(node, fn, params) {\n\tlet config = fn(node, params);\n\tlet running = false;\n\tlet animation_name;\n\tlet task;\n\tlet uid = 0;\n\n\tfunction cleanup() {\n\t\tif (animation_name) delete_rule(node, animation_name);\n\t}\n\n\tfunction go() {\n\t\tconst {\n\t\t\tdelay = 0,\n\t\t\tduration = 300,\n\t\t\teasing = identity,\n\t\t\ttick: tick$$1 = noop,\n\t\t\tcss\n\t\t} = config;\n\n\t\tif (css) animation_name = create_rule(node, 0, 1, duration, delay, easing, css, uid++);\n\t\ttick$$1(0, 1);\n\n\t\tconst start_time = window.performance.now() + delay;\n\t\tconst end_time = start_time + duration;\n\n\t\tif (task) task.abort();\n\t\trunning = true;\n\n\t\ttask = loop(now => {\n\t\t\tif (running) {\n\t\t\t\tif (now >= end_time) {\n\t\t\t\t\ttick$$1(1, 0);\n\t\t\t\t\tcleanup();\n\t\t\t\t\treturn running = false;\n\t\t\t\t}\n\n\t\t\t\tif (now >= start_time) {\n\t\t\t\t\tconst t = easing((now - start_time) / duration);\n\t\t\t\t\ttick$$1(t, 1 - t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn running;\n\t\t});\n\t}\n\n\tlet started = false;\n\n\treturn {\n\t\tstart() {\n\t\t\tif (started) return;\n\n\t\t\tdelete_rule(node);\n\n\t\t\tif (typeof config === 'function') {\n\t\t\t\tconfig = config();\n\t\t\t\twait().then(go);\n\t\t\t} else {\n\t\t\t\tgo();\n\t\t\t}\n\t\t},\n\n\t\tinvalidate() {\n\t\t\tstarted = false;\n\t\t},\n\n\t\tend() {\n\t\t\tif (running) {\n\t\t\t\tcleanup();\n\t\t\t\trunning = false;\n\t\t\t}\n\t\t}\n\t};\n}\n\nfunction create_out_transition(node, fn, params) {\n\tlet config = fn(node, params);\n\tlet running = true;\n\tlet animation_name;\n\n\tconst group = outros;\n\n\tgroup.remaining += 1;\n\n\tfunction go() {\n\t\tconst {\n\t\t\tdelay = 0,\n\t\t\tduration = 300,\n\t\t\teasing = identity,\n\t\t\ttick: tick$$1 = noop,\n\t\t\tcss\n\t\t} = config;\n\n\t\tif (css) animation_name = create_rule(node, 1, 0, duration, delay, easing, css);\n\n\t\tconst start_time = window.performance.now() + delay;\n\t\tconst end_time = start_time + duration;\n\n\t\tloop(now => {\n\t\t\tif (running) {\n\t\t\t\tif (now >= end_time) {\n\t\t\t\t\ttick$$1(0, 1);\n\n\t\t\t\t\tif (!--group.remaining) {\n\t\t\t\t\t\t// this will result in `end()` being called,\n\t\t\t\t\t\t// so we don't need to clean up here\n\t\t\t\t\t\trun_all(group.callbacks);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tif (now >= start_time) {\n\t\t\t\t\tconst t = easing((now - start_time) / duration);\n\t\t\t\t\ttick$$1(1 - t, t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn running;\n\t\t});\n\t}\n\n\tif (typeof config === 'function') {\n\t\twait().then(() => {\n\t\t\tconfig = config();\n\t\t\tgo();\n\t\t});\n\t} else {\n\t\tgo();\n\t}\n\n\treturn {\n\t\tend(reset) {\n\t\t\tif (reset && config.tick) {\n\t\t\t\tconfig.tick(1, 0);\n\t\t\t}\n\n\t\t\tif (running) {\n\t\t\t\tif (animation_name) delete_rule(node, animation_name);\n\t\t\t\trunning = false;\n\t\t\t}\n\t\t}\n\t};\n}\n\nfunction create_bidirectional_transition(node, fn, params, intro) {\n\tlet config = fn(node, params);\n\n\tlet t = intro ? 0 : 1;\n\n\tlet running_program = null;\n\tlet pending_program = null;\n\tlet animation_name = null;\n\n\tfunction clear_animation() {\n\t\tif (animation_name) delete_rule(node, animation_name);\n\t}\n\n\tfunction init(program, duration) {\n\t\tconst d = program.b - t;\n\t\tduration *= Math.abs(d);\n\n\t\treturn {\n\t\t\ta: t,\n\t\t\tb: program.b,\n\t\t\td,\n\t\t\tduration,\n\t\t\tstart: program.start,\n\t\t\tend: program.start + duration,\n\t\t\tgroup: program.group\n\t\t};\n\t}\n\n\tfunction go(b) {\n\t\tconst {\n\t\t\tdelay = 0,\n\t\t\tduration = 300,\n\t\t\teasing = identity,\n\t\t\ttick: tick$$1 = noop,\n\t\t\tcss\n\t\t} = config;\n\n\t\tconst program = {\n\t\t\tstart: window.performance.now() + delay,\n\t\t\tb\n\t\t};\n\n\t\tif (!b) {\n\t\t\tprogram.group = outros;\n\t\t\toutros.remaining += 1;\n\t\t}\n\n\t\tif (running_program) {\n\t\t\tpending_program = program;\n\t\t} else {\n\t\t\t// if this is an intro, and there's a delay, we need to do\n\t\t\t// an initial tick and/or apply CSS animation immediately\n\t\t\tif (css) {\n\t\t\t\tclear_animation();\n\t\t\t\tanimation_name = create_rule(node, t, b, duration, delay, easing, css);\n\t\t\t}\n\n\t\t\tif (b) tick$$1(0, 1);\n\n\t\t\trunning_program = init(program, duration);\n\t\t\tadd_render_callback(() => dispatch(node, b, 'start'));\n\n\t\t\tloop(now => {\n\t\t\t\tif (pending_program && now > pending_program.start) {\n\t\t\t\t\trunning_program = init(pending_program, duration);\n\t\t\t\t\tpending_program = null;\n\n\t\t\t\t\tdispatch(node, running_program.b, 'start');\n\n\t\t\t\t\tif (css) {\n\t\t\t\t\t\tclear_animation();\n\t\t\t\t\t\tanimation_name = create_rule(node, t, running_program.b, running_program.duration, 0, easing, config.css);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (running_program) {\n\t\t\t\t\tif (now >= running_program.end) {\n\t\t\t\t\t\ttick$$1(t = running_program.b, 1 - t);\n\t\t\t\t\t\tdispatch(node, running_program.b, 'end');\n\n\t\t\t\t\t\tif (!pending_program) {\n\t\t\t\t\t\t\t// we're done\n\t\t\t\t\t\t\tif (running_program.b) {\n\t\t\t\t\t\t\t\t// intro — we can tidy up immediately\n\t\t\t\t\t\t\t\tclear_animation();\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t// outro — needs to be coordinated\n\t\t\t\t\t\t\t\tif (!--running_program.group.remaining) run_all(running_program.group.callbacks);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\trunning_program = null;\n\t\t\t\t\t}\n\n\t\t\t\t\telse if (now >= running_program.start) {\n\t\t\t\t\t\tconst p = now - running_program.start;\n\t\t\t\t\t\tt = running_program.a + running_program.d * easing(p / running_program.duration);\n\t\t\t\t\t\ttick$$1(t, 1 - t);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn !!(running_program || pending_program);\n\t\t\t});\n\t\t}\n\t}\n\n\treturn {\n\t\trun(b) {\n\t\t\tif (typeof config === 'function') {\n\t\t\t\twait().then(() => {\n\t\t\t\t\tconfig = config();\n\t\t\t\t\tgo(b);\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tgo(b);\n\t\t\t}\n\t\t},\n\n\t\tend() {\n\t\t\tclear_animation();\n\t\t\trunning_program = pending_program = null;\n\t\t}\n\t};\n}\n\nfunction handle_promise(promise, info) {\n\tconst token = info.token = {};\n\n\tfunction update(type, index, key, value) {\n\t\tif (info.token !== token) return;\n\n\t\tinfo.resolved = key && { [key]: value };\n\n\t\tconst child_ctx = assign(assign({}, info.ctx), info.resolved);\n\t\tconst block = type && (info.current = type)(child_ctx);\n\n\t\tif (info.block) {\n\t\t\tif (info.blocks) {\n\t\t\t\tinfo.blocks.forEach((block, i) => {\n\t\t\t\t\tif (i !== index && block) {\n\t\t\t\t\t\tgroup_outros();\n\t\t\t\t\t\ton_outro(() => {\n\t\t\t\t\t\t\tblock.d(1);\n\t\t\t\t\t\t\tinfo.blocks[i] = null;\n\t\t\t\t\t\t});\n\t\t\t\t\t\tblock.o(1);\n\t\t\t\t\t\tcheck_outros();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tinfo.block.d(1);\n\t\t\t}\n\n\t\t\tblock.c();\n\t\t\tif (block.i) block.i(1);\n\t\t\tblock.m(info.mount(), info.anchor);\n\n\t\t\tflush();\n\t\t}\n\n\t\tinfo.block = block;\n\t\tif (info.blocks) info.blocks[index] = block;\n\t}\n\n\tif (is_promise(promise)) {\n\t\tpromise.then(value => {\n\t\t\tupdate(info.then, 1, info.value, value);\n\t\t}, error => {\n\t\t\tupdate(info.catch, 2, info.error, error);\n\t\t});\n\n\t\t// if we previously had a then/catch block, destroy it\n\t\tif (info.current !== info.pending) {\n\t\t\tupdate(info.pending, 0);\n\t\t\treturn true;\n\t\t}\n\t} else {\n\t\tif (info.current !== info.then) {\n\t\t\tupdate(info.then, 1, info.value, promise);\n\t\t\treturn true;\n\t\t}\n\n\t\tinfo.resolved = { [info.value]: promise };\n\t}\n}\n\nfunction destroy_block(block, lookup) {\n\tblock.d(1);\n\tlookup.delete(block.key);\n}\n\nfunction outro_and_destroy_block(block, lookup) {\n\ton_outro(() => {\n\t\tdestroy_block(block, lookup);\n\t});\n\n\tblock.o(1);\n}\n\nfunction fix_and_outro_and_destroy_block(block, lookup) {\n\tblock.f();\n\toutro_and_destroy_block(block, lookup);\n}\n\nfunction update_keyed_each(old_blocks, changed, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block, next, get_context) {\n\tlet o = old_blocks.length;\n\tlet n = list.length;\n\n\tlet i = o;\n\tconst old_indexes = {};\n\twhile (i--) old_indexes[old_blocks[i].key] = i;\n\n\tconst new_blocks = [];\n\tconst new_lookup = new Map();\n\tconst deltas = new Map();\n\n\ti = n;\n\twhile (i--) {\n\t\tconst child_ctx = get_context(ctx, list, i);\n\t\tconst key = get_key(child_ctx);\n\t\tlet block = lookup.get(key);\n\n\t\tif (!block) {\n\t\t\tblock = create_each_block(key, child_ctx);\n\t\t\tblock.c();\n\t\t} else if (dynamic) {\n\t\t\tblock.p(changed, child_ctx);\n\t\t}\n\n\t\tnew_lookup.set(key, new_blocks[i] = block);\n\n\t\tif (key in old_indexes) deltas.set(key, Math.abs(i - old_indexes[key]));\n\t}\n\n\tconst will_move = new Set();\n\tconst did_move = new Set();\n\n\tfunction insert(block) {\n\t\tif (block.i) block.i(1);\n\t\tblock.m(node, next);\n\t\tlookup.set(block.key, block);\n\t\tnext = block.first;\n\t\tn--;\n\t}\n\n\twhile (o && n) {\n\t\tconst new_block = new_blocks[n - 1];\n\t\tconst old_block = old_blocks[o - 1];\n\t\tconst new_key = new_block.key;\n\t\tconst old_key = old_block.key;\n\n\t\tif (new_block === old_block) {\n\t\t\t// do nothing\n\t\t\tnext = new_block.first;\n\t\t\to--;\n\t\t\tn--;\n\t\t}\n\n\t\telse if (!new_lookup.has(old_key)) {\n\t\t\t// remove old block\n\t\t\tdestroy(old_block, lookup);\n\t\t\to--;\n\t\t}\n\n\t\telse if (!lookup.has(new_key) || will_move.has(new_key)) {\n\t\t\tinsert(new_block);\n\t\t}\n\n\t\telse if (did_move.has(old_key)) {\n\t\t\to--;\n\n\t\t} else if (deltas.get(new_key) > deltas.get(old_key)) {\n\t\t\tdid_move.add(new_key);\n\t\t\tinsert(new_block);\n\n\t\t} else {\n\t\t\twill_move.add(old_key);\n\t\t\to--;\n\t\t}\n\t}\n\n\twhile (o--) {\n\t\tconst old_block = old_blocks[o];\n\t\tif (!new_lookup.has(old_block.key)) destroy(old_block, lookup);\n\t}\n\n\twhile (n) insert(new_blocks[n - 1]);\n\n\treturn new_blocks;\n}\n\nfunction measure(blocks) {\n\tconst rects = {};\n\tlet i = blocks.length;\n\twhile (i--) rects[blocks[i].key] = blocks[i].node.getBoundingClientRect();\n\treturn rects;\n}\n\nfunction get_spread_update(levels, updates) {\n\tconst update = {};\n\n\tconst to_null_out = {};\n\tconst accounted_for = { $$scope: 1 };\n\n\tlet i = levels.length;\n\twhile (i--) {\n\t\tconst o = levels[i];\n\t\tconst n = updates[i];\n\n\t\tif (n) {\n\t\t\tfor (const key in o) {\n\t\t\t\tif (!(key in n)) to_null_out[key] = 1;\n\t\t\t}\n\n\t\t\tfor (const key in n) {\n\t\t\t\tif (!accounted_for[key]) {\n\t\t\t\t\tupdate[key] = n[key];\n\t\t\t\t\taccounted_for[key] = 1;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlevels[i] = n;\n\t\t} else {\n\t\t\tfor (const key in o) {\n\t\t\t\taccounted_for[key] = 1;\n\t\t\t}\n\t\t}\n\t}\n\n\tfor (const key in to_null_out) {\n\t\tif (!(key in update)) update[key] = undefined;\n\t}\n\n\treturn update;\n}\n\nconst invalid_attribute_name_character = /[\\s'\">/=\\u{FDD0}-\\u{FDEF}\\u{FFFE}\\u{FFFF}\\u{1FFFE}\\u{1FFFF}\\u{2FFFE}\\u{2FFFF}\\u{3FFFE}\\u{3FFFF}\\u{4FFFE}\\u{4FFFF}\\u{5FFFE}\\u{5FFFF}\\u{6FFFE}\\u{6FFFF}\\u{7FFFE}\\u{7FFFF}\\u{8FFFE}\\u{8FFFF}\\u{9FFFE}\\u{9FFFF}\\u{AFFFE}\\u{AFFFF}\\u{BFFFE}\\u{BFFFF}\\u{CFFFE}\\u{CFFFF}\\u{DFFFE}\\u{DFFFF}\\u{EFFFE}\\u{EFFFF}\\u{FFFFE}\\u{FFFFF}\\u{10FFFE}\\u{10FFFF}]/u;\n// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n// https://infra.spec.whatwg.org/#noncharacter\n\nfunction spread(args) {\n\tconst attributes = Object.assign({}, ...args);\n\tlet str = '';\n\n\tObject.keys(attributes).forEach(name => {\n\t\tif (invalid_attribute_name_character.test(name)) return;\n\n\t\tconst value = attributes[name];\n\t\tif (value === undefined) return;\n\t\tif (value === true) str += \" \" + name;\n\n\t\tconst escaped = String(value)\n\t\t\t.replace(/\"/g, '"')\n\t\t\t.replace(/'/g, ''');\n\n\t\tstr += \" \" + name + \"=\" + JSON.stringify(escaped);\n\t});\n\n\treturn str;\n}\n\nconst escaped = {\n\t'\"': '"',\n\t\"'\": ''',\n\t'&': '&',\n\t'<': '<',\n\t'>': '>'\n};\n\nfunction escape(html) {\n\treturn String(html).replace(/[\"'&<>]/g, match => escaped[match]);\n}\n\nfunction each(items, fn) {\n\tlet str = '';\n\tfor (let i = 0; i < items.length; i += 1) {\n\t\tstr += fn(items[i], i);\n\t}\n\treturn str;\n}\n\nconst missing_component = {\n\t$$render: () => ''\n};\n\nfunction validate_component(component, name) {\n\tif (!component || !component.$$render) {\n\t\tif (name === 'svelte:component') name += ' this={...}';\n\t\tthrow new Error(`<${name}> is not a valid SSR component. You may need to review your build config to ensure that dependencies are compiled, rather than imported as pre-compiled modules`);\n\t}\n\n\treturn component;\n}\n\nfunction debug(file, line, column, values) {\n\tconsole.log(`{@debug} ${file ? file + ' ' : ''}(${line}:${column})`); // eslint-disable-line no-console\n\tconsole.log(values); // eslint-disable-line no-console\n\treturn '';\n}\n\nlet on_destroy;\n\nfunction create_ssr_component(fn) {\n\tfunction $$render(result, props, bindings, slots) {\n\t\tconst parent_component = exports.current_component;\n\n\t\tconst $$ = {\n\t\t\ton_destroy,\n\t\t\tcontext: new Map(parent_component ? parent_component.$$.context : []),\n\n\t\t\t// these will be immediately discarded\n\t\t\ton_mount: [],\n\t\t\tbefore_render: [],\n\t\t\tafter_render: [],\n\t\t\tcallbacks: blank_object()\n\t\t};\n\n\t\tset_current_component({ $$ });\n\n\t\tconst html = fn(result, props, bindings, slots);\n\n\t\tset_current_component(parent_component);\n\t\treturn html;\n\t}\n\n\treturn {\n\t\trender: (props = {}, options = {}) => {\n\t\t\ton_destroy = [];\n\n\t\t\tconst result = { head: '', css: new Set() };\n\t\t\tconst html = $$render(result, props, {}, options);\n\n\t\t\trun_all(on_destroy);\n\n\t\t\treturn {\n\t\t\t\thtml,\n\t\t\t\tcss: {\n\t\t\t\t\tcode: Array.from(result.css).map(css => css.code).join('\\n'),\n\t\t\t\t\tmap: null // TODO\n\t\t\t\t},\n\t\t\t\thead: result.head\n\t\t\t};\n\t\t},\n\n\t\t$$render\n\t};\n}\n\nfunction get_store_value(store) {\n\tlet value;\n\tstore.subscribe(_ => value = _)();\n\treturn value;\n}\n\nfunction bind(component, name, callback) {\n\tif (component.$$.props.indexOf(name) === -1) return;\n\tcomponent.$$.bound[name] = callback;\n\tcallback(component.$$.ctx[name]);\n}\n\nfunction mount_component(component, target, anchor) {\n\tconst { fragment, on_mount, on_destroy, after_render } = component.$$;\n\n\tfragment.m(target, anchor);\n\n\t// onMount happens after the initial afterUpdate. Because\n\t// afterUpdate callbacks happen in reverse order (inner first)\n\t// we schedule onMount callbacks before afterUpdate callbacks\n\tadd_render_callback(() => {\n\t\tconst new_on_destroy = on_mount.map(run).filter(is_function);\n\t\tif (on_destroy) {\n\t\t\ton_destroy.push(...new_on_destroy);\n\t\t} else {\n\t\t\t// Edge case - component was destroyed immediately,\n\t\t\t// most likely as a result of a binding initialising\n\t\t\trun_all(new_on_destroy);\n\t\t}\n\t\tcomponent.$$.on_mount = [];\n\t});\n\n\tafter_render.forEach(add_render_callback);\n}\n\nfunction destroy(component, detaching) {\n\tif (component.$$) {\n\t\trun_all(component.$$.on_destroy);\n\t\tcomponent.$$.fragment.d(detaching);\n\n\t\t// TODO null out other refs, including component.$$ (but need to\n\t\t// preserve final state?)\n\t\tcomponent.$$.on_destroy = component.$$.fragment = null;\n\t\tcomponent.$$.ctx = {};\n\t}\n}\n\nfunction make_dirty(component, key) {\n\tif (!component.$$.dirty) {\n\t\tdirty_components.push(component);\n\t\tschedule_update();\n\t\tcomponent.$$.dirty = {};\n\t}\n\tcomponent.$$.dirty[key] = true;\n}\n\nfunction init(component, options, instance, create_fragment, not_equal$$1, prop_names) {\n\tconst parent_component = exports.current_component;\n\tset_current_component(component);\n\n\tconst props = options.props || {};\n\n\tconst $$ = component.$$ = {\n\t\tfragment: null,\n\t\tctx: null,\n\n\t\t// state\n\t\tprops: prop_names,\n\t\tupdate: noop,\n\t\tnot_equal: not_equal$$1,\n\t\tbound: blank_object(),\n\n\t\t// lifecycle\n\t\ton_mount: [],\n\t\ton_destroy: [],\n\t\tbefore_render: [],\n\t\tafter_render: [],\n\t\tcontext: new Map(parent_component ? parent_component.$$.context : []),\n\n\t\t// everything else\n\t\tcallbacks: blank_object(),\n\t\tdirty: null\n\t};\n\n\tlet ready = false;\n\n\t$$.ctx = instance\n\t\t? instance(component, props, (key, value) => {\n\t\t\tif ($$.ctx && not_equal$$1($$.ctx[key], $$.ctx[key] = value)) {\n\t\t\t\tif ($$.bound[key]) $$.bound[key](value);\n\t\t\t\tif (ready) make_dirty(component, key);\n\t\t\t}\n\t\t})\n\t\t: props;\n\n\t$$.update();\n\tready = true;\n\trun_all($$.before_render);\n\t$$.fragment = create_fragment($$.ctx);\n\n\tif (options.target) {\n\t\tif (options.hydrate) {\n\t\t\t$$.fragment.l(children(options.target));\n\t\t} else {\n\t\t\t$$.fragment.c();\n\t\t}\n\n\t\tif (options.intro && component.$$.fragment.i) component.$$.fragment.i();\n\t\tmount_component(component, options.target, options.anchor);\n\t\tflush();\n\t}\n\n\tset_current_component(parent_component);\n}\nif (typeof HTMLElement !== 'undefined') {\n\texports.SvelteElement = class extends HTMLElement {\n\t\tconstructor() {\n\t\t\tsuper();\n\t\t\tthis.attachShadow({ mode: 'open' });\n\t\t}\n\n\t\tconnectedCallback() {\n\t\t\tfor (const key in this.$$.slotted) {\n\t\t\t\tthis.appendChild(this.$$.slotted[key]);\n\t\t\t}\n\t\t}\n\n\t\tattributeChangedCallback(attr$$1, oldValue, newValue) {\n\t\t\tthis[attr$$1] = newValue;\n\t\t}\n\n\t\t$destroy() {\n\t\t\tdestroy(this, true);\n\t\t\tthis.$destroy = noop;\n\t\t}\n\n\t\t$on(type, callback) {\n\t\t\t// TODO should this delegate to addEventListener?\n\t\t\tconst callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n\t\t\tcallbacks.push(callback);\n\n\t\t\treturn () => {\n\t\t\t\tconst index = callbacks.indexOf(callback);\n\t\t\t\tif (index !== -1) callbacks.splice(index, 1);\n\t\t\t};\n\t\t}\n\n\t\t$set() {\n\t\t\t// overridden by instance, if it has props\n\t\t}\n\t};\n}\n\nclass SvelteComponent {\n\t$destroy() {\n\t\tdestroy(this, true);\n\t\tthis.$destroy = noop;\n\t}\n\n\t$on(type, callback) {\n\t\tconst callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n\t\tcallbacks.push(callback);\n\n\t\treturn () => {\n\t\t\tconst index = callbacks.indexOf(callback);\n\t\t\tif (index !== -1) callbacks.splice(index, 1);\n\t\t};\n\t}\n\n\t$set() {\n\t\t// overridden by instance, if it has props\n\t}\n}\n\nclass SvelteComponentDev extends SvelteComponent {\n\tconstructor(options) {\n\t\tif (!options || (!options.target && !options.$$inline)) {\n\t\t\tthrow new Error(`'target' is a required option`);\n\t\t}\n\n\t\tsuper();\n\t}\n\n\t$destroy() {\n\t\tsuper.$destroy();\n\t\tthis.$destroy = () => {\n\t\t\tconsole.warn(`Component was already destroyed`); // eslint-disable-line no-console\n\t\t};\n\t}\n}\n\nexports.create_animation = create_animation;\nexports.fix_position = fix_position;\nexports.handle_promise = handle_promise;\nexports.append = append;\nexports.insert = insert;\nexports.detach = detach;\nexports.detach_between = detach_between;\nexports.detach_before = detach_before;\nexports.detach_after = detach_after;\nexports.destroy_each = destroy_each;\nexports.element = element;\nexports.object_without_properties = object_without_properties;\nexports.svg_element = svg_element;\nexports.text = text;\nexports.space = space;\nexports.empty = empty;\nexports.listen = listen;\nexports.prevent_default = prevent_default;\nexports.stop_propagation = stop_propagation;\nexports.attr = attr;\nexports.set_attributes = set_attributes;\nexports.set_custom_element_data = set_custom_element_data;\nexports.xlink_attr = xlink_attr;\nexports.get_binding_group_value = get_binding_group_value;\nexports.to_number = to_number;\nexports.time_ranges_to_array = time_ranges_to_array;\nexports.children = children;\nexports.claim_element = claim_element;\nexports.claim_text = claim_text;\nexports.set_data = set_data;\nexports.set_input_type = set_input_type;\nexports.set_style = set_style;\nexports.select_option = select_option;\nexports.select_options = select_options;\nexports.select_value = select_value;\nexports.select_multiple_value = select_multiple_value;\nexports.add_resize_listener = add_resize_listener;\nexports.toggle_class = toggle_class;\nexports.custom_event = custom_event;\nexports.destroy_block = destroy_block;\nexports.outro_and_destroy_block = outro_and_destroy_block;\nexports.fix_and_outro_and_destroy_block = fix_and_outro_and_destroy_block;\nexports.update_keyed_each = update_keyed_each;\nexports.measure = measure;\nexports.set_current_component = set_current_component;\nexports.beforeUpdate = beforeUpdate;\nexports.onMount = onMount;\nexports.afterUpdate = afterUpdate;\nexports.onDestroy = onDestroy;\nexports.createEventDispatcher = createEventDispatcher;\nexports.setContext = setContext;\nexports.getContext = getContext;\nexports.bubble = bubble;\nexports.clear_loops = clear_loops;\nexports.loop = loop;\nexports.dirty_components = dirty_components;\nexports.intros = intros;\nexports.schedule_update = schedule_update;\nexports.tick = tick;\nexports.add_binding_callback = add_binding_callback;\nexports.add_render_callback = add_render_callback;\nexports.add_flush_callback = add_flush_callback;\nexports.flush = flush;\nexports.get_spread_update = get_spread_update;\nexports.invalid_attribute_name_character = invalid_attribute_name_character;\nexports.spread = spread;\nexports.escaped = escaped;\nexports.escape = escape;\nexports.each = each;\nexports.missing_component = missing_component;\nexports.validate_component = validate_component;\nexports.debug = debug;\nexports.create_ssr_component = create_ssr_component;\nexports.get_store_value = get_store_value;\nexports.group_outros = group_outros;\nexports.check_outros = check_outros;\nexports.on_outro = on_outro;\nexports.create_in_transition = create_in_transition;\nexports.create_out_transition = create_out_transition;\nexports.create_bidirectional_transition = create_bidirectional_transition;\nexports.noop = noop;\nexports.identity = identity;\nexports.assign = assign;\nexports.is_promise = is_promise;\nexports.add_location = add_location;\nexports.run = run;\nexports.blank_object = blank_object;\nexports.run_all = run_all;\nexports.is_function = is_function;\nexports.safe_not_equal = safe_not_equal;\nexports.not_equal = not_equal;\nexports.validate_store = validate_store;\nexports.subscribe = subscribe;\nexports.create_slot = create_slot;\nexports.get_slot_context = get_slot_context;\nexports.get_slot_changes = get_slot_changes;\nexports.exclude_internal_props = exclude_internal_props;\nexports.bind = bind;\nexports.mount_component = mount_component;\nexports.init = init;\nexports.SvelteComponent = SvelteComponent;\nexports.SvelteComponentDev = SvelteComponentDev;\n","import App from './App.svelte';\n\nvar app = new App({\n target: document.getElementById(\"content\")\n});\n\nexport default app;"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/public/index.html b/public/index.html new file mode 100644 index 0000000..6670700 --- /dev/null +++ b/public/index.html @@ -0,0 +1,21 @@ + + + + + + + + OpenAuth - Home + + + + + + +
+ + + + + + \ No newline at end of file diff --git a/public/login.html b/public/login.html new file mode 100644 index 0000000..2450648 --- /dev/null +++ b/public/login.html @@ -0,0 +1,21 @@ + + + + + + + + OpenAuth - Login + + + + + + +
+ + + + + + \ No newline at end of file diff --git a/public/login/bundle.css b/public/login/bundle.css new file mode 100644 index 0000000..cf990cc --- /dev/null +++ b/public/login/bundle.css @@ -0,0 +1,11 @@ +.card.svelte-1ckcw4k{box-shadow:0 14px 28px rgba(0, 0, 0, 0.25), 0 10px 10px rgba(0, 0, 0, 0.22);background:#fafafa;border-radius:4px}.form-container.svelte-1ckcw4k{height:100vh;display:flex;align-items:center;justify-content:center;padding:1rem;box-sizing:border-box}form.svelte-1ckcw4k{width:100%;max-width:380px;margin:0 auto;box-shadow:0 19px 38px rgba(0, 0, 0, 0.30), 0 15px 12px rgba(0, 0, 0, 0.22);position:relative;padding:1px;background-color:white !important;margin-bottom:40px}.container.svelte-1ckcw4k{overflow:hidden;padding:2em}footer.svelte-1ckcw4k{text-align:center;position:absolute;bottom:0;left:0;right:0}.title-container.svelte-1ckcw4k{margin:-30px auto 0 auto;max-width:250px;background-color:var(--primary);color:white;padding:5px 20px}.loading_container.svelte-1ckcw4k{filter:blur(1px) opacity(50%)}.loader_container.svelte-1ckcw4k{position:absolute;display:flex;flex-direction:column;justify-content:center;top:0;bottom:0;left:0;right:0;z-index:2} +.error.svelte-m6rjik{color:var(--error);padding:4px}.btn.svelte-m6rjik{background-color:var(--primary);width:100%;margin:0} +.checkmark__circle.svelte-zjta2c{stroke-dasharray:166;stroke-dashoffset:166;stroke-width:2;stroke-miterlimit:10;stroke:#7ac142;fill:none;animation:svelte-zjta2c-stroke 0.6s cubic-bezier(0.65, 0, 0.45, 1) forwards}.checkmark.svelte-zjta2c{width:56px;height:56px;border-radius:50%;display:block;stroke-width:2;stroke:#fff;stroke-miterlimit:10;margin:10% auto;box-shadow:inset 0px 0px 0px #7ac142;animation:svelte-zjta2c-fill .4s ease-in-out .4s forwards, svelte-zjta2c-scale .3s ease-in-out .9s both}.checkmark__check.svelte-zjta2c{transform-origin:50% 50%;stroke-dasharray:48;stroke-dashoffset:48;animation:svelte-zjta2c-stroke 0.3s cubic-bezier(0.65, 0, 0.45, 1) 0.8s forwards}@keyframes svelte-zjta2c-stroke{100%{stroke-dashoffset:0}}@keyframes svelte-zjta2c-scale{0%,100%{transform:none}50%{transform:scale3d(1.1, 1.1, 1)}}@keyframes svelte-zjta2c-fill{100%{box-shadow:inset 0px 0px 0px 30px #7ac142}}.scale.svelte-zjta2c{transform:scale(1.5)} +ul.svelte-w0gm0o{list-style:none;padding-inline-start:0;margin-bottom:0}li.svelte-w0gm0o{border-top:1px grey solid;padding:1em;cursor:pointer}li.svelte-w0gm0o:first-child{border-top:none !important}.icon.svelte-w0gm0o{float:left;height:24px;width:24px}.name.svelte-w0gm0o{margin-left:48px;line-height:24px;font-size:20px} +.actions.svelte-1l4mr9e{display:flex;align-items:center}.btn.svelte-1l4mr9e{background-color:var(--primary);margin:0;margin-left:auto;min-width:80px} +.error.svelte-1xgtl8s{color:var(--error)}.windows8.svelte-1xgtl8s{position:relative;width:56px;height:56px;margin:2rem auto}.windows8.svelte-1xgtl8s .wBall.svelte-1xgtl8s{position:absolute;width:53px;height:53px;opacity:0;transform:rotate(225deg);-o-transform:rotate(225deg);-ms-transform:rotate(225deg);-webkit-transform:rotate(225deg);-moz-transform:rotate(225deg);animation:svelte-1xgtl8s-orbit 5.7425s infinite;-o-animation:svelte-1xgtl8s-orbit 5.7425s infinite;-ms-animation:svelte-1xgtl8s-orbit 5.7425s infinite;-webkit-animation:svelte-1xgtl8s-orbit 5.7425s infinite;-moz-animation:svelte-1xgtl8s-orbit 5.7425s infinite}.windows8.svelte-1xgtl8s .wBall .wInnerBall.svelte-1xgtl8s{position:absolute;width:7px;height:7px;background:rgb(0, 140, 255);left:0px;top:0px;border-radius:7px}.windows8.svelte-1xgtl8s #wBall_1.svelte-1xgtl8s{animation-delay:1.256s;-o-animation-delay:1.256s;-ms-animation-delay:1.256s;-webkit-animation-delay:1.256s;-moz-animation-delay:1.256s}.windows8.svelte-1xgtl8s #wBall_2.svelte-1xgtl8s{animation-delay:0.243s;-o-animation-delay:0.243s;-ms-animation-delay:0.243s;-webkit-animation-delay:0.243s;-moz-animation-delay:0.243s}.windows8.svelte-1xgtl8s #wBall_3.svelte-1xgtl8s{animation-delay:0.5065s;-o-animation-delay:0.5065s;-ms-animation-delay:0.5065s;-webkit-animation-delay:0.5065s;-moz-animation-delay:0.5065s}.windows8.svelte-1xgtl8s #wBall_4.svelte-1xgtl8s{animation-delay:0.7495s;-o-animation-delay:0.7495s;-ms-animation-delay:0.7495s;-webkit-animation-delay:0.7495s;-moz-animation-delay:0.7495s}.windows8.svelte-1xgtl8s #wBall_5.svelte-1xgtl8s{animation-delay:1.003s;-o-animation-delay:1.003s;-ms-animation-delay:1.003s;-webkit-animation-delay:1.003s;-moz-animation-delay:1.003s}@keyframes svelte-1xgtl8s-orbit{0%{opacity:1;z-index:99;transform:rotate(180deg);animation-timing-function:ease-out}7%{opacity:1;transform:rotate(300deg);animation-timing-function:linear;origin:0%}30%{opacity:1;transform:rotate(410deg);animation-timing-function:ease-in-out;origin:7%}39%{opacity:1;transform:rotate(645deg);animation-timing-function:linear;origin:30%}70%{opacity:1;transform:rotate(770deg);animation-timing-function:ease-out;origin:39%}75%{opacity:1;transform:rotate(900deg);animation-timing-function:ease-out;origin:70%}76%{opacity:0;transform:rotate(900deg)}100%{opacity:0;transform:rotate(900deg)}}@-o-keyframes svelte-1xgtl8s-orbit{0%{opacity:1;z-index:99;-o-transform:rotate(180deg);-o-animation-timing-function:ease-out}7%{opacity:1;-o-transform:rotate(300deg);-o-animation-timing-function:linear;-o-origin:0%}30%{opacity:1;-o-transform:rotate(410deg);-o-animation-timing-function:ease-in-out;-o-origin:7%}39%{opacity:1;-o-transform:rotate(645deg);-o-animation-timing-function:linear;-o-origin:30%}70%{opacity:1;-o-transform:rotate(770deg);-o-animation-timing-function:ease-out;-o-origin:39%}75%{opacity:1;-o-transform:rotate(900deg);-o-animation-timing-function:ease-out;-o-origin:70%}76%{opacity:0;-o-transform:rotate(900deg)}100%{opacity:0;-o-transform:rotate(900deg)}}@-ms-keyframes svelte-1xgtl8s-orbit{0%{opacity:1;z-index:99;-ms-transform:rotate(180deg);-ms-animation-timing-function:ease-out}7%{opacity:1;-ms-transform:rotate(300deg);-ms-animation-timing-function:linear;-ms-origin:0%}30%{opacity:1;-ms-transform:rotate(410deg);-ms-animation-timing-function:ease-in-out;-ms-origin:7%}39%{opacity:1;-ms-transform:rotate(645deg);-ms-animation-timing-function:linear;-ms-origin:30%}70%{opacity:1;-ms-transform:rotate(770deg);-ms-animation-timing-function:ease-out;-ms-origin:39%}75%{opacity:1;-ms-transform:rotate(900deg);-ms-animation-timing-function:ease-out;-ms-origin:70%}76%{opacity:0;-ms-transform:rotate(900deg)}100%{opacity:0;-ms-transform:rotate(900deg)}}@-webkit-keyframes svelte-1xgtl8s-orbit{0%{opacity:1;z-index:99;-webkit-transform:rotate(180deg);-webkit-animation-timing-function:ease-out}7%{opacity:1;-webkit-transform:rotate(300deg);-webkit-animation-timing-function:linear;-webkit-origin:0%}30%{opacity:1;-webkit-transform:rotate(410deg);-webkit-animation-timing-function:ease-in-out;-webkit-origin:7%}39%{opacity:1;-webkit-transform:rotate(645deg);-webkit-animation-timing-function:linear;-webkit-origin:30%}70%{opacity:1;-webkit-transform:rotate(770deg);-webkit-animation-timing-function:ease-out;-webkit-origin:39%}75%{opacity:1;-webkit-transform:rotate(900deg);-webkit-animation-timing-function:ease-out;-webkit-origin:70%}76%{opacity:0;-webkit-transform:rotate(900deg)}100%{opacity:0;-webkit-transform:rotate(900deg)}}@-moz-keyframes svelte-1xgtl8s-orbit{0%{opacity:1;z-index:99;-moz-transform:rotate(180deg);-moz-animation-timing-function:ease-out}7%{opacity:1;-moz-transform:rotate(300deg);-moz-animation-timing-function:linear;-moz-origin:0%}30%{opacity:1;-moz-transform:rotate(410deg);-moz-animation-timing-function:ease-in-out;-moz-origin:7%}39%{opacity:1;-moz-transform:rotate(645deg);-moz-animation-timing-function:linear;-moz-origin:30%}70%{opacity:1;-moz-transform:rotate(770deg);-moz-animation-timing-function:ease-out;-moz-origin:39%}75%{opacity:1;-moz-transform:rotate(900deg);-moz-animation-timing-function:ease-out;-moz-origin:70%}76%{opacity:0;-moz-transform:rotate(900deg)}100%{opacity:0;-moz-transform:rotate(900deg)}} +:root{--error:red} +a.svelte-ieslp9{color:var(--primary);text-decoration:none} +.error.svelte-1dvmdfa{color:var(--error);margin-top:4px} + +/*# sourceMappingURL=bundle.css.map */ \ No newline at end of file diff --git a/public/login/bundle.css.map b/public/login/bundle.css.map new file mode 100644 index 0000000..df140c9 --- /dev/null +++ b/public/login/bundle.css.map @@ -0,0 +1,28 @@ +{ + "version": 3, + "file": "bundle.css", + "sources": [ + "../../src/Login/App.svelte", + "../../src/Login/Credentials.svelte", + "../../src/Login/Redirect.svelte", + "../../src/Login/Twofactor.svelte", + "../../src/Login/twofactors/otc.svelte", + "../../src/Login/twofactors/push.svelte", + "../../src/Login/twofactors/u2f.svelte", + "../../src/Login/twofactors/toList.svelte", + "../../src/Login/twofactors/codeInput.svelte" + ], + "sourcesContent": [ + "\n\n
\n
\n
\n

Login

\n
\n {#if loading}\n
\n
\n
\n
\n
\n {/if}\n
\n {#if state === states.redirect}\n \n {:else if state === states.credentials}\n loading = s} />\n {:else if state === states.twofactor}\n loading = s} />\n {/if}\n
\n
\n
\n
\n\t

Powered by {appname}

\n
\n\n", + "\n\n\n\n{#if state === states.username}\n

Enter your Username or your E-Mail Address

\n
\n \n \n \n \n
{error}
\n
\n{:else}\n

Enter password for {username}

\n
\n \n \n \n \n
{error}
\n
\n{/if}\n\n", + "\n\n
\n \n \n \n \n
\n\n

{text}

\n\n\n", + "\n\n\n\n
\n {#if !twofactor} \n

Select your Authentication method:

\n
    \n {#each twofactors as tf}\n
  • twofactor = tf}>\n
    \n \n
    \n\n
    \n {tf.name}\n
    \n
  • \n {/each}\n
\n {:else}\n {#if twofactor.type === TFATypes.OTC}\n \n {:else if twofactor.type === TFATypes.BACKUP_CODE}\n \n {:else if twofactor.type === TFATypes.U2F}\n \n {:else if twofactor.type === TFATypes.APP_ALLOW}\n \n {:else}\n
Invalid TwoFactor Method!
\n {/if}\n {/if}\n\n
", + "\n\n\n\n\n

{title}

\n\n\n\n
\n \n \n
", + "\n\n\n\n\n

SMS

\n\n

A code was sent to your Device {device}

\n\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n\n
{error}
\n", + "\n\n\n\n\n

U2F Security Key

\n

This Method is currently not supported. Please choose another one!

\n", + "\n\n\n

\n evt.preventDefault() || finish(false)}>Choose another Method\n

", + "\n\n\n\n
\n \n \n \n \n
{error}
\n
" + ], + "names": [], + "mappings": "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" +} \ No newline at end of file diff --git a/public/login/bundle.js b/public/login/bundle.js new file mode 100644 index 0000000..4eefbf0 --- /dev/null +++ b/public/login/bundle.js @@ -0,0 +1,6197 @@ +var app = (function () { + 'use strict'; + + var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; + + function unwrapExports (x) { + return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x; + } + + function createCommonjsModule(fn, module) { + return module = { exports: {} }, fn(module, module.exports), module.exports; + } + + var internal = createCommonjsModule(function (module, exports) { + + Object.defineProperty(exports, '__esModule', { value: true }); + + function noop() {} + + const identity = x => x; + + function assign(tar, src) { + for (const k in src) tar[k] = src[k]; + return tar; + } + + function is_promise(value) { + return value && typeof value.then === 'function'; + } + + function add_location(element, file, line, column, char) { + element.__svelte_meta = { + loc: { file, line, column, char } + }; + } + + function run(fn) { + return fn(); + } + + function blank_object() { + return Object.create(null); + } + + function run_all(fns) { + fns.forEach(run); + } + + function is_function(thing) { + return typeof thing === 'function'; + } + + function safe_not_equal(a, b) { + return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function'); + } + + function not_equal(a, b) { + return a != a ? b == b : a !== b; + } + + function validate_store(store, name) { + if (!store || typeof store.subscribe !== 'function') { + throw new Error(`'${name}' is not a store with a 'subscribe' method`); + } + } + + function subscribe(component, store, callback) { + const unsub = store.subscribe(callback); + + component.$$.on_destroy.push(unsub.unsubscribe + ? () => unsub.unsubscribe() + : unsub); + } + + function create_slot(definition, ctx, fn) { + if (definition) { + const slot_ctx = get_slot_context(definition, ctx, fn); + return definition[0](slot_ctx); + } + } + + function get_slot_context(definition, ctx, fn) { + return definition[1] + ? assign({}, assign(ctx.$$scope.ctx, definition[1](fn ? fn(ctx) : {}))) + : ctx.$$scope.ctx; + } + + function get_slot_changes(definition, ctx, changed, fn) { + return definition[1] + ? assign({}, assign(ctx.$$scope.changed || {}, definition[1](fn ? fn(changed) : {}))) + : ctx.$$scope.changed || {}; + } + + function exclude_internal_props(props) { + const result = {}; + for (const k in props) if (k[0] !== '$') result[k] = props[k]; + return result; + } + + const tasks = new Set(); + let running = false; + + function run_tasks() { + tasks.forEach(task => { + if (!task[0](window.performance.now())) { + tasks.delete(task); + task[1](); + } + }); + + running = tasks.size > 0; + if (running) requestAnimationFrame(run_tasks); + } + + function clear_loops() { + // for testing... + tasks.forEach(task => tasks.delete(task)); + running = false; + } + + function loop(fn) { + let task; + + if (!running) { + running = true; + requestAnimationFrame(run_tasks); + } + + return { + promise: new Promise(fulfil => { + tasks.add(task = [fn, fulfil]); + }), + abort() { + tasks.delete(task); + } + }; + } + + function append(target, node) { + target.appendChild(node); + } + + function insert(target, node, anchor) { + target.insertBefore(node, anchor || null); + } + + function detach(node) { + node.parentNode.removeChild(node); + } + + function detach_between(before, after) { + while (before.nextSibling && before.nextSibling !== after) { + before.parentNode.removeChild(before.nextSibling); + } + } + + function detach_before(after) { + while (after.previousSibling) { + after.parentNode.removeChild(after.previousSibling); + } + } + + function detach_after(before) { + while (before.nextSibling) { + before.parentNode.removeChild(before.nextSibling); + } + } + + function destroy_each(iterations, detaching) { + for (let i = 0; i < iterations.length; i += 1) { + if (iterations[i]) iterations[i].d(detaching); + } + } + + function element(name) { + return document.createElement(name); + } + + function object_without_properties(obj, exclude) { + const target = {}; + for (const k in obj) { + if (Object.prototype.hasOwnProperty.call(obj, k) && exclude.indexOf(k) === -1) { + target[k] = obj[k]; + } + } + return target; + } + + function svg_element(name) { + return document.createElementNS('http://www.w3.org/2000/svg', name); + } + + function text(data) { + return document.createTextNode(data); + } + + function space() { + return text(' '); + } + + function empty() { + return text(''); + } + + function listen(node, event, handler, options) { + node.addEventListener(event, handler, options); + return () => node.removeEventListener(event, handler, options); + } + + function prevent_default(fn) { + return function(event) { + event.preventDefault(); + return fn.call(this, event); + }; + } + + function stop_propagation(fn) { + return function(event) { + event.stopPropagation(); + return fn.call(this, event); + }; + } + + function attr(node, attribute, value) { + if (value == null) node.removeAttribute(attribute); + else node.setAttribute(attribute, value); + } + + function set_attributes(node, attributes) { + for (const key in attributes) { + if (key === 'style') { + node.style.cssText = attributes[key]; + } else if (key in node) { + node[key] = attributes[key]; + } else { + attr(node, key, attributes[key]); + } + } + } + + function set_custom_element_data(node, prop, value) { + if (prop in node) { + node[prop] = value; + } else { + attr(node, prop, value); + } + } + + function xlink_attr(node, attribute, value) { + node.setAttributeNS('http://www.w3.org/1999/xlink', attribute, value); + } + + function get_binding_group_value(group) { + const value = []; + for (let i = 0; i < group.length; i += 1) { + if (group[i].checked) value.push(group[i].__value); + } + return value; + } + + function to_number(value) { + return value === '' ? undefined : +value; + } + + function time_ranges_to_array(ranges) { + const array = []; + for (let i = 0; i < ranges.length; i += 1) { + array.push({ start: ranges.start(i), end: ranges.end(i) }); + } + return array; + } + + function children(element) { + return Array.from(element.childNodes); + } + + function claim_element(nodes, name, attributes, svg) { + for (let i = 0; i < nodes.length; i += 1) { + const node = nodes[i]; + if (node.nodeName === name) { + for (let j = 0; j < node.attributes.length; j += 1) { + const attribute = node.attributes[j]; + if (!attributes[attribute.name]) node.removeAttribute(attribute.name); + } + return nodes.splice(i, 1)[0]; // TODO strip unwanted attributes + } + } + + return svg ? svg_element(name) : element(name); + } + + function claim_text(nodes, data) { + for (let i = 0; i < nodes.length; i += 1) { + const node = nodes[i]; + if (node.nodeType === 3) { + node.data = data; + return nodes.splice(i, 1)[0]; + } + } + + return text(data); + } + + function set_data(text, data) { + data = '' + data; + if (text.data !== data) text.data = data; + } + + function set_input_type(input, type) { + try { + input.type = type; + } catch (e) { + // do nothing + } + } + + function set_style(node, key, value) { + node.style.setProperty(key, value); + } + + function select_option(select, value) { + for (let i = 0; i < select.options.length; i += 1) { + const option = select.options[i]; + + if (option.__value === value) { + option.selected = true; + return; + } + } + } + + function select_options(select, value) { + for (let i = 0; i < select.options.length; i += 1) { + const option = select.options[i]; + option.selected = ~value.indexOf(option.__value); + } + } + + function select_value(select) { + const selected_option = select.querySelector(':checked') || select.options[0]; + return selected_option && selected_option.__value; + } + + function select_multiple_value(select) { + return [].map.call(select.querySelectorAll(':checked'), option => option.__value); + } + + function add_resize_listener(element, fn) { + if (getComputedStyle(element).position === 'static') { + element.style.position = 'relative'; + } + + const object = document.createElement('object'); + object.setAttribute('style', 'display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; pointer-events: none; z-index: -1;'); + object.type = 'text/html'; + + let win; + + object.onload = () => { + win = object.contentDocument.defaultView; + win.addEventListener('resize', fn); + }; + + if (/Trident/.test(navigator.userAgent)) { + element.appendChild(object); + object.data = 'about:blank'; + } else { + object.data = 'about:blank'; + element.appendChild(object); + } + + return { + cancel: () => { + win && win.removeEventListener && win.removeEventListener('resize', fn); + element.removeChild(object); + } + }; + } + + function toggle_class(element, name, toggle) { + element.classList[toggle ? 'add' : 'remove'](name); + } + + function custom_event(type, detail) { + const e = document.createEvent('CustomEvent'); + e.initCustomEvent(type, false, false, detail); + return e; + } + + let stylesheet; + let active = 0; + let current_rules = {}; + + // https://github.com/darkskyapp/string-hash/blob/master/index.js + function hash(str) { + let hash = 5381; + let i = str.length; + + while (i--) hash = ((hash << 5) - hash) ^ str.charCodeAt(i); + return hash >>> 0; + } + + function create_rule(node, a, b, duration, delay, ease, fn, uid = 0) { + const step = 16.666 / duration; + let keyframes = '{\n'; + + for (let p = 0; p <= 1; p += step) { + const t = a + (b - a) * ease(p); + keyframes += p * 100 + `%{${fn(t, 1 - t)}}\n`; + } + + const rule = keyframes + `100% {${fn(b, 1 - b)}}\n}`; + const name = `__svelte_${hash(rule)}_${uid}`; + + if (!current_rules[name]) { + if (!stylesheet) { + const style = element('style'); + document.head.appendChild(style); + stylesheet = style.sheet; + } + + current_rules[name] = true; + stylesheet.insertRule(`@keyframes ${name} ${rule}`, stylesheet.cssRules.length); + } + + const animation = node.style.animation || ''; + node.style.animation = `${animation ? `${animation}, ` : ``}${name} ${duration}ms linear ${delay}ms 1 both`; + + active += 1; + return name; + } + + function delete_rule(node, name) { + node.style.animation = (node.style.animation || '') + .split(', ') + .filter(name + ? anim => anim.indexOf(name) < 0 // remove specific animation + : anim => anim.indexOf('__svelte') === -1 // remove all Svelte animations + ) + .join(', '); + + if (name && !--active) clear_rules(); + } + + function clear_rules() { + requestAnimationFrame(() => { + if (active) return; + let i = stylesheet.cssRules.length; + while (i--) stylesheet.deleteRule(i); + current_rules = {}; + }); + } + + function create_animation(node, from, fn, params) { + if (!from) return noop; + + const to = node.getBoundingClientRect(); + if (from.left === to.left && from.right === to.right && from.top === to.top && from.bottom === to.bottom) return noop; + + const { + delay = 0, + duration = 300, + easing = identity, + start: start_time = window.performance.now() + delay, + end = start_time + duration, + tick = noop, + css + } = fn(node, { from, to }, params); + + let running = true; + let started = false; + let name; + + const css_text = node.style.cssText; + + function start() { + if (css) { + if (delay) node.style.cssText = css_text; // TODO create delayed animation instead? + name = create_rule(node, 0, 1, duration, 0, easing, css); + } + + started = true; + } + + function stop() { + if (css) delete_rule(node, name); + running = false; + } + + loop(now => { + if (!started && now >= start_time) { + start(); + } + + if (started && now >= end) { + tick(1, 0); + stop(); + } + + if (!running) { + return false; + } + + if (started) { + const p = now - start_time; + const t = 0 + 1 * easing(p / duration); + tick(t, 1 - t); + } + + return true; + }); + + if (delay) { + if (css) node.style.cssText += css(0, 1); + } else { + start(); + } + + tick(0, 1); + + return stop; + } + + function fix_position(node) { + const style = getComputedStyle(node); + + if (style.position !== 'absolute' && style.position !== 'fixed') { + const { width, height } = style; + const a = node.getBoundingClientRect(); + node.style.position = 'absolute'; + node.style.width = width; + node.style.height = height; + const b = node.getBoundingClientRect(); + + if (a.left !== b.left || a.top !== b.top) { + const style = getComputedStyle(node); + const transform = style.transform === 'none' ? '' : style.transform; + + node.style.transform = `${transform} translate(${a.left - b.left}px, ${a.top - b.top}px)`; + } + } + } + + function set_current_component(component) { + exports.current_component = component; + } + + function get_current_component() { + if (!exports.current_component) throw new Error(`Function called outside component initialization`); + return exports.current_component; + } + + function beforeUpdate(fn) { + get_current_component().$$.before_render.push(fn); + } + + function onMount(fn) { + get_current_component().$$.on_mount.push(fn); + } + + function afterUpdate(fn) { + get_current_component().$$.after_render.push(fn); + } + + function onDestroy(fn) { + get_current_component().$$.on_destroy.push(fn); + } + + function createEventDispatcher() { + const component = exports.current_component; + + return (type, detail) => { + const callbacks = component.$$.callbacks[type]; + + if (callbacks) { + // TODO are there situations where events could be dispatched + // in a server (non-DOM) environment? + const event = custom_event(type, detail); + callbacks.slice().forEach(fn => { + fn.call(component, event); + }); + } + }; + } + + function setContext(key, context) { + get_current_component().$$.context.set(key, context); + } + + function getContext(key) { + return get_current_component().$$.context.get(key); + } + + // TODO figure out if we still want to support + // shorthand events, or if we want to implement + // a real bubbling mechanism + function bubble(component, event) { + const callbacks = component.$$.callbacks[event.type]; + + if (callbacks) { + callbacks.slice().forEach(fn => fn(event)); + } + } + + const dirty_components = []; + const intros = { enabled: false }; + + const resolved_promise = Promise.resolve(); + let update_scheduled = false; + const binding_callbacks = []; + const render_callbacks = []; + const flush_callbacks = []; + + function schedule_update() { + if (!update_scheduled) { + update_scheduled = true; + resolved_promise.then(flush); + } + } + + function tick() { + schedule_update(); + return resolved_promise; + } + + function add_binding_callback(fn) { + binding_callbacks.push(fn); + } + + function add_render_callback(fn) { + render_callbacks.push(fn); + } + + function add_flush_callback(fn) { + flush_callbacks.push(fn); + } + + function flush() { + const seen_callbacks = new Set(); + + do { + // first, call beforeUpdate functions + // and update components + while (dirty_components.length) { + const component = dirty_components.shift(); + set_current_component(component); + update(component.$$); + } + + while (binding_callbacks.length) binding_callbacks.shift()(); + + // then, once components are updated, call + // afterUpdate functions. This may cause + // subsequent updates... + while (render_callbacks.length) { + const callback = render_callbacks.pop(); + if (!seen_callbacks.has(callback)) { + callback(); + + // ...so guard against infinite loops + seen_callbacks.add(callback); + } + } + } while (dirty_components.length); + + while (flush_callbacks.length) { + flush_callbacks.pop()(); + } + + update_scheduled = false; + } + + function update($$) { + if ($$.fragment) { + $$.update($$.dirty); + run_all($$.before_render); + $$.fragment.p($$.dirty, $$.ctx); + $$.dirty = null; + + $$.after_render.forEach(add_render_callback); + } + } + + let promise; + + function wait() { + if (!promise) { + promise = Promise.resolve(); + promise.then(() => { + promise = null; + }); + } + + return promise; + } + + function dispatch(node, direction, kind) { + node.dispatchEvent(custom_event(`${direction ? 'intro' : 'outro'}${kind}`)); + } + + let outros; + + function group_outros() { + outros = { + remaining: 0, + callbacks: [] + }; + } + + function check_outros() { + if (!outros.remaining) { + run_all(outros.callbacks); + } + } + + function on_outro(callback) { + outros.callbacks.push(callback); + } + + function create_in_transition(node, fn, params) { + let config = fn(node, params); + let running = false; + let animation_name; + let task; + let uid = 0; + + function cleanup() { + if (animation_name) delete_rule(node, animation_name); + } + + function go() { + const { + delay = 0, + duration = 300, + easing = identity, + tick: tick$$1 = noop, + css + } = config; + + if (css) animation_name = create_rule(node, 0, 1, duration, delay, easing, css, uid++); + tick$$1(0, 1); + + const start_time = window.performance.now() + delay; + const end_time = start_time + duration; + + if (task) task.abort(); + running = true; + + task = loop(now => { + if (running) { + if (now >= end_time) { + tick$$1(1, 0); + cleanup(); + return running = false; + } + + if (now >= start_time) { + const t = easing((now - start_time) / duration); + tick$$1(t, 1 - t); + } + } + + return running; + }); + } + + let started = false; + + return { + start() { + if (started) return; + + delete_rule(node); + + if (typeof config === 'function') { + config = config(); + wait().then(go); + } else { + go(); + } + }, + + invalidate() { + started = false; + }, + + end() { + if (running) { + cleanup(); + running = false; + } + } + }; + } + + function create_out_transition(node, fn, params) { + let config = fn(node, params); + let running = true; + let animation_name; + + const group = outros; + + group.remaining += 1; + + function go() { + const { + delay = 0, + duration = 300, + easing = identity, + tick: tick$$1 = noop, + css + } = config; + + if (css) animation_name = create_rule(node, 1, 0, duration, delay, easing, css); + + const start_time = window.performance.now() + delay; + const end_time = start_time + duration; + + loop(now => { + if (running) { + if (now >= end_time) { + tick$$1(0, 1); + + if (!--group.remaining) { + // this will result in `end()` being called, + // so we don't need to clean up here + run_all(group.callbacks); + } + + return false; + } + + if (now >= start_time) { + const t = easing((now - start_time) / duration); + tick$$1(1 - t, t); + } + } + + return running; + }); + } + + if (typeof config === 'function') { + wait().then(() => { + config = config(); + go(); + }); + } else { + go(); + } + + return { + end(reset) { + if (reset && config.tick) { + config.tick(1, 0); + } + + if (running) { + if (animation_name) delete_rule(node, animation_name); + running = false; + } + } + }; + } + + function create_bidirectional_transition(node, fn, params, intro) { + let config = fn(node, params); + + let t = intro ? 0 : 1; + + let running_program = null; + let pending_program = null; + let animation_name = null; + + function clear_animation() { + if (animation_name) delete_rule(node, animation_name); + } + + function init(program, duration) { + const d = program.b - t; + duration *= Math.abs(d); + + return { + a: t, + b: program.b, + d, + duration, + start: program.start, + end: program.start + duration, + group: program.group + }; + } + + function go(b) { + const { + delay = 0, + duration = 300, + easing = identity, + tick: tick$$1 = noop, + css + } = config; + + const program = { + start: window.performance.now() + delay, + b + }; + + if (!b) { + program.group = outros; + outros.remaining += 1; + } + + if (running_program) { + pending_program = program; + } else { + // if this is an intro, and there's a delay, we need to do + // an initial tick and/or apply CSS animation immediately + if (css) { + clear_animation(); + animation_name = create_rule(node, t, b, duration, delay, easing, css); + } + + if (b) tick$$1(0, 1); + + running_program = init(program, duration); + add_render_callback(() => dispatch(node, b, 'start')); + + loop(now => { + if (pending_program && now > pending_program.start) { + running_program = init(pending_program, duration); + pending_program = null; + + dispatch(node, running_program.b, 'start'); + + if (css) { + clear_animation(); + animation_name = create_rule(node, t, running_program.b, running_program.duration, 0, easing, config.css); + } + } + + if (running_program) { + if (now >= running_program.end) { + tick$$1(t = running_program.b, 1 - t); + dispatch(node, running_program.b, 'end'); + + if (!pending_program) { + // we're done + if (running_program.b) { + // intro — we can tidy up immediately + clear_animation(); + } else { + // outro — needs to be coordinated + if (!--running_program.group.remaining) run_all(running_program.group.callbacks); + } + } + + running_program = null; + } + + else if (now >= running_program.start) { + const p = now - running_program.start; + t = running_program.a + running_program.d * easing(p / running_program.duration); + tick$$1(t, 1 - t); + } + } + + return !!(running_program || pending_program); + }); + } + } + + return { + run(b) { + if (typeof config === 'function') { + wait().then(() => { + config = config(); + go(b); + }); + } else { + go(b); + } + }, + + end() { + clear_animation(); + running_program = pending_program = null; + } + }; + } + + function handle_promise(promise, info) { + const token = info.token = {}; + + function update(type, index, key, value) { + if (info.token !== token) return; + + info.resolved = key && { [key]: value }; + + const child_ctx = assign(assign({}, info.ctx), info.resolved); + const block = type && (info.current = type)(child_ctx); + + if (info.block) { + if (info.blocks) { + info.blocks.forEach((block, i) => { + if (i !== index && block) { + group_outros(); + on_outro(() => { + block.d(1); + info.blocks[i] = null; + }); + block.o(1); + check_outros(); + } + }); + } else { + info.block.d(1); + } + + block.c(); + if (block.i) block.i(1); + block.m(info.mount(), info.anchor); + + flush(); + } + + info.block = block; + if (info.blocks) info.blocks[index] = block; + } + + if (is_promise(promise)) { + promise.then(value => { + update(info.then, 1, info.value, value); + }, error => { + update(info.catch, 2, info.error, error); + }); + + // if we previously had a then/catch block, destroy it + if (info.current !== info.pending) { + update(info.pending, 0); + return true; + } + } else { + if (info.current !== info.then) { + update(info.then, 1, info.value, promise); + return true; + } + + info.resolved = { [info.value]: promise }; + } + } + + function destroy_block(block, lookup) { + block.d(1); + lookup.delete(block.key); + } + + function outro_and_destroy_block(block, lookup) { + on_outro(() => { + destroy_block(block, lookup); + }); + + block.o(1); + } + + function fix_and_outro_and_destroy_block(block, lookup) { + block.f(); + outro_and_destroy_block(block, lookup); + } + + function update_keyed_each(old_blocks, changed, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block, next, get_context) { + let o = old_blocks.length; + let n = list.length; + + let i = o; + const old_indexes = {}; + while (i--) old_indexes[old_blocks[i].key] = i; + + const new_blocks = []; + const new_lookup = new Map(); + const deltas = new Map(); + + i = n; + while (i--) { + const child_ctx = get_context(ctx, list, i); + const key = get_key(child_ctx); + let block = lookup.get(key); + + if (!block) { + block = create_each_block(key, child_ctx); + block.c(); + } else if (dynamic) { + block.p(changed, child_ctx); + } + + new_lookup.set(key, new_blocks[i] = block); + + if (key in old_indexes) deltas.set(key, Math.abs(i - old_indexes[key])); + } + + const will_move = new Set(); + const did_move = new Set(); + + function insert(block) { + if (block.i) block.i(1); + block.m(node, next); + lookup.set(block.key, block); + next = block.first; + n--; + } + + while (o && n) { + const new_block = new_blocks[n - 1]; + const old_block = old_blocks[o - 1]; + const new_key = new_block.key; + const old_key = old_block.key; + + if (new_block === old_block) { + // do nothing + next = new_block.first; + o--; + n--; + } + + else if (!new_lookup.has(old_key)) { + // remove old block + destroy(old_block, lookup); + o--; + } + + else if (!lookup.has(new_key) || will_move.has(new_key)) { + insert(new_block); + } + + else if (did_move.has(old_key)) { + o--; + + } else if (deltas.get(new_key) > deltas.get(old_key)) { + did_move.add(new_key); + insert(new_block); + + } else { + will_move.add(old_key); + o--; + } + } + + while (o--) { + const old_block = old_blocks[o]; + if (!new_lookup.has(old_block.key)) destroy(old_block, lookup); + } + + while (n) insert(new_blocks[n - 1]); + + return new_blocks; + } + + function measure(blocks) { + const rects = {}; + let i = blocks.length; + while (i--) rects[blocks[i].key] = blocks[i].node.getBoundingClientRect(); + return rects; + } + + function get_spread_update(levels, updates) { + const update = {}; + + const to_null_out = {}; + const accounted_for = { $$scope: 1 }; + + let i = levels.length; + while (i--) { + const o = levels[i]; + const n = updates[i]; + + if (n) { + for (const key in o) { + if (!(key in n)) to_null_out[key] = 1; + } + + for (const key in n) { + if (!accounted_for[key]) { + update[key] = n[key]; + accounted_for[key] = 1; + } + } + + levels[i] = n; + } else { + for (const key in o) { + accounted_for[key] = 1; + } + } + } + + for (const key in to_null_out) { + if (!(key in update)) update[key] = undefined; + } + + return update; + } + + const invalid_attribute_name_character = /[\s'">/=\u{FDD0}-\u{FDEF}\u{FFFE}\u{FFFF}\u{1FFFE}\u{1FFFF}\u{2FFFE}\u{2FFFF}\u{3FFFE}\u{3FFFF}\u{4FFFE}\u{4FFFF}\u{5FFFE}\u{5FFFF}\u{6FFFE}\u{6FFFF}\u{7FFFE}\u{7FFFF}\u{8FFFE}\u{8FFFF}\u{9FFFE}\u{9FFFF}\u{AFFFE}\u{AFFFF}\u{BFFFE}\u{BFFFF}\u{CFFFE}\u{CFFFF}\u{DFFFE}\u{DFFFF}\u{EFFFE}\u{EFFFF}\u{FFFFE}\u{FFFFF}\u{10FFFE}\u{10FFFF}]/u; + // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2 + // https://infra.spec.whatwg.org/#noncharacter + + function spread(args) { + const attributes = Object.assign({}, ...args); + let str = ''; + + Object.keys(attributes).forEach(name => { + if (invalid_attribute_name_character.test(name)) return; + + const value = attributes[name]; + if (value === undefined) return; + if (value === true) str += " " + name; + + const escaped = String(value) + .replace(/"/g, '"') + .replace(/'/g, '''); + + str += " " + name + "=" + JSON.stringify(escaped); + }); + + return str; + } + + const escaped = { + '"': '"', + "'": ''', + '&': '&', + '<': '<', + '>': '>' + }; + + function escape(html) { + return String(html).replace(/["'&<>]/g, match => escaped[match]); + } + + function each(items, fn) { + let str = ''; + for (let i = 0; i < items.length; i += 1) { + str += fn(items[i], i); + } + return str; + } + + const missing_component = { + $$render: () => '' + }; + + function validate_component(component, name) { + if (!component || !component.$$render) { + if (name === 'svelte:component') name += ' this={...}'; + throw new Error(`<${name}> is not a valid SSR component. You may need to review your build config to ensure that dependencies are compiled, rather than imported as pre-compiled modules`); + } + + return component; + } + + function debug(file, line, column, values) { + console.log(`{@debug} ${file ? file + ' ' : ''}(${line}:${column})`); // eslint-disable-line no-console + console.log(values); // eslint-disable-line no-console + return ''; + } + + let on_destroy; + + function create_ssr_component(fn) { + function $$render(result, props, bindings, slots) { + const parent_component = exports.current_component; + + const $$ = { + on_destroy, + context: new Map(parent_component ? parent_component.$$.context : []), + + // these will be immediately discarded + on_mount: [], + before_render: [], + after_render: [], + callbacks: blank_object() + }; + + set_current_component({ $$ }); + + const html = fn(result, props, bindings, slots); + + set_current_component(parent_component); + return html; + } + + return { + render: (props = {}, options = {}) => { + on_destroy = []; + + const result = { head: '', css: new Set() }; + const html = $$render(result, props, {}, options); + + run_all(on_destroy); + + return { + html, + css: { + code: Array.from(result.css).map(css => css.code).join('\n'), + map: null // TODO + }, + head: result.head + }; + }, + + $$render + }; + } + + function get_store_value(store) { + let value; + store.subscribe(_ => value = _)(); + return value; + } + + function bind(component, name, callback) { + if (component.$$.props.indexOf(name) === -1) return; + component.$$.bound[name] = callback; + callback(component.$$.ctx[name]); + } + + function mount_component(component, target, anchor) { + const { fragment, on_mount, on_destroy, after_render } = component.$$; + + fragment.m(target, anchor); + + // onMount happens after the initial afterUpdate. Because + // afterUpdate callbacks happen in reverse order (inner first) + // we schedule onMount callbacks before afterUpdate callbacks + add_render_callback(() => { + const new_on_destroy = on_mount.map(run).filter(is_function); + if (on_destroy) { + on_destroy.push(...new_on_destroy); + } else { + // Edge case - component was destroyed immediately, + // most likely as a result of a binding initialising + run_all(new_on_destroy); + } + component.$$.on_mount = []; + }); + + after_render.forEach(add_render_callback); + } + + function destroy(component, detaching) { + if (component.$$) { + run_all(component.$$.on_destroy); + component.$$.fragment.d(detaching); + + // TODO null out other refs, including component.$$ (but need to + // preserve final state?) + component.$$.on_destroy = component.$$.fragment = null; + component.$$.ctx = {}; + } + } + + function make_dirty(component, key) { + if (!component.$$.dirty) { + dirty_components.push(component); + schedule_update(); + component.$$.dirty = {}; + } + component.$$.dirty[key] = true; + } + + function init(component, options, instance, create_fragment, not_equal$$1, prop_names) { + const parent_component = exports.current_component; + set_current_component(component); + + const props = options.props || {}; + + const $$ = component.$$ = { + fragment: null, + ctx: null, + + // state + props: prop_names, + update: noop, + not_equal: not_equal$$1, + bound: blank_object(), + + // lifecycle + on_mount: [], + on_destroy: [], + before_render: [], + after_render: [], + context: new Map(parent_component ? parent_component.$$.context : []), + + // everything else + callbacks: blank_object(), + dirty: null + }; + + let ready = false; + + $$.ctx = instance + ? instance(component, props, (key, value) => { + if ($$.ctx && not_equal$$1($$.ctx[key], $$.ctx[key] = value)) { + if ($$.bound[key]) $$.bound[key](value); + if (ready) make_dirty(component, key); + } + }) + : props; + + $$.update(); + ready = true; + run_all($$.before_render); + $$.fragment = create_fragment($$.ctx); + + if (options.target) { + if (options.hydrate) { + $$.fragment.l(children(options.target)); + } else { + $$.fragment.c(); + } + + if (options.intro && component.$$.fragment.i) component.$$.fragment.i(); + mount_component(component, options.target, options.anchor); + flush(); + } + + set_current_component(parent_component); + } + if (typeof HTMLElement !== 'undefined') { + exports.SvelteElement = class extends HTMLElement { + constructor() { + super(); + this.attachShadow({ mode: 'open' }); + } + + connectedCallback() { + for (const key in this.$$.slotted) { + this.appendChild(this.$$.slotted[key]); + } + } + + attributeChangedCallback(attr$$1, oldValue, newValue) { + this[attr$$1] = newValue; + } + + $destroy() { + destroy(this, true); + this.$destroy = noop; + } + + $on(type, callback) { + // TODO should this delegate to addEventListener? + const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = [])); + callbacks.push(callback); + + return () => { + const index = callbacks.indexOf(callback); + if (index !== -1) callbacks.splice(index, 1); + }; + } + + $set() { + // overridden by instance, if it has props + } + }; + } + + class SvelteComponent { + $destroy() { + destroy(this, true); + this.$destroy = noop; + } + + $on(type, callback) { + const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = [])); + callbacks.push(callback); + + return () => { + const index = callbacks.indexOf(callback); + if (index !== -1) callbacks.splice(index, 1); + }; + } + + $set() { + // overridden by instance, if it has props + } + } + + class SvelteComponentDev extends SvelteComponent { + constructor(options) { + if (!options || (!options.target && !options.$$inline)) { + throw new Error(`'target' is a required option`); + } + + super(); + } + + $destroy() { + super.$destroy(); + this.$destroy = () => { + console.warn(`Component was already destroyed`); // eslint-disable-line no-console + }; + } + } + + exports.create_animation = create_animation; + exports.fix_position = fix_position; + exports.handle_promise = handle_promise; + exports.append = append; + exports.insert = insert; + exports.detach = detach; + exports.detach_between = detach_between; + exports.detach_before = detach_before; + exports.detach_after = detach_after; + exports.destroy_each = destroy_each; + exports.element = element; + exports.object_without_properties = object_without_properties; + exports.svg_element = svg_element; + exports.text = text; + exports.space = space; + exports.empty = empty; + exports.listen = listen; + exports.prevent_default = prevent_default; + exports.stop_propagation = stop_propagation; + exports.attr = attr; + exports.set_attributes = set_attributes; + exports.set_custom_element_data = set_custom_element_data; + exports.xlink_attr = xlink_attr; + exports.get_binding_group_value = get_binding_group_value; + exports.to_number = to_number; + exports.time_ranges_to_array = time_ranges_to_array; + exports.children = children; + exports.claim_element = claim_element; + exports.claim_text = claim_text; + exports.set_data = set_data; + exports.set_input_type = set_input_type; + exports.set_style = set_style; + exports.select_option = select_option; + exports.select_options = select_options; + exports.select_value = select_value; + exports.select_multiple_value = select_multiple_value; + exports.add_resize_listener = add_resize_listener; + exports.toggle_class = toggle_class; + exports.custom_event = custom_event; + exports.destroy_block = destroy_block; + exports.outro_and_destroy_block = outro_and_destroy_block; + exports.fix_and_outro_and_destroy_block = fix_and_outro_and_destroy_block; + exports.update_keyed_each = update_keyed_each; + exports.measure = measure; + exports.set_current_component = set_current_component; + exports.beforeUpdate = beforeUpdate; + exports.onMount = onMount; + exports.afterUpdate = afterUpdate; + exports.onDestroy = onDestroy; + exports.createEventDispatcher = createEventDispatcher; + exports.setContext = setContext; + exports.getContext = getContext; + exports.bubble = bubble; + exports.clear_loops = clear_loops; + exports.loop = loop; + exports.dirty_components = dirty_components; + exports.intros = intros; + exports.schedule_update = schedule_update; + exports.tick = tick; + exports.add_binding_callback = add_binding_callback; + exports.add_render_callback = add_render_callback; + exports.add_flush_callback = add_flush_callback; + exports.flush = flush; + exports.get_spread_update = get_spread_update; + exports.invalid_attribute_name_character = invalid_attribute_name_character; + exports.spread = spread; + exports.escaped = escaped; + exports.escape = escape; + exports.each = each; + exports.missing_component = missing_component; + exports.validate_component = validate_component; + exports.debug = debug; + exports.create_ssr_component = create_ssr_component; + exports.get_store_value = get_store_value; + exports.group_outros = group_outros; + exports.check_outros = check_outros; + exports.on_outro = on_outro; + exports.create_in_transition = create_in_transition; + exports.create_out_transition = create_out_transition; + exports.create_bidirectional_transition = create_bidirectional_transition; + exports.noop = noop; + exports.identity = identity; + exports.assign = assign; + exports.is_promise = is_promise; + exports.add_location = add_location; + exports.run = run; + exports.blank_object = blank_object; + exports.run_all = run_all; + exports.is_function = is_function; + exports.safe_not_equal = safe_not_equal; + exports.not_equal = not_equal; + exports.validate_store = validate_store; + exports.subscribe = subscribe; + exports.create_slot = create_slot; + exports.get_slot_context = get_slot_context; + exports.get_slot_changes = get_slot_changes; + exports.exclude_internal_props = exclude_internal_props; + exports.bind = bind; + exports.mount_component = mount_component; + exports.init = init; + exports.SvelteComponent = SvelteComponent; + exports.SvelteComponentDev = SvelteComponentDev; + }); + + unwrapExports(internal); + var internal_1 = internal.current_component; + var internal_2 = internal.SvelteElement; + var internal_3 = internal.create_animation; + var internal_4 = internal.fix_position; + var internal_5 = internal.handle_promise; + var internal_6 = internal.append; + var internal_7 = internal.insert; + var internal_8 = internal.detach; + var internal_9 = internal.detach_between; + var internal_10 = internal.detach_before; + var internal_11 = internal.detach_after; + var internal_12 = internal.destroy_each; + var internal_13 = internal.element; + var internal_14 = internal.object_without_properties; + var internal_15 = internal.svg_element; + var internal_16 = internal.text; + var internal_17 = internal.space; + var internal_18 = internal.empty; + var internal_19 = internal.listen; + var internal_20 = internal.prevent_default; + var internal_21 = internal.stop_propagation; + var internal_22 = internal.attr; + var internal_23 = internal.set_attributes; + var internal_24 = internal.set_custom_element_data; + var internal_25 = internal.xlink_attr; + var internal_26 = internal.get_binding_group_value; + var internal_27 = internal.to_number; + var internal_28 = internal.time_ranges_to_array; + var internal_29 = internal.children; + var internal_30 = internal.claim_element; + var internal_31 = internal.claim_text; + var internal_32 = internal.set_data; + var internal_33 = internal.set_input_type; + var internal_34 = internal.set_style; + var internal_35 = internal.select_option; + var internal_36 = internal.select_options; + var internal_37 = internal.select_value; + var internal_38 = internal.select_multiple_value; + var internal_39 = internal.add_resize_listener; + var internal_40 = internal.toggle_class; + var internal_41 = internal.custom_event; + var internal_42 = internal.destroy_block; + var internal_43 = internal.outro_and_destroy_block; + var internal_44 = internal.fix_and_outro_and_destroy_block; + var internal_45 = internal.update_keyed_each; + var internal_46 = internal.measure; + var internal_47 = internal.set_current_component; + var internal_48 = internal.beforeUpdate; + var internal_49 = internal.onMount; + var internal_50 = internal.afterUpdate; + var internal_51 = internal.onDestroy; + var internal_52 = internal.createEventDispatcher; + var internal_53 = internal.setContext; + var internal_54 = internal.getContext; + var internal_55 = internal.bubble; + var internal_56 = internal.clear_loops; + var internal_57 = internal.loop; + var internal_58 = internal.dirty_components; + var internal_59 = internal.intros; + var internal_60 = internal.schedule_update; + var internal_61 = internal.tick; + var internal_62 = internal.add_binding_callback; + var internal_63 = internal.add_render_callback; + var internal_64 = internal.add_flush_callback; + var internal_65 = internal.flush; + var internal_66 = internal.get_spread_update; + var internal_67 = internal.invalid_attribute_name_character; + var internal_68 = internal.spread; + var internal_69 = internal.escaped; + var internal_70 = internal.escape; + var internal_71 = internal.each; + var internal_72 = internal.missing_component; + var internal_73 = internal.validate_component; + var internal_74 = internal.debug; + var internal_75 = internal.create_ssr_component; + var internal_76 = internal.get_store_value; + var internal_77 = internal.group_outros; + var internal_78 = internal.check_outros; + var internal_79 = internal.on_outro; + var internal_80 = internal.create_in_transition; + var internal_81 = internal.create_out_transition; + var internal_82 = internal.create_bidirectional_transition; + var internal_83 = internal.noop; + var internal_84 = internal.identity; + var internal_85 = internal.assign; + var internal_86 = internal.is_promise; + var internal_87 = internal.add_location; + var internal_88 = internal.run; + var internal_89 = internal.blank_object; + var internal_90 = internal.run_all; + var internal_91 = internal.is_function; + var internal_92 = internal.safe_not_equal; + var internal_93 = internal.not_equal; + var internal_94 = internal.validate_store; + var internal_95 = internal.subscribe; + var internal_96 = internal.create_slot; + var internal_97 = internal.get_slot_context; + var internal_98 = internal.get_slot_changes; + var internal_99 = internal.exclude_internal_props; + var internal_100 = internal.bind; + var internal_101 = internal.mount_component; + var internal_102 = internal.init; + var internal_103 = internal.SvelteComponent; + var internal_104 = internal.SvelteComponentDev; + + /*! ***************************************************************************** + Copyright (c) Microsoft Corporation. All rights reserved. + Licensed under the Apache License, Version 2.0 (the "License"); you may not use + this file except in compliance with the License. You may obtain a copy of the + License at http://www.apache.org/licenses/LICENSE-2.0 + + THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED + WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, + MERCHANTABLITY OR NON-INFRINGEMENT. + + See the Apache Version 2.0 License for specific language governing permissions + and limitations under the License. + ***************************************************************************** */ + + function __awaiter(thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + } + + function __generator(thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (_) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } + } + + function setCookie(cname, cvalue, exdate) { + var expires = exdate ? ";expires=" + exdate : ""; + document.cookie = cname + "=" + cvalue + expires; + } + function getCookie(cname) { + var name = cname + "="; + var dc = decodeURIComponent(document.cookie); + var ca = dc.split(';'); + for (var i = 0; i < ca.length; i++) { + var c = ca[i]; + while (c.charAt(0) == ' ') { + c = c.substring(1); + } + if (c.indexOf(name) == 0) { + return c.substring(name.length, c.length); + } + } + return ""; + } + + // const baseURL = "https://auth.stamm.me"; + var baseURL = "http://localhost:3000"; + function request(endpoint, parameters, method, body, authInParam) { + if (parameters === void 0) { parameters = {}; } + if (method === void 0) { method = "GET"; } + if (authInParam === void 0) { authInParam = false; } + return __awaiter(this, void 0, void 0, function () { + var pairs, key, url; + return __generator(this, function (_a) { + pairs = []; + if (authInParam) { + parameters.login = getCookie("login"); + parameters.special = getCookie("special"); + } + for (key in parameters) { + pairs.push(key + "=" + parameters[key]); + } + url = endpoint; + if (pairs.length > 0) { + url += "?" + pairs.join("&"); + } + return [2 /*return*/, fetch(baseURL + url, { + method: method, + body: JSON.stringify(body), + credentials: "same-origin", + headers: { + 'content-type': 'application/json' + }, + }).then(function (e) { + if (e.status !== 200) + throw new Error(e.statusText); + return e.json(); + }).then(function (data) { + if (data.error) { + if (data.additional && data.additional.auth) { + var state = btoa(window.location.pathname + window.location.hash); + // window.location.href = `/login?state=${state}&base64=true`; + } + return Promise.reject(new Error(data.error)); + } + return data; + })]; + }); + }); + } + + var b;if(!(b=t)){var w=Math,y={},B=y.p={},aa=function(){},C=B.A={extend:function(o){aa.prototype=this;var _=new aa;return o&&_.u(o),_.z=this,_},create:function(){var o=this.extend();return o.h.apply(o,arguments),o},h:function(){},u:function(o){for(var _ in o)o.hasOwnProperty(_)&&(this[_]=o[_]);o.hasOwnProperty("toString")&&(this.toString=o.toString);},e:function(){return this.z.extend(this)}},D=B.i=C.extend({h:function(o,_){o=this.d=o||[],this.c=void 0==_?4*o.length:_;},toString:function(o){return (o||ba).stringify(this)},concat:function(o){var _=this.d,Da=o.d,Ea=this.c,o=o.c;if(this.t(),Ea%4)for(var Fa=0;Fa>>2]|=(255&Da[Fa>>>2]>>>24-8*(Fa%4))<<24-8*((Ea+Fa)%4);else if(65535>>2]=Da[Fa>>>2];else _.push.apply(_,Da);return this.c+=o,this},t:function(){var o=this.d,_=this.c;o[_>>>2]&=4294967295<<32-8*(_%4),o.length=w.ceil(_/4);},e:function(){var o=C.e.call(this);return o.d=this.d.slice(0),o},random:function(o){for(var _=[],Da=0;Da>>2]>>>24-8*(Ea%4),Da.push((Fa>>>4).toString(16)),Da.push((15&Fa).toString(16));return Da.join("")},parse:function(o){for(var _=o.length,Da=[],Ea=0;Ea<_;Ea+=2)Da[Ea>>>3]|=parseInt(o.substr(Ea,2),16)<<24-4*(Ea%8);return D.create(Da,_/2)}},da=ca.M={stringify:function(o){for(var _=o.d,o=o.c,Da=[],Ea=0;Ea>>2]>>>24-8*(Ea%4)));return Da.join("")},parse:function(o){for(var _=o.length,Da=[],Ea=0;Ea<_;Ea++)Da[Ea>>>2]|=(255&o.charCodeAt(Ea))<<24-8*(Ea%4);return D.create(Da,_)}},ea=ca.N={stringify:function(o){try{return decodeURIComponent(escape(da.stringify(o)))}catch(_){throw Error("Malformed UTF-8 data")}},parse:function(o){return da.parse(unescape(encodeURIComponent(o)))}},ia=B.I=C.extend({reset:function(){this.g=D.create(),this.j=0;},l:function(o){"string"==typeof o&&(o=ea.parse(o)),this.g.concat(o),this.j+=o.c;},m:function(o){var _=this.g,Da=_.d,Ea=_.c,Fa=this.n,Ga=Ea/(4*Fa),Ga=o?w.ceil(Ga):w.max((0|Ga)-this.r,0),o=Ga*Fa,Ea=w.min(4*o,Ea);if(o){for(var Ha=0;HaAa;Aa++)$[Aa]=L();M=M.k=xa.extend({q:function(){this.f=ya.create([L(1779033703,4089235720),L(3144134277,2227873595),L(1013904242,4271175723),L(2773480762,1595750129),L(1359893119,2917565137),L(2600822924,725511199),L(528734635,4215389547),L(1541459225,327033209)]);},H:function(o,_){for(var qb,Da=this.f.d,Ea=Da[0],Fa=Da[1],Ga=Da[2],Ha=Da[3],Ia=Da[4],Ja=Da[5],Ka=Da[6],Da=Da[7],La=Ea.a,Ma=Ea.b,Na=Fa.a,Oa=Fa.b,Pa=Ga.a,Qa=Ga.b,Ra=Ha.a,Sa=Ha.b,Ta=Ia.a,Ua=Ia.b,Va=Ja.a,Wa=Ja.b,Xa=Ka.a,Ya=Ka.b,Za=Da.a,$a=Da.b,_a=La,ab=Ma,bb=Na,cb=Oa,db=Pa,eb=Qa,fb=Ra,gb=Sa,hb=Ta,ib=Ua,jb=Va,kb=Wa,lb=Xa,mb=Ya,nb=Za,ob=$a,pb=0;80>pb;pb++){if(qb=$[pb],16>pb)var rb=qb.a=0|o[_+2*pb],sb=qb.b=0|o[_+2*pb+1];else{var rb=$[pb-15],sb=rb.a,tb=rb.b,rb=(tb<<31|sb>>>1)^(tb<<24|sb>>>8)^sb>>>7,tb=(sb<<31|tb>>>1)^(sb<<24|tb>>>8)^(sb<<25|tb>>>7),ub=$[pb-2],sb=ub.a,vb=ub.b,ub=(vb<<13|sb>>>19)^(sb<<3|vb>>>29)^sb>>>6,vb=(sb<<13|vb>>>19)^(vb<<3|sb>>>29)^(sb<<26|vb>>>6),sb=$[pb-7],wb=sb.a,xb=$[pb-16],yb=xb.a,xb=xb.b,sb=tb+sb.b,rb=rb+wb+(sb>>>0>>0?1:0),sb=sb+vb,rb=rb+ub+(sb>>>0>>0?1:0),sb=sb+xb,rb=rb+yb+(sb>>>0>>0?1:0);qb.a=rb,qb.b=sb;}var wb=hb&jb^~hb&lb,xb=ib&kb^~ib&mb,qb=_a&bb^_a&db^bb&db,tb=(ab<<4|_a>>>28)^(_a<<30|ab>>>2)^(_a<<25|ab>>>7),ub=(_a<<4|ab>>>28)^(ab<<30|_a>>>2)^(ab<<25|_a>>>7),vb=za[pb],Ab=vb.a,Bb=vb.b,vb=ob+((hb<<18|ib>>>14)^(hb<<14|ib>>>18)^(ib<<23|hb>>>9)),yb=nb+((ib<<18|hb>>>14)^(ib<<14|hb>>>18)^(hb<<23|ib>>>9))+(vb>>>0>>0?1:0),vb=vb+xb,yb=yb+wb+(vb>>>0>>0?1:0),vb=vb+Bb,yb=yb+Ab+(vb>>>0>>0?1:0),vb=vb+sb,yb=yb+rb+(vb>>>0>>0?1:0),sb=ub+(ab&cb^ab&eb^cb&eb),qb=tb+qb+(sb>>>0>>0?1:0),nb=lb,ob=mb,lb=jb,mb=kb,jb=hb,kb=ib,ib=0|gb+vb,hb=0|fb+yb+(ib>>>0>>0?1:0),fb=db,gb=eb,db=bb,eb=cb,bb=_a,cb=ab,ab=0|vb+sb,_a=0|yb+qb+(ab>>>0>>0?1:0);}Ma=Ea.b=0|Ma+ab,Ea.a=0|La+_a+(Ma>>>0>>0?1:0),Oa=Fa.b=0|Oa+cb,Fa.a=0|Na+bb+(Oa>>>0>>0?1:0),Qa=Ga.b=0|Qa+eb,Ga.a=0|Pa+db+(Qa>>>0>>0?1:0),Sa=Ha.b=0|Sa+gb,Ha.a=0|Ra+fb+(Sa>>>0>>0?1:0),Ua=Ia.b=0|Ua+ib,Ia.a=0|Ta+hb+(Ua>>>0>>0?1:0),Wa=Ja.b=0|Wa+kb,Ja.a=0|Va+jb+(Wa>>>0>>0?1:0),Ya=Ka.b=0|Ya+mb,Ka.a=0|Xa+lb+(Ya>>>0>>0?1:0),$a=Da.b=0|$a+ob,Da.a=0|Za+nb+($a>>>0>>0?1:0);},G:function(){var o=this.g,_=o.d,Da=8*this.j,Ea=8*o.c;_[Ea>>>5]|=128<<24-Ea%32,_[(Ea+128>>>10<<5)+31]=Da,o.c=4*_.length,this.m(),this.f=this.f.v();},n:32}),t.k=xa.D(M),t.L=xa.F(M);function sha512 (o){return t.k(o)+""} + + var TFATypes; + (function (TFATypes) { + TFATypes[TFATypes["OTC"] = 0] = "OTC"; + TFATypes[TFATypes["BACKUP_CODE"] = 1] = "BACKUP_CODE"; + TFATypes[TFATypes["U2F"] = 2] = "U2F"; + TFATypes[TFATypes["APP_ALLOW"] = 3] = "APP_ALLOW"; + })(TFATypes || (TFATypes = {})); + var Api = { + // twofactor: [{ + // id: "1", + // name: "Backup Codes", + // type: TFATypes.BACKUP_CODE + // }, { + // id: "2", + // name: "YubiKey", + // type: TFATypes.U2F + // }, { + // id: "3", + // name: "Authenticator", + // type: TFATypes.OTC + // }] as TwoFactor[], + getUsername: function () { + return this.username || getCookie("username"); + }, + setUsername: function (username) { + return __awaiter(this, void 0, void 0, function () { + var _this = this; + return __generator(this, function (_a) { + return [2 /*return*/, request("/api/user/login", { + type: "username", + username: username + }, "POST").then(function (res) { + _this.salt = res.salt; + _this.username = username; + return { + error: undefined + }; + })["catch"](function (err) { + var error = err.message; + return { error: error }; + })]; + }); + }); + }, + setPassword: function (password) { + return __awaiter(this, void 0, void 0, function () { + var pw; + var _this = this; + return __generator(this, function (_a) { + pw = sha512(this.salt + password); + return [2 /*return*/, request("/api/user/login", { + type: "password" + }, "POST", { + username: this.username, + password: pw + }).then(function (_a) { + var login = _a.login, special = _a.special, tfa = _a.tfa; + _this.login = login; + _this.special = special; + if (tfa && Array.isArray(tfa) && tfa.length > 0) + _this.twofactor = tfa; + else + _this.twofactor = undefined; + return { + error: undefined + }; + })["catch"](function (err) { + var error = err.message; + return { error: error }; + })]; + }); + }); + }, + gettok: function () { + return { + login: this.login.token, + special: this.special.token + }; + }, + sendBackup: function (id, code) { + return __awaiter(this, void 0, void 0, function () { + var _this = this; + return __generator(this, function (_a) { + return [2 /*return*/, request("/api/user/twofactor/backup", this.gettok(), "PUT", { code: code, id: id }).then(function (_a) { + var login_exp = _a.login_exp, special_exp = _a.special_exp; + _this.login.expires = login_exp; + _this.special.expires = special_exp; + return {}; + })["catch"](function (err) { return ({ error: err.message }); })]; + }); + }); + }, + sendOTC: function (id, code) { + return __awaiter(this, void 0, void 0, function () { + var _this = this; + return __generator(this, function (_a) { + return [2 /*return*/, request("/api/user/twofactor/otc", this.gettok(), "PUT", { code: code, id: id }).then(function (_a) { + var login_exp = _a.login_exp, special_exp = _a.special_exp; + _this.login.expires = login_exp; + _this.special.expires = special_exp; + return {}; + })["catch"](function (error) { return ({ error: error.message }); })]; + }); + }); + }, + finish: function () { + return __awaiter(this, void 0, void 0, function () { + var d, url, state, red, base64; + return __generator(this, function (_a) { + d = new Date(); + d.setTime(d.getTime() + (30 * 24 * 60 * 60 * 1000)); //Keep the username 30 days + setCookie("username", this.username, d.toUTCString()); + setCookie("login", this.login.token, new Date(this.login.expires).toUTCString()); + setCookie("special", this.special.token, new Date(this.special.expires).toUTCString()); + url = new URL(window.location.href); + state = url.searchParams.get("state"); + red = "/"; + if (state) { + base64 = url.searchParams.get("base64"); + if (base64) + red = atob(state); + else + red = state; + } + window.location.href = red; + return [2 /*return*/]; + }); + }); + } + }; + + /* src/Login/Credentials.svelte generated by Svelte v3.2.1 */ + + const file = "src/Login/Credentials.svelte"; + + // (66:0) {:else} + function create_else_block(ctx) { + var h3, t0, t1, t2, div1, input, t3, span0, t4, span1, t5, label, t7, div0, t8, div0_style_value, dispose; + + return { + c: function create() { + h3 = internal_13("h3"); + t0 = internal_16("Enter password for "); + t1 = internal_16(ctx.username); + t2 = internal_17(); + div1 = internal_13("div"); + input = internal_13("input"); + t3 = internal_17(); + span0 = internal_13("span"); + t4 = internal_17(); + span1 = internal_13("span"); + t5 = internal_17(); + label = internal_13("label"); + label.textContent = "Password"; + t7 = internal_17(); + div0 = internal_13("div"); + t8 = internal_16(ctx.error); + internal_87(h3, file, 66, 0, 1416); + internal_22(input, "type", "password"); + input.autocomplete = "password"; + input.autofocus = true; + internal_87(input, file, 68, 3, 1487); + span0.className = "highlight"; + internal_87(span0, file, 69, 3, 1570); + span1.className = "bar"; + internal_87(span1, file, 70, 3, 1605); + internal_87(label, file, 71, 3, 1634); + div0.className = "error svelte-m6rjik"; + div0.style.cssText = div0_style_value = !ctx.error ? "display: none;" : ""; + internal_87(div0, file, 72, 3, 1661); + div1.className = "floating group"; + internal_87(div1, file, 67, 0, 1455); + dispose = internal_19(input, "input", ctx.input_input_handler_1); + }, + + m: function mount(target, anchor) { + internal_7(target, h3, anchor); + internal_6(h3, t0); + internal_6(h3, t1); + internal_7(target, t2, anchor); + internal_7(target, div1, anchor); + internal_6(div1, input); + + input.value = ctx.password; + + internal_6(div1, t3); + internal_6(div1, span0); + internal_6(div1, t4); + internal_6(div1, span1); + internal_6(div1, t5); + internal_6(div1, label); + internal_6(div1, t7); + internal_6(div1, div0); + internal_6(div0, t8); + input.focus(); + }, + + p: function update(changed, ctx) { + if (changed.username) { + internal_32(t1, ctx.username); + } + + if (changed.password) input.value = ctx.password; + + if (changed.error) { + internal_32(t8, ctx.error); + } + + if ((changed.error) && div0_style_value !== (div0_style_value = !ctx.error ? "display: none;" : "")) { + div0.style.cssText = div0_style_value; + } + }, + + d: function destroy(detaching) { + if (detaching) { + internal_8(h3); + internal_8(t2); + internal_8(div1); + } + + dispose(); + } + }; + } + + // (57:0) {#if state === states.username} + function create_if_block(ctx) { + var h3, t1, div1, input, t2, span0, t3, span1, t4, label, t6, div0, t7, div0_style_value, dispose; + + return { + c: function create() { + h3 = internal_13("h3"); + h3.textContent = "Enter your Username or your E-Mail Address"; + t1 = internal_17(); + div1 = internal_13("div"); + input = internal_13("input"); + t2 = internal_17(); + span0 = internal_13("span"); + t3 = internal_17(); + span1 = internal_13("span"); + t4 = internal_17(); + label = internal_13("label"); + label.textContent = "Username or E-Mail"; + t6 = internal_17(); + div0 = internal_13("div"); + t7 = internal_16(ctx.error); + internal_87(h3, file, 57, 0, 1064); + internal_22(input, "type", "text"); + input.autocomplete = "username"; + input.autofocus = true; + internal_87(input, file, 59, 3, 1148); + span0.className = "highlight"; + internal_87(span0, file, 60, 3, 1227); + span1.className = "bar"; + internal_87(span1, file, 61, 3, 1262); + internal_87(label, file, 62, 3, 1291); + div0.className = "error svelte-m6rjik"; + div0.style.cssText = div0_style_value = !ctx.error ? "display: none;" : ""; + internal_87(div0, file, 63, 3, 1328); + div1.className = "floating group"; + internal_87(div1, file, 58, 0, 1116); + dispose = internal_19(input, "input", ctx.input_input_handler); + }, + + m: function mount(target, anchor) { + internal_7(target, h3, anchor); + internal_7(target, t1, anchor); + internal_7(target, div1, anchor); + internal_6(div1, input); + + input.value = ctx.username; + + internal_6(div1, t2); + internal_6(div1, span0); + internal_6(div1, t3); + internal_6(div1, span1); + internal_6(div1, t4); + internal_6(div1, label); + internal_6(div1, t6); + internal_6(div1, div0); + internal_6(div0, t7); + input.focus(); + }, + + p: function update(changed, ctx) { + if (changed.username && (input.value !== ctx.username)) input.value = ctx.username; + + if (changed.error) { + internal_32(t7, ctx.error); + } + + if ((changed.error) && div0_style_value !== (div0_style_value = !ctx.error ? "display: none;" : "")) { + div0.style.cssText = div0_style_value; + } + }, + + d: function destroy(detaching) { + if (detaching) { + internal_8(h3); + internal_8(t1); + internal_8(div1); + } + + dispose(); + } + }; + } + + function create_fragment(ctx) { + var t, button, dispose; + + function select_block_type(ctx) { + if (ctx.state === ctx.states.username) return create_if_block; + return create_else_block; + } + + var current_block_type = select_block_type(ctx); + var if_block = current_block_type(ctx); + + return { + c: function create() { + if_block.c(); + t = internal_17(); + button = internal_13("button"); + button.textContent = "Next"; + button.className = "btn svelte-m6rjik"; + internal_87(button, file, 76, 0, 1748); + dispose = internal_19(button, "click", ctx.buttonClick); + }, + + l: function claim(nodes) { + throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); + }, + + m: function mount(target, anchor) { + if_block.m(target, anchor); + internal_7(target, t, anchor); + internal_7(target, button, anchor); + }, + + p: function update(changed, ctx) { + if (current_block_type === (current_block_type = select_block_type(ctx)) && if_block) { + if_block.p(changed, ctx); + } else { + if_block.d(1); + if_block = current_block_type(ctx); + if (if_block) { + if_block.c(); + if_block.m(t.parentNode, t); + } + } + }, + + i: internal_83, + o: internal_83, + + d: function destroy(detaching) { + if_block.d(detaching); + + if (detaching) { + internal_8(t); + internal_8(button); + } + + dispose(); + } + }; + } + + function instance($$self, $$props, $$invalidate) { + let error; + let password = ""; + let username = Api.getUsername(); + + const states = { + username: 1, + password: 2 + }; + + let state = states.username; + + let { setLoading, next } = $$props; + + async function buttonClick() { + setLoading(true); + if (state === states.username) { + let res = await Api.setUsername(username); + if (res.error) { + $$invalidate('error', error = res.error); + } else { + $$invalidate('state', state = states.password); + $$invalidate('error', error = undefined); + } + } else if (state === states.password) { + let res = await Api.setPassword(password); + if (res.error) { + $$invalidate('error', error = res.error); + } else { + $$invalidate('error', error = undefined); + next(); + } + } + + setLoading(false); + } + + function input_input_handler() { + username = this.value; + $$invalidate('username', username); + } + + function input_input_handler_1() { + password = this.value; + $$invalidate('password', password); + } + + $$self.$set = $$props => { + if ('setLoading' in $$props) $$invalidate('setLoading', setLoading = $$props.setLoading); + if ('next' in $$props) $$invalidate('next', next = $$props.next); + }; + + return { + error, + password, + username, + states, + state, + setLoading, + next, + buttonClick, + input_input_handler, + input_input_handler_1 + }; + } + + class Credentials extends internal_104 { + constructor(options) { + super(options); + internal_102(this, options, instance, create_fragment, internal_92, ["setLoading", "next"]); + + const { ctx } = this.$$; + const props = options.props || {}; + if (ctx.setLoading === undefined && !('setLoading' in props)) { + console.warn(" was created without expected prop 'setLoading'"); + } + if (ctx.next === undefined && !('next' in props)) { + console.warn(" was created without expected prop 'next'"); + } + } + + get setLoading() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set setLoading(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get next() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set next(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + } + + var svelte = createCommonjsModule(function (module, exports) { + + Object.defineProperty(exports, '__esModule', { value: true }); + + + + + + exports.onMount = internal.onMount; + exports.onDestroy = internal.onDestroy; + exports.beforeUpdate = internal.beforeUpdate; + exports.afterUpdate = internal.afterUpdate; + exports.setContext = internal.setContext; + exports.getContext = internal.getContext; + exports.tick = internal.tick; + exports.createEventDispatcher = internal.createEventDispatcher; + }); + + unwrapExports(svelte); + var svelte_1 = svelte.onMount; + var svelte_2 = svelte.onDestroy; + var svelte_3 = svelte.beforeUpdate; + var svelte_4 = svelte.afterUpdate; + var svelte_5 = svelte.setContext; + var svelte_6 = svelte.getContext; + var svelte_7 = svelte.tick; + var svelte_8 = svelte.createEventDispatcher; + + /* src/Login/Redirect.svelte generated by Svelte v3.2.1 */ + + const file$1 = "src/Login/Redirect.svelte"; + + function create_fragment$1(ctx) { + var div, svg, circle, path, t0, h3, t1; + + return { + c: function create() { + div = internal_13("div"); + svg = internal_15("svg"); + circle = internal_15("circle"); + path = internal_15("path"); + t0 = internal_17(); + h3 = internal_13("h3"); + t1 = internal_16(ctx.text); + internal_22(circle, "class", "checkmark__circle svelte-zjta2c"); + internal_22(circle, "cx", "26"); + internal_22(circle, "cy", "26"); + internal_22(circle, "r", "25"); + internal_22(circle, "fill", "none"); + internal_87(circle, file$1, 33, 6, 634); + internal_22(path, "class", "checkmark__check svelte-zjta2c"); + internal_22(path, "fill", "none"); + internal_22(path, "d", "M14.1 27.2l7.1 7.2 16.7-16.8"); + internal_87(path, file$1, 34, 6, 712); + internal_22(svg, "class", "checkmark svelte-zjta2c"); + internal_22(svg, "xmlns", "http://www.w3.org/2000/svg"); + internal_22(svg, "viewBox", "0 0 52 52"); + internal_87(svg, file$1, 32, 3, 549); + div.className = "scale svelte-zjta2c"; + internal_87(div, file$1, 31, 0, 526); + internal_87(h3, file$1, 38, 0, 851); + }, + + l: function claim(nodes) { + throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); + }, + + m: function mount(target, anchor) { + internal_7(target, div, anchor); + internal_6(div, svg); + internal_6(svg, circle); + internal_6(svg, path); + internal_7(target, t0, anchor); + internal_7(target, h3, anchor); + internal_6(h3, t1); + }, + + p: function update(changed, ctx) { + if (changed.text) { + internal_32(t1, ctx.text); + } + }, + + i: internal_83, + o: internal_83, + + d: function destroy(detaching) { + if (detaching) { + internal_8(div); + internal_8(t0); + internal_8(h3); + } + } + }; + } + + const basetext = "Logged in. Redirecting"; + + function instance$1($$self, $$props, $$invalidate) { + + let dots = 0; + + let iv; + svelte_1(() => { + console.log("Mounted"); + $$invalidate('iv', iv = setInterval(() => { + dots++; $$invalidate('dots', dots); + if (dots > 3) + $$invalidate('dots', dots = 0); + }, 500)); + }); + + svelte_2(() => { + console.log("on Destroy"); + clearInterval(iv); + }); + + let text; + + $$self.$$.update = ($$dirty = { dots: 1 }) => { + if ($$dirty.dots) { $$invalidate('text', text = basetext + ".".repeat(dots)); } + }; + + return { text }; + } + + class Redirect extends internal_104 { + constructor(options) { + super(options); + internal_102(this, options, instance$1, create_fragment$1, internal_92, []); + } + } + + /* src/Login/icons/Icon.svelte generated by Svelte v3.2.1 */ + + const file$2 = "src/Login/icons/Icon.svelte"; + + // (13:0) {:else} + function create_else_block$1(ctx) { + var t; + + return { + c: function create() { + t = internal_16("ERR"); + }, + + m: function mount(target, anchor) { + internal_7(target, t, anchor); + }, + + d: function destroy(detaching) { + if (detaching) { + internal_8(t); + } + } + }; + } + + // (11:34) + function create_if_block_3(ctx) { + var svg, path0, rect, path1, ellipse; + + return { + c: function create() { + svg = internal_15("svg"); + path0 = internal_15("path"); + rect = internal_15("rect"); + path1 = internal_15("path"); + ellipse = internal_15("ellipse"); + internal_22(path0, "d", "M18.617,1.72c0,-0.949 -0.771,-1.72 -1.721,-1.72l-9.792,0c-0.95,0 -1.721,0.771 -1.721,1.72l0,20.56c0,0.949 0.771,1.72 1.721,1.72l9.792,0c0.95,0 1.721,-0.771 1.721,-1.72l0,-20.56Z"); + internal_34(path0, "fill", "#4d4d4d"); + internal_87(path0, file$2, 11, 294, 5677); + internal_22(rect, "x", "6"); + internal_22(rect, "y", "3"); + internal_22(rect, "width", "12"); + internal_22(rect, "height", "18"); + internal_34(rect, "fill", "#b3b3b3"); + internal_87(rect, file$2, 11, 505, 5888); + internal_22(path1, "d", "M14,1.5c0,-0.129 -0.105,-0.233 -0.233,-0.233l-3.534,0c-0.128,0 -0.233,0.104 -0.233,0.233c0,0.129 0.105,0.233 0.233,0.233l3.534,0c0.128,0 0.233,-0.104 0.233,-0.233Z"); + internal_34(path1, "fill", "#b3b3b3"); + internal_87(path1, file$2, 11, 569, 5952); + internal_22(ellipse, "cx", "12"); + internal_22(ellipse, "cy", "22.5"); + internal_22(ellipse, "rx", "0.983"); + internal_22(ellipse, "ry", "1"); + internal_34(ellipse, "fill", "#b3b3b3"); + internal_87(ellipse, file$2, 11, 766, 6149); + internal_22(svg, "width", "100%"); + internal_22(svg, "height", "100%"); + internal_22(svg, "viewBox", "0 0 24 24"); + internal_22(svg, "version", "1.1"); + internal_22(svg, "xmlns", "http://www.w3.org/2000/svg"); + internal_22(svg, "xmlns:xlink", "http://www.w3.org/1999/xlink"); + internal_22(svg, "xml:space", "preserve"); + internal_22(svg, "xmlns:serif", "http://www.serif.com/"); + internal_34(svg, "fill-rule", "evenodd"); + internal_34(svg, "clip-rule", "evenodd"); + internal_34(svg, "stroke-linejoin", "round"); + internal_34(svg, "stroke-miterlimit", "1.41421"); + internal_87(svg, file$2, 11, 0, 5383); + }, + + m: function mount(target, anchor) { + internal_7(target, svg, anchor); + internal_6(svg, path0); + internal_6(svg, rect); + internal_6(svg, path1); + internal_6(svg, ellipse); + }, + + d: function destroy(detaching) { + if (detaching) { + internal_8(svg); + } + } + }; + } + + // (9:37) + function create_if_block_2(ctx) { + var svg, path0, circle, path1; + + return { + c: function create() { + svg = internal_15("svg"); + path0 = internal_15("path"); + circle = internal_15("circle"); + path1 = internal_15("path"); + internal_22(path0, "d", "M20.562,9.105c0,-0.853 -0.692,-1.544 -1.544,-1.544l-14.036,0c-0.852,0 -1.544,0.691 -1.544,1.544l0,12.351c0,0.852 0.692,1.544 1.544,1.544l14.036,0c0.852,0 1.544,-0.692 1.544,-1.544l0,-12.351Z"); + internal_34(path0, "fill", "none"); + internal_34(path0, "stroke", "#000"); + internal_34(path0, "stroke-width", "1.5px"); + internal_87(path0, file$2, 9, 311, 4883); + internal_22(circle, "cx", "12"); + internal_22(circle, "cy", "15.3"); + internal_22(circle, "r", "1.5"); + internal_87(circle, file$2, 9, 563, 5135); + internal_22(path1, "d", "M16.646,4.28c0,-1.81 -1.47,-3.28 -3.28,-3.28l-2.732,0c-1.81,0 -3.28,1.47 -3.28,3.28l0,3.281l9.292,0l0,-3.281Z"); + internal_34(path1, "fill", "none"); + internal_34(path1, "stroke", "#000"); + internal_34(path1, "stroke-width", "1.5px"); + internal_87(path1, file$2, 9, 598, 5170); + internal_22(svg, "width", "100%"); + internal_22(svg, "height", "100%"); + internal_22(svg, "viewBox", "0 0 24 24"); + internal_22(svg, "version", "1.1"); + internal_22(svg, "xmlns", "http://www.w3.org/2000/svg"); + internal_22(svg, "xmlns:xlink", "http://www.w3.org/1999/xlink"); + internal_22(svg, "xml:space", "preserve"); + internal_22(svg, "xmlns:serif", "http://www.serif.com/"); + internal_34(svg, "fill-rule", "evenodd"); + internal_34(svg, "clip-rule", "evenodd"); + internal_34(svg, "stroke-linecap", "round"); + internal_34(svg, "stroke-linejoin", "round"); + internal_34(svg, "stroke-miterlimit", "1.5"); + internal_87(svg, file$2, 9, 0, 4572); + }, + + m: function mount(target, anchor) { + internal_7(target, svg, anchor); + internal_6(svg, path0); + internal_6(svg, circle); + internal_6(svg, path1); + }, + + d: function destroy(detaching) { + if (detaching) { + internal_8(svg); + } + } + }; + } + + // (7:40) + function create_if_block_1(ctx) { + var svg, g, path0, circle0, path1, circle1, circle2, circle3, path2, path3, path4, circle4, circle5, path5, path6, path7, path8, path9, path10, circle6, defs, linearGradient, stop0, stop1; + + return { + c: function create() { + svg = internal_15("svg"); + g = internal_15("g"); + path0 = internal_15("path"); + circle0 = internal_15("circle"); + path1 = internal_15("path"); + circle1 = internal_15("circle"); + circle2 = internal_15("circle"); + circle3 = internal_15("circle"); + path2 = internal_15("path"); + path3 = internal_15("path"); + path4 = internal_15("path"); + circle4 = internal_15("circle"); + circle5 = internal_15("circle"); + path5 = internal_15("path"); + path6 = internal_15("path"); + path7 = internal_15("path"); + path8 = internal_15("path"); + path9 = internal_15("path"); + path10 = internal_15("path"); + circle6 = internal_15("circle"); + defs = internal_15("defs"); + linearGradient = internal_15("linearGradient"); + stop0 = internal_15("stop"); + stop1 = internal_15("stop"); + internal_22(path0, "d", "M18.5,12c0,3.59 -2.91,6.5 -6.5,6.5c-3.59,0 -6.5,-2.91 -6.5,-6.5c0,-3.59 2.91,-6.5 6.5,-6.5c1.729,0 3.295,0.679 4.46,1.78l4.169,-3.599c-2.184,-2.265 -5.242,-3.681 -8.629,-3.681c-6.617,0 -12,5.383 -12,12c0,6.617 5.383,12 12,12c6.617,0 12,-5.383 12,-12l-5.5,0Z"); + internal_34(path0, "fill", "#999"); + internal_34(path0, "fill-rule", "nonzero"); + internal_87(path0, file$2, 7, 297, 1300); + internal_22(circle0, "id", "XMLID_1331_"); + internal_22(circle0, "cx", "12"); + internal_22(circle0, "cy", "12"); + internal_22(circle0, "r", "12"); + internal_34(circle0, "fill", "#808080"); + internal_87(circle0, file$2, 7, 603, 1606); + internal_22(path1, "d", "M19,12c0,3.866 -3.134,7 -7,7c-3.866,0 -7,-3.134 -7,-7c0,-3.866 3.134,-7 7,-7c1.88,0 3.583,0.745 4.841,1.951l3.788,-3.27c-2.184,-2.265 -5.242,-3.681 -8.629,-3.681c-6.617,0 -12,5.383 -12,12c0,6.617 5.383,12 12,12c6.617,0 12,-5.383 12,-12l-5,0Z"); + internal_34(path1, "fill", "#999"); + internal_34(path1, "fill-rule", "nonzero"); + internal_87(path1, file$2, 7, 674, 1677); + internal_22(circle1, "cx", "12"); + internal_22(circle1, "cy", "2.5"); + internal_22(circle1, "r", "1"); + internal_34(circle1, "fill", "#b3b3b3"); + internal_87(circle1, file$2, 7, 964, 1967); + internal_22(circle2, "cx", "12"); + internal_22(circle2, "cy", "21.5"); + internal_22(circle2, "r", "1"); + internal_34(circle2, "fill", "#b3b3b3"); + internal_87(circle2, file$2, 7, 1018, 2021); + internal_22(circle3, "cx", "2.5"); + internal_22(circle3, "cy", "12"); + internal_22(circle3, "r", "1"); + internal_34(circle3, "fill", "#b3b3b3"); + internal_87(circle3, file$2, 7, 1073, 2076); + internal_22(path2, "d", "M4.575,18.01c0.391,-0.39 1.024,-0.39 1.415,0c0.39,0.391 0.39,1.024 0,1.415c-0.391,0.39 -1.024,0.39 -1.415,0c-0.39,-0.391 -0.39,-1.024 0,-1.415Z"); + internal_34(path2, "fill", "#b3b3b3"); + internal_87(path2, file$2, 7, 1127, 2130); + internal_22(path3, "d", "M18.01,18.01c0.391,-0.39 1.024,-0.39 1.415,0c0.39,0.391 0.39,1.024 0,1.415c-0.391,0.39 -1.024,0.39 -1.415,0c-0.39,-0.391 -0.39,-1.024 0,-1.415Z"); + internal_34(path3, "fill", "#b3b3b3"); + internal_87(path3, file$2, 7, 1304, 2307); + internal_22(path4, "d", "M4.575,4.575c0.391,-0.39 1.024,-0.39 1.415,0c0.39,0.391 0.39,1.024 0,1.415c-0.391,0.39 -1.024,0.39 -1.415,0c-0.39,-0.391 -0.39,-1.024 0,-1.415Z"); + internal_34(path4, "fill", "#b3b3b3"); + internal_87(path4, file$2, 7, 1481, 2484); + internal_22(circle4, "id", "XMLID_1329_"); + internal_22(circle4, "cx", "12"); + internal_22(circle4, "cy", "12"); + internal_22(circle4, "r", "6"); + internal_34(circle4, "fill", "#808080"); + internal_87(circle4, file$2, 7, 1658, 2661); + internal_22(circle5, "id", "XMLID_1330_"); + internal_22(circle5, "cx", "12"); + internal_22(circle5, "cy", "12"); + internal_22(circle5, "r", "7"); + internal_34(circle5, "fill", "#808080"); + internal_87(circle5, file$2, 7, 1728, 2731); + internal_22(path5, "d", "M19,12.25c0,-0.042 -0.006,-0.083 -0.006,-0.125c-0.068,3.808 -3.17,6.875 -6.994,6.875c-3.824,0 -6.933,-3.067 -7,-6.875c-0.001,0.042 0,0.083 0,0.125c0,3.866 3.134,7 7,7c3.866,0 7,-3.134 7,-7Z"); + internal_34(path5, "fill", "#fff"); + internal_34(path5, "fill-opacity", "0.2"); + internal_34(path5, "fill-rule", "nonzero"); + internal_87(path5, file$2, 7, 1798, 2801); + internal_22(path6, "d", "M18.92,13l-3.061,0c0.083,-0.321 0.141,-0.653 0.141,-1c0,-2.209 -1.791,-4 -4,-4c-2.209,0 -4,1.791 -4,4c0,1.105 0.448,2.105 1.172,2.828c1.014,1.015 4.057,4.058 4.057,4.058c2.955,-0.525 5.263,-2.899 5.691,-5.886Z"); + internal_34(path6, "fill", "#4d4d4d"); + internal_34(path6, "fill-rule", "nonzero"); + internal_87(path6, file$2, 7, 2053, 3056); + internal_22(path7, "d", "M22,13l-10,0c-0.553,0 -1,-0.448 -1,-1c0,-0.552 0.447,-1 1,-1l10,0c0.553,0 1,0.448 1,1c0,0.552 -0.447,1 -1,1Z"); + internal_34(path7, "fill", "#b3b3b3"); + internal_34(path7, "fill-rule", "nonzero"); + internal_87(path7, file$2, 7, 2314, 3317); + internal_22(path8, "d", "M11.948,11.25l10.104,0c0.409,0 0.776,0.247 0.935,0.592c-0.08,-0.471 -0.492,-0.842 -0.987,-0.842l-10,0c-0.495,0 -0.9,0.33 -0.98,0.801c0.159,-0.345 0.519,-0.551 0.928,-0.551Z"); + internal_34(path8, "fill", "#fff"); + internal_34(path8, "fill-opacity", "0.2"); + internal_34(path8, "fill-rule", "nonzero"); + internal_87(path8, file$2, 7, 2474, 3477); + internal_22(path9, "d", "M23,12c0,0.552 -0.447,1 -1,1l-3.08,0c-0.428,2.988 -2.737,5.362 -5.693,5.886l3.935,3.946c4.04,-1.931 6.838,-6.056 6.838,-10.832l-1,0Z"); + internal_34(path9, "fill", "#666"); + internal_34(path9, "fill-opacity", "0.5"); + internal_34(path9, "fill-rule", "nonzero"); + internal_87(path9, file$2, 7, 2712, 3715); + internal_22(path10, "d", "M12,5c-3.866,0 -7,3.134 -7,7c0,0.042 -0.001,0.069 0,0.111c0.067,-3.808 3.176,-6.861 7,-6.861c2.828,0 4.841,1.701 4.841,1.701c-1.257,-1.198 -2.968,-1.951 -4.841,-1.951Z"); + internal_34(path10, "fill-opacity", "0.1"); + internal_34(path10, "fill-rule", "nonzero"); + internal_87(path10, file$2, 7, 2910, 3913); + internal_22(circle6, "id", "XMLID_4_"); + internal_22(circle6, "cx", "12"); + internal_22(circle6, "cy", "12"); + internal_22(circle6, "r", "12"); + internal_34(circle6, "fill", "url(#_Linear1)"); + internal_87(circle6, file$2, 7, 3133, 4136); + internal_87(g, file$2, 7, 294, 1297); + internal_22(stop0, "offset", "0"); + internal_34(stop0, "stop-color", "#fff"); + internal_34(stop0, "stop-opacity", "0.2"); + internal_87(stop0, file$2, 7, 3384, 4387); + internal_22(stop1, "offset", "1"); + internal_34(stop1, "stop-color", "#fff"); + internal_34(stop1, "stop-opacity", "0"); + internal_87(stop1, file$2, 7, 3443, 4446); + internal_22(linearGradient, "id", "_Linear1"); + internal_22(linearGradient, "x1", "0"); + internal_22(linearGradient, "y1", "0"); + internal_22(linearGradient, "x2", "1"); + internal_22(linearGradient, "y2", "0"); + internal_22(linearGradient, "gradientUnits", "userSpaceOnUse"); + internal_22(linearGradient, "gradientTransform", "matrix(21.7566,10.1453,-10.1453,21.7566,1.12171,6.92737)"); + internal_87(linearGradient, file$2, 7, 3218, 4221); + internal_87(defs, file$2, 7, 3212, 4215); + internal_22(svg, "width", "100%"); + internal_22(svg, "height", "100%"); + internal_22(svg, "viewBox", "0 0 24 24"); + internal_22(svg, "version", "1.1"); + internal_22(svg, "xmlns", "http://www.w3.org/2000/svg"); + internal_22(svg, "xmlns:xlink", "http://www.w3.org/1999/xlink"); + internal_22(svg, "xml:space", "preserve"); + internal_22(svg, "xmlns:serif", "http://www.serif.com/"); + internal_34(svg, "fill-rule", "evenodd"); + internal_34(svg, "clip-rule", "evenodd"); + internal_34(svg, "stroke-linejoin", "round"); + internal_34(svg, "stroke-miterlimit", "1.41421"); + internal_87(svg, file$2, 7, 0, 1003); + }, + + m: function mount(target, anchor) { + internal_7(target, svg, anchor); + internal_6(svg, g); + internal_6(g, path0); + internal_6(g, circle0); + internal_6(g, path1); + internal_6(g, circle1); + internal_6(g, circle2); + internal_6(g, circle3); + internal_6(g, path2); + internal_6(g, path3); + internal_6(g, path4); + internal_6(g, circle4); + internal_6(g, circle5); + internal_6(g, path5); + internal_6(g, path6); + internal_6(g, path7); + internal_6(g, path8); + internal_6(g, path9); + internal_6(g, path10); + internal_6(g, circle6); + internal_6(svg, defs); + internal_6(defs, linearGradient); + internal_6(linearGradient, stop0); + internal_6(linearGradient, stop1); + }, + + d: function destroy(detaching) { + if (detaching) { + internal_8(svg); + } + } + }; + } + + // (5:0) {#if icon_name === "SecurityKey"} + function create_if_block$1(ctx) { + var svg, path, rect0, rect1, rect2, rect3, rect4; + + return { + c: function create() { + svg = internal_15("svg"); + path = internal_15("path"); + rect0 = internal_15("rect"); + rect1 = internal_15("rect"); + rect2 = internal_15("rect"); + rect3 = internal_15("rect"); + rect4 = internal_15("rect"); + internal_22(path, "d", "M18,7.692c0,-0.925 -0.751,-1.675 -1.675,-1.675l-14.65,0c-0.924,0 -1.675,0.75 -1.675,1.675l0,8.616c0,0.925 0.751,1.675 1.675,1.675l14.65,0c0.924,0 1.675,-0.75 1.675,-1.675l0,-8.616Z"); + internal_34(path, "fill", "#4d4d4d"); + internal_87(path, file$2, 5, 294, 373); + internal_22(rect0, "x", "18"); + internal_22(rect0, "y", "8.011"); + internal_22(rect0, "width", "6"); + internal_22(rect0, "height", "7.978"); + internal_34(rect0, "fill", "#4d4d4d"); + internal_87(rect0, file$2, 5, 508, 587); + internal_22(rect1, "x", "18"); + internal_22(rect1, "y", "10.644"); + internal_22(rect1, "width", "4.8"); + internal_22(rect1, "height", "1.231"); + internal_34(rect1, "fill", "#b3b3b3"); + internal_87(rect1, file$2, 5, 579, 658); + internal_22(rect2, "x", "18"); + internal_22(rect2, "y", "12.229"); + internal_22(rect2, "width", "4.8"); + internal_22(rect2, "height", "1.164"); + internal_34(rect2, "fill", "#b3b3b3"); + internal_87(rect2, file$2, 5, 653, 732); + internal_22(rect3, "x", "18"); + internal_22(rect3, "y", "9.008"); + internal_22(rect3, "width", "5.25"); + internal_22(rect3, "height", "1.231"); + internal_34(rect3, "fill", "#b3b3b3"); + internal_87(rect3, file$2, 5, 727, 806); + internal_22(rect4, "x", "18"); + internal_22(rect4, "y", "13.794"); + internal_22(rect4, "width", "5.25"); + internal_22(rect4, "height", "1.197"); + internal_34(rect4, "fill", "#b3b3b3"); + internal_87(rect4, file$2, 5, 801, 880); + internal_22(svg, "width", "100%"); + internal_22(svg, "height", "100%"); + internal_22(svg, "viewBox", "0 0 24 24"); + internal_22(svg, "version", "1.1"); + internal_22(svg, "xmlns", "http://www.w3.org/2000/svg"); + internal_22(svg, "xmlns:xlink", "http://www.w3.org/1999/xlink"); + internal_22(svg, "xml:space", "preserve"); + internal_22(svg, "xmlns:serif", "http://www.serif.com/"); + internal_34(svg, "fill-rule", "evenodd"); + internal_34(svg, "clip-rule", "evenodd"); + internal_34(svg, "stroke-linejoin", "round"); + internal_34(svg, "stroke-miterlimit", "1.41421"); + internal_87(svg, file$2, 5, 0, 79); + }, + + m: function mount(target, anchor) { + internal_7(target, svg, anchor); + internal_6(svg, path); + internal_6(svg, rect0); + internal_6(svg, rect1); + internal_6(svg, rect2); + internal_6(svg, rect3); + internal_6(svg, rect4); + }, + + d: function destroy(detaching) { + if (detaching) { + internal_8(svg); + } + } + }; + } + + function create_fragment$2(ctx) { + var if_block_anchor; + + function select_block_type(ctx) { + if (ctx.icon_name === "SecurityKey") return create_if_block$1; + if (ctx.icon_name === "Authenticator") return create_if_block_1; + if (ctx.icon_name === "BackupCode") return create_if_block_2; + if (ctx.icon_name === "AppPush") return create_if_block_3; + return create_else_block$1; + } + + var current_block_type = select_block_type(ctx); + var if_block = current_block_type(ctx); + + return { + c: function create() { + if_block.c(); + if_block_anchor = internal_18(); + }, + + l: function claim(nodes) { + throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); + }, + + m: function mount(target, anchor) { + if_block.m(target, anchor); + internal_7(target, if_block_anchor, anchor); + }, + + p: function update(changed, ctx) { + if (current_block_type !== (current_block_type = select_block_type(ctx))) { + if_block.d(1); + if_block = current_block_type(ctx); + if (if_block) { + if_block.c(); + if_block.m(if_block_anchor.parentNode, if_block_anchor); + } + } + }, + + i: internal_83, + o: internal_83, + + d: function destroy(detaching) { + if_block.d(detaching); + + if (detaching) { + internal_8(if_block_anchor); + } + } + }; + } + + function instance$2($$self, $$props, $$invalidate) { + let { icon_name } = $$props; + + $$self.$set = $$props => { + if ('icon_name' in $$props) $$invalidate('icon_name', icon_name = $$props.icon_name); + }; + + return { icon_name }; + } + + class Icon extends internal_104 { + constructor(options) { + super(options); + internal_102(this, options, instance$2, create_fragment$2, internal_92, ["icon_name"]); + + const { ctx } = this.$$; + const props = options.props || {}; + if (ctx.icon_name === undefined && !('icon_name' in props)) { + console.warn(" was created without expected prop 'icon_name'"); + } + } + + get icon_name() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set icon_name(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + } + + /* src/Login/twofactors/toList.svelte generated by Svelte v3.2.1 */ + + const file$3 = "src/Login/twofactors/toList.svelte"; + + function create_fragment$3(ctx) { + var p, a, dispose; + + return { + c: function create() { + p = internal_13("p"); + a = internal_13("a"); + a.textContent = "Choose another Method"; + a.href = "# "; + a.className = "svelte-ieslp9"; + internal_87(a, file$3, 11, 3, 147); + internal_87(p, file$3, 10, 0, 140); + dispose = internal_19(a, "click", ctx.click_handler); + }, + + l: function claim(nodes) { + throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); + }, + + m: function mount(target, anchor) { + internal_7(target, p, anchor); + internal_6(p, a); + }, + + p: internal_83, + i: internal_83, + o: internal_83, + + d: function destroy(detaching) { + if (detaching) { + internal_8(p); + } + + dispose(); + } + }; + } + + function instance$3($$self, $$props, $$invalidate) { + let { finish = () => {} } = $$props; + + function click_handler(evt) { + return evt.preventDefault() || finish(false); + } + + $$self.$set = $$props => { + if ('finish' in $$props) $$invalidate('finish', finish = $$props.finish); + }; + + return { finish, click_handler }; + } + + class ToList extends internal_104 { + constructor(options) { + super(options); + internal_102(this, options, instance$3, create_fragment$3, internal_92, ["finish"]); + } + + get finish() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set finish(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + } + + var cleave = createCommonjsModule(function (module, exports) { + (function webpackUniversalModuleDefinition(root, factory) { + module.exports = factory(); + })(commonjsGlobal, function () { + return /******/ (function (modules) { // webpackBootstrap + /******/ // The module cache + /******/ var installedModules = {}; + + /******/ // The require function + /******/ function __webpack_require__(moduleId) { + + /******/ // Check if module is in cache + /******/ if (installedModules[moduleId]) + /******/ return installedModules[moduleId].exports; + + /******/ // Create a new module (and put it into the cache) + /******/ var module = installedModules[moduleId] = { + /******/ exports: {}, + /******/ id: moduleId, + /******/ loaded: false + /******/ + }; + + /******/ // Execute the module function + /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); + + /******/ // Flag the module as loaded + /******/ module.loaded = true; + + /******/ // Return the exports of the module + /******/ return module.exports; + /******/ + } + + + /******/ // expose the modules object (__webpack_modules__) + /******/ __webpack_require__.m = modules; + + /******/ // expose the module cache + /******/ __webpack_require__.c = installedModules; + + /******/ // __webpack_public_path__ + /******/ __webpack_require__.p = ""; + + /******/ // Load entry module and return exports + /******/ return __webpack_require__(0); + /******/ + }) + /************************************************************************/ + /******/([ + /* 0 */ + /***/ (function (module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function (global) { + + /** + * Construct a new Cleave instance by passing the configuration object + * + * @param {String | HTMLElement} element + * @param {Object} opts + */ + var Cleave = function (element, opts) { + var owner = this; + var hasMultipleElements = false; + + if (typeof element === 'string') { + owner.element = document.querySelector(element); + hasMultipleElements = document.querySelectorAll(element).length > 1; + } else { + if (typeof element.length !== 'undefined' && element.length > 0) { + owner.element = element[0]; + hasMultipleElements = element.length > 1; + } else { + owner.element = element; + } + } + + if (!owner.element) { + throw new Error('[cleave.js] Please check the element'); + } + + if (hasMultipleElements) { + try { + // eslint-disable-next-line + console.warn('[cleave.js] Multiple input fields matched, cleave.js will only take the first one.'); + } catch (e) { + // Old IE + } + } + + opts.initValue = owner.element.value; + + owner.properties = Cleave.DefaultProperties.assign({}, opts); + + owner.init(); + }; + + Cleave.prototype = { + init: function () { + var owner = this, pps = owner.properties; + + // no need to use this lib + if (!pps.numeral && !pps.phone && !pps.creditCard && !pps.time && !pps.date && (pps.blocksLength === 0 && !pps.prefix)) { + owner.onInput(pps.initValue); + + return; + } + + pps.maxLength = Cleave.Util.getMaxLength(pps.blocks); + + owner.isAndroid = Cleave.Util.isAndroid(); + owner.lastInputValue = ''; + + owner.onChangeListener = owner.onChange.bind(owner); + owner.onKeyDownListener = owner.onKeyDown.bind(owner); + owner.onFocusListener = owner.onFocus.bind(owner); + owner.onCutListener = owner.onCut.bind(owner); + owner.onCopyListener = owner.onCopy.bind(owner); + + owner.element.addEventListener('input', owner.onChangeListener); + owner.element.addEventListener('keydown', owner.onKeyDownListener); + owner.element.addEventListener('focus', owner.onFocusListener); + owner.element.addEventListener('cut', owner.onCutListener); + owner.element.addEventListener('copy', owner.onCopyListener); + + + owner.initPhoneFormatter(); + owner.initDateFormatter(); + owner.initTimeFormatter(); + owner.initNumeralFormatter(); + + // avoid touch input field if value is null + // otherwise Firefox will add red box-shadow for + if (pps.initValue || (pps.prefix && !pps.noImmediatePrefix)) { + owner.onInput(pps.initValue); + } + }, + + initNumeralFormatter: function () { + var owner = this, pps = owner.properties; + + if (!pps.numeral) { + return; + } + + pps.numeralFormatter = new Cleave.NumeralFormatter( + pps.numeralDecimalMark, + pps.numeralIntegerScale, + pps.numeralDecimalScale, + pps.numeralThousandsGroupStyle, + pps.numeralPositiveOnly, + pps.stripLeadingZeroes, + pps.delimiter + ); + }, + + initTimeFormatter: function () { + var owner = this, pps = owner.properties; + + if (!pps.time) { + return; + } + + pps.timeFormatter = new Cleave.TimeFormatter(pps.timePattern, pps.timeFormat); + pps.blocks = pps.timeFormatter.getBlocks(); + pps.blocksLength = pps.blocks.length; + pps.maxLength = Cleave.Util.getMaxLength(pps.blocks); + }, + + initDateFormatter: function () { + var owner = this, pps = owner.properties; + + if (!pps.date) { + return; + } + + pps.dateFormatter = new Cleave.DateFormatter(pps.datePattern); + pps.blocks = pps.dateFormatter.getBlocks(); + pps.blocksLength = pps.blocks.length; + pps.maxLength = Cleave.Util.getMaxLength(pps.blocks); + }, + + initPhoneFormatter: function () { + var owner = this, pps = owner.properties; + + if (!pps.phone) { + return; + } + + // Cleave.AsYouTypeFormatter should be provided by + // external google closure lib + try { + pps.phoneFormatter = new Cleave.PhoneFormatter( + new pps.root.Cleave.AsYouTypeFormatter(pps.phoneRegionCode), + pps.delimiter + ); + } catch (ex) { + throw new Error('[cleave.js] Please include phone-type-formatter.{country}.js lib'); + } + }, + + onKeyDown: function (event) { + var owner = this, pps = owner.properties, + charCode = event.which || event.keyCode, + Util = Cleave.Util, + currentValue = owner.element.value; + + // if we got any charCode === 8, this means, that this device correctly + // sends backspace keys in event, so we do not need to apply any hacks + owner.hasBackspaceSupport = owner.hasBackspaceSupport || charCode === 8; + if (!owner.hasBackspaceSupport + && Util.isAndroidBackspaceKeydown(owner.lastInputValue, currentValue) + ) { + charCode = 8; + } + + owner.lastInputValue = currentValue; + + // hit backspace when last character is delimiter + var postDelimiter = Util.getPostDelimiter(currentValue, pps.delimiter, pps.delimiters); + if (charCode === 8 && postDelimiter) { + pps.postDelimiterBackspace = postDelimiter; + } else { + pps.postDelimiterBackspace = false; + } + }, + + onChange: function () { + this.onInput(this.element.value); + }, + + onFocus: function () { + var owner = this, + pps = owner.properties; + + Cleave.Util.fixPrefixCursor(owner.element, pps.prefix, pps.delimiter, pps.delimiters); + }, + + onCut: function (e) { + this.copyClipboardData(e); + this.onInput(''); + }, + + onCopy: function (e) { + this.copyClipboardData(e); + }, + + copyClipboardData: function (e) { + var owner = this, + pps = owner.properties, + Util = Cleave.Util, + inputValue = owner.element.value, + textToCopy = ''; + + if (!pps.copyDelimiter) { + textToCopy = Util.stripDelimiters(inputValue, pps.delimiter, pps.delimiters); + } else { + textToCopy = inputValue; + } + + try { + if (e.clipboardData) { + e.clipboardData.setData('Text', textToCopy); + } else { + window.clipboardData.setData('Text', textToCopy); + } + + e.preventDefault(); + } catch (ex) { + // empty + } + }, + + onInput: function (value) { + var owner = this, pps = owner.properties, + Util = Cleave.Util; + + // case 1: delete one more character "4" + // 1234*| -> hit backspace -> 123| + // case 2: last character is not delimiter which is: + // 12|34* -> hit backspace -> 1|34* + // note: no need to apply this for numeral mode + var postDelimiterAfter = Util.getPostDelimiter(value, pps.delimiter, pps.delimiters); + if (!pps.numeral && pps.postDelimiterBackspace && !postDelimiterAfter) { + value = Util.headStr(value, value.length - pps.postDelimiterBackspace.length); + } + + // phone formatter + if (pps.phone) { + if (pps.prefix && (!pps.noImmediatePrefix || value.length)) { + pps.result = pps.prefix + pps.phoneFormatter.format(value).slice(pps.prefix.length); + } else { + pps.result = pps.phoneFormatter.format(value); + } + owner.updateValueState(); + + return; + } + + // numeral formatter + if (pps.numeral) { + if (pps.prefix && (!pps.noImmediatePrefix || value.length)) { + pps.result = pps.prefix + pps.numeralFormatter.format(value); + } else { + pps.result = pps.numeralFormatter.format(value); + } + owner.updateValueState(); + + return; + } + + // date + if (pps.date) { + value = pps.dateFormatter.getValidatedDate(value); + } + + // time + if (pps.time) { + value = pps.timeFormatter.getValidatedTime(value); + } + + // strip delimiters + value = Util.stripDelimiters(value, pps.delimiter, pps.delimiters); + + // strip prefix + // var strippedPreviousResult = Util.stripDelimiters(pps.result, pps.delimiter, pps.delimiters); + value = Util.getPrefixStrippedValue(value, pps.prefix, pps.prefixLength, pps.result, pps.delimiter, pps.delimiters); + + // strip non-numeric characters + value = pps.numericOnly ? Util.strip(value, /[^\d]/g) : value; + + // convert case + value = pps.uppercase ? value.toUpperCase() : value; + value = pps.lowercase ? value.toLowerCase() : value; + + // prefix + if (pps.prefix && (!pps.noImmediatePrefix || value.length)) { + value = pps.prefix + value; + + // no blocks specified, no need to do formatting + if (pps.blocksLength === 0) { + pps.result = value; + owner.updateValueState(); + + return; + } + } + + // update credit card props + if (pps.creditCard) { + owner.updateCreditCardPropsByValue(value); + } + + // strip over length characters + value = Util.headStr(value, pps.maxLength); + + // apply blocks + pps.result = Util.getFormattedValue( + value, + pps.blocks, pps.blocksLength, + pps.delimiter, pps.delimiters, pps.delimiterLazyShow + ); + + owner.updateValueState(); + }, + + updateCreditCardPropsByValue: function (value) { + var owner = this, pps = owner.properties, + Util = Cleave.Util, + creditCardInfo; + + // At least one of the first 4 characters has changed + if (Util.headStr(pps.result, 4) === Util.headStr(value, 4)) { + return; + } + + creditCardInfo = Cleave.CreditCardDetector.getInfo(value, pps.creditCardStrictMode); + + pps.blocks = creditCardInfo.blocks; + pps.blocksLength = pps.blocks.length; + pps.maxLength = Util.getMaxLength(pps.blocks); + + // credit card type changed + if (pps.creditCardType !== creditCardInfo.type) { + pps.creditCardType = creditCardInfo.type; + + pps.onCreditCardTypeChanged.call(owner, pps.creditCardType); + } + }, + + updateValueState: function () { + var owner = this, + Util = Cleave.Util, + pps = owner.properties; + + if (!owner.element) { + return; + } + + var endPos = owner.element.selectionEnd; + var oldValue = owner.element.value; + var newValue = pps.result; + + endPos = Util.getNextCursorPosition(endPos, oldValue, newValue, pps.delimiter, pps.delimiters); + + // fix Android browser type="text" input field + // cursor not jumping issue + if (owner.isAndroid) { + window.setTimeout(function () { + owner.element.value = newValue; + Util.setSelection(owner.element, endPos, pps.document, false); + owner.callOnValueChanged(); + }, 1); + + return; + } + + owner.element.value = newValue; + Util.setSelection(owner.element, endPos, pps.document, false); + owner.callOnValueChanged(); + }, + + callOnValueChanged: function () { + var owner = this, + pps = owner.properties; + + pps.onValueChanged.call(owner, { + target: { + value: pps.result, + rawValue: owner.getRawValue() + } + }); + }, + + setPhoneRegionCode: function (phoneRegionCode) { + var owner = this, pps = owner.properties; + + pps.phoneRegionCode = phoneRegionCode; + owner.initPhoneFormatter(); + owner.onChange(); + }, + + setRawValue: function (value) { + var owner = this, pps = owner.properties; + + value = value !== undefined && value !== null ? value.toString() : ''; + + if (pps.numeral) { + value = value.replace('.', pps.numeralDecimalMark); + } + + pps.postDelimiterBackspace = false; + + owner.element.value = value; + owner.onInput(value); + }, + + getRawValue: function () { + var owner = this, + pps = owner.properties, + Util = Cleave.Util, + rawValue = owner.element.value; + + if (pps.rawValueTrimPrefix) { + rawValue = Util.getPrefixStrippedValue(rawValue, pps.prefix, pps.prefixLength, pps.result, pps.delimiter, pps.delimiters); + } + + if (pps.numeral) { + rawValue = pps.numeralFormatter.getRawValue(rawValue); + } else { + rawValue = Util.stripDelimiters(rawValue, pps.delimiter, pps.delimiters); + } + + return rawValue; + }, + + getISOFormatDate: function () { + var owner = this, + pps = owner.properties; + + return pps.date ? pps.dateFormatter.getISOFormatDate() : ''; + }, + + getISOFormatTime: function () { + var owner = this, + pps = owner.properties; + + return pps.time ? pps.timeFormatter.getISOFormatTime() : ''; + }, + + getFormattedValue: function () { + return this.element.value; + }, + + destroy: function () { + var owner = this; + + owner.element.removeEventListener('input', owner.onChangeListener); + owner.element.removeEventListener('keydown', owner.onKeyDownListener); + owner.element.removeEventListener('focus', owner.onFocusListener); + owner.element.removeEventListener('cut', owner.onCutListener); + owner.element.removeEventListener('copy', owner.onCopyListener); + }, + + toString: function () { + return '[Cleave Object]'; + } + }; + + Cleave.NumeralFormatter = __webpack_require__(1); + Cleave.DateFormatter = __webpack_require__(2); + Cleave.TimeFormatter = __webpack_require__(3); + Cleave.PhoneFormatter = __webpack_require__(4); + Cleave.CreditCardDetector = __webpack_require__(5); + Cleave.Util = __webpack_require__(6); + Cleave.DefaultProperties = __webpack_require__(7); + + // for angular directive + ((typeof global === 'object' && global) ? global : window)['Cleave'] = Cleave; + + // CommonJS + module.exports = Cleave; + + /* WEBPACK VAR INJECTION */ + }.call(exports, (function () { return this; }()))); + + /***/ + }), + /* 1 */ + /***/ (function (module, exports) { + + var NumeralFormatter = function (numeralDecimalMark, + numeralIntegerScale, + numeralDecimalScale, + numeralThousandsGroupStyle, + numeralPositiveOnly, + stripLeadingZeroes, + delimiter) { + var owner = this; + + owner.numeralDecimalMark = numeralDecimalMark || '.'; + owner.numeralIntegerScale = numeralIntegerScale > 0 ? numeralIntegerScale : 0; + owner.numeralDecimalScale = numeralDecimalScale >= 0 ? numeralDecimalScale : 2; + owner.numeralThousandsGroupStyle = numeralThousandsGroupStyle || NumeralFormatter.groupStyle.thousand; + owner.numeralPositiveOnly = !!numeralPositiveOnly; + owner.stripLeadingZeroes = stripLeadingZeroes !== false; + owner.delimiter = (delimiter || delimiter === '') ? delimiter : ','; + owner.delimiterRE = delimiter ? new RegExp('\\' + delimiter, 'g') : ''; + }; + + NumeralFormatter.groupStyle = { + thousand: 'thousand', + lakh: 'lakh', + wan: 'wan', + none: 'none' + }; + + NumeralFormatter.prototype = { + getRawValue: function (value) { + return value.replace(this.delimiterRE, '').replace(this.numeralDecimalMark, '.'); + }, + + format: function (value) { + var owner = this, parts, partInteger, partDecimal = ''; + + // strip alphabet letters + value = value.replace(/[A-Za-z]/g, '') + // replace the first decimal mark with reserved placeholder + .replace(owner.numeralDecimalMark, 'M') + + // strip non numeric letters except minus and "M" + // this is to ensure prefix has been stripped + .replace(/[^\dM-]/g, '') + + // replace the leading minus with reserved placeholder + .replace(/^\-/, 'N') + + // strip the other minus sign (if present) + .replace(/\-/g, '') + + // replace the minus sign (if present) + .replace('N', owner.numeralPositiveOnly ? '' : '-') + + // replace decimal mark + .replace('M', owner.numeralDecimalMark); + + // strip any leading zeros + if (owner.stripLeadingZeroes) { + value = value.replace(/^(-)?0+(?=\d)/, '$1'); + } + + partInteger = value; + + if (value.indexOf(owner.numeralDecimalMark) >= 0) { + parts = value.split(owner.numeralDecimalMark); + partInteger = parts[0]; + partDecimal = owner.numeralDecimalMark + parts[1].slice(0, owner.numeralDecimalScale); + } + + if (owner.numeralIntegerScale > 0) { + partInteger = partInteger.slice(0, owner.numeralIntegerScale + (value.slice(0, 1) === '-' ? 1 : 0)); + } + + switch (owner.numeralThousandsGroupStyle) { + case NumeralFormatter.groupStyle.lakh: + partInteger = partInteger.replace(/(\d)(?=(\d\d)+\d$)/g, '$1' + owner.delimiter); + + break; + + case NumeralFormatter.groupStyle.wan: + partInteger = partInteger.replace(/(\d)(?=(\d{4})+$)/g, '$1' + owner.delimiter); + + break; + + case NumeralFormatter.groupStyle.thousand: + partInteger = partInteger.replace(/(\d)(?=(\d{3})+$)/g, '$1' + owner.delimiter); + + break; + } + + return partInteger.toString() + (owner.numeralDecimalScale > 0 ? partDecimal.toString() : ''); + } + }; + + module.exports = NumeralFormatter; + + + /***/ + }), + /* 2 */ + /***/ (function (module, exports) { + + var DateFormatter = function (datePattern) { + var owner = this; + + owner.date = []; + owner.blocks = []; + owner.datePattern = datePattern; + owner.initBlocks(); + }; + + DateFormatter.prototype = { + initBlocks: function () { + var owner = this; + owner.datePattern.forEach(function (value) { + if (value === 'Y') { + owner.blocks.push(4); + } else { + owner.blocks.push(2); + } + }); + }, + + getISOFormatDate: function () { + var owner = this, + date = owner.date; + + return date[2] ? ( + date[2] + '-' + owner.addLeadingZero(date[1]) + '-' + owner.addLeadingZero(date[0]) + ) : ''; + }, + + getBlocks: function () { + return this.blocks; + }, + + getValidatedDate: function (value) { + var owner = this, result = ''; + + value = value.replace(/[^\d]/g, ''); + + owner.blocks.forEach(function (length, index) { + if (value.length > 0) { + var sub = value.slice(0, length), + sub0 = sub.slice(0, 1), + rest = value.slice(length); + + switch (owner.datePattern[index]) { + case 'd': + if (sub === '00') { + sub = '01'; + } else if (parseInt(sub0, 10) > 3) { + sub = '0' + sub0; + } else if (parseInt(sub, 10) > 31) { + sub = '31'; + } + + break; + + case 'm': + if (sub === '00') { + sub = '01'; + } else if (parseInt(sub0, 10) > 1) { + sub = '0' + sub0; + } else if (parseInt(sub, 10) > 12) { + sub = '12'; + } + + break; + } + + result += sub; + + // update remaining string + value = rest; + } + }); + + return this.getFixedDateString(result); + }, + + getFixedDateString: function (value) { + var owner = this, datePattern = owner.datePattern, date = [], + dayIndex = 0, monthIndex = 0, yearIndex = 0, + dayStartIndex = 0, monthStartIndex = 0, yearStartIndex = 0, + day, month, year, fullYearDone = false; + + // mm-dd || dd-mm + if (value.length === 4 && datePattern[0].toLowerCase() !== 'y' && datePattern[1].toLowerCase() !== 'y') { + dayStartIndex = datePattern[0] === 'd' ? 0 : 2; + monthStartIndex = 2 - dayStartIndex; + day = parseInt(value.slice(dayStartIndex, dayStartIndex + 2), 10); + month = parseInt(value.slice(monthStartIndex, monthStartIndex + 2), 10); + + date = this.getFixedDate(day, month, 0); + } + + // yyyy-mm-dd || yyyy-dd-mm || mm-dd-yyyy || dd-mm-yyyy || dd-yyyy-mm || mm-yyyy-dd + if (value.length === 8) { + datePattern.forEach(function (type, index) { + switch (type) { + case 'd': + dayIndex = index; + break; + case 'm': + monthIndex = index; + break; + default: + yearIndex = index; + break; + } + }); + + yearStartIndex = yearIndex * 2; + dayStartIndex = (dayIndex <= yearIndex) ? dayIndex * 2 : (dayIndex * 2 + 2); + monthStartIndex = (monthIndex <= yearIndex) ? monthIndex * 2 : (monthIndex * 2 + 2); + + day = parseInt(value.slice(dayStartIndex, dayStartIndex + 2), 10); + month = parseInt(value.slice(monthStartIndex, monthStartIndex + 2), 10); + year = parseInt(value.slice(yearStartIndex, yearStartIndex + 4), 10); + + fullYearDone = value.slice(yearStartIndex, yearStartIndex + 4).length === 4; + + date = this.getFixedDate(day, month, year); + } + + owner.date = date; + + return date.length === 0 ? value : datePattern.reduce(function (previous, current) { + switch (current) { + case 'd': + return previous + owner.addLeadingZero(date[0]); + case 'm': + return previous + owner.addLeadingZero(date[1]); + default: + return previous + (fullYearDone ? owner.addLeadingZeroForYear(date[2]) : ''); + } + }, ''); + }, + + getFixedDate: function (day, month, year) { + day = Math.min(day, 31); + month = Math.min(month, 12); + year = parseInt((year || 0), 10); + + if ((month < 7 && month % 2 === 0) || (month > 8 && month % 2 === 1)) { + day = Math.min(day, month === 2 ? (this.isLeapYear(year) ? 29 : 28) : 30); + } + + return [day, month, year]; + }, + + isLeapYear: function (year) { + return ((year % 4 === 0) && (year % 100 !== 0)) || (year % 400 === 0); + }, + + addLeadingZero: function (number) { + return (number < 10 ? '0' : '') + number; + }, + + addLeadingZeroForYear: function (number) { + return (number < 10 ? '000' : (number < 100 ? '00' : (number < 1000 ? '0' : ''))) + number; + } + }; + + module.exports = DateFormatter; + + + + /***/ + }), + /* 3 */ + /***/ (function (module, exports) { + + var TimeFormatter = function (timePattern, timeFormat) { + var owner = this; + + owner.time = []; + owner.blocks = []; + owner.timePattern = timePattern; + owner.timeFormat = timeFormat; + owner.initBlocks(); + }; + + TimeFormatter.prototype = { + initBlocks: function () { + var owner = this; + owner.timePattern.forEach(function () { + owner.blocks.push(2); + }); + }, + + getISOFormatTime: function () { + var owner = this, + time = owner.time; + + return time[2] ? ( + owner.addLeadingZero(time[0]) + ':' + owner.addLeadingZero(time[1]) + ':' + owner.addLeadingZero(time[2]) + ) : ''; + }, + + getBlocks: function () { + return this.blocks; + }, + + getTimeFormatOptions: function () { + var owner = this; + if (String(owner.timeFormat) === '12') { + return { + maxHourFirstDigit: 1, + maxHours: 12, + maxMinutesFirstDigit: 5, + maxMinutes: 60 + }; + } + + return { + maxHourFirstDigit: 2, + maxHours: 23, + maxMinutesFirstDigit: 5, + maxMinutes: 60 + }; + }, + + getValidatedTime: function (value) { + var owner = this, result = ''; + + value = value.replace(/[^\d]/g, ''); + + var timeFormatOptions = owner.getTimeFormatOptions(); + + owner.blocks.forEach(function (length, index) { + if (value.length > 0) { + var sub = value.slice(0, length), + sub0 = sub.slice(0, 1), + rest = value.slice(length); + + switch (owner.timePattern[index]) { + + case 'h': + if (parseInt(sub0, 10) > timeFormatOptions.maxHourFirstDigit) { + sub = '0' + sub0; + } else if (parseInt(sub, 10) > timeFormatOptions.maxHours) { + sub = timeFormatOptions.maxHours + ''; + } + + break; + + case 'm': + case 's': + if (parseInt(sub0, 10) > timeFormatOptions.maxMinutesFirstDigit) { + sub = '0' + sub0; + } else if (parseInt(sub, 10) > timeFormatOptions.maxMinutes) { + sub = timeFormatOptions.maxMinutes + ''; + } + break; + } + + result += sub; + + // update remaining string + value = rest; + } + }); + + return this.getFixedTimeString(result); + }, + + getFixedTimeString: function (value) { + var owner = this, timePattern = owner.timePattern, time = [], + secondIndex = 0, minuteIndex = 0, hourIndex = 0, + secondStartIndex = 0, minuteStartIndex = 0, hourStartIndex = 0, + second, minute, hour; + + if (value.length === 6) { + timePattern.forEach(function (type, index) { + switch (type) { + case 's': + secondIndex = index * 2; + break; + case 'm': + minuteIndex = index * 2; + break; + case 'h': + hourIndex = index * 2; + break; + } + }); + + hourStartIndex = hourIndex; + minuteStartIndex = minuteIndex; + secondStartIndex = secondIndex; + + second = parseInt(value.slice(secondStartIndex, secondStartIndex + 2), 10); + minute = parseInt(value.slice(minuteStartIndex, minuteStartIndex + 2), 10); + hour = parseInt(value.slice(hourStartIndex, hourStartIndex + 2), 10); + + time = this.getFixedTime(hour, minute, second); + } + + if (value.length === 4 && owner.timePattern.indexOf('s') < 0) { + timePattern.forEach(function (type, index) { + switch (type) { + case 'm': + minuteIndex = index * 2; + break; + case 'h': + hourIndex = index * 2; + break; + } + }); + + hourStartIndex = hourIndex; + minuteStartIndex = minuteIndex; + + second = 0; + minute = parseInt(value.slice(minuteStartIndex, minuteStartIndex + 2), 10); + hour = parseInt(value.slice(hourStartIndex, hourStartIndex + 2), 10); + + time = this.getFixedTime(hour, minute, second); + } + + owner.time = time; + + return time.length === 0 ? value : timePattern.reduce(function (previous, current) { + switch (current) { + case 's': + return previous + owner.addLeadingZero(time[2]); + case 'm': + return previous + owner.addLeadingZero(time[1]); + case 'h': + return previous + owner.addLeadingZero(time[0]); + } + }, ''); + }, + + getFixedTime: function (hour, minute, second) { + second = Math.min(parseInt(second || 0, 10), 60); + minute = Math.min(minute, 60); + hour = Math.min(hour, 60); + + return [hour, minute, second]; + }, + + addLeadingZero: function (number) { + return (number < 10 ? '0' : '') + number; + } + }; + + module.exports = TimeFormatter; + + + /***/ + }), + /* 4 */ + /***/ (function (module, exports) { + + var PhoneFormatter = function (formatter, delimiter) { + var owner = this; + + owner.delimiter = (delimiter || delimiter === '') ? delimiter : ' '; + owner.delimiterRE = delimiter ? new RegExp('\\' + delimiter, 'g') : ''; + + owner.formatter = formatter; + }; + + PhoneFormatter.prototype = { + setFormatter: function (formatter) { + this.formatter = formatter; + }, + + format: function (phoneNumber) { + var owner = this; + + owner.formatter.clear(); + + // only keep number and + + phoneNumber = phoneNumber.replace(/[^\d+]/g, ''); + + // strip non-leading + + phoneNumber = phoneNumber.replace(/^\+/, 'B').replace(/\+/g, '').replace('B', '+'); + + // strip delimiter + phoneNumber = phoneNumber.replace(owner.delimiterRE, ''); + + var result = '', current, validated = false; + + for (var i = 0, iMax = phoneNumber.length; i < iMax; i++) { + current = owner.formatter.inputDigit(phoneNumber.charAt(i)); + + // has ()- or space inside + if (/[\s()-]/g.test(current)) { + result = current; + + validated = true; + } else { + if (!validated) { + result = current; + } + // else: over length input + // it turns to invalid number again + } + } + + // strip () + // e.g. US: 7161234567 returns (716) 123-4567 + result = result.replace(/[()]/g, ''); + // replace library delimiter with user customized delimiter + result = result.replace(/[\s-]/g, owner.delimiter); + + return result; + } + }; + + module.exports = PhoneFormatter; + + + /***/ + }), + /* 5 */ + /***/ (function (module, exports) { + + var CreditCardDetector = { + blocks: { + uatp: [4, 5, 6], + amex: [4, 6, 5], + diners: [4, 6, 4], + discover: [4, 4, 4, 4], + mastercard: [4, 4, 4, 4], + dankort: [4, 4, 4, 4], + instapayment: [4, 4, 4, 4], + jcb15: [4, 6, 5], + jcb: [4, 4, 4, 4], + maestro: [4, 4, 4, 4], + visa: [4, 4, 4, 4], + mir: [4, 4, 4, 4], + unionPay: [4, 4, 4, 4], + general: [4, 4, 4, 4], + generalStrict: [4, 4, 4, 7] + }, + + re: { + // starts with 1; 15 digits, not starts with 1800 (jcb card) + uatp: /^(?!1800)1\d{0,14}/, + + // starts with 34/37; 15 digits + amex: /^3[47]\d{0,13}/, + + // starts with 6011/65/644-649; 16 digits + discover: /^(?:6011|65\d{0,2}|64[4-9]\d?)\d{0,12}/, + + // starts with 300-305/309 or 36/38/39; 14 digits + diners: /^3(?:0([0-5]|9)|[689]\d?)\d{0,11}/, + + // starts with 51-55/2221–2720; 16 digits + mastercard: /^(5[1-5]\d{0,2}|22[2-9]\d{0,1}|2[3-7]\d{0,2})\d{0,12}/, + + // starts with 5019/4175/4571; 16 digits + dankort: /^(5019|4175|4571)\d{0,12}/, + + // starts with 637-639; 16 digits + instapayment: /^63[7-9]\d{0,13}/, + + // starts with 2131/1800; 15 digits + jcb15: /^(?:2131|1800)\d{0,11}/, + + // starts with 2131/1800/35; 16 digits + jcb: /^(?:35\d{0,2})\d{0,12}/, + + // starts with 50/56-58/6304/67; 16 digits + maestro: /^(?:5[0678]\d{0,2}|6304|67\d{0,2})\d{0,12}/, + + // starts with 22; 16 digits + mir: /^220[0-4]\d{0,12}/, + + // starts with 4; 16 digits + visa: /^4\d{0,15}/, + + // starts with 62; 16 digits + unionPay: /^62\d{0,14}/ + }, + + getInfo: function (value, strictMode) { + var blocks = CreditCardDetector.blocks, + re = CreditCardDetector.re; + + // Some credit card can have up to 19 digits number. + // Set strictMode to true will remove the 16 max-length restrain, + // however, I never found any website validate card number like + // this, hence probably you don't want to enable this option. + strictMode = !!strictMode; + + for (var key in re) { + if (re[key].test(value)) { + var block; + + if (strictMode) { + block = blocks.generalStrict; + } else { + block = blocks[key]; + } + + return { + type: key, + blocks: block + }; + } + } + + return { + type: 'unknown', + blocks: strictMode ? blocks.generalStrict : blocks.general + }; + } + }; + + module.exports = CreditCardDetector; + + + /***/ + }), + /* 6 */ + /***/ (function (module, exports) { + + var Util = { + noop: function () { + }, + + strip: function (value, re) { + return value.replace(re, ''); + }, + + getPostDelimiter: function (value, delimiter, delimiters) { + // single delimiter + if (delimiters.length === 0) { + return value.slice(-delimiter.length) === delimiter ? delimiter : ''; + } + + // multiple delimiters + var matchedDelimiter = ''; + delimiters.forEach(function (current) { + if (value.slice(-current.length) === current) { + matchedDelimiter = current; + } + }); + + return matchedDelimiter; + }, + + getDelimiterREByDelimiter: function (delimiter) { + return new RegExp(delimiter.replace(/([.?*+^$[\]\\(){}|-])/g, '\\$1'), 'g'); + }, + + getNextCursorPosition: function (prevPos, oldValue, newValue, delimiter, delimiters) { + // If cursor was at the end of value, just place it back. + // Because new value could contain additional chars. + if (oldValue.length === prevPos) { + return newValue.length; + } + + return prevPos + this.getPositionOffset(prevPos, oldValue, newValue, delimiter, delimiters); + }, + + getPositionOffset: function (prevPos, oldValue, newValue, delimiter, delimiters) { + var oldRawValue, newRawValue, lengthOffset; + + oldRawValue = this.stripDelimiters(oldValue.slice(0, prevPos), delimiter, delimiters); + newRawValue = this.stripDelimiters(newValue.slice(0, prevPos), delimiter, delimiters); + lengthOffset = oldRawValue.length - newRawValue.length; + + return (lengthOffset !== 0) ? (lengthOffset / Math.abs(lengthOffset)) : 0; + }, + + stripDelimiters: function (value, delimiter, delimiters) { + var owner = this; + + // single delimiter + if (delimiters.length === 0) { + var delimiterRE = delimiter ? owner.getDelimiterREByDelimiter(delimiter) : ''; + + return value.replace(delimiterRE, ''); + } + + // multiple delimiters + delimiters.forEach(function (current) { + current.split('').forEach(function (letter) { + value = value.replace(owner.getDelimiterREByDelimiter(letter), ''); + }); + }); + + return value; + }, + + headStr: function (str, length) { + return str.slice(0, length); + }, + + getMaxLength: function (blocks) { + return blocks.reduce(function (previous, current) { + return previous + current; + }, 0); + }, + + // strip prefix + // Before type | After type | Return value + // PEFIX-... | PEFIX-... | '' + // PREFIX-123 | PEFIX-123 | 123 + // PREFIX-123 | PREFIX-23 | 23 + // PREFIX-123 | PREFIX-1234 | 1234 + getPrefixStrippedValue: function (value, prefix, prefixLength, prevResult, delimiter, delimiters) { + // No prefix + if (prefixLength === 0) { + return value; + } + + // Pre result has issue + // Revert to raw prefix + if (prevResult.slice(0, prefixLength) !== prefix) { + return ''; + } + + var prevValue = this.stripDelimiters(prevResult, delimiter, delimiters); + + // New value has issue, someone typed in between prefix letters + // Revert to pre value + if (value.slice(0, prefixLength) !== prefix) { + return prevValue.slice(prefixLength); + } + + // No issue, strip prefix for new value + return value.slice(prefixLength); + }, + + getFirstDiffIndex: function (prev, current) { + var index = 0; + + while (prev.charAt(index) === current.charAt(index)) { + if (prev.charAt(index++) === '') { + return -1; + } + } + + return index; + }, + + getFormattedValue: function (value, blocks, blocksLength, delimiter, delimiters, delimiterLazyShow) { + var result = '', + multipleDelimiters = delimiters.length > 0, + currentDelimiter; + + // no options, normal input + if (blocksLength === 0) { + return value; + } + + blocks.forEach(function (length, index) { + if (value.length > 0) { + var sub = value.slice(0, length), + rest = value.slice(length); + + if (multipleDelimiters) { + currentDelimiter = delimiters[delimiterLazyShow ? (index - 1) : index] || currentDelimiter; + } else { + currentDelimiter = delimiter; + } + + if (delimiterLazyShow) { + if (index > 0) { + result += currentDelimiter; + } + + result += sub; + } else { + result += sub; + + if (sub.length === length && index < blocksLength - 1) { + result += currentDelimiter; + } + } + + // update remaining string + value = rest; + } + }); + + return result; + }, + + // move cursor to the end + // the first time user focuses on an input with prefix + fixPrefixCursor: function (el, prefix, delimiter, delimiters) { + if (!el) { + return; + } + + var val = el.value, + appendix = delimiter || (delimiters[0] || ' '); + + if (!el.setSelectionRange || !prefix || (prefix.length + appendix.length) < val.length) { + return; + } + + var len = val.length * 2; + + // set timeout to avoid blink + setTimeout(function () { + el.setSelectionRange(len, len); + }, 1); + }, + + setSelection: function (element, position, doc) { + if (element !== this.getActiveElement(doc)) { + return; + } + + // cursor is already in the end + if (element && element.value.length <= position) { + return; + } + + if (element.createTextRange) { + var range = element.createTextRange(); + + range.move('character', position); + range.select(); + } else { + try { + element.setSelectionRange(position, position); + } catch (e) { + // eslint-disable-next-line + console.warn('The input element type does not support selection'); + } + } + }, + + getActiveElement: function (parent) { + var activeElement = parent.activeElement; + if (activeElement && activeElement.shadowRoot) { + return this.getActiveElement(activeElement.shadowRoot); + } + return activeElement; + }, + + isAndroid: function () { + return navigator && /android/i.test(navigator.userAgent); + }, + + // On Android chrome, the keyup and keydown events + // always return key code 229 as a composition that + // buffers the user’s keystrokes + // see https://github.com/nosir/cleave.js/issues/147 + isAndroidBackspaceKeydown: function (lastInputValue, currentInputValue) { + if (!this.isAndroid() || !lastInputValue || !currentInputValue) { + return false; + } + + return currentInputValue === lastInputValue.slice(0, -1); + } + }; + + module.exports = Util; + + + /***/ + }), + /* 7 */ + /***/ (function (module, exports) { + + /* WEBPACK VAR INJECTION */(function (global) { + + /** + * Props Assignment + * + * Separate this, so react module can share the usage + */ + var DefaultProperties = { + // Maybe change to object-assign + // for now just keep it as simple + assign: function (target, opts) { + target = target || {}; + opts = opts || {}; + + // credit card + target.creditCard = !!opts.creditCard; + target.creditCardStrictMode = !!opts.creditCardStrictMode; + target.creditCardType = ''; + target.onCreditCardTypeChanged = opts.onCreditCardTypeChanged || (function () { }); + + // phone + target.phone = !!opts.phone; + target.phoneRegionCode = opts.phoneRegionCode || 'AU'; + target.phoneFormatter = {}; + + // time + target.time = !!opts.time; + target.timePattern = opts.timePattern || ['h', 'm', 's']; + target.timeFormat = opts.timeFormat || '24'; + target.timeFormatter = {}; + + // date + target.date = !!opts.date; + target.datePattern = opts.datePattern || ['d', 'm', 'Y']; + target.dateFormatter = {}; + + // numeral + target.numeral = !!opts.numeral; + target.numeralIntegerScale = opts.numeralIntegerScale > 0 ? opts.numeralIntegerScale : 0; + target.numeralDecimalScale = opts.numeralDecimalScale >= 0 ? opts.numeralDecimalScale : 2; + target.numeralDecimalMark = opts.numeralDecimalMark || '.'; + target.numeralThousandsGroupStyle = opts.numeralThousandsGroupStyle || 'thousand'; + target.numeralPositiveOnly = !!opts.numeralPositiveOnly; + target.stripLeadingZeroes = opts.stripLeadingZeroes !== false; + + // others + target.numericOnly = target.creditCard || target.date || !!opts.numericOnly; + + target.uppercase = !!opts.uppercase; + target.lowercase = !!opts.lowercase; + + target.prefix = (target.creditCard || target.date) ? '' : (opts.prefix || ''); + target.noImmediatePrefix = !!opts.noImmediatePrefix; + target.prefixLength = target.prefix.length; + target.rawValueTrimPrefix = !!opts.rawValueTrimPrefix; + target.copyDelimiter = !!opts.copyDelimiter; + + target.initValue = (opts.initValue !== undefined && opts.initValue !== null) ? opts.initValue.toString() : ''; + + target.delimiter = + (opts.delimiter || opts.delimiter === '') ? opts.delimiter : + (opts.date ? '/' : + (opts.time ? ':' : + (opts.numeral ? ',' : + (opts.phone ? ' ' : + ' ')))); + target.delimiterLength = target.delimiter.length; + target.delimiterLazyShow = !!opts.delimiterLazyShow; + target.delimiters = opts.delimiters || []; + + target.blocks = opts.blocks || []; + target.blocksLength = target.blocks.length; + + target.root = (typeof global === 'object' && global) ? global : window; + target.document = opts.document || target.root.document; + + target.maxLength = 0; + + target.backspace = false; + target.result = ''; + + target.onValueChanged = opts.onValueChanged || (function () { }); + + return target; + } + }; + + module.exports = DefaultProperties; + + /* WEBPACK VAR INJECTION */ + }.call(exports, (function () { return this; }()))); + + /***/ + }) + /******/]) + }); + }); + + /* src/Login/twofactors/codeInput.svelte generated by Svelte v3.2.1 */ + + const file$4 = "src/Login/twofactors/codeInput.svelte"; + + function create_fragment$4(ctx) { + var div1, input_1, t0, span0, t1, span1, t2, label_1, t4, div0, t5, div0_style_value, dispose; + + return { + c: function create() { + div1 = internal_13("div"); + input_1 = internal_13("input"); + t0 = internal_17(); + span0 = internal_13("span"); + t1 = internal_17(); + span1 = internal_13("span"); + t2 = internal_17(); + label_1 = internal_13("label"); + label_1.textContent = "Code"; + t4 = internal_17(); + div0 = internal_13("div"); + t5 = internal_16(ctx.error); + input_1.autofocus = true; + internal_87(input_1, file$4, 29, 3, 502); + span0.className = "highlight"; + internal_87(span0, file$4, 30, 3, 560); + span1.className = "bar"; + internal_87(span1, file$4, 31, 3, 595); + internal_87(label_1, file$4, 32, 3, 624); + div0.className = "error svelte-1dvmdfa"; + div0.style.cssText = div0_style_value = !ctx.error ? "display: none;" : ""; + internal_87(div0, file$4, 33, 3, 647); + div1.className = "floating group"; + internal_87(div1, file$4, 28, 0, 470); + dispose = internal_19(input_1, "input", ctx.input_1_input_handler); + }, + + l: function claim(nodes) { + throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); + }, + + m: function mount(target, anchor) { + internal_7(target, div1, anchor); + internal_6(div1, input_1); + + input_1.value = ctx.value; + + internal_62(() => ctx.input_1_binding(input_1, null)); + internal_6(div1, t0); + internal_6(div1, span0); + internal_6(div1, t1); + internal_6(div1, span1); + internal_6(div1, t2); + internal_6(div1, label_1); + internal_6(div1, t4); + internal_6(div1, div0); + internal_6(div0, t5); + input_1.focus(); + }, + + p: function update(changed, ctx) { + if (changed.value && (input_1.value !== ctx.value)) input_1.value = ctx.value; + if (changed.items) { + ctx.input_1_binding(null, input_1); + ctx.input_1_binding(input_1, null); + } + + if (changed.error) { + internal_32(t5, ctx.error); + } + + if ((changed.error) && div0_style_value !== (div0_style_value = !ctx.error ? "display: none;" : "")) { + div0.style.cssText = div0_style_value; + } + }, + + i: internal_83, + o: internal_83, + + d: function destroy(detaching) { + if (detaching) { + internal_8(div1); + } + + ctx.input_1_binding(null, input_1); + dispose(); + } + }; + } + + function instance$4($$self, $$props, $$invalidate) { + + + let { error, label, value, length = 6 } = $$props; + + let input; + svelte_1(() => { + const cleaveCustom = new cleave(input, { + blocks: [length / 2, length / 2], + delimiter: ' ', + numericOnly: true + }); + }); + + function input_1_input_handler() { + value = this.value; + $$invalidate('value', value); + } + + function input_1_binding($$node, check) { + input = $$node; + $$invalidate('input', input); + } + + $$self.$set = $$props => { + if ('error' in $$props) $$invalidate('error', error = $$props.error); + if ('label' in $$props) $$invalidate('label', label = $$props.label); + if ('value' in $$props) $$invalidate('value', value = $$props.value); + if ('length' in $$props) $$invalidate('length', length = $$props.length); + }; + + return { + error, + label, + value, + length, + input, + input_1_input_handler, + input_1_binding + }; + } + + class CodeInput extends internal_104 { + constructor(options) { + super(options); + internal_102(this, options, instance$4, create_fragment$4, internal_92, ["error", "label", "value", "length"]); + + const { ctx } = this.$$; + const props = options.props || {}; + if (ctx.error === undefined && !('error' in props)) { + console.warn(" was created without expected prop 'error'"); + } + if (ctx.label === undefined && !('label' in props)) { + console.warn(" was created without expected prop 'label'"); + } + if (ctx.value === undefined && !('value' in props)) { + console.warn(" was created without expected prop 'value'"); + } + } + + get error() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set error(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get label() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set label(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get value() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set value(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get length() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set length(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + } + + /* src/Login/twofactors/otc.svelte generated by Svelte v3.2.1 */ + + const file$5 = "src/Login/twofactors/otc.svelte"; + + function create_fragment$5(ctx) { + var h3, t0, t1, updating_value, t2, div, t3, button, current, dispose; + + function codeinput_value_binding(value) { + ctx.codeinput_value_binding.call(null, value); + updating_value = true; + internal_64(() => updating_value = false); + } + + let codeinput_props = { + label: "Code", + error: ctx.error, + length: ctx.length + }; + if (ctx.code !== void 0) { + codeinput_props.value = ctx.code; + } + var codeinput = new CodeInput({ props: codeinput_props, $$inline: true }); + + internal_62(() => internal_100(codeinput, 'value', codeinput_value_binding)); + + var tolist = new ToList({ + props: { finish: ctx.finish }, + $$inline: true + }); + + return { + c: function create() { + h3 = internal_13("h3"); + t0 = internal_16(ctx.title); + t1 = internal_17(); + codeinput.$$.fragment.c(); + t2 = internal_17(); + div = internal_13("div"); + tolist.$$.fragment.c(); + t3 = internal_17(); + button = internal_13("button"); + button.textContent = "Send"; + internal_87(h3, file$5, 48, 0, 980); + button.className = "btn svelte-1l4mr9e"; + internal_34(button, "margin-left", "auto"); + internal_87(button, file$5, 54, 3, 1122); + div.className = "actions svelte-1l4mr9e"; + internal_87(div, file$5, 52, 0, 1074); + dispose = internal_19(button, "click", ctx.sendCode); + }, + + l: function claim(nodes) { + throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); + }, + + m: function mount(target, anchor) { + internal_7(target, h3, anchor); + internal_6(h3, t0); + internal_7(target, t1, anchor); + internal_101(codeinput, target, anchor); + internal_7(target, t2, anchor); + internal_7(target, div, anchor); + internal_101(tolist, div, null); + internal_6(div, t3); + internal_6(div, button); + current = true; + }, + + p: function update(changed, ctx) { + var codeinput_changes = {}; + if (changed.error) codeinput_changes.error = ctx.error; + if (changed.length) codeinput_changes.length = ctx.length; + if (!updating_value && changed.code) { + codeinput_changes.value = ctx.code; + } + codeinput.$set(codeinput_changes); + + var tolist_changes = {}; + if (changed.finish) tolist_changes.finish = ctx.finish; + tolist.$set(tolist_changes); + }, + + i: function intro(local) { + if (current) return; + codeinput.$$.fragment.i(local); + + tolist.$$.fragment.i(local); + + current = true; + }, + + o: function outro(local) { + codeinput.$$.fragment.o(local); + tolist.$$.fragment.o(local); + current = false; + }, + + d: function destroy(detaching) { + if (detaching) { + internal_8(h3); + internal_8(t1); + } + + codeinput.$destroy(detaching); + + if (detaching) { + internal_8(t2); + internal_8(div); + } + + tolist.$destroy(); + + dispose(); + } + }; + } + + function instance$5($$self, $$props, $$invalidate) { + + + let error = ""; + let code = ""; + let { finish, id, otc = false } = $$props; + let title = otc ? "One Time Code (OTC)" : "Backup Code"; + let length = otc ? 6 : 8; + + async function sendCode() { + let c = code.replace(/\s+/g, ""); + if (c.length < length) { + $$invalidate('error', error = `Code must be ${length} digits long!`); + } else { + $$invalidate('error', error = ""); + let res; + if (otc) + res = await Api.sendOTC(id, c); + else + res = await Api.sendBackup(id, c); + if (res.error) + $$invalidate('error', error = res.error); + else + finish(true); + } + } + + function codeinput_value_binding(value) { + code = value; + $$invalidate('code', code); + } + + $$self.$set = $$props => { + if ('finish' in $$props) $$invalidate('finish', finish = $$props.finish); + if ('id' in $$props) $$invalidate('id', id = $$props.id); + if ('otc' in $$props) $$invalidate('otc', otc = $$props.otc); + }; + + return { + error, + code, + finish, + id, + otc, + title, + length, + sendCode, + codeinput_value_binding + }; + } + + class Otc extends internal_104 { + constructor(options) { + super(options); + internal_102(this, options, instance$5, create_fragment$5, internal_92, ["finish", "id", "otc"]); + + const { ctx } = this.$$; + const props = options.props || {}; + if (ctx.finish === undefined && !('finish' in props)) { + console.warn(" was created without expected prop 'finish'"); + } + if (ctx.id === undefined && !('id' in props)) { + console.warn(" was created without expected prop 'id'"); + } + } + + get finish() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set finish(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get id() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set id(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get otc() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set otc(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + } + + /* src/Login/twofactors/push.svelte generated by Svelte v3.2.1 */ + + const file$6 = "src/Login/twofactors/push.svelte"; + + function create_fragment$6(ctx) { + var h3, t1, p, t2, b, t3, t4, div10, div1, div0, t5, div3, div2, t6, div5, div4, t7, div7, div6, t8, div9, div8, t9, div11, t10, t11, current; + + var tolist = new ToList({ + props: { finish: ctx.finish }, + $$inline: true + }); + + return { + c: function create() { + h3 = internal_13("h3"); + h3.textContent = "SMS"; + t1 = internal_17(); + p = internal_13("p"); + t2 = internal_16("A code was sent to your Device "); + b = internal_13("b"); + t3 = internal_16(ctx.device); + t4 = internal_17(); + div10 = internal_13("div"); + div1 = internal_13("div"); + div0 = internal_13("div"); + t5 = internal_17(); + div3 = internal_13("div"); + div2 = internal_13("div"); + t6 = internal_17(); + div5 = internal_13("div"); + div4 = internal_13("div"); + t7 = internal_17(); + div7 = internal_13("div"); + div6 = internal_13("div"); + t8 = internal_17(); + div9 = internal_13("div"); + div8 = internal_13("div"); + t9 = internal_17(); + div11 = internal_13("div"); + t10 = internal_16(error); + t11 = internal_17(); + tolist.$$.fragment.c(); + internal_87(h3, file$6, 369, 0, 7853); + internal_87(b, file$6, 371, 34, 7901); + internal_87(p, file$6, 371, 0, 7867); + div0.className = "wInnerBall svelte-1xgtl8s"; + internal_87(div0, file$6, 375, 6, 7987); + div1.className = "wBall svelte-1xgtl8s"; + div1.id = "wBall_1"; + internal_87(div1, file$6, 374, 3, 7948); + div2.className = "wInnerBall svelte-1xgtl8s"; + internal_87(div2, file$6, 378, 6, 8070); + div3.className = "wBall svelte-1xgtl8s"; + div3.id = "wBall_2"; + internal_87(div3, file$6, 377, 3, 8031); + div4.className = "wInnerBall svelte-1xgtl8s"; + internal_87(div4, file$6, 381, 6, 8153); + div5.className = "wBall svelte-1xgtl8s"; + div5.id = "wBall_3"; + internal_87(div5, file$6, 380, 3, 8114); + div6.className = "wInnerBall svelte-1xgtl8s"; + internal_87(div6, file$6, 384, 6, 8236); + div7.className = "wBall svelte-1xgtl8s"; + div7.id = "wBall_4"; + internal_87(div7, file$6, 383, 3, 8197); + div8.className = "wInnerBall svelte-1xgtl8s"; + internal_87(div8, file$6, 387, 6, 8319); + div9.className = "wBall svelte-1xgtl8s"; + div9.id = "wBall_5"; + internal_87(div9, file$6, 386, 3, 8280); + div10.className = "windows8 svelte-1xgtl8s"; + internal_87(div10, file$6, 373, 0, 7922); + div11.className = "error svelte-1xgtl8s"; + internal_87(div11, file$6, 391, 0, 8368); + }, + + l: function claim(nodes) { + throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); + }, + + m: function mount(target, anchor) { + internal_7(target, h3, anchor); + internal_7(target, t1, anchor); + internal_7(target, p, anchor); + internal_6(p, t2); + internal_6(p, b); + internal_6(b, t3); + internal_7(target, t4, anchor); + internal_7(target, div10, anchor); + internal_6(div10, div1); + internal_6(div1, div0); + internal_6(div10, t5); + internal_6(div10, div3); + internal_6(div3, div2); + internal_6(div10, t6); + internal_6(div10, div5); + internal_6(div5, div4); + internal_6(div10, t7); + internal_6(div10, div7); + internal_6(div7, div6); + internal_6(div10, t8); + internal_6(div10, div9); + internal_6(div9, div8); + internal_7(target, t9, anchor); + internal_7(target, div11, anchor); + internal_6(div11, t10); + internal_7(target, t11, anchor); + internal_101(tolist, target, anchor); + current = true; + }, + + p: function update(changed, ctx) { + if (!current || changed.device) { + internal_32(t3, ctx.device); + } + + var tolist_changes = {}; + if (changed.finish) tolist_changes.finish = ctx.finish; + tolist.$set(tolist_changes); + }, + + i: function intro(local) { + if (current) return; + tolist.$$.fragment.i(local); + + current = true; + }, + + o: function outro(local) { + tolist.$$.fragment.o(local); + current = false; + }, + + d: function destroy(detaching) { + if (detaching) { + internal_8(h3); + internal_8(t1); + internal_8(p); + internal_8(t4); + internal_8(div10); + internal_8(t9); + internal_8(div11); + internal_8(t11); + } + + tolist.$destroy(detaching); + } + }; + } + + let error = ""; + + function instance$6($$self, $$props, $$invalidate) { + + let { device = "Handy01", deviceId = "", finish } = $$props; + + $$self.$set = $$props => { + if ('device' in $$props) $$invalidate('device', device = $$props.device); + if ('deviceId' in $$props) $$invalidate('deviceId', deviceId = $$props.deviceId); + if ('finish' in $$props) $$invalidate('finish', finish = $$props.finish); + }; + + return { device, deviceId, finish }; + } + + class Push extends internal_104 { + constructor(options) { + super(options); + internal_102(this, options, instance$6, create_fragment$6, internal_92, ["device", "deviceId", "finish"]); + + const { ctx } = this.$$; + const props = options.props || {}; + if (ctx.finish === undefined && !('finish' in props)) { + console.warn(" was created without expected prop 'finish'"); + } + } + + get device() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set device(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get deviceId() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set deviceId(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get finish() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set finish(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + } + + /* src/Login/twofactors/u2f.svelte generated by Svelte v3.2.1 */ + + const file$7 = "src/Login/twofactors/u2f.svelte"; + + function create_fragment$7(ctx) { + var h3, t1, h4, t3, current; + + var tolist = new ToList({ + props: { finish: ctx.finish }, + $$inline: true + }); + + return { + c: function create() { + h3 = internal_13("h3"); + h3.textContent = "U2F Security Key"; + t1 = internal_17(); + h4 = internal_13("h4"); + h4.textContent = "This Method is currently not supported. Please choose another one!"; + t3 = internal_17(); + tolist.$$.fragment.c(); + h3.className = "svelte-1b22rk9"; + internal_87(h3, file$7, 69, 0, 1410); + h4.className = "svelte-1b22rk9"; + internal_87(h4, file$7, 70, 0, 1436); + }, + + l: function claim(nodes) { + throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); + }, + + m: function mount(target, anchor) { + internal_7(target, h3, anchor); + internal_7(target, t1, anchor); + internal_7(target, h4, anchor); + internal_7(target, t3, anchor); + internal_101(tolist, target, anchor); + current = true; + }, + + p: function update(changed, ctx) { + var tolist_changes = {}; + if (changed.finish) tolist_changes.finish = ctx.finish; + tolist.$set(tolist_changes); + }, + + i: function intro(local) { + if (current) return; + tolist.$$.fragment.i(local); + + current = true; + }, + + o: function outro(local) { + tolist.$$.fragment.o(local); + current = false; + }, + + d: function destroy(detaching) { + if (detaching) { + internal_8(h3); + internal_8(t1); + internal_8(h4); + internal_8(t3); + } + + tolist.$destroy(detaching); + } + }; + } + + function instance$7($$self, $$props, $$invalidate) { + let { finish } = $$props; + + const states = { + getChallenge: 0, + requestUser: 1, + sendChallenge: 2, + error: 3 + }; + + let state = states.getChallenge; + + let error = ""; + + const onError = err => { + $$invalidate('state', state = states.error); + $$invalidate('error', error = err.message); + }; + + let challenge; + + async function requestUser() { + $$invalidate('state', state = states.requestUser); + let res = await window.navigator.credentials.get({ + publicKey: challenge + }); + $$invalidate('state', state = states.sendChallenge()); + let r = res.response; + let data = encode({ + authenticatorData: r.authenticatorData, + clientDataJSON: r.clientDataJSON, + signature: r.signature, + userHandle: r.userHandle + }); + let { + success + } = fetch("https://localhost:8444/auth", { + body: data, + method: "POST" + }).then(res => res.json()); + if (success) { + finish(true); + } + } + + async function getChallenge() { + $$invalidate('state', state = states.getChallenge); + $$invalidate('challenge', challenge = await fetch("https://localhost:8444/auth") + .then(res => res.arrayBuffer()) + .then(data => decode(MessagePack.Buffer.from(data)))); + + requestUser().catch(onError); + } + getChallenge().catch(onError); + + $$self.$set = $$props => { + if ('finish' in $$props) $$invalidate('finish', finish = $$props.finish); + }; + + return { finish }; + } + + class U2f extends internal_104 { + constructor(options) { + super(options); + internal_102(this, options, instance$7, create_fragment$7, internal_92, ["finish"]); + + const { ctx } = this.$$; + const props = options.props || {}; + if (ctx.finish === undefined && !('finish' in props)) { + console.warn(" was created without expected prop 'finish'"); + } + } + + get finish() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set finish(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + } + + /* src/Login/Twofactor.svelte generated by Svelte v3.2.1 */ + + const file$8 = "src/Login/Twofactor.svelte"; + + function get_each_context(ctx, list, i) { + const child_ctx = Object.create(ctx); + child_ctx.tf = list[i]; + return child_ctx; + } + + // (107:6) {:else} + function create_else_block$2(ctx) { + var div; + + return { + c: function create() { + div = internal_13("div"); + div.textContent = "Invalid TwoFactor Method!"; + internal_87(div, file$8, 107, 9, 2311); + }, + + m: function mount(target, anchor) { + internal_7(target, div, anchor); + }, + + p: internal_83, + i: internal_83, + o: internal_83, + + d: function destroy(detaching) { + if (detaching) { + internal_8(div); + } + } + }; + } + + // (105:54) + function create_if_block_4(ctx) { + var current; + + var pushtwofactor = new Push({ + props: { id: ctx.twofactor.id, finish: ctx.onFinish }, + $$inline: true + }); + + return { + c: function create() { + pushtwofactor.$$.fragment.c(); + }, + + m: function mount(target, anchor) { + internal_101(pushtwofactor, target, anchor); + current = true; + }, + + p: function update(changed, ctx) { + var pushtwofactor_changes = {}; + if (changed.twofactor) pushtwofactor_changes.id = ctx.twofactor.id; + if (changed.onFinish) pushtwofactor_changes.finish = ctx.onFinish; + pushtwofactor.$set(pushtwofactor_changes); + }, + + i: function intro(local) { + if (current) return; + pushtwofactor.$$.fragment.i(local); + + current = true; + }, + + o: function outro(local) { + pushtwofactor.$$.fragment.o(local); + current = false; + }, + + d: function destroy(detaching) { + pushtwofactor.$destroy(detaching); + } + }; + } + + // (103:48) + function create_if_block_3$1(ctx) { + var current; + + var u2ftwofactor = new U2f({ + props: { id: ctx.twofactor.id, finish: ctx.onFinish }, + $$inline: true + }); + + return { + c: function create() { + u2ftwofactor.$$.fragment.c(); + }, + + m: function mount(target, anchor) { + internal_101(u2ftwofactor, target, anchor); + current = true; + }, + + p: function update(changed, ctx) { + var u2ftwofactor_changes = {}; + if (changed.twofactor) u2ftwofactor_changes.id = ctx.twofactor.id; + if (changed.onFinish) u2ftwofactor_changes.finish = ctx.onFinish; + u2ftwofactor.$set(u2ftwofactor_changes); + }, + + i: function intro(local) { + if (current) return; + u2ftwofactor.$$.fragment.i(local); + + current = true; + }, + + o: function outro(local) { + u2ftwofactor.$$.fragment.o(local); + current = false; + }, + + d: function destroy(detaching) { + u2ftwofactor.$destroy(detaching); + } + }; + } + + // (101:56) + function create_if_block_2$1(ctx) { + var current; + + var otctwofactor = new Otc({ + props: { + id: ctx.twofactor.id, + finish: ctx.onFinish, + otc: false + }, + $$inline: true + }); + + return { + c: function create() { + otctwofactor.$$.fragment.c(); + }, + + m: function mount(target, anchor) { + internal_101(otctwofactor, target, anchor); + current = true; + }, + + p: function update(changed, ctx) { + var otctwofactor_changes = {}; + if (changed.twofactor) otctwofactor_changes.id = ctx.twofactor.id; + if (changed.onFinish) otctwofactor_changes.finish = ctx.onFinish; + otctwofactor.$set(otctwofactor_changes); + }, + + i: function intro(local) { + if (current) return; + otctwofactor.$$.fragment.i(local); + + current = true; + }, + + o: function outro(local) { + otctwofactor.$$.fragment.o(local); + current = false; + }, + + d: function destroy(detaching) { + otctwofactor.$destroy(detaching); + } + }; + } + + // (99:6) {#if twofactor.type === TFATypes.OTC} + function create_if_block_1$1(ctx) { + var current; + + var otctwofactor = new Otc({ + props: { + id: ctx.twofactor.id, + finish: ctx.onFinish, + otc: true + }, + $$inline: true + }); + + return { + c: function create() { + otctwofactor.$$.fragment.c(); + }, + + m: function mount(target, anchor) { + internal_101(otctwofactor, target, anchor); + current = true; + }, + + p: function update(changed, ctx) { + var otctwofactor_changes = {}; + if (changed.twofactor) otctwofactor_changes.id = ctx.twofactor.id; + if (changed.onFinish) otctwofactor_changes.finish = ctx.onFinish; + otctwofactor.$set(otctwofactor_changes); + }, + + i: function intro(local) { + if (current) return; + otctwofactor.$$.fragment.i(local); + + current = true; + }, + + o: function outro(local) { + otctwofactor.$$.fragment.o(local); + current = false; + }, + + d: function destroy(detaching) { + otctwofactor.$destroy(detaching); + } + }; + } + + // (83:3) {#if !twofactor} + function create_if_block$2(ctx) { + var h3, t_1, ul, current; + + var each_value = ctx.twofactors; + + var each_blocks = []; + + for (var i = 0; i < each_value.length; i += 1) { + each_blocks[i] = create_each_block(get_each_context(ctx, each_value, i)); + } + + function outro_block(i, detaching, local) { + if (each_blocks[i]) { + if (detaching) { + internal_79(() => { + each_blocks[i].d(detaching); + each_blocks[i] = null; + }); + } + + each_blocks[i].o(local); + } + } + + return { + c: function create() { + h3 = internal_13("h3"); + h3.textContent = "Select your Authentication method:"; + t_1 = internal_17(); + ul = internal_13("ul"); + + for (var i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].c(); + } + internal_87(h3, file$8, 83, 3, 1491); + ul.className = "svelte-w0gm0o"; + internal_87(ul, file$8, 84, 3, 1538); + }, + + m: function mount(target, anchor) { + internal_7(target, h3, anchor); + internal_7(target, t_1, anchor); + internal_7(target, ul, anchor); + + for (var i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].m(ul, null); + } + + current = true; + }, + + p: function update(changed, ctx) { + if (changed.twofactors) { + each_value = ctx.twofactors; + + for (var i = 0; i < each_value.length; i += 1) { + const child_ctx = get_each_context(ctx, each_value, i); + + if (each_blocks[i]) { + each_blocks[i].p(changed, child_ctx); + each_blocks[i].i(1); + } else { + each_blocks[i] = create_each_block(child_ctx); + each_blocks[i].c(); + each_blocks[i].i(1); + each_blocks[i].m(ul, null); + } + } + + internal_77(); + for (; i < each_blocks.length; i += 1) outro_block(i, 1, 1); + internal_78(); + } + }, + + i: function intro(local) { + if (current) return; + for (var i = 0; i < each_value.length; i += 1) each_blocks[i].i(); + + current = true; + }, + + o: function outro(local) { + each_blocks = each_blocks.filter(Boolean); + for (let i = 0; i < each_blocks.length; i += 1) outro_block(i, 0); + + current = false; + }, + + d: function destroy(detaching) { + if (detaching) { + internal_8(h3); + internal_8(t_1); + internal_8(ul); + } + + internal_12(each_blocks, detaching); + } + }; + } + + // (86:6) {#each twofactors as tf} + function create_each_block(ctx) { + var li, div0, t0, div1, t1_value = ctx.tf.name, t1, t2, current, dispose; + + var icon = new Icon({ + props: { icon_name: ctx.tf.icon }, + $$inline: true + }); + + function click_handler() { + return ctx.click_handler(ctx); + } + + return { + c: function create() { + li = internal_13("li"); + div0 = internal_13("div"); + icon.$$.fragment.c(); + t0 = internal_17(); + div1 = internal_13("div"); + t1 = internal_16(t1_value); + t2 = internal_17(); + div0.className = "icon svelte-w0gm0o"; + internal_87(div0, file$8, 87, 9, 1624); + div1.className = "name svelte-w0gm0o"; + internal_87(div1, file$8, 91, 9, 1709); + li.className = "svelte-w0gm0o"; + internal_87(li, file$8, 86, 6, 1580); + dispose = internal_19(li, "click", click_handler); + }, + + m: function mount(target, anchor) { + internal_7(target, li, anchor); + internal_6(li, div0); + internal_101(icon, div0, null); + internal_6(li, t0); + internal_6(li, div1); + internal_6(div1, t1); + internal_6(li, t2); + current = true; + }, + + p: function update(changed, new_ctx) { + ctx = new_ctx; + var icon_changes = {}; + if (changed.twofactors) icon_changes.icon_name = ctx.tf.icon; + icon.$set(icon_changes); + }, + + i: function intro(local) { + if (current) return; + icon.$$.fragment.i(local); + + current = true; + }, + + o: function outro(local) { + icon.$$.fragment.o(local); + current = false; + }, + + d: function destroy(detaching) { + if (detaching) { + internal_8(li); + } + + icon.$destroy(); + + dispose(); + } + }; + } + + function create_fragment$8(ctx) { + var div, current_block_type_index, if_block, current; + + var if_block_creators = [ + create_if_block$2, + create_if_block_1$1, + create_if_block_2$1, + create_if_block_3$1, + create_if_block_4, + create_else_block$2 + ]; + + var if_blocks = []; + + function select_block_type(ctx) { + if (!ctx.twofactor) return 0; + if (ctx.twofactor.type === TFATypes.OTC) return 1; + if (ctx.twofactor.type === TFATypes.BACKUP_CODE) return 2; + if (ctx.twofactor.type === TFATypes.U2F) return 3; + if (ctx.twofactor.type === TFATypes.APP_ALLOW) return 4; + return 5; + } + + current_block_type_index = select_block_type(ctx); + if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx); + + return { + c: function create() { + div = internal_13("div"); + if_block.c(); + internal_87(div, file$8, 81, 0, 1461); + }, + + l: function claim(nodes) { + throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); + }, + + m: function mount(target, anchor) { + internal_7(target, div, anchor); + if_blocks[current_block_type_index].m(div, null); + current = true; + }, + + p: function update(changed, ctx) { + var previous_block_index = current_block_type_index; + current_block_type_index = select_block_type(ctx); + if (current_block_type_index === previous_block_index) { + if_blocks[current_block_type_index].p(changed, ctx); + } else { + internal_77(); + internal_79(() => { + if_blocks[previous_block_index].d(1); + if_blocks[previous_block_index] = null; + }); + if_block.o(1); + internal_78(); + + if_block = if_blocks[current_block_type_index]; + if (!if_block) { + if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx); + if_block.c(); + } + if_block.i(1); + if_block.m(div, null); + } + }, + + i: function intro(local) { + if (current) return; + if (if_block) if_block.i(); + current = true; + }, + + o: function outro(local) { + if (if_block) if_block.o(); + current = false; + }, + + d: function destroy(detaching) { + if (detaching) { + internal_8(div); + } + + if_blocks[current_block_type_index].d(); + } + }; + } + + function getIcon(tf) { + switch (tf.type) { + case TFATypes.OTC: + return "Authenticator" + case TFATypes.BACKUP_CODE: + return "BackupCode" + case TFATypes.U2F: + return "SecurityKey" + case TFATypes.APP_ALLOW: + return "AppPush" + } + } + + function instance$8($$self, $$props, $$invalidate) { + + let twofactors = Api.twofactor.map(tf => { + return { + ...tf, + icon: getIcon(tf) + } + }); + + let twofactor = undefined; + $$invalidate('twofactor', twofactor = twofactors[0]); + + function onFinish(res) { + if (res) + finish(); + else + $$invalidate('twofactor', twofactor = undefined); + } + + let { finish } = $$props; + + function click_handler({ tf }) { + const $$result = twofactor = tf; + $$invalidate('twofactor', twofactor); + return $$result; + } + + $$self.$set = $$props => { + if ('finish' in $$props) $$invalidate('finish', finish = $$props.finish); + }; + + $$self.$$.update = ($$dirty = { twofactor: 1 }) => { + if ($$dirty.twofactor) { console.log(twofactor); } + }; + + return { + twofactors, + twofactor, + onFinish, + finish, + click_handler + }; + } + + class Twofactor extends internal_104 { + constructor(options) { + super(options); + internal_102(this, options, instance$8, create_fragment$8, internal_92, ["finish"]); + + const { ctx } = this.$$; + const props = options.props || {}; + if (ctx.finish === undefined && !('finish' in props)) { + console.warn(" was created without expected prop 'finish'"); + } + } + + get finish() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set finish(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + } + + /* src/Login/App.svelte generated by Svelte v3.2.1 */ + + const file$9 = "src/Login/App.svelte"; + + // (105:6) {#if loading} + function create_if_block_3$2(ctx) { + var div2, div1, div0; + + return { + c: function create() { + div2 = internal_13("div"); + div1 = internal_13("div"); + div0 = internal_13("div"); + div0.className = "loader"; + internal_87(div0, file$9, 107, 12, 2332); + div1.className = "loader_box"; + internal_87(div1, file$9, 106, 9, 2295); + div2.className = "loader_container svelte-1ckcw4k"; + internal_87(div2, file$9, 105, 6, 2255); + }, + + m: function mount(target, anchor) { + internal_7(target, div2, anchor); + internal_6(div2, div1); + internal_6(div1, div0); + }, + + d: function destroy(detaching) { + if (detaching) { + internal_8(div2); + } + } + }; + } + + // (117:46) + function create_if_block_2$2(ctx) { + var current; + + var twofactor = new Twofactor({ + props: { + finish: ctx.afterTwoFactor, + setLoading: ctx.func_1 + }, + $$inline: true + }); + + return { + c: function create() { + twofactor.$$.fragment.c(); + }, + + m: function mount(target, anchor) { + internal_101(twofactor, target, anchor); + current = true; + }, + + p: function update(changed, ctx) { + var twofactor_changes = {}; + if (changed.afterTwoFactor) twofactor_changes.finish = ctx.afterTwoFactor; + twofactor.$set(twofactor_changes); + }, + + i: function intro(local) { + if (current) return; + twofactor.$$.fragment.i(local); + + current = true; + }, + + o: function outro(local) { + twofactor.$$.fragment.o(local); + current = false; + }, + + d: function destroy(detaching) { + twofactor.$destroy(detaching); + } + }; + } + + // (115:48) + function create_if_block_1$2(ctx) { + var current; + + var credentials = new Credentials({ + props: { + next: ctx.afterCredentials, + setLoading: ctx.func + }, + $$inline: true + }); + + return { + c: function create() { + credentials.$$.fragment.c(); + }, + + m: function mount(target, anchor) { + internal_101(credentials, target, anchor); + current = true; + }, + + p: function update(changed, ctx) { + var credentials_changes = {}; + if (changed.afterCredentials) credentials_changes.next = ctx.afterCredentials; + credentials.$set(credentials_changes); + }, + + i: function intro(local) { + if (current) return; + credentials.$$.fragment.i(local); + + current = true; + }, + + o: function outro(local) { + credentials.$$.fragment.o(local); + current = false; + }, + + d: function destroy(detaching) { + credentials.$destroy(detaching); + } + }; + } + + // (113:9) {#if state === states.redirect} + function create_if_block$3(ctx) { + var current; + + var redirect = new Redirect({ $$inline: true }); + + return { + c: function create() { + redirect.$$.fragment.c(); + }, + + m: function mount(target, anchor) { + internal_101(redirect, target, anchor); + current = true; + }, + + p: internal_83, + + i: function intro(local) { + if (current) return; + redirect.$$.fragment.i(local); + + current = true; + }, + + o: function outro(local) { + redirect.$$.fragment.o(local); + current = false; + }, + + d: function destroy(detaching) { + redirect.$destroy(detaching); + } + }; + } + + function create_fragment$9(ctx) { + var div2, form, div0, h1, t1, t2, div1, current_block_type_index, if_block1, t3, footer, p, t4, t5, current; + + var if_block0 = (ctx.loading) && create_if_block_3$2(ctx); + + var if_block_creators = [ + create_if_block$3, + create_if_block_1$2, + create_if_block_2$2 + ]; + + var if_blocks = []; + + function select_block_type(ctx) { + if (ctx.state === ctx.states.redirect) return 0; + if (ctx.state === ctx.states.credentials) return 1; + if (ctx.state === ctx.states.twofactor) return 2; + return -1; + } + + if (~(current_block_type_index = select_block_type(ctx))) { + if_block1 = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx); + } + + return { + c: function create() { + div2 = internal_13("div"); + form = internal_13("form"); + div0 = internal_13("div"); + h1 = internal_13("h1"); + h1.textContent = "Login"; + t1 = internal_17(); + if (if_block0) if_block0.c(); + t2 = internal_17(); + div1 = internal_13("div"); + if (if_block1) if_block1.c(); + t3 = internal_17(); + footer = internal_13("footer"); + p = internal_13("p"); + t4 = internal_16("Powered by "); + t5 = internal_16(appname); + internal_87(h1, file$9, 102, 9, 2201); + div0.className = "card title-container svelte-1ckcw4k"; + internal_87(div0, file$9, 101, 6, 2157); + div1.className = "container svelte-1ckcw4k"; + internal_40(div1, "loading_container", ctx.loading); + internal_87(div1, file$9, 111, 6, 2406); + form.action = "JavaScript:void(0)"; + form.className = "card svelte-1ckcw4k"; + internal_87(form, file$9, 100, 3, 2103); + div2.className = "form-container svelte-1ckcw4k"; + internal_87(div2, file$9, 99, 0, 2071); + internal_87(p, file$9, 123, 1, 2843); + footer.className = "svelte-1ckcw4k"; + internal_87(footer, file$9, 122, 0, 2833); + }, + + l: function claim(nodes) { + throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); + }, + + m: function mount(target, anchor) { + internal_7(target, div2, anchor); + internal_6(div2, form); + internal_6(form, div0); + internal_6(div0, h1); + internal_6(form, t1); + if (if_block0) if_block0.m(form, null); + internal_6(form, t2); + internal_6(form, div1); + if (~current_block_type_index) if_blocks[current_block_type_index].m(div1, null); + internal_7(target, t3, anchor); + internal_7(target, footer, anchor); + internal_6(footer, p); + internal_6(p, t4); + internal_6(p, t5); + current = true; + }, + + p: function update(changed, ctx) { + if (ctx.loading) { + if (!if_block0) { + if_block0 = create_if_block_3$2(ctx); + if_block0.c(); + if_block0.m(form, t2); + } + } else if (if_block0) { + if_block0.d(1); + if_block0 = null; + } + + var previous_block_index = current_block_type_index; + current_block_type_index = select_block_type(ctx); + if (current_block_type_index === previous_block_index) { + if (~current_block_type_index) if_blocks[current_block_type_index].p(changed, ctx); + } else { + if (if_block1) { + internal_77(); + internal_79(() => { + if_blocks[previous_block_index].d(1); + if_blocks[previous_block_index] = null; + }); + if_block1.o(1); + internal_78(); + } + + if (~current_block_type_index) { + if_block1 = if_blocks[current_block_type_index]; + if (!if_block1) { + if_block1 = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx); + if_block1.c(); + } + if_block1.i(1); + if_block1.m(div1, null); + } else { + if_block1 = null; + } + } + + if (changed.loading) { + internal_40(div1, "loading_container", ctx.loading); + } + }, + + i: function intro(local) { + if (current) return; + if (if_block1) if_block1.i(); + current = true; + }, + + o: function outro(local) { + if (if_block1) if_block1.o(); + current = false; + }, + + d: function destroy(detaching) { + if (detaching) { + internal_8(div2); + } + + if (if_block0) if_block0.d(); + if (~current_block_type_index) if_blocks[current_block_type_index].d(); + + if (detaching) { + internal_8(t3); + internal_8(footer); + } + } + }; + } + + const appname = "OpenAuth"; + + function instance$9($$self, $$props, $$invalidate) { + + + const states = { + credentials: 1, + twofactor: 3, + redirect: 4 + }; + + let username = Api.getUsername(); + + let loading = false; + let state = states.credentials; + + function getButtonText(state) { + switch (state) { + case states.username: + return "Next"; + case states.password: + return "Login"; + default: + return ""; + } + } + + function startRedirect() { + $$invalidate('state', state = states.redirect); + // Show message to User and then redirect + setTimeout(() => Api.finish(), 2000); + } + + function afterCredentials() { + + if (Api.twofactor) { + $$invalidate('state', state = states.twofactor); + } else { + startRedirect(); + } + } + + function afterTwoFactor() { + startRedirect(); + } + + function func(s) { + const $$result = loading = s; + $$invalidate('loading', loading); + return $$result; + } + + function func_1(s) { + const $$result = loading = s; + $$invalidate('loading', loading); + return $$result; + } + + let btnText; + + $$self.$$.update = ($$dirty = { state: 1 }) => { + if ($$dirty.state) { $$invalidate('btnText', btnText = getButtonText(state)); } + }; + + return { + states, + loading, + state, + afterCredentials, + afterTwoFactor, + func, + func_1 + }; + } + + class App extends internal_104 { + constructor(options) { + super(options); + internal_102(this, options, instance$9, create_fragment$9, internal_92, []); + } + } + + var app = new App({ + target: document.getElementById("content") + }); + + return app; + +}()); +//# sourceMappingURL=bundle.js.map diff --git a/public/login/bundle.js.map b/public/login/bundle.js.map new file mode 100644 index 0000000..bb999ae --- /dev/null +++ b/public/login/bundle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bundle.js","sources":["../../node_modules/svelte/internal.js","../../src/cookie.ts","../../src/request.ts","../../src/sha512.js","../../src/Login/api.ts","../../src/Login/Credentials.svelte","../../node_modules/svelte/index.js","../../src/Login/Redirect.svelte","../../src/Login/icons/Icon.svelte","../../src/Login/twofactors/toList.svelte","../../src/cleave.js","../../src/Login/twofactors/codeInput.svelte","../../src/Login/twofactors/otc.svelte","../../src/Login/twofactors/push.svelte","../../src/Login/twofactors/u2f.svelte","../../src/Login/Twofactor.svelte","../../src/Login/App.svelte","../../src/Login/main.js"],"sourcesContent":["'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction noop() {}\n\nconst identity = x => x;\n\nfunction assign(tar, src) {\n\tfor (const k in src) tar[k] = src[k];\n\treturn tar;\n}\n\nfunction is_promise(value) {\n\treturn value && typeof value.then === 'function';\n}\n\nfunction add_location(element, file, line, column, char) {\n\telement.__svelte_meta = {\n\t\tloc: { file, line, column, char }\n\t};\n}\n\nfunction run(fn) {\n\treturn fn();\n}\n\nfunction blank_object() {\n\treturn Object.create(null);\n}\n\nfunction run_all(fns) {\n\tfns.forEach(run);\n}\n\nfunction is_function(thing) {\n\treturn typeof thing === 'function';\n}\n\nfunction safe_not_equal(a, b) {\n\treturn a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function');\n}\n\nfunction not_equal(a, b) {\n\treturn a != a ? b == b : a !== b;\n}\n\nfunction validate_store(store, name) {\n\tif (!store || typeof store.subscribe !== 'function') {\n\t\tthrow new Error(`'${name}' is not a store with a 'subscribe' method`);\n\t}\n}\n\nfunction subscribe(component, store, callback) {\n\tconst unsub = store.subscribe(callback);\n\n\tcomponent.$$.on_destroy.push(unsub.unsubscribe\n\t\t? () => unsub.unsubscribe()\n\t\t: unsub);\n}\n\nfunction create_slot(definition, ctx, fn) {\n\tif (definition) {\n\t\tconst slot_ctx = get_slot_context(definition, ctx, fn);\n\t\treturn definition[0](slot_ctx);\n\t}\n}\n\nfunction get_slot_context(definition, ctx, fn) {\n\treturn definition[1]\n\t\t? assign({}, assign(ctx.$$scope.ctx, definition[1](fn ? fn(ctx) : {})))\n\t\t: ctx.$$scope.ctx;\n}\n\nfunction get_slot_changes(definition, ctx, changed, fn) {\n\treturn definition[1]\n\t\t? assign({}, assign(ctx.$$scope.changed || {}, definition[1](fn ? fn(changed) : {})))\n\t\t: ctx.$$scope.changed || {};\n}\n\nfunction exclude_internal_props(props) {\n\tconst result = {};\n\tfor (const k in props) if (k[0] !== '$') result[k] = props[k];\n\treturn result;\n}\n\nconst tasks = new Set();\nlet running = false;\n\nfunction run_tasks() {\n\ttasks.forEach(task => {\n\t\tif (!task[0](window.performance.now())) {\n\t\t\ttasks.delete(task);\n\t\t\ttask[1]();\n\t\t}\n\t});\n\n\trunning = tasks.size > 0;\n\tif (running) requestAnimationFrame(run_tasks);\n}\n\nfunction clear_loops() {\n\t// for testing...\n\ttasks.forEach(task => tasks.delete(task));\n\trunning = false;\n}\n\nfunction loop(fn) {\n\tlet task;\n\n\tif (!running) {\n\t\trunning = true;\n\t\trequestAnimationFrame(run_tasks);\n\t}\n\n\treturn {\n\t\tpromise: new Promise(fulfil => {\n\t\t\ttasks.add(task = [fn, fulfil]);\n\t\t}),\n\t\tabort() {\n\t\t\ttasks.delete(task);\n\t\t}\n\t};\n}\n\nfunction append(target, node) {\n\ttarget.appendChild(node);\n}\n\nfunction insert(target, node, anchor) {\n\ttarget.insertBefore(node, anchor || null);\n}\n\nfunction detach(node) {\n\tnode.parentNode.removeChild(node);\n}\n\nfunction detach_between(before, after) {\n\twhile (before.nextSibling && before.nextSibling !== after) {\n\t\tbefore.parentNode.removeChild(before.nextSibling);\n\t}\n}\n\nfunction detach_before(after) {\n\twhile (after.previousSibling) {\n\t\tafter.parentNode.removeChild(after.previousSibling);\n\t}\n}\n\nfunction detach_after(before) {\n\twhile (before.nextSibling) {\n\t\tbefore.parentNode.removeChild(before.nextSibling);\n\t}\n}\n\nfunction destroy_each(iterations, detaching) {\n\tfor (let i = 0; i < iterations.length; i += 1) {\n\t\tif (iterations[i]) iterations[i].d(detaching);\n\t}\n}\n\nfunction element(name) {\n\treturn document.createElement(name);\n}\n\nfunction object_without_properties(obj, exclude) {\n\tconst target = {};\n\tfor (const k in obj) {\n\t\tif (Object.prototype.hasOwnProperty.call(obj, k) && exclude.indexOf(k) === -1) {\n\t\t\ttarget[k] = obj[k];\n\t\t}\n\t}\n\treturn target;\n}\n\nfunction svg_element(name) {\n\treturn document.createElementNS('http://www.w3.org/2000/svg', name);\n}\n\nfunction text(data) {\n\treturn document.createTextNode(data);\n}\n\nfunction space() {\n\treturn text(' ');\n}\n\nfunction empty() {\n\treturn text('');\n}\n\nfunction listen(node, event, handler, options) {\n\tnode.addEventListener(event, handler, options);\n\treturn () => node.removeEventListener(event, handler, options);\n}\n\nfunction prevent_default(fn) {\n\treturn function(event) {\n\t\tevent.preventDefault();\n\t\treturn fn.call(this, event);\n\t};\n}\n\nfunction stop_propagation(fn) {\n\treturn function(event) {\n\t\tevent.stopPropagation();\n\t\treturn fn.call(this, event);\n\t};\n}\n\nfunction attr(node, attribute, value) {\n\tif (value == null) node.removeAttribute(attribute);\n\telse node.setAttribute(attribute, value);\n}\n\nfunction set_attributes(node, attributes) {\n\tfor (const key in attributes) {\n\t\tif (key === 'style') {\n\t\t\tnode.style.cssText = attributes[key];\n\t\t} else if (key in node) {\n\t\t\tnode[key] = attributes[key];\n\t\t} else {\n\t\t\tattr(node, key, attributes[key]);\n\t\t}\n\t}\n}\n\nfunction set_custom_element_data(node, prop, value) {\n\tif (prop in node) {\n\t\tnode[prop] = value;\n\t} else {\n\t\tattr(node, prop, value);\n\t}\n}\n\nfunction xlink_attr(node, attribute, value) {\n\tnode.setAttributeNS('http://www.w3.org/1999/xlink', attribute, value);\n}\n\nfunction get_binding_group_value(group) {\n\tconst value = [];\n\tfor (let i = 0; i < group.length; i += 1) {\n\t\tif (group[i].checked) value.push(group[i].__value);\n\t}\n\treturn value;\n}\n\nfunction to_number(value) {\n\treturn value === '' ? undefined : +value;\n}\n\nfunction time_ranges_to_array(ranges) {\n\tconst array = [];\n\tfor (let i = 0; i < ranges.length; i += 1) {\n\t\tarray.push({ start: ranges.start(i), end: ranges.end(i) });\n\t}\n\treturn array;\n}\n\nfunction children(element) {\n\treturn Array.from(element.childNodes);\n}\n\nfunction claim_element(nodes, name, attributes, svg) {\n\tfor (let i = 0; i < nodes.length; i += 1) {\n\t\tconst node = nodes[i];\n\t\tif (node.nodeName === name) {\n\t\t\tfor (let j = 0; j < node.attributes.length; j += 1) {\n\t\t\t\tconst attribute = node.attributes[j];\n\t\t\t\tif (!attributes[attribute.name]) node.removeAttribute(attribute.name);\n\t\t\t}\n\t\t\treturn nodes.splice(i, 1)[0]; // TODO strip unwanted attributes\n\t\t}\n\t}\n\n\treturn svg ? svg_element(name) : element(name);\n}\n\nfunction claim_text(nodes, data) {\n\tfor (let i = 0; i < nodes.length; i += 1) {\n\t\tconst node = nodes[i];\n\t\tif (node.nodeType === 3) {\n\t\t\tnode.data = data;\n\t\t\treturn nodes.splice(i, 1)[0];\n\t\t}\n\t}\n\n\treturn text(data);\n}\n\nfunction set_data(text, data) {\n\tdata = '' + data;\n\tif (text.data !== data) text.data = data;\n}\n\nfunction set_input_type(input, type) {\n\ttry {\n\t\tinput.type = type;\n\t} catch (e) {\n\t\t// do nothing\n\t}\n}\n\nfunction set_style(node, key, value) {\n\tnode.style.setProperty(key, value);\n}\n\nfunction select_option(select, value) {\n\tfor (let i = 0; i < select.options.length; i += 1) {\n\t\tconst option = select.options[i];\n\n\t\tif (option.__value === value) {\n\t\t\toption.selected = true;\n\t\t\treturn;\n\t\t}\n\t}\n}\n\nfunction select_options(select, value) {\n\tfor (let i = 0; i < select.options.length; i += 1) {\n\t\tconst option = select.options[i];\n\t\toption.selected = ~value.indexOf(option.__value);\n\t}\n}\n\nfunction select_value(select) {\n\tconst selected_option = select.querySelector(':checked') || select.options[0];\n\treturn selected_option && selected_option.__value;\n}\n\nfunction select_multiple_value(select) {\n\treturn [].map.call(select.querySelectorAll(':checked'), option => option.__value);\n}\n\nfunction add_resize_listener(element, fn) {\n\tif (getComputedStyle(element).position === 'static') {\n\t\telement.style.position = 'relative';\n\t}\n\n\tconst object = document.createElement('object');\n\tobject.setAttribute('style', 'display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; pointer-events: none; z-index: -1;');\n\tobject.type = 'text/html';\n\n\tlet win;\n\n\tobject.onload = () => {\n\t\twin = object.contentDocument.defaultView;\n\t\twin.addEventListener('resize', fn);\n\t};\n\n\tif (/Trident/.test(navigator.userAgent)) {\n\t\telement.appendChild(object);\n\t\tobject.data = 'about:blank';\n\t} else {\n\t\tobject.data = 'about:blank';\n\t\telement.appendChild(object);\n\t}\n\n\treturn {\n\t\tcancel: () => {\n\t\t\twin && win.removeEventListener && win.removeEventListener('resize', fn);\n\t\t\telement.removeChild(object);\n\t\t}\n\t};\n}\n\nfunction toggle_class(element, name, toggle) {\n\telement.classList[toggle ? 'add' : 'remove'](name);\n}\n\nfunction custom_event(type, detail) {\n\tconst e = document.createEvent('CustomEvent');\n\te.initCustomEvent(type, false, false, detail);\n\treturn e;\n}\n\nlet stylesheet;\nlet active = 0;\nlet current_rules = {};\n\n// https://github.com/darkskyapp/string-hash/blob/master/index.js\nfunction hash(str) {\n\tlet hash = 5381;\n\tlet i = str.length;\n\n\twhile (i--) hash = ((hash << 5) - hash) ^ str.charCodeAt(i);\n\treturn hash >>> 0;\n}\n\nfunction create_rule(node, a, b, duration, delay, ease, fn, uid = 0) {\n\tconst step = 16.666 / duration;\n\tlet keyframes = '{\\n';\n\n\tfor (let p = 0; p <= 1; p += step) {\n\t\tconst t = a + (b - a) * ease(p);\n\t\tkeyframes += p * 100 + `%{${fn(t, 1 - t)}}\\n`;\n\t}\n\n\tconst rule = keyframes + `100% {${fn(b, 1 - b)}}\\n}`;\n\tconst name = `__svelte_${hash(rule)}_${uid}`;\n\n\tif (!current_rules[name]) {\n\t\tif (!stylesheet) {\n\t\t\tconst style = element('style');\n\t\t\tdocument.head.appendChild(style);\n\t\t\tstylesheet = style.sheet;\n\t\t}\n\n\t\tcurrent_rules[name] = true;\n\t\tstylesheet.insertRule(`@keyframes ${name} ${rule}`, stylesheet.cssRules.length);\n\t}\n\n\tconst animation = node.style.animation || '';\n\tnode.style.animation = `${animation ? `${animation}, ` : ``}${name} ${duration}ms linear ${delay}ms 1 both`;\n\n\tactive += 1;\n\treturn name;\n}\n\nfunction delete_rule(node, name) {\n\tnode.style.animation = (node.style.animation || '')\n\t\t.split(', ')\n\t\t.filter(name\n\t\t\t? anim => anim.indexOf(name) < 0 // remove specific animation\n\t\t\t: anim => anim.indexOf('__svelte') === -1 // remove all Svelte animations\n\t\t)\n\t\t.join(', ');\n\n\tif (name && !--active) clear_rules();\n}\n\nfunction clear_rules() {\n\trequestAnimationFrame(() => {\n\t\tif (active) return;\n\t\tlet i = stylesheet.cssRules.length;\n\t\twhile (i--) stylesheet.deleteRule(i);\n\t\tcurrent_rules = {};\n\t});\n}\n\nfunction create_animation(node, from, fn, params) {\n\tif (!from) return noop;\n\n\tconst to = node.getBoundingClientRect();\n\tif (from.left === to.left && from.right === to.right && from.top === to.top && from.bottom === to.bottom) return noop;\n\n\tconst {\n\t\tdelay = 0,\n\t\tduration = 300,\n\t\teasing = identity,\n\t\tstart: start_time = window.performance.now() + delay,\n\t\tend = start_time + duration,\n\t\ttick = noop,\n\t\tcss\n\t} = fn(node, { from, to }, params);\n\n\tlet running = true;\n\tlet started = false;\n\tlet name;\n\n\tconst css_text = node.style.cssText;\n\n\tfunction start() {\n\t\tif (css) {\n\t\t\tif (delay) node.style.cssText = css_text; // TODO create delayed animation instead?\n\t\t\tname = create_rule(node, 0, 1, duration, 0, easing, css);\n\t\t}\n\n\t\tstarted = true;\n\t}\n\n\tfunction stop() {\n\t\tif (css) delete_rule(node, name);\n\t\trunning = false;\n\t}\n\n\tloop(now => {\n\t\tif (!started && now >= start_time) {\n\t\t\tstart();\n\t\t}\n\n\t\tif (started && now >= end) {\n\t\t\ttick(1, 0);\n\t\t\tstop();\n\t\t}\n\n\t\tif (!running) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (started) {\n\t\t\tconst p = now - start_time;\n\t\t\tconst t = 0 + 1 * easing(p / duration);\n\t\t\ttick(t, 1 - t);\n\t\t}\n\n\t\treturn true;\n\t});\n\n\tif (delay) {\n\t\tif (css) node.style.cssText += css(0, 1);\n\t} else {\n\t\tstart();\n\t}\n\n\ttick(0, 1);\n\n\treturn stop;\n}\n\nfunction fix_position(node) {\n\tconst style = getComputedStyle(node);\n\n\tif (style.position !== 'absolute' && style.position !== 'fixed') {\n\t\tconst { width, height } = style;\n\t\tconst a = node.getBoundingClientRect();\n\t\tnode.style.position = 'absolute';\n\t\tnode.style.width = width;\n\t\tnode.style.height = height;\n\t\tconst b = node.getBoundingClientRect();\n\n\t\tif (a.left !== b.left || a.top !== b.top) {\n\t\t\tconst style = getComputedStyle(node);\n\t\t\tconst transform = style.transform === 'none' ? '' : style.transform;\n\n\t\t\tnode.style.transform = `${transform} translate(${a.left - b.left}px, ${a.top - b.top}px)`;\n\t\t}\n\t}\n}\n\nfunction set_current_component(component) {\n\texports.current_component = component;\n}\n\nfunction get_current_component() {\n\tif (!exports.current_component) throw new Error(`Function called outside component initialization`);\n\treturn exports.current_component;\n}\n\nfunction beforeUpdate(fn) {\n\tget_current_component().$$.before_render.push(fn);\n}\n\nfunction onMount(fn) {\n\tget_current_component().$$.on_mount.push(fn);\n}\n\nfunction afterUpdate(fn) {\n\tget_current_component().$$.after_render.push(fn);\n}\n\nfunction onDestroy(fn) {\n\tget_current_component().$$.on_destroy.push(fn);\n}\n\nfunction createEventDispatcher() {\n\tconst component = exports.current_component;\n\n\treturn (type, detail) => {\n\t\tconst callbacks = component.$$.callbacks[type];\n\n\t\tif (callbacks) {\n\t\t\t// TODO are there situations where events could be dispatched\n\t\t\t// in a server (non-DOM) environment?\n\t\t\tconst event = custom_event(type, detail);\n\t\t\tcallbacks.slice().forEach(fn => {\n\t\t\t\tfn.call(component, event);\n\t\t\t});\n\t\t}\n\t};\n}\n\nfunction setContext(key, context) {\n\tget_current_component().$$.context.set(key, context);\n}\n\nfunction getContext(key) {\n\treturn get_current_component().$$.context.get(key);\n}\n\n// TODO figure out if we still want to support\n// shorthand events, or if we want to implement\n// a real bubbling mechanism\nfunction bubble(component, event) {\n\tconst callbacks = component.$$.callbacks[event.type];\n\n\tif (callbacks) {\n\t\tcallbacks.slice().forEach(fn => fn(event));\n\t}\n}\n\nconst dirty_components = [];\nconst intros = { enabled: false };\n\nconst resolved_promise = Promise.resolve();\nlet update_scheduled = false;\nconst binding_callbacks = [];\nconst render_callbacks = [];\nconst flush_callbacks = [];\n\nfunction schedule_update() {\n\tif (!update_scheduled) {\n\t\tupdate_scheduled = true;\n\t\tresolved_promise.then(flush);\n\t}\n}\n\nfunction tick() {\n\tschedule_update();\n\treturn resolved_promise;\n}\n\nfunction add_binding_callback(fn) {\n\tbinding_callbacks.push(fn);\n}\n\nfunction add_render_callback(fn) {\n\trender_callbacks.push(fn);\n}\n\nfunction add_flush_callback(fn) {\n\tflush_callbacks.push(fn);\n}\n\nfunction flush() {\n\tconst seen_callbacks = new Set();\n\n\tdo {\n\t\t// first, call beforeUpdate functions\n\t\t// and update components\n\t\twhile (dirty_components.length) {\n\t\t\tconst component = dirty_components.shift();\n\t\t\tset_current_component(component);\n\t\t\tupdate(component.$$);\n\t\t}\n\n\t\twhile (binding_callbacks.length) binding_callbacks.shift()();\n\n\t\t// then, once components are updated, call\n\t\t// afterUpdate functions. This may cause\n\t\t// subsequent updates...\n\t\twhile (render_callbacks.length) {\n\t\t\tconst callback = render_callbacks.pop();\n\t\t\tif (!seen_callbacks.has(callback)) {\n\t\t\t\tcallback();\n\n\t\t\t\t// ...so guard against infinite loops\n\t\t\t\tseen_callbacks.add(callback);\n\t\t\t}\n\t\t}\n\t} while (dirty_components.length);\n\n\twhile (flush_callbacks.length) {\n\t\tflush_callbacks.pop()();\n\t}\n\n\tupdate_scheduled = false;\n}\n\nfunction update($$) {\n\tif ($$.fragment) {\n\t\t$$.update($$.dirty);\n\t\trun_all($$.before_render);\n\t\t$$.fragment.p($$.dirty, $$.ctx);\n\t\t$$.dirty = null;\n\n\t\t$$.after_render.forEach(add_render_callback);\n\t}\n}\n\nlet promise;\n\nfunction wait() {\n\tif (!promise) {\n\t\tpromise = Promise.resolve();\n\t\tpromise.then(() => {\n\t\t\tpromise = null;\n\t\t});\n\t}\n\n\treturn promise;\n}\n\nfunction dispatch(node, direction, kind) {\n\tnode.dispatchEvent(custom_event(`${direction ? 'intro' : 'outro'}${kind}`));\n}\n\nlet outros;\n\nfunction group_outros() {\n\toutros = {\n\t\tremaining: 0,\n\t\tcallbacks: []\n\t};\n}\n\nfunction check_outros() {\n\tif (!outros.remaining) {\n\t\trun_all(outros.callbacks);\n\t}\n}\n\nfunction on_outro(callback) {\n\toutros.callbacks.push(callback);\n}\n\nfunction create_in_transition(node, fn, params) {\n\tlet config = fn(node, params);\n\tlet running = false;\n\tlet animation_name;\n\tlet task;\n\tlet uid = 0;\n\n\tfunction cleanup() {\n\t\tif (animation_name) delete_rule(node, animation_name);\n\t}\n\n\tfunction go() {\n\t\tconst {\n\t\t\tdelay = 0,\n\t\t\tduration = 300,\n\t\t\teasing = identity,\n\t\t\ttick: tick$$1 = noop,\n\t\t\tcss\n\t\t} = config;\n\n\t\tif (css) animation_name = create_rule(node, 0, 1, duration, delay, easing, css, uid++);\n\t\ttick$$1(0, 1);\n\n\t\tconst start_time = window.performance.now() + delay;\n\t\tconst end_time = start_time + duration;\n\n\t\tif (task) task.abort();\n\t\trunning = true;\n\n\t\ttask = loop(now => {\n\t\t\tif (running) {\n\t\t\t\tif (now >= end_time) {\n\t\t\t\t\ttick$$1(1, 0);\n\t\t\t\t\tcleanup();\n\t\t\t\t\treturn running = false;\n\t\t\t\t}\n\n\t\t\t\tif (now >= start_time) {\n\t\t\t\t\tconst t = easing((now - start_time) / duration);\n\t\t\t\t\ttick$$1(t, 1 - t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn running;\n\t\t});\n\t}\n\n\tlet started = false;\n\n\treturn {\n\t\tstart() {\n\t\t\tif (started) return;\n\n\t\t\tdelete_rule(node);\n\n\t\t\tif (typeof config === 'function') {\n\t\t\t\tconfig = config();\n\t\t\t\twait().then(go);\n\t\t\t} else {\n\t\t\t\tgo();\n\t\t\t}\n\t\t},\n\n\t\tinvalidate() {\n\t\t\tstarted = false;\n\t\t},\n\n\t\tend() {\n\t\t\tif (running) {\n\t\t\t\tcleanup();\n\t\t\t\trunning = false;\n\t\t\t}\n\t\t}\n\t};\n}\n\nfunction create_out_transition(node, fn, params) {\n\tlet config = fn(node, params);\n\tlet running = true;\n\tlet animation_name;\n\n\tconst group = outros;\n\n\tgroup.remaining += 1;\n\n\tfunction go() {\n\t\tconst {\n\t\t\tdelay = 0,\n\t\t\tduration = 300,\n\t\t\teasing = identity,\n\t\t\ttick: tick$$1 = noop,\n\t\t\tcss\n\t\t} = config;\n\n\t\tif (css) animation_name = create_rule(node, 1, 0, duration, delay, easing, css);\n\n\t\tconst start_time = window.performance.now() + delay;\n\t\tconst end_time = start_time + duration;\n\n\t\tloop(now => {\n\t\t\tif (running) {\n\t\t\t\tif (now >= end_time) {\n\t\t\t\t\ttick$$1(0, 1);\n\n\t\t\t\t\tif (!--group.remaining) {\n\t\t\t\t\t\t// this will result in `end()` being called,\n\t\t\t\t\t\t// so we don't need to clean up here\n\t\t\t\t\t\trun_all(group.callbacks);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tif (now >= start_time) {\n\t\t\t\t\tconst t = easing((now - start_time) / duration);\n\t\t\t\t\ttick$$1(1 - t, t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn running;\n\t\t});\n\t}\n\n\tif (typeof config === 'function') {\n\t\twait().then(() => {\n\t\t\tconfig = config();\n\t\t\tgo();\n\t\t});\n\t} else {\n\t\tgo();\n\t}\n\n\treturn {\n\t\tend(reset) {\n\t\t\tif (reset && config.tick) {\n\t\t\t\tconfig.tick(1, 0);\n\t\t\t}\n\n\t\t\tif (running) {\n\t\t\t\tif (animation_name) delete_rule(node, animation_name);\n\t\t\t\trunning = false;\n\t\t\t}\n\t\t}\n\t};\n}\n\nfunction create_bidirectional_transition(node, fn, params, intro) {\n\tlet config = fn(node, params);\n\n\tlet t = intro ? 0 : 1;\n\n\tlet running_program = null;\n\tlet pending_program = null;\n\tlet animation_name = null;\n\n\tfunction clear_animation() {\n\t\tif (animation_name) delete_rule(node, animation_name);\n\t}\n\n\tfunction init(program, duration) {\n\t\tconst d = program.b - t;\n\t\tduration *= Math.abs(d);\n\n\t\treturn {\n\t\t\ta: t,\n\t\t\tb: program.b,\n\t\t\td,\n\t\t\tduration,\n\t\t\tstart: program.start,\n\t\t\tend: program.start + duration,\n\t\t\tgroup: program.group\n\t\t};\n\t}\n\n\tfunction go(b) {\n\t\tconst {\n\t\t\tdelay = 0,\n\t\t\tduration = 300,\n\t\t\teasing = identity,\n\t\t\ttick: tick$$1 = noop,\n\t\t\tcss\n\t\t} = config;\n\n\t\tconst program = {\n\t\t\tstart: window.performance.now() + delay,\n\t\t\tb\n\t\t};\n\n\t\tif (!b) {\n\t\t\tprogram.group = outros;\n\t\t\toutros.remaining += 1;\n\t\t}\n\n\t\tif (running_program) {\n\t\t\tpending_program = program;\n\t\t} else {\n\t\t\t// if this is an intro, and there's a delay, we need to do\n\t\t\t// an initial tick and/or apply CSS animation immediately\n\t\t\tif (css) {\n\t\t\t\tclear_animation();\n\t\t\t\tanimation_name = create_rule(node, t, b, duration, delay, easing, css);\n\t\t\t}\n\n\t\t\tif (b) tick$$1(0, 1);\n\n\t\t\trunning_program = init(program, duration);\n\t\t\tadd_render_callback(() => dispatch(node, b, 'start'));\n\n\t\t\tloop(now => {\n\t\t\t\tif (pending_program && now > pending_program.start) {\n\t\t\t\t\trunning_program = init(pending_program, duration);\n\t\t\t\t\tpending_program = null;\n\n\t\t\t\t\tdispatch(node, running_program.b, 'start');\n\n\t\t\t\t\tif (css) {\n\t\t\t\t\t\tclear_animation();\n\t\t\t\t\t\tanimation_name = create_rule(node, t, running_program.b, running_program.duration, 0, easing, config.css);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (running_program) {\n\t\t\t\t\tif (now >= running_program.end) {\n\t\t\t\t\t\ttick$$1(t = running_program.b, 1 - t);\n\t\t\t\t\t\tdispatch(node, running_program.b, 'end');\n\n\t\t\t\t\t\tif (!pending_program) {\n\t\t\t\t\t\t\t// we're done\n\t\t\t\t\t\t\tif (running_program.b) {\n\t\t\t\t\t\t\t\t// intro — we can tidy up immediately\n\t\t\t\t\t\t\t\tclear_animation();\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t// outro — needs to be coordinated\n\t\t\t\t\t\t\t\tif (!--running_program.group.remaining) run_all(running_program.group.callbacks);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\trunning_program = null;\n\t\t\t\t\t}\n\n\t\t\t\t\telse if (now >= running_program.start) {\n\t\t\t\t\t\tconst p = now - running_program.start;\n\t\t\t\t\t\tt = running_program.a + running_program.d * easing(p / running_program.duration);\n\t\t\t\t\t\ttick$$1(t, 1 - t);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn !!(running_program || pending_program);\n\t\t\t});\n\t\t}\n\t}\n\n\treturn {\n\t\trun(b) {\n\t\t\tif (typeof config === 'function') {\n\t\t\t\twait().then(() => {\n\t\t\t\t\tconfig = config();\n\t\t\t\t\tgo(b);\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tgo(b);\n\t\t\t}\n\t\t},\n\n\t\tend() {\n\t\t\tclear_animation();\n\t\t\trunning_program = pending_program = null;\n\t\t}\n\t};\n}\n\nfunction handle_promise(promise, info) {\n\tconst token = info.token = {};\n\n\tfunction update(type, index, key, value) {\n\t\tif (info.token !== token) return;\n\n\t\tinfo.resolved = key && { [key]: value };\n\n\t\tconst child_ctx = assign(assign({}, info.ctx), info.resolved);\n\t\tconst block = type && (info.current = type)(child_ctx);\n\n\t\tif (info.block) {\n\t\t\tif (info.blocks) {\n\t\t\t\tinfo.blocks.forEach((block, i) => {\n\t\t\t\t\tif (i !== index && block) {\n\t\t\t\t\t\tgroup_outros();\n\t\t\t\t\t\ton_outro(() => {\n\t\t\t\t\t\t\tblock.d(1);\n\t\t\t\t\t\t\tinfo.blocks[i] = null;\n\t\t\t\t\t\t});\n\t\t\t\t\t\tblock.o(1);\n\t\t\t\t\t\tcheck_outros();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tinfo.block.d(1);\n\t\t\t}\n\n\t\t\tblock.c();\n\t\t\tif (block.i) block.i(1);\n\t\t\tblock.m(info.mount(), info.anchor);\n\n\t\t\tflush();\n\t\t}\n\n\t\tinfo.block = block;\n\t\tif (info.blocks) info.blocks[index] = block;\n\t}\n\n\tif (is_promise(promise)) {\n\t\tpromise.then(value => {\n\t\t\tupdate(info.then, 1, info.value, value);\n\t\t}, error => {\n\t\t\tupdate(info.catch, 2, info.error, error);\n\t\t});\n\n\t\t// if we previously had a then/catch block, destroy it\n\t\tif (info.current !== info.pending) {\n\t\t\tupdate(info.pending, 0);\n\t\t\treturn true;\n\t\t}\n\t} else {\n\t\tif (info.current !== info.then) {\n\t\t\tupdate(info.then, 1, info.value, promise);\n\t\t\treturn true;\n\t\t}\n\n\t\tinfo.resolved = { [info.value]: promise };\n\t}\n}\n\nfunction destroy_block(block, lookup) {\n\tblock.d(1);\n\tlookup.delete(block.key);\n}\n\nfunction outro_and_destroy_block(block, lookup) {\n\ton_outro(() => {\n\t\tdestroy_block(block, lookup);\n\t});\n\n\tblock.o(1);\n}\n\nfunction fix_and_outro_and_destroy_block(block, lookup) {\n\tblock.f();\n\toutro_and_destroy_block(block, lookup);\n}\n\nfunction update_keyed_each(old_blocks, changed, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block, next, get_context) {\n\tlet o = old_blocks.length;\n\tlet n = list.length;\n\n\tlet i = o;\n\tconst old_indexes = {};\n\twhile (i--) old_indexes[old_blocks[i].key] = i;\n\n\tconst new_blocks = [];\n\tconst new_lookup = new Map();\n\tconst deltas = new Map();\n\n\ti = n;\n\twhile (i--) {\n\t\tconst child_ctx = get_context(ctx, list, i);\n\t\tconst key = get_key(child_ctx);\n\t\tlet block = lookup.get(key);\n\n\t\tif (!block) {\n\t\t\tblock = create_each_block(key, child_ctx);\n\t\t\tblock.c();\n\t\t} else if (dynamic) {\n\t\t\tblock.p(changed, child_ctx);\n\t\t}\n\n\t\tnew_lookup.set(key, new_blocks[i] = block);\n\n\t\tif (key in old_indexes) deltas.set(key, Math.abs(i - old_indexes[key]));\n\t}\n\n\tconst will_move = new Set();\n\tconst did_move = new Set();\n\n\tfunction insert(block) {\n\t\tif (block.i) block.i(1);\n\t\tblock.m(node, next);\n\t\tlookup.set(block.key, block);\n\t\tnext = block.first;\n\t\tn--;\n\t}\n\n\twhile (o && n) {\n\t\tconst new_block = new_blocks[n - 1];\n\t\tconst old_block = old_blocks[o - 1];\n\t\tconst new_key = new_block.key;\n\t\tconst old_key = old_block.key;\n\n\t\tif (new_block === old_block) {\n\t\t\t// do nothing\n\t\t\tnext = new_block.first;\n\t\t\to--;\n\t\t\tn--;\n\t\t}\n\n\t\telse if (!new_lookup.has(old_key)) {\n\t\t\t// remove old block\n\t\t\tdestroy(old_block, lookup);\n\t\t\to--;\n\t\t}\n\n\t\telse if (!lookup.has(new_key) || will_move.has(new_key)) {\n\t\t\tinsert(new_block);\n\t\t}\n\n\t\telse if (did_move.has(old_key)) {\n\t\t\to--;\n\n\t\t} else if (deltas.get(new_key) > deltas.get(old_key)) {\n\t\t\tdid_move.add(new_key);\n\t\t\tinsert(new_block);\n\n\t\t} else {\n\t\t\twill_move.add(old_key);\n\t\t\to--;\n\t\t}\n\t}\n\n\twhile (o--) {\n\t\tconst old_block = old_blocks[o];\n\t\tif (!new_lookup.has(old_block.key)) destroy(old_block, lookup);\n\t}\n\n\twhile (n) insert(new_blocks[n - 1]);\n\n\treturn new_blocks;\n}\n\nfunction measure(blocks) {\n\tconst rects = {};\n\tlet i = blocks.length;\n\twhile (i--) rects[blocks[i].key] = blocks[i].node.getBoundingClientRect();\n\treturn rects;\n}\n\nfunction get_spread_update(levels, updates) {\n\tconst update = {};\n\n\tconst to_null_out = {};\n\tconst accounted_for = { $$scope: 1 };\n\n\tlet i = levels.length;\n\twhile (i--) {\n\t\tconst o = levels[i];\n\t\tconst n = updates[i];\n\n\t\tif (n) {\n\t\t\tfor (const key in o) {\n\t\t\t\tif (!(key in n)) to_null_out[key] = 1;\n\t\t\t}\n\n\t\t\tfor (const key in n) {\n\t\t\t\tif (!accounted_for[key]) {\n\t\t\t\t\tupdate[key] = n[key];\n\t\t\t\t\taccounted_for[key] = 1;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlevels[i] = n;\n\t\t} else {\n\t\t\tfor (const key in o) {\n\t\t\t\taccounted_for[key] = 1;\n\t\t\t}\n\t\t}\n\t}\n\n\tfor (const key in to_null_out) {\n\t\tif (!(key in update)) update[key] = undefined;\n\t}\n\n\treturn update;\n}\n\nconst invalid_attribute_name_character = /[\\s'\">/=\\u{FDD0}-\\u{FDEF}\\u{FFFE}\\u{FFFF}\\u{1FFFE}\\u{1FFFF}\\u{2FFFE}\\u{2FFFF}\\u{3FFFE}\\u{3FFFF}\\u{4FFFE}\\u{4FFFF}\\u{5FFFE}\\u{5FFFF}\\u{6FFFE}\\u{6FFFF}\\u{7FFFE}\\u{7FFFF}\\u{8FFFE}\\u{8FFFF}\\u{9FFFE}\\u{9FFFF}\\u{AFFFE}\\u{AFFFF}\\u{BFFFE}\\u{BFFFF}\\u{CFFFE}\\u{CFFFF}\\u{DFFFE}\\u{DFFFF}\\u{EFFFE}\\u{EFFFF}\\u{FFFFE}\\u{FFFFF}\\u{10FFFE}\\u{10FFFF}]/u;\n// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n// https://infra.spec.whatwg.org/#noncharacter\n\nfunction spread(args) {\n\tconst attributes = Object.assign({}, ...args);\n\tlet str = '';\n\n\tObject.keys(attributes).forEach(name => {\n\t\tif (invalid_attribute_name_character.test(name)) return;\n\n\t\tconst value = attributes[name];\n\t\tif (value === undefined) return;\n\t\tif (value === true) str += \" \" + name;\n\n\t\tconst escaped = String(value)\n\t\t\t.replace(/\"/g, '"')\n\t\t\t.replace(/'/g, ''');\n\n\t\tstr += \" \" + name + \"=\" + JSON.stringify(escaped);\n\t});\n\n\treturn str;\n}\n\nconst escaped = {\n\t'\"': '"',\n\t\"'\": ''',\n\t'&': '&',\n\t'<': '<',\n\t'>': '>'\n};\n\nfunction escape(html) {\n\treturn String(html).replace(/[\"'&<>]/g, match => escaped[match]);\n}\n\nfunction each(items, fn) {\n\tlet str = '';\n\tfor (let i = 0; i < items.length; i += 1) {\n\t\tstr += fn(items[i], i);\n\t}\n\treturn str;\n}\n\nconst missing_component = {\n\t$$render: () => ''\n};\n\nfunction validate_component(component, name) {\n\tif (!component || !component.$$render) {\n\t\tif (name === 'svelte:component') name += ' this={...}';\n\t\tthrow new Error(`<${name}> is not a valid SSR component. You may need to review your build config to ensure that dependencies are compiled, rather than imported as pre-compiled modules`);\n\t}\n\n\treturn component;\n}\n\nfunction debug(file, line, column, values) {\n\tconsole.log(`{@debug} ${file ? file + ' ' : ''}(${line}:${column})`); // eslint-disable-line no-console\n\tconsole.log(values); // eslint-disable-line no-console\n\treturn '';\n}\n\nlet on_destroy;\n\nfunction create_ssr_component(fn) {\n\tfunction $$render(result, props, bindings, slots) {\n\t\tconst parent_component = exports.current_component;\n\n\t\tconst $$ = {\n\t\t\ton_destroy,\n\t\t\tcontext: new Map(parent_component ? parent_component.$$.context : []),\n\n\t\t\t// these will be immediately discarded\n\t\t\ton_mount: [],\n\t\t\tbefore_render: [],\n\t\t\tafter_render: [],\n\t\t\tcallbacks: blank_object()\n\t\t};\n\n\t\tset_current_component({ $$ });\n\n\t\tconst html = fn(result, props, bindings, slots);\n\n\t\tset_current_component(parent_component);\n\t\treturn html;\n\t}\n\n\treturn {\n\t\trender: (props = {}, options = {}) => {\n\t\t\ton_destroy = [];\n\n\t\t\tconst result = { head: '', css: new Set() };\n\t\t\tconst html = $$render(result, props, {}, options);\n\n\t\t\trun_all(on_destroy);\n\n\t\t\treturn {\n\t\t\t\thtml,\n\t\t\t\tcss: {\n\t\t\t\t\tcode: Array.from(result.css).map(css => css.code).join('\\n'),\n\t\t\t\t\tmap: null // TODO\n\t\t\t\t},\n\t\t\t\thead: result.head\n\t\t\t};\n\t\t},\n\n\t\t$$render\n\t};\n}\n\nfunction get_store_value(store) {\n\tlet value;\n\tstore.subscribe(_ => value = _)();\n\treturn value;\n}\n\nfunction bind(component, name, callback) {\n\tif (component.$$.props.indexOf(name) === -1) return;\n\tcomponent.$$.bound[name] = callback;\n\tcallback(component.$$.ctx[name]);\n}\n\nfunction mount_component(component, target, anchor) {\n\tconst { fragment, on_mount, on_destroy, after_render } = component.$$;\n\n\tfragment.m(target, anchor);\n\n\t// onMount happens after the initial afterUpdate. Because\n\t// afterUpdate callbacks happen in reverse order (inner first)\n\t// we schedule onMount callbacks before afterUpdate callbacks\n\tadd_render_callback(() => {\n\t\tconst new_on_destroy = on_mount.map(run).filter(is_function);\n\t\tif (on_destroy) {\n\t\t\ton_destroy.push(...new_on_destroy);\n\t\t} else {\n\t\t\t// Edge case - component was destroyed immediately,\n\t\t\t// most likely as a result of a binding initialising\n\t\t\trun_all(new_on_destroy);\n\t\t}\n\t\tcomponent.$$.on_mount = [];\n\t});\n\n\tafter_render.forEach(add_render_callback);\n}\n\nfunction destroy(component, detaching) {\n\tif (component.$$) {\n\t\trun_all(component.$$.on_destroy);\n\t\tcomponent.$$.fragment.d(detaching);\n\n\t\t// TODO null out other refs, including component.$$ (but need to\n\t\t// preserve final state?)\n\t\tcomponent.$$.on_destroy = component.$$.fragment = null;\n\t\tcomponent.$$.ctx = {};\n\t}\n}\n\nfunction make_dirty(component, key) {\n\tif (!component.$$.dirty) {\n\t\tdirty_components.push(component);\n\t\tschedule_update();\n\t\tcomponent.$$.dirty = {};\n\t}\n\tcomponent.$$.dirty[key] = true;\n}\n\nfunction init(component, options, instance, create_fragment, not_equal$$1, prop_names) {\n\tconst parent_component = exports.current_component;\n\tset_current_component(component);\n\n\tconst props = options.props || {};\n\n\tconst $$ = component.$$ = {\n\t\tfragment: null,\n\t\tctx: null,\n\n\t\t// state\n\t\tprops: prop_names,\n\t\tupdate: noop,\n\t\tnot_equal: not_equal$$1,\n\t\tbound: blank_object(),\n\n\t\t// lifecycle\n\t\ton_mount: [],\n\t\ton_destroy: [],\n\t\tbefore_render: [],\n\t\tafter_render: [],\n\t\tcontext: new Map(parent_component ? parent_component.$$.context : []),\n\n\t\t// everything else\n\t\tcallbacks: blank_object(),\n\t\tdirty: null\n\t};\n\n\tlet ready = false;\n\n\t$$.ctx = instance\n\t\t? instance(component, props, (key, value) => {\n\t\t\tif ($$.ctx && not_equal$$1($$.ctx[key], $$.ctx[key] = value)) {\n\t\t\t\tif ($$.bound[key]) $$.bound[key](value);\n\t\t\t\tif (ready) make_dirty(component, key);\n\t\t\t}\n\t\t})\n\t\t: props;\n\n\t$$.update();\n\tready = true;\n\trun_all($$.before_render);\n\t$$.fragment = create_fragment($$.ctx);\n\n\tif (options.target) {\n\t\tif (options.hydrate) {\n\t\t\t$$.fragment.l(children(options.target));\n\t\t} else {\n\t\t\t$$.fragment.c();\n\t\t}\n\n\t\tif (options.intro && component.$$.fragment.i) component.$$.fragment.i();\n\t\tmount_component(component, options.target, options.anchor);\n\t\tflush();\n\t}\n\n\tset_current_component(parent_component);\n}\nif (typeof HTMLElement !== 'undefined') {\n\texports.SvelteElement = class extends HTMLElement {\n\t\tconstructor() {\n\t\t\tsuper();\n\t\t\tthis.attachShadow({ mode: 'open' });\n\t\t}\n\n\t\tconnectedCallback() {\n\t\t\tfor (const key in this.$$.slotted) {\n\t\t\t\tthis.appendChild(this.$$.slotted[key]);\n\t\t\t}\n\t\t}\n\n\t\tattributeChangedCallback(attr$$1, oldValue, newValue) {\n\t\t\tthis[attr$$1] = newValue;\n\t\t}\n\n\t\t$destroy() {\n\t\t\tdestroy(this, true);\n\t\t\tthis.$destroy = noop;\n\t\t}\n\n\t\t$on(type, callback) {\n\t\t\t// TODO should this delegate to addEventListener?\n\t\t\tconst callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n\t\t\tcallbacks.push(callback);\n\n\t\t\treturn () => {\n\t\t\t\tconst index = callbacks.indexOf(callback);\n\t\t\t\tif (index !== -1) callbacks.splice(index, 1);\n\t\t\t};\n\t\t}\n\n\t\t$set() {\n\t\t\t// overridden by instance, if it has props\n\t\t}\n\t};\n}\n\nclass SvelteComponent {\n\t$destroy() {\n\t\tdestroy(this, true);\n\t\tthis.$destroy = noop;\n\t}\n\n\t$on(type, callback) {\n\t\tconst callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n\t\tcallbacks.push(callback);\n\n\t\treturn () => {\n\t\t\tconst index = callbacks.indexOf(callback);\n\t\t\tif (index !== -1) callbacks.splice(index, 1);\n\t\t};\n\t}\n\n\t$set() {\n\t\t// overridden by instance, if it has props\n\t}\n}\n\nclass SvelteComponentDev extends SvelteComponent {\n\tconstructor(options) {\n\t\tif (!options || (!options.target && !options.$$inline)) {\n\t\t\tthrow new Error(`'target' is a required option`);\n\t\t}\n\n\t\tsuper();\n\t}\n\n\t$destroy() {\n\t\tsuper.$destroy();\n\t\tthis.$destroy = () => {\n\t\t\tconsole.warn(`Component was already destroyed`); // eslint-disable-line no-console\n\t\t};\n\t}\n}\n\nexports.create_animation = create_animation;\nexports.fix_position = fix_position;\nexports.handle_promise = handle_promise;\nexports.append = append;\nexports.insert = insert;\nexports.detach = detach;\nexports.detach_between = detach_between;\nexports.detach_before = detach_before;\nexports.detach_after = detach_after;\nexports.destroy_each = destroy_each;\nexports.element = element;\nexports.object_without_properties = object_without_properties;\nexports.svg_element = svg_element;\nexports.text = text;\nexports.space = space;\nexports.empty = empty;\nexports.listen = listen;\nexports.prevent_default = prevent_default;\nexports.stop_propagation = stop_propagation;\nexports.attr = attr;\nexports.set_attributes = set_attributes;\nexports.set_custom_element_data = set_custom_element_data;\nexports.xlink_attr = xlink_attr;\nexports.get_binding_group_value = get_binding_group_value;\nexports.to_number = to_number;\nexports.time_ranges_to_array = time_ranges_to_array;\nexports.children = children;\nexports.claim_element = claim_element;\nexports.claim_text = claim_text;\nexports.set_data = set_data;\nexports.set_input_type = set_input_type;\nexports.set_style = set_style;\nexports.select_option = select_option;\nexports.select_options = select_options;\nexports.select_value = select_value;\nexports.select_multiple_value = select_multiple_value;\nexports.add_resize_listener = add_resize_listener;\nexports.toggle_class = toggle_class;\nexports.custom_event = custom_event;\nexports.destroy_block = destroy_block;\nexports.outro_and_destroy_block = outro_and_destroy_block;\nexports.fix_and_outro_and_destroy_block = fix_and_outro_and_destroy_block;\nexports.update_keyed_each = update_keyed_each;\nexports.measure = measure;\nexports.set_current_component = set_current_component;\nexports.beforeUpdate = beforeUpdate;\nexports.onMount = onMount;\nexports.afterUpdate = afterUpdate;\nexports.onDestroy = onDestroy;\nexports.createEventDispatcher = createEventDispatcher;\nexports.setContext = setContext;\nexports.getContext = getContext;\nexports.bubble = bubble;\nexports.clear_loops = clear_loops;\nexports.loop = loop;\nexports.dirty_components = dirty_components;\nexports.intros = intros;\nexports.schedule_update = schedule_update;\nexports.tick = tick;\nexports.add_binding_callback = add_binding_callback;\nexports.add_render_callback = add_render_callback;\nexports.add_flush_callback = add_flush_callback;\nexports.flush = flush;\nexports.get_spread_update = get_spread_update;\nexports.invalid_attribute_name_character = invalid_attribute_name_character;\nexports.spread = spread;\nexports.escaped = escaped;\nexports.escape = escape;\nexports.each = each;\nexports.missing_component = missing_component;\nexports.validate_component = validate_component;\nexports.debug = debug;\nexports.create_ssr_component = create_ssr_component;\nexports.get_store_value = get_store_value;\nexports.group_outros = group_outros;\nexports.check_outros = check_outros;\nexports.on_outro = on_outro;\nexports.create_in_transition = create_in_transition;\nexports.create_out_transition = create_out_transition;\nexports.create_bidirectional_transition = create_bidirectional_transition;\nexports.noop = noop;\nexports.identity = identity;\nexports.assign = assign;\nexports.is_promise = is_promise;\nexports.add_location = add_location;\nexports.run = run;\nexports.blank_object = blank_object;\nexports.run_all = run_all;\nexports.is_function = is_function;\nexports.safe_not_equal = safe_not_equal;\nexports.not_equal = not_equal;\nexports.validate_store = validate_store;\nexports.subscribe = subscribe;\nexports.create_slot = create_slot;\nexports.get_slot_context = get_slot_context;\nexports.get_slot_changes = get_slot_changes;\nexports.exclude_internal_props = exclude_internal_props;\nexports.bind = bind;\nexports.mount_component = mount_component;\nexports.init = init;\nexports.SvelteComponent = SvelteComponent;\nexports.SvelteComponentDev = SvelteComponentDev;\n","export function setCookie(cname: string, cvalue: string, exdate: string) {\n const expires = exdate ? `;expires=${exdate}` : \"\";\n document.cookie = `${cname}=${cvalue}${expires}`\n}\n\nexport function getCookie(cname: string) {\n const name = cname + \"=\";\n const dc = decodeURIComponent(document.cookie);\n const ca = dc.split(';');\n for (let i = 0; i < ca.length; i++) {\n let c = ca[i];\n while (c.charAt(0) == ' ') {\n c = c.substring(1);\n }\n if (c.indexOf(name) == 0) {\n return c.substring(name.length, c.length);\n }\n }\n return \"\";\n}","import { getCookie } from \"./cookie\";\n\n// const baseURL = \"https://auth.stamm.me\";\nconst baseURL = \"http://localhost:3000\";\n\nexport default async function request(endpoint: string, parameters: { [key: string]: string } = {}, method: \"GET\" | \"POST\" | \"DELETE\" | \"PUT\" = \"GET\", body?: any, authInParam = false) {\n let pairs = [];\n\n if (authInParam) {\n parameters.login = getCookie(\"login\");\n parameters.special = getCookie(\"special\");\n }\n\n for (let key in parameters) {\n pairs.push(key + \"=\" + parameters[key]);\n }\n\n let url = endpoint;\n if (pairs.length > 0) {\n url += \"?\" + pairs.join(\"&\");\n }\n\n return fetch(baseURL + url, {\n method,\n body: JSON.stringify(body),\n credentials: \"same-origin\",\n headers: {\n 'content-type': 'application/json'\n },\n }).then(e => {\n if (e.status !== 200) throw new Error(e.statusText)\n return e.json()\n }).then(data => {\n if (data.error) {\n if (data.additional && data.additional.auth) {\n let state = btoa(window.location.pathname + window.location.hash);\n // window.location.href = `/login?state=${state}&base64=true`;\n }\n return Promise.reject(new Error(data.error))\n }\n return data;\n })\n}","var b;if(!(b=t)){var w=Math,y={},B=y.p={},aa=function(){},C=B.A={extend:function(o){aa.prototype=this;var _=new aa;return o&&_.u(o),_.z=this,_},create:function(){var o=this.extend();return o.h.apply(o,arguments),o},h:function(){},u:function(o){for(var _ in o)o.hasOwnProperty(_)&&(this[_]=o[_]);o.hasOwnProperty(\"toString\")&&(this.toString=o.toString)},e:function(){return this.z.extend(this)}},D=B.i=C.extend({h:function(o,_){o=this.d=o||[],this.c=void 0==_?4*o.length:_},toString:function(o){return(o||ba).stringify(this)},concat:function(o){var _=this.d,Da=o.d,Ea=this.c,o=o.c;if(this.t(),Ea%4)for(var Fa=0;Fa>>2]|=(255&Da[Fa>>>2]>>>24-8*(Fa%4))<<24-8*((Ea+Fa)%4);else if(65535>>2]=Da[Fa>>>2];else _.push.apply(_,Da);return this.c+=o,this},t:function(){var o=this.d,_=this.c;o[_>>>2]&=4294967295<<32-8*(_%4),o.length=w.ceil(_/4)},e:function(){var o=C.e.call(this);return o.d=this.d.slice(0),o},random:function(o){for(var _=[],Da=0;Da>>2]>>>24-8*(Ea%4),Da.push((Fa>>>4).toString(16)),Da.push((15&Fa).toString(16));return Da.join(\"\")},parse:function(o){for(var _=o.length,Da=[],Ea=0;Ea<_;Ea+=2)Da[Ea>>>3]|=parseInt(o.substr(Ea,2),16)<<24-4*(Ea%8);return D.create(Da,_/2)}},da=ca.M={stringify:function(o){for(var _=o.d,o=o.c,Da=[],Ea=0;Ea>>2]>>>24-8*(Ea%4)));return Da.join(\"\")},parse:function(o){for(var _=o.length,Da=[],Ea=0;Ea<_;Ea++)Da[Ea>>>2]|=(255&o.charCodeAt(Ea))<<24-8*(Ea%4);return D.create(Da,_)}},ea=ca.N={stringify:function(o){try{return decodeURIComponent(escape(da.stringify(o)))}catch(_){throw Error(\"Malformed UTF-8 data\")}},parse:function(o){return da.parse(unescape(encodeURIComponent(o)))}},ia=B.I=C.extend({reset:function(){this.g=D.create(),this.j=0},l:function(o){\"string\"==typeof o&&(o=ea.parse(o)),this.g.concat(o),this.j+=o.c},m:function(o){var _=this.g,Da=_.d,Ea=_.c,Fa=this.n,Ga=Ea/(4*Fa),Ga=o?w.ceil(Ga):w.max((0|Ga)-this.r,0),o=Ga*Fa,Ea=w.min(4*o,Ea);if(o){for(var Ha=0;HaAa;Aa++)$[Aa]=L();M=M.k=xa.extend({q:function(){this.f=ya.create([L(1779033703,4089235720),L(3144134277,2227873595),L(1013904242,4271175723),L(2773480762,1595750129),L(1359893119,2917565137),L(2600822924,725511199),L(528734635,4215389547),L(1541459225,327033209)])},H:function(o,_){for(var qb,Da=this.f.d,Ea=Da[0],Fa=Da[1],Ga=Da[2],Ha=Da[3],Ia=Da[4],Ja=Da[5],Ka=Da[6],Da=Da[7],La=Ea.a,Ma=Ea.b,Na=Fa.a,Oa=Fa.b,Pa=Ga.a,Qa=Ga.b,Ra=Ha.a,Sa=Ha.b,Ta=Ia.a,Ua=Ia.b,Va=Ja.a,Wa=Ja.b,Xa=Ka.a,Ya=Ka.b,Za=Da.a,$a=Da.b,_a=La,ab=Ma,bb=Na,cb=Oa,db=Pa,eb=Qa,fb=Ra,gb=Sa,hb=Ta,ib=Ua,jb=Va,kb=Wa,lb=Xa,mb=Ya,nb=Za,ob=$a,pb=0;80>pb;pb++){if(qb=$[pb],16>pb)var rb=qb.a=0|o[_+2*pb],sb=qb.b=0|o[_+2*pb+1];else{var rb=$[pb-15],sb=rb.a,tb=rb.b,rb=(tb<<31|sb>>>1)^(tb<<24|sb>>>8)^sb>>>7,tb=(sb<<31|tb>>>1)^(sb<<24|tb>>>8)^(sb<<25|tb>>>7),ub=$[pb-2],sb=ub.a,vb=ub.b,ub=(vb<<13|sb>>>19)^(sb<<3|vb>>>29)^sb>>>6,vb=(sb<<13|vb>>>19)^(vb<<3|sb>>>29)^(sb<<26|vb>>>6),sb=$[pb-7],wb=sb.a,xb=$[pb-16],yb=xb.a,xb=xb.b,sb=tb+sb.b,rb=rb+wb+(sb>>>0>>0?1:0),sb=sb+vb,rb=rb+ub+(sb>>>0>>0?1:0),sb=sb+xb,rb=rb+yb+(sb>>>0>>0?1:0);qb.a=rb,qb.b=sb}var wb=hb&jb^~hb&lb,xb=ib&kb^~ib&mb,qb=_a&bb^_a&db^bb&db,tb=(ab<<4|_a>>>28)^(_a<<30|ab>>>2)^(_a<<25|ab>>>7),ub=(_a<<4|ab>>>28)^(ab<<30|_a>>>2)^(ab<<25|_a>>>7),vb=za[pb],Ab=vb.a,Bb=vb.b,vb=ob+((hb<<18|ib>>>14)^(hb<<14|ib>>>18)^(ib<<23|hb>>>9)),yb=nb+((ib<<18|hb>>>14)^(ib<<14|hb>>>18)^(hb<<23|ib>>>9))+(vb>>>0>>0?1:0),vb=vb+xb,yb=yb+wb+(vb>>>0>>0?1:0),vb=vb+Bb,yb=yb+Ab+(vb>>>0>>0?1:0),vb=vb+sb,yb=yb+rb+(vb>>>0>>0?1:0),sb=ub+(ab&cb^ab&eb^cb&eb),qb=tb+qb+(sb>>>0>>0?1:0),nb=lb,ob=mb,lb=jb,mb=kb,jb=hb,kb=ib,ib=0|gb+vb,hb=0|fb+yb+(ib>>>0>>0?1:0),fb=db,gb=eb,db=bb,eb=cb,bb=_a,cb=ab,ab=0|vb+sb,_a=0|yb+qb+(ab>>>0>>0?1:0)}Ma=Ea.b=0|Ma+ab,Ea.a=0|La+_a+(Ma>>>0>>0?1:0),Oa=Fa.b=0|Oa+cb,Fa.a=0|Na+bb+(Oa>>>0>>0?1:0),Qa=Ga.b=0|Qa+eb,Ga.a=0|Pa+db+(Qa>>>0>>0?1:0),Sa=Ha.b=0|Sa+gb,Ha.a=0|Ra+fb+(Sa>>>0>>0?1:0),Ua=Ia.b=0|Ua+ib,Ia.a=0|Ta+hb+(Ua>>>0>>0?1:0),Wa=Ja.b=0|Wa+kb,Ja.a=0|Va+jb+(Wa>>>0>>0?1:0),Ya=Ka.b=0|Ya+mb,Ka.a=0|Xa+lb+(Ya>>>0>>0?1:0),$a=Da.b=0|$a+ob,Da.a=0|Za+nb+($a>>>0>>0?1:0)},G:function(){var o=this.g,_=o.d,Da=8*this.j,Ea=8*o.c;_[Ea>>>5]|=128<<24-Ea%32,_[(Ea+128>>>10<<5)+31]=Da,o.c=4*_.length,this.m(),this.f=this.f.v()},n:32}),t.k=xa.D(M),t.L=xa.F(M);export default function sha512 (o){return t.k(o)+\"\"};","import request from \"../request\";\nimport sha from \"../sha512\";\nimport {\n setCookie,\n getCookie\n} from \"../cookie\"\n\nexport interface TwoFactor {\n id: string;\n name: string;\n type: TFATypes;\n}\n\nexport enum TFATypes {\n OTC,\n BACKUP_CODE,\n U2F,\n APP_ALLOW\n}\n\nconst Api = {\n // twofactor: [{\n // id: \"1\",\n // name: \"Backup Codes\",\n // type: TFATypes.BACKUP_CODE\n // }, {\n // id: \"2\",\n // name: \"YubiKey\",\n // type: TFATypes.U2F\n // }, {\n // id: \"3\",\n // name: \"Authenticator\",\n // type: TFATypes.OTC\n // }] as TwoFactor[],\n getUsername() {\n return this.username || getCookie(\"username\");\n },\n async setUsername(username: string): Promise<{ error: string | undefined }> {\n return request(\"/api/user/login\", {\n type: \"username\",\n username\n }, \"POST\").then(res => {\n this.salt = res.salt;\n this.username = username;\n return {\n error: undefined\n }\n }).catch(err => {\n let error = err.message;\n return { error }\n })\n },\n async setPassword(password: string): Promise<{ error: string | undefined, twofactor?: any }> {\n let pw = sha(this.salt + password);\n return request(\"/api/user/login\", {\n type: \"password\"\n }, \"POST\", {\n username: this.username,\n password: pw\n }\n ).then(({\n login,\n special,\n tfa\n }) => {\n\n this.login = login;\n this.special = special;\n\n if (tfa && Array.isArray(tfa) && tfa.length > 0)\n this.twofactor = tfa;\n else\n this.twofactor = undefined;\n\n\n return {\n error: undefined\n }\n }).catch(err => {\n let error = err.message;\n return { error }\n })\n },\n gettok() {\n return {\n login: this.login.token,\n special: this.special.token\n }\n },\n async sendBackup(id: string, code: string) {\n return request(\"/api/user/twofactor/backup\", this.gettok(), \"PUT\", { code, id }).then(({ login_exp, special_exp }) => {\n this.login.expires = login_exp;\n this.special.expires = special_exp;\n return {};\n }).catch(err => ({ error: err.message }));\n },\n async sendOTC(id: string, code: string) {\n return request(\"/api/user/twofactor/otc\", this.gettok(), \"PUT\", { code, id }).then(({ login_exp, special_exp }) => {\n this.login.expires = login_exp;\n this.special.expires = special_exp;\n return {};\n }).catch(error => ({ error: error.message }))\n },\n async finish() {\n let d = new Date()\n d.setTime(d.getTime() + (30 * 24 * 60 * 60 * 1000)); //Keep the username 30 days\n setCookie(\"username\", this.username, d.toUTCString());\n\n setCookie(\"login\", this.login.token, new Date(this.login.expires).toUTCString());\n setCookie(\"special\", this.special.token, new Date(this.special.expires).toUTCString());\n\n let url = new URL(window.location.href);\n let state = url.searchParams.get(\"state\")\n let red = \"/\"\n\n if (state) {\n let base64 = url.searchParams.get(\"base64\")\n if (base64)\n red = atob(state)\n else\n red = state\n }\n window.location.href = red;\n }\n}\n\nexport default Api;","\n\n\n\n{#if state === states.username}\n

Enter your Username or your E-Mail Address

\n
\n \n \n \n \n
{error}
\n
\n{:else}\n

Enter password for {username}

\n
\n \n \n \n \n
{error}
\n
\n{/if}\n\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar internal = require('./internal');\n\n\n\nexports.onMount = internal.onMount;\nexports.onDestroy = internal.onDestroy;\nexports.beforeUpdate = internal.beforeUpdate;\nexports.afterUpdate = internal.afterUpdate;\nexports.setContext = internal.setContext;\nexports.getContext = internal.getContext;\nexports.tick = internal.tick;\nexports.createEventDispatcher = internal.createEventDispatcher;\n","\n\n
\n \n \n \n \n
\n\n

{text}

\n\n\n","\n\n{#if icon_name === \"SecurityKey\"}\n\n{:else if icon_name === \"Authenticator\"}\n\n{:else if icon_name === \"BackupCode\"}\n\n{:else if icon_name === \"AppPush\"}\n\n{:else}\nERR\n{/if}","\n\n\n

\n evt.preventDefault() || finish(false)}>Choose another Method\n

","(function webpackUniversalModuleDefinition(root, factory) {\n if (typeof exports === 'object' && typeof module === 'object')\n module.exports = factory();\n else if (typeof define === 'function' && define.amd)\n define([], factory);\n else if (typeof exports === 'object')\n exports[\"Cleave\"] = factory();\n else\n root[\"Cleave\"] = factory();\n})(this, function () {\n return /******/ (function (modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif (installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n /******/\n};\n\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n /******/\n}\n\n\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n /******/\n})\n/************************************************************************/\n/******/([\n/* 0 */\n/***/ (function (module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function (global) {\n 'use strict';\n\n /**\n * Construct a new Cleave instance by passing the configuration object\n *\n * @param {String | HTMLElement} element\n * @param {Object} opts\n */\n var Cleave = function (element, opts) {\n var owner = this;\n var hasMultipleElements = false;\n\n if (typeof element === 'string') {\n owner.element = document.querySelector(element);\n hasMultipleElements = document.querySelectorAll(element).length > 1;\n } else {\n if (typeof element.length !== 'undefined' && element.length > 0) {\n owner.element = element[0];\n hasMultipleElements = element.length > 1;\n } else {\n owner.element = element;\n }\n }\n\n if (!owner.element) {\n throw new Error('[cleave.js] Please check the element');\n }\n\n if (hasMultipleElements) {\n try {\n // eslint-disable-next-line\n console.warn('[cleave.js] Multiple input fields matched, cleave.js will only take the first one.');\n } catch (e) {\n // Old IE\n }\n }\n\n opts.initValue = owner.element.value;\n\n owner.properties = Cleave.DefaultProperties.assign({}, opts);\n\n owner.init();\n };\n\n Cleave.prototype = {\n init: function () {\n var owner = this, pps = owner.properties;\n\n // no need to use this lib\n if (!pps.numeral && !pps.phone && !pps.creditCard && !pps.time && !pps.date && (pps.blocksLength === 0 && !pps.prefix)) {\n owner.onInput(pps.initValue);\n\n return;\n }\n\n pps.maxLength = Cleave.Util.getMaxLength(pps.blocks);\n\n owner.isAndroid = Cleave.Util.isAndroid();\n owner.lastInputValue = '';\n\n owner.onChangeListener = owner.onChange.bind(owner);\n owner.onKeyDownListener = owner.onKeyDown.bind(owner);\n owner.onFocusListener = owner.onFocus.bind(owner);\n owner.onCutListener = owner.onCut.bind(owner);\n owner.onCopyListener = owner.onCopy.bind(owner);\n\n owner.element.addEventListener('input', owner.onChangeListener);\n owner.element.addEventListener('keydown', owner.onKeyDownListener);\n owner.element.addEventListener('focus', owner.onFocusListener);\n owner.element.addEventListener('cut', owner.onCutListener);\n owner.element.addEventListener('copy', owner.onCopyListener);\n\n\n owner.initPhoneFormatter();\n owner.initDateFormatter();\n owner.initTimeFormatter();\n owner.initNumeralFormatter();\n\n // avoid touch input field if value is null\n // otherwise Firefox will add red box-shadow for \n if (pps.initValue || (pps.prefix && !pps.noImmediatePrefix)) {\n owner.onInput(pps.initValue);\n }\n },\n\n initNumeralFormatter: function () {\n var owner = this, pps = owner.properties;\n\n if (!pps.numeral) {\n return;\n }\n\n pps.numeralFormatter = new Cleave.NumeralFormatter(\n pps.numeralDecimalMark,\n pps.numeralIntegerScale,\n pps.numeralDecimalScale,\n pps.numeralThousandsGroupStyle,\n pps.numeralPositiveOnly,\n pps.stripLeadingZeroes,\n pps.delimiter\n );\n },\n\n initTimeFormatter: function () {\n var owner = this, pps = owner.properties;\n\n if (!pps.time) {\n return;\n }\n\n pps.timeFormatter = new Cleave.TimeFormatter(pps.timePattern, pps.timeFormat);\n pps.blocks = pps.timeFormatter.getBlocks();\n pps.blocksLength = pps.blocks.length;\n pps.maxLength = Cleave.Util.getMaxLength(pps.blocks);\n },\n\n initDateFormatter: function () {\n var owner = this, pps = owner.properties;\n\n if (!pps.date) {\n return;\n }\n\n pps.dateFormatter = new Cleave.DateFormatter(pps.datePattern);\n pps.blocks = pps.dateFormatter.getBlocks();\n pps.blocksLength = pps.blocks.length;\n pps.maxLength = Cleave.Util.getMaxLength(pps.blocks);\n },\n\n initPhoneFormatter: function () {\n var owner = this, pps = owner.properties;\n\n if (!pps.phone) {\n return;\n }\n\n // Cleave.AsYouTypeFormatter should be provided by\n // external google closure lib\n try {\n pps.phoneFormatter = new Cleave.PhoneFormatter(\n new pps.root.Cleave.AsYouTypeFormatter(pps.phoneRegionCode),\n pps.delimiter\n );\n } catch (ex) {\n throw new Error('[cleave.js] Please include phone-type-formatter.{country}.js lib');\n }\n },\n\n onKeyDown: function (event) {\n var owner = this, pps = owner.properties,\n charCode = event.which || event.keyCode,\n Util = Cleave.Util,\n currentValue = owner.element.value;\n\n // if we got any charCode === 8, this means, that this device correctly\n // sends backspace keys in event, so we do not need to apply any hacks\n owner.hasBackspaceSupport = owner.hasBackspaceSupport || charCode === 8;\n if (!owner.hasBackspaceSupport\n && Util.isAndroidBackspaceKeydown(owner.lastInputValue, currentValue)\n ) {\n charCode = 8;\n }\n\n owner.lastInputValue = currentValue;\n\n // hit backspace when last character is delimiter\n var postDelimiter = Util.getPostDelimiter(currentValue, pps.delimiter, pps.delimiters);\n if (charCode === 8 && postDelimiter) {\n pps.postDelimiterBackspace = postDelimiter;\n } else {\n pps.postDelimiterBackspace = false;\n }\n },\n\n onChange: function () {\n this.onInput(this.element.value);\n },\n\n onFocus: function () {\n var owner = this,\n pps = owner.properties;\n\n Cleave.Util.fixPrefixCursor(owner.element, pps.prefix, pps.delimiter, pps.delimiters);\n },\n\n onCut: function (e) {\n this.copyClipboardData(e);\n this.onInput('');\n },\n\n onCopy: function (e) {\n this.copyClipboardData(e);\n },\n\n copyClipboardData: function (e) {\n var owner = this,\n pps = owner.properties,\n Util = Cleave.Util,\n inputValue = owner.element.value,\n textToCopy = '';\n\n if (!pps.copyDelimiter) {\n textToCopy = Util.stripDelimiters(inputValue, pps.delimiter, pps.delimiters);\n } else {\n textToCopy = inputValue;\n }\n\n try {\n if (e.clipboardData) {\n e.clipboardData.setData('Text', textToCopy);\n } else {\n window.clipboardData.setData('Text', textToCopy);\n }\n\n e.preventDefault();\n } catch (ex) {\n // empty\n }\n },\n\n onInput: function (value) {\n var owner = this, pps = owner.properties,\n Util = Cleave.Util;\n\n // case 1: delete one more character \"4\"\n // 1234*| -> hit backspace -> 123|\n // case 2: last character is not delimiter which is:\n // 12|34* -> hit backspace -> 1|34*\n // note: no need to apply this for numeral mode\n var postDelimiterAfter = Util.getPostDelimiter(value, pps.delimiter, pps.delimiters);\n if (!pps.numeral && pps.postDelimiterBackspace && !postDelimiterAfter) {\n value = Util.headStr(value, value.length - pps.postDelimiterBackspace.length);\n }\n\n // phone formatter\n if (pps.phone) {\n if (pps.prefix && (!pps.noImmediatePrefix || value.length)) {\n pps.result = pps.prefix + pps.phoneFormatter.format(value).slice(pps.prefix.length);\n } else {\n pps.result = pps.phoneFormatter.format(value);\n }\n owner.updateValueState();\n\n return;\n }\n\n // numeral formatter\n if (pps.numeral) {\n if (pps.prefix && (!pps.noImmediatePrefix || value.length)) {\n pps.result = pps.prefix + pps.numeralFormatter.format(value);\n } else {\n pps.result = pps.numeralFormatter.format(value);\n }\n owner.updateValueState();\n\n return;\n }\n\n // date\n if (pps.date) {\n value = pps.dateFormatter.getValidatedDate(value);\n }\n\n // time\n if (pps.time) {\n value = pps.timeFormatter.getValidatedTime(value);\n }\n\n // strip delimiters\n value = Util.stripDelimiters(value, pps.delimiter, pps.delimiters);\n\n // strip prefix\n // var strippedPreviousResult = Util.stripDelimiters(pps.result, pps.delimiter, pps.delimiters);\n value = Util.getPrefixStrippedValue(value, pps.prefix, pps.prefixLength, pps.result, pps.delimiter, pps.delimiters);\n\n // strip non-numeric characters\n value = pps.numericOnly ? Util.strip(value, /[^\\d]/g) : value;\n\n // convert case\n value = pps.uppercase ? value.toUpperCase() : value;\n value = pps.lowercase ? value.toLowerCase() : value;\n\n // prefix\n if (pps.prefix && (!pps.noImmediatePrefix || value.length)) {\n value = pps.prefix + value;\n\n // no blocks specified, no need to do formatting\n if (pps.blocksLength === 0) {\n pps.result = value;\n owner.updateValueState();\n\n return;\n }\n }\n\n // update credit card props\n if (pps.creditCard) {\n owner.updateCreditCardPropsByValue(value);\n }\n\n // strip over length characters\n value = Util.headStr(value, pps.maxLength);\n\n // apply blocks\n pps.result = Util.getFormattedValue(\n value,\n pps.blocks, pps.blocksLength,\n pps.delimiter, pps.delimiters, pps.delimiterLazyShow\n );\n\n owner.updateValueState();\n },\n\n updateCreditCardPropsByValue: function (value) {\n var owner = this, pps = owner.properties,\n Util = Cleave.Util,\n creditCardInfo;\n\n // At least one of the first 4 characters has changed\n if (Util.headStr(pps.result, 4) === Util.headStr(value, 4)) {\n return;\n }\n\n creditCardInfo = Cleave.CreditCardDetector.getInfo(value, pps.creditCardStrictMode);\n\n pps.blocks = creditCardInfo.blocks;\n pps.blocksLength = pps.blocks.length;\n pps.maxLength = Util.getMaxLength(pps.blocks);\n\n // credit card type changed\n if (pps.creditCardType !== creditCardInfo.type) {\n pps.creditCardType = creditCardInfo.type;\n\n pps.onCreditCardTypeChanged.call(owner, pps.creditCardType);\n }\n },\n\n updateValueState: function () {\n var owner = this,\n Util = Cleave.Util,\n pps = owner.properties;\n\n if (!owner.element) {\n return;\n }\n\n var endPos = owner.element.selectionEnd;\n var oldValue = owner.element.value;\n var newValue = pps.result;\n\n endPos = Util.getNextCursorPosition(endPos, oldValue, newValue, pps.delimiter, pps.delimiters);\n\n // fix Android browser type=\"text\" input field\n // cursor not jumping issue\n if (owner.isAndroid) {\n window.setTimeout(function () {\n owner.element.value = newValue;\n Util.setSelection(owner.element, endPos, pps.document, false);\n owner.callOnValueChanged();\n }, 1);\n\n return;\n }\n\n owner.element.value = newValue;\n Util.setSelection(owner.element, endPos, pps.document, false);\n owner.callOnValueChanged();\n },\n\n callOnValueChanged: function () {\n var owner = this,\n pps = owner.properties;\n\n pps.onValueChanged.call(owner, {\n target: {\n value: pps.result,\n rawValue: owner.getRawValue()\n }\n });\n },\n\n setPhoneRegionCode: function (phoneRegionCode) {\n var owner = this, pps = owner.properties;\n\n pps.phoneRegionCode = phoneRegionCode;\n owner.initPhoneFormatter();\n owner.onChange();\n },\n\n setRawValue: function (value) {\n var owner = this, pps = owner.properties;\n\n value = value !== undefined && value !== null ? value.toString() : '';\n\n if (pps.numeral) {\n value = value.replace('.', pps.numeralDecimalMark);\n }\n\n pps.postDelimiterBackspace = false;\n\n owner.element.value = value;\n owner.onInput(value);\n },\n\n getRawValue: function () {\n var owner = this,\n pps = owner.properties,\n Util = Cleave.Util,\n rawValue = owner.element.value;\n\n if (pps.rawValueTrimPrefix) {\n rawValue = Util.getPrefixStrippedValue(rawValue, pps.prefix, pps.prefixLength, pps.result, pps.delimiter, pps.delimiters);\n }\n\n if (pps.numeral) {\n rawValue = pps.numeralFormatter.getRawValue(rawValue);\n } else {\n rawValue = Util.stripDelimiters(rawValue, pps.delimiter, pps.delimiters);\n }\n\n return rawValue;\n },\n\n getISOFormatDate: function () {\n var owner = this,\n pps = owner.properties;\n\n return pps.date ? pps.dateFormatter.getISOFormatDate() : '';\n },\n\n getISOFormatTime: function () {\n var owner = this,\n pps = owner.properties;\n\n return pps.time ? pps.timeFormatter.getISOFormatTime() : '';\n },\n\n getFormattedValue: function () {\n return this.element.value;\n },\n\n destroy: function () {\n var owner = this;\n\n owner.element.removeEventListener('input', owner.onChangeListener);\n owner.element.removeEventListener('keydown', owner.onKeyDownListener);\n owner.element.removeEventListener('focus', owner.onFocusListener);\n owner.element.removeEventListener('cut', owner.onCutListener);\n owner.element.removeEventListener('copy', owner.onCopyListener);\n },\n\n toString: function () {\n return '[Cleave Object]';\n }\n };\n\n Cleave.NumeralFormatter = __webpack_require__(1);\n Cleave.DateFormatter = __webpack_require__(2);\n Cleave.TimeFormatter = __webpack_require__(3);\n Cleave.PhoneFormatter = __webpack_require__(4);\n Cleave.CreditCardDetector = __webpack_require__(5);\n Cleave.Util = __webpack_require__(6);\n Cleave.DefaultProperties = __webpack_require__(7);\n\n // for angular directive\n ((typeof global === 'object' && global) ? global : window)['Cleave'] = Cleave;\n\n // CommonJS\n module.exports = Cleave;\n\n /* WEBPACK VAR INJECTION */\n}.call(exports, (function () { return this; }())))\n\n /***/\n}),\n/* 1 */\n/***/ (function (module, exports) {\n\n 'use strict';\n\n var NumeralFormatter = function (numeralDecimalMark,\n numeralIntegerScale,\n numeralDecimalScale,\n numeralThousandsGroupStyle,\n numeralPositiveOnly,\n stripLeadingZeroes,\n delimiter) {\n var owner = this;\n\n owner.numeralDecimalMark = numeralDecimalMark || '.';\n owner.numeralIntegerScale = numeralIntegerScale > 0 ? numeralIntegerScale : 0;\n owner.numeralDecimalScale = numeralDecimalScale >= 0 ? numeralDecimalScale : 2;\n owner.numeralThousandsGroupStyle = numeralThousandsGroupStyle || NumeralFormatter.groupStyle.thousand;\n owner.numeralPositiveOnly = !!numeralPositiveOnly;\n owner.stripLeadingZeroes = stripLeadingZeroes !== false;\n owner.delimiter = (delimiter || delimiter === '') ? delimiter : ',';\n owner.delimiterRE = delimiter ? new RegExp('\\\\' + delimiter, 'g') : '';\n };\n\n NumeralFormatter.groupStyle = {\n thousand: 'thousand',\n lakh: 'lakh',\n wan: 'wan',\n none: 'none'\n };\n\n NumeralFormatter.prototype = {\n getRawValue: function (value) {\n return value.replace(this.delimiterRE, '').replace(this.numeralDecimalMark, '.');\n },\n\n format: function (value) {\n var owner = this, parts, partInteger, partDecimal = '';\n\n // strip alphabet letters\n value = value.replace(/[A-Za-z]/g, '')\n // replace the first decimal mark with reserved placeholder\n .replace(owner.numeralDecimalMark, 'M')\n\n // strip non numeric letters except minus and \"M\"\n // this is to ensure prefix has been stripped\n .replace(/[^\\dM-]/g, '')\n\n // replace the leading minus with reserved placeholder\n .replace(/^\\-/, 'N')\n\n // strip the other minus sign (if present)\n .replace(/\\-/g, '')\n\n // replace the minus sign (if present)\n .replace('N', owner.numeralPositiveOnly ? '' : '-')\n\n // replace decimal mark\n .replace('M', owner.numeralDecimalMark);\n\n // strip any leading zeros\n if (owner.stripLeadingZeroes) {\n value = value.replace(/^(-)?0+(?=\\d)/, '$1');\n }\n\n partInteger = value;\n\n if (value.indexOf(owner.numeralDecimalMark) >= 0) {\n parts = value.split(owner.numeralDecimalMark);\n partInteger = parts[0];\n partDecimal = owner.numeralDecimalMark + parts[1].slice(0, owner.numeralDecimalScale);\n }\n\n if (owner.numeralIntegerScale > 0) {\n partInteger = partInteger.slice(0, owner.numeralIntegerScale + (value.slice(0, 1) === '-' ? 1 : 0));\n }\n\n switch (owner.numeralThousandsGroupStyle) {\n case NumeralFormatter.groupStyle.lakh:\n partInteger = partInteger.replace(/(\\d)(?=(\\d\\d)+\\d$)/g, '$1' + owner.delimiter);\n\n break;\n\n case NumeralFormatter.groupStyle.wan:\n partInteger = partInteger.replace(/(\\d)(?=(\\d{4})+$)/g, '$1' + owner.delimiter);\n\n break;\n\n case NumeralFormatter.groupStyle.thousand:\n partInteger = partInteger.replace(/(\\d)(?=(\\d{3})+$)/g, '$1' + owner.delimiter);\n\n break;\n }\n\n return partInteger.toString() + (owner.numeralDecimalScale > 0 ? partDecimal.toString() : '');\n }\n };\n\n module.exports = NumeralFormatter;\n\n\n /***/\n}),\n/* 2 */\n/***/ (function (module, exports) {\n\n 'use strict';\n\n var DateFormatter = function (datePattern) {\n var owner = this;\n\n owner.date = [];\n owner.blocks = [];\n owner.datePattern = datePattern;\n owner.initBlocks();\n };\n\n DateFormatter.prototype = {\n initBlocks: function () {\n var owner = this;\n owner.datePattern.forEach(function (value) {\n if (value === 'Y') {\n owner.blocks.push(4);\n } else {\n owner.blocks.push(2);\n }\n });\n },\n\n getISOFormatDate: function () {\n var owner = this,\n date = owner.date;\n\n return date[2] ? (\n date[2] + '-' + owner.addLeadingZero(date[1]) + '-' + owner.addLeadingZero(date[0])\n ) : '';\n },\n\n getBlocks: function () {\n return this.blocks;\n },\n\n getValidatedDate: function (value) {\n var owner = this, result = '';\n\n value = value.replace(/[^\\d]/g, '');\n\n owner.blocks.forEach(function (length, index) {\n if (value.length > 0) {\n var sub = value.slice(0, length),\n sub0 = sub.slice(0, 1),\n rest = value.slice(length);\n\n switch (owner.datePattern[index]) {\n case 'd':\n if (sub === '00') {\n sub = '01';\n } else if (parseInt(sub0, 10) > 3) {\n sub = '0' + sub0;\n } else if (parseInt(sub, 10) > 31) {\n sub = '31';\n }\n\n break;\n\n case 'm':\n if (sub === '00') {\n sub = '01';\n } else if (parseInt(sub0, 10) > 1) {\n sub = '0' + sub0;\n } else if (parseInt(sub, 10) > 12) {\n sub = '12';\n }\n\n break;\n }\n\n result += sub;\n\n // update remaining string\n value = rest;\n }\n });\n\n return this.getFixedDateString(result);\n },\n\n getFixedDateString: function (value) {\n var owner = this, datePattern = owner.datePattern, date = [],\n dayIndex = 0, monthIndex = 0, yearIndex = 0,\n dayStartIndex = 0, monthStartIndex = 0, yearStartIndex = 0,\n day, month, year, fullYearDone = false;\n\n // mm-dd || dd-mm\n if (value.length === 4 && datePattern[0].toLowerCase() !== 'y' && datePattern[1].toLowerCase() !== 'y') {\n dayStartIndex = datePattern[0] === 'd' ? 0 : 2;\n monthStartIndex = 2 - dayStartIndex;\n day = parseInt(value.slice(dayStartIndex, dayStartIndex + 2), 10);\n month = parseInt(value.slice(monthStartIndex, monthStartIndex + 2), 10);\n\n date = this.getFixedDate(day, month, 0);\n }\n\n // yyyy-mm-dd || yyyy-dd-mm || mm-dd-yyyy || dd-mm-yyyy || dd-yyyy-mm || mm-yyyy-dd\n if (value.length === 8) {\n datePattern.forEach(function (type, index) {\n switch (type) {\n case 'd':\n dayIndex = index;\n break;\n case 'm':\n monthIndex = index;\n break;\n default:\n yearIndex = index;\n break;\n }\n });\n\n yearStartIndex = yearIndex * 2;\n dayStartIndex = (dayIndex <= yearIndex) ? dayIndex * 2 : (dayIndex * 2 + 2);\n monthStartIndex = (monthIndex <= yearIndex) ? monthIndex * 2 : (monthIndex * 2 + 2);\n\n day = parseInt(value.slice(dayStartIndex, dayStartIndex + 2), 10);\n month = parseInt(value.slice(monthStartIndex, monthStartIndex + 2), 10);\n year = parseInt(value.slice(yearStartIndex, yearStartIndex + 4), 10);\n\n fullYearDone = value.slice(yearStartIndex, yearStartIndex + 4).length === 4;\n\n date = this.getFixedDate(day, month, year);\n }\n\n owner.date = date;\n\n return date.length === 0 ? value : datePattern.reduce(function (previous, current) {\n switch (current) {\n case 'd':\n return previous + owner.addLeadingZero(date[0]);\n case 'm':\n return previous + owner.addLeadingZero(date[1]);\n default:\n return previous + (fullYearDone ? owner.addLeadingZeroForYear(date[2]) : '');\n }\n }, '');\n },\n\n getFixedDate: function (day, month, year) {\n day = Math.min(day, 31);\n month = Math.min(month, 12);\n year = parseInt((year || 0), 10);\n\n if ((month < 7 && month % 2 === 0) || (month > 8 && month % 2 === 1)) {\n day = Math.min(day, month === 2 ? (this.isLeapYear(year) ? 29 : 28) : 30);\n }\n\n return [day, month, year];\n },\n\n isLeapYear: function (year) {\n return ((year % 4 === 0) && (year % 100 !== 0)) || (year % 400 === 0);\n },\n\n addLeadingZero: function (number) {\n return (number < 10 ? '0' : '') + number;\n },\n\n addLeadingZeroForYear: function (number) {\n return (number < 10 ? '000' : (number < 100 ? '00' : (number < 1000 ? '0' : ''))) + number;\n }\n };\n\n module.exports = DateFormatter;\n\n\n\n /***/\n}),\n/* 3 */\n/***/ (function (module, exports) {\n\n 'use strict';\n\n var TimeFormatter = function (timePattern, timeFormat) {\n var owner = this;\n\n owner.time = [];\n owner.blocks = [];\n owner.timePattern = timePattern;\n owner.timeFormat = timeFormat;\n owner.initBlocks();\n };\n\n TimeFormatter.prototype = {\n initBlocks: function () {\n var owner = this;\n owner.timePattern.forEach(function () {\n owner.blocks.push(2);\n });\n },\n\n getISOFormatTime: function () {\n var owner = this,\n time = owner.time;\n\n return time[2] ? (\n owner.addLeadingZero(time[0]) + ':' + owner.addLeadingZero(time[1]) + ':' + owner.addLeadingZero(time[2])\n ) : '';\n },\n\n getBlocks: function () {\n return this.blocks;\n },\n\n getTimeFormatOptions: function () {\n var owner = this;\n if (String(owner.timeFormat) === '12') {\n return {\n maxHourFirstDigit: 1,\n maxHours: 12,\n maxMinutesFirstDigit: 5,\n maxMinutes: 60\n };\n }\n\n return {\n maxHourFirstDigit: 2,\n maxHours: 23,\n maxMinutesFirstDigit: 5,\n maxMinutes: 60\n };\n },\n\n getValidatedTime: function (value) {\n var owner = this, result = '';\n\n value = value.replace(/[^\\d]/g, '');\n\n var timeFormatOptions = owner.getTimeFormatOptions();\n\n owner.blocks.forEach(function (length, index) {\n if (value.length > 0) {\n var sub = value.slice(0, length),\n sub0 = sub.slice(0, 1),\n rest = value.slice(length);\n\n switch (owner.timePattern[index]) {\n\n case 'h':\n if (parseInt(sub0, 10) > timeFormatOptions.maxHourFirstDigit) {\n sub = '0' + sub0;\n } else if (parseInt(sub, 10) > timeFormatOptions.maxHours) {\n sub = timeFormatOptions.maxHours + '';\n }\n\n break;\n\n case 'm':\n case 's':\n if (parseInt(sub0, 10) > timeFormatOptions.maxMinutesFirstDigit) {\n sub = '0' + sub0;\n } else if (parseInt(sub, 10) > timeFormatOptions.maxMinutes) {\n sub = timeFormatOptions.maxMinutes + '';\n }\n break;\n }\n\n result += sub;\n\n // update remaining string\n value = rest;\n }\n });\n\n return this.getFixedTimeString(result);\n },\n\n getFixedTimeString: function (value) {\n var owner = this, timePattern = owner.timePattern, time = [],\n secondIndex = 0, minuteIndex = 0, hourIndex = 0,\n secondStartIndex = 0, minuteStartIndex = 0, hourStartIndex = 0,\n second, minute, hour;\n\n if (value.length === 6) {\n timePattern.forEach(function (type, index) {\n switch (type) {\n case 's':\n secondIndex = index * 2;\n break;\n case 'm':\n minuteIndex = index * 2;\n break;\n case 'h':\n hourIndex = index * 2;\n break;\n }\n });\n\n hourStartIndex = hourIndex;\n minuteStartIndex = minuteIndex;\n secondStartIndex = secondIndex;\n\n second = parseInt(value.slice(secondStartIndex, secondStartIndex + 2), 10);\n minute = parseInt(value.slice(minuteStartIndex, minuteStartIndex + 2), 10);\n hour = parseInt(value.slice(hourStartIndex, hourStartIndex + 2), 10);\n\n time = this.getFixedTime(hour, minute, second);\n }\n\n if (value.length === 4 && owner.timePattern.indexOf('s') < 0) {\n timePattern.forEach(function (type, index) {\n switch (type) {\n case 'm':\n minuteIndex = index * 2;\n break;\n case 'h':\n hourIndex = index * 2;\n break;\n }\n });\n\n hourStartIndex = hourIndex;\n minuteStartIndex = minuteIndex;\n\n second = 0;\n minute = parseInt(value.slice(minuteStartIndex, minuteStartIndex + 2), 10);\n hour = parseInt(value.slice(hourStartIndex, hourStartIndex + 2), 10);\n\n time = this.getFixedTime(hour, minute, second);\n }\n\n owner.time = time;\n\n return time.length === 0 ? value : timePattern.reduce(function (previous, current) {\n switch (current) {\n case 's':\n return previous + owner.addLeadingZero(time[2]);\n case 'm':\n return previous + owner.addLeadingZero(time[1]);\n case 'h':\n return previous + owner.addLeadingZero(time[0]);\n }\n }, '');\n },\n\n getFixedTime: function (hour, minute, second) {\n second = Math.min(parseInt(second || 0, 10), 60);\n minute = Math.min(minute, 60);\n hour = Math.min(hour, 60);\n\n return [hour, minute, second];\n },\n\n addLeadingZero: function (number) {\n return (number < 10 ? '0' : '') + number;\n }\n };\n\n module.exports = TimeFormatter;\n\n\n /***/\n}),\n/* 4 */\n/***/ (function (module, exports) {\n\n 'use strict';\n\n var PhoneFormatter = function (formatter, delimiter) {\n var owner = this;\n\n owner.delimiter = (delimiter || delimiter === '') ? delimiter : ' ';\n owner.delimiterRE = delimiter ? new RegExp('\\\\' + delimiter, 'g') : '';\n\n owner.formatter = formatter;\n };\n\n PhoneFormatter.prototype = {\n setFormatter: function (formatter) {\n this.formatter = formatter;\n },\n\n format: function (phoneNumber) {\n var owner = this;\n\n owner.formatter.clear();\n\n // only keep number and +\n phoneNumber = phoneNumber.replace(/[^\\d+]/g, '');\n\n // strip non-leading +\n phoneNumber = phoneNumber.replace(/^\\+/, 'B').replace(/\\+/g, '').replace('B', '+');\n\n // strip delimiter\n phoneNumber = phoneNumber.replace(owner.delimiterRE, '');\n\n var result = '', current, validated = false;\n\n for (var i = 0, iMax = phoneNumber.length; i < iMax; i++) {\n current = owner.formatter.inputDigit(phoneNumber.charAt(i));\n\n // has ()- or space inside\n if (/[\\s()-]/g.test(current)) {\n result = current;\n\n validated = true;\n } else {\n if (!validated) {\n result = current;\n }\n // else: over length input\n // it turns to invalid number again\n }\n }\n\n // strip ()\n // e.g. US: 7161234567 returns (716) 123-4567\n result = result.replace(/[()]/g, '');\n // replace library delimiter with user customized delimiter\n result = result.replace(/[\\s-]/g, owner.delimiter);\n\n return result;\n }\n };\n\n module.exports = PhoneFormatter;\n\n\n /***/\n}),\n/* 5 */\n/***/ (function (module, exports) {\n\n 'use strict';\n\n var CreditCardDetector = {\n blocks: {\n uatp: [4, 5, 6],\n amex: [4, 6, 5],\n diners: [4, 6, 4],\n discover: [4, 4, 4, 4],\n mastercard: [4, 4, 4, 4],\n dankort: [4, 4, 4, 4],\n instapayment: [4, 4, 4, 4],\n jcb15: [4, 6, 5],\n jcb: [4, 4, 4, 4],\n maestro: [4, 4, 4, 4],\n visa: [4, 4, 4, 4],\n mir: [4, 4, 4, 4],\n unionPay: [4, 4, 4, 4],\n general: [4, 4, 4, 4],\n generalStrict: [4, 4, 4, 7]\n },\n\n re: {\n // starts with 1; 15 digits, not starts with 1800 (jcb card)\n uatp: /^(?!1800)1\\d{0,14}/,\n\n // starts with 34/37; 15 digits\n amex: /^3[47]\\d{0,13}/,\n\n // starts with 6011/65/644-649; 16 digits\n discover: /^(?:6011|65\\d{0,2}|64[4-9]\\d?)\\d{0,12}/,\n\n // starts with 300-305/309 or 36/38/39; 14 digits\n diners: /^3(?:0([0-5]|9)|[689]\\d?)\\d{0,11}/,\n\n // starts with 51-55/2221–2720; 16 digits\n mastercard: /^(5[1-5]\\d{0,2}|22[2-9]\\d{0,1}|2[3-7]\\d{0,2})\\d{0,12}/,\n\n // starts with 5019/4175/4571; 16 digits\n dankort: /^(5019|4175|4571)\\d{0,12}/,\n\n // starts with 637-639; 16 digits\n instapayment: /^63[7-9]\\d{0,13}/,\n\n // starts with 2131/1800; 15 digits\n jcb15: /^(?:2131|1800)\\d{0,11}/,\n\n // starts with 2131/1800/35; 16 digits\n jcb: /^(?:35\\d{0,2})\\d{0,12}/,\n\n // starts with 50/56-58/6304/67; 16 digits\n maestro: /^(?:5[0678]\\d{0,2}|6304|67\\d{0,2})\\d{0,12}/,\n\n // starts with 22; 16 digits\n mir: /^220[0-4]\\d{0,12}/,\n\n // starts with 4; 16 digits\n visa: /^4\\d{0,15}/,\n\n // starts with 62; 16 digits\n unionPay: /^62\\d{0,14}/\n },\n\n getInfo: function (value, strictMode) {\n var blocks = CreditCardDetector.blocks,\n re = CreditCardDetector.re;\n\n // Some credit card can have up to 19 digits number.\n // Set strictMode to true will remove the 16 max-length restrain,\n // however, I never found any website validate card number like\n // this, hence probably you don't want to enable this option.\n strictMode = !!strictMode;\n\n for (var key in re) {\n if (re[key].test(value)) {\n var block;\n\n if (strictMode) {\n block = blocks.generalStrict;\n } else {\n block = blocks[key];\n }\n\n return {\n type: key,\n blocks: block\n };\n }\n }\n\n return {\n type: 'unknown',\n blocks: strictMode ? blocks.generalStrict : blocks.general\n };\n }\n };\n\n module.exports = CreditCardDetector;\n\n\n /***/\n}),\n/* 6 */\n/***/ (function (module, exports) {\n\n 'use strict';\n\n var Util = {\n noop: function () {\n },\n\n strip: function (value, re) {\n return value.replace(re, '');\n },\n\n getPostDelimiter: function (value, delimiter, delimiters) {\n // single delimiter\n if (delimiters.length === 0) {\n return value.slice(-delimiter.length) === delimiter ? delimiter : '';\n }\n\n // multiple delimiters\n var matchedDelimiter = '';\n delimiters.forEach(function (current) {\n if (value.slice(-current.length) === current) {\n matchedDelimiter = current;\n }\n });\n\n return matchedDelimiter;\n },\n\n getDelimiterREByDelimiter: function (delimiter) {\n return new RegExp(delimiter.replace(/([.?*+^$[\\]\\\\(){}|-])/g, '\\\\$1'), 'g');\n },\n\n getNextCursorPosition: function (prevPos, oldValue, newValue, delimiter, delimiters) {\n // If cursor was at the end of value, just place it back.\n // Because new value could contain additional chars.\n if (oldValue.length === prevPos) {\n return newValue.length;\n }\n\n return prevPos + this.getPositionOffset(prevPos, oldValue, newValue, delimiter, delimiters);\n },\n\n getPositionOffset: function (prevPos, oldValue, newValue, delimiter, delimiters) {\n var oldRawValue, newRawValue, lengthOffset;\n\n oldRawValue = this.stripDelimiters(oldValue.slice(0, prevPos), delimiter, delimiters);\n newRawValue = this.stripDelimiters(newValue.slice(0, prevPos), delimiter, delimiters);\n lengthOffset = oldRawValue.length - newRawValue.length;\n\n return (lengthOffset !== 0) ? (lengthOffset / Math.abs(lengthOffset)) : 0;\n },\n\n stripDelimiters: function (value, delimiter, delimiters) {\n var owner = this;\n\n // single delimiter\n if (delimiters.length === 0) {\n var delimiterRE = delimiter ? owner.getDelimiterREByDelimiter(delimiter) : '';\n\n return value.replace(delimiterRE, '');\n }\n\n // multiple delimiters\n delimiters.forEach(function (current) {\n current.split('').forEach(function (letter) {\n value = value.replace(owner.getDelimiterREByDelimiter(letter), '');\n });\n });\n\n return value;\n },\n\n headStr: function (str, length) {\n return str.slice(0, length);\n },\n\n getMaxLength: function (blocks) {\n return blocks.reduce(function (previous, current) {\n return previous + current;\n }, 0);\n },\n\n // strip prefix\n // Before type | After type | Return value\n // PEFIX-... | PEFIX-... | ''\n // PREFIX-123 | PEFIX-123 | 123\n // PREFIX-123 | PREFIX-23 | 23\n // PREFIX-123 | PREFIX-1234 | 1234\n getPrefixStrippedValue: function (value, prefix, prefixLength, prevResult, delimiter, delimiters) {\n // No prefix\n if (prefixLength === 0) {\n return value;\n }\n\n // Pre result has issue\n // Revert to raw prefix\n if (prevResult.slice(0, prefixLength) !== prefix) {\n return '';\n }\n\n var prevValue = this.stripDelimiters(prevResult, delimiter, delimiters);\n\n // New value has issue, someone typed in between prefix letters\n // Revert to pre value\n if (value.slice(0, prefixLength) !== prefix) {\n return prevValue.slice(prefixLength);\n }\n\n // No issue, strip prefix for new value\n return value.slice(prefixLength);\n },\n\n getFirstDiffIndex: function (prev, current) {\n var index = 0;\n\n while (prev.charAt(index) === current.charAt(index)) {\n if (prev.charAt(index++) === '') {\n return -1;\n }\n }\n\n return index;\n },\n\n getFormattedValue: function (value, blocks, blocksLength, delimiter, delimiters, delimiterLazyShow) {\n var result = '',\n multipleDelimiters = delimiters.length > 0,\n currentDelimiter;\n\n // no options, normal input\n if (blocksLength === 0) {\n return value;\n }\n\n blocks.forEach(function (length, index) {\n if (value.length > 0) {\n var sub = value.slice(0, length),\n rest = value.slice(length);\n\n if (multipleDelimiters) {\n currentDelimiter = delimiters[delimiterLazyShow ? (index - 1) : index] || currentDelimiter;\n } else {\n currentDelimiter = delimiter;\n }\n\n if (delimiterLazyShow) {\n if (index > 0) {\n result += currentDelimiter;\n }\n\n result += sub;\n } else {\n result += sub;\n\n if (sub.length === length && index < blocksLength - 1) {\n result += currentDelimiter;\n }\n }\n\n // update remaining string\n value = rest;\n }\n });\n\n return result;\n },\n\n // move cursor to the end\n // the first time user focuses on an input with prefix\n fixPrefixCursor: function (el, prefix, delimiter, delimiters) {\n if (!el) {\n return;\n }\n\n var val = el.value,\n appendix = delimiter || (delimiters[0] || ' ');\n\n if (!el.setSelectionRange || !prefix || (prefix.length + appendix.length) < val.length) {\n return;\n }\n\n var len = val.length * 2;\n\n // set timeout to avoid blink\n setTimeout(function () {\n el.setSelectionRange(len, len);\n }, 1);\n },\n\n setSelection: function (element, position, doc) {\n if (element !== this.getActiveElement(doc)) {\n return;\n }\n\n // cursor is already in the end\n if (element && element.value.length <= position) {\n return;\n }\n\n if (element.createTextRange) {\n var range = element.createTextRange();\n\n range.move('character', position);\n range.select();\n } else {\n try {\n element.setSelectionRange(position, position);\n } catch (e) {\n // eslint-disable-next-line\n console.warn('The input element type does not support selection');\n }\n }\n },\n\n getActiveElement: function (parent) {\n var activeElement = parent.activeElement;\n if (activeElement && activeElement.shadowRoot) {\n return this.getActiveElement(activeElement.shadowRoot);\n }\n return activeElement;\n },\n\n isAndroid: function () {\n return navigator && /android/i.test(navigator.userAgent);\n },\n\n // On Android chrome, the keyup and keydown events\n // always return key code 229 as a composition that\n // buffers the user’s keystrokes\n // see https://github.com/nosir/cleave.js/issues/147\n isAndroidBackspaceKeydown: function (lastInputValue, currentInputValue) {\n if (!this.isAndroid() || !lastInputValue || !currentInputValue) {\n return false;\n }\n\n return currentInputValue === lastInputValue.slice(0, -1);\n }\n };\n\n module.exports = Util;\n\n\n /***/\n}),\n/* 7 */\n/***/ (function (module, exports) {\n\n\t/* WEBPACK VAR INJECTION */(function (global) {\n 'use strict';\n\n /**\n * Props Assignment\n *\n * Separate this, so react module can share the usage\n */\n var DefaultProperties = {\n // Maybe change to object-assign\n // for now just keep it as simple\n assign: function (target, opts) {\n target = target || {};\n opts = opts || {};\n\n // credit card\n target.creditCard = !!opts.creditCard;\n target.creditCardStrictMode = !!opts.creditCardStrictMode;\n target.creditCardType = '';\n target.onCreditCardTypeChanged = opts.onCreditCardTypeChanged || (function () { });\n\n // phone\n target.phone = !!opts.phone;\n target.phoneRegionCode = opts.phoneRegionCode || 'AU';\n target.phoneFormatter = {};\n\n // time\n target.time = !!opts.time;\n target.timePattern = opts.timePattern || ['h', 'm', 's'];\n target.timeFormat = opts.timeFormat || '24';\n target.timeFormatter = {};\n\n // date\n target.date = !!opts.date;\n target.datePattern = opts.datePattern || ['d', 'm', 'Y'];\n target.dateFormatter = {};\n\n // numeral\n target.numeral = !!opts.numeral;\n target.numeralIntegerScale = opts.numeralIntegerScale > 0 ? opts.numeralIntegerScale : 0;\n target.numeralDecimalScale = opts.numeralDecimalScale >= 0 ? opts.numeralDecimalScale : 2;\n target.numeralDecimalMark = opts.numeralDecimalMark || '.';\n target.numeralThousandsGroupStyle = opts.numeralThousandsGroupStyle || 'thousand';\n target.numeralPositiveOnly = !!opts.numeralPositiveOnly;\n target.stripLeadingZeroes = opts.stripLeadingZeroes !== false;\n\n // others\n target.numericOnly = target.creditCard || target.date || !!opts.numericOnly;\n\n target.uppercase = !!opts.uppercase;\n target.lowercase = !!opts.lowercase;\n\n target.prefix = (target.creditCard || target.date) ? '' : (opts.prefix || '');\n target.noImmediatePrefix = !!opts.noImmediatePrefix;\n target.prefixLength = target.prefix.length;\n target.rawValueTrimPrefix = !!opts.rawValueTrimPrefix;\n target.copyDelimiter = !!opts.copyDelimiter;\n\n target.initValue = (opts.initValue !== undefined && opts.initValue !== null) ? opts.initValue.toString() : '';\n\n target.delimiter =\n (opts.delimiter || opts.delimiter === '') ? opts.delimiter :\n (opts.date ? '/' :\n (opts.time ? ':' :\n (opts.numeral ? ',' :\n (opts.phone ? ' ' :\n ' '))));\n target.delimiterLength = target.delimiter.length;\n target.delimiterLazyShow = !!opts.delimiterLazyShow;\n target.delimiters = opts.delimiters || [];\n\n target.blocks = opts.blocks || [];\n target.blocksLength = target.blocks.length;\n\n target.root = (typeof global === 'object' && global) ? global : window;\n target.document = opts.document || target.root.document;\n\n target.maxLength = 0;\n\n target.backspace = false;\n target.result = '';\n\n target.onValueChanged = opts.onValueChanged || (function () { });\n\n return target;\n }\n };\n\n module.exports = DefaultProperties;\n\n /* WEBPACK VAR INJECTION */\n}.call(exports, (function () { return this; }())))\n\n /***/\n})\n/******/])\n});\n;","\n\n\n\n
\n \n \n \n \n
{error}
\n
","\n\n\n\n\n

{title}

\n\n\n\n
\n \n \n
","\n\n\n\n\n

SMS

\n\n

A code was sent to your Device {device}

\n\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n\n
{error}
\n","\n\n\n\n\n

U2F Security Key

\n

This Method is currently not supported. Please choose another one!

\n","\n\n\n\n
\n {#if !twofactor} \n

Select your Authentication method:

\n
    \n {#each twofactors as tf}\n
  • twofactor = tf}>\n
    \n \n
    \n\n
    \n {tf.name}\n
    \n
  • \n {/each}\n
\n {:else}\n {#if twofactor.type === TFATypes.OTC}\n \n {:else if twofactor.type === TFATypes.BACKUP_CODE}\n \n {:else if twofactor.type === TFATypes.U2F}\n \n {:else if twofactor.type === TFATypes.APP_ALLOW}\n \n {:else}\n
Invalid TwoFactor Method!
\n {/if}\n {/if}\n\n
","\n\n
\n
\n
\n

Login

\n
\n {#if loading}\n
\n
\n
\n
\n
\n {/if}\n
\n {#if state === states.redirect}\n \n {:else if state === states.credentials}\n loading = s} />\n {:else if state === states.twofactor}\n loading = s} />\n {/if}\n
\n
\n
\n
\n\t

Powered by {appname}

\n
\n\n","import App from './App.svelte';\n\nvar app = new App({\n target: document.getElementById(\"content\")\n});\n\nexport default app;"],"names":["sha","onMount","onDestroy","this","Cleave"],"mappings":"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CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAE,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,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"} \ No newline at end of file diff --git a/public/roboto/LICENSE.txt b/public/roboto/LICENSE.txt new file mode 100644 index 0000000..75b5248 --- /dev/null +++ b/public/roboto/LICENSE.txt @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/public/roboto/Roboto-Black.ttf b/public/roboto/Roboto-Black.ttf new file mode 100644 index 0000000..51c71bb Binary files /dev/null and b/public/roboto/Roboto-Black.ttf differ diff --git a/public/roboto/Roboto-BlackItalic.ttf b/public/roboto/Roboto-BlackItalic.ttf new file mode 100644 index 0000000..ca20ca3 Binary files /dev/null and b/public/roboto/Roboto-BlackItalic.ttf differ diff --git a/public/roboto/Roboto-Bold.ttf b/public/roboto/Roboto-Bold.ttf new file mode 100644 index 0000000..e612852 Binary files /dev/null and b/public/roboto/Roboto-Bold.ttf differ diff --git a/public/roboto/Roboto-BoldItalic.ttf b/public/roboto/Roboto-BoldItalic.ttf new file mode 100644 index 0000000..677bc04 Binary files /dev/null and b/public/roboto/Roboto-BoldItalic.ttf differ diff --git a/public/roboto/Roboto-Italic.ttf b/public/roboto/Roboto-Italic.ttf new file mode 100644 index 0000000..5fd05c3 Binary files /dev/null and b/public/roboto/Roboto-Italic.ttf differ diff --git a/public/roboto/Roboto-Light.ttf b/public/roboto/Roboto-Light.ttf new file mode 100644 index 0000000..4f1fb58 Binary files /dev/null and b/public/roboto/Roboto-Light.ttf differ diff --git a/public/roboto/Roboto-LightItalic.ttf b/public/roboto/Roboto-LightItalic.ttf new file mode 100644 index 0000000..eec0ae9 Binary files /dev/null and b/public/roboto/Roboto-LightItalic.ttf differ diff --git a/public/roboto/Roboto-Medium.ttf b/public/roboto/Roboto-Medium.ttf new file mode 100644 index 0000000..86d1c52 Binary files /dev/null and b/public/roboto/Roboto-Medium.ttf differ diff --git a/public/roboto/Roboto-MediumItalic.ttf b/public/roboto/Roboto-MediumItalic.ttf new file mode 100644 index 0000000..66aa174 Binary files /dev/null and b/public/roboto/Roboto-MediumItalic.ttf differ diff --git a/public/roboto/Roboto-Regular.ttf b/public/roboto/Roboto-Regular.ttf new file mode 100644 index 0000000..cb8ffcf Binary files /dev/null and b/public/roboto/Roboto-Regular.ttf differ diff --git a/public/roboto/Roboto-Regular.woff2 b/public/roboto/Roboto-Regular.woff2 new file mode 100644 index 0000000..1f81fc1 Binary files /dev/null and b/public/roboto/Roboto-Regular.woff2 differ diff --git a/public/roboto/Roboto-Thin.ttf b/public/roboto/Roboto-Thin.ttf new file mode 100644 index 0000000..a85eb7c Binary files /dev/null and b/public/roboto/Roboto-Thin.ttf differ diff --git a/public/roboto/Roboto-ThinItalic.ttf b/public/roboto/Roboto-ThinItalic.ttf new file mode 100644 index 0000000..ac77951 Binary files /dev/null and b/public/roboto/Roboto-ThinItalic.ttf differ diff --git a/public/serviceworker.js b/public/serviceworker.js new file mode 100644 index 0000000..e69de29 diff --git a/public/user.html b/public/user.html new file mode 100644 index 0000000..304cab2 --- /dev/null +++ b/public/user.html @@ -0,0 +1,21 @@ + + + + + + + + OpenAuth - User + + + + + + +
+ + + + + + \ No newline at end of file diff --git a/public/user.old/bundle.css b/public/user.old/bundle.css new file mode 100644 index 0000000..eed0d74 --- /dev/null +++ b/public/user.old/bundle.css @@ -0,0 +1,12 @@ +.loading.svelte-1ee89l3{background-color:rgba(0, 0, 0, 0.04);filter:blur(10px)}:root{--sidebar-width:250px}.root.svelte-1ee89l3{height:100%}.container.svelte-1ee89l3{display:grid;height:100%;grid-template-columns:auto 100%;grid-template-rows:60px auto 60px;grid-template-areas:"sidebar header" + "sidebar mc" + "sidebar footer" + }.header.svelte-1ee89l3{grid-area:header;background-color:var(--primary);padding:12px;display:flex}.header.svelte-1ee89l3>h1.svelte-1ee89l3{margin:0;padding:0;font-size:24px;line-height:36px;color:white;margin-left:2rem}.header.svelte-1ee89l3>button.svelte-1ee89l3{height:36px;background-color:transparent;border:none;font-size:20px}.header.svelte-1ee89l3>button.svelte-1ee89l3:hover{background-color:rgba(255, 255, 255, 0.151) + }.sidebar.svelte-1ee89l3{width:0;overflow:hidden;grid-area:sidebar;transition:width .2s;background-color:lightgrey;height:100%}.sidebar-visible.svelte-1ee89l3{width:var(--sidebar-width);transition:width .2s;box-shadow:10px 0px 10px 2px rgba(0, 0, 0, 0.52)}.content.svelte-1ee89l3{grid-area:mc;padding:1rem}.footer.svelte-1ee89l3{grid-area:footer}@media(min-width: 45rem){.container.svelte-1ee89l3{grid-template-columns:auto 1fr}.sidebar.svelte-1ee89l3{width:var(--sidebar-width);transition:all .2s;box-shadow:10px 0px 10px 2px rgba(0, 0, 0, 0.52)}.content.svelte-1ee89l3{padding:2rem}}.loader_container.svelte-1ee89l3{position:absolute;display:flex;flex-direction:column;justify-content:center;top:0;bottom:0;left:0;right:0;z-index:2} +:root{--rel-size:0.75rem}.container.svelte-zltjsn{height:calc(var(--rel-size) * 3);padding:var(--rel-size);display:flex;align-items:center}.icon.svelte-zltjsn{width:calc(var(--rel-size) * 3);height:calc(var(--rel-size) * 3)}.icon.svelte-zltjsn>img.svelte-zltjsn{width:calc(var(--rel-size) * 3);height:calc(var(--rel-size) * 3)}.title.svelte-zltjsn{margin-left:var(--rel-size)} +.btn.svelte-1lc4uv{background-color:var(--primary);margin:auto 0;margin-left:1rem;font-size:1rem;padding:0 0.5rem}.floating.svelte-1lc4uv{margin-bottom:0}.input-container.svelte-1lc4uv{display:flex}.input-container.svelte-1lc4uv>.svelte-1lc4uv:first-child{flex-grow:1}select.svelte-1lc4uv{background-color:unset;border:0;border-radius:0;color:unset;font-size:unset;border-bottom:1px solid #757575;-moz-appearance:none;-webkit-appearance:none;appearance:none;height:100%;width:100%}select.svelte-1lc4uv>option.svelte-1lc4uv{background-color:unset}.select-wrapper.svelte-1lc4uv{position:relative}.select-wrapper.svelte-1lc4uv::after{content:">";display:block;position:absolute;right:2rem;top:0;bottom:0;width:1rem;transform:rotate(90deg) scaleY(2)}.error.svelte-1lc4uv{color:var(--error)} +.btn.svelte-hfyfkx{background-color:var(--primary);margin:auto 0;margin-left:1rem;font-size:1rem;padding:0 0.5rem}.input-container>.svelte-hfyfkx:first-child{flex-grow:1} +.box.svelte-yv48ir{border-radius:4px;box-shadow:0 8px 12px rgba(0, 0, 0, 0.30), 0 5px 4px rgba(0, 0, 0, 0.22);padding:2rem;margin-bottom:1rem;background-color:white}.box.svelte-yv48ir>h1{margin:0;margin-bottom:1rem;color:#444444;font-size:1.3rem}.box.svelte-yv48ir>div{padding:16px;border-top:1px solid var(--border-color);word-wrap:break-word}.box.svelte-yv48ir>div:first-of-type{border-top:none}@media(min-width: 45rem){.box.svelte-yv48ir{margin-bottom:2rem}} +.root.svelte-1h07xvd:hover{background-color:rgba(0, 0, 0, 0.04)}.container.svelte-1h07xvd{display:flex;flex-direction:row}.values.svelte-1h07xvd{flex-grow:1;display:flex;flex-direction:column;max-width:calc(100% - var(--default-font-size) - 16px)}.values.svelte-1h07xvd>div.svelte-1h07xvd:first-child{transform-origin:left;transform:scale(0.95);margin-right:24px;font-weight:500}.values.svelte-1h07xvd>div.svelte-1h07xvd:nth-child(2){color:black}svg{margin:auto 8px auto 8px;height:var(--default-font-size);min-width:var(--default-font-size)}.body.svelte-1h07xvd{box-sizing:border-box;padding:.1px;margin-top:2rem}@media(min-width: 45rem){.values.svelte-1h07xvd{flex-direction:row}.values.svelte-1h07xvd>div.svelte-1h07xvd:first-child{transform:unset;flex-basis:120px;min-width:120px}}.highlight-element.svelte-1h07xvd{background-color:#7bff003b} + +/*# sourceMappingURL=bundle.css.map */ \ No newline at end of file diff --git a/public/user.old/bundle.css.map b/public/user.old/bundle.css.map new file mode 100644 index 0000000..06b398d --- /dev/null +++ b/public/user.old/bundle.css.map @@ -0,0 +1,22 @@ +{ + "version": 3, + "file": "bundle.css", + "sources": [ + "../../src/User/App.svelte", + "../../src/User/NavigationBar.svelte", + "../../src/User/Pages/Account.svelte", + "../../src/User/Pages/Security.svelte", + "../../src/User/Pages/Box.svelte", + "../../src/User/Pages/BoxItem.svelte" + ], + "sourcesContent": [ + "\n
\n
\n
\n {#if sidebar_button}\n \n {/if}\n

{page.title}

\n
\n
\n \n
\n
\n {#if page.id === \"account\"}\n \n {:else if page.id === \"security\"}\n \n {/if}\n
\n
\n
\n
\n\n{#if loading}\n
\n
\n
\n
\n
\n{/if}\n\n", + "\n\n\n\n{#each pages as page}\n
open(page.id)}>\n
\n

\n {page.title}\n

\n
\n{/each}", + "\n\n\n\n\n

Profile

\n {#if error}\n

{error}

\n {/if}\n \n
\n
\n \n \n \n \n
\n \n
\n
\n \n
\n
\n \n
\n \n
\n
\n \n \n
\n\n\n

Contact

\n \n \n
", + "\n\n\n\n

Two Factor

\n\n \n
\n\n\n

Anmeldungen

\n\n {#each token as t}\n \n \n \n {:else}\n No Tokens\n {/each}\n\n \n
\n\n\n", + "\n\n
\n \n
", + "\n\n\n\n
\n
open=!open}>\n
\n
{name}
\n
\n {#if Array.isArray(value)}\n {#each value as v, i}\n {v}\n {#if i < value.length - 1}\n
\n {/if}\n {/each}\n {:else}\n {value}\n {/if}\n
\n
\n \n
\n {#if open}\n
\n \n
\n {/if}\n
" + ], + "names": [], + "mappings": "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" +} \ No newline at end of file diff --git a/public/user.old/bundle.js b/public/user.old/bundle.js new file mode 100644 index 0000000..896aebd --- /dev/null +++ b/public/user.old/bundle.js @@ -0,0 +1,4588 @@ +var app = (function () { + 'use strict'; + + function unwrapExports (x) { + return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x; + } + + function createCommonjsModule(fn, module) { + return module = { exports: {} }, fn(module, module.exports), module.exports; + } + + var internal = createCommonjsModule(function (module, exports) { + + Object.defineProperty(exports, '__esModule', { value: true }); + + function noop() {} + + const identity = x => x; + + function assign(tar, src) { + for (const k in src) tar[k] = src[k]; + return tar; + } + + function is_promise(value) { + return value && typeof value.then === 'function'; + } + + function add_location(element, file, line, column, char) { + element.__svelte_meta = { + loc: { file, line, column, char } + }; + } + + function run(fn) { + return fn(); + } + + function blank_object() { + return Object.create(null); + } + + function run_all(fns) { + fns.forEach(run); + } + + function is_function(thing) { + return typeof thing === 'function'; + } + + function safe_not_equal(a, b) { + return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function'); + } + + function not_equal(a, b) { + return a != a ? b == b : a !== b; + } + + function validate_store(store, name) { + if (!store || typeof store.subscribe !== 'function') { + throw new Error(`'${name}' is not a store with a 'subscribe' method`); + } + } + + function subscribe(component, store, callback) { + const unsub = store.subscribe(callback); + + component.$$.on_destroy.push(unsub.unsubscribe + ? () => unsub.unsubscribe() + : unsub); + } + + function create_slot(definition, ctx, fn) { + if (definition) { + const slot_ctx = get_slot_context(definition, ctx, fn); + return definition[0](slot_ctx); + } + } + + function get_slot_context(definition, ctx, fn) { + return definition[1] + ? assign({}, assign(ctx.$$scope.ctx, definition[1](fn ? fn(ctx) : {}))) + : ctx.$$scope.ctx; + } + + function get_slot_changes(definition, ctx, changed, fn) { + return definition[1] + ? assign({}, assign(ctx.$$scope.changed || {}, definition[1](fn ? fn(changed) : {}))) + : ctx.$$scope.changed || {}; + } + + function exclude_internal_props(props) { + const result = {}; + for (const k in props) if (k[0] !== '$') result[k] = props[k]; + return result; + } + + const tasks = new Set(); + let running = false; + + function run_tasks() { + tasks.forEach(task => { + if (!task[0](window.performance.now())) { + tasks.delete(task); + task[1](); + } + }); + + running = tasks.size > 0; + if (running) requestAnimationFrame(run_tasks); + } + + function clear_loops() { + // for testing... + tasks.forEach(task => tasks.delete(task)); + running = false; + } + + function loop(fn) { + let task; + + if (!running) { + running = true; + requestAnimationFrame(run_tasks); + } + + return { + promise: new Promise(fulfil => { + tasks.add(task = [fn, fulfil]); + }), + abort() { + tasks.delete(task); + } + }; + } + + function append(target, node) { + target.appendChild(node); + } + + function insert(target, node, anchor) { + target.insertBefore(node, anchor); + } + + function detach(node) { + node.parentNode.removeChild(node); + } + + function detach_between(before, after) { + while (before.nextSibling && before.nextSibling !== after) { + before.parentNode.removeChild(before.nextSibling); + } + } + + function detach_before(after) { + while (after.previousSibling) { + after.parentNode.removeChild(after.previousSibling); + } + } + + function detach_after(before) { + while (before.nextSibling) { + before.parentNode.removeChild(before.nextSibling); + } + } + + function destroy_each(iterations, detaching) { + for (let i = 0; i < iterations.length; i += 1) { + if (iterations[i]) iterations[i].d(detaching); + } + } + + function element(name) { + return document.createElement(name); + } + + function svg_element(name) { + return document.createElementNS('http://www.w3.org/2000/svg', name); + } + + function text(data) { + return document.createTextNode(data); + } + + function space() { + return text(' '); + } + + function empty() { + return text(''); + } + + function listen(node, event, handler, options) { + node.addEventListener(event, handler, options); + return () => node.removeEventListener(event, handler, options); + } + + function prevent_default(fn) { + return function(event) { + event.preventDefault(); + return fn.call(this, event); + }; + } + + function stop_propagation(fn) { + return function(event) { + event.stopPropagation(); + return fn.call(this, event); + }; + } + + function attr(node, attribute, value) { + if (value == null) node.removeAttribute(attribute); + else node.setAttribute(attribute, value); + } + + function set_attributes(node, attributes) { + for (const key in attributes) { + if (key === 'style') { + node.style.cssText = attributes[key]; + } else if (key in node) { + node[key] = attributes[key]; + } else { + attr(node, key, attributes[key]); + } + } + } + + function set_custom_element_data(node, prop, value) { + if (prop in node) { + node[prop] = value; + } else { + attr(node, prop, value); + } + } + + function xlink_attr(node, attribute, value) { + node.setAttributeNS('http://www.w3.org/1999/xlink', attribute, value); + } + + function get_binding_group_value(group) { + const value = []; + for (let i = 0; i < group.length; i += 1) { + if (group[i].checked) value.push(group[i].__value); + } + return value; + } + + function to_number(value) { + return value === '' ? undefined : +value; + } + + function time_ranges_to_array(ranges) { + const array = []; + for (let i = 0; i < ranges.length; i += 1) { + array.push({ start: ranges.start(i), end: ranges.end(i) }); + } + return array; + } + + function children(element) { + return Array.from(element.childNodes); + } + + function claim_element(nodes, name, attributes, svg) { + for (let i = 0; i < nodes.length; i += 1) { + const node = nodes[i]; + if (node.nodeName === name) { + for (let j = 0; j < node.attributes.length; j += 1) { + const attribute = node.attributes[j]; + if (!attributes[attribute.name]) node.removeAttribute(attribute.name); + } + return nodes.splice(i, 1)[0]; // TODO strip unwanted attributes + } + } + + return svg ? svg_element(name) : element(name); + } + + function claim_text(nodes, data) { + for (let i = 0; i < nodes.length; i += 1) { + const node = nodes[i]; + if (node.nodeType === 3) { + node.data = data; + return nodes.splice(i, 1)[0]; + } + } + + return text(data); + } + + function set_data(text, data) { + data = '' + data; + if (text.data !== data) text.data = data; + } + + function set_input_type(input, type) { + try { + input.type = type; + } catch (e) { + // do nothing + } + } + + function set_style(node, key, value) { + node.style.setProperty(key, value); + } + + function select_option(select, value) { + for (let i = 0; i < select.options.length; i += 1) { + const option = select.options[i]; + + if (option.__value === value) { + option.selected = true; + return; + } + } + } + + function select_options(select, value) { + for (let i = 0; i < select.options.length; i += 1) { + const option = select.options[i]; + option.selected = ~value.indexOf(option.__value); + } + } + + function select_value(select) { + const selected_option = select.querySelector(':checked') || select.options[0]; + return selected_option && selected_option.__value; + } + + function select_multiple_value(select) { + return [].map.call(select.querySelectorAll(':checked'), option => option.__value); + } + + function add_resize_listener(element, fn) { + if (getComputedStyle(element).position === 'static') { + element.style.position = 'relative'; + } + + const object = document.createElement('object'); + object.setAttribute('style', 'display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; pointer-events: none; z-index: -1;'); + object.type = 'text/html'; + + let win; + + object.onload = () => { + win = object.contentDocument.defaultView; + win.addEventListener('resize', fn); + }; + + if (/Trident/.test(navigator.userAgent)) { + element.appendChild(object); + object.data = 'about:blank'; + } else { + object.data = 'about:blank'; + element.appendChild(object); + } + + return { + cancel: () => { + win && win.removeEventListener && win.removeEventListener('resize', fn); + element.removeChild(object); + } + }; + } + + function toggle_class(element, name, toggle) { + element.classList[toggle ? 'add' : 'remove'](name); + } + + function custom_event(type, detail) { + const e = document.createEvent('CustomEvent'); + e.initCustomEvent(type, false, false, detail); + return e; + } + + let stylesheet; + let active = 0; + let current_rules = {}; + + // https://github.com/darkskyapp/string-hash/blob/master/index.js + function hash(str) { + let hash = 5381; + let i = str.length; + + while (i--) hash = ((hash << 5) - hash) ^ str.charCodeAt(i); + return hash >>> 0; + } + + function create_rule(node, a, b, duration, delay, ease, fn, uid = 0) { + const step = 16.666 / duration; + let keyframes = '{\n'; + + for (let p = 0; p <= 1; p += step) { + const t = a + (b - a) * ease(p); + keyframes += p * 100 + `%{${fn(t, 1 - t)}}\n`; + } + + const rule = keyframes + `100% {${fn(b, 1 - b)}}\n}`; + const name = `__svelte_${hash(rule)}_${uid}`; + + if (!current_rules[name]) { + if (!stylesheet) { + const style = element('style'); + document.head.appendChild(style); + stylesheet = style.sheet; + } + + current_rules[name] = true; + stylesheet.insertRule(`@keyframes ${name} ${rule}`, stylesheet.cssRules.length); + } + + const animation = node.style.animation || ''; + node.style.animation = `${animation ? `${animation}, ` : ``}${name} ${duration}ms linear ${delay}ms 1 both`; + + active += 1; + return name; + } + + function delete_rule(node, name) { + node.style.animation = (node.style.animation || '') + .split(', ') + .filter(name + ? anim => anim.indexOf(name) < 0 // remove specific animation + : anim => anim.indexOf('__svelte') === -1 // remove all Svelte animations + ) + .join(', '); + + if (name && !--active) clear_rules(); + } + + function clear_rules() { + requestAnimationFrame(() => { + if (active) return; + let i = stylesheet.cssRules.length; + while (i--) stylesheet.deleteRule(i); + current_rules = {}; + }); + } + + function create_animation(node, from, fn, params) { + if (!from) return noop; + + const to = node.getBoundingClientRect(); + if (from.left === to.left && from.right === to.right && from.top === to.top && from.bottom === to.bottom) return noop; + + const { + delay = 0, + duration = 300, + easing = identity, + start: start_time = window.performance.now() + delay, + end = start_time + duration, + tick = noop, + css + } = fn(node, { from, to }, params); + + let running = true; + let started = false; + let name; + + const css_text = node.style.cssText; + + function start() { + if (css) { + if (delay) node.style.cssText = css_text; // TODO create delayed animation instead? + name = create_rule(node, 0, 1, duration, 0, easing, css); + } + + started = true; + } + + function stop() { + if (css) delete_rule(node, name); + running = false; + } + + loop(now => { + if (!started && now >= start_time) { + start(); + } + + if (started && now >= end) { + tick(1, 0); + stop(); + } + + if (!running) { + return false; + } + + if (started) { + const p = now - start_time; + const t = 0 + 1 * easing(p / duration); + tick(t, 1 - t); + } + + return true; + }); + + if (delay) { + if (css) node.style.cssText += css(0, 1); + } else { + start(); + } + + tick(0, 1); + + return stop; + } + + function fix_position(node) { + const style = getComputedStyle(node); + + if (style.position !== 'absolute' && style.position !== 'fixed') { + const { width, height } = style; + const a = node.getBoundingClientRect(); + node.style.position = 'absolute'; + node.style.width = width; + node.style.height = height; + const b = node.getBoundingClientRect(); + + if (a.left !== b.left || a.top !== b.top) { + const style = getComputedStyle(node); + const transform = style.transform === 'none' ? '' : style.transform; + + node.style.transform = `${transform} translate(${a.left - b.left}px, ${a.top - b.top}px)`; + } + } + } + + function set_current_component(component) { + exports.current_component = component; + } + + function get_current_component() { + if (!exports.current_component) throw new Error(`Function called outside component initialization`); + return exports.current_component; + } + + function beforeUpdate(fn) { + get_current_component().$$.before_render.push(fn); + } + + function onMount(fn) { + get_current_component().$$.on_mount.push(fn); + } + + function afterUpdate(fn) { + get_current_component().$$.after_render.push(fn); + } + + function onDestroy(fn) { + get_current_component().$$.on_destroy.push(fn); + } + + function createEventDispatcher() { + const component = exports.current_component; + + return (type, detail) => { + const callbacks = component.$$.callbacks[type]; + + if (callbacks) { + // TODO are there situations where events could be dispatched + // in a server (non-DOM) environment? + const event = custom_event(type, detail); + callbacks.slice().forEach(fn => { + fn.call(component, event); + }); + } + }; + } + + function setContext(key, context) { + get_current_component().$$.context.set(key, context); + } + + function getContext(key) { + return get_current_component().$$.context.get(key); + } + + // TODO figure out if we still want to support + // shorthand events, or if we want to implement + // a real bubbling mechanism + function bubble(component, event) { + const callbacks = component.$$.callbacks[event.type]; + + if (callbacks) { + callbacks.slice().forEach(fn => fn(event)); + } + } + + const dirty_components = []; + const intros = { enabled: false }; + + const resolved_promise = Promise.resolve(); + let update_scheduled = false; + const binding_callbacks = []; + const render_callbacks = []; + const flush_callbacks = []; + + function schedule_update() { + if (!update_scheduled) { + update_scheduled = true; + resolved_promise.then(flush); + } + } + + function tick() { + schedule_update(); + return resolved_promise; + } + + function add_binding_callback(fn) { + binding_callbacks.push(fn); + } + + function add_render_callback(fn) { + render_callbacks.push(fn); + } + + function add_flush_callback(fn) { + flush_callbacks.push(fn); + } + + function flush() { + const seen_callbacks = new Set(); + + do { + // first, call beforeUpdate functions + // and update components + while (dirty_components.length) { + const component = dirty_components.shift(); + set_current_component(component); + update(component.$$); + } + + while (binding_callbacks.length) binding_callbacks.shift()(); + + // then, once components are updated, call + // afterUpdate functions. This may cause + // subsequent updates... + while (render_callbacks.length) { + const callback = render_callbacks.pop(); + if (!seen_callbacks.has(callback)) { + callback(); + + // ...so guard against infinite loops + seen_callbacks.add(callback); + } + } + } while (dirty_components.length); + + while (flush_callbacks.length) { + flush_callbacks.pop()(); + } + + update_scheduled = false; + } + + function update($$) { + if ($$.fragment) { + $$.update($$.dirty); + run_all($$.before_render); + $$.fragment.p($$.dirty, $$.ctx); + $$.dirty = null; + + $$.after_render.forEach(add_render_callback); + } + } + + let promise; + + function wait() { + if (!promise) { + promise = Promise.resolve(); + promise.then(() => { + promise = null; + }); + } + + return promise; + } + + function dispatch(node, direction, kind) { + node.dispatchEvent(custom_event(`${direction ? 'intro' : 'outro'}${kind}`)); + } + + let outros; + + function group_outros() { + outros = { + remaining: 0, + callbacks: [] + }; + } + + function check_outros() { + if (!outros.remaining) { + run_all(outros.callbacks); + } + } + + function on_outro(callback) { + outros.callbacks.push(callback); + } + + function create_in_transition(node, fn, params) { + let config = fn(node, params); + let running = false; + let animation_name; + let task; + let uid = 0; + + function cleanup() { + if (animation_name) delete_rule(node, animation_name); + } + + function go() { + const { + delay = 0, + duration = 300, + easing = identity, + tick: tick$$1 = noop, + css + } = config; + + if (css) animation_name = create_rule(node, 0, 1, duration, delay, easing, css, uid++); + tick$$1(0, 1); + + const start_time = window.performance.now() + delay; + const end_time = start_time + duration; + + if (task) task.abort(); + running = true; + + task = loop(now => { + if (running) { + if (now >= end_time) { + tick$$1(1, 0); + cleanup(); + return running = false; + } + + if (now >= start_time) { + const t = easing((now - start_time) / duration); + tick$$1(t, 1 - t); + } + } + + return running; + }); + } + + let started = false; + + return { + start() { + if (started) return; + + delete_rule(node); + + if (typeof config === 'function') { + config = config(); + wait().then(go); + } else { + go(); + } + }, + + invalidate() { + started = false; + }, + + end() { + if (running) { + cleanup(); + running = false; + } + } + }; + } + + function create_out_transition(node, fn, params) { + let config = fn(node, params); + let running = true; + let animation_name; + + const group = outros; + + group.remaining += 1; + + function go() { + const { + delay = 0, + duration = 300, + easing = identity, + tick: tick$$1 = noop, + css + } = config; + + if (css) animation_name = create_rule(node, 1, 0, duration, delay, easing, css); + + const start_time = window.performance.now() + delay; + const end_time = start_time + duration; + + loop(now => { + if (running) { + if (now >= end_time) { + tick$$1(0, 1); + + if (!--group.remaining) { + // this will result in `end()` being called, + // so we don't need to clean up here + run_all(group.callbacks); + } + + return false; + } + + if (now >= start_time) { + const t = easing((now - start_time) / duration); + tick$$1(1 - t, t); + } + } + + return running; + }); + } + + if (typeof config === 'function') { + wait().then(() => { + config = config(); + go(); + }); + } else { + go(); + } + + return { + end(reset) { + if (reset && config.tick) { + config.tick(1, 0); + } + + if (running) { + if (animation_name) delete_rule(node, animation_name); + running = false; + } + } + }; + } + + function create_bidirectional_transition(node, fn, params, intro) { + let config = fn(node, params); + + let t = intro ? 0 : 1; + + let running_program = null; + let pending_program = null; + let animation_name = null; + + function clear_animation() { + if (animation_name) delete_rule(node, animation_name); + } + + function init(program, duration) { + const d = program.b - t; + duration *= Math.abs(d); + + return { + a: t, + b: program.b, + d, + duration, + start: program.start, + end: program.start + duration, + group: program.group + }; + } + + function go(b) { + const { + delay = 0, + duration = 300, + easing = identity, + tick: tick$$1 = noop, + css + } = config; + + const program = { + start: window.performance.now() + delay, + b + }; + + if (!b) { + program.group = outros; + outros.remaining += 1; + } + + if (running_program) { + pending_program = program; + } else { + // if this is an intro, and there's a delay, we need to do + // an initial tick and/or apply CSS animation immediately + if (css) { + clear_animation(); + animation_name = create_rule(node, t, b, duration, delay, easing, css); + } + + if (b) tick$$1(0, 1); + + running_program = init(program, duration); + add_render_callback(() => dispatch(node, b, 'start')); + + loop(now => { + if (pending_program && now > pending_program.start) { + running_program = init(pending_program, duration); + pending_program = null; + + dispatch(node, running_program.b, 'start'); + + if (css) { + clear_animation(); + animation_name = create_rule(node, t, running_program.b, running_program.duration, 0, easing, config.css); + } + } + + if (running_program) { + if (now >= running_program.end) { + tick$$1(t = running_program.b, 1 - t); + dispatch(node, running_program.b, 'end'); + + if (!pending_program) { + // we're done + if (running_program.b) { + // intro — we can tidy up immediately + clear_animation(); + } else { + // outro — needs to be coordinated + if (!--running_program.group.remaining) run_all(running_program.group.callbacks); + } + } + + running_program = null; + } + + else if (now >= running_program.start) { + const p = now - running_program.start; + t = running_program.a + running_program.d * easing(p / running_program.duration); + tick$$1(t, 1 - t); + } + } + + return !!(running_program || pending_program); + }); + } + } + + return { + run(b) { + if (typeof config === 'function') { + wait().then(() => { + config = config(); + go(b); + }); + } else { + go(b); + } + }, + + end() { + clear_animation(); + running_program = pending_program = null; + } + }; + } + + function handle_promise(promise, info) { + const token = info.token = {}; + + function update(type, index, key, value) { + if (info.token !== token) return; + + info.resolved = key && { [key]: value }; + + const child_ctx = assign(assign({}, info.ctx), info.resolved); + const block = type && (info.current = type)(child_ctx); + + if (info.block) { + if (info.blocks) { + info.blocks.forEach((block, i) => { + if (i !== index && block) { + group_outros(); + on_outro(() => { + block.d(1); + info.blocks[i] = null; + }); + block.o(1); + check_outros(); + } + }); + } else { + info.block.d(1); + } + + block.c(); + if (block.i) block.i(1); + block.m(info.mount(), info.anchor); + + flush(); + } + + info.block = block; + if (info.blocks) info.blocks[index] = block; + } + + if (is_promise(promise)) { + promise.then(value => { + update(info.then, 1, info.value, value); + }, error => { + update(info.catch, 2, info.error, error); + }); + + // if we previously had a then/catch block, destroy it + if (info.current !== info.pending) { + update(info.pending, 0); + return true; + } + } else { + if (info.current !== info.then) { + update(info.then, 1, info.value, promise); + return true; + } + + info.resolved = { [info.value]: promise }; + } + } + + function destroy_block(block, lookup) { + block.d(1); + lookup.delete(block.key); + } + + function outro_and_destroy_block(block, lookup) { + on_outro(() => { + destroy_block(block, lookup); + }); + + block.o(1); + } + + function fix_and_outro_and_destroy_block(block, lookup) { + block.f(); + outro_and_destroy_block(block, lookup); + } + + function update_keyed_each(old_blocks, changed, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block, next, get_context) { + let o = old_blocks.length; + let n = list.length; + + let i = o; + const old_indexes = {}; + while (i--) old_indexes[old_blocks[i].key] = i; + + const new_blocks = []; + const new_lookup = new Map(); + const deltas = new Map(); + + i = n; + while (i--) { + const child_ctx = get_context(ctx, list, i); + const key = get_key(child_ctx); + let block = lookup.get(key); + + if (!block) { + block = create_each_block(key, child_ctx); + block.c(); + } else if (dynamic) { + block.p(changed, child_ctx); + } + + new_lookup.set(key, new_blocks[i] = block); + + if (key in old_indexes) deltas.set(key, Math.abs(i - old_indexes[key])); + } + + const will_move = new Set(); + const did_move = new Set(); + + function insert(block) { + if (block.i) block.i(1); + block.m(node, next); + lookup.set(block.key, block); + next = block.first; + n--; + } + + while (o && n) { + const new_block = new_blocks[n - 1]; + const old_block = old_blocks[o - 1]; + const new_key = new_block.key; + const old_key = old_block.key; + + if (new_block === old_block) { + // do nothing + next = new_block.first; + o--; + n--; + } + + else if (!new_lookup.has(old_key)) { + // remove old block + destroy(old_block, lookup); + o--; + } + + else if (!lookup.has(new_key) || will_move.has(new_key)) { + insert(new_block); + } + + else if (did_move.has(old_key)) { + o--; + + } else if (deltas.get(new_key) > deltas.get(old_key)) { + did_move.add(new_key); + insert(new_block); + + } else { + will_move.add(old_key); + o--; + } + } + + while (o--) { + const old_block = old_blocks[o]; + if (!new_lookup.has(old_block.key)) destroy(old_block, lookup); + } + + while (n) insert(new_blocks[n - 1]); + + return new_blocks; + } + + function measure(blocks) { + const rects = {}; + let i = blocks.length; + while (i--) rects[blocks[i].key] = blocks[i].node.getBoundingClientRect(); + return rects; + } + + function get_spread_update(levels, updates) { + const update = {}; + + const to_null_out = {}; + const accounted_for = {}; + + let i = levels.length; + while (i--) { + const o = levels[i]; + const n = updates[i]; + + if (n) { + for (const key in o) { + if (!(key in n)) to_null_out[key] = 1; + } + + for (const key in n) { + if (!accounted_for[key]) { + update[key] = n[key]; + accounted_for[key] = 1; + } + } + + levels[i] = n; + } else { + for (const key in o) { + accounted_for[key] = 1; + } + } + } + + for (const key in to_null_out) { + if (!(key in update)) update[key] = undefined; + } + + return update; + } + + const invalid_attribute_name_character = /[\s'">/=\u{FDD0}-\u{FDEF}\u{FFFE}\u{FFFF}\u{1FFFE}\u{1FFFF}\u{2FFFE}\u{2FFFF}\u{3FFFE}\u{3FFFF}\u{4FFFE}\u{4FFFF}\u{5FFFE}\u{5FFFF}\u{6FFFE}\u{6FFFF}\u{7FFFE}\u{7FFFF}\u{8FFFE}\u{8FFFF}\u{9FFFE}\u{9FFFF}\u{AFFFE}\u{AFFFF}\u{BFFFE}\u{BFFFF}\u{CFFFE}\u{CFFFF}\u{DFFFE}\u{DFFFF}\u{EFFFE}\u{EFFFF}\u{FFFFE}\u{FFFFF}\u{10FFFE}\u{10FFFF}]/u; + // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2 + // https://infra.spec.whatwg.org/#noncharacter + + function spread(args) { + const attributes = Object.assign({}, ...args); + let str = ''; + + Object.keys(attributes).forEach(name => { + if (invalid_attribute_name_character.test(name)) return; + + const value = attributes[name]; + if (value === undefined) return; + if (value === true) str += " " + name; + + const escaped = String(value) + .replace(/"/g, '"') + .replace(/'/g, '''); + + str += " " + name + "=" + JSON.stringify(escaped); + }); + + return str; + } + + const escaped = { + '"': '"', + "'": ''', + '&': '&', + '<': '<', + '>': '>' + }; + + function escape(html) { + return String(html).replace(/["'&<>]/g, match => escaped[match]); + } + + function each(items, fn) { + let str = ''; + for (let i = 0; i < items.length; i += 1) { + str += fn(items[i], i); + } + return str; + } + + const missing_component = { + $$render: () => '' + }; + + function validate_component(component, name) { + if (!component || !component.$$render) { + if (name === 'svelte:component') name += ' this={...}'; + throw new Error(`<${name}> is not a valid SSR component. You may need to review your build config to ensure that dependencies are compiled, rather than imported as pre-compiled modules`); + } + + return component; + } + + function debug(file, line, column, values) { + console.log(`{@debug} ${file ? file + ' ' : ''}(${line}:${column})`); // eslint-disable-line no-console + console.log(values); // eslint-disable-line no-console + return ''; + } + + let on_destroy; + + function create_ssr_component(fn) { + function $$render(result, props, bindings, slots) { + const parent_component = exports.current_component; + + const $$ = { + on_destroy, + context: new Map(parent_component ? parent_component.$$.context : []), + + // these will be immediately discarded + on_mount: [], + before_render: [], + after_render: [], + callbacks: blank_object() + }; + + set_current_component({ $$ }); + + const html = fn(result, props, bindings, slots); + + set_current_component(parent_component); + return html; + } + + return { + render: (props = {}, options = {}) => { + on_destroy = []; + + const result = { head: '', css: new Set() }; + const html = $$render(result, props, {}, options); + + run_all(on_destroy); + + return { + html, + css: { + code: Array.from(result.css).map(css => css.code).join('\n'), + map: null // TODO + }, + head: result.head + }; + }, + + $$render + }; + } + + function get_store_value(store) { + let value; + store.subscribe(_ => value = _)(); + return value; + } + + function bind(component, name, callback) { + if (component.$$.props.indexOf(name) === -1) return; + component.$$.bound[name] = callback; + callback(component.$$.ctx[name]); + } + + function mount_component(component, target, anchor) { + const { fragment, on_mount, on_destroy, after_render } = component.$$; + + fragment.m(target, anchor); + + // onMount happens after the initial afterUpdate. Because + // afterUpdate callbacks happen in reverse order (inner first) + // we schedule onMount callbacks before afterUpdate callbacks + add_render_callback(() => { + const new_on_destroy = on_mount.map(run).filter(is_function); + if (on_destroy) { + on_destroy.push(...new_on_destroy); + } else { + // Edge case - component was destroyed immediately, + // most likely as a result of a binding initialising + run_all(new_on_destroy); + } + component.$$.on_mount = []; + }); + + after_render.forEach(add_render_callback); + } + + function destroy(component, detaching) { + if (component.$$) { + run_all(component.$$.on_destroy); + component.$$.fragment.d(detaching); + + // TODO null out other refs, including component.$$ (but need to + // preserve final state?) + component.$$.on_destroy = component.$$.fragment = null; + component.$$.ctx = {}; + } + } + + function make_dirty(component, key) { + if (!component.$$.dirty) { + dirty_components.push(component); + schedule_update(); + component.$$.dirty = {}; + } + component.$$.dirty[key] = true; + } + + function init(component, options, instance, create_fragment, not_equal$$1, prop_names) { + const parent_component = exports.current_component; + set_current_component(component); + + const props = options.props || {}; + + const $$ = component.$$ = { + fragment: null, + ctx: null, + + // state + props: prop_names, + update: noop, + not_equal: not_equal$$1, + bound: blank_object(), + + // lifecycle + on_mount: [], + on_destroy: [], + before_render: [], + after_render: [], + context: new Map(parent_component ? parent_component.$$.context : []), + + // everything else + callbacks: blank_object(), + dirty: null + }; + + let ready = false; + + $$.ctx = instance + ? instance(component, props, (key, value) => { + if ($$.ctx && not_equal$$1($$.ctx[key], $$.ctx[key] = value)) { + if ($$.bound[key]) $$.bound[key](value); + if (ready) make_dirty(component, key); + } + }) + : props; + + $$.update(); + ready = true; + run_all($$.before_render); + $$.fragment = create_fragment($$.ctx); + + if (options.target) { + if (options.hydrate) { + $$.fragment.l(children(options.target)); + } else { + $$.fragment.c(); + } + + if (options.intro && component.$$.fragment.i) component.$$.fragment.i(); + mount_component(component, options.target, options.anchor); + flush(); + } + + set_current_component(parent_component); + } + if (typeof HTMLElement !== 'undefined') { + exports.SvelteElement = class extends HTMLElement { + constructor() { + super(); + this.attachShadow({ mode: 'open' }); + } + + connectedCallback() { + for (const key in this.$$.slotted) { + this.appendChild(this.$$.slotted[key]); + } + } + + attributeChangedCallback(attr$$1, oldValue, newValue) { + this[attr$$1] = newValue; + } + + $destroy() { + destroy(this, true); + this.$destroy = noop; + } + + $on(type, callback) { + // TODO should this delegate to addEventListener? + const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = [])); + callbacks.push(callback); + + return () => { + const index = callbacks.indexOf(callback); + if (index !== -1) callbacks.splice(index, 1); + }; + } + + $set() { + // overridden by instance, if it has props + } + }; + } + + class SvelteComponent { + $destroy() { + destroy(this, true); + this.$destroy = noop; + } + + $on(type, callback) { + const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = [])); + callbacks.push(callback); + + return () => { + const index = callbacks.indexOf(callback); + if (index !== -1) callbacks.splice(index, 1); + }; + } + + $set() { + // overridden by instance, if it has props + } + } + + class SvelteComponentDev extends SvelteComponent { + constructor(options) { + if (!options || (!options.target && !options.$$inline)) { + throw new Error(`'target' is a required option`); + } + + super(); + } + + $destroy() { + super.$destroy(); + this.$destroy = () => { + console.warn(`Component was already destroyed`); // eslint-disable-line no-console + }; + } + } + + exports.create_animation = create_animation; + exports.fix_position = fix_position; + exports.handle_promise = handle_promise; + exports.append = append; + exports.insert = insert; + exports.detach = detach; + exports.detach_between = detach_between; + exports.detach_before = detach_before; + exports.detach_after = detach_after; + exports.destroy_each = destroy_each; + exports.element = element; + exports.svg_element = svg_element; + exports.text = text; + exports.space = space; + exports.empty = empty; + exports.listen = listen; + exports.prevent_default = prevent_default; + exports.stop_propagation = stop_propagation; + exports.attr = attr; + exports.set_attributes = set_attributes; + exports.set_custom_element_data = set_custom_element_data; + exports.xlink_attr = xlink_attr; + exports.get_binding_group_value = get_binding_group_value; + exports.to_number = to_number; + exports.time_ranges_to_array = time_ranges_to_array; + exports.children = children; + exports.claim_element = claim_element; + exports.claim_text = claim_text; + exports.set_data = set_data; + exports.set_input_type = set_input_type; + exports.set_style = set_style; + exports.select_option = select_option; + exports.select_options = select_options; + exports.select_value = select_value; + exports.select_multiple_value = select_multiple_value; + exports.add_resize_listener = add_resize_listener; + exports.toggle_class = toggle_class; + exports.custom_event = custom_event; + exports.destroy_block = destroy_block; + exports.outro_and_destroy_block = outro_and_destroy_block; + exports.fix_and_outro_and_destroy_block = fix_and_outro_and_destroy_block; + exports.update_keyed_each = update_keyed_each; + exports.measure = measure; + exports.set_current_component = set_current_component; + exports.beforeUpdate = beforeUpdate; + exports.onMount = onMount; + exports.afterUpdate = afterUpdate; + exports.onDestroy = onDestroy; + exports.createEventDispatcher = createEventDispatcher; + exports.setContext = setContext; + exports.getContext = getContext; + exports.bubble = bubble; + exports.clear_loops = clear_loops; + exports.loop = loop; + exports.dirty_components = dirty_components; + exports.intros = intros; + exports.schedule_update = schedule_update; + exports.tick = tick; + exports.add_binding_callback = add_binding_callback; + exports.add_render_callback = add_render_callback; + exports.add_flush_callback = add_flush_callback; + exports.flush = flush; + exports.get_spread_update = get_spread_update; + exports.invalid_attribute_name_character = invalid_attribute_name_character; + exports.spread = spread; + exports.escaped = escaped; + exports.escape = escape; + exports.each = each; + exports.missing_component = missing_component; + exports.validate_component = validate_component; + exports.debug = debug; + exports.create_ssr_component = create_ssr_component; + exports.get_store_value = get_store_value; + exports.group_outros = group_outros; + exports.check_outros = check_outros; + exports.on_outro = on_outro; + exports.create_in_transition = create_in_transition; + exports.create_out_transition = create_out_transition; + exports.create_bidirectional_transition = create_bidirectional_transition; + exports.noop = noop; + exports.identity = identity; + exports.assign = assign; + exports.is_promise = is_promise; + exports.add_location = add_location; + exports.run = run; + exports.blank_object = blank_object; + exports.run_all = run_all; + exports.is_function = is_function; + exports.safe_not_equal = safe_not_equal; + exports.not_equal = not_equal; + exports.validate_store = validate_store; + exports.subscribe = subscribe; + exports.create_slot = create_slot; + exports.get_slot_context = get_slot_context; + exports.get_slot_changes = get_slot_changes; + exports.exclude_internal_props = exclude_internal_props; + exports.bind = bind; + exports.mount_component = mount_component; + exports.init = init; + exports.SvelteComponent = SvelteComponent; + exports.SvelteComponentDev = SvelteComponentDev; + }); + + unwrapExports(internal); + var internal_1 = internal.current_component; + var internal_2 = internal.SvelteElement; + var internal_3 = internal.create_animation; + var internal_4 = internal.fix_position; + var internal_5 = internal.handle_promise; + var internal_6 = internal.append; + var internal_7 = internal.insert; + var internal_8 = internal.detach; + var internal_9 = internal.detach_between; + var internal_10 = internal.detach_before; + var internal_11 = internal.detach_after; + var internal_12 = internal.destroy_each; + var internal_13 = internal.element; + var internal_14 = internal.svg_element; + var internal_15 = internal.text; + var internal_16 = internal.space; + var internal_17 = internal.empty; + var internal_18 = internal.listen; + var internal_19 = internal.prevent_default; + var internal_20 = internal.stop_propagation; + var internal_21 = internal.attr; + var internal_22 = internal.set_attributes; + var internal_23 = internal.set_custom_element_data; + var internal_24 = internal.xlink_attr; + var internal_25 = internal.get_binding_group_value; + var internal_26 = internal.to_number; + var internal_27 = internal.time_ranges_to_array; + var internal_28 = internal.children; + var internal_29 = internal.claim_element; + var internal_30 = internal.claim_text; + var internal_31 = internal.set_data; + var internal_32 = internal.set_input_type; + var internal_33 = internal.set_style; + var internal_34 = internal.select_option; + var internal_35 = internal.select_options; + var internal_36 = internal.select_value; + var internal_37 = internal.select_multiple_value; + var internal_38 = internal.add_resize_listener; + var internal_39 = internal.toggle_class; + var internal_40 = internal.custom_event; + var internal_41 = internal.destroy_block; + var internal_42 = internal.outro_and_destroy_block; + var internal_43 = internal.fix_and_outro_and_destroy_block; + var internal_44 = internal.update_keyed_each; + var internal_45 = internal.measure; + var internal_46 = internal.set_current_component; + var internal_47 = internal.beforeUpdate; + var internal_48 = internal.onMount; + var internal_49 = internal.afterUpdate; + var internal_50 = internal.onDestroy; + var internal_51 = internal.createEventDispatcher; + var internal_52 = internal.setContext; + var internal_53 = internal.getContext; + var internal_54 = internal.bubble; + var internal_55 = internal.clear_loops; + var internal_56 = internal.loop; + var internal_57 = internal.dirty_components; + var internal_58 = internal.intros; + var internal_59 = internal.schedule_update; + var internal_60 = internal.tick; + var internal_61 = internal.add_binding_callback; + var internal_62 = internal.add_render_callback; + var internal_63 = internal.add_flush_callback; + var internal_64 = internal.flush; + var internal_65 = internal.get_spread_update; + var internal_66 = internal.invalid_attribute_name_character; + var internal_67 = internal.spread; + var internal_68 = internal.escaped; + var internal_69 = internal.escape; + var internal_70 = internal.each; + var internal_71 = internal.missing_component; + var internal_72 = internal.validate_component; + var internal_73 = internal.debug; + var internal_74 = internal.create_ssr_component; + var internal_75 = internal.get_store_value; + var internal_76 = internal.group_outros; + var internal_77 = internal.check_outros; + var internal_78 = internal.on_outro; + var internal_79 = internal.create_in_transition; + var internal_80 = internal.create_out_transition; + var internal_81 = internal.create_bidirectional_transition; + var internal_82 = internal.noop; + var internal_83 = internal.identity; + var internal_84 = internal.assign; + var internal_85 = internal.is_promise; + var internal_86 = internal.add_location; + var internal_87 = internal.run; + var internal_88 = internal.blank_object; + var internal_89 = internal.run_all; + var internal_90 = internal.is_function; + var internal_91 = internal.safe_not_equal; + var internal_92 = internal.not_equal; + var internal_93 = internal.validate_store; + var internal_94 = internal.subscribe; + var internal_95 = internal.create_slot; + var internal_96 = internal.get_slot_context; + var internal_97 = internal.get_slot_changes; + var internal_98 = internal.exclude_internal_props; + var internal_99 = internal.bind; + var internal_100 = internal.mount_component; + var internal_101 = internal.init; + var internal_102 = internal.SvelteComponent; + var internal_103 = internal.SvelteComponentDev; + + /* src/User/Pages/Box.svelte generated by Svelte v3.1.0 */ + + const file = "src/User/Pages/Box.svelte"; + + function create_fragment(ctx) { + var div, current; + + const default_slot_1 = ctx.$$slots.default; + const default_slot = internal_95(default_slot_1, ctx, null); + + return { + c: function create() { + div = internal_13("div"); + + if (default_slot) default_slot.c(); + + div.className = "box svelte-yv48ir"; + internal_86(div, file, 33, 0, 624); + }, + + l: function claim(nodes) { + if (default_slot) default_slot.l(div_nodes); + throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); + }, + + m: function mount(target, anchor) { + internal_7(target, div, anchor); + + if (default_slot) { + default_slot.m(div, null); + } + + current = true; + }, + + p: function update(changed, ctx) { + if (default_slot && default_slot.p && changed.$$scope) { + default_slot.p(internal_97(default_slot_1, ctx, changed,), internal_96(default_slot_1, ctx, null)); + } + }, + + i: function intro(local) { + if (current) return; + if (default_slot && default_slot.i) default_slot.i(local); + current = true; + }, + + o: function outro(local) { + if (default_slot && default_slot.o) default_slot.o(local); + current = false; + }, + + d: function destroy(detaching) { + if (detaching) { + internal_8(div); + } + + if (default_slot) default_slot.d(detaching); + } + }; + } + + function instance($$self, $$props, $$invalidate) { + let { $$slots = {}, $$scope } = $$props; + + $$self.$set = $$props => { + if ('$$scope' in $$props) $$invalidate('$$scope', $$scope = $$props.$$scope); + }; + + return { $$slots, $$scope }; + } + + class Box extends internal_103 { + constructor(options) { + super(options); + internal_101(this, options, instance, create_fragment, internal_91, []); + } + } + + var easing = createCommonjsModule(function (module, exports) { + + Object.defineProperty(exports, '__esModule', { value: true }); + + + + /* + Adapted from https://github.com/mattdesl + Distributed under MIT License https://github.com/mattdesl/eases/blob/master/LICENSE.md + */ + + function backInOut(t) { + var s = 1.70158 * 1.525; + if ((t *= 2) < 1) return 0.5 * (t * t * ((s + 1) * t - s)); + return 0.5 * ((t -= 2) * t * ((s + 1) * t + s) + 2); + } + + function backIn(t) { + var s = 1.70158; + return t * t * ((s + 1) * t - s); + } + + function backOut(t) { + var s = 1.70158; + return --t * t * ((s + 1) * t + s) + 1; + } + + function bounceOut(t) { + var a = 4.0 / 11.0; + var b = 8.0 / 11.0; + var c = 9.0 / 10.0; + + var ca = 4356.0 / 361.0; + var cb = 35442.0 / 1805.0; + var cc = 16061.0 / 1805.0; + + var t2 = t * t; + + return t < a + ? 7.5625 * t2 + : t < b + ? 9.075 * t2 - 9.9 * t + 3.4 + : t < c + ? ca * t2 - cb * t + cc + : 10.8 * t * t - 20.52 * t + 10.72; + } + + function bounceInOut(t) { + return t < 0.5 + ? 0.5 * (1.0 - bounceOut(1.0 - t * 2.0)) + : 0.5 * bounceOut(t * 2.0 - 1.0) + 0.5; + } + + function bounceIn(t) { + return 1.0 - bounceOut(1.0 - t); + } + + function circInOut(t) { + if ((t *= 2) < 1) return -0.5 * (Math.sqrt(1 - t * t) - 1); + return 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1); + } + + function circIn(t) { + return 1.0 - Math.sqrt(1.0 - t * t); + } + + function circOut(t) { + return Math.sqrt(1 - --t * t); + } + + function cubicInOut(t) { + return t < 0.5 ? 4.0 * t * t * t : 0.5 * Math.pow(2.0 * t - 2.0, 3.0) + 1.0; + } + + function cubicIn(t) { + return t * t * t; + } + + function cubicOut(t) { + var f = t - 1.0; + return f * f * f + 1.0; + } + + function elasticInOut(t) { + return t < 0.5 + ? 0.5 * + Math.sin(((+13.0 * Math.PI) / 2) * 2.0 * t) * + Math.pow(2.0, 10.0 * (2.0 * t - 1.0)) + : 0.5 * + Math.sin(((-13.0 * Math.PI) / 2) * (2.0 * t - 1.0 + 1.0)) * + Math.pow(2.0, -10.0 * (2.0 * t - 1.0)) + + 1.0; + } + + function elasticIn(t) { + return Math.sin((13.0 * t * Math.PI) / 2) * Math.pow(2.0, 10.0 * (t - 1.0)); + } + + function elasticOut(t) { + return ( + Math.sin((-13.0 * (t + 1.0) * Math.PI) / 2) * Math.pow(2.0, -10.0 * t) + 1.0 + ); + } + + function expoInOut(t) { + return t === 0.0 || t === 1.0 + ? t + : t < 0.5 + ? +0.5 * Math.pow(2.0, 20.0 * t - 10.0) + : -0.5 * Math.pow(2.0, 10.0 - t * 20.0) + 1.0; + } + + function expoIn(t) { + return t === 0.0 ? t : Math.pow(2.0, 10.0 * (t - 1.0)); + } + + function expoOut(t) { + return t === 1.0 ? t : 1.0 - Math.pow(2.0, -10.0 * t); + } + + function quadInOut(t) { + t /= 0.5; + if (t < 1) return 0.5 * t * t; + t--; + return -0.5 * (t * (t - 2) - 1); + } + + function quadIn(t) { + return t * t; + } + + function quadOut(t) { + return -t * (t - 2.0); + } + + function quartInOut(t) { + return t < 0.5 + ? +8.0 * Math.pow(t, 4.0) + : -8.0 * Math.pow(t - 1.0, 4.0) + 1.0; + } + + function quartIn(t) { + return Math.pow(t, 4.0); + } + + function quartOut(t) { + return Math.pow(t - 1.0, 3.0) * (1.0 - t) + 1.0; + } + + function quintInOut(t) { + if ((t *= 2) < 1) return 0.5 * t * t * t * t * t; + return 0.5 * ((t -= 2) * t * t * t * t + 2); + } + + function quintIn(t) { + return t * t * t * t * t; + } + + function quintOut(t) { + return --t * t * t * t * t + 1; + } + + function sineInOut(t) { + return -0.5 * (Math.cos(Math.PI * t) - 1); + } + + function sineIn(t) { + var v = Math.cos(t * Math.PI * 0.5); + if (Math.abs(v) < 1e-14) return 1; + else return 1 - v; + } + + function sineOut(t) { + return Math.sin((t * Math.PI) / 2); + } + + exports.linear = internal.identity; + exports.backInOut = backInOut; + exports.backIn = backIn; + exports.backOut = backOut; + exports.bounceOut = bounceOut; + exports.bounceInOut = bounceInOut; + exports.bounceIn = bounceIn; + exports.circInOut = circInOut; + exports.circIn = circIn; + exports.circOut = circOut; + exports.cubicInOut = cubicInOut; + exports.cubicIn = cubicIn; + exports.cubicOut = cubicOut; + exports.elasticInOut = elasticInOut; + exports.elasticIn = elasticIn; + exports.elasticOut = elasticOut; + exports.expoInOut = expoInOut; + exports.expoIn = expoIn; + exports.expoOut = expoOut; + exports.quadInOut = quadInOut; + exports.quadIn = quadIn; + exports.quadOut = quadOut; + exports.quartInOut = quartInOut; + exports.quartIn = quartIn; + exports.quartOut = quartOut; + exports.quintInOut = quintInOut; + exports.quintIn = quintIn; + exports.quintOut = quintOut; + exports.sineInOut = sineInOut; + exports.sineIn = sineIn; + exports.sineOut = sineOut; + }); + + unwrapExports(easing); + var easing_1 = easing.linear; + var easing_2 = easing.backInOut; + var easing_3 = easing.backIn; + var easing_4 = easing.backOut; + var easing_5 = easing.bounceOut; + var easing_6 = easing.bounceInOut; + var easing_7 = easing.bounceIn; + var easing_8 = easing.circInOut; + var easing_9 = easing.circIn; + var easing_10 = easing.circOut; + var easing_11 = easing.cubicInOut; + var easing_12 = easing.cubicIn; + var easing_13 = easing.cubicOut; + var easing_14 = easing.elasticInOut; + var easing_15 = easing.elasticIn; + var easing_16 = easing.elasticOut; + var easing_17 = easing.expoInOut; + var easing_18 = easing.expoIn; + var easing_19 = easing.expoOut; + var easing_20 = easing.quadInOut; + var easing_21 = easing.quadIn; + var easing_22 = easing.quadOut; + var easing_23 = easing.quartInOut; + var easing_24 = easing.quartIn; + var easing_25 = easing.quartOut; + var easing_26 = easing.quintInOut; + var easing_27 = easing.quintIn; + var easing_28 = easing.quintOut; + var easing_29 = easing.sineInOut; + var easing_30 = easing.sineIn; + var easing_31 = easing.sineOut; + + var transition = createCommonjsModule(function (module, exports) { + + Object.defineProperty(exports, '__esModule', { value: true }); + + + + + function fade(node, { + delay = 0, + duration = 400 + }) { + const o = +getComputedStyle(node).opacity; + + return { + delay, + duration, + css: t => `opacity: ${t * o}` + }; + } + + function fly(node, { + delay = 0, + duration = 400, + easing: easing$$1 = easing.cubicOut, + x = 0, + y = 0, + opacity = 0 + }) { + const style = getComputedStyle(node); + const target_opacity = +style.opacity; + const transform = style.transform === 'none' ? '' : style.transform; + + const od = target_opacity * (1 - opacity); + + return { + delay, + duration, + easing: easing$$1, + css: (t, u) => ` + transform: ${transform} translate(${(1 - t) * x}px, ${(1 - t) * y}px); + opacity: ${target_opacity - (od * u)}` + }; + } + + function slide(node, { + delay = 0, + duration = 400, + easing: easing$$1 = easing.cubicOut + }) { + const style = getComputedStyle(node); + const opacity = +style.opacity; + const height = parseFloat(style.height); + const padding_top = parseFloat(style.paddingTop); + const padding_bottom = parseFloat(style.paddingBottom); + const margin_top = parseFloat(style.marginTop); + const margin_bottom = parseFloat(style.marginBottom); + const border_top_width = parseFloat(style.borderTopWidth); + const border_bottom_width = parseFloat(style.borderBottomWidth); + + return { + delay, + duration, + easing: easing$$1, + css: t => + `overflow: hidden;` + + `opacity: ${Math.min(t * 20, 1) * opacity};` + + `height: ${t * height}px;` + + `padding-top: ${t * padding_top}px;` + + `padding-bottom: ${t * padding_bottom}px;` + + `margin-top: ${t * margin_top}px;` + + `margin-bottom: ${t * margin_bottom}px;` + + `border-top-width: ${t * border_top_width}px;` + + `border-bottom-width: ${t * border_bottom_width}px;` + }; + } + + function scale(node, { + delay = 0, + duration = 400, + easing: easing$$1 = easing.cubicOut, + start = 0, + opacity = 0 + }) { + const style = getComputedStyle(node); + const target_opacity = +style.opacity; + const transform = style.transform === 'none' ? '' : style.transform; + + const sd = 1 - start; + const od = target_opacity * (1 - opacity); + + return { + delay, + duration, + easing: easing$$1, + css: (t, u) => ` + transform: ${transform} scale(${1 - (sd * u)}); + opacity: ${target_opacity - (od * u)} + ` + }; + } + + function draw(node, { + delay = 0, + speed, + duration, + easing: easing$$1 = easing.cubicInOut + }) { + const len = node.getTotalLength(); + + if (duration === undefined) { + if (speed === undefined) { + duration = 800; + } else { + duration = len / speed; + } + } else if (typeof duration === 'function') { + duration = duration(len); + } + + return { + delay, + duration, + easing: easing$$1, + css: (t, u) => `stroke-dasharray: ${t * len} ${u * len}` + }; + } + + function crossfade({ fallback, ...defaults }) { + const to_receive = new Map(); + const to_send = new Map(); + + function crossfade(from, node, params) { + const { + delay = 0, + duration = d => Math.sqrt(d) * 30, + easing: easing$$1 = easing.cubicOut + } = internal.assign(internal.assign({}, defaults), params); + + const to = node.getBoundingClientRect(); + const dx = from.left - to.left; + const dy = from.top - to.top; + const d = Math.sqrt(dx * dx + dy * dy); + + const style = getComputedStyle(node); + const transform = style.transform === 'none' ? '' : style.transform; + const opacity = +style.opacity; + + return { + delay, + duration: internal.is_function(duration) ? duration(d) : duration, + easing: easing$$1, + css: (t, u) => ` + opacity: ${t * opacity}; + transform: ${transform} translate(${u * dx}px,${u * dy}px); + ` + }; + } + + function transition(items, counterparts, intro) { + return (node, params) => { + items.set(params.key, { + rect: node.getBoundingClientRect() + }); + + return () => { + if (counterparts.has(params.key)) { + const { rect } = counterparts.get(params.key); + counterparts.delete(params.key); + + return crossfade(rect, node, params); + } + + // if the node is disappearing altogether + // (i.e. wasn't claimed by the other list) + // then we need to supply an outro + items.delete(params.key); + return fallback && fallback(node, params, intro); + }; + }; + } + + return [ + transition(to_send, to_receive, false), + transition(to_receive, to_send, true) + ]; + } + + exports.fade = fade; + exports.fly = fly; + exports.slide = slide; + exports.scale = scale; + exports.draw = draw; + exports.crossfade = crossfade; + }); + + unwrapExports(transition); + var transition_1 = transition.fade; + var transition_2 = transition.fly; + var transition_3 = transition.slide; + var transition_4 = transition.scale; + var transition_5 = transition.draw; + var transition_6 = transition.crossfade; + + /* src/User/Pages/NextIcon.svelte generated by Svelte v3.1.0 */ + + const file$1 = "src/User/Pages/NextIcon.svelte"; + + function create_fragment$1(ctx) { + var svg, g1, g0, polygon, svg_style_value; + + return { + c: function create() { + svg = internal_14("svg"); + g1 = internal_14("g"); + g0 = internal_14("g"); + polygon = internal_14("polygon"); + internal_21(polygon, "points", "27.051,17 9.905,0 8.417,1.414 24.674,17.707 8.363,34 9.914,35.414 27.051,18.414 \t\t"); + internal_86(polygon, file$1, 9, 9, 358); + internal_86(g0, file$1, 8, 6, 345); + internal_86(g1, file$1, 7, 3, 335); + internal_21(svg, "style", svg_style_value = `enable-background:new 0 0 35.414 35.414; transform: rotate(${ctx.rotation}deg); transition: all .4s;`); + internal_21(svg, "version", "1.1"); + internal_21(svg, "id", "Capa_1"); + internal_21(svg, "xmlns", "http://www.w3.org/2000/svg"); + internal_21(svg, "xmlns:xlink", "http://www.w3.org/1999/xlink"); + internal_21(svg, "x", "0px"); + internal_21(svg, "y", "0px"); + internal_21(svg, "viewBox", "0 0 35.414 35.414"); + internal_21(svg, "xml:space", "preserve"); + internal_86(svg, file$1, 4, 0, 44); + }, + + l: function claim(nodes) { + throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); + }, + + m: function mount(target, anchor) { + internal_7(target, svg, anchor); + internal_6(svg, g1); + internal_6(g1, g0); + internal_6(g0, polygon); + }, + + p: function update(changed, ctx) { + if ((changed.rotation) && svg_style_value !== (svg_style_value = `enable-background:new 0 0 35.414 35.414; transform: rotate(${ctx.rotation}deg); transition: all .4s;`)) { + internal_21(svg, "style", svg_style_value); + } + }, + + i: internal_82, + o: internal_82, + + d: function destroy(detaching) { + if (detaching) { + internal_8(svg); + } + } + }; + } + + function instance$1($$self, $$props, $$invalidate) { + let { rotation } = $$props; + + $$self.$set = $$props => { + if ('rotation' in $$props) $$invalidate('rotation', rotation = $$props.rotation); + }; + + return { rotation }; + } + + class NextIcon extends internal_103 { + constructor(options) { + super(options); + internal_101(this, options, instance$1, create_fragment$1, internal_91, ["rotation"]); + + const { ctx } = this.$$; + const props = options.props || {}; + if (ctx.rotation === undefined && !('rotation' in props)) { + console.warn(" was created without expected prop 'rotation'"); + } + } + + get rotation() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set rotation(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + } + + /* src/User/Pages/BoxItem.svelte generated by Svelte v3.1.0 */ + + const file$2 = "src/User/Pages/BoxItem.svelte"; + + function get_each_context(ctx, list, i) { + const child_ctx = Object.create(ctx); + child_ctx.v = list[i]; + child_ctx.i = i; + return child_ctx; + } + + // (85:12) {:else} + function create_else_block(ctx) { + var t; + + return { + c: function create() { + t = internal_15(ctx.value); + }, + + m: function mount(target, anchor) { + internal_7(target, t, anchor); + }, + + p: function update(changed, ctx) { + if (changed.value) { + internal_31(t, ctx.value); + } + }, + + d: function destroy(detaching) { + if (detaching) { + internal_8(t); + } + } + }; + } + + // (78:12) {#if Array.isArray(value)} + function create_if_block_1(ctx) { + var each_1_anchor; + + var each_value = ctx.value; + + var each_blocks = []; + + for (var i = 0; i < each_value.length; i += 1) { + each_blocks[i] = create_each_block(get_each_context(ctx, each_value, i)); + } + + return { + c: function create() { + for (var i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].c(); + } + + each_1_anchor = internal_17(); + }, + + m: function mount(target, anchor) { + for (var i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].m(target, anchor); + } + + internal_7(target, each_1_anchor, anchor); + }, + + p: function update(changed, ctx) { + if (changed.value) { + each_value = ctx.value; + + for (var i = 0; i < each_value.length; i += 1) { + const child_ctx = get_each_context(ctx, each_value, i); + + if (each_blocks[i]) { + each_blocks[i].p(changed, child_ctx); + } else { + each_blocks[i] = create_each_block(child_ctx); + each_blocks[i].c(); + each_blocks[i].m(each_1_anchor.parentNode, each_1_anchor); + } + } + + for (; i < each_blocks.length; i += 1) { + each_blocks[i].d(1); + } + each_blocks.length = each_value.length; + } + }, + + d: function destroy(detaching) { + internal_12(each_blocks, detaching); + + if (detaching) { + internal_8(each_1_anchor); + } + } + }; + } + + // (81:18) {#if i < value.length - 1} + function create_if_block_2(ctx) { + var br; + + return { + c: function create() { + br = internal_13("br"); + internal_86(br, file$2, 81, 18, 1615); + }, + + m: function mount(target, anchor) { + internal_7(target, br, anchor); + }, + + d: function destroy(detaching) { + if (detaching) { + internal_8(br); + } + } + }; + } + + // (79:15) {#each value as v, i} + function create_each_block(ctx) { + var t0_value = ctx.v, t0, t1, if_block_anchor; + + var if_block = (ctx.i < ctx.value.length - 1) && create_if_block_2(ctx); + + return { + c: function create() { + t0 = internal_15(t0_value); + t1 = internal_16(); + if (if_block) if_block.c(); + if_block_anchor = internal_17(); + }, + + m: function mount(target, anchor) { + internal_7(target, t0, anchor); + internal_7(target, t1, anchor); + if (if_block) if_block.m(target, anchor); + internal_7(target, if_block_anchor, anchor); + }, + + p: function update(changed, ctx) { + if ((changed.value) && t0_value !== (t0_value = ctx.v)) { + internal_31(t0, t0_value); + } + + if (ctx.i < ctx.value.length - 1) { + if (!if_block) { + if_block = create_if_block_2(ctx); + if_block.c(); + if_block.m(if_block_anchor.parentNode, if_block_anchor); + } + } else if (if_block) { + if_block.d(1); + if_block = null; + } + }, + + d: function destroy(detaching) { + if (detaching) { + internal_8(t0); + internal_8(t1); + } + + if (if_block) if_block.d(detaching); + + if (detaching) { + internal_8(if_block_anchor); + } + } + }; + } + + // (92:3) {#if open} + function create_if_block(ctx) { + var div, div_transition, current; + + const default_slot_1 = ctx.$$slots.default; + const default_slot = internal_95(default_slot_1, ctx, null); + + return { + c: function create() { + div = internal_13("div"); + + if (default_slot) default_slot.c(); + + div.className = "body svelte-1h07xvd"; + internal_86(div, file$2, 92, 6, 1834); + }, + + l: function claim(nodes) { + if (default_slot) default_slot.l(div_nodes); + }, + + m: function mount(target, anchor) { + internal_7(target, div, anchor); + + if (default_slot) { + default_slot.m(div, null); + } + + current = true; + }, + + p: function update(changed, ctx) { + if (default_slot && default_slot.p && changed.$$scope) { + default_slot.p(internal_97(default_slot_1, ctx, changed,), internal_96(default_slot_1, ctx, null)); + } + }, + + i: function intro(local) { + if (current) return; + if (default_slot && default_slot.i) default_slot.i(local); + + internal_62(() => { + if (!div_transition) div_transition = internal_81(div, transition_3, {}, true); + div_transition.run(1); + }); + + current = true; + }, + + o: function outro(local) { + if (default_slot && default_slot.o) default_slot.o(local); + + if (!div_transition) div_transition = internal_81(div, transition_3, {}, false); + div_transition.run(0); + + current = false; + }, + + d: function destroy(detaching) { + if (detaching) { + internal_8(div); + } + + if (default_slot) default_slot.d(detaching); + + if (detaching) { + if (div_transition) div_transition.end(); + } + } + }; + } + + function create_fragment$2(ctx) { + var div4, div3, div2, div0, t0, t1, div1, t2, t3, current, dispose; + + function select_block_type(ctx) { + if (Array.isArray(ctx.value)) return create_if_block_1; + return create_else_block; + } + + var current_block_type = select_block_type(ctx); + var if_block0 = current_block_type(ctx); + + var nexticon = new NextIcon({ + props: { rotation: ctx.open ? -90 : 90 }, + $$inline: true + }); + + var if_block1 = (ctx.open) && create_if_block(ctx); + + return { + c: function create() { + div4 = internal_13("div"); + div3 = internal_13("div"); + div2 = internal_13("div"); + div0 = internal_13("div"); + t0 = internal_15(ctx.name); + t1 = internal_16(); + div1 = internal_13("div"); + if_block0.c(); + t2 = internal_16(); + nexticon.$$.fragment.c(); + t3 = internal_16(); + if (if_block1) if_block1.c(); + div0.className = "svelte-1h07xvd"; + internal_86(div0, file$2, 75, 9, 1421); + div1.className = "svelte-1h07xvd"; + internal_86(div1, file$2, 76, 9, 1448); + div2.className = "values svelte-1h07xvd"; + internal_86(div2, file$2, 74, 6, 1391); + div3.className = "container svelte-1h07xvd"; + internal_86(div3, file$2, 73, 3, 1335); + div4.className = "root svelte-1h07xvd"; + internal_39(div4, "highlight-element", ctx.highlight); + internal_86(div4, file$2, 72, 0, 1277); + dispose = internal_18(div3, "click", ctx.click_handler); + }, + + l: function claim(nodes) { + throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); + }, + + m: function mount(target, anchor) { + internal_7(target, div4, anchor); + internal_6(div4, div3); + internal_6(div3, div2); + internal_6(div2, div0); + internal_6(div0, t0); + internal_6(div2, t1); + internal_6(div2, div1); + if_block0.m(div1, null); + internal_6(div3, t2); + internal_100(nexticon, div3, null); + internal_6(div4, t3); + if (if_block1) if_block1.m(div4, null); + current = true; + }, + + p: function update(changed, ctx) { + if (!current || changed.name) { + internal_31(t0, ctx.name); + } + + if (current_block_type === (current_block_type = select_block_type(ctx)) && if_block0) { + if_block0.p(changed, ctx); + } else { + if_block0.d(1); + if_block0 = current_block_type(ctx); + if (if_block0) { + if_block0.c(); + if_block0.m(div1, null); + } + } + + var nexticon_changes = {}; + if (changed.open) nexticon_changes.rotation = ctx.open ? -90 : 90; + nexticon.$set(nexticon_changes); + + if (ctx.open) { + if (if_block1) { + if_block1.p(changed, ctx); + if_block1.i(1); + } else { + if_block1 = create_if_block(ctx); + if_block1.c(); + if_block1.i(1); + if_block1.m(div4, null); + } + } else if (if_block1) { + internal_76(); + internal_78(() => { + if_block1.d(1); + if_block1 = null; + }); + + if_block1.o(1); + internal_77(); + } + + if (changed.highlight) { + internal_39(div4, "highlight-element", ctx.highlight); + } + }, + + i: function intro(local) { + if (current) return; + nexticon.$$.fragment.i(local); + + if (if_block1) if_block1.i(); + current = true; + }, + + o: function outro(local) { + nexticon.$$.fragment.o(local); + if (if_block1) if_block1.o(); + current = false; + }, + + d: function destroy(detaching) { + if (detaching) { + internal_8(div4); + } + + if_block0.d(); + + nexticon.$destroy(); + + if (if_block1) if_block1.d(); + dispose(); + } + }; + } + + function instance$2($$self, $$props, $$invalidate) { + + let { name, value, open = false, highlight = false } = $$props; + + let { $$slots = {}, $$scope } = $$props; + + function click_handler() { + const $$result = open=!open; + $$invalidate('open', open); + return $$result; + } + + $$self.$set = $$props => { + if ('name' in $$props) $$invalidate('name', name = $$props.name); + if ('value' in $$props) $$invalidate('value', value = $$props.value); + if ('open' in $$props) $$invalidate('open', open = $$props.open); + if ('highlight' in $$props) $$invalidate('highlight', highlight = $$props.highlight); + if ('$$scope' in $$props) $$invalidate('$$scope', $$scope = $$props.$$scope); + }; + + return { + name, + value, + open, + highlight, + click_handler, + $$slots, + $$scope + }; + } + + class BoxItem extends internal_103 { + constructor(options) { + super(options); + internal_101(this, options, instance$2, create_fragment$2, internal_91, ["name", "value", "open", "highlight"]); + + const { ctx } = this.$$; + const props = options.props || {}; + if (ctx.name === undefined && !('name' in props)) { + console.warn(" was created without expected prop 'name'"); + } + if (ctx.value === undefined && !('value' in props)) { + console.warn(" was created without expected prop 'value'"); + } + if (ctx.open === undefined && !('open' in props)) { + console.warn(" was created without expected prop 'open'"); + } + if (ctx.highlight === undefined && !('highlight' in props)) { + console.warn(" was created without expected prop 'highlight'"); + } + } + + get name() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set name(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get value() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set value(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get open() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set open(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get highlight() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set highlight(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + } + + /*! ***************************************************************************** + Copyright (c) Microsoft Corporation. All rights reserved. + Licensed under the Apache License, Version 2.0 (the "License"); you may not use + this file except in compliance with the License. You may obtain a copy of the + License at http://www.apache.org/licenses/LICENSE-2.0 + + THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED + WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, + MERCHANTABLITY OR NON-INFRINGEMENT. + + See the Apache Version 2.0 License for specific language governing permissions + and limitations under the License. + ***************************************************************************** */ + + function __awaiter(thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + } + + function __generator(thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (_) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } + } + + function getCookie(cname) { + var name = cname + "="; + var dc = decodeURIComponent(document.cookie); + var ca = dc.split(';'); + for (var i = 0; i < ca.length; i++) { + var c = ca[i]; + while (c.charAt(0) == ' ') { + c = c.substring(1); + } + if (c.indexOf(name) == 0) { + return c.substring(name.length, c.length); + } + } + return ""; + } + //# sourceMappingURL=cookie.js.map + + // const baseURL = "https://auth.stamm.me"; + var baseURL = "http://localhost:3000"; + function request(endpoint, parameters, method, body, authInParam) { + if (parameters === void 0) { parameters = {}; } + if (method === void 0) { method = "GET"; } + if (authInParam === void 0) { authInParam = false; } + return __awaiter(this, void 0, void 0, function () { + var pairs, key, url; + return __generator(this, function (_a) { + pairs = []; + if (authInParam) { + parameters.login = getCookie("login"); + parameters.special = getCookie("special"); + } + for (key in parameters) { + pairs.push(key + "=" + parameters[key]); + } + url = endpoint; + if (pairs.length > 0) { + url += "?" + pairs.join("&"); + } + return [2 /*return*/, fetch(baseURL + url, { + method: method, + body: JSON.stringify(body), + credentials: "same-origin", + headers: { + 'content-type': 'application/json' + }, + }).then(function (e) { + if (e.status !== 200) + throw new Error(e.statusText); + return e.json(); + }).then(function (data) { + if (data.error) { + if (data.additional && data.additional.auth) { + var state = btoa(window.location.pathname + window.location.hash); + // window.location.href = `/login?state=${state}&base64=true`; + } + return Promise.reject(new Error(data.error)); + } + return data; + })]; + }); + }); + } + //# sourceMappingURL=request.js.map + + /* src/User/Pages/Account.svelte generated by Svelte v3.1.0 */ + + const file$3 = "src/User/Pages/Account.svelte"; + + // (132:3) {#if error} + function create_if_block$1(ctx) { + var p, t; + + return { + c: function create() { + p = internal_13("p"); + t = internal_15(ctx.error); + p.className = "error svelte-1lc4uv"; + internal_86(p, file$3, 132, 6, 2550); + }, + + m: function mount(target, anchor) { + internal_7(target, p, anchor); + internal_6(p, t); + }, + + p: function update(changed, ctx) { + if (changed.error) { + internal_31(t, ctx.error); + } + }, + + d: function destroy(detaching) { + if (detaching) { + internal_8(p); + } + } + }; + } + + // (135:3) + function create_default_slot_3(ctx) { + var div1, div0, input, t0, span0, t1, span1, t2, label, t4, button, dispose; + + return { + c: function create() { + div1 = internal_13("div"); + div0 = internal_13("div"); + input = internal_13("input"); + t0 = internal_16(); + span0 = internal_13("span"); + t1 = internal_16(); + span1 = internal_13("span"); + t2 = internal_16(); + label = internal_13("label"); + label.textContent = "Name"; + t4 = internal_16(); + button = internal_13("button"); + button.textContent = "Save"; + internal_21(input, "type", "text"); + input.autocomplete = "username"; + internal_86(input, file$3, 137, 12, 2712); + span0.className = "highlight"; + internal_86(span0, file$3, 138, 12, 2786); + span1.className = "bar"; + internal_86(span1, file$3, 139, 12, 2830); + internal_86(label, file$3, 140, 12, 2868); + div0.className = "floating group svelte-1lc4uv"; + internal_86(div0, file$3, 136, 9, 2671); + button.className = "btn svelte-1lc4uv"; + internal_86(button, file$3, 142, 9, 2913); + div1.className = "input-container svelte-1lc4uv"; + internal_86(div1, file$3, 135, 6, 2632); + + dispose = [ + internal_18(input, "input", ctx.input_input_handler), + internal_18(button, "click", ctx.saveName) + ]; + }, + + m: function mount(target, anchor) { + internal_7(target, div1, anchor); + internal_6(div1, div0); + internal_6(div0, input); + + input.value = ctx.name; + + internal_6(div0, t0); + internal_6(div0, span0); + internal_6(div0, t1); + internal_6(div0, span1); + internal_6(div0, t2); + internal_6(div0, label); + internal_6(div1, t4); + internal_6(div1, button); + }, + + p: function update(changed, ctx) { + if (changed.name && (input.value !== ctx.name)) input.value = ctx.name; + }, + + d: function destroy(detaching) { + if (detaching) { + internal_8(div1); + } + + internal_89(dispose); + } + }; + } + + // (146:3) + function create_default_slot_2(ctx) { + var div1, div0, select, option0, option1, option2, t_3, button, dispose; + + return { + c: function create() { + div1 = internal_13("div"); + div0 = internal_13("div"); + select = internal_13("select"); + option0 = internal_13("option"); + option0.textContent = "Male"; + option1 = internal_13("option"); + option1.textContent = "Female"; + option2 = internal_13("option"); + option2.textContent = "Other"; + t_3 = internal_16(); + button = internal_13("button"); + button.textContent = "Save"; + option0.__value = 1; + option0.value = option0.__value; + option0.className = "svelte-1lc4uv"; + internal_86(option0, file$3, 149, 15, 3171); + option1.__value = 2; + option1.value = option1.__value; + option1.className = "svelte-1lc4uv"; + internal_86(option1, file$3, 150, 15, 3218); + option2.__value = 3; + option2.value = option2.__value; + option2.className = "svelte-1lc4uv"; + internal_86(option2, file$3, 151, 15, 3267); + if (ctx.gender === void 0) internal_62(() => ctx.select_change_handler.call(select)); + select.className = "svelte-1lc4uv"; + internal_86(select, file$3, 148, 12, 3127); + div0.className = "select-wrapper svelte-1lc4uv"; + internal_86(div0, file$3, 147, 9, 3086); + button.className = "btn svelte-1lc4uv"; + internal_86(button, file$3, 154, 9, 3347); + div1.className = "input-container svelte-1lc4uv"; + internal_86(div1, file$3, 146, 6, 3047); + + dispose = [ + internal_18(select, "change", ctx.select_change_handler), + internal_18(button, "click", ctx.saveGender) + ]; + }, + + m: function mount(target, anchor) { + internal_7(target, div1, anchor); + internal_6(div1, div0); + internal_6(div0, select); + internal_6(select, option0); + internal_6(select, option1); + internal_6(select, option2); + + internal_34(select, ctx.gender); + + internal_6(div1, t_3); + internal_6(div1, button); + }, + + p: function update(changed, ctx) { + if (changed.gender) internal_34(select, ctx.gender); + }, + + d: function destroy(detaching) { + if (detaching) { + internal_8(div1); + } + + internal_89(dispose); + } + }; + } + + // (130:0) + function create_default_slot_1(ctx) { + var h1, t1, t2, t3, t4, t5, current; + + var if_block = (ctx.error) && create_if_block$1(ctx); + + var boxitem0 = new BoxItem({ + props: { + name: "Name", + value: ctx.name, + $$slots: { default: [create_default_slot_3] }, + $$scope: { ctx } + }, + $$inline: true + }); + + var boxitem1 = new BoxItem({ + props: { + name: "Gender", + value: ctx.genderHuman, + $$slots: { default: [create_default_slot_2] }, + $$scope: { ctx } + }, + $$inline: true + }); + + var boxitem2 = new BoxItem({ + props: { name: "Birthday", value: ctx.birthday }, + $$inline: true + }); + + var boxitem3 = new BoxItem({ + props: { name: "Password", value: "******" }, + $$inline: true + }); + + return { + c: function create() { + h1 = internal_13("h1"); + h1.textContent = "Profile"; + t1 = internal_16(); + if (if_block) if_block.c(); + t2 = internal_16(); + boxitem0.$$.fragment.c(); + t3 = internal_16(); + boxitem1.$$.fragment.c(); + t4 = internal_16(); + boxitem2.$$.fragment.c(); + t5 = internal_16(); + boxitem3.$$.fragment.c(); + h1.className = "svelte-1lc4uv"; + internal_86(h1, file$3, 130, 3, 2512); + }, + + m: function mount(target, anchor) { + internal_7(target, h1, anchor); + internal_7(target, t1, anchor); + if (if_block) if_block.m(target, anchor); + internal_7(target, t2, anchor); + internal_100(boxitem0, target, anchor); + internal_7(target, t3, anchor); + internal_100(boxitem1, target, anchor); + internal_7(target, t4, anchor); + internal_100(boxitem2, target, anchor); + internal_7(target, t5, anchor); + internal_100(boxitem3, target, anchor); + current = true; + }, + + p: function update(changed, ctx) { + if (ctx.error) { + if (if_block) { + if_block.p(changed, ctx); + } else { + if_block = create_if_block$1(ctx); + if_block.c(); + if_block.m(t2.parentNode, t2); + } + } else if (if_block) { + if_block.d(1); + if_block = null; + } + + var boxitem0_changes = {}; + if (changed.name) boxitem0_changes.value = ctx.name; + if (changed.$$scope || changed.name) boxitem0_changes.$$scope = { changed, ctx }; + boxitem0.$set(boxitem0_changes); + + var boxitem1_changes = {}; + if (changed.genderHuman) boxitem1_changes.value = ctx.genderHuman; + if (changed.$$scope || changed.gender) boxitem1_changes.$$scope = { changed, ctx }; + boxitem1.$set(boxitem1_changes); + + var boxitem2_changes = {}; + if (changed.birthday) boxitem2_changes.value = ctx.birthday; + boxitem2.$set(boxitem2_changes); + }, + + i: function intro(local) { + if (current) return; + boxitem0.$$.fragment.i(local); + + boxitem1.$$.fragment.i(local); + + boxitem2.$$.fragment.i(local); + + boxitem3.$$.fragment.i(local); + + current = true; + }, + + o: function outro(local) { + boxitem0.$$.fragment.o(local); + boxitem1.$$.fragment.o(local); + boxitem2.$$.fragment.o(local); + boxitem3.$$.fragment.o(local); + current = false; + }, + + d: function destroy(detaching) { + if (detaching) { + internal_8(h1); + internal_8(t1); + } + + if (if_block) if_block.d(detaching); + + if (detaching) { + internal_8(t2); + } + + boxitem0.$destroy(detaching); + + if (detaching) { + internal_8(t3); + } + + boxitem1.$destroy(detaching); + + if (detaching) { + internal_8(t4); + } + + boxitem2.$destroy(detaching); + + if (detaching) { + internal_8(t5); + } + + boxitem3.$destroy(detaching); + } + }; + } + + // (162:0) + function create_default_slot(ctx) { + var h1, t1, t2, current; + + var boxitem0 = new BoxItem({ + props: { name: "E-Mail", value: ctx.email }, + $$inline: true + }); + + var boxitem1 = new BoxItem({ + props: { name: "Phone", value: ctx.phone }, + $$inline: true + }); + + return { + c: function create() { + h1 = internal_13("h1"); + h1.textContent = "Contact"; + t1 = internal_16(); + boxitem0.$$.fragment.c(); + t2 = internal_16(); + boxitem1.$$.fragment.c(); + h1.className = "svelte-1lc4uv"; + internal_86(h1, file$3, 162, 3, 3541); + }, + + m: function mount(target, anchor) { + internal_7(target, h1, anchor); + internal_7(target, t1, anchor); + internal_100(boxitem0, target, anchor); + internal_7(target, t2, anchor); + internal_100(boxitem1, target, anchor); + current = true; + }, + + p: function update(changed, ctx) { + var boxitem0_changes = {}; + if (changed.email) boxitem0_changes.value = ctx.email; + boxitem0.$set(boxitem0_changes); + + var boxitem1_changes = {}; + if (changed.phone) boxitem1_changes.value = ctx.phone; + boxitem1.$set(boxitem1_changes); + }, + + i: function intro(local) { + if (current) return; + boxitem0.$$.fragment.i(local); + + boxitem1.$$.fragment.i(local); + + current = true; + }, + + o: function outro(local) { + boxitem0.$$.fragment.o(local); + boxitem1.$$.fragment.o(local); + current = false; + }, + + d: function destroy(detaching) { + if (detaching) { + internal_8(h1); + internal_8(t1); + } + + boxitem0.$destroy(detaching); + + if (detaching) { + internal_8(t2); + } + + boxitem1.$destroy(detaching); + } + }; + } + + function create_fragment$3(ctx) { + var t, current; + + var box0 = new Box({ + props: { + $$slots: { default: [create_default_slot_1] }, + $$scope: { ctx } + }, + $$inline: true + }); + + var box1 = new Box({ + props: { + $$slots: { default: [create_default_slot] }, + $$scope: { ctx } + }, + $$inline: true + }); + + return { + c: function create() { + box0.$$.fragment.c(); + t = internal_16(); + box1.$$.fragment.c(); + }, + + l: function claim(nodes) { + throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); + }, + + m: function mount(target, anchor) { + internal_100(box0, target, anchor); + internal_7(target, t, anchor); + internal_100(box1, target, anchor); + current = true; + }, + + p: function update(changed, ctx) { + var box0_changes = {}; + if (changed.$$scope || changed.birthday || changed.genderHuman || changed.gender || changed.name || changed.error) box0_changes.$$scope = { changed, ctx }; + box0.$set(box0_changes); + + var box1_changes = {}; + if (changed.$$scope) box1_changes.$$scope = { changed, ctx }; + box1.$set(box1_changes); + }, + + i: function intro(local) { + if (current) return; + box0.$$.fragment.i(local); + + box1.$$.fragment.i(local); + + current = true; + }, + + o: function outro(local) { + box0.$$.fragment.o(local); + box1.$$.fragment.o(local); + current = false; + }, + + d: function destroy(detaching) { + box0.$destroy(detaching); + + if (detaching) { + internal_8(t); + } + + box1.$destroy(detaching); + } + }; + } + + async function loadContact() { + + } + + function instance$3($$self, $$props, $$invalidate) { + + + let { loading = false } = $$props; + let error = undefined; + + + const genderMap = new Map(); + genderMap.set(0, "None"); + genderMap.set(1, "Male"); + genderMap.set(2, "Female"); + genderMap.set(3, "Other"); + + let name = ""; + let gender = 0; + let birthday = undefined; + + async function saveName() { + //TODO: implement + await load(); + } + + async function saveGender() { + //TODO: implement + await load(); + } + + async function loadProfile() { + try { + let { + user + } = await request("/api/user/account", {}, "GET", undefined, true); + + $$invalidate('name', name = user.name); + // username = user.username; + $$invalidate('gender', gender = user.gender); + $$invalidate('birthday', birthday = user.birthday ? new Date(user.birthday).toLocaleDateString() : undefined); + } catch (err) { + console.error(err); + $$invalidate('error', error = err.message); + } + } + + + let email = ["mail@fabianstamm.de", "fabian.stamm.koe@gmail.com"]; + let phone = ["+1 1233 123123123", "+21 1233 123 123 1"]; + + async function load() { + $$invalidate('loading', loading = true); + await Promise.all([ + loadProfile(), + loadContact() + ]); + $$invalidate('loading', loading = false); + } + + load(); + + function input_input_handler() { + name = this.value; + $$invalidate('name', name); + } + + function select_change_handler() { + gender = internal_36(this); + $$invalidate('gender', gender); + } + + $$self.$set = $$props => { + if ('loading' in $$props) $$invalidate('loading', loading = $$props.loading); + }; + + let genderHuman; + $$self.$$.update = ($$dirty = { gender: 1 }) => { + if ($$dirty.gender) { $$invalidate('genderHuman', genderHuman = genderMap.get(gender) || "ERROR"); } + }; + + return { + loading, + error, + name, + gender, + birthday, + saveName, + saveGender, + email, + phone, + genderHuman, + input_input_handler, + select_change_handler + }; + } + + class Account extends internal_103 { + constructor(options) { + super(options); + internal_101(this, options, instance$3, create_fragment$3, internal_91, ["loading"]); + + const { ctx } = this.$$; + const props = options.props || {}; + if (ctx.loading === undefined && !('loading' in props)) { + console.warn(" was created without expected prop 'loading'"); + } + } + + get loading() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set loading(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + } + + /* src/User/Pages/Security.svelte generated by Svelte v3.1.0 */ + + const file$4 = "src/User/Pages/Security.svelte"; + + function get_each_context$1(ctx, list, i) { + const child_ctx = Object.create(ctx); + child_ctx.t = list[i]; + return child_ctx; + } + + // (28:0) + function create_default_slot_2$1(ctx) { + var h1; + + return { + c: function create() { + h1 = internal_13("h1"); + h1.textContent = "Two Factor"; + h1.className = "svelte-hfyfkx"; + internal_86(h1, file$4, 28, 3, 595); + }, + + m: function mount(target, anchor) { + internal_7(target, h1, anchor); + }, + + d: function destroy(detaching) { + if (detaching) { + internal_8(h1); + } + } + }; + } + + // (65:3) {:else} + function create_else_block$1(ctx) { + var span; + + return { + c: function create() { + span = internal_13("span"); + span.textContent = "No Tokens"; + span.className = "svelte-hfyfkx"; + internal_86(span, file$4, 65, 3, 1887); + }, + + m: function mount(target, anchor) { + internal_7(target, span, anchor); + }, + + d: function destroy(detaching) { + if (detaching) { + internal_8(span); + } + } + }; + } + + // (62:3) + function create_default_slot_1$1(ctx) { + var button, t_1, dispose; + + function click_handler() { + return ctx.click_handler(ctx); + } + + return { + c: function create() { + button = internal_13("button"); + button.textContent = "Revoke"; + t_1 = internal_16(); + button.className = "btn svelte-hfyfkx"; + internal_33(button, "background", "var(--error)"); + internal_86(button, file$4, 62, 6, 1762); + dispose = internal_18(button, "click", click_handler); + }, + + m: function mount(target, anchor) { + internal_7(target, button, anchor); + internal_7(target, t_1, anchor); + }, + + p: function update(changed, new_ctx) { + ctx = new_ctx; + }, + + d: function destroy(detaching) { + if (detaching) { + internal_8(button); + internal_8(t_1); + } + + dispose(); + } + }; + } + + // (61:3) {#each token as t} + function create_each_block$1(ctx) { + var current; + + var boxitem = new BoxItem({ + props: { + name: ctx.t.browser, + value: ctx.t.ip, + highlight: ctx.t.isthis, + $$slots: { default: [create_default_slot_1$1] }, + $$scope: { ctx } + }, + $$inline: true + }); + + return { + c: function create() { + boxitem.$$.fragment.c(); + }, + + m: function mount(target, anchor) { + internal_100(boxitem, target, anchor); + current = true; + }, + + p: function update(changed, ctx) { + var boxitem_changes = {}; + if (changed.token) boxitem_changes.name = ctx.t.browser; + if (changed.token) boxitem_changes.value = ctx.t.ip; + if (changed.token) boxitem_changes.highlight = ctx.t.isthis; + if (changed.$$scope) boxitem_changes.$$scope = { changed, ctx }; + boxitem.$set(boxitem_changes); + }, + + i: function intro(local) { + if (current) return; + boxitem.$$.fragment.i(local); + + current = true; + }, + + o: function outro(local) { + boxitem.$$.fragment.o(local); + current = false; + }, + + d: function destroy(detaching) { + boxitem.$destroy(detaching); + } + }; + } + + // (58:0) + function create_default_slot$1(ctx) { + var h1, t_1, each_1_anchor, current; + + var each_value = ctx.token; + + var each_blocks = []; + + for (var i = 0; i < each_value.length; i += 1) { + each_blocks[i] = create_each_block$1(get_each_context$1(ctx, each_value, i)); + } + + function outro_block(i, detaching, local) { + if (each_blocks[i]) { + if (detaching) { + internal_78(() => { + each_blocks[i].d(detaching); + each_blocks[i] = null; + }); + } + + each_blocks[i].o(local); + } + } + + var each_1_else = null; + + if (!each_value.length) { + each_1_else = create_else_block$1(ctx); + each_1_else.c(); + } + + return { + c: function create() { + h1 = internal_13("h1"); + h1.textContent = "Anmeldungen"; + t_1 = internal_16(); + + for (var i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].c(); + } + + each_1_anchor = internal_17(); + h1.className = "svelte-hfyfkx"; + internal_86(h1, file$4, 58, 3, 1648); + }, + + m: function mount(target, anchor) { + internal_7(target, h1, anchor); + internal_7(target, t_1, anchor); + + for (var i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].m(target, anchor); + } + + internal_7(target, each_1_anchor, anchor); + + if (each_1_else) { + each_1_else.m(target, null); + } + + current = true; + }, + + p: function update(changed, ctx) { + if (changed.token) { + each_value = ctx.token; + + for (var i = 0; i < each_value.length; i += 1) { + const child_ctx = get_each_context$1(ctx, each_value, i); + + if (each_blocks[i]) { + each_blocks[i].p(changed, child_ctx); + each_blocks[i].i(1); + } else { + each_blocks[i] = create_each_block$1(child_ctx); + each_blocks[i].c(); + each_blocks[i].i(1); + each_blocks[i].m(each_1_anchor.parentNode, each_1_anchor); + } + } + + internal_76(); + for (; i < each_blocks.length; i += 1) outro_block(i, 1, 1); + internal_77(); + } + + if (each_value.length) { + if (each_1_else) { + each_1_else.d(1); + each_1_else = null; + } + } else if (!each_1_else) { + each_1_else = create_else_block$1(ctx); + each_1_else.c(); + each_1_else.m(each_1_anchor.parentNode, each_1_anchor); + } + }, + + i: function intro(local) { + if (current) return; + for (var i = 0; i < each_value.length; i += 1) each_blocks[i].i(); + + current = true; + }, + + o: function outro(local) { + each_blocks = each_blocks.filter(Boolean); + for (let i = 0; i < each_blocks.length; i += 1) outro_block(i, 0); + + current = false; + }, + + d: function destroy(detaching) { + if (detaching) { + internal_8(h1); + internal_8(t_1); + } + + internal_12(each_blocks, detaching); + + if (detaching) { + internal_8(each_1_anchor); + } + + if (each_1_else) each_1_else.d(detaching); + } + }; + } + + function create_fragment$4(ctx) { + var t, current; + + var box0 = new Box({ + props: { + $$slots: { default: [create_default_slot_2$1] }, + $$scope: { ctx } + }, + $$inline: true + }); + + var box1 = new Box({ + props: { + $$slots: { default: [create_default_slot$1] }, + $$scope: { ctx } + }, + $$inline: true + }); + + return { + c: function create() { + box0.$$.fragment.c(); + t = internal_16(); + box1.$$.fragment.c(); + }, + + l: function claim(nodes) { + throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); + }, + + m: function mount(target, anchor) { + internal_100(box0, target, anchor); + internal_7(target, t, anchor); + internal_100(box1, target, anchor); + current = true; + }, + + p: function update(changed, ctx) { + var box0_changes = {}; + if (changed.$$scope) box0_changes.$$scope = { changed, ctx }; + box0.$set(box0_changes); + + var box1_changes = {}; + if (changed.$$scope || changed.token) box1_changes.$$scope = { changed, ctx }; + box1.$set(box1_changes); + }, + + i: function intro(local) { + if (current) return; + box0.$$.fragment.i(local); + + box1.$$.fragment.i(local); + + current = true; + }, + + o: function outro(local) { + box0.$$.fragment.o(local); + box1.$$.fragment.o(local); + current = false; + }, + + d: function destroy(detaching) { + box0.$destroy(detaching); + + if (detaching) { + internal_8(t); + } + + box1.$destroy(detaching); + } + }; + } + + function instance$4($$self, $$props, $$invalidate) { + + + let { loading = false } = $$props; + + + let token = []; + + async function revoke(id) { + let res = await request("/api/user/token/" + id, undefined, "DELETE", undefined, true); + load(); + } + + async function load() { + $$invalidate('loading', loading = true); + let res = await request("/api/user/token", undefined, undefined, undefined, true); + $$invalidate('token', token = res.token); + $$invalidate('loading', loading = false); + } + + load(); + + function click_handler({ t }) { + return revoke(t.id); + } + + $$self.$set = $$props => { + if ('loading' in $$props) $$invalidate('loading', loading = $$props.loading); + }; + + return { loading, token, revoke, click_handler }; + } + + class Security extends internal_103 { + constructor(options) { + super(options); + internal_101(this, options, instance$4, create_fragment$4, internal_91, ["loading"]); + + const { ctx } = this.$$; + const props = options.props || {}; + if (ctx.loading === undefined && !('loading' in props)) { + console.warn(" was created without expected prop 'loading'"); + } + } + + get loading() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set loading(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + } + + /* src/User/NavigationBar.svelte generated by Svelte v3.1.0 */ + + const file$5 = "src/User/NavigationBar.svelte"; + + function get_each_context$2(ctx, list, i) { + const child_ctx = Object.create(ctx); + child_ctx.page = list[i]; + return child_ctx; + } + + // (39:0) {#each pages as page} + function create_each_block$2(ctx) { + var div1, div0, img, img_src_value, t0, h3, t1_value = ctx.page.title, t1, t2, dispose; + + function click_handler() { + return ctx.click_handler(ctx); + } + + return { + c: function create() { + div1 = internal_13("div"); + div0 = internal_13("div"); + img = internal_13("img"); + t0 = internal_16(); + h3 = internal_13("h3"); + t1 = internal_15(t1_value); + t2 = internal_16(); + img.src = img_src_value = ctx.page.icon; + img.className = "svelte-zltjsn"; + internal_86(img, file$5, 40, 24, 777); + div0.className = "icon svelte-zltjsn"; + internal_86(div0, file$5, 40, 6, 759); + h3.className = "title svelte-zltjsn"; + internal_86(h3, file$5, 41, 6, 813); + div1.className = "container svelte-zltjsn"; + internal_86(div1, file$5, 39, 3, 698); + dispose = internal_18(div1, "click", click_handler); + }, + + m: function mount(target, anchor) { + internal_7(target, div1, anchor); + internal_6(div1, div0); + internal_6(div0, img); + internal_6(div1, t0); + internal_6(div1, h3); + internal_6(h3, t1); + internal_6(div1, t2); + }, + + p: function update(changed, new_ctx) { + ctx = new_ctx; + if ((changed.pages) && img_src_value !== (img_src_value = ctx.page.icon)) { + img.src = img_src_value; + } + + if ((changed.pages) && t1_value !== (t1_value = ctx.page.title)) { + internal_31(t1, t1_value); + } + }, + + d: function destroy(detaching) { + if (detaching) { + internal_8(div1); + } + + dispose(); + } + }; + } + + function create_fragment$5(ctx) { + var each_1_anchor; + + var each_value = ctx.pages; + + var each_blocks = []; + + for (var i = 0; i < each_value.length; i += 1) { + each_blocks[i] = create_each_block$2(get_each_context$2(ctx, each_value, i)); + } + + return { + c: function create() { + for (var i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].c(); + } + + each_1_anchor = internal_17(); + }, + + l: function claim(nodes) { + throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); + }, + + m: function mount(target, anchor) { + for (var i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].m(target, anchor); + } + + internal_7(target, each_1_anchor, anchor); + }, + + p: function update(changed, ctx) { + if (changed.pages) { + each_value = ctx.pages; + + for (var i = 0; i < each_value.length; i += 1) { + const child_ctx = get_each_context$2(ctx, each_value, i); + + if (each_blocks[i]) { + each_blocks[i].p(changed, child_ctx); + } else { + each_blocks[i] = create_each_block$2(child_ctx); + each_blocks[i].c(); + each_blocks[i].m(each_1_anchor.parentNode, each_1_anchor); + } + } + + for (; i < each_blocks.length; i += 1) { + each_blocks[i].d(1); + } + each_blocks.length = each_value.length; + } + }, + + i: internal_82, + o: internal_82, + + d: function destroy(detaching) { + internal_12(each_blocks, detaching); + + if (detaching) { + internal_8(each_1_anchor); + } + } + }; + } + + function instance$5($$self, $$props, $$invalidate) { + let { open, pages = [] } = $$props; + + function click_handler({ page }) { + return open(page.id); + } + + $$self.$set = $$props => { + if ('open' in $$props) $$invalidate('open', open = $$props.open); + if ('pages' in $$props) $$invalidate('pages', pages = $$props.pages); + }; + + return { open, pages, click_handler }; + } + + class NavigationBar extends internal_103 { + constructor(options) { + super(options); + internal_101(this, options, instance$5, create_fragment$5, internal_91, ["open", "pages"]); + + const { ctx } = this.$$; + const props = options.props || {}; + if (ctx.open === undefined && !('open' in props)) { + console.warn(" was created without expected prop 'open'"); + } + if (ctx.pages === undefined && !('pages' in props)) { + console.warn(" was created without expected prop 'pages'"); + } + } + + get open() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set open(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get pages() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set pages(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + } + + /* src/User/App.svelte generated by Svelte v3.1.0 */ + + const file$6 = "src/User/App.svelte"; + + // (63:9) {#if sidebar_button} + function create_if_block_3(ctx) { + var button, svg, path, dispose; + + return { + c: function create() { + button = internal_13("button"); + svg = internal_14("svg"); + path = internal_14("path"); + internal_21(path, "d", "M4,10h24c1.104,0,2-0.896,2-2s-0.896-2-2-2H4C2.896,6,2,6.896,2,8S2.896,10,4,10z M28,14H4c-1.104,0-2,0.896-2,2 s0.896,2,2,2h24c1.104,0,2-0.896,2-2S29.104,14,28,14z M28,22H4c-1.104,0-2,0.896-2,2s0.896,2,2,2h24c1.104,0,2-0.896,2-2 S29.104,22,28,22z"); + internal_21(path, "class", "svelte-1ee89l3"); + internal_86(path, file$6, 64, 217, 1744); + internal_21(svg, "id", "Layer_1"); + internal_33(svg, "enable-background", "new 0 0 32 32"); + internal_21(svg, "version", "1.1"); + internal_21(svg, "viewBox", "0 0 32 32"); + internal_21(svg, "width", "32px"); + internal_21(svg, "xml:space", "preserve"); + internal_21(svg, "xmlns", "http://www.w3.org/2000/svg"); + internal_21(svg, "xmlns:xlink", "http://www.w3.org/1999/xlink"); + internal_21(svg, "class", "svelte-1ee89l3"); + internal_86(svg, file$6, 64, 12, 1539); + button.className = "svelte-1ee89l3"; + internal_86(button, file$6, 63, 9, 1470); + dispose = internal_18(button, "click", ctx.click_handler); + }, + + m: function mount(target, anchor) { + internal_7(target, button, anchor); + internal_6(button, svg); + internal_6(svg, path); + }, + + d: function destroy(detaching) { + if (detaching) { + internal_8(button); + } + + dispose(); + } + }; + } + + // (76:42) + function create_if_block_2$1(ctx) { + var updating_loading, current; + + function securitypage_loading_binding(value) { + ctx.securitypage_loading_binding.call(null, value); + updating_loading = true; + internal_63(() => updating_loading = false); + } + + let securitypage_props = {}; + if (ctx.loading !== void 0) { + securitypage_props.loading = ctx.loading; + } + var securitypage = new Security({ + props: securitypage_props, + $$inline: true + }); + + internal_61(() => internal_99(securitypage, 'loading', securitypage_loading_binding)); + + return { + c: function create() { + securitypage.$$.fragment.c(); + }, + + m: function mount(target, anchor) { + internal_100(securitypage, target, anchor); + current = true; + }, + + p: function update(changed, ctx) { + var securitypage_changes = {}; + if (!updating_loading && changed.loading) { + securitypage_changes.loading = ctx.loading; + } + securitypage.$set(securitypage_changes); + }, + + i: function intro(local) { + if (current) return; + securitypage.$$.fragment.i(local); + + current = true; + }, + + o: function outro(local) { + securitypage.$$.fragment.o(local); + current = false; + }, + + d: function destroy(detaching) { + securitypage.$destroy(detaching); + } + }; + } + + // (74:9) {#if page.id === "account"} + function create_if_block_1$1(ctx) { + var updating_loading, current; + + function accountpage_loading_binding(value) { + ctx.accountpage_loading_binding.call(null, value); + updating_loading = true; + internal_63(() => updating_loading = false); + } + + let accountpage_props = {}; + if (ctx.loading !== void 0) { + accountpage_props.loading = ctx.loading; + } + var accountpage = new Account({ props: accountpage_props, $$inline: true }); + + internal_61(() => internal_99(accountpage, 'loading', accountpage_loading_binding)); + + return { + c: function create() { + accountpage.$$.fragment.c(); + }, + + m: function mount(target, anchor) { + internal_100(accountpage, target, anchor); + current = true; + }, + + p: function update(changed, ctx) { + var accountpage_changes = {}; + if (!updating_loading && changed.loading) { + accountpage_changes.loading = ctx.loading; + } + accountpage.$set(accountpage_changes); + }, + + i: function intro(local) { + if (current) return; + accountpage.$$.fragment.i(local); + + current = true; + }, + + o: function outro(local) { + accountpage.$$.fragment.o(local); + current = false; + }, + + d: function destroy(detaching) { + accountpage.$destroy(detaching); + } + }; + } + + // (84:0) {#if loading} + function create_if_block$2(ctx) { + var div2, div1, div0; + + return { + c: function create() { + div2 = internal_13("div"); + div1 = internal_13("div"); + div0 = internal_13("div"); + div0.className = "loader svelte-1ee89l3"; + internal_86(div0, file$6, 86, 6, 2568); + div1.className = "loader_box svelte-1ee89l3"; + internal_86(div1, file$6, 85, 3, 2537); + div2.className = "loader_container svelte-1ee89l3"; + internal_86(div2, file$6, 84, 0, 2503); + }, + + m: function mount(target, anchor) { + internal_7(target, div2, anchor); + internal_6(div2, div1); + internal_6(div1, div0); + }, + + d: function destroy(detaching) { + if (detaching) { + internal_8(div2); + } + } + }; + } + + function create_fragment$6(ctx) { + var div5, div4, div0, t0, h1, t1_value = ctx.page.title, t1, t2, div1, t3, div2, current_block_type_index, if_block1, t4, div3, t5, if_block2_anchor, current; + + var if_block0 = (ctx.sidebar_button) && create_if_block_3(ctx); + + var navigationbar = new NavigationBar({ + props: { + open: ctx.setPage, + pages: ctx.pages + }, + $$inline: true + }); + + var if_block_creators = [ + create_if_block_1$1, + create_if_block_2$1 + ]; + + var if_blocks = []; + + function select_block_type(ctx) { + if (ctx.page.id === "account") return 0; + if (ctx.page.id === "security") return 1; + return -1; + } + + if (~(current_block_type_index = select_block_type(ctx))) { + if_block1 = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx); + } + + var if_block2 = (ctx.loading) && create_if_block$2(ctx); + + return { + c: function create() { + div5 = internal_13("div"); + div4 = internal_13("div"); + div0 = internal_13("div"); + if (if_block0) if_block0.c(); + t0 = internal_16(); + h1 = internal_13("h1"); + t1 = internal_15(t1_value); + t2 = internal_16(); + div1 = internal_13("div"); + navigationbar.$$.fragment.c(); + t3 = internal_16(); + div2 = internal_13("div"); + if (if_block1) if_block1.c(); + t4 = internal_16(); + div3 = internal_13("div"); + t5 = internal_16(); + if (if_block2) if_block2.c(); + if_block2_anchor = internal_17(); + h1.className = "svelte-1ee89l3"; + internal_86(h1, file$6, 67, 6, 2049); + div0.className = "header svelte-1ee89l3"; + internal_86(div0, file$6, 61, 6, 1410); + div1.className = "sidebar svelte-1ee89l3"; + internal_39(div1, "sidebar-visible", ctx.sidebar_active); + internal_86(div1, file$6, 69, 6, 2090); + div2.className = "content svelte-1ee89l3"; + internal_86(div2, file$6, 72, 6, 2226); + div3.className = "footer svelte-1ee89l3"; + internal_86(div3, file$6, 79, 6, 2444); + div4.className = "container svelte-1ee89l3"; + internal_86(div4, file$6, 60, 3, 1380); + div5.className = "root svelte-1ee89l3"; + internal_39(div5, "loading", ctx.loading); + internal_86(div5, file$6, 59, 0, 1344); + }, + + l: function claim(nodes) { + throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); + }, + + m: function mount(target, anchor) { + internal_7(target, div5, anchor); + internal_6(div5, div4); + internal_6(div4, div0); + if (if_block0) if_block0.m(div0, null); + internal_6(div0, t0); + internal_6(div0, h1); + internal_6(h1, t1); + internal_6(div4, t2); + internal_6(div4, div1); + internal_100(navigationbar, div1, null); + internal_6(div4, t3); + internal_6(div4, div2); + if (~current_block_type_index) if_blocks[current_block_type_index].m(div2, null); + internal_6(div4, t4); + internal_6(div4, div3); + internal_7(target, t5, anchor); + if (if_block2) if_block2.m(target, anchor); + internal_7(target, if_block2_anchor, anchor); + current = true; + }, + + p: function update(changed, ctx) { + if (ctx.sidebar_button) { + if (!if_block0) { + if_block0 = create_if_block_3(ctx); + if_block0.c(); + if_block0.m(div0, t0); + } + } else if (if_block0) { + if_block0.d(1); + if_block0 = null; + } + + if ((!current || changed.page) && t1_value !== (t1_value = ctx.page.title)) { + internal_31(t1, t1_value); + } + + var navigationbar_changes = {}; + if (changed.setPage) navigationbar_changes.open = ctx.setPage; + if (changed.pages) navigationbar_changes.pages = ctx.pages; + navigationbar.$set(navigationbar_changes); + + if (changed.sidebar_active) { + internal_39(div1, "sidebar-visible", ctx.sidebar_active); + } + + var previous_block_index = current_block_type_index; + current_block_type_index = select_block_type(ctx); + if (current_block_type_index === previous_block_index) { + if (~current_block_type_index) if_blocks[current_block_type_index].p(changed, ctx); + } else { + if (if_block1) { + internal_76(); + internal_78(() => { + if_blocks[previous_block_index].d(1); + if_blocks[previous_block_index] = null; + }); + if_block1.o(1); + internal_77(); + } + + if (~current_block_type_index) { + if_block1 = if_blocks[current_block_type_index]; + if (!if_block1) { + if_block1 = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx); + if_block1.c(); + } + if_block1.i(1); + if_block1.m(div2, null); + } else { + if_block1 = null; + } + } + + if (changed.loading) { + internal_39(div5, "loading", ctx.loading); + } + + if (ctx.loading) { + if (!if_block2) { + if_block2 = create_if_block$2(ctx); + if_block2.c(); + if_block2.m(if_block2_anchor.parentNode, if_block2_anchor); + } + } else if (if_block2) { + if_block2.d(1); + if_block2 = null; + } + }, + + i: function intro(local) { + if (current) return; + navigationbar.$$.fragment.i(local); + + if (if_block1) if_block1.i(); + current = true; + }, + + o: function outro(local) { + navigationbar.$$.fragment.o(local); + if (if_block1) if_block1.o(); + current = false; + }, + + d: function destroy(detaching) { + if (detaching) { + internal_8(div5); + } + + if (if_block0) if_block0.d(); + + navigationbar.$destroy(); + + if (~current_block_type_index) if_blocks[current_block_type_index].d(); + + if (detaching) { + internal_8(t5); + } + + if (if_block2) if_block2.d(detaching); + + if (detaching) { + internal_8(if_block2_anchor); + } + } + }; + } + + function instance$6($$self, $$props, $$invalidate) { + + + const pages = [{ + id: "account", + title: "Account", + icon: "", + component: Account + }, + { + id: "security", + title: "Security", + icon: "", + component: Security + } + ]; + + function getPage() { + let pageid = window.location.hash.slice(1); + return pages.find(e => e.id === pageid) || pages[0]; + } + + let page = getPage(); + window.addEventListener("hashchange", () => { + $$invalidate('page', page = getPage()); + }); + // $: title = pages.find(e => e.id === page).title; + + + const mq = window.matchMedia("(min-width: 45rem)"); + let sidebar_button = !mq.matches; + mq.addEventListener("change", (ev) => { + $$invalidate('sidebar_button', sidebar_button = !ev.matches); + }); + + let sidebar_active = false; + + + + function setPage(pageid) { + let pg = pages.find(e => e.id === pageid); + if (!pg) { + throw new Error("Invalid Page " + pageid); + } else { + let url = new URL(window.location.href); + url.hash = pg.id; + window.history.pushState({}, pg.title, url); + $$invalidate('page', page = getPage()); + } + + $$invalidate('sidebar_active', sidebar_active = false); + } + + + let loading = true; + + function click_handler() { + const $$result = sidebar_active = !sidebar_active; + $$invalidate('sidebar_active', sidebar_active); + return $$result; + } + + function accountpage_loading_binding(value) { + loading = value; + $$invalidate('loading', loading); + } + + function securitypage_loading_binding(value) { + loading = value; + $$invalidate('loading', loading); + } + + return { + pages, + page, + sidebar_button, + sidebar_active, + setPage, + loading, + click_handler, + accountpage_loading_binding, + securitypage_loading_binding + }; + } + + class App extends internal_103 { + constructor(options) { + super(options); + internal_101(this, options, instance$6, create_fragment$6, internal_91, []); + } + } + + var app = new App({ + target: document.getElementById("content") + }); + + return app; + +}()); +//# sourceMappingURL=bundle.js.map diff --git a/public/user.old/bundle.js.map b/public/user.old/bundle.js.map new file mode 100644 index 0000000..13c6f7a --- /dev/null +++ b/public/user.old/bundle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bundle.js","sources":["../../node_modules/svelte/internal.js","../../node_modules/svelte/easing.js","../../node_modules/svelte/transition.js","../../src/User/Pages/NextIcon.svelte","../../src/User/Pages/BoxItem.svelte","../../src/cookie.ts","../../src/request.ts","../../src/User/Pages/Account.svelte","../../src/User/Pages/Security.svelte","../../src/User/NavigationBar.svelte","../../src/User/App.svelte","../../src/User/main.js"],"sourcesContent":["'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction noop() {}\n\nconst identity = x => x;\n\nfunction assign(tar, src) {\n\tfor (const k in src) tar[k] = src[k];\n\treturn tar;\n}\n\nfunction is_promise(value) {\n\treturn value && typeof value.then === 'function';\n}\n\nfunction add_location(element, file, line, column, char) {\n\telement.__svelte_meta = {\n\t\tloc: { file, line, column, char }\n\t};\n}\n\nfunction run(fn) {\n\treturn fn();\n}\n\nfunction blank_object() {\n\treturn Object.create(null);\n}\n\nfunction run_all(fns) {\n\tfns.forEach(run);\n}\n\nfunction is_function(thing) {\n\treturn typeof thing === 'function';\n}\n\nfunction safe_not_equal(a, b) {\n\treturn a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function');\n}\n\nfunction not_equal(a, b) {\n\treturn a != a ? b == b : a !== b;\n}\n\nfunction validate_store(store, name) {\n\tif (!store || typeof store.subscribe !== 'function') {\n\t\tthrow new Error(`'${name}' is not a store with a 'subscribe' method`);\n\t}\n}\n\nfunction subscribe(component, store, callback) {\n\tconst unsub = store.subscribe(callback);\n\n\tcomponent.$$.on_destroy.push(unsub.unsubscribe\n\t\t? () => unsub.unsubscribe()\n\t\t: unsub);\n}\n\nfunction create_slot(definition, ctx, fn) {\n\tif (definition) {\n\t\tconst slot_ctx = get_slot_context(definition, ctx, fn);\n\t\treturn definition[0](slot_ctx);\n\t}\n}\n\nfunction get_slot_context(definition, ctx, fn) {\n\treturn definition[1]\n\t\t? assign({}, assign(ctx.$$scope.ctx, definition[1](fn ? fn(ctx) : {})))\n\t\t: ctx.$$scope.ctx;\n}\n\nfunction get_slot_changes(definition, ctx, changed, fn) {\n\treturn definition[1]\n\t\t? assign({}, assign(ctx.$$scope.changed || {}, definition[1](fn ? fn(changed) : {})))\n\t\t: ctx.$$scope.changed || {};\n}\n\nfunction exclude_internal_props(props) {\n\tconst result = {};\n\tfor (const k in props) if (k[0] !== '$') result[k] = props[k];\n\treturn result;\n}\n\nconst tasks = new Set();\nlet running = false;\n\nfunction run_tasks() {\n\ttasks.forEach(task => {\n\t\tif (!task[0](window.performance.now())) {\n\t\t\ttasks.delete(task);\n\t\t\ttask[1]();\n\t\t}\n\t});\n\n\trunning = tasks.size > 0;\n\tif (running) requestAnimationFrame(run_tasks);\n}\n\nfunction clear_loops() {\n\t// for testing...\n\ttasks.forEach(task => tasks.delete(task));\n\trunning = false;\n}\n\nfunction loop(fn) {\n\tlet task;\n\n\tif (!running) {\n\t\trunning = true;\n\t\trequestAnimationFrame(run_tasks);\n\t}\n\n\treturn {\n\t\tpromise: new Promise(fulfil => {\n\t\t\ttasks.add(task = [fn, fulfil]);\n\t\t}),\n\t\tabort() {\n\t\t\ttasks.delete(task);\n\t\t}\n\t};\n}\n\nfunction append(target, node) {\n\ttarget.appendChild(node);\n}\n\nfunction insert(target, node, anchor) {\n\ttarget.insertBefore(node, anchor);\n}\n\nfunction detach(node) {\n\tnode.parentNode.removeChild(node);\n}\n\nfunction detach_between(before, after) {\n\twhile (before.nextSibling && before.nextSibling !== after) {\n\t\tbefore.parentNode.removeChild(before.nextSibling);\n\t}\n}\n\nfunction detach_before(after) {\n\twhile (after.previousSibling) {\n\t\tafter.parentNode.removeChild(after.previousSibling);\n\t}\n}\n\nfunction detach_after(before) {\n\twhile (before.nextSibling) {\n\t\tbefore.parentNode.removeChild(before.nextSibling);\n\t}\n}\n\nfunction destroy_each(iterations, detaching) {\n\tfor (let i = 0; i < iterations.length; i += 1) {\n\t\tif (iterations[i]) iterations[i].d(detaching);\n\t}\n}\n\nfunction element(name) {\n\treturn document.createElement(name);\n}\n\nfunction svg_element(name) {\n\treturn document.createElementNS('http://www.w3.org/2000/svg', name);\n}\n\nfunction text(data) {\n\treturn document.createTextNode(data);\n}\n\nfunction space() {\n\treturn text(' ');\n}\n\nfunction empty() {\n\treturn text('');\n}\n\nfunction listen(node, event, handler, options) {\n\tnode.addEventListener(event, handler, options);\n\treturn () => node.removeEventListener(event, handler, options);\n}\n\nfunction prevent_default(fn) {\n\treturn function(event) {\n\t\tevent.preventDefault();\n\t\treturn fn.call(this, event);\n\t};\n}\n\nfunction stop_propagation(fn) {\n\treturn function(event) {\n\t\tevent.stopPropagation();\n\t\treturn fn.call(this, event);\n\t};\n}\n\nfunction attr(node, attribute, value) {\n\tif (value == null) node.removeAttribute(attribute);\n\telse node.setAttribute(attribute, value);\n}\n\nfunction set_attributes(node, attributes) {\n\tfor (const key in attributes) {\n\t\tif (key === 'style') {\n\t\t\tnode.style.cssText = attributes[key];\n\t\t} else if (key in node) {\n\t\t\tnode[key] = attributes[key];\n\t\t} else {\n\t\t\tattr(node, key, attributes[key]);\n\t\t}\n\t}\n}\n\nfunction set_custom_element_data(node, prop, value) {\n\tif (prop in node) {\n\t\tnode[prop] = value;\n\t} else {\n\t\tattr(node, prop, value);\n\t}\n}\n\nfunction xlink_attr(node, attribute, value) {\n\tnode.setAttributeNS('http://www.w3.org/1999/xlink', attribute, value);\n}\n\nfunction get_binding_group_value(group) {\n\tconst value = [];\n\tfor (let i = 0; i < group.length; i += 1) {\n\t\tif (group[i].checked) value.push(group[i].__value);\n\t}\n\treturn value;\n}\n\nfunction to_number(value) {\n\treturn value === '' ? undefined : +value;\n}\n\nfunction time_ranges_to_array(ranges) {\n\tconst array = [];\n\tfor (let i = 0; i < ranges.length; i += 1) {\n\t\tarray.push({ start: ranges.start(i), end: ranges.end(i) });\n\t}\n\treturn array;\n}\n\nfunction children(element) {\n\treturn Array.from(element.childNodes);\n}\n\nfunction claim_element(nodes, name, attributes, svg) {\n\tfor (let i = 0; i < nodes.length; i += 1) {\n\t\tconst node = nodes[i];\n\t\tif (node.nodeName === name) {\n\t\t\tfor (let j = 0; j < node.attributes.length; j += 1) {\n\t\t\t\tconst attribute = node.attributes[j];\n\t\t\t\tif (!attributes[attribute.name]) node.removeAttribute(attribute.name);\n\t\t\t}\n\t\t\treturn nodes.splice(i, 1)[0]; // TODO strip unwanted attributes\n\t\t}\n\t}\n\n\treturn svg ? svg_element(name) : element(name);\n}\n\nfunction claim_text(nodes, data) {\n\tfor (let i = 0; i < nodes.length; i += 1) {\n\t\tconst node = nodes[i];\n\t\tif (node.nodeType === 3) {\n\t\t\tnode.data = data;\n\t\t\treturn nodes.splice(i, 1)[0];\n\t\t}\n\t}\n\n\treturn text(data);\n}\n\nfunction set_data(text, data) {\n\tdata = '' + data;\n\tif (text.data !== data) text.data = data;\n}\n\nfunction set_input_type(input, type) {\n\ttry {\n\t\tinput.type = type;\n\t} catch (e) {\n\t\t// do nothing\n\t}\n}\n\nfunction set_style(node, key, value) {\n\tnode.style.setProperty(key, value);\n}\n\nfunction select_option(select, value) {\n\tfor (let i = 0; i < select.options.length; i += 1) {\n\t\tconst option = select.options[i];\n\n\t\tif (option.__value === value) {\n\t\t\toption.selected = true;\n\t\t\treturn;\n\t\t}\n\t}\n}\n\nfunction select_options(select, value) {\n\tfor (let i = 0; i < select.options.length; i += 1) {\n\t\tconst option = select.options[i];\n\t\toption.selected = ~value.indexOf(option.__value);\n\t}\n}\n\nfunction select_value(select) {\n\tconst selected_option = select.querySelector(':checked') || select.options[0];\n\treturn selected_option && selected_option.__value;\n}\n\nfunction select_multiple_value(select) {\n\treturn [].map.call(select.querySelectorAll(':checked'), option => option.__value);\n}\n\nfunction add_resize_listener(element, fn) {\n\tif (getComputedStyle(element).position === 'static') {\n\t\telement.style.position = 'relative';\n\t}\n\n\tconst object = document.createElement('object');\n\tobject.setAttribute('style', 'display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; pointer-events: none; z-index: -1;');\n\tobject.type = 'text/html';\n\n\tlet win;\n\n\tobject.onload = () => {\n\t\twin = object.contentDocument.defaultView;\n\t\twin.addEventListener('resize', fn);\n\t};\n\n\tif (/Trident/.test(navigator.userAgent)) {\n\t\telement.appendChild(object);\n\t\tobject.data = 'about:blank';\n\t} else {\n\t\tobject.data = 'about:blank';\n\t\telement.appendChild(object);\n\t}\n\n\treturn {\n\t\tcancel: () => {\n\t\t\twin && win.removeEventListener && win.removeEventListener('resize', fn);\n\t\t\telement.removeChild(object);\n\t\t}\n\t};\n}\n\nfunction toggle_class(element, name, toggle) {\n\telement.classList[toggle ? 'add' : 'remove'](name);\n}\n\nfunction custom_event(type, detail) {\n\tconst e = document.createEvent('CustomEvent');\n\te.initCustomEvent(type, false, false, detail);\n\treturn e;\n}\n\nlet stylesheet;\nlet active = 0;\nlet current_rules = {};\n\n// https://github.com/darkskyapp/string-hash/blob/master/index.js\nfunction hash(str) {\n\tlet hash = 5381;\n\tlet i = str.length;\n\n\twhile (i--) hash = ((hash << 5) - hash) ^ str.charCodeAt(i);\n\treturn hash >>> 0;\n}\n\nfunction create_rule(node, a, b, duration, delay, ease, fn, uid = 0) {\n\tconst step = 16.666 / duration;\n\tlet keyframes = '{\\n';\n\n\tfor (let p = 0; p <= 1; p += step) {\n\t\tconst t = a + (b - a) * ease(p);\n\t\tkeyframes += p * 100 + `%{${fn(t, 1 - t)}}\\n`;\n\t}\n\n\tconst rule = keyframes + `100% {${fn(b, 1 - b)}}\\n}`;\n\tconst name = `__svelte_${hash(rule)}_${uid}`;\n\n\tif (!current_rules[name]) {\n\t\tif (!stylesheet) {\n\t\t\tconst style = element('style');\n\t\t\tdocument.head.appendChild(style);\n\t\t\tstylesheet = style.sheet;\n\t\t}\n\n\t\tcurrent_rules[name] = true;\n\t\tstylesheet.insertRule(`@keyframes ${name} ${rule}`, stylesheet.cssRules.length);\n\t}\n\n\tconst animation = node.style.animation || '';\n\tnode.style.animation = `${animation ? `${animation}, ` : ``}${name} ${duration}ms linear ${delay}ms 1 both`;\n\n\tactive += 1;\n\treturn name;\n}\n\nfunction delete_rule(node, name) {\n\tnode.style.animation = (node.style.animation || '')\n\t\t.split(', ')\n\t\t.filter(name\n\t\t\t? anim => anim.indexOf(name) < 0 // remove specific animation\n\t\t\t: anim => anim.indexOf('__svelte') === -1 // remove all Svelte animations\n\t\t)\n\t\t.join(', ');\n\n\tif (name && !--active) clear_rules();\n}\n\nfunction clear_rules() {\n\trequestAnimationFrame(() => {\n\t\tif (active) return;\n\t\tlet i = stylesheet.cssRules.length;\n\t\twhile (i--) stylesheet.deleteRule(i);\n\t\tcurrent_rules = {};\n\t});\n}\n\nfunction create_animation(node, from, fn, params) {\n\tif (!from) return noop;\n\n\tconst to = node.getBoundingClientRect();\n\tif (from.left === to.left && from.right === to.right && from.top === to.top && from.bottom === to.bottom) return noop;\n\n\tconst {\n\t\tdelay = 0,\n\t\tduration = 300,\n\t\teasing = identity,\n\t\tstart: start_time = window.performance.now() + delay,\n\t\tend = start_time + duration,\n\t\ttick = noop,\n\t\tcss\n\t} = fn(node, { from, to }, params);\n\n\tlet running = true;\n\tlet started = false;\n\tlet name;\n\n\tconst css_text = node.style.cssText;\n\n\tfunction start() {\n\t\tif (css) {\n\t\t\tif (delay) node.style.cssText = css_text; // TODO create delayed animation instead?\n\t\t\tname = create_rule(node, 0, 1, duration, 0, easing, css);\n\t\t}\n\n\t\tstarted = true;\n\t}\n\n\tfunction stop() {\n\t\tif (css) delete_rule(node, name);\n\t\trunning = false;\n\t}\n\n\tloop(now => {\n\t\tif (!started && now >= start_time) {\n\t\t\tstart();\n\t\t}\n\n\t\tif (started && now >= end) {\n\t\t\ttick(1, 0);\n\t\t\tstop();\n\t\t}\n\n\t\tif (!running) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (started) {\n\t\t\tconst p = now - start_time;\n\t\t\tconst t = 0 + 1 * easing(p / duration);\n\t\t\ttick(t, 1 - t);\n\t\t}\n\n\t\treturn true;\n\t});\n\n\tif (delay) {\n\t\tif (css) node.style.cssText += css(0, 1);\n\t} else {\n\t\tstart();\n\t}\n\n\ttick(0, 1);\n\n\treturn stop;\n}\n\nfunction fix_position(node) {\n\tconst style = getComputedStyle(node);\n\n\tif (style.position !== 'absolute' && style.position !== 'fixed') {\n\t\tconst { width, height } = style;\n\t\tconst a = node.getBoundingClientRect();\n\t\tnode.style.position = 'absolute';\n\t\tnode.style.width = width;\n\t\tnode.style.height = height;\n\t\tconst b = node.getBoundingClientRect();\n\n\t\tif (a.left !== b.left || a.top !== b.top) {\n\t\t\tconst style = getComputedStyle(node);\n\t\t\tconst transform = style.transform === 'none' ? '' : style.transform;\n\n\t\t\tnode.style.transform = `${transform} translate(${a.left - b.left}px, ${a.top - b.top}px)`;\n\t\t}\n\t}\n}\n\nfunction set_current_component(component) {\n\texports.current_component = component;\n}\n\nfunction get_current_component() {\n\tif (!exports.current_component) throw new Error(`Function called outside component initialization`);\n\treturn exports.current_component;\n}\n\nfunction beforeUpdate(fn) {\n\tget_current_component().$$.before_render.push(fn);\n}\n\nfunction onMount(fn) {\n\tget_current_component().$$.on_mount.push(fn);\n}\n\nfunction afterUpdate(fn) {\n\tget_current_component().$$.after_render.push(fn);\n}\n\nfunction onDestroy(fn) {\n\tget_current_component().$$.on_destroy.push(fn);\n}\n\nfunction createEventDispatcher() {\n\tconst component = exports.current_component;\n\n\treturn (type, detail) => {\n\t\tconst callbacks = component.$$.callbacks[type];\n\n\t\tif (callbacks) {\n\t\t\t// TODO are there situations where events could be dispatched\n\t\t\t// in a server (non-DOM) environment?\n\t\t\tconst event = custom_event(type, detail);\n\t\t\tcallbacks.slice().forEach(fn => {\n\t\t\t\tfn.call(component, event);\n\t\t\t});\n\t\t}\n\t};\n}\n\nfunction setContext(key, context) {\n\tget_current_component().$$.context.set(key, context);\n}\n\nfunction getContext(key) {\n\treturn get_current_component().$$.context.get(key);\n}\n\n// TODO figure out if we still want to support\n// shorthand events, or if we want to implement\n// a real bubbling mechanism\nfunction bubble(component, event) {\n\tconst callbacks = component.$$.callbacks[event.type];\n\n\tif (callbacks) {\n\t\tcallbacks.slice().forEach(fn => fn(event));\n\t}\n}\n\nconst dirty_components = [];\nconst intros = { enabled: false };\n\nconst resolved_promise = Promise.resolve();\nlet update_scheduled = false;\nconst binding_callbacks = [];\nconst render_callbacks = [];\nconst flush_callbacks = [];\n\nfunction schedule_update() {\n\tif (!update_scheduled) {\n\t\tupdate_scheduled = true;\n\t\tresolved_promise.then(flush);\n\t}\n}\n\nfunction tick() {\n\tschedule_update();\n\treturn resolved_promise;\n}\n\nfunction add_binding_callback(fn) {\n\tbinding_callbacks.push(fn);\n}\n\nfunction add_render_callback(fn) {\n\trender_callbacks.push(fn);\n}\n\nfunction add_flush_callback(fn) {\n\tflush_callbacks.push(fn);\n}\n\nfunction flush() {\n\tconst seen_callbacks = new Set();\n\n\tdo {\n\t\t// first, call beforeUpdate functions\n\t\t// and update components\n\t\twhile (dirty_components.length) {\n\t\t\tconst component = dirty_components.shift();\n\t\t\tset_current_component(component);\n\t\t\tupdate(component.$$);\n\t\t}\n\n\t\twhile (binding_callbacks.length) binding_callbacks.shift()();\n\n\t\t// then, once components are updated, call\n\t\t// afterUpdate functions. This may cause\n\t\t// subsequent updates...\n\t\twhile (render_callbacks.length) {\n\t\t\tconst callback = render_callbacks.pop();\n\t\t\tif (!seen_callbacks.has(callback)) {\n\t\t\t\tcallback();\n\n\t\t\t\t// ...so guard against infinite loops\n\t\t\t\tseen_callbacks.add(callback);\n\t\t\t}\n\t\t}\n\t} while (dirty_components.length);\n\n\twhile (flush_callbacks.length) {\n\t\tflush_callbacks.pop()();\n\t}\n\n\tupdate_scheduled = false;\n}\n\nfunction update($$) {\n\tif ($$.fragment) {\n\t\t$$.update($$.dirty);\n\t\trun_all($$.before_render);\n\t\t$$.fragment.p($$.dirty, $$.ctx);\n\t\t$$.dirty = null;\n\n\t\t$$.after_render.forEach(add_render_callback);\n\t}\n}\n\nlet promise;\n\nfunction wait() {\n\tif (!promise) {\n\t\tpromise = Promise.resolve();\n\t\tpromise.then(() => {\n\t\t\tpromise = null;\n\t\t});\n\t}\n\n\treturn promise;\n}\n\nfunction dispatch(node, direction, kind) {\n\tnode.dispatchEvent(custom_event(`${direction ? 'intro' : 'outro'}${kind}`));\n}\n\nlet outros;\n\nfunction group_outros() {\n\toutros = {\n\t\tremaining: 0,\n\t\tcallbacks: []\n\t};\n}\n\nfunction check_outros() {\n\tif (!outros.remaining) {\n\t\trun_all(outros.callbacks);\n\t}\n}\n\nfunction on_outro(callback) {\n\toutros.callbacks.push(callback);\n}\n\nfunction create_in_transition(node, fn, params) {\n\tlet config = fn(node, params);\n\tlet running = false;\n\tlet animation_name;\n\tlet task;\n\tlet uid = 0;\n\n\tfunction cleanup() {\n\t\tif (animation_name) delete_rule(node, animation_name);\n\t}\n\n\tfunction go() {\n\t\tconst {\n\t\t\tdelay = 0,\n\t\t\tduration = 300,\n\t\t\teasing = identity,\n\t\t\ttick: tick$$1 = noop,\n\t\t\tcss\n\t\t} = config;\n\n\t\tif (css) animation_name = create_rule(node, 0, 1, duration, delay, easing, css, uid++);\n\t\ttick$$1(0, 1);\n\n\t\tconst start_time = window.performance.now() + delay;\n\t\tconst end_time = start_time + duration;\n\n\t\tif (task) task.abort();\n\t\trunning = true;\n\n\t\ttask = loop(now => {\n\t\t\tif (running) {\n\t\t\t\tif (now >= end_time) {\n\t\t\t\t\ttick$$1(1, 0);\n\t\t\t\t\tcleanup();\n\t\t\t\t\treturn running = false;\n\t\t\t\t}\n\n\t\t\t\tif (now >= start_time) {\n\t\t\t\t\tconst t = easing((now - start_time) / duration);\n\t\t\t\t\ttick$$1(t, 1 - t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn running;\n\t\t});\n\t}\n\n\tlet started = false;\n\n\treturn {\n\t\tstart() {\n\t\t\tif (started) return;\n\n\t\t\tdelete_rule(node);\n\n\t\t\tif (typeof config === 'function') {\n\t\t\t\tconfig = config();\n\t\t\t\twait().then(go);\n\t\t\t} else {\n\t\t\t\tgo();\n\t\t\t}\n\t\t},\n\n\t\tinvalidate() {\n\t\t\tstarted = false;\n\t\t},\n\n\t\tend() {\n\t\t\tif (running) {\n\t\t\t\tcleanup();\n\t\t\t\trunning = false;\n\t\t\t}\n\t\t}\n\t};\n}\n\nfunction create_out_transition(node, fn, params) {\n\tlet config = fn(node, params);\n\tlet running = true;\n\tlet animation_name;\n\n\tconst group = outros;\n\n\tgroup.remaining += 1;\n\n\tfunction go() {\n\t\tconst {\n\t\t\tdelay = 0,\n\t\t\tduration = 300,\n\t\t\teasing = identity,\n\t\t\ttick: tick$$1 = noop,\n\t\t\tcss\n\t\t} = config;\n\n\t\tif (css) animation_name = create_rule(node, 1, 0, duration, delay, easing, css);\n\n\t\tconst start_time = window.performance.now() + delay;\n\t\tconst end_time = start_time + duration;\n\n\t\tloop(now => {\n\t\t\tif (running) {\n\t\t\t\tif (now >= end_time) {\n\t\t\t\t\ttick$$1(0, 1);\n\n\t\t\t\t\tif (!--group.remaining) {\n\t\t\t\t\t\t// this will result in `end()` being called,\n\t\t\t\t\t\t// so we don't need to clean up here\n\t\t\t\t\t\trun_all(group.callbacks);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tif (now >= start_time) {\n\t\t\t\t\tconst t = easing((now - start_time) / duration);\n\t\t\t\t\ttick$$1(1 - t, t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn running;\n\t\t});\n\t}\n\n\tif (typeof config === 'function') {\n\t\twait().then(() => {\n\t\t\tconfig = config();\n\t\t\tgo();\n\t\t});\n\t} else {\n\t\tgo();\n\t}\n\n\treturn {\n\t\tend(reset) {\n\t\t\tif (reset && config.tick) {\n\t\t\t\tconfig.tick(1, 0);\n\t\t\t}\n\n\t\t\tif (running) {\n\t\t\t\tif (animation_name) delete_rule(node, animation_name);\n\t\t\t\trunning = false;\n\t\t\t}\n\t\t}\n\t};\n}\n\nfunction create_bidirectional_transition(node, fn, params, intro) {\n\tlet config = fn(node, params);\n\n\tlet t = intro ? 0 : 1;\n\n\tlet running_program = null;\n\tlet pending_program = null;\n\tlet animation_name = null;\n\n\tfunction clear_animation() {\n\t\tif (animation_name) delete_rule(node, animation_name);\n\t}\n\n\tfunction init(program, duration) {\n\t\tconst d = program.b - t;\n\t\tduration *= Math.abs(d);\n\n\t\treturn {\n\t\t\ta: t,\n\t\t\tb: program.b,\n\t\t\td,\n\t\t\tduration,\n\t\t\tstart: program.start,\n\t\t\tend: program.start + duration,\n\t\t\tgroup: program.group\n\t\t};\n\t}\n\n\tfunction go(b) {\n\t\tconst {\n\t\t\tdelay = 0,\n\t\t\tduration = 300,\n\t\t\teasing = identity,\n\t\t\ttick: tick$$1 = noop,\n\t\t\tcss\n\t\t} = config;\n\n\t\tconst program = {\n\t\t\tstart: window.performance.now() + delay,\n\t\t\tb\n\t\t};\n\n\t\tif (!b) {\n\t\t\tprogram.group = outros;\n\t\t\toutros.remaining += 1;\n\t\t}\n\n\t\tif (running_program) {\n\t\t\tpending_program = program;\n\t\t} else {\n\t\t\t// if this is an intro, and there's a delay, we need to do\n\t\t\t// an initial tick and/or apply CSS animation immediately\n\t\t\tif (css) {\n\t\t\t\tclear_animation();\n\t\t\t\tanimation_name = create_rule(node, t, b, duration, delay, easing, css);\n\t\t\t}\n\n\t\t\tif (b) tick$$1(0, 1);\n\n\t\t\trunning_program = init(program, duration);\n\t\t\tadd_render_callback(() => dispatch(node, b, 'start'));\n\n\t\t\tloop(now => {\n\t\t\t\tif (pending_program && now > pending_program.start) {\n\t\t\t\t\trunning_program = init(pending_program, duration);\n\t\t\t\t\tpending_program = null;\n\n\t\t\t\t\tdispatch(node, running_program.b, 'start');\n\n\t\t\t\t\tif (css) {\n\t\t\t\t\t\tclear_animation();\n\t\t\t\t\t\tanimation_name = create_rule(node, t, running_program.b, running_program.duration, 0, easing, config.css);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (running_program) {\n\t\t\t\t\tif (now >= running_program.end) {\n\t\t\t\t\t\ttick$$1(t = running_program.b, 1 - t);\n\t\t\t\t\t\tdispatch(node, running_program.b, 'end');\n\n\t\t\t\t\t\tif (!pending_program) {\n\t\t\t\t\t\t\t// we're done\n\t\t\t\t\t\t\tif (running_program.b) {\n\t\t\t\t\t\t\t\t// intro — we can tidy up immediately\n\t\t\t\t\t\t\t\tclear_animation();\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t// outro — needs to be coordinated\n\t\t\t\t\t\t\t\tif (!--running_program.group.remaining) run_all(running_program.group.callbacks);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\trunning_program = null;\n\t\t\t\t\t}\n\n\t\t\t\t\telse if (now >= running_program.start) {\n\t\t\t\t\t\tconst p = now - running_program.start;\n\t\t\t\t\t\tt = running_program.a + running_program.d * easing(p / running_program.duration);\n\t\t\t\t\t\ttick$$1(t, 1 - t);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn !!(running_program || pending_program);\n\t\t\t});\n\t\t}\n\t}\n\n\treturn {\n\t\trun(b) {\n\t\t\tif (typeof config === 'function') {\n\t\t\t\twait().then(() => {\n\t\t\t\t\tconfig = config();\n\t\t\t\t\tgo(b);\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tgo(b);\n\t\t\t}\n\t\t},\n\n\t\tend() {\n\t\t\tclear_animation();\n\t\t\trunning_program = pending_program = null;\n\t\t}\n\t};\n}\n\nfunction handle_promise(promise, info) {\n\tconst token = info.token = {};\n\n\tfunction update(type, index, key, value) {\n\t\tif (info.token !== token) return;\n\n\t\tinfo.resolved = key && { [key]: value };\n\n\t\tconst child_ctx = assign(assign({}, info.ctx), info.resolved);\n\t\tconst block = type && (info.current = type)(child_ctx);\n\n\t\tif (info.block) {\n\t\t\tif (info.blocks) {\n\t\t\t\tinfo.blocks.forEach((block, i) => {\n\t\t\t\t\tif (i !== index && block) {\n\t\t\t\t\t\tgroup_outros();\n\t\t\t\t\t\ton_outro(() => {\n\t\t\t\t\t\t\tblock.d(1);\n\t\t\t\t\t\t\tinfo.blocks[i] = null;\n\t\t\t\t\t\t});\n\t\t\t\t\t\tblock.o(1);\n\t\t\t\t\t\tcheck_outros();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tinfo.block.d(1);\n\t\t\t}\n\n\t\t\tblock.c();\n\t\t\tif (block.i) block.i(1);\n\t\t\tblock.m(info.mount(), info.anchor);\n\n\t\t\tflush();\n\t\t}\n\n\t\tinfo.block = block;\n\t\tif (info.blocks) info.blocks[index] = block;\n\t}\n\n\tif (is_promise(promise)) {\n\t\tpromise.then(value => {\n\t\t\tupdate(info.then, 1, info.value, value);\n\t\t}, error => {\n\t\t\tupdate(info.catch, 2, info.error, error);\n\t\t});\n\n\t\t// if we previously had a then/catch block, destroy it\n\t\tif (info.current !== info.pending) {\n\t\t\tupdate(info.pending, 0);\n\t\t\treturn true;\n\t\t}\n\t} else {\n\t\tif (info.current !== info.then) {\n\t\t\tupdate(info.then, 1, info.value, promise);\n\t\t\treturn true;\n\t\t}\n\n\t\tinfo.resolved = { [info.value]: promise };\n\t}\n}\n\nfunction destroy_block(block, lookup) {\n\tblock.d(1);\n\tlookup.delete(block.key);\n}\n\nfunction outro_and_destroy_block(block, lookup) {\n\ton_outro(() => {\n\t\tdestroy_block(block, lookup);\n\t});\n\n\tblock.o(1);\n}\n\nfunction fix_and_outro_and_destroy_block(block, lookup) {\n\tblock.f();\n\toutro_and_destroy_block(block, lookup);\n}\n\nfunction update_keyed_each(old_blocks, changed, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block, next, get_context) {\n\tlet o = old_blocks.length;\n\tlet n = list.length;\n\n\tlet i = o;\n\tconst old_indexes = {};\n\twhile (i--) old_indexes[old_blocks[i].key] = i;\n\n\tconst new_blocks = [];\n\tconst new_lookup = new Map();\n\tconst deltas = new Map();\n\n\ti = n;\n\twhile (i--) {\n\t\tconst child_ctx = get_context(ctx, list, i);\n\t\tconst key = get_key(child_ctx);\n\t\tlet block = lookup.get(key);\n\n\t\tif (!block) {\n\t\t\tblock = create_each_block(key, child_ctx);\n\t\t\tblock.c();\n\t\t} else if (dynamic) {\n\t\t\tblock.p(changed, child_ctx);\n\t\t}\n\n\t\tnew_lookup.set(key, new_blocks[i] = block);\n\n\t\tif (key in old_indexes) deltas.set(key, Math.abs(i - old_indexes[key]));\n\t}\n\n\tconst will_move = new Set();\n\tconst did_move = new Set();\n\n\tfunction insert(block) {\n\t\tif (block.i) block.i(1);\n\t\tblock.m(node, next);\n\t\tlookup.set(block.key, block);\n\t\tnext = block.first;\n\t\tn--;\n\t}\n\n\twhile (o && n) {\n\t\tconst new_block = new_blocks[n - 1];\n\t\tconst old_block = old_blocks[o - 1];\n\t\tconst new_key = new_block.key;\n\t\tconst old_key = old_block.key;\n\n\t\tif (new_block === old_block) {\n\t\t\t// do nothing\n\t\t\tnext = new_block.first;\n\t\t\to--;\n\t\t\tn--;\n\t\t}\n\n\t\telse if (!new_lookup.has(old_key)) {\n\t\t\t// remove old block\n\t\t\tdestroy(old_block, lookup);\n\t\t\to--;\n\t\t}\n\n\t\telse if (!lookup.has(new_key) || will_move.has(new_key)) {\n\t\t\tinsert(new_block);\n\t\t}\n\n\t\telse if (did_move.has(old_key)) {\n\t\t\to--;\n\n\t\t} else if (deltas.get(new_key) > deltas.get(old_key)) {\n\t\t\tdid_move.add(new_key);\n\t\t\tinsert(new_block);\n\n\t\t} else {\n\t\t\twill_move.add(old_key);\n\t\t\to--;\n\t\t}\n\t}\n\n\twhile (o--) {\n\t\tconst old_block = old_blocks[o];\n\t\tif (!new_lookup.has(old_block.key)) destroy(old_block, lookup);\n\t}\n\n\twhile (n) insert(new_blocks[n - 1]);\n\n\treturn new_blocks;\n}\n\nfunction measure(blocks) {\n\tconst rects = {};\n\tlet i = blocks.length;\n\twhile (i--) rects[blocks[i].key] = blocks[i].node.getBoundingClientRect();\n\treturn rects;\n}\n\nfunction get_spread_update(levels, updates) {\n\tconst update = {};\n\n\tconst to_null_out = {};\n\tconst accounted_for = {};\n\n\tlet i = levels.length;\n\twhile (i--) {\n\t\tconst o = levels[i];\n\t\tconst n = updates[i];\n\n\t\tif (n) {\n\t\t\tfor (const key in o) {\n\t\t\t\tif (!(key in n)) to_null_out[key] = 1;\n\t\t\t}\n\n\t\t\tfor (const key in n) {\n\t\t\t\tif (!accounted_for[key]) {\n\t\t\t\t\tupdate[key] = n[key];\n\t\t\t\t\taccounted_for[key] = 1;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlevels[i] = n;\n\t\t} else {\n\t\t\tfor (const key in o) {\n\t\t\t\taccounted_for[key] = 1;\n\t\t\t}\n\t\t}\n\t}\n\n\tfor (const key in to_null_out) {\n\t\tif (!(key in update)) update[key] = undefined;\n\t}\n\n\treturn update;\n}\n\nconst invalid_attribute_name_character = /[\\s'\">/=\\u{FDD0}-\\u{FDEF}\\u{FFFE}\\u{FFFF}\\u{1FFFE}\\u{1FFFF}\\u{2FFFE}\\u{2FFFF}\\u{3FFFE}\\u{3FFFF}\\u{4FFFE}\\u{4FFFF}\\u{5FFFE}\\u{5FFFF}\\u{6FFFE}\\u{6FFFF}\\u{7FFFE}\\u{7FFFF}\\u{8FFFE}\\u{8FFFF}\\u{9FFFE}\\u{9FFFF}\\u{AFFFE}\\u{AFFFF}\\u{BFFFE}\\u{BFFFF}\\u{CFFFE}\\u{CFFFF}\\u{DFFFE}\\u{DFFFF}\\u{EFFFE}\\u{EFFFF}\\u{FFFFE}\\u{FFFFF}\\u{10FFFE}\\u{10FFFF}]/u;\n// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n// https://infra.spec.whatwg.org/#noncharacter\n\nfunction spread(args) {\n\tconst attributes = Object.assign({}, ...args);\n\tlet str = '';\n\n\tObject.keys(attributes).forEach(name => {\n\t\tif (invalid_attribute_name_character.test(name)) return;\n\n\t\tconst value = attributes[name];\n\t\tif (value === undefined) return;\n\t\tif (value === true) str += \" \" + name;\n\n\t\tconst escaped = String(value)\n\t\t\t.replace(/\"/g, '"')\n\t\t\t.replace(/'/g, ''');\n\n\t\tstr += \" \" + name + \"=\" + JSON.stringify(escaped);\n\t});\n\n\treturn str;\n}\n\nconst escaped = {\n\t'\"': '"',\n\t\"'\": ''',\n\t'&': '&',\n\t'<': '<',\n\t'>': '>'\n};\n\nfunction escape(html) {\n\treturn String(html).replace(/[\"'&<>]/g, match => escaped[match]);\n}\n\nfunction each(items, fn) {\n\tlet str = '';\n\tfor (let i = 0; i < items.length; i += 1) {\n\t\tstr += fn(items[i], i);\n\t}\n\treturn str;\n}\n\nconst missing_component = {\n\t$$render: () => ''\n};\n\nfunction validate_component(component, name) {\n\tif (!component || !component.$$render) {\n\t\tif (name === 'svelte:component') name += ' this={...}';\n\t\tthrow new Error(`<${name}> is not a valid SSR component. You may need to review your build config to ensure that dependencies are compiled, rather than imported as pre-compiled modules`);\n\t}\n\n\treturn component;\n}\n\nfunction debug(file, line, column, values) {\n\tconsole.log(`{@debug} ${file ? file + ' ' : ''}(${line}:${column})`); // eslint-disable-line no-console\n\tconsole.log(values); // eslint-disable-line no-console\n\treturn '';\n}\n\nlet on_destroy;\n\nfunction create_ssr_component(fn) {\n\tfunction $$render(result, props, bindings, slots) {\n\t\tconst parent_component = exports.current_component;\n\n\t\tconst $$ = {\n\t\t\ton_destroy,\n\t\t\tcontext: new Map(parent_component ? parent_component.$$.context : []),\n\n\t\t\t// these will be immediately discarded\n\t\t\ton_mount: [],\n\t\t\tbefore_render: [],\n\t\t\tafter_render: [],\n\t\t\tcallbacks: blank_object()\n\t\t};\n\n\t\tset_current_component({ $$ });\n\n\t\tconst html = fn(result, props, bindings, slots);\n\n\t\tset_current_component(parent_component);\n\t\treturn html;\n\t}\n\n\treturn {\n\t\trender: (props = {}, options = {}) => {\n\t\t\ton_destroy = [];\n\n\t\t\tconst result = { head: '', css: new Set() };\n\t\t\tconst html = $$render(result, props, {}, options);\n\n\t\t\trun_all(on_destroy);\n\n\t\t\treturn {\n\t\t\t\thtml,\n\t\t\t\tcss: {\n\t\t\t\t\tcode: Array.from(result.css).map(css => css.code).join('\\n'),\n\t\t\t\t\tmap: null // TODO\n\t\t\t\t},\n\t\t\t\thead: result.head\n\t\t\t};\n\t\t},\n\n\t\t$$render\n\t};\n}\n\nfunction get_store_value(store) {\n\tlet value;\n\tstore.subscribe(_ => value = _)();\n\treturn value;\n}\n\nfunction bind(component, name, callback) {\n\tif (component.$$.props.indexOf(name) === -1) return;\n\tcomponent.$$.bound[name] = callback;\n\tcallback(component.$$.ctx[name]);\n}\n\nfunction mount_component(component, target, anchor) {\n\tconst { fragment, on_mount, on_destroy, after_render } = component.$$;\n\n\tfragment.m(target, anchor);\n\n\t// onMount happens after the initial afterUpdate. Because\n\t// afterUpdate callbacks happen in reverse order (inner first)\n\t// we schedule onMount callbacks before afterUpdate callbacks\n\tadd_render_callback(() => {\n\t\tconst new_on_destroy = on_mount.map(run).filter(is_function);\n\t\tif (on_destroy) {\n\t\t\ton_destroy.push(...new_on_destroy);\n\t\t} else {\n\t\t\t// Edge case - component was destroyed immediately,\n\t\t\t// most likely as a result of a binding initialising\n\t\t\trun_all(new_on_destroy);\n\t\t}\n\t\tcomponent.$$.on_mount = [];\n\t});\n\n\tafter_render.forEach(add_render_callback);\n}\n\nfunction destroy(component, detaching) {\n\tif (component.$$) {\n\t\trun_all(component.$$.on_destroy);\n\t\tcomponent.$$.fragment.d(detaching);\n\n\t\t// TODO null out other refs, including component.$$ (but need to\n\t\t// preserve final state?)\n\t\tcomponent.$$.on_destroy = component.$$.fragment = null;\n\t\tcomponent.$$.ctx = {};\n\t}\n}\n\nfunction make_dirty(component, key) {\n\tif (!component.$$.dirty) {\n\t\tdirty_components.push(component);\n\t\tschedule_update();\n\t\tcomponent.$$.dirty = {};\n\t}\n\tcomponent.$$.dirty[key] = true;\n}\n\nfunction init(component, options, instance, create_fragment, not_equal$$1, prop_names) {\n\tconst parent_component = exports.current_component;\n\tset_current_component(component);\n\n\tconst props = options.props || {};\n\n\tconst $$ = component.$$ = {\n\t\tfragment: null,\n\t\tctx: null,\n\n\t\t// state\n\t\tprops: prop_names,\n\t\tupdate: noop,\n\t\tnot_equal: not_equal$$1,\n\t\tbound: blank_object(),\n\n\t\t// lifecycle\n\t\ton_mount: [],\n\t\ton_destroy: [],\n\t\tbefore_render: [],\n\t\tafter_render: [],\n\t\tcontext: new Map(parent_component ? parent_component.$$.context : []),\n\n\t\t// everything else\n\t\tcallbacks: blank_object(),\n\t\tdirty: null\n\t};\n\n\tlet ready = false;\n\n\t$$.ctx = instance\n\t\t? instance(component, props, (key, value) => {\n\t\t\tif ($$.ctx && not_equal$$1($$.ctx[key], $$.ctx[key] = value)) {\n\t\t\t\tif ($$.bound[key]) $$.bound[key](value);\n\t\t\t\tif (ready) make_dirty(component, key);\n\t\t\t}\n\t\t})\n\t\t: props;\n\n\t$$.update();\n\tready = true;\n\trun_all($$.before_render);\n\t$$.fragment = create_fragment($$.ctx);\n\n\tif (options.target) {\n\t\tif (options.hydrate) {\n\t\t\t$$.fragment.l(children(options.target));\n\t\t} else {\n\t\t\t$$.fragment.c();\n\t\t}\n\n\t\tif (options.intro && component.$$.fragment.i) component.$$.fragment.i();\n\t\tmount_component(component, options.target, options.anchor);\n\t\tflush();\n\t}\n\n\tset_current_component(parent_component);\n}\nif (typeof HTMLElement !== 'undefined') {\n\texports.SvelteElement = class extends HTMLElement {\n\t\tconstructor() {\n\t\t\tsuper();\n\t\t\tthis.attachShadow({ mode: 'open' });\n\t\t}\n\n\t\tconnectedCallback() {\n\t\t\tfor (const key in this.$$.slotted) {\n\t\t\t\tthis.appendChild(this.$$.slotted[key]);\n\t\t\t}\n\t\t}\n\n\t\tattributeChangedCallback(attr$$1, oldValue, newValue) {\n\t\t\tthis[attr$$1] = newValue;\n\t\t}\n\n\t\t$destroy() {\n\t\t\tdestroy(this, true);\n\t\t\tthis.$destroy = noop;\n\t\t}\n\n\t\t$on(type, callback) {\n\t\t\t// TODO should this delegate to addEventListener?\n\t\t\tconst callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n\t\t\tcallbacks.push(callback);\n\n\t\t\treturn () => {\n\t\t\t\tconst index = callbacks.indexOf(callback);\n\t\t\t\tif (index !== -1) callbacks.splice(index, 1);\n\t\t\t};\n\t\t}\n\n\t\t$set() {\n\t\t\t// overridden by instance, if it has props\n\t\t}\n\t};\n}\n\nclass SvelteComponent {\n\t$destroy() {\n\t\tdestroy(this, true);\n\t\tthis.$destroy = noop;\n\t}\n\n\t$on(type, callback) {\n\t\tconst callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n\t\tcallbacks.push(callback);\n\n\t\treturn () => {\n\t\t\tconst index = callbacks.indexOf(callback);\n\t\t\tif (index !== -1) callbacks.splice(index, 1);\n\t\t};\n\t}\n\n\t$set() {\n\t\t// overridden by instance, if it has props\n\t}\n}\n\nclass SvelteComponentDev extends SvelteComponent {\n\tconstructor(options) {\n\t\tif (!options || (!options.target && !options.$$inline)) {\n\t\t\tthrow new Error(`'target' is a required option`);\n\t\t}\n\n\t\tsuper();\n\t}\n\n\t$destroy() {\n\t\tsuper.$destroy();\n\t\tthis.$destroy = () => {\n\t\t\tconsole.warn(`Component was already destroyed`); // eslint-disable-line no-console\n\t\t};\n\t}\n}\n\nexports.create_animation = create_animation;\nexports.fix_position = fix_position;\nexports.handle_promise = handle_promise;\nexports.append = append;\nexports.insert = insert;\nexports.detach = detach;\nexports.detach_between = detach_between;\nexports.detach_before = detach_before;\nexports.detach_after = detach_after;\nexports.destroy_each = destroy_each;\nexports.element = element;\nexports.svg_element = svg_element;\nexports.text = text;\nexports.space = space;\nexports.empty = empty;\nexports.listen = listen;\nexports.prevent_default = prevent_default;\nexports.stop_propagation = stop_propagation;\nexports.attr = attr;\nexports.set_attributes = set_attributes;\nexports.set_custom_element_data = set_custom_element_data;\nexports.xlink_attr = xlink_attr;\nexports.get_binding_group_value = get_binding_group_value;\nexports.to_number = to_number;\nexports.time_ranges_to_array = time_ranges_to_array;\nexports.children = children;\nexports.claim_element = claim_element;\nexports.claim_text = claim_text;\nexports.set_data = set_data;\nexports.set_input_type = set_input_type;\nexports.set_style = set_style;\nexports.select_option = select_option;\nexports.select_options = select_options;\nexports.select_value = select_value;\nexports.select_multiple_value = select_multiple_value;\nexports.add_resize_listener = add_resize_listener;\nexports.toggle_class = toggle_class;\nexports.custom_event = custom_event;\nexports.destroy_block = destroy_block;\nexports.outro_and_destroy_block = outro_and_destroy_block;\nexports.fix_and_outro_and_destroy_block = fix_and_outro_and_destroy_block;\nexports.update_keyed_each = update_keyed_each;\nexports.measure = measure;\nexports.set_current_component = set_current_component;\nexports.beforeUpdate = beforeUpdate;\nexports.onMount = onMount;\nexports.afterUpdate = afterUpdate;\nexports.onDestroy = onDestroy;\nexports.createEventDispatcher = createEventDispatcher;\nexports.setContext = setContext;\nexports.getContext = getContext;\nexports.bubble = bubble;\nexports.clear_loops = clear_loops;\nexports.loop = loop;\nexports.dirty_components = dirty_components;\nexports.intros = intros;\nexports.schedule_update = schedule_update;\nexports.tick = tick;\nexports.add_binding_callback = add_binding_callback;\nexports.add_render_callback = add_render_callback;\nexports.add_flush_callback = add_flush_callback;\nexports.flush = flush;\nexports.get_spread_update = get_spread_update;\nexports.invalid_attribute_name_character = invalid_attribute_name_character;\nexports.spread = spread;\nexports.escaped = escaped;\nexports.escape = escape;\nexports.each = each;\nexports.missing_component = missing_component;\nexports.validate_component = validate_component;\nexports.debug = debug;\nexports.create_ssr_component = create_ssr_component;\nexports.get_store_value = get_store_value;\nexports.group_outros = group_outros;\nexports.check_outros = check_outros;\nexports.on_outro = on_outro;\nexports.create_in_transition = create_in_transition;\nexports.create_out_transition = create_out_transition;\nexports.create_bidirectional_transition = create_bidirectional_transition;\nexports.noop = noop;\nexports.identity = identity;\nexports.assign = assign;\nexports.is_promise = is_promise;\nexports.add_location = add_location;\nexports.run = run;\nexports.blank_object = blank_object;\nexports.run_all = run_all;\nexports.is_function = is_function;\nexports.safe_not_equal = safe_not_equal;\nexports.not_equal = not_equal;\nexports.validate_store = validate_store;\nexports.subscribe = subscribe;\nexports.create_slot = create_slot;\nexports.get_slot_context = get_slot_context;\nexports.get_slot_changes = get_slot_changes;\nexports.exclude_internal_props = exclude_internal_props;\nexports.bind = bind;\nexports.mount_component = mount_component;\nexports.init = init;\nexports.SvelteComponent = SvelteComponent;\nexports.SvelteComponentDev = SvelteComponentDev;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar internal = require('./internal');\n\n/*\nAdapted from https://github.com/mattdesl\nDistributed under MIT License https://github.com/mattdesl/eases/blob/master/LICENSE.md\n*/\n\nfunction backInOut(t) {\n\tvar s = 1.70158 * 1.525;\n\tif ((t *= 2) < 1) return 0.5 * (t * t * ((s + 1) * t - s));\n\treturn 0.5 * ((t -= 2) * t * ((s + 1) * t + s) + 2);\n}\n\nfunction backIn(t) {\n\tvar s = 1.70158;\n\treturn t * t * ((s + 1) * t - s);\n}\n\nfunction backOut(t) {\n\tvar s = 1.70158;\n\treturn --t * t * ((s + 1) * t + s) + 1;\n}\n\nfunction bounceOut(t) {\n\tvar a = 4.0 / 11.0;\n\tvar b = 8.0 / 11.0;\n\tvar c = 9.0 / 10.0;\n\n\tvar ca = 4356.0 / 361.0;\n\tvar cb = 35442.0 / 1805.0;\n\tvar cc = 16061.0 / 1805.0;\n\n\tvar t2 = t * t;\n\n\treturn t < a\n\t\t? 7.5625 * t2\n\t\t: t < b\n\t\t? 9.075 * t2 - 9.9 * t + 3.4\n\t\t: t < c\n\t\t? ca * t2 - cb * t + cc\n\t\t: 10.8 * t * t - 20.52 * t + 10.72;\n}\n\nfunction bounceInOut(t) {\n\treturn t < 0.5\n\t\t? 0.5 * (1.0 - bounceOut(1.0 - t * 2.0))\n\t\t: 0.5 * bounceOut(t * 2.0 - 1.0) + 0.5;\n}\n\nfunction bounceIn(t) {\n\treturn 1.0 - bounceOut(1.0 - t);\n}\n\nfunction circInOut(t) {\n\tif ((t *= 2) < 1) return -0.5 * (Math.sqrt(1 - t * t) - 1);\n\treturn 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\n}\n\nfunction circIn(t) {\n\treturn 1.0 - Math.sqrt(1.0 - t * t);\n}\n\nfunction circOut(t) {\n\treturn Math.sqrt(1 - --t * t);\n}\n\nfunction cubicInOut(t) {\n\treturn t < 0.5 ? 4.0 * t * t * t : 0.5 * Math.pow(2.0 * t - 2.0, 3.0) + 1.0;\n}\n\nfunction cubicIn(t) {\n\treturn t * t * t;\n}\n\nfunction cubicOut(t) {\n\tvar f = t - 1.0;\n\treturn f * f * f + 1.0;\n}\n\nfunction elasticInOut(t) {\n\treturn t < 0.5\n\t\t? 0.5 *\n\t\t\t\tMath.sin(((+13.0 * Math.PI) / 2) * 2.0 * t) *\n\t\t\t\tMath.pow(2.0, 10.0 * (2.0 * t - 1.0))\n\t\t: 0.5 *\n\t\t\t\tMath.sin(((-13.0 * Math.PI) / 2) * (2.0 * t - 1.0 + 1.0)) *\n\t\t\t\tMath.pow(2.0, -10.0 * (2.0 * t - 1.0)) +\n\t\t\t\t1.0;\n}\n\nfunction elasticIn(t) {\n\treturn Math.sin((13.0 * t * Math.PI) / 2) * Math.pow(2.0, 10.0 * (t - 1.0));\n}\n\nfunction elasticOut(t) {\n\treturn (\n\t\tMath.sin((-13.0 * (t + 1.0) * Math.PI) / 2) * Math.pow(2.0, -10.0 * t) + 1.0\n\t);\n}\n\nfunction expoInOut(t) {\n\treturn t === 0.0 || t === 1.0\n\t\t? t\n\t\t: t < 0.5\n\t\t? +0.5 * Math.pow(2.0, 20.0 * t - 10.0)\n\t\t: -0.5 * Math.pow(2.0, 10.0 - t * 20.0) + 1.0;\n}\n\nfunction expoIn(t) {\n\treturn t === 0.0 ? t : Math.pow(2.0, 10.0 * (t - 1.0));\n}\n\nfunction expoOut(t) {\n\treturn t === 1.0 ? t : 1.0 - Math.pow(2.0, -10.0 * t);\n}\n\nfunction quadInOut(t) {\n\tt /= 0.5;\n\tif (t < 1) return 0.5 * t * t;\n\tt--;\n\treturn -0.5 * (t * (t - 2) - 1);\n}\n\nfunction quadIn(t) {\n\treturn t * t;\n}\n\nfunction quadOut(t) {\n\treturn -t * (t - 2.0);\n}\n\nfunction quartInOut(t) {\n\treturn t < 0.5\n\t\t? +8.0 * Math.pow(t, 4.0)\n\t\t: -8.0 * Math.pow(t - 1.0, 4.0) + 1.0;\n}\n\nfunction quartIn(t) {\n\treturn Math.pow(t, 4.0);\n}\n\nfunction quartOut(t) {\n\treturn Math.pow(t - 1.0, 3.0) * (1.0 - t) + 1.0;\n}\n\nfunction quintInOut(t) {\n\tif ((t *= 2) < 1) return 0.5 * t * t * t * t * t;\n\treturn 0.5 * ((t -= 2) * t * t * t * t + 2);\n}\n\nfunction quintIn(t) {\n\treturn t * t * t * t * t;\n}\n\nfunction quintOut(t) {\n\treturn --t * t * t * t * t + 1;\n}\n\nfunction sineInOut(t) {\n\treturn -0.5 * (Math.cos(Math.PI * t) - 1);\n}\n\nfunction sineIn(t) {\n\tvar v = Math.cos(t * Math.PI * 0.5);\n\tif (Math.abs(v) < 1e-14) return 1;\n\telse return 1 - v;\n}\n\nfunction sineOut(t) {\n\treturn Math.sin((t * Math.PI) / 2);\n}\n\nexports.linear = internal.identity;\nexports.backInOut = backInOut;\nexports.backIn = backIn;\nexports.backOut = backOut;\nexports.bounceOut = bounceOut;\nexports.bounceInOut = bounceInOut;\nexports.bounceIn = bounceIn;\nexports.circInOut = circInOut;\nexports.circIn = circIn;\nexports.circOut = circOut;\nexports.cubicInOut = cubicInOut;\nexports.cubicIn = cubicIn;\nexports.cubicOut = cubicOut;\nexports.elasticInOut = elasticInOut;\nexports.elasticIn = elasticIn;\nexports.elasticOut = elasticOut;\nexports.expoInOut = expoInOut;\nexports.expoIn = expoIn;\nexports.expoOut = expoOut;\nexports.quadInOut = quadInOut;\nexports.quadIn = quadIn;\nexports.quadOut = quadOut;\nexports.quartInOut = quartInOut;\nexports.quartIn = quartIn;\nexports.quartOut = quartOut;\nexports.quintInOut = quintInOut;\nexports.quintIn = quintIn;\nexports.quintOut = quintOut;\nexports.sineInOut = sineInOut;\nexports.sineIn = sineIn;\nexports.sineOut = sineOut;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar easing = require('./easing');\nvar internal = require('./internal');\n\nfunction fade(node, {\n\tdelay = 0,\n\tduration = 400\n}) {\n\tconst o = +getComputedStyle(node).opacity;\n\n\treturn {\n\t\tdelay,\n\t\tduration,\n\t\tcss: t => `opacity: ${t * o}`\n\t};\n}\n\nfunction fly(node, {\n\tdelay = 0,\n\tduration = 400,\n\teasing: easing$$1 = easing.cubicOut,\n\tx = 0,\n\ty = 0,\n\topacity = 0\n}) {\n\tconst style = getComputedStyle(node);\n\tconst target_opacity = +style.opacity;\n\tconst transform = style.transform === 'none' ? '' : style.transform;\n\n\tconst od = target_opacity * (1 - opacity);\n\n\treturn {\n\t\tdelay,\n\t\tduration,\n\t\teasing: easing$$1,\n\t\tcss: (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\t};\n}\n\nfunction slide(node, {\n\tdelay = 0,\n\tduration = 400,\n\teasing: easing$$1 = easing.cubicOut\n}) {\n\tconst style = getComputedStyle(node);\n\tconst opacity = +style.opacity;\n\tconst height = parseFloat(style.height);\n\tconst padding_top = parseFloat(style.paddingTop);\n\tconst padding_bottom = parseFloat(style.paddingBottom);\n\tconst margin_top = parseFloat(style.marginTop);\n\tconst margin_bottom = parseFloat(style.marginBottom);\n\tconst border_top_width = parseFloat(style.borderTopWidth);\n\tconst border_bottom_width = parseFloat(style.borderBottomWidth);\n\n\treturn {\n\t\tdelay,\n\t\tduration,\n\t\teasing: easing$$1,\n\t\tcss: t =>\n\t\t\t`overflow: hidden;` +\n\t\t\t`opacity: ${Math.min(t * 20, 1) * opacity};` +\n\t\t\t`height: ${t * height}px;` +\n\t\t\t`padding-top: ${t * padding_top}px;` +\n\t\t\t`padding-bottom: ${t * padding_bottom}px;` +\n\t\t\t`margin-top: ${t * margin_top}px;` +\n\t\t\t`margin-bottom: ${t * margin_bottom}px;` +\n\t\t\t`border-top-width: ${t * border_top_width}px;` +\n\t\t\t`border-bottom-width: ${t * border_bottom_width}px;`\n\t};\n}\n\nfunction scale(node, {\n\tdelay = 0,\n\tduration = 400,\n\teasing: easing$$1 = easing.cubicOut,\n\tstart = 0,\n\topacity = 0\n}) {\n\tconst style = getComputedStyle(node);\n\tconst target_opacity = +style.opacity;\n\tconst transform = style.transform === 'none' ? '' : style.transform;\n\n\tconst sd = 1 - start;\n\tconst od = target_opacity * (1 - opacity);\n\n\treturn {\n\t\tdelay,\n\t\tduration,\n\t\teasing: easing$$1,\n\t\tcss: (t, u) => `\n\t\t\ttransform: ${transform} scale(${1 - (sd * u)});\n\t\t\topacity: ${target_opacity - (od * u)}\n\t\t`\n\t};\n}\n\nfunction draw(node, {\n\tdelay = 0,\n\tspeed,\n\tduration,\n\teasing: easing$$1 = easing.cubicInOut\n}) {\n\tconst len = node.getTotalLength();\n\n\tif (duration === undefined) {\n\t\tif (speed === undefined) {\n\t\t\tduration = 800;\n\t\t} else {\n\t\t\tduration = len / speed;\n\t\t}\n\t} else if (typeof duration === 'function') {\n\t\tduration = duration(len);\n\t}\n\n\treturn {\n\t\tdelay,\n\t\tduration,\n\t\teasing: easing$$1,\n\t\tcss: (t, u) => `stroke-dasharray: ${t * len} ${u * len}`\n\t};\n}\n\nfunction crossfade({ fallback, ...defaults }) {\n\tconst to_receive = new Map();\n\tconst to_send = new Map();\n\n\tfunction crossfade(from, node, params) {\n\t\tconst {\n\t\t\tdelay = 0,\n\t\t\tduration = d => Math.sqrt(d) * 30,\n\t\t\teasing: easing$$1 = easing.cubicOut\n\t\t} = internal.assign(internal.assign({}, defaults), params);\n\n\t\tconst to = node.getBoundingClientRect();\n\t\tconst dx = from.left - to.left;\n\t\tconst dy = from.top - to.top;\n\t\tconst d = Math.sqrt(dx * dx + dy * dy);\n\n\t\tconst style = getComputedStyle(node);\n\t\tconst transform = style.transform === 'none' ? '' : style.transform;\n\t\tconst opacity = +style.opacity;\n\n\t\treturn {\n\t\t\tdelay,\n\t\t\tduration: internal.is_function(duration) ? duration(d) : duration,\n\t\t\teasing: easing$$1,\n\t\t\tcss: (t, u) => `\n\t\t\t\topacity: ${t * opacity};\n\t\t\t\ttransform: ${transform} translate(${u * dx}px,${u * dy}px);\n\t\t\t`\n\t\t};\n\t}\n\n\tfunction transition(items, counterparts, intro) {\n\t\treturn (node, params) => {\n\t\t\titems.set(params.key, {\n\t\t\t\trect: node.getBoundingClientRect()\n\t\t\t});\n\n\t\t\treturn () => {\n\t\t\t\tif (counterparts.has(params.key)) {\n\t\t\t\t\tconst { rect } = counterparts.get(params.key);\n\t\t\t\t\tcounterparts.delete(params.key);\n\n\t\t\t\t\treturn crossfade(rect, node, params);\n\t\t\t\t}\n\n\t\t\t\t// if the node is disappearing altogether\n\t\t\t\t// (i.e. wasn't claimed by the other list)\n\t\t\t\t// then we need to supply an outro\n\t\t\t\titems.delete(params.key);\n\t\t\t\treturn fallback && fallback(node, params, intro);\n\t\t\t};\n\t\t};\n\t}\n\n\treturn [\n\t\ttransition(to_send, to_receive, false),\n\t\ttransition(to_receive, to_send, true)\n\t];\n}\n\nexports.fade = fade;\nexports.fly = fly;\nexports.slide = slide;\nexports.scale = scale;\nexports.draw = draw;\nexports.crossfade = crossfade;\n","\n\n\n \n \n \n \n \n","\n\n\n\n
\n
open=!open}>\n
\n
{name}
\n
\n {#if Array.isArray(value)}\n {#each value as v, i}\n {v}\n {#if i < value.length - 1}\n
\n {/if}\n {/each}\n {:else}\n {value}\n {/if}\n
\n
\n \n
\n {#if open}\n
\n \n
\n {/if}\n
","export function setCookie(cname: string, cvalue: string, exdate: string) {\n const expires = exdate ? `;expires=${exdate}` : \"\";\n document.cookie = `${cname}=${cvalue}${expires}`\n}\n\nexport function getCookie(cname: string) {\n const name = cname + \"=\";\n const dc = decodeURIComponent(document.cookie);\n const ca = dc.split(';');\n for (let i = 0; i < ca.length; i++) {\n let c = ca[i];\n while (c.charAt(0) == ' ') {\n c = c.substring(1);\n }\n if (c.indexOf(name) == 0) {\n return c.substring(name.length, c.length);\n }\n }\n return \"\";\n}","import { getCookie } from \"./cookie\";\n\n// const baseURL = \"https://auth.stamm.me\";\nconst baseURL = \"http://localhost:3000\";\n\nexport default async function request(endpoint: string, parameters: { [key: string]: string } = {}, method: \"GET\" | \"POST\" | \"DELETE\" | \"PUT\" = \"GET\", body?: any, authInParam = false) {\n let pairs = [];\n\n if (authInParam) {\n parameters.login = getCookie(\"login\");\n parameters.special = getCookie(\"special\");\n }\n\n for (let key in parameters) {\n pairs.push(key + \"=\" + parameters[key]);\n }\n\n let url = endpoint;\n if (pairs.length > 0) {\n url += \"?\" + pairs.join(\"&\");\n }\n\n return fetch(baseURL + url, {\n method,\n body: JSON.stringify(body),\n credentials: \"same-origin\",\n headers: {\n 'content-type': 'application/json'\n },\n }).then(e => {\n if (e.status !== 200) throw new Error(e.statusText)\n return e.json()\n }).then(data => {\n if (data.error) {\n if (data.additional && data.additional.auth) {\n let state = btoa(window.location.pathname + window.location.hash);\n // window.location.href = `/login?state=${state}&base64=true`;\n }\n return Promise.reject(new Error(data.error))\n }\n return data;\n })\n}","\n\n\n\n\n

Profile

\n {#if error}\n

{error}

\n {/if}\n \n
\n
\n \n \n \n \n
\n \n
\n
\n \n
\n
\n \n
\n \n
\n
\n \n \n
\n\n\n

Contact

\n \n \n
","\n\n\n\n

Two Factor

\n\n \n
\n\n\n

Anmeldungen

\n\n {#each token as t}\n \n \n \n {:else}\n No Tokens\n {/each}\n\n \n
\n\n\n","\n\n\n\n{#each pages as page}\n
open(page.id)}>\n
\n

\n {page.title}\n

\n
\n{/each}","\n
\n
\n
\n {#if sidebar_button}\n \n {/if}\n

{page.title}

\n
\n
\n \n
\n
\n {#if page.id === \"account\"}\n \n {:else if page.id === \"security\"}\n \n {/if}\n
\n
\n
\n
\n\n{#if loading}\n
\n
\n
\n
\n
\n{/if}\n\n","import App from './App.svelte';\n\nvar app = new App({\n target: document.getElementById(\"content\")\n});\n\nexport default app;"],"names":["AccountPage","SecurityPage"],"mappings":"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"} \ No newline at end of file diff --git a/public/user/bundle.css b/public/user/bundle.css new file mode 100644 index 0000000..eed0d74 --- /dev/null +++ b/public/user/bundle.css @@ -0,0 +1,12 @@ +.loading.svelte-1ee89l3{background-color:rgba(0, 0, 0, 0.04);filter:blur(10px)}:root{--sidebar-width:250px}.root.svelte-1ee89l3{height:100%}.container.svelte-1ee89l3{display:grid;height:100%;grid-template-columns:auto 100%;grid-template-rows:60px auto 60px;grid-template-areas:"sidebar header" + "sidebar mc" + "sidebar footer" + }.header.svelte-1ee89l3{grid-area:header;background-color:var(--primary);padding:12px;display:flex}.header.svelte-1ee89l3>h1.svelte-1ee89l3{margin:0;padding:0;font-size:24px;line-height:36px;color:white;margin-left:2rem}.header.svelte-1ee89l3>button.svelte-1ee89l3{height:36px;background-color:transparent;border:none;font-size:20px}.header.svelte-1ee89l3>button.svelte-1ee89l3:hover{background-color:rgba(255, 255, 255, 0.151) + }.sidebar.svelte-1ee89l3{width:0;overflow:hidden;grid-area:sidebar;transition:width .2s;background-color:lightgrey;height:100%}.sidebar-visible.svelte-1ee89l3{width:var(--sidebar-width);transition:width .2s;box-shadow:10px 0px 10px 2px rgba(0, 0, 0, 0.52)}.content.svelte-1ee89l3{grid-area:mc;padding:1rem}.footer.svelte-1ee89l3{grid-area:footer}@media(min-width: 45rem){.container.svelte-1ee89l3{grid-template-columns:auto 1fr}.sidebar.svelte-1ee89l3{width:var(--sidebar-width);transition:all .2s;box-shadow:10px 0px 10px 2px rgba(0, 0, 0, 0.52)}.content.svelte-1ee89l3{padding:2rem}}.loader_container.svelte-1ee89l3{position:absolute;display:flex;flex-direction:column;justify-content:center;top:0;bottom:0;left:0;right:0;z-index:2} +:root{--rel-size:0.75rem}.container.svelte-zltjsn{height:calc(var(--rel-size) * 3);padding:var(--rel-size);display:flex;align-items:center}.icon.svelte-zltjsn{width:calc(var(--rel-size) * 3);height:calc(var(--rel-size) * 3)}.icon.svelte-zltjsn>img.svelte-zltjsn{width:calc(var(--rel-size) * 3);height:calc(var(--rel-size) * 3)}.title.svelte-zltjsn{margin-left:var(--rel-size)} +.btn.svelte-1lc4uv{background-color:var(--primary);margin:auto 0;margin-left:1rem;font-size:1rem;padding:0 0.5rem}.floating.svelte-1lc4uv{margin-bottom:0}.input-container.svelte-1lc4uv{display:flex}.input-container.svelte-1lc4uv>.svelte-1lc4uv:first-child{flex-grow:1}select.svelte-1lc4uv{background-color:unset;border:0;border-radius:0;color:unset;font-size:unset;border-bottom:1px solid #757575;-moz-appearance:none;-webkit-appearance:none;appearance:none;height:100%;width:100%}select.svelte-1lc4uv>option.svelte-1lc4uv{background-color:unset}.select-wrapper.svelte-1lc4uv{position:relative}.select-wrapper.svelte-1lc4uv::after{content:">";display:block;position:absolute;right:2rem;top:0;bottom:0;width:1rem;transform:rotate(90deg) scaleY(2)}.error.svelte-1lc4uv{color:var(--error)} +.btn.svelte-hfyfkx{background-color:var(--primary);margin:auto 0;margin-left:1rem;font-size:1rem;padding:0 0.5rem}.input-container>.svelte-hfyfkx:first-child{flex-grow:1} +.box.svelte-yv48ir{border-radius:4px;box-shadow:0 8px 12px rgba(0, 0, 0, 0.30), 0 5px 4px rgba(0, 0, 0, 0.22);padding:2rem;margin-bottom:1rem;background-color:white}.box.svelte-yv48ir>h1{margin:0;margin-bottom:1rem;color:#444444;font-size:1.3rem}.box.svelte-yv48ir>div{padding:16px;border-top:1px solid var(--border-color);word-wrap:break-word}.box.svelte-yv48ir>div:first-of-type{border-top:none}@media(min-width: 45rem){.box.svelte-yv48ir{margin-bottom:2rem}} +.root.svelte-1h07xvd:hover{background-color:rgba(0, 0, 0, 0.04)}.container.svelte-1h07xvd{display:flex;flex-direction:row}.values.svelte-1h07xvd{flex-grow:1;display:flex;flex-direction:column;max-width:calc(100% - var(--default-font-size) - 16px)}.values.svelte-1h07xvd>div.svelte-1h07xvd:first-child{transform-origin:left;transform:scale(0.95);margin-right:24px;font-weight:500}.values.svelte-1h07xvd>div.svelte-1h07xvd:nth-child(2){color:black}svg{margin:auto 8px auto 8px;height:var(--default-font-size);min-width:var(--default-font-size)}.body.svelte-1h07xvd{box-sizing:border-box;padding:.1px;margin-top:2rem}@media(min-width: 45rem){.values.svelte-1h07xvd{flex-direction:row}.values.svelte-1h07xvd>div.svelte-1h07xvd:first-child{transform:unset;flex-basis:120px;min-width:120px}}.highlight-element.svelte-1h07xvd{background-color:#7bff003b} + +/*# sourceMappingURL=bundle.css.map */ \ No newline at end of file diff --git a/public/user/bundle.css.map b/public/user/bundle.css.map new file mode 100644 index 0000000..78d5ed3 --- /dev/null +++ b/public/user/bundle.css.map @@ -0,0 +1,22 @@ +{ + "version": 3, + "file": "bundle.css", + "sources": [ + "../../src/User/App.svelte", + "../../src/User/NavigationBar.svelte", + "../../src/User/Pages/Account.svelte", + "../../src/User/Pages/Security.svelte", + "../../src/User/Pages/Box.svelte", + "../../src/User/Pages/BoxItem.svelte" + ], + "sourcesContent": [ + "\n
\n
\n
\n {#if sidebar_button}\n \n {/if}\n

{page.title}

\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n\n{#if loading}\n
\n
\n
\n
\n
\n{/if}\n\n", + "\n\n\n\n{#each pages as page}\n
open(page.id)}>\n
\n

\n {page.title}\n

\n
\n{/each}", + "\n\n\n\n\n

Profile

\n {#if error}\n

{error}

\n {/if}\n \n
\n
\n \n \n \n \n
\n \n
\n
\n \n
\n
\n \n
\n \n
\n
\n \n \n
\n\n\n

Contact

\n \n \n
", + "\n\n\n\n\n\n

Two Factor

\n \n {#each twofactor as t}\n \n \n \n {/each}\n \n
\n\n\n

Anmeldungen

\n\n {#each token as t}\n \n \n \n {:else}\n No Tokens\n {/each}\n\n \n
\n\n\n", + "\n\n
\n \n
", + "\n\n\n\n
\n
open=!open}>\n
\n
{name}
\n
\n {#if Array.isArray(value)}\n {#each value as v, i}\n {v}\n {#if i < value.length - 1}\n
\n {/if}\n {/each}\n {:else}\n {value}\n {/if}\n
\n
\n \n
\n {#if open}\n
\n \n
\n {/if}\n
" + ], + "names": [], + "mappings": "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" +} \ No newline at end of file diff --git a/public/user/bundle.js b/public/user/bundle.js new file mode 100644 index 0000000..b917599 --- /dev/null +++ b/public/user/bundle.js @@ -0,0 +1,4695 @@ +var app = (function () { + 'use strict'; + + function unwrapExports (x) { + return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x; + } + + function createCommonjsModule(fn, module) { + return module = { exports: {} }, fn(module, module.exports), module.exports; + } + + var internal = createCommonjsModule(function (module, exports) { + + Object.defineProperty(exports, '__esModule', { value: true }); + + function noop() {} + + const identity = x => x; + + function assign(tar, src) { + for (const k in src) tar[k] = src[k]; + return tar; + } + + function is_promise(value) { + return value && typeof value.then === 'function'; + } + + function add_location(element, file, line, column, char) { + element.__svelte_meta = { + loc: { file, line, column, char } + }; + } + + function run(fn) { + return fn(); + } + + function blank_object() { + return Object.create(null); + } + + function run_all(fns) { + fns.forEach(run); + } + + function is_function(thing) { + return typeof thing === 'function'; + } + + function safe_not_equal(a, b) { + return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function'); + } + + function not_equal(a, b) { + return a != a ? b == b : a !== b; + } + + function validate_store(store, name) { + if (!store || typeof store.subscribe !== 'function') { + throw new Error(`'${name}' is not a store with a 'subscribe' method`); + } + } + + function subscribe(component, store, callback) { + const unsub = store.subscribe(callback); + + component.$$.on_destroy.push(unsub.unsubscribe + ? () => unsub.unsubscribe() + : unsub); + } + + function create_slot(definition, ctx, fn) { + if (definition) { + const slot_ctx = get_slot_context(definition, ctx, fn); + return definition[0](slot_ctx); + } + } + + function get_slot_context(definition, ctx, fn) { + return definition[1] + ? assign({}, assign(ctx.$$scope.ctx, definition[1](fn ? fn(ctx) : {}))) + : ctx.$$scope.ctx; + } + + function get_slot_changes(definition, ctx, changed, fn) { + return definition[1] + ? assign({}, assign(ctx.$$scope.changed || {}, definition[1](fn ? fn(changed) : {}))) + : ctx.$$scope.changed || {}; + } + + function exclude_internal_props(props) { + const result = {}; + for (const k in props) if (k[0] !== '$') result[k] = props[k]; + return result; + } + + const tasks = new Set(); + let running = false; + + function run_tasks() { + tasks.forEach(task => { + if (!task[0](window.performance.now())) { + tasks.delete(task); + task[1](); + } + }); + + running = tasks.size > 0; + if (running) requestAnimationFrame(run_tasks); + } + + function clear_loops() { + // for testing... + tasks.forEach(task => tasks.delete(task)); + running = false; + } + + function loop(fn) { + let task; + + if (!running) { + running = true; + requestAnimationFrame(run_tasks); + } + + return { + promise: new Promise(fulfil => { + tasks.add(task = [fn, fulfil]); + }), + abort() { + tasks.delete(task); + } + }; + } + + function append(target, node) { + target.appendChild(node); + } + + function insert(target, node, anchor) { + target.insertBefore(node, anchor || null); + } + + function detach(node) { + node.parentNode.removeChild(node); + } + + function detach_between(before, after) { + while (before.nextSibling && before.nextSibling !== after) { + before.parentNode.removeChild(before.nextSibling); + } + } + + function detach_before(after) { + while (after.previousSibling) { + after.parentNode.removeChild(after.previousSibling); + } + } + + function detach_after(before) { + while (before.nextSibling) { + before.parentNode.removeChild(before.nextSibling); + } + } + + function destroy_each(iterations, detaching) { + for (let i = 0; i < iterations.length; i += 1) { + if (iterations[i]) iterations[i].d(detaching); + } + } + + function element(name) { + return document.createElement(name); + } + + function object_without_properties(obj, exclude) { + const target = {}; + for (const k in obj) { + if (Object.prototype.hasOwnProperty.call(obj, k) && exclude.indexOf(k) === -1) { + target[k] = obj[k]; + } + } + return target; + } + + function svg_element(name) { + return document.createElementNS('http://www.w3.org/2000/svg', name); + } + + function text(data) { + return document.createTextNode(data); + } + + function space() { + return text(' '); + } + + function empty() { + return text(''); + } + + function listen(node, event, handler, options) { + node.addEventListener(event, handler, options); + return () => node.removeEventListener(event, handler, options); + } + + function prevent_default(fn) { + return function(event) { + event.preventDefault(); + return fn.call(this, event); + }; + } + + function stop_propagation(fn) { + return function(event) { + event.stopPropagation(); + return fn.call(this, event); + }; + } + + function attr(node, attribute, value) { + if (value == null) node.removeAttribute(attribute); + else node.setAttribute(attribute, value); + } + + function set_attributes(node, attributes) { + for (const key in attributes) { + if (key === 'style') { + node.style.cssText = attributes[key]; + } else if (key in node) { + node[key] = attributes[key]; + } else { + attr(node, key, attributes[key]); + } + } + } + + function set_custom_element_data(node, prop, value) { + if (prop in node) { + node[prop] = value; + } else { + attr(node, prop, value); + } + } + + function xlink_attr(node, attribute, value) { + node.setAttributeNS('http://www.w3.org/1999/xlink', attribute, value); + } + + function get_binding_group_value(group) { + const value = []; + for (let i = 0; i < group.length; i += 1) { + if (group[i].checked) value.push(group[i].__value); + } + return value; + } + + function to_number(value) { + return value === '' ? undefined : +value; + } + + function time_ranges_to_array(ranges) { + const array = []; + for (let i = 0; i < ranges.length; i += 1) { + array.push({ start: ranges.start(i), end: ranges.end(i) }); + } + return array; + } + + function children(element) { + return Array.from(element.childNodes); + } + + function claim_element(nodes, name, attributes, svg) { + for (let i = 0; i < nodes.length; i += 1) { + const node = nodes[i]; + if (node.nodeName === name) { + for (let j = 0; j < node.attributes.length; j += 1) { + const attribute = node.attributes[j]; + if (!attributes[attribute.name]) node.removeAttribute(attribute.name); + } + return nodes.splice(i, 1)[0]; // TODO strip unwanted attributes + } + } + + return svg ? svg_element(name) : element(name); + } + + function claim_text(nodes, data) { + for (let i = 0; i < nodes.length; i += 1) { + const node = nodes[i]; + if (node.nodeType === 3) { + node.data = data; + return nodes.splice(i, 1)[0]; + } + } + + return text(data); + } + + function set_data(text, data) { + data = '' + data; + if (text.data !== data) text.data = data; + } + + function set_input_type(input, type) { + try { + input.type = type; + } catch (e) { + // do nothing + } + } + + function set_style(node, key, value) { + node.style.setProperty(key, value); + } + + function select_option(select, value) { + for (let i = 0; i < select.options.length; i += 1) { + const option = select.options[i]; + + if (option.__value === value) { + option.selected = true; + return; + } + } + } + + function select_options(select, value) { + for (let i = 0; i < select.options.length; i += 1) { + const option = select.options[i]; + option.selected = ~value.indexOf(option.__value); + } + } + + function select_value(select) { + const selected_option = select.querySelector(':checked') || select.options[0]; + return selected_option && selected_option.__value; + } + + function select_multiple_value(select) { + return [].map.call(select.querySelectorAll(':checked'), option => option.__value); + } + + function add_resize_listener(element, fn) { + if (getComputedStyle(element).position === 'static') { + element.style.position = 'relative'; + } + + const object = document.createElement('object'); + object.setAttribute('style', 'display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; pointer-events: none; z-index: -1;'); + object.type = 'text/html'; + + let win; + + object.onload = () => { + win = object.contentDocument.defaultView; + win.addEventListener('resize', fn); + }; + + if (/Trident/.test(navigator.userAgent)) { + element.appendChild(object); + object.data = 'about:blank'; + } else { + object.data = 'about:blank'; + element.appendChild(object); + } + + return { + cancel: () => { + win && win.removeEventListener && win.removeEventListener('resize', fn); + element.removeChild(object); + } + }; + } + + function toggle_class(element, name, toggle) { + element.classList[toggle ? 'add' : 'remove'](name); + } + + function custom_event(type, detail) { + const e = document.createEvent('CustomEvent'); + e.initCustomEvent(type, false, false, detail); + return e; + } + + let stylesheet; + let active = 0; + let current_rules = {}; + + // https://github.com/darkskyapp/string-hash/blob/master/index.js + function hash(str) { + let hash = 5381; + let i = str.length; + + while (i--) hash = ((hash << 5) - hash) ^ str.charCodeAt(i); + return hash >>> 0; + } + + function create_rule(node, a, b, duration, delay, ease, fn, uid = 0) { + const step = 16.666 / duration; + let keyframes = '{\n'; + + for (let p = 0; p <= 1; p += step) { + const t = a + (b - a) * ease(p); + keyframes += p * 100 + `%{${fn(t, 1 - t)}}\n`; + } + + const rule = keyframes + `100% {${fn(b, 1 - b)}}\n}`; + const name = `__svelte_${hash(rule)}_${uid}`; + + if (!current_rules[name]) { + if (!stylesheet) { + const style = element('style'); + document.head.appendChild(style); + stylesheet = style.sheet; + } + + current_rules[name] = true; + stylesheet.insertRule(`@keyframes ${name} ${rule}`, stylesheet.cssRules.length); + } + + const animation = node.style.animation || ''; + node.style.animation = `${animation ? `${animation}, ` : ``}${name} ${duration}ms linear ${delay}ms 1 both`; + + active += 1; + return name; + } + + function delete_rule(node, name) { + node.style.animation = (node.style.animation || '') + .split(', ') + .filter(name + ? anim => anim.indexOf(name) < 0 // remove specific animation + : anim => anim.indexOf('__svelte') === -1 // remove all Svelte animations + ) + .join(', '); + + if (name && !--active) clear_rules(); + } + + function clear_rules() { + requestAnimationFrame(() => { + if (active) return; + let i = stylesheet.cssRules.length; + while (i--) stylesheet.deleteRule(i); + current_rules = {}; + }); + } + + function create_animation(node, from, fn, params) { + if (!from) return noop; + + const to = node.getBoundingClientRect(); + if (from.left === to.left && from.right === to.right && from.top === to.top && from.bottom === to.bottom) return noop; + + const { + delay = 0, + duration = 300, + easing = identity, + start: start_time = window.performance.now() + delay, + end = start_time + duration, + tick = noop, + css + } = fn(node, { from, to }, params); + + let running = true; + let started = false; + let name; + + const css_text = node.style.cssText; + + function start() { + if (css) { + if (delay) node.style.cssText = css_text; // TODO create delayed animation instead? + name = create_rule(node, 0, 1, duration, 0, easing, css); + } + + started = true; + } + + function stop() { + if (css) delete_rule(node, name); + running = false; + } + + loop(now => { + if (!started && now >= start_time) { + start(); + } + + if (started && now >= end) { + tick(1, 0); + stop(); + } + + if (!running) { + return false; + } + + if (started) { + const p = now - start_time; + const t = 0 + 1 * easing(p / duration); + tick(t, 1 - t); + } + + return true; + }); + + if (delay) { + if (css) node.style.cssText += css(0, 1); + } else { + start(); + } + + tick(0, 1); + + return stop; + } + + function fix_position(node) { + const style = getComputedStyle(node); + + if (style.position !== 'absolute' && style.position !== 'fixed') { + const { width, height } = style; + const a = node.getBoundingClientRect(); + node.style.position = 'absolute'; + node.style.width = width; + node.style.height = height; + const b = node.getBoundingClientRect(); + + if (a.left !== b.left || a.top !== b.top) { + const style = getComputedStyle(node); + const transform = style.transform === 'none' ? '' : style.transform; + + node.style.transform = `${transform} translate(${a.left - b.left}px, ${a.top - b.top}px)`; + } + } + } + + function set_current_component(component) { + exports.current_component = component; + } + + function get_current_component() { + if (!exports.current_component) throw new Error(`Function called outside component initialization`); + return exports.current_component; + } + + function beforeUpdate(fn) { + get_current_component().$$.before_render.push(fn); + } + + function onMount(fn) { + get_current_component().$$.on_mount.push(fn); + } + + function afterUpdate(fn) { + get_current_component().$$.after_render.push(fn); + } + + function onDestroy(fn) { + get_current_component().$$.on_destroy.push(fn); + } + + function createEventDispatcher() { + const component = exports.current_component; + + return (type, detail) => { + const callbacks = component.$$.callbacks[type]; + + if (callbacks) { + // TODO are there situations where events could be dispatched + // in a server (non-DOM) environment? + const event = custom_event(type, detail); + callbacks.slice().forEach(fn => { + fn.call(component, event); + }); + } + }; + } + + function setContext(key, context) { + get_current_component().$$.context.set(key, context); + } + + function getContext(key) { + return get_current_component().$$.context.get(key); + } + + // TODO figure out if we still want to support + // shorthand events, or if we want to implement + // a real bubbling mechanism + function bubble(component, event) { + const callbacks = component.$$.callbacks[event.type]; + + if (callbacks) { + callbacks.slice().forEach(fn => fn(event)); + } + } + + const dirty_components = []; + const intros = { enabled: false }; + + const resolved_promise = Promise.resolve(); + let update_scheduled = false; + const binding_callbacks = []; + const render_callbacks = []; + const flush_callbacks = []; + + function schedule_update() { + if (!update_scheduled) { + update_scheduled = true; + resolved_promise.then(flush); + } + } + + function tick() { + schedule_update(); + return resolved_promise; + } + + function add_binding_callback(fn) { + binding_callbacks.push(fn); + } + + function add_render_callback(fn) { + render_callbacks.push(fn); + } + + function add_flush_callback(fn) { + flush_callbacks.push(fn); + } + + function flush() { + const seen_callbacks = new Set(); + + do { + // first, call beforeUpdate functions + // and update components + while (dirty_components.length) { + const component = dirty_components.shift(); + set_current_component(component); + update(component.$$); + } + + while (binding_callbacks.length) binding_callbacks.shift()(); + + // then, once components are updated, call + // afterUpdate functions. This may cause + // subsequent updates... + while (render_callbacks.length) { + const callback = render_callbacks.pop(); + if (!seen_callbacks.has(callback)) { + callback(); + + // ...so guard against infinite loops + seen_callbacks.add(callback); + } + } + } while (dirty_components.length); + + while (flush_callbacks.length) { + flush_callbacks.pop()(); + } + + update_scheduled = false; + } + + function update($$) { + if ($$.fragment) { + $$.update($$.dirty); + run_all($$.before_render); + $$.fragment.p($$.dirty, $$.ctx); + $$.dirty = null; + + $$.after_render.forEach(add_render_callback); + } + } + + let promise; + + function wait() { + if (!promise) { + promise = Promise.resolve(); + promise.then(() => { + promise = null; + }); + } + + return promise; + } + + function dispatch(node, direction, kind) { + node.dispatchEvent(custom_event(`${direction ? 'intro' : 'outro'}${kind}`)); + } + + let outros; + + function group_outros() { + outros = { + remaining: 0, + callbacks: [] + }; + } + + function check_outros() { + if (!outros.remaining) { + run_all(outros.callbacks); + } + } + + function on_outro(callback) { + outros.callbacks.push(callback); + } + + function create_in_transition(node, fn, params) { + let config = fn(node, params); + let running = false; + let animation_name; + let task; + let uid = 0; + + function cleanup() { + if (animation_name) delete_rule(node, animation_name); + } + + function go() { + const { + delay = 0, + duration = 300, + easing = identity, + tick: tick$$1 = noop, + css + } = config; + + if (css) animation_name = create_rule(node, 0, 1, duration, delay, easing, css, uid++); + tick$$1(0, 1); + + const start_time = window.performance.now() + delay; + const end_time = start_time + duration; + + if (task) task.abort(); + running = true; + + task = loop(now => { + if (running) { + if (now >= end_time) { + tick$$1(1, 0); + cleanup(); + return running = false; + } + + if (now >= start_time) { + const t = easing((now - start_time) / duration); + tick$$1(t, 1 - t); + } + } + + return running; + }); + } + + let started = false; + + return { + start() { + if (started) return; + + delete_rule(node); + + if (typeof config === 'function') { + config = config(); + wait().then(go); + } else { + go(); + } + }, + + invalidate() { + started = false; + }, + + end() { + if (running) { + cleanup(); + running = false; + } + } + }; + } + + function create_out_transition(node, fn, params) { + let config = fn(node, params); + let running = true; + let animation_name; + + const group = outros; + + group.remaining += 1; + + function go() { + const { + delay = 0, + duration = 300, + easing = identity, + tick: tick$$1 = noop, + css + } = config; + + if (css) animation_name = create_rule(node, 1, 0, duration, delay, easing, css); + + const start_time = window.performance.now() + delay; + const end_time = start_time + duration; + + loop(now => { + if (running) { + if (now >= end_time) { + tick$$1(0, 1); + + if (!--group.remaining) { + // this will result in `end()` being called, + // so we don't need to clean up here + run_all(group.callbacks); + } + + return false; + } + + if (now >= start_time) { + const t = easing((now - start_time) / duration); + tick$$1(1 - t, t); + } + } + + return running; + }); + } + + if (typeof config === 'function') { + wait().then(() => { + config = config(); + go(); + }); + } else { + go(); + } + + return { + end(reset) { + if (reset && config.tick) { + config.tick(1, 0); + } + + if (running) { + if (animation_name) delete_rule(node, animation_name); + running = false; + } + } + }; + } + + function create_bidirectional_transition(node, fn, params, intro) { + let config = fn(node, params); + + let t = intro ? 0 : 1; + + let running_program = null; + let pending_program = null; + let animation_name = null; + + function clear_animation() { + if (animation_name) delete_rule(node, animation_name); + } + + function init(program, duration) { + const d = program.b - t; + duration *= Math.abs(d); + + return { + a: t, + b: program.b, + d, + duration, + start: program.start, + end: program.start + duration, + group: program.group + }; + } + + function go(b) { + const { + delay = 0, + duration = 300, + easing = identity, + tick: tick$$1 = noop, + css + } = config; + + const program = { + start: window.performance.now() + delay, + b + }; + + if (!b) { + program.group = outros; + outros.remaining += 1; + } + + if (running_program) { + pending_program = program; + } else { + // if this is an intro, and there's a delay, we need to do + // an initial tick and/or apply CSS animation immediately + if (css) { + clear_animation(); + animation_name = create_rule(node, t, b, duration, delay, easing, css); + } + + if (b) tick$$1(0, 1); + + running_program = init(program, duration); + add_render_callback(() => dispatch(node, b, 'start')); + + loop(now => { + if (pending_program && now > pending_program.start) { + running_program = init(pending_program, duration); + pending_program = null; + + dispatch(node, running_program.b, 'start'); + + if (css) { + clear_animation(); + animation_name = create_rule(node, t, running_program.b, running_program.duration, 0, easing, config.css); + } + } + + if (running_program) { + if (now >= running_program.end) { + tick$$1(t = running_program.b, 1 - t); + dispatch(node, running_program.b, 'end'); + + if (!pending_program) { + // we're done + if (running_program.b) { + // intro — we can tidy up immediately + clear_animation(); + } else { + // outro — needs to be coordinated + if (!--running_program.group.remaining) run_all(running_program.group.callbacks); + } + } + + running_program = null; + } + + else if (now >= running_program.start) { + const p = now - running_program.start; + t = running_program.a + running_program.d * easing(p / running_program.duration); + tick$$1(t, 1 - t); + } + } + + return !!(running_program || pending_program); + }); + } + } + + return { + run(b) { + if (typeof config === 'function') { + wait().then(() => { + config = config(); + go(b); + }); + } else { + go(b); + } + }, + + end() { + clear_animation(); + running_program = pending_program = null; + } + }; + } + + function handle_promise(promise, info) { + const token = info.token = {}; + + function update(type, index, key, value) { + if (info.token !== token) return; + + info.resolved = key && { [key]: value }; + + const child_ctx = assign(assign({}, info.ctx), info.resolved); + const block = type && (info.current = type)(child_ctx); + + if (info.block) { + if (info.blocks) { + info.blocks.forEach((block, i) => { + if (i !== index && block) { + group_outros(); + on_outro(() => { + block.d(1); + info.blocks[i] = null; + }); + block.o(1); + check_outros(); + } + }); + } else { + info.block.d(1); + } + + block.c(); + if (block.i) block.i(1); + block.m(info.mount(), info.anchor); + + flush(); + } + + info.block = block; + if (info.blocks) info.blocks[index] = block; + } + + if (is_promise(promise)) { + promise.then(value => { + update(info.then, 1, info.value, value); + }, error => { + update(info.catch, 2, info.error, error); + }); + + // if we previously had a then/catch block, destroy it + if (info.current !== info.pending) { + update(info.pending, 0); + return true; + } + } else { + if (info.current !== info.then) { + update(info.then, 1, info.value, promise); + return true; + } + + info.resolved = { [info.value]: promise }; + } + } + + function destroy_block(block, lookup) { + block.d(1); + lookup.delete(block.key); + } + + function outro_and_destroy_block(block, lookup) { + on_outro(() => { + destroy_block(block, lookup); + }); + + block.o(1); + } + + function fix_and_outro_and_destroy_block(block, lookup) { + block.f(); + outro_and_destroy_block(block, lookup); + } + + function update_keyed_each(old_blocks, changed, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block, next, get_context) { + let o = old_blocks.length; + let n = list.length; + + let i = o; + const old_indexes = {}; + while (i--) old_indexes[old_blocks[i].key] = i; + + const new_blocks = []; + const new_lookup = new Map(); + const deltas = new Map(); + + i = n; + while (i--) { + const child_ctx = get_context(ctx, list, i); + const key = get_key(child_ctx); + let block = lookup.get(key); + + if (!block) { + block = create_each_block(key, child_ctx); + block.c(); + } else if (dynamic) { + block.p(changed, child_ctx); + } + + new_lookup.set(key, new_blocks[i] = block); + + if (key in old_indexes) deltas.set(key, Math.abs(i - old_indexes[key])); + } + + const will_move = new Set(); + const did_move = new Set(); + + function insert(block) { + if (block.i) block.i(1); + block.m(node, next); + lookup.set(block.key, block); + next = block.first; + n--; + } + + while (o && n) { + const new_block = new_blocks[n - 1]; + const old_block = old_blocks[o - 1]; + const new_key = new_block.key; + const old_key = old_block.key; + + if (new_block === old_block) { + // do nothing + next = new_block.first; + o--; + n--; + } + + else if (!new_lookup.has(old_key)) { + // remove old block + destroy(old_block, lookup); + o--; + } + + else if (!lookup.has(new_key) || will_move.has(new_key)) { + insert(new_block); + } + + else if (did_move.has(old_key)) { + o--; + + } else if (deltas.get(new_key) > deltas.get(old_key)) { + did_move.add(new_key); + insert(new_block); + + } else { + will_move.add(old_key); + o--; + } + } + + while (o--) { + const old_block = old_blocks[o]; + if (!new_lookup.has(old_block.key)) destroy(old_block, lookup); + } + + while (n) insert(new_blocks[n - 1]); + + return new_blocks; + } + + function measure(blocks) { + const rects = {}; + let i = blocks.length; + while (i--) rects[blocks[i].key] = blocks[i].node.getBoundingClientRect(); + return rects; + } + + function get_spread_update(levels, updates) { + const update = {}; + + const to_null_out = {}; + const accounted_for = { $$scope: 1 }; + + let i = levels.length; + while (i--) { + const o = levels[i]; + const n = updates[i]; + + if (n) { + for (const key in o) { + if (!(key in n)) to_null_out[key] = 1; + } + + for (const key in n) { + if (!accounted_for[key]) { + update[key] = n[key]; + accounted_for[key] = 1; + } + } + + levels[i] = n; + } else { + for (const key in o) { + accounted_for[key] = 1; + } + } + } + + for (const key in to_null_out) { + if (!(key in update)) update[key] = undefined; + } + + return update; + } + + const invalid_attribute_name_character = /[\s'">/=\u{FDD0}-\u{FDEF}\u{FFFE}\u{FFFF}\u{1FFFE}\u{1FFFF}\u{2FFFE}\u{2FFFF}\u{3FFFE}\u{3FFFF}\u{4FFFE}\u{4FFFF}\u{5FFFE}\u{5FFFF}\u{6FFFE}\u{6FFFF}\u{7FFFE}\u{7FFFF}\u{8FFFE}\u{8FFFF}\u{9FFFE}\u{9FFFF}\u{AFFFE}\u{AFFFF}\u{BFFFE}\u{BFFFF}\u{CFFFE}\u{CFFFF}\u{DFFFE}\u{DFFFF}\u{EFFFE}\u{EFFFF}\u{FFFFE}\u{FFFFF}\u{10FFFE}\u{10FFFF}]/u; + // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2 + // https://infra.spec.whatwg.org/#noncharacter + + function spread(args) { + const attributes = Object.assign({}, ...args); + let str = ''; + + Object.keys(attributes).forEach(name => { + if (invalid_attribute_name_character.test(name)) return; + + const value = attributes[name]; + if (value === undefined) return; + if (value === true) str += " " + name; + + const escaped = String(value) + .replace(/"/g, '"') + .replace(/'/g, '''); + + str += " " + name + "=" + JSON.stringify(escaped); + }); + + return str; + } + + const escaped = { + '"': '"', + "'": ''', + '&': '&', + '<': '<', + '>': '>' + }; + + function escape(html) { + return String(html).replace(/["'&<>]/g, match => escaped[match]); + } + + function each(items, fn) { + let str = ''; + for (let i = 0; i < items.length; i += 1) { + str += fn(items[i], i); + } + return str; + } + + const missing_component = { + $$render: () => '' + }; + + function validate_component(component, name) { + if (!component || !component.$$render) { + if (name === 'svelte:component') name += ' this={...}'; + throw new Error(`<${name}> is not a valid SSR component. You may need to review your build config to ensure that dependencies are compiled, rather than imported as pre-compiled modules`); + } + + return component; + } + + function debug(file, line, column, values) { + console.log(`{@debug} ${file ? file + ' ' : ''}(${line}:${column})`); // eslint-disable-line no-console + console.log(values); // eslint-disable-line no-console + return ''; + } + + let on_destroy; + + function create_ssr_component(fn) { + function $$render(result, props, bindings, slots) { + const parent_component = exports.current_component; + + const $$ = { + on_destroy, + context: new Map(parent_component ? parent_component.$$.context : []), + + // these will be immediately discarded + on_mount: [], + before_render: [], + after_render: [], + callbacks: blank_object() + }; + + set_current_component({ $$ }); + + const html = fn(result, props, bindings, slots); + + set_current_component(parent_component); + return html; + } + + return { + render: (props = {}, options = {}) => { + on_destroy = []; + + const result = { head: '', css: new Set() }; + const html = $$render(result, props, {}, options); + + run_all(on_destroy); + + return { + html, + css: { + code: Array.from(result.css).map(css => css.code).join('\n'), + map: null // TODO + }, + head: result.head + }; + }, + + $$render + }; + } + + function get_store_value(store) { + let value; + store.subscribe(_ => value = _)(); + return value; + } + + function bind(component, name, callback) { + if (component.$$.props.indexOf(name) === -1) return; + component.$$.bound[name] = callback; + callback(component.$$.ctx[name]); + } + + function mount_component(component, target, anchor) { + const { fragment, on_mount, on_destroy, after_render } = component.$$; + + fragment.m(target, anchor); + + // onMount happens after the initial afterUpdate. Because + // afterUpdate callbacks happen in reverse order (inner first) + // we schedule onMount callbacks before afterUpdate callbacks + add_render_callback(() => { + const new_on_destroy = on_mount.map(run).filter(is_function); + if (on_destroy) { + on_destroy.push(...new_on_destroy); + } else { + // Edge case - component was destroyed immediately, + // most likely as a result of a binding initialising + run_all(new_on_destroy); + } + component.$$.on_mount = []; + }); + + after_render.forEach(add_render_callback); + } + + function destroy(component, detaching) { + if (component.$$) { + run_all(component.$$.on_destroy); + component.$$.fragment.d(detaching); + + // TODO null out other refs, including component.$$ (but need to + // preserve final state?) + component.$$.on_destroy = component.$$.fragment = null; + component.$$.ctx = {}; + } + } + + function make_dirty(component, key) { + if (!component.$$.dirty) { + dirty_components.push(component); + schedule_update(); + component.$$.dirty = {}; + } + component.$$.dirty[key] = true; + } + + function init(component, options, instance, create_fragment, not_equal$$1, prop_names) { + const parent_component = exports.current_component; + set_current_component(component); + + const props = options.props || {}; + + const $$ = component.$$ = { + fragment: null, + ctx: null, + + // state + props: prop_names, + update: noop, + not_equal: not_equal$$1, + bound: blank_object(), + + // lifecycle + on_mount: [], + on_destroy: [], + before_render: [], + after_render: [], + context: new Map(parent_component ? parent_component.$$.context : []), + + // everything else + callbacks: blank_object(), + dirty: null + }; + + let ready = false; + + $$.ctx = instance + ? instance(component, props, (key, value) => { + if ($$.ctx && not_equal$$1($$.ctx[key], $$.ctx[key] = value)) { + if ($$.bound[key]) $$.bound[key](value); + if (ready) make_dirty(component, key); + } + }) + : props; + + $$.update(); + ready = true; + run_all($$.before_render); + $$.fragment = create_fragment($$.ctx); + + if (options.target) { + if (options.hydrate) { + $$.fragment.l(children(options.target)); + } else { + $$.fragment.c(); + } + + if (options.intro && component.$$.fragment.i) component.$$.fragment.i(); + mount_component(component, options.target, options.anchor); + flush(); + } + + set_current_component(parent_component); + } + if (typeof HTMLElement !== 'undefined') { + exports.SvelteElement = class extends HTMLElement { + constructor() { + super(); + this.attachShadow({ mode: 'open' }); + } + + connectedCallback() { + for (const key in this.$$.slotted) { + this.appendChild(this.$$.slotted[key]); + } + } + + attributeChangedCallback(attr$$1, oldValue, newValue) { + this[attr$$1] = newValue; + } + + $destroy() { + destroy(this, true); + this.$destroy = noop; + } + + $on(type, callback) { + // TODO should this delegate to addEventListener? + const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = [])); + callbacks.push(callback); + + return () => { + const index = callbacks.indexOf(callback); + if (index !== -1) callbacks.splice(index, 1); + }; + } + + $set() { + // overridden by instance, if it has props + } + }; + } + + class SvelteComponent { + $destroy() { + destroy(this, true); + this.$destroy = noop; + } + + $on(type, callback) { + const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = [])); + callbacks.push(callback); + + return () => { + const index = callbacks.indexOf(callback); + if (index !== -1) callbacks.splice(index, 1); + }; + } + + $set() { + // overridden by instance, if it has props + } + } + + class SvelteComponentDev extends SvelteComponent { + constructor(options) { + if (!options || (!options.target && !options.$$inline)) { + throw new Error(`'target' is a required option`); + } + + super(); + } + + $destroy() { + super.$destroy(); + this.$destroy = () => { + console.warn(`Component was already destroyed`); // eslint-disable-line no-console + }; + } + } + + exports.create_animation = create_animation; + exports.fix_position = fix_position; + exports.handle_promise = handle_promise; + exports.append = append; + exports.insert = insert; + exports.detach = detach; + exports.detach_between = detach_between; + exports.detach_before = detach_before; + exports.detach_after = detach_after; + exports.destroy_each = destroy_each; + exports.element = element; + exports.object_without_properties = object_without_properties; + exports.svg_element = svg_element; + exports.text = text; + exports.space = space; + exports.empty = empty; + exports.listen = listen; + exports.prevent_default = prevent_default; + exports.stop_propagation = stop_propagation; + exports.attr = attr; + exports.set_attributes = set_attributes; + exports.set_custom_element_data = set_custom_element_data; + exports.xlink_attr = xlink_attr; + exports.get_binding_group_value = get_binding_group_value; + exports.to_number = to_number; + exports.time_ranges_to_array = time_ranges_to_array; + exports.children = children; + exports.claim_element = claim_element; + exports.claim_text = claim_text; + exports.set_data = set_data; + exports.set_input_type = set_input_type; + exports.set_style = set_style; + exports.select_option = select_option; + exports.select_options = select_options; + exports.select_value = select_value; + exports.select_multiple_value = select_multiple_value; + exports.add_resize_listener = add_resize_listener; + exports.toggle_class = toggle_class; + exports.custom_event = custom_event; + exports.destroy_block = destroy_block; + exports.outro_and_destroy_block = outro_and_destroy_block; + exports.fix_and_outro_and_destroy_block = fix_and_outro_and_destroy_block; + exports.update_keyed_each = update_keyed_each; + exports.measure = measure; + exports.set_current_component = set_current_component; + exports.beforeUpdate = beforeUpdate; + exports.onMount = onMount; + exports.afterUpdate = afterUpdate; + exports.onDestroy = onDestroy; + exports.createEventDispatcher = createEventDispatcher; + exports.setContext = setContext; + exports.getContext = getContext; + exports.bubble = bubble; + exports.clear_loops = clear_loops; + exports.loop = loop; + exports.dirty_components = dirty_components; + exports.intros = intros; + exports.schedule_update = schedule_update; + exports.tick = tick; + exports.add_binding_callback = add_binding_callback; + exports.add_render_callback = add_render_callback; + exports.add_flush_callback = add_flush_callback; + exports.flush = flush; + exports.get_spread_update = get_spread_update; + exports.invalid_attribute_name_character = invalid_attribute_name_character; + exports.spread = spread; + exports.escaped = escaped; + exports.escape = escape; + exports.each = each; + exports.missing_component = missing_component; + exports.validate_component = validate_component; + exports.debug = debug; + exports.create_ssr_component = create_ssr_component; + exports.get_store_value = get_store_value; + exports.group_outros = group_outros; + exports.check_outros = check_outros; + exports.on_outro = on_outro; + exports.create_in_transition = create_in_transition; + exports.create_out_transition = create_out_transition; + exports.create_bidirectional_transition = create_bidirectional_transition; + exports.noop = noop; + exports.identity = identity; + exports.assign = assign; + exports.is_promise = is_promise; + exports.add_location = add_location; + exports.run = run; + exports.blank_object = blank_object; + exports.run_all = run_all; + exports.is_function = is_function; + exports.safe_not_equal = safe_not_equal; + exports.not_equal = not_equal; + exports.validate_store = validate_store; + exports.subscribe = subscribe; + exports.create_slot = create_slot; + exports.get_slot_context = get_slot_context; + exports.get_slot_changes = get_slot_changes; + exports.exclude_internal_props = exclude_internal_props; + exports.bind = bind; + exports.mount_component = mount_component; + exports.init = init; + exports.SvelteComponent = SvelteComponent; + exports.SvelteComponentDev = SvelteComponentDev; + }); + + unwrapExports(internal); + var internal_1 = internal.current_component; + var internal_2 = internal.SvelteElement; + var internal_3 = internal.create_animation; + var internal_4 = internal.fix_position; + var internal_5 = internal.handle_promise; + var internal_6 = internal.append; + var internal_7 = internal.insert; + var internal_8 = internal.detach; + var internal_9 = internal.detach_between; + var internal_10 = internal.detach_before; + var internal_11 = internal.detach_after; + var internal_12 = internal.destroy_each; + var internal_13 = internal.element; + var internal_14 = internal.object_without_properties; + var internal_15 = internal.svg_element; + var internal_16 = internal.text; + var internal_17 = internal.space; + var internal_18 = internal.empty; + var internal_19 = internal.listen; + var internal_20 = internal.prevent_default; + var internal_21 = internal.stop_propagation; + var internal_22 = internal.attr; + var internal_23 = internal.set_attributes; + var internal_24 = internal.set_custom_element_data; + var internal_25 = internal.xlink_attr; + var internal_26 = internal.get_binding_group_value; + var internal_27 = internal.to_number; + var internal_28 = internal.time_ranges_to_array; + var internal_29 = internal.children; + var internal_30 = internal.claim_element; + var internal_31 = internal.claim_text; + var internal_32 = internal.set_data; + var internal_33 = internal.set_input_type; + var internal_34 = internal.set_style; + var internal_35 = internal.select_option; + var internal_36 = internal.select_options; + var internal_37 = internal.select_value; + var internal_38 = internal.select_multiple_value; + var internal_39 = internal.add_resize_listener; + var internal_40 = internal.toggle_class; + var internal_41 = internal.custom_event; + var internal_42 = internal.destroy_block; + var internal_43 = internal.outro_and_destroy_block; + var internal_44 = internal.fix_and_outro_and_destroy_block; + var internal_45 = internal.update_keyed_each; + var internal_46 = internal.measure; + var internal_47 = internal.set_current_component; + var internal_48 = internal.beforeUpdate; + var internal_49 = internal.onMount; + var internal_50 = internal.afterUpdate; + var internal_51 = internal.onDestroy; + var internal_52 = internal.createEventDispatcher; + var internal_53 = internal.setContext; + var internal_54 = internal.getContext; + var internal_55 = internal.bubble; + var internal_56 = internal.clear_loops; + var internal_57 = internal.loop; + var internal_58 = internal.dirty_components; + var internal_59 = internal.intros; + var internal_60 = internal.schedule_update; + var internal_61 = internal.tick; + var internal_62 = internal.add_binding_callback; + var internal_63 = internal.add_render_callback; + var internal_64 = internal.add_flush_callback; + var internal_65 = internal.flush; + var internal_66 = internal.get_spread_update; + var internal_67 = internal.invalid_attribute_name_character; + var internal_68 = internal.spread; + var internal_69 = internal.escaped; + var internal_70 = internal.escape; + var internal_71 = internal.each; + var internal_72 = internal.missing_component; + var internal_73 = internal.validate_component; + var internal_74 = internal.debug; + var internal_75 = internal.create_ssr_component; + var internal_76 = internal.get_store_value; + var internal_77 = internal.group_outros; + var internal_78 = internal.check_outros; + var internal_79 = internal.on_outro; + var internal_80 = internal.create_in_transition; + var internal_81 = internal.create_out_transition; + var internal_82 = internal.create_bidirectional_transition; + var internal_83 = internal.noop; + var internal_84 = internal.identity; + var internal_85 = internal.assign; + var internal_86 = internal.is_promise; + var internal_87 = internal.add_location; + var internal_88 = internal.run; + var internal_89 = internal.blank_object; + var internal_90 = internal.run_all; + var internal_91 = internal.is_function; + var internal_92 = internal.safe_not_equal; + var internal_93 = internal.not_equal; + var internal_94 = internal.validate_store; + var internal_95 = internal.subscribe; + var internal_96 = internal.create_slot; + var internal_97 = internal.get_slot_context; + var internal_98 = internal.get_slot_changes; + var internal_99 = internal.exclude_internal_props; + var internal_100 = internal.bind; + var internal_101 = internal.mount_component; + var internal_102 = internal.init; + var internal_103 = internal.SvelteComponent; + var internal_104 = internal.SvelteComponentDev; + + /* src/User/Pages/Box.svelte generated by Svelte v3.2.1 */ + + const file = "src/User/Pages/Box.svelte"; + + function create_fragment(ctx) { + var div, current; + + const default_slot_1 = ctx.$$slots.default; + const default_slot = internal_96(default_slot_1, ctx, null); + + return { + c: function create() { + div = internal_13("div"); + + if (default_slot) default_slot.c(); + + div.className = "box svelte-yv48ir"; + internal_87(div, file, 33, 0, 624); + }, + + l: function claim(nodes) { + if (default_slot) default_slot.l(div_nodes); + throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); + }, + + m: function mount(target, anchor) { + internal_7(target, div, anchor); + + if (default_slot) { + default_slot.m(div, null); + } + + current = true; + }, + + p: function update(changed, ctx) { + if (default_slot && default_slot.p && changed.$$scope) { + default_slot.p(internal_98(default_slot_1, ctx, changed,), internal_97(default_slot_1, ctx, null)); + } + }, + + i: function intro(local) { + if (current) return; + if (default_slot && default_slot.i) default_slot.i(local); + current = true; + }, + + o: function outro(local) { + if (default_slot && default_slot.o) default_slot.o(local); + current = false; + }, + + d: function destroy(detaching) { + if (detaching) { + internal_8(div); + } + + if (default_slot) default_slot.d(detaching); + } + }; + } + + function instance($$self, $$props, $$invalidate) { + let { $$slots = {}, $$scope } = $$props; + + $$self.$set = $$props => { + if ('$$scope' in $$props) $$invalidate('$$scope', $$scope = $$props.$$scope); + }; + + return { $$slots, $$scope }; + } + + class Box extends internal_104 { + constructor(options) { + super(options); + internal_102(this, options, instance, create_fragment, internal_92, []); + } + } + + var easing = createCommonjsModule(function (module, exports) { + + Object.defineProperty(exports, '__esModule', { value: true }); + + + + /* + Adapted from https://github.com/mattdesl + Distributed under MIT License https://github.com/mattdesl/eases/blob/master/LICENSE.md + */ + + function backInOut(t) { + const s = 1.70158 * 1.525; + if ((t *= 2) < 1) return 0.5 * (t * t * ((s + 1) * t - s)); + return 0.5 * ((t -= 2) * t * ((s + 1) * t + s) + 2); + } + + function backIn(t) { + const s = 1.70158; + return t * t * ((s + 1) * t - s); + } + + function backOut(t) { + const s = 1.70158; + return --t * t * ((s + 1) * t + s) + 1; + } + + function bounceOut(t) { + const a = 4.0 / 11.0; + const b = 8.0 / 11.0; + const c = 9.0 / 10.0; + + const ca = 4356.0 / 361.0; + const cb = 35442.0 / 1805.0; + const cc = 16061.0 / 1805.0; + + const t2 = t * t; + + return t < a + ? 7.5625 * t2 + : t < b + ? 9.075 * t2 - 9.9 * t + 3.4 + : t < c + ? ca * t2 - cb * t + cc + : 10.8 * t * t - 20.52 * t + 10.72; + } + + function bounceInOut(t) { + return t < 0.5 + ? 0.5 * (1.0 - bounceOut(1.0 - t * 2.0)) + : 0.5 * bounceOut(t * 2.0 - 1.0) + 0.5; + } + + function bounceIn(t) { + return 1.0 - bounceOut(1.0 - t); + } + + function circInOut(t) { + if ((t *= 2) < 1) return -0.5 * (Math.sqrt(1 - t * t) - 1); + return 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1); + } + + function circIn(t) { + return 1.0 - Math.sqrt(1.0 - t * t); + } + + function circOut(t) { + return Math.sqrt(1 - --t * t); + } + + function cubicInOut(t) { + return t < 0.5 ? 4.0 * t * t * t : 0.5 * Math.pow(2.0 * t - 2.0, 3.0) + 1.0; + } + + function cubicIn(t) { + return t * t * t; + } + + function cubicOut(t) { + const f = t - 1.0; + return f * f * f + 1.0; + } + + function elasticInOut(t) { + return t < 0.5 + ? 0.5 * + Math.sin(((+13.0 * Math.PI) / 2) * 2.0 * t) * + Math.pow(2.0, 10.0 * (2.0 * t - 1.0)) + : 0.5 * + Math.sin(((-13.0 * Math.PI) / 2) * (2.0 * t - 1.0 + 1.0)) * + Math.pow(2.0, -10.0 * (2.0 * t - 1.0)) + + 1.0; + } + + function elasticIn(t) { + return Math.sin((13.0 * t * Math.PI) / 2) * Math.pow(2.0, 10.0 * (t - 1.0)); + } + + function elasticOut(t) { + return ( + Math.sin((-13.0 * (t + 1.0) * Math.PI) / 2) * Math.pow(2.0, -10.0 * t) + 1.0 + ); + } + + function expoInOut(t) { + return t === 0.0 || t === 1.0 + ? t + : t < 0.5 + ? +0.5 * Math.pow(2.0, 20.0 * t - 10.0) + : -0.5 * Math.pow(2.0, 10.0 - t * 20.0) + 1.0; + } + + function expoIn(t) { + return t === 0.0 ? t : Math.pow(2.0, 10.0 * (t - 1.0)); + } + + function expoOut(t) { + return t === 1.0 ? t : 1.0 - Math.pow(2.0, -10.0 * t); + } + + function quadInOut(t) { + t /= 0.5; + if (t < 1) return 0.5 * t * t; + t--; + return -0.5 * (t * (t - 2) - 1); + } + + function quadIn(t) { + return t * t; + } + + function quadOut(t) { + return -t * (t - 2.0); + } + + function quartInOut(t) { + return t < 0.5 + ? +8.0 * Math.pow(t, 4.0) + : -8.0 * Math.pow(t - 1.0, 4.0) + 1.0; + } + + function quartIn(t) { + return Math.pow(t, 4.0); + } + + function quartOut(t) { + return Math.pow(t - 1.0, 3.0) * (1.0 - t) + 1.0; + } + + function quintInOut(t) { + if ((t *= 2) < 1) return 0.5 * t * t * t * t * t; + return 0.5 * ((t -= 2) * t * t * t * t + 2); + } + + function quintIn(t) { + return t * t * t * t * t; + } + + function quintOut(t) { + return --t * t * t * t * t + 1; + } + + function sineInOut(t) { + return -0.5 * (Math.cos(Math.PI * t) - 1); + } + + function sineIn(t) { + const v = Math.cos(t * Math.PI * 0.5); + if (Math.abs(v) < 1e-14) return 1; + else return 1 - v; + } + + function sineOut(t) { + return Math.sin((t * Math.PI) / 2); + } + + exports.linear = internal.identity; + exports.backInOut = backInOut; + exports.backIn = backIn; + exports.backOut = backOut; + exports.bounceOut = bounceOut; + exports.bounceInOut = bounceInOut; + exports.bounceIn = bounceIn; + exports.circInOut = circInOut; + exports.circIn = circIn; + exports.circOut = circOut; + exports.cubicInOut = cubicInOut; + exports.cubicIn = cubicIn; + exports.cubicOut = cubicOut; + exports.elasticInOut = elasticInOut; + exports.elasticIn = elasticIn; + exports.elasticOut = elasticOut; + exports.expoInOut = expoInOut; + exports.expoIn = expoIn; + exports.expoOut = expoOut; + exports.quadInOut = quadInOut; + exports.quadIn = quadIn; + exports.quadOut = quadOut; + exports.quartInOut = quartInOut; + exports.quartIn = quartIn; + exports.quartOut = quartOut; + exports.quintInOut = quintInOut; + exports.quintIn = quintIn; + exports.quintOut = quintOut; + exports.sineInOut = sineInOut; + exports.sineIn = sineIn; + exports.sineOut = sineOut; + }); + + unwrapExports(easing); + var easing_1 = easing.linear; + var easing_2 = easing.backInOut; + var easing_3 = easing.backIn; + var easing_4 = easing.backOut; + var easing_5 = easing.bounceOut; + var easing_6 = easing.bounceInOut; + var easing_7 = easing.bounceIn; + var easing_8 = easing.circInOut; + var easing_9 = easing.circIn; + var easing_10 = easing.circOut; + var easing_11 = easing.cubicInOut; + var easing_12 = easing.cubicIn; + var easing_13 = easing.cubicOut; + var easing_14 = easing.elasticInOut; + var easing_15 = easing.elasticIn; + var easing_16 = easing.elasticOut; + var easing_17 = easing.expoInOut; + var easing_18 = easing.expoIn; + var easing_19 = easing.expoOut; + var easing_20 = easing.quadInOut; + var easing_21 = easing.quadIn; + var easing_22 = easing.quadOut; + var easing_23 = easing.quartInOut; + var easing_24 = easing.quartIn; + var easing_25 = easing.quartOut; + var easing_26 = easing.quintInOut; + var easing_27 = easing.quintIn; + var easing_28 = easing.quintOut; + var easing_29 = easing.sineInOut; + var easing_30 = easing.sineIn; + var easing_31 = easing.sineOut; + + var transition = createCommonjsModule(function (module, exports) { + + Object.defineProperty(exports, '__esModule', { value: true }); + + + + + function fade(node, { + delay = 0, + duration = 400 + }) { + const o = +getComputedStyle(node).opacity; + + return { + delay, + duration, + css: t => `opacity: ${t * o}` + }; + } + + function fly(node, { + delay = 0, + duration = 400, + easing: easing$$1 = easing.cubicOut, + x = 0, + y = 0, + opacity = 0 + }) { + const style = getComputedStyle(node); + const target_opacity = +style.opacity; + const transform = style.transform === 'none' ? '' : style.transform; + + const od = target_opacity * (1 - opacity); + + return { + delay, + duration, + easing: easing$$1, + css: (t, u) => ` + transform: ${transform} translate(${(1 - t) * x}px, ${(1 - t) * y}px); + opacity: ${target_opacity - (od * u)}` + }; + } + + function slide(node, { + delay = 0, + duration = 400, + easing: easing$$1 = easing.cubicOut + }) { + const style = getComputedStyle(node); + const opacity = +style.opacity; + const height = parseFloat(style.height); + const padding_top = parseFloat(style.paddingTop); + const padding_bottom = parseFloat(style.paddingBottom); + const margin_top = parseFloat(style.marginTop); + const margin_bottom = parseFloat(style.marginBottom); + const border_top_width = parseFloat(style.borderTopWidth); + const border_bottom_width = parseFloat(style.borderBottomWidth); + + return { + delay, + duration, + easing: easing$$1, + css: t => + `overflow: hidden;` + + `opacity: ${Math.min(t * 20, 1) * opacity};` + + `height: ${t * height}px;` + + `padding-top: ${t * padding_top}px;` + + `padding-bottom: ${t * padding_bottom}px;` + + `margin-top: ${t * margin_top}px;` + + `margin-bottom: ${t * margin_bottom}px;` + + `border-top-width: ${t * border_top_width}px;` + + `border-bottom-width: ${t * border_bottom_width}px;` + }; + } + + function scale(node, { + delay = 0, + duration = 400, + easing: easing$$1 = easing.cubicOut, + start = 0, + opacity = 0 + }) { + const style = getComputedStyle(node); + const target_opacity = +style.opacity; + const transform = style.transform === 'none' ? '' : style.transform; + + const sd = 1 - start; + const od = target_opacity * (1 - opacity); + + return { + delay, + duration, + easing: easing$$1, + css: (t, u) => ` + transform: ${transform} scale(${1 - (sd * u)}); + opacity: ${target_opacity - (od * u)} + ` + }; + } + + function draw(node, { + delay = 0, + speed, + duration, + easing: easing$$1 = easing.cubicInOut + }) { + const len = node.getTotalLength(); + + if (duration === undefined) { + if (speed === undefined) { + duration = 800; + } else { + duration = len / speed; + } + } else if (typeof duration === 'function') { + duration = duration(len); + } + + return { + delay, + duration, + easing: easing$$1, + css: (t, u) => `stroke-dasharray: ${t * len} ${u * len}` + }; + } + + function crossfade({ fallback, ...defaults }) { + const to_receive = new Map(); + const to_send = new Map(); + + function crossfade(from, node, params) { + const { + delay = 0, + duration = d => Math.sqrt(d) * 30, + easing: easing$$1 = easing.cubicOut + } = internal.assign(internal.assign({}, defaults), params); + + const to = node.getBoundingClientRect(); + const dx = from.left - to.left; + const dy = from.top - to.top; + const d = Math.sqrt(dx * dx + dy * dy); + + const style = getComputedStyle(node); + const transform = style.transform === 'none' ? '' : style.transform; + const opacity = +style.opacity; + + return { + delay, + duration: internal.is_function(duration) ? duration(d) : duration, + easing: easing$$1, + css: (t, u) => ` + opacity: ${t * opacity}; + transform: ${transform} translate(${u * dx}px,${u * dy}px); + ` + }; + } + + function transition(items, counterparts, intro) { + return (node, params) => { + items.set(params.key, { + rect: node.getBoundingClientRect() + }); + + return () => { + if (counterparts.has(params.key)) { + const { rect } = counterparts.get(params.key); + counterparts.delete(params.key); + + return crossfade(rect, node, params); + } + + // if the node is disappearing altogether + // (i.e. wasn't claimed by the other list) + // then we need to supply an outro + items.delete(params.key); + return fallback && fallback(node, params, intro); + }; + }; + } + + return [ + transition(to_send, to_receive, false), + transition(to_receive, to_send, true) + ]; + } + + exports.fade = fade; + exports.fly = fly; + exports.slide = slide; + exports.scale = scale; + exports.draw = draw; + exports.crossfade = crossfade; + }); + + unwrapExports(transition); + var transition_1 = transition.fade; + var transition_2 = transition.fly; + var transition_3 = transition.slide; + var transition_4 = transition.scale; + var transition_5 = transition.draw; + var transition_6 = transition.crossfade; + + /* src/User/Pages/NextIcon.svelte generated by Svelte v3.2.1 */ + + const file$1 = "src/User/Pages/NextIcon.svelte"; + + function create_fragment$1(ctx) { + var svg, g1, g0, polygon, svg_style_value; + + return { + c: function create() { + svg = internal_15("svg"); + g1 = internal_15("g"); + g0 = internal_15("g"); + polygon = internal_15("polygon"); + internal_22(polygon, "points", "27.051,17 9.905,0 8.417,1.414 24.674,17.707 8.363,34 9.914,35.414 27.051,18.414 \t\t"); + internal_87(polygon, file$1, 9, 9, 358); + internal_87(g0, file$1, 8, 6, 345); + internal_87(g1, file$1, 7, 3, 335); + internal_22(svg, "style", svg_style_value = `enable-background:new 0 0 35.414 35.414; transform: rotate(${ctx.rotation}deg); transition: all .4s;`); + internal_22(svg, "version", "1.1"); + internal_22(svg, "id", "Capa_1"); + internal_22(svg, "xmlns", "http://www.w3.org/2000/svg"); + internal_22(svg, "xmlns:xlink", "http://www.w3.org/1999/xlink"); + internal_22(svg, "x", "0px"); + internal_22(svg, "y", "0px"); + internal_22(svg, "viewBox", "0 0 35.414 35.414"); + internal_22(svg, "xml:space", "preserve"); + internal_87(svg, file$1, 4, 0, 44); + }, + + l: function claim(nodes) { + throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); + }, + + m: function mount(target, anchor) { + internal_7(target, svg, anchor); + internal_6(svg, g1); + internal_6(g1, g0); + internal_6(g0, polygon); + }, + + p: function update(changed, ctx) { + if ((changed.rotation) && svg_style_value !== (svg_style_value = `enable-background:new 0 0 35.414 35.414; transform: rotate(${ctx.rotation}deg); transition: all .4s;`)) { + internal_22(svg, "style", svg_style_value); + } + }, + + i: internal_83, + o: internal_83, + + d: function destroy(detaching) { + if (detaching) { + internal_8(svg); + } + } + }; + } + + function instance$1($$self, $$props, $$invalidate) { + let { rotation } = $$props; + + $$self.$set = $$props => { + if ('rotation' in $$props) $$invalidate('rotation', rotation = $$props.rotation); + }; + + return { rotation }; + } + + class NextIcon extends internal_104 { + constructor(options) { + super(options); + internal_102(this, options, instance$1, create_fragment$1, internal_92, ["rotation"]); + + const { ctx } = this.$$; + const props = options.props || {}; + if (ctx.rotation === undefined && !('rotation' in props)) { + console.warn(" was created without expected prop 'rotation'"); + } + } + + get rotation() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set rotation(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + } + + /* src/User/Pages/BoxItem.svelte generated by Svelte v3.2.1 */ + + const file$2 = "src/User/Pages/BoxItem.svelte"; + + function get_each_context(ctx, list, i) { + const child_ctx = Object.create(ctx); + child_ctx.v = list[i]; + child_ctx.i = i; + return child_ctx; + } + + // (85:12) {:else} + function create_else_block(ctx) { + var t; + + return { + c: function create() { + t = internal_16(ctx.value); + }, + + m: function mount(target, anchor) { + internal_7(target, t, anchor); + }, + + p: function update(changed, ctx) { + if (changed.value) { + internal_32(t, ctx.value); + } + }, + + d: function destroy(detaching) { + if (detaching) { + internal_8(t); + } + } + }; + } + + // (78:12) {#if Array.isArray(value)} + function create_if_block_1(ctx) { + var each_1_anchor; + + var each_value = ctx.value; + + var each_blocks = []; + + for (var i = 0; i < each_value.length; i += 1) { + each_blocks[i] = create_each_block(get_each_context(ctx, each_value, i)); + } + + return { + c: function create() { + for (var i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].c(); + } + + each_1_anchor = internal_18(); + }, + + m: function mount(target, anchor) { + for (var i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].m(target, anchor); + } + + internal_7(target, each_1_anchor, anchor); + }, + + p: function update(changed, ctx) { + if (changed.value) { + each_value = ctx.value; + + for (var i = 0; i < each_value.length; i += 1) { + const child_ctx = get_each_context(ctx, each_value, i); + + if (each_blocks[i]) { + each_blocks[i].p(changed, child_ctx); + } else { + each_blocks[i] = create_each_block(child_ctx); + each_blocks[i].c(); + each_blocks[i].m(each_1_anchor.parentNode, each_1_anchor); + } + } + + for (; i < each_blocks.length; i += 1) { + each_blocks[i].d(1); + } + each_blocks.length = each_value.length; + } + }, + + d: function destroy(detaching) { + internal_12(each_blocks, detaching); + + if (detaching) { + internal_8(each_1_anchor); + } + } + }; + } + + // (81:18) {#if i < value.length - 1} + function create_if_block_2(ctx) { + var br; + + return { + c: function create() { + br = internal_13("br"); + internal_87(br, file$2, 81, 18, 1625); + }, + + m: function mount(target, anchor) { + internal_7(target, br, anchor); + }, + + d: function destroy(detaching) { + if (detaching) { + internal_8(br); + } + } + }; + } + + // (79:15) {#each value as v, i} + function create_each_block(ctx) { + var t0_value = ctx.v, t0, t1, if_block_anchor; + + var if_block = (ctx.i < ctx.value.length - 1) && create_if_block_2(ctx); + + return { + c: function create() { + t0 = internal_16(t0_value); + t1 = internal_17(); + if (if_block) if_block.c(); + if_block_anchor = internal_18(); + }, + + m: function mount(target, anchor) { + internal_7(target, t0, anchor); + internal_7(target, t1, anchor); + if (if_block) if_block.m(target, anchor); + internal_7(target, if_block_anchor, anchor); + }, + + p: function update(changed, ctx) { + if ((changed.value) && t0_value !== (t0_value = ctx.v)) { + internal_32(t0, t0_value); + } + + if (ctx.i < ctx.value.length - 1) { + if (!if_block) { + if_block = create_if_block_2(ctx); + if_block.c(); + if_block.m(if_block_anchor.parentNode, if_block_anchor); + } + } else if (if_block) { + if_block.d(1); + if_block = null; + } + }, + + d: function destroy(detaching) { + if (detaching) { + internal_8(t0); + internal_8(t1); + } + + if (if_block) if_block.d(detaching); + + if (detaching) { + internal_8(if_block_anchor); + } + } + }; + } + + // (92:3) {#if open} + function create_if_block(ctx) { + var div, div_transition, current; + + const default_slot_1 = ctx.$$slots.default; + const default_slot = internal_96(default_slot_1, ctx, null); + + return { + c: function create() { + div = internal_13("div"); + + if (default_slot) default_slot.c(); + + div.className = "body svelte-1h07xvd"; + internal_87(div, file$2, 92, 6, 1844); + }, + + l: function claim(nodes) { + if (default_slot) default_slot.l(div_nodes); + }, + + m: function mount(target, anchor) { + internal_7(target, div, anchor); + + if (default_slot) { + default_slot.m(div, null); + } + + current = true; + }, + + p: function update(changed, ctx) { + if (default_slot && default_slot.p && changed.$$scope) { + default_slot.p(internal_98(default_slot_1, ctx, changed,), internal_97(default_slot_1, ctx, null)); + } + }, + + i: function intro(local) { + if (current) return; + if (default_slot && default_slot.i) default_slot.i(local); + + internal_63(() => { + if (!div_transition) div_transition = internal_82(div, transition_3, {}, true); + div_transition.run(1); + }); + + current = true; + }, + + o: function outro(local) { + if (default_slot && default_slot.o) default_slot.o(local); + + if (!div_transition) div_transition = internal_82(div, transition_3, {}, false); + div_transition.run(0); + + current = false; + }, + + d: function destroy(detaching) { + if (detaching) { + internal_8(div); + } + + if (default_slot) default_slot.d(detaching); + + if (detaching) { + if (div_transition) div_transition.end(); + } + } + }; + } + + function create_fragment$2(ctx) { + var div4, div3, div2, div0, t0, t1, div1, t2, t3, current, dispose; + + function select_block_type(ctx) { + if (Array.isArray(ctx.value)) return create_if_block_1; + return create_else_block; + } + + var current_block_type = select_block_type(ctx); + var if_block0 = current_block_type(ctx); + + var nexticon = new NextIcon({ + props: { rotation: ctx.open ? -90 : 90 }, + $$inline: true + }); + + var if_block1 = (ctx.open) && create_if_block(ctx); + + return { + c: function create() { + div4 = internal_13("div"); + div3 = internal_13("div"); + div2 = internal_13("div"); + div0 = internal_13("div"); + t0 = internal_16(ctx.name); + t1 = internal_17(); + div1 = internal_13("div"); + if_block0.c(); + t2 = internal_17(); + nexticon.$$.fragment.c(); + t3 = internal_17(); + if (if_block1) if_block1.c(); + div0.className = "svelte-1h07xvd"; + internal_87(div0, file$2, 75, 9, 1431); + div1.className = "svelte-1h07xvd"; + internal_87(div1, file$2, 76, 9, 1458); + div2.className = "values svelte-1h07xvd"; + internal_87(div2, file$2, 74, 6, 1401); + div3.className = "container svelte-1h07xvd"; + internal_87(div3, file$2, 73, 3, 1345); + div4.className = "root svelte-1h07xvd"; + internal_40(div4, "highlight-element", ctx.highlight); + internal_87(div4, file$2, 72, 0, 1287); + dispose = internal_19(div3, "click", ctx.click_handler); + }, + + l: function claim(nodes) { + throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); + }, + + m: function mount(target, anchor) { + internal_7(target, div4, anchor); + internal_6(div4, div3); + internal_6(div3, div2); + internal_6(div2, div0); + internal_6(div0, t0); + internal_6(div2, t1); + internal_6(div2, div1); + if_block0.m(div1, null); + internal_6(div3, t2); + internal_101(nexticon, div3, null); + internal_6(div4, t3); + if (if_block1) if_block1.m(div4, null); + current = true; + }, + + p: function update(changed, ctx) { + if (!current || changed.name) { + internal_32(t0, ctx.name); + } + + if (current_block_type === (current_block_type = select_block_type(ctx)) && if_block0) { + if_block0.p(changed, ctx); + } else { + if_block0.d(1); + if_block0 = current_block_type(ctx); + if (if_block0) { + if_block0.c(); + if_block0.m(div1, null); + } + } + + var nexticon_changes = {}; + if (changed.open) nexticon_changes.rotation = ctx.open ? -90 : 90; + nexticon.$set(nexticon_changes); + + if (ctx.open) { + if (if_block1) { + if_block1.p(changed, ctx); + if_block1.i(1); + } else { + if_block1 = create_if_block(ctx); + if_block1.c(); + if_block1.i(1); + if_block1.m(div4, null); + } + } else if (if_block1) { + internal_77(); + internal_79(() => { + if_block1.d(1); + if_block1 = null; + }); + + if_block1.o(1); + internal_78(); + } + + if (changed.highlight) { + internal_40(div4, "highlight-element", ctx.highlight); + } + }, + + i: function intro(local) { + if (current) return; + nexticon.$$.fragment.i(local); + + if (if_block1) if_block1.i(); + current = true; + }, + + o: function outro(local) { + nexticon.$$.fragment.o(local); + if (if_block1) if_block1.o(); + current = false; + }, + + d: function destroy(detaching) { + if (detaching) { + internal_8(div4); + } + + if_block0.d(); + + nexticon.$destroy(); + + if (if_block1) if_block1.d(); + dispose(); + } + }; + } + + function instance$2($$self, $$props, $$invalidate) { + + let { name = "", value = "", open = false, highlight = false } = $$props; + + let { $$slots = {}, $$scope } = $$props; + + function click_handler() { + const $$result = open=!open; + $$invalidate('open', open); + return $$result; + } + + $$self.$set = $$props => { + if ('name' in $$props) $$invalidate('name', name = $$props.name); + if ('value' in $$props) $$invalidate('value', value = $$props.value); + if ('open' in $$props) $$invalidate('open', open = $$props.open); + if ('highlight' in $$props) $$invalidate('highlight', highlight = $$props.highlight); + if ('$$scope' in $$props) $$invalidate('$$scope', $$scope = $$props.$$scope); + }; + + return { + name, + value, + open, + highlight, + click_handler, + $$slots, + $$scope + }; + } + + class BoxItem extends internal_104 { + constructor(options) { + super(options); + internal_102(this, options, instance$2, create_fragment$2, internal_92, ["name", "value", "open", "highlight"]); + } + + get name() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set name(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get value() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set value(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get open() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set open(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get highlight() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set highlight(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + } + + /*! ***************************************************************************** + Copyright (c) Microsoft Corporation. All rights reserved. + Licensed under the Apache License, Version 2.0 (the "License"); you may not use + this file except in compliance with the License. You may obtain a copy of the + License at http://www.apache.org/licenses/LICENSE-2.0 + + THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED + WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, + MERCHANTABLITY OR NON-INFRINGEMENT. + + See the Apache Version 2.0 License for specific language governing permissions + and limitations under the License. + ***************************************************************************** */ + + function __awaiter(thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + } + + function __generator(thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (_) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } + } + + function getCookie(cname) { + var name = cname + "="; + var dc = decodeURIComponent(document.cookie); + var ca = dc.split(';'); + for (var i = 0; i < ca.length; i++) { + var c = ca[i]; + while (c.charAt(0) == ' ') { + c = c.substring(1); + } + if (c.indexOf(name) == 0) { + return c.substring(name.length, c.length); + } + } + return ""; + } + + // const baseURL = "https://auth.stamm.me"; + var baseURL = "http://localhost:3000"; + function request(endpoint, parameters, method, body, authInParam) { + if (parameters === void 0) { parameters = {}; } + if (method === void 0) { method = "GET"; } + if (authInParam === void 0) { authInParam = false; } + return __awaiter(this, void 0, void 0, function () { + var pairs, key, url; + return __generator(this, function (_a) { + pairs = []; + if (authInParam) { + parameters.login = getCookie("login"); + parameters.special = getCookie("special"); + } + for (key in parameters) { + pairs.push(key + "=" + parameters[key]); + } + url = endpoint; + if (pairs.length > 0) { + url += "?" + pairs.join("&"); + } + return [2 /*return*/, fetch(baseURL + url, { + method: method, + body: JSON.stringify(body), + credentials: "same-origin", + headers: { + 'content-type': 'application/json' + }, + }).then(function (e) { + if (e.status !== 200) + throw new Error(e.statusText); + return e.json(); + }).then(function (data) { + if (data.error) { + if (data.additional && data.additional.auth) { + var state = btoa(window.location.pathname + window.location.hash); + // window.location.href = `/login?state=${state}&base64=true`; + } + return Promise.reject(new Error(data.error)); + } + return data; + })]; + }); + }); + } + + /* src/User/Pages/Account.svelte generated by Svelte v3.2.1 */ + + const file$3 = "src/User/Pages/Account.svelte"; + + // (132:3) {#if error} + function create_if_block$1(ctx) { + var p, t; + + return { + c: function create() { + p = internal_13("p"); + t = internal_16(ctx.error); + p.className = "error svelte-1lc4uv"; + internal_87(p, file$3, 132, 6, 2550); + }, + + m: function mount(target, anchor) { + internal_7(target, p, anchor); + internal_6(p, t); + }, + + p: function update(changed, ctx) { + if (changed.error) { + internal_32(t, ctx.error); + } + }, + + d: function destroy(detaching) { + if (detaching) { + internal_8(p); + } + } + }; + } + + // (135:3) + function create_default_slot_3(ctx) { + var div1, div0, input, t0, span0, t1, span1, t2, label, t4, button, dispose; + + return { + c: function create() { + div1 = internal_13("div"); + div0 = internal_13("div"); + input = internal_13("input"); + t0 = internal_17(); + span0 = internal_13("span"); + t1 = internal_17(); + span1 = internal_13("span"); + t2 = internal_17(); + label = internal_13("label"); + label.textContent = "Name"; + t4 = internal_17(); + button = internal_13("button"); + button.textContent = "Save"; + internal_22(input, "type", "text"); + input.autocomplete = "username"; + internal_87(input, file$3, 137, 12, 2712); + span0.className = "highlight"; + internal_87(span0, file$3, 138, 12, 2786); + span1.className = "bar"; + internal_87(span1, file$3, 139, 12, 2830); + internal_87(label, file$3, 140, 12, 2868); + div0.className = "floating group svelte-1lc4uv"; + internal_87(div0, file$3, 136, 9, 2671); + button.className = "btn svelte-1lc4uv"; + internal_87(button, file$3, 142, 9, 2913); + div1.className = "input-container svelte-1lc4uv"; + internal_87(div1, file$3, 135, 6, 2632); + + dispose = [ + internal_19(input, "input", ctx.input_input_handler), + internal_19(button, "click", ctx.saveName) + ]; + }, + + m: function mount(target, anchor) { + internal_7(target, div1, anchor); + internal_6(div1, div0); + internal_6(div0, input); + + input.value = ctx.name; + + internal_6(div0, t0); + internal_6(div0, span0); + internal_6(div0, t1); + internal_6(div0, span1); + internal_6(div0, t2); + internal_6(div0, label); + internal_6(div1, t4); + internal_6(div1, button); + }, + + p: function update(changed, ctx) { + if (changed.name && (input.value !== ctx.name)) input.value = ctx.name; + }, + + d: function destroy(detaching) { + if (detaching) { + internal_8(div1); + } + + internal_90(dispose); + } + }; + } + + // (146:3) + function create_default_slot_2(ctx) { + var div1, div0, select, option0, option1, option2, t_3, button, dispose; + + return { + c: function create() { + div1 = internal_13("div"); + div0 = internal_13("div"); + select = internal_13("select"); + option0 = internal_13("option"); + option0.textContent = "Male"; + option1 = internal_13("option"); + option1.textContent = "Female"; + option2 = internal_13("option"); + option2.textContent = "Other"; + t_3 = internal_17(); + button = internal_13("button"); + button.textContent = "Save"; + option0.__value = 1; + option0.value = option0.__value; + option0.className = "svelte-1lc4uv"; + internal_87(option0, file$3, 149, 15, 3171); + option1.__value = 2; + option1.value = option1.__value; + option1.className = "svelte-1lc4uv"; + internal_87(option1, file$3, 150, 15, 3218); + option2.__value = 3; + option2.value = option2.__value; + option2.className = "svelte-1lc4uv"; + internal_87(option2, file$3, 151, 15, 3267); + if (ctx.gender === void 0) internal_63(() => ctx.select_change_handler.call(select)); + select.className = "svelte-1lc4uv"; + internal_87(select, file$3, 148, 12, 3127); + div0.className = "select-wrapper svelte-1lc4uv"; + internal_87(div0, file$3, 147, 9, 3086); + button.className = "btn svelte-1lc4uv"; + internal_87(button, file$3, 154, 9, 3347); + div1.className = "input-container svelte-1lc4uv"; + internal_87(div1, file$3, 146, 6, 3047); + + dispose = [ + internal_19(select, "change", ctx.select_change_handler), + internal_19(button, "click", ctx.saveGender) + ]; + }, + + m: function mount(target, anchor) { + internal_7(target, div1, anchor); + internal_6(div1, div0); + internal_6(div0, select); + internal_6(select, option0); + internal_6(select, option1); + internal_6(select, option2); + + internal_35(select, ctx.gender); + + internal_6(div1, t_3); + internal_6(div1, button); + }, + + p: function update(changed, ctx) { + if (changed.gender) internal_35(select, ctx.gender); + }, + + d: function destroy(detaching) { + if (detaching) { + internal_8(div1); + } + + internal_90(dispose); + } + }; + } + + // (130:0) + function create_default_slot_1(ctx) { + var h1, t1, t2, t3, t4, t5, current; + + var if_block = (ctx.error) && create_if_block$1(ctx); + + var boxitem0 = new BoxItem({ + props: { + name: "Name", + value: ctx.name, + $$slots: { default: [create_default_slot_3] }, + $$scope: { ctx } + }, + $$inline: true + }); + + var boxitem1 = new BoxItem({ + props: { + name: "Gender", + value: ctx.genderHuman, + $$slots: { default: [create_default_slot_2] }, + $$scope: { ctx } + }, + $$inline: true + }); + + var boxitem2 = new BoxItem({ + props: { name: "Birthday", value: ctx.birthday }, + $$inline: true + }); + + var boxitem3 = new BoxItem({ + props: { name: "Password", value: "******" }, + $$inline: true + }); + + return { + c: function create() { + h1 = internal_13("h1"); + h1.textContent = "Profile"; + t1 = internal_17(); + if (if_block) if_block.c(); + t2 = internal_17(); + boxitem0.$$.fragment.c(); + t3 = internal_17(); + boxitem1.$$.fragment.c(); + t4 = internal_17(); + boxitem2.$$.fragment.c(); + t5 = internal_17(); + boxitem3.$$.fragment.c(); + h1.className = "svelte-1lc4uv"; + internal_87(h1, file$3, 130, 3, 2512); + }, + + m: function mount(target, anchor) { + internal_7(target, h1, anchor); + internal_7(target, t1, anchor); + if (if_block) if_block.m(target, anchor); + internal_7(target, t2, anchor); + internal_101(boxitem0, target, anchor); + internal_7(target, t3, anchor); + internal_101(boxitem1, target, anchor); + internal_7(target, t4, anchor); + internal_101(boxitem2, target, anchor); + internal_7(target, t5, anchor); + internal_101(boxitem3, target, anchor); + current = true; + }, + + p: function update(changed, ctx) { + if (ctx.error) { + if (if_block) { + if_block.p(changed, ctx); + } else { + if_block = create_if_block$1(ctx); + if_block.c(); + if_block.m(t2.parentNode, t2); + } + } else if (if_block) { + if_block.d(1); + if_block = null; + } + + var boxitem0_changes = {}; + if (changed.name) boxitem0_changes.value = ctx.name; + if (changed.$$scope || changed.name) boxitem0_changes.$$scope = { changed, ctx }; + boxitem0.$set(boxitem0_changes); + + var boxitem1_changes = {}; + if (changed.genderHuman) boxitem1_changes.value = ctx.genderHuman; + if (changed.$$scope || changed.gender) boxitem1_changes.$$scope = { changed, ctx }; + boxitem1.$set(boxitem1_changes); + + var boxitem2_changes = {}; + if (changed.birthday) boxitem2_changes.value = ctx.birthday; + boxitem2.$set(boxitem2_changes); + }, + + i: function intro(local) { + if (current) return; + boxitem0.$$.fragment.i(local); + + boxitem1.$$.fragment.i(local); + + boxitem2.$$.fragment.i(local); + + boxitem3.$$.fragment.i(local); + + current = true; + }, + + o: function outro(local) { + boxitem0.$$.fragment.o(local); + boxitem1.$$.fragment.o(local); + boxitem2.$$.fragment.o(local); + boxitem3.$$.fragment.o(local); + current = false; + }, + + d: function destroy(detaching) { + if (detaching) { + internal_8(h1); + internal_8(t1); + } + + if (if_block) if_block.d(detaching); + + if (detaching) { + internal_8(t2); + } + + boxitem0.$destroy(detaching); + + if (detaching) { + internal_8(t3); + } + + boxitem1.$destroy(detaching); + + if (detaching) { + internal_8(t4); + } + + boxitem2.$destroy(detaching); + + if (detaching) { + internal_8(t5); + } + + boxitem3.$destroy(detaching); + } + }; + } + + // (162:0) + function create_default_slot(ctx) { + var h1, t1, t2, current; + + var boxitem0 = new BoxItem({ + props: { name: "E-Mail", value: ctx.email }, + $$inline: true + }); + + var boxitem1 = new BoxItem({ + props: { name: "Phone", value: ctx.phone }, + $$inline: true + }); + + return { + c: function create() { + h1 = internal_13("h1"); + h1.textContent = "Contact"; + t1 = internal_17(); + boxitem0.$$.fragment.c(); + t2 = internal_17(); + boxitem1.$$.fragment.c(); + h1.className = "svelte-1lc4uv"; + internal_87(h1, file$3, 162, 3, 3541); + }, + + m: function mount(target, anchor) { + internal_7(target, h1, anchor); + internal_7(target, t1, anchor); + internal_101(boxitem0, target, anchor); + internal_7(target, t2, anchor); + internal_101(boxitem1, target, anchor); + current = true; + }, + + p: function update(changed, ctx) { + var boxitem0_changes = {}; + if (changed.email) boxitem0_changes.value = ctx.email; + boxitem0.$set(boxitem0_changes); + + var boxitem1_changes = {}; + if (changed.phone) boxitem1_changes.value = ctx.phone; + boxitem1.$set(boxitem1_changes); + }, + + i: function intro(local) { + if (current) return; + boxitem0.$$.fragment.i(local); + + boxitem1.$$.fragment.i(local); + + current = true; + }, + + o: function outro(local) { + boxitem0.$$.fragment.o(local); + boxitem1.$$.fragment.o(local); + current = false; + }, + + d: function destroy(detaching) { + if (detaching) { + internal_8(h1); + internal_8(t1); + } + + boxitem0.$destroy(detaching); + + if (detaching) { + internal_8(t2); + } + + boxitem1.$destroy(detaching); + } + }; + } + + function create_fragment$3(ctx) { + var t, current; + + var box0 = new Box({ + props: { + $$slots: { default: [create_default_slot_1] }, + $$scope: { ctx } + }, + $$inline: true + }); + + var box1 = new Box({ + props: { + $$slots: { default: [create_default_slot] }, + $$scope: { ctx } + }, + $$inline: true + }); + + return { + c: function create() { + box0.$$.fragment.c(); + t = internal_17(); + box1.$$.fragment.c(); + }, + + l: function claim(nodes) { + throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); + }, + + m: function mount(target, anchor) { + internal_101(box0, target, anchor); + internal_7(target, t, anchor); + internal_101(box1, target, anchor); + current = true; + }, + + p: function update(changed, ctx) { + var box0_changes = {}; + if (changed.$$scope || changed.birthday || changed.genderHuman || changed.gender || changed.name || changed.error) box0_changes.$$scope = { changed, ctx }; + box0.$set(box0_changes); + + var box1_changes = {}; + if (changed.$$scope) box1_changes.$$scope = { changed, ctx }; + box1.$set(box1_changes); + }, + + i: function intro(local) { + if (current) return; + box0.$$.fragment.i(local); + + box1.$$.fragment.i(local); + + current = true; + }, + + o: function outro(local) { + box0.$$.fragment.o(local); + box1.$$.fragment.o(local); + current = false; + }, + + d: function destroy(detaching) { + box0.$destroy(detaching); + + if (detaching) { + internal_8(t); + } + + box1.$destroy(detaching); + } + }; + } + + async function loadContact() { + + } + + function instance$3($$self, $$props, $$invalidate) { + + + let { loading = false } = $$props; + let error = undefined; + + + const genderMap = new Map(); + genderMap.set(0, "None"); + genderMap.set(1, "Male"); + genderMap.set(2, "Female"); + genderMap.set(3, "Other"); + + let name = ""; + let gender = 0; + let birthday = undefined; + + async function saveName() { + //TODO: implement + await load(); + } + + async function saveGender() { + //TODO: implement + await load(); + } + + async function loadProfile() { + try { + let { + user + } = await request("/api/user/account", {}, "GET", undefined, true); + + $$invalidate('name', name = user.name); + // username = user.username; + $$invalidate('gender', gender = user.gender); + $$invalidate('birthday', birthday = user.birthday ? new Date(user.birthday).toLocaleDateString() : undefined); + } catch (err) { + console.error(err); + $$invalidate('error', error = err.message); + } + } + + + let email = ["mail@fabianstamm.de", "fabian.stamm.koe@gmail.com"]; + let phone = ["+1 1233 123123123", "+21 1233 123 123 1"]; + + async function load() { + $$invalidate('loading', loading = true); + await Promise.all([ + loadProfile(), + loadContact() + ]); + $$invalidate('loading', loading = false); + } + + load(); + + function input_input_handler() { + name = this.value; + $$invalidate('name', name); + } + + function select_change_handler() { + gender = internal_37(this); + $$invalidate('gender', gender); + } + + $$self.$set = $$props => { + if ('loading' in $$props) $$invalidate('loading', loading = $$props.loading); + }; + + let genderHuman; + + $$self.$$.update = ($$dirty = { gender: 1 }) => { + if ($$dirty.gender) { $$invalidate('genderHuman', genderHuman = genderMap.get(gender) || "ERROR"); } + }; + + return { + loading, + error, + name, + gender, + birthday, + saveName, + saveGender, + email, + phone, + genderHuman, + input_input_handler, + select_change_handler + }; + } + + class Account extends internal_104 { + constructor(options) { + super(options); + internal_102(this, options, instance$3, create_fragment$3, internal_92, ["loading"]); + } + + get loading() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set loading(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + } + + /* src/User/Pages/Security.svelte generated by Svelte v3.2.1 */ + + const file$4 = "src/User/Pages/Security.svelte"; + + function get_each_context$1(ctx, list, i) { + const child_ctx = Object.create(ctx); + child_ctx.t = list[i]; + return child_ctx; + } + + function get_each_context_1(ctx, list, i) { + const child_ctx = Object.create(ctx); + child_ctx.t = list[i]; + return child_ctx; + } + + // (53:3) + function create_default_slot_3$1(ctx) { + var button, dispose; + + function click_handler() { + return ctx.click_handler(ctx); + } + + return { + c: function create() { + button = internal_13("button"); + button.textContent = "Delete"; + button.className = "btn svelte-hfyfkx"; + internal_34(button, "background", "var(--error)"); + internal_87(button, file$4, 53, 6, 1369); + dispose = internal_19(button, "click", click_handler); + }, + + m: function mount(target, anchor) { + internal_7(target, button, anchor); + }, + + p: function update(changed, new_ctx) { + ctx = new_ctx; + }, + + d: function destroy(detaching) { + if (detaching) { + internal_8(button); + } + + dispose(); + } + }; + } + + // (52:3) {#each twofactor as t} + function create_each_block_1(ctx) { + var current; + + var boxitem = new BoxItem({ + props: { + name: TFATypes.get(ctx.t.type), + value: ctx.t.name, + highlight: ctx.t.isthis, + $$slots: { default: [create_default_slot_3$1] }, + $$scope: { ctx } + }, + $$inline: true + }); + + return { + c: function create() { + boxitem.$$.fragment.c(); + }, + + m: function mount(target, anchor) { + internal_101(boxitem, target, anchor); + current = true; + }, + + p: function update(changed, ctx) { + var boxitem_changes = {}; + if (changed.TFATypes || changed.twofactor) boxitem_changes.name = TFATypes.get(ctx.t.type); + if (changed.twofactor) boxitem_changes.value = ctx.t.name; + if (changed.twofactor) boxitem_changes.highlight = ctx.t.isthis; + if (changed.$$scope) boxitem_changes.$$scope = { changed, ctx }; + boxitem.$set(boxitem_changes); + }, + + i: function intro(local) { + if (current) return; + boxitem.$$.fragment.i(local); + + current = true; + }, + + o: function outro(local) { + boxitem.$$.fragment.o(local); + current = false; + }, + + d: function destroy(detaching) { + boxitem.$destroy(detaching); + } + }; + } + + // (49:0) + function create_default_slot_2$1(ctx) { + var h1, t1, t2, each_1_anchor, current; + + var boxitem = new BoxItem({ + props: { name: "Add new", open: false }, + $$inline: true + }); + + var each_value_1 = ctx.twofactor; + + var each_blocks = []; + + for (var i = 0; i < each_value_1.length; i += 1) { + each_blocks[i] = create_each_block_1(get_each_context_1(ctx, each_value_1, i)); + } + + function outro_block(i, detaching, local) { + if (each_blocks[i]) { + if (detaching) { + internal_79(() => { + each_blocks[i].d(detaching); + each_blocks[i] = null; + }); + } + + each_blocks[i].o(local); + } + } + + return { + c: function create() { + h1 = internal_13("h1"); + h1.textContent = "Two Factor"; + t1 = internal_17(); + boxitem.$$.fragment.c(); + t2 = internal_17(); + + for (var i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].c(); + } + + each_1_anchor = internal_18(); + h1.className = "svelte-hfyfkx"; + internal_87(h1, file$4, 49, 3, 1189); + }, + + m: function mount(target, anchor) { + internal_7(target, h1, anchor); + internal_7(target, t1, anchor); + internal_101(boxitem, target, anchor); + internal_7(target, t2, anchor); + + for (var i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].m(target, anchor); + } + + internal_7(target, each_1_anchor, anchor); + current = true; + }, + + p: function update(changed, ctx) { + if (changed.TFATypes || changed.twofactor) { + each_value_1 = ctx.twofactor; + + for (var i = 0; i < each_value_1.length; i += 1) { + const child_ctx = get_each_context_1(ctx, each_value_1, i); + + if (each_blocks[i]) { + each_blocks[i].p(changed, child_ctx); + each_blocks[i].i(1); + } else { + each_blocks[i] = create_each_block_1(child_ctx); + each_blocks[i].c(); + each_blocks[i].i(1); + each_blocks[i].m(each_1_anchor.parentNode, each_1_anchor); + } + } + + internal_77(); + for (; i < each_blocks.length; i += 1) outro_block(i, 1, 1); + internal_78(); + } + }, + + i: function intro(local) { + if (current) return; + boxitem.$$.fragment.i(local); + + for (var i = 0; i < each_value_1.length; i += 1) each_blocks[i].i(); + + current = true; + }, + + o: function outro(local) { + boxitem.$$.fragment.o(local); + + each_blocks = each_blocks.filter(Boolean); + for (let i = 0; i < each_blocks.length; i += 1) outro_block(i, 0); + + current = false; + }, + + d: function destroy(detaching) { + if (detaching) { + internal_8(h1); + internal_8(t1); + } + + boxitem.$destroy(detaching); + + if (detaching) { + internal_8(t2); + } + + internal_12(each_blocks, detaching); + + if (detaching) { + internal_8(each_1_anchor); + } + } + }; + } + + // (91:3) {:else} + function create_else_block$1(ctx) { + var span; + + return { + c: function create() { + span = internal_13("span"); + span.textContent = "No Tokens"; + span.className = "svelte-hfyfkx"; + internal_87(span, file$4, 91, 3, 2765); + }, + + m: function mount(target, anchor) { + internal_7(target, span, anchor); + }, + + d: function destroy(detaching) { + if (detaching) { + internal_8(span); + } + } + }; + } + + // (88:3) + function create_default_slot_1$1(ctx) { + var button, t_1, dispose; + + function click_handler_1() { + return ctx.click_handler_1(ctx); + } + + return { + c: function create() { + button = internal_13("button"); + button.textContent = "Revoke"; + t_1 = internal_17(); + button.className = "btn svelte-hfyfkx"; + internal_34(button, "background", "var(--error)"); + internal_87(button, file$4, 88, 6, 2640); + dispose = internal_19(button, "click", click_handler_1); + }, + + m: function mount(target, anchor) { + internal_7(target, button, anchor); + internal_7(target, t_1, anchor); + }, + + p: function update(changed, new_ctx) { + ctx = new_ctx; + }, + + d: function destroy(detaching) { + if (detaching) { + internal_8(button); + internal_8(t_1); + } + + dispose(); + } + }; + } + + // (87:3) {#each token as t} + function create_each_block$1(ctx) { + var current; + + var boxitem = new BoxItem({ + props: { + name: ctx.t.browser, + value: ctx.t.ip, + highlight: ctx.t.isthis, + $$slots: { default: [create_default_slot_1$1] }, + $$scope: { ctx } + }, + $$inline: true + }); + + return { + c: function create() { + boxitem.$$.fragment.c(); + }, + + m: function mount(target, anchor) { + internal_101(boxitem, target, anchor); + current = true; + }, + + p: function update(changed, ctx) { + var boxitem_changes = {}; + if (changed.token) boxitem_changes.name = ctx.t.browser; + if (changed.token) boxitem_changes.value = ctx.t.ip; + if (changed.token) boxitem_changes.highlight = ctx.t.isthis; + if (changed.$$scope) boxitem_changes.$$scope = { changed, ctx }; + boxitem.$set(boxitem_changes); + }, + + i: function intro(local) { + if (current) return; + boxitem.$$.fragment.i(local); + + current = true; + }, + + o: function outro(local) { + boxitem.$$.fragment.o(local); + current = false; + }, + + d: function destroy(detaching) { + boxitem.$destroy(detaching); + } + }; + } + + // (84:0) + function create_default_slot$1(ctx) { + var h1, t_1, each_1_anchor, current; + + var each_value = ctx.token; + + var each_blocks = []; + + for (var i = 0; i < each_value.length; i += 1) { + each_blocks[i] = create_each_block$1(get_each_context$1(ctx, each_value, i)); + } + + function outro_block(i, detaching, local) { + if (each_blocks[i]) { + if (detaching) { + internal_79(() => { + each_blocks[i].d(detaching); + each_blocks[i] = null; + }); + } + + each_blocks[i].o(local); + } + } + + var each_1_else = null; + + if (!each_value.length) { + each_1_else = create_else_block$1(ctx); + each_1_else.c(); + } + + return { + c: function create() { + h1 = internal_13("h1"); + h1.textContent = "Anmeldungen"; + t_1 = internal_17(); + + for (var i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].c(); + } + + each_1_anchor = internal_18(); + h1.className = "svelte-hfyfkx"; + internal_87(h1, file$4, 84, 3, 2526); + }, + + m: function mount(target, anchor) { + internal_7(target, h1, anchor); + internal_7(target, t_1, anchor); + + for (var i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].m(target, anchor); + } + + internal_7(target, each_1_anchor, anchor); + + if (each_1_else) { + each_1_else.m(target, null); + } + + current = true; + }, + + p: function update(changed, ctx) { + if (changed.token) { + each_value = ctx.token; + + for (var i = 0; i < each_value.length; i += 1) { + const child_ctx = get_each_context$1(ctx, each_value, i); + + if (each_blocks[i]) { + each_blocks[i].p(changed, child_ctx); + each_blocks[i].i(1); + } else { + each_blocks[i] = create_each_block$1(child_ctx); + each_blocks[i].c(); + each_blocks[i].i(1); + each_blocks[i].m(each_1_anchor.parentNode, each_1_anchor); + } + } + + internal_77(); + for (; i < each_blocks.length; i += 1) outro_block(i, 1, 1); + internal_78(); + } + + if (each_value.length) { + if (each_1_else) { + each_1_else.d(1); + each_1_else = null; + } + } else if (!each_1_else) { + each_1_else = create_else_block$1(ctx); + each_1_else.c(); + each_1_else.m(each_1_anchor.parentNode, each_1_anchor); + } + }, + + i: function intro(local) { + if (current) return; + for (var i = 0; i < each_value.length; i += 1) each_blocks[i].i(); + + current = true; + }, + + o: function outro(local) { + each_blocks = each_blocks.filter(Boolean); + for (let i = 0; i < each_blocks.length; i += 1) outro_block(i, 0); + + current = false; + }, + + d: function destroy(detaching) { + if (detaching) { + internal_8(h1); + internal_8(t_1); + } + + internal_12(each_blocks, detaching); + + if (detaching) { + internal_8(each_1_anchor); + } + + if (each_1_else) each_1_else.d(detaching); + } + }; + } + + function create_fragment$4(ctx) { + var t, current; + + var box0 = new Box({ + props: { + $$slots: { default: [create_default_slot_2$1] }, + $$scope: { ctx } + }, + $$inline: true + }); + + var box1 = new Box({ + props: { + $$slots: { default: [create_default_slot$1] }, + $$scope: { ctx } + }, + $$inline: true + }); + + return { + c: function create() { + box0.$$.fragment.c(); + t = internal_17(); + box1.$$.fragment.c(); + }, + + l: function claim(nodes) { + throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); + }, + + m: function mount(target, anchor) { + internal_101(box0, target, anchor); + internal_7(target, t, anchor); + internal_101(box1, target, anchor); + current = true; + }, + + p: function update(changed, ctx) { + var box0_changes = {}; + if (changed.$$scope || changed.twofactor) box0_changes.$$scope = { changed, ctx }; + box0.$set(box0_changes); + + var box1_changes = {}; + if (changed.$$scope || changed.token) box1_changes.$$scope = { changed, ctx }; + box1.$set(box1_changes); + }, + + i: function intro(local) { + if (current) return; + box0.$$.fragment.i(local); + + box1.$$.fragment.i(local); + + current = true; + }, + + o: function outro(local) { + box0.$$.fragment.o(local); + box1.$$.fragment.o(local); + current = false; + }, + + d: function destroy(detaching) { + box0.$destroy(detaching); + + if (detaching) { + internal_8(t); + } + + box1.$destroy(detaching); + } + }; + } + + const TFATypes = new Map(); + TFATypes.set(0, "Authenticator"); + TFATypes.set(1, "Backup Codes"); + TFATypes.set(2, "YubiKey"); + TFATypes.set(3, "Push Notification"); + + function instance$4($$self, $$props, $$invalidate) { + + + let { loading = false } = $$props; + + let twofactor = []; + + async function deleteTFA(id) { + let res = await request("/api/user/twofactor/" + id, undefined, "DELETE", undefined, true); + loadTwoFactor(); + } + + async function loadTwoFactor() { + let res = await request("/api/user/twofactor", undefined, undefined, undefined, true); + $$invalidate('twofactor', twofactor = res.methods); + } + + + let token = []; + + async function revoke(id) { + let res = await request("/api/user/token/" + id, undefined, "DELETE", undefined, true); + loadToken(); + } + + async function loadToken() { + $$invalidate('loading', loading = true); + let res = await request("/api/user/token", undefined, undefined, undefined, true); + $$invalidate('token', token = res.token); + $$invalidate('loading', loading = false); + } + + loadToken(); + loadTwoFactor(); + + function click_handler({ t }) { + return deleteTFA(t.id); + } + + function click_handler_1({ t }) { + return revoke(t.id); + } + + $$self.$set = $$props => { + if ('loading' in $$props) $$invalidate('loading', loading = $$props.loading); + }; + + return { + loading, + twofactor, + deleteTFA, + token, + revoke, + click_handler, + click_handler_1 + }; + } + + class Security extends internal_104 { + constructor(options) { + super(options); + internal_102(this, options, instance$4, create_fragment$4, internal_92, ["loading"]); + } + + get loading() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set loading(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + } + + /* src/User/NavigationBar.svelte generated by Svelte v3.2.1 */ + + const file$5 = "src/User/NavigationBar.svelte"; + + function get_each_context$2(ctx, list, i) { + const child_ctx = Object.create(ctx); + child_ctx.page = list[i]; + return child_ctx; + } + + // (39:0) {#each pages as page} + function create_each_block$2(ctx) { + var div1, div0, img, img_src_value, t0, h3, t1_value = ctx.page.title, t1, t2, dispose; + + function click_handler() { + return ctx.click_handler(ctx); + } + + return { + c: function create() { + div1 = internal_13("div"); + div0 = internal_13("div"); + img = internal_13("img"); + t0 = internal_17(); + h3 = internal_13("h3"); + t1 = internal_16(t1_value); + t2 = internal_17(); + img.src = img_src_value = ctx.page.icon; + img.className = "svelte-zltjsn"; + internal_87(img, file$5, 40, 24, 777); + div0.className = "icon svelte-zltjsn"; + internal_87(div0, file$5, 40, 6, 759); + h3.className = "title svelte-zltjsn"; + internal_87(h3, file$5, 41, 6, 813); + div1.className = "container svelte-zltjsn"; + internal_87(div1, file$5, 39, 3, 698); + dispose = internal_19(div1, "click", click_handler); + }, + + m: function mount(target, anchor) { + internal_7(target, div1, anchor); + internal_6(div1, div0); + internal_6(div0, img); + internal_6(div1, t0); + internal_6(div1, h3); + internal_6(h3, t1); + internal_6(div1, t2); + }, + + p: function update(changed, new_ctx) { + ctx = new_ctx; + if ((changed.pages) && img_src_value !== (img_src_value = ctx.page.icon)) { + img.src = img_src_value; + } + + if ((changed.pages) && t1_value !== (t1_value = ctx.page.title)) { + internal_32(t1, t1_value); + } + }, + + d: function destroy(detaching) { + if (detaching) { + internal_8(div1); + } + + dispose(); + } + }; + } + + function create_fragment$5(ctx) { + var each_1_anchor; + + var each_value = ctx.pages; + + var each_blocks = []; + + for (var i = 0; i < each_value.length; i += 1) { + each_blocks[i] = create_each_block$2(get_each_context$2(ctx, each_value, i)); + } + + return { + c: function create() { + for (var i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].c(); + } + + each_1_anchor = internal_18(); + }, + + l: function claim(nodes) { + throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); + }, + + m: function mount(target, anchor) { + for (var i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].m(target, anchor); + } + + internal_7(target, each_1_anchor, anchor); + }, + + p: function update(changed, ctx) { + if (changed.pages) { + each_value = ctx.pages; + + for (var i = 0; i < each_value.length; i += 1) { + const child_ctx = get_each_context$2(ctx, each_value, i); + + if (each_blocks[i]) { + each_blocks[i].p(changed, child_ctx); + } else { + each_blocks[i] = create_each_block$2(child_ctx); + each_blocks[i].c(); + each_blocks[i].m(each_1_anchor.parentNode, each_1_anchor); + } + } + + for (; i < each_blocks.length; i += 1) { + each_blocks[i].d(1); + } + each_blocks.length = each_value.length; + } + }, + + i: internal_83, + o: internal_83, + + d: function destroy(detaching) { + internal_12(each_blocks, detaching); + + if (detaching) { + internal_8(each_1_anchor); + } + } + }; + } + + function instance$5($$self, $$props, $$invalidate) { + let { open, pages = [] } = $$props; + + function click_handler({ page }) { + return open(page.id); + } + + $$self.$set = $$props => { + if ('open' in $$props) $$invalidate('open', open = $$props.open); + if ('pages' in $$props) $$invalidate('pages', pages = $$props.pages); + }; + + return { open, pages, click_handler }; + } + + class NavigationBar extends internal_104 { + constructor(options) { + super(options); + internal_102(this, options, instance$5, create_fragment$5, internal_92, ["open", "pages"]); + + const { ctx } = this.$$; + const props = options.props || {}; + if (ctx.open === undefined && !('open' in props)) { + console.warn(" was created without expected prop 'open'"); + } + } + + get open() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set open(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + + get pages() { + throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); + } + + set pages(value) { + throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); + } + } + + /* src/User/App.svelte generated by Svelte v3.2.1 */ + + const file$6 = "src/User/App.svelte"; + + // (67:9) {#if sidebar_button} + function create_if_block_1$1(ctx) { + var button, svg, path, dispose; + + return { + c: function create() { + button = internal_13("button"); + svg = internal_15("svg"); + path = internal_15("path"); + internal_22(path, "d", "M4,10h24c1.104,0,2-0.896,2-2s-0.896-2-2-2H4C2.896,6,2,6.896,2,8S2.896,10,4,10z M28,14H4c-1.104,0-2,0.896-2,2 s0.896,2,2,2h24c1.104,0,2-0.896,2-2S29.104,14,28,14z M28,22H4c-1.104,0-2,0.896-2,2s0.896,2,2,2h24c1.104,0,2-0.896,2-2 S29.104,22,28,22z"); + internal_22(path, "class", "svelte-1ee89l3"); + internal_87(path, file$6, 68, 217, 1811); + internal_22(svg, "id", "Layer_1"); + internal_34(svg, "enable-background", "new 0 0 32 32"); + internal_22(svg, "version", "1.1"); + internal_22(svg, "viewBox", "0 0 32 32"); + internal_22(svg, "width", "32px"); + internal_22(svg, "xml:space", "preserve"); + internal_22(svg, "xmlns", "http://www.w3.org/2000/svg"); + internal_22(svg, "xmlns:xlink", "http://www.w3.org/1999/xlink"); + internal_22(svg, "class", "svelte-1ee89l3"); + internal_87(svg, file$6, 68, 12, 1606); + button.className = "svelte-1ee89l3"; + internal_87(button, file$6, 67, 9, 1537); + dispose = internal_19(button, "click", ctx.click_handler); + }, + + m: function mount(target, anchor) { + internal_7(target, button, anchor); + internal_6(button, svg); + internal_6(svg, path); + }, + + d: function destroy(detaching) { + if (detaching) { + internal_8(button); + } + + dispose(); + } + }; + } + + // (84:0) {#if loading} + function create_if_block$2(ctx) { + var div2, div1, div0; + + return { + c: function create() { + div2 = internal_13("div"); + div1 = internal_13("div"); + div0 = internal_13("div"); + div0.className = "loader svelte-1ee89l3"; + internal_87(div0, file$6, 86, 6, 2526); + div1.className = "loader_box svelte-1ee89l3"; + internal_87(div1, file$6, 85, 3, 2495); + div2.className = "loader_container svelte-1ee89l3"; + internal_87(div2, file$6, 84, 0, 2461); + }, + + m: function mount(target, anchor) { + internal_7(target, div2, anchor); + internal_6(div2, div1); + internal_6(div1, div0); + }, + + d: function destroy(detaching) { + if (detaching) { + internal_8(div2); + } + } + }; + } + + function create_fragment$6(ctx) { + var div5, div4, div0, t0, h1, t1_value = ctx.page.title, t1, t2, div1, t3, div2, updating_loading, t4, div3, t5, if_block1_anchor, current; + + var if_block0 = (ctx.sidebar_button) && create_if_block_1$1(ctx); + + var navigationbar = new NavigationBar({ + props: { + open: ctx.setPage, + pages: ctx.pages + }, + $$inline: true + }); + + function switch_instance_loading_binding(value) { + ctx.switch_instance_loading_binding.call(null, value); + updating_loading = true; + internal_64(() => updating_loading = false); + } + + var switch_value = ctx.page.component; + + function switch_props(ctx) { + let switch_instance_props = {}; + if (ctx.loading !== void 0) { + switch_instance_props.loading = ctx.loading; + } + return { + props: switch_instance_props, + $$inline: true + }; + } + + if (switch_value) { + var switch_instance = new switch_value(switch_props(ctx)); + + internal_62(() => internal_100(switch_instance, 'loading', switch_instance_loading_binding)); + } + + var if_block1 = (ctx.loading) && create_if_block$2(ctx); + + return { + c: function create() { + div5 = internal_13("div"); + div4 = internal_13("div"); + div0 = internal_13("div"); + if (if_block0) if_block0.c(); + t0 = internal_17(); + h1 = internal_13("h1"); + t1 = internal_16(t1_value); + t2 = internal_17(); + div1 = internal_13("div"); + navigationbar.$$.fragment.c(); + t3 = internal_17(); + div2 = internal_13("div"); + if (switch_instance) switch_instance.$$.fragment.c(); + t4 = internal_17(); + div3 = internal_13("div"); + t5 = internal_17(); + if (if_block1) if_block1.c(); + if_block1_anchor = internal_18(); + h1.className = "svelte-1ee89l3"; + internal_87(h1, file$6, 71, 6, 2116); + div0.className = "header svelte-1ee89l3"; + internal_87(div0, file$6, 65, 6, 1477); + div1.className = "sidebar svelte-1ee89l3"; + internal_40(div1, "sidebar-visible", ctx.sidebar_active); + internal_87(div1, file$6, 73, 6, 2157); + div2.className = "content svelte-1ee89l3"; + internal_87(div2, file$6, 76, 6, 2293); + div3.className = "footer svelte-1ee89l3"; + internal_87(div3, file$6, 79, 6, 2402); + div4.className = "container svelte-1ee89l3"; + internal_87(div4, file$6, 64, 3, 1447); + div5.className = "root svelte-1ee89l3"; + internal_40(div5, "loading", ctx.loading); + internal_87(div5, file$6, 63, 0, 1411); + }, + + l: function claim(nodes) { + throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); + }, + + m: function mount(target, anchor) { + internal_7(target, div5, anchor); + internal_6(div5, div4); + internal_6(div4, div0); + if (if_block0) if_block0.m(div0, null); + internal_6(div0, t0); + internal_6(div0, h1); + internal_6(h1, t1); + internal_6(div4, t2); + internal_6(div4, div1); + internal_101(navigationbar, div1, null); + internal_6(div4, t3); + internal_6(div4, div2); + + if (switch_instance) { + internal_101(switch_instance, div2, null); + } + + internal_6(div4, t4); + internal_6(div4, div3); + internal_7(target, t5, anchor); + if (if_block1) if_block1.m(target, anchor); + internal_7(target, if_block1_anchor, anchor); + current = true; + }, + + p: function update(changed, ctx) { + if (ctx.sidebar_button) { + if (!if_block0) { + if_block0 = create_if_block_1$1(ctx); + if_block0.c(); + if_block0.m(div0, t0); + } + } else if (if_block0) { + if_block0.d(1); + if_block0 = null; + } + + if ((!current || changed.page) && t1_value !== (t1_value = ctx.page.title)) { + internal_32(t1, t1_value); + } + + var navigationbar_changes = {}; + if (changed.setPage) navigationbar_changes.open = ctx.setPage; + if (changed.pages) navigationbar_changes.pages = ctx.pages; + navigationbar.$set(navigationbar_changes); + + if (changed.sidebar_active) { + internal_40(div1, "sidebar-visible", ctx.sidebar_active); + } + + var switch_instance_changes = {}; + if (!updating_loading && changed.loading) { + switch_instance_changes.loading = ctx.loading; + } + + if (switch_value !== (switch_value = ctx.page.component)) { + if (switch_instance) { + internal_77(); + const old_component = switch_instance; + internal_79(() => { + old_component.$destroy(); + }); + old_component.$$.fragment.o(1); + internal_78(); + } + + if (switch_value) { + switch_instance = new switch_value(switch_props(ctx)); + + internal_62(() => internal_100(switch_instance, 'loading', switch_instance_loading_binding)); + + switch_instance.$$.fragment.c(); + switch_instance.$$.fragment.i(1); + internal_101(switch_instance, div2, null); + } else { + switch_instance = null; + } + } + + else if (switch_value) { + switch_instance.$set(switch_instance_changes); + } + + if (changed.loading) { + internal_40(div5, "loading", ctx.loading); + } + + if (ctx.loading) { + if (!if_block1) { + if_block1 = create_if_block$2(ctx); + if_block1.c(); + if_block1.m(if_block1_anchor.parentNode, if_block1_anchor); + } + } else if (if_block1) { + if_block1.d(1); + if_block1 = null; + } + }, + + i: function intro(local) { + if (current) return; + navigationbar.$$.fragment.i(local); + + if (switch_instance) switch_instance.$$.fragment.i(local); + + current = true; + }, + + o: function outro(local) { + navigationbar.$$.fragment.o(local); + if (switch_instance) switch_instance.$$.fragment.o(local); + current = false; + }, + + d: function destroy(detaching) { + if (detaching) { + internal_8(div5); + } + + if (if_block0) if_block0.d(); + + navigationbar.$destroy(); + + if (switch_instance) switch_instance.$destroy(); + + if (detaching) { + internal_8(t5); + } + + if (if_block1) if_block1.d(detaching); + + if (detaching) { + internal_8(if_block1_anchor); + } + } + }; + } + + function instance$6($$self, $$props, $$invalidate) { + + + const pages = [{ + id: "account", + title: "Account", + icon: "", + component: Account + }, + { + id: "security", + title: "Security", + icon: "", + component: Security + } + ]; + + function getPage() { + let pageid = window.location.hash.slice(1); + return pages.find(e => e.id === pageid) || pages[0]; + } + + let page = getPage(); + window.addEventListener("hashchange", () => { + $$invalidate('page', page = getPage()); + }); + // $: title = pages.find(e => e.id === page).title; + + + const mq = window.matchMedia("(min-width: 45rem)"); + let sidebar_button = !mq.matches; + mq.addEventListener("change", (ev) => { + $$invalidate('sidebar_button', sidebar_button = !ev.matches); + }); + + let sidebar_active = false; + + + + function setPage(pageid) { + let pg = pages.find(e => e.id === pageid); + if (!pg) { + throw new Error("Invalid Page " + pageid); + } else { + let url = new URL(window.location.href); + url.hash = pg.id; + window.history.pushState({}, pg.title, url); + $$invalidate('page', page = getPage()); + } + + $$invalidate('sidebar_active', sidebar_active = false); + } + + + let loading = true; + + function click_handler() { + const $$result = sidebar_active = !sidebar_active; + $$invalidate('sidebar_active', sidebar_active); + return $$result; + } + + function switch_instance_loading_binding(value) { + loading = value; + $$invalidate('loading', loading); + } + + return { + pages, + page, + sidebar_button, + sidebar_active, + setPage, + loading, + click_handler, + switch_instance_loading_binding + }; + } + + class App extends internal_104 { + constructor(options) { + super(options); + internal_102(this, options, instance$6, create_fragment$6, internal_92, []); + } + } + + var app = new App({ + target: document.getElementById("content") + }); + + return app; + +}()); +//# sourceMappingURL=bundle.js.map diff --git a/public/user/bundle.js.map b/public/user/bundle.js.map new file mode 100644 index 0000000..8ec0bf5 --- /dev/null +++ b/public/user/bundle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bundle.js","sources":["../../node_modules/svelte/internal.js","../../node_modules/svelte/easing.js","../../node_modules/svelte/transition.js","../../src/User/Pages/NextIcon.svelte","../../src/User/Pages/BoxItem.svelte","../../src/cookie.ts","../../src/request.ts","../../src/User/Pages/Account.svelte","../../src/User/Pages/Security.svelte","../../src/User/NavigationBar.svelte","../../src/User/App.svelte","../../src/User/main.js"],"sourcesContent":["'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction noop() {}\n\nconst identity = x => x;\n\nfunction assign(tar, src) {\n\tfor (const k in src) tar[k] = src[k];\n\treturn tar;\n}\n\nfunction is_promise(value) {\n\treturn value && typeof value.then === 'function';\n}\n\nfunction add_location(element, file, line, column, char) {\n\telement.__svelte_meta = {\n\t\tloc: { file, line, column, char }\n\t};\n}\n\nfunction run(fn) {\n\treturn fn();\n}\n\nfunction blank_object() {\n\treturn Object.create(null);\n}\n\nfunction run_all(fns) {\n\tfns.forEach(run);\n}\n\nfunction is_function(thing) {\n\treturn typeof thing === 'function';\n}\n\nfunction safe_not_equal(a, b) {\n\treturn a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function');\n}\n\nfunction not_equal(a, b) {\n\treturn a != a ? b == b : a !== b;\n}\n\nfunction validate_store(store, name) {\n\tif (!store || typeof store.subscribe !== 'function') {\n\t\tthrow new Error(`'${name}' is not a store with a 'subscribe' method`);\n\t}\n}\n\nfunction subscribe(component, store, callback) {\n\tconst unsub = store.subscribe(callback);\n\n\tcomponent.$$.on_destroy.push(unsub.unsubscribe\n\t\t? () => unsub.unsubscribe()\n\t\t: unsub);\n}\n\nfunction create_slot(definition, ctx, fn) {\n\tif (definition) {\n\t\tconst slot_ctx = get_slot_context(definition, ctx, fn);\n\t\treturn definition[0](slot_ctx);\n\t}\n}\n\nfunction get_slot_context(definition, ctx, fn) {\n\treturn definition[1]\n\t\t? assign({}, assign(ctx.$$scope.ctx, definition[1](fn ? fn(ctx) : {})))\n\t\t: ctx.$$scope.ctx;\n}\n\nfunction get_slot_changes(definition, ctx, changed, fn) {\n\treturn definition[1]\n\t\t? assign({}, assign(ctx.$$scope.changed || {}, definition[1](fn ? fn(changed) : {})))\n\t\t: ctx.$$scope.changed || {};\n}\n\nfunction exclude_internal_props(props) {\n\tconst result = {};\n\tfor (const k in props) if (k[0] !== '$') result[k] = props[k];\n\treturn result;\n}\n\nconst tasks = new Set();\nlet running = false;\n\nfunction run_tasks() {\n\ttasks.forEach(task => {\n\t\tif (!task[0](window.performance.now())) {\n\t\t\ttasks.delete(task);\n\t\t\ttask[1]();\n\t\t}\n\t});\n\n\trunning = tasks.size > 0;\n\tif (running) requestAnimationFrame(run_tasks);\n}\n\nfunction clear_loops() {\n\t// for testing...\n\ttasks.forEach(task => tasks.delete(task));\n\trunning = false;\n}\n\nfunction loop(fn) {\n\tlet task;\n\n\tif (!running) {\n\t\trunning = true;\n\t\trequestAnimationFrame(run_tasks);\n\t}\n\n\treturn {\n\t\tpromise: new Promise(fulfil => {\n\t\t\ttasks.add(task = [fn, fulfil]);\n\t\t}),\n\t\tabort() {\n\t\t\ttasks.delete(task);\n\t\t}\n\t};\n}\n\nfunction append(target, node) {\n\ttarget.appendChild(node);\n}\n\nfunction insert(target, node, anchor) {\n\ttarget.insertBefore(node, anchor || null);\n}\n\nfunction detach(node) {\n\tnode.parentNode.removeChild(node);\n}\n\nfunction detach_between(before, after) {\n\twhile (before.nextSibling && before.nextSibling !== after) {\n\t\tbefore.parentNode.removeChild(before.nextSibling);\n\t}\n}\n\nfunction detach_before(after) {\n\twhile (after.previousSibling) {\n\t\tafter.parentNode.removeChild(after.previousSibling);\n\t}\n}\n\nfunction detach_after(before) {\n\twhile (before.nextSibling) {\n\t\tbefore.parentNode.removeChild(before.nextSibling);\n\t}\n}\n\nfunction destroy_each(iterations, detaching) {\n\tfor (let i = 0; i < iterations.length; i += 1) {\n\t\tif (iterations[i]) iterations[i].d(detaching);\n\t}\n}\n\nfunction element(name) {\n\treturn document.createElement(name);\n}\n\nfunction object_without_properties(obj, exclude) {\n\tconst target = {};\n\tfor (const k in obj) {\n\t\tif (Object.prototype.hasOwnProperty.call(obj, k) && exclude.indexOf(k) === -1) {\n\t\t\ttarget[k] = obj[k];\n\t\t}\n\t}\n\treturn target;\n}\n\nfunction svg_element(name) {\n\treturn document.createElementNS('http://www.w3.org/2000/svg', name);\n}\n\nfunction text(data) {\n\treturn document.createTextNode(data);\n}\n\nfunction space() {\n\treturn text(' ');\n}\n\nfunction empty() {\n\treturn text('');\n}\n\nfunction listen(node, event, handler, options) {\n\tnode.addEventListener(event, handler, options);\n\treturn () => node.removeEventListener(event, handler, options);\n}\n\nfunction prevent_default(fn) {\n\treturn function(event) {\n\t\tevent.preventDefault();\n\t\treturn fn.call(this, event);\n\t};\n}\n\nfunction stop_propagation(fn) {\n\treturn function(event) {\n\t\tevent.stopPropagation();\n\t\treturn fn.call(this, event);\n\t};\n}\n\nfunction attr(node, attribute, value) {\n\tif (value == null) node.removeAttribute(attribute);\n\telse node.setAttribute(attribute, value);\n}\n\nfunction set_attributes(node, attributes) {\n\tfor (const key in attributes) {\n\t\tif (key === 'style') {\n\t\t\tnode.style.cssText = attributes[key];\n\t\t} else if (key in node) {\n\t\t\tnode[key] = attributes[key];\n\t\t} else {\n\t\t\tattr(node, key, attributes[key]);\n\t\t}\n\t}\n}\n\nfunction set_custom_element_data(node, prop, value) {\n\tif (prop in node) {\n\t\tnode[prop] = value;\n\t} else {\n\t\tattr(node, prop, value);\n\t}\n}\n\nfunction xlink_attr(node, attribute, value) {\n\tnode.setAttributeNS('http://www.w3.org/1999/xlink', attribute, value);\n}\n\nfunction get_binding_group_value(group) {\n\tconst value = [];\n\tfor (let i = 0; i < group.length; i += 1) {\n\t\tif (group[i].checked) value.push(group[i].__value);\n\t}\n\treturn value;\n}\n\nfunction to_number(value) {\n\treturn value === '' ? undefined : +value;\n}\n\nfunction time_ranges_to_array(ranges) {\n\tconst array = [];\n\tfor (let i = 0; i < ranges.length; i += 1) {\n\t\tarray.push({ start: ranges.start(i), end: ranges.end(i) });\n\t}\n\treturn array;\n}\n\nfunction children(element) {\n\treturn Array.from(element.childNodes);\n}\n\nfunction claim_element(nodes, name, attributes, svg) {\n\tfor (let i = 0; i < nodes.length; i += 1) {\n\t\tconst node = nodes[i];\n\t\tif (node.nodeName === name) {\n\t\t\tfor (let j = 0; j < node.attributes.length; j += 1) {\n\t\t\t\tconst attribute = node.attributes[j];\n\t\t\t\tif (!attributes[attribute.name]) node.removeAttribute(attribute.name);\n\t\t\t}\n\t\t\treturn nodes.splice(i, 1)[0]; // TODO strip unwanted attributes\n\t\t}\n\t}\n\n\treturn svg ? svg_element(name) : element(name);\n}\n\nfunction claim_text(nodes, data) {\n\tfor (let i = 0; i < nodes.length; i += 1) {\n\t\tconst node = nodes[i];\n\t\tif (node.nodeType === 3) {\n\t\t\tnode.data = data;\n\t\t\treturn nodes.splice(i, 1)[0];\n\t\t}\n\t}\n\n\treturn text(data);\n}\n\nfunction set_data(text, data) {\n\tdata = '' + data;\n\tif (text.data !== data) text.data = data;\n}\n\nfunction set_input_type(input, type) {\n\ttry {\n\t\tinput.type = type;\n\t} catch (e) {\n\t\t// do nothing\n\t}\n}\n\nfunction set_style(node, key, value) {\n\tnode.style.setProperty(key, value);\n}\n\nfunction select_option(select, value) {\n\tfor (let i = 0; i < select.options.length; i += 1) {\n\t\tconst option = select.options[i];\n\n\t\tif (option.__value === value) {\n\t\t\toption.selected = true;\n\t\t\treturn;\n\t\t}\n\t}\n}\n\nfunction select_options(select, value) {\n\tfor (let i = 0; i < select.options.length; i += 1) {\n\t\tconst option = select.options[i];\n\t\toption.selected = ~value.indexOf(option.__value);\n\t}\n}\n\nfunction select_value(select) {\n\tconst selected_option = select.querySelector(':checked') || select.options[0];\n\treturn selected_option && selected_option.__value;\n}\n\nfunction select_multiple_value(select) {\n\treturn [].map.call(select.querySelectorAll(':checked'), option => option.__value);\n}\n\nfunction add_resize_listener(element, fn) {\n\tif (getComputedStyle(element).position === 'static') {\n\t\telement.style.position = 'relative';\n\t}\n\n\tconst object = document.createElement('object');\n\tobject.setAttribute('style', 'display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; pointer-events: none; z-index: -1;');\n\tobject.type = 'text/html';\n\n\tlet win;\n\n\tobject.onload = () => {\n\t\twin = object.contentDocument.defaultView;\n\t\twin.addEventListener('resize', fn);\n\t};\n\n\tif (/Trident/.test(navigator.userAgent)) {\n\t\telement.appendChild(object);\n\t\tobject.data = 'about:blank';\n\t} else {\n\t\tobject.data = 'about:blank';\n\t\telement.appendChild(object);\n\t}\n\n\treturn {\n\t\tcancel: () => {\n\t\t\twin && win.removeEventListener && win.removeEventListener('resize', fn);\n\t\t\telement.removeChild(object);\n\t\t}\n\t};\n}\n\nfunction toggle_class(element, name, toggle) {\n\telement.classList[toggle ? 'add' : 'remove'](name);\n}\n\nfunction custom_event(type, detail) {\n\tconst e = document.createEvent('CustomEvent');\n\te.initCustomEvent(type, false, false, detail);\n\treturn e;\n}\n\nlet stylesheet;\nlet active = 0;\nlet current_rules = {};\n\n// https://github.com/darkskyapp/string-hash/blob/master/index.js\nfunction hash(str) {\n\tlet hash = 5381;\n\tlet i = str.length;\n\n\twhile (i--) hash = ((hash << 5) - hash) ^ str.charCodeAt(i);\n\treturn hash >>> 0;\n}\n\nfunction create_rule(node, a, b, duration, delay, ease, fn, uid = 0) {\n\tconst step = 16.666 / duration;\n\tlet keyframes = '{\\n';\n\n\tfor (let p = 0; p <= 1; p += step) {\n\t\tconst t = a + (b - a) * ease(p);\n\t\tkeyframes += p * 100 + `%{${fn(t, 1 - t)}}\\n`;\n\t}\n\n\tconst rule = keyframes + `100% {${fn(b, 1 - b)}}\\n}`;\n\tconst name = `__svelte_${hash(rule)}_${uid}`;\n\n\tif (!current_rules[name]) {\n\t\tif (!stylesheet) {\n\t\t\tconst style = element('style');\n\t\t\tdocument.head.appendChild(style);\n\t\t\tstylesheet = style.sheet;\n\t\t}\n\n\t\tcurrent_rules[name] = true;\n\t\tstylesheet.insertRule(`@keyframes ${name} ${rule}`, stylesheet.cssRules.length);\n\t}\n\n\tconst animation = node.style.animation || '';\n\tnode.style.animation = `${animation ? `${animation}, ` : ``}${name} ${duration}ms linear ${delay}ms 1 both`;\n\n\tactive += 1;\n\treturn name;\n}\n\nfunction delete_rule(node, name) {\n\tnode.style.animation = (node.style.animation || '')\n\t\t.split(', ')\n\t\t.filter(name\n\t\t\t? anim => anim.indexOf(name) < 0 // remove specific animation\n\t\t\t: anim => anim.indexOf('__svelte') === -1 // remove all Svelte animations\n\t\t)\n\t\t.join(', ');\n\n\tif (name && !--active) clear_rules();\n}\n\nfunction clear_rules() {\n\trequestAnimationFrame(() => {\n\t\tif (active) return;\n\t\tlet i = stylesheet.cssRules.length;\n\t\twhile (i--) stylesheet.deleteRule(i);\n\t\tcurrent_rules = {};\n\t});\n}\n\nfunction create_animation(node, from, fn, params) {\n\tif (!from) return noop;\n\n\tconst to = node.getBoundingClientRect();\n\tif (from.left === to.left && from.right === to.right && from.top === to.top && from.bottom === to.bottom) return noop;\n\n\tconst {\n\t\tdelay = 0,\n\t\tduration = 300,\n\t\teasing = identity,\n\t\tstart: start_time = window.performance.now() + delay,\n\t\tend = start_time + duration,\n\t\ttick = noop,\n\t\tcss\n\t} = fn(node, { from, to }, params);\n\n\tlet running = true;\n\tlet started = false;\n\tlet name;\n\n\tconst css_text = node.style.cssText;\n\n\tfunction start() {\n\t\tif (css) {\n\t\t\tif (delay) node.style.cssText = css_text; // TODO create delayed animation instead?\n\t\t\tname = create_rule(node, 0, 1, duration, 0, easing, css);\n\t\t}\n\n\t\tstarted = true;\n\t}\n\n\tfunction stop() {\n\t\tif (css) delete_rule(node, name);\n\t\trunning = false;\n\t}\n\n\tloop(now => {\n\t\tif (!started && now >= start_time) {\n\t\t\tstart();\n\t\t}\n\n\t\tif (started && now >= end) {\n\t\t\ttick(1, 0);\n\t\t\tstop();\n\t\t}\n\n\t\tif (!running) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (started) {\n\t\t\tconst p = now - start_time;\n\t\t\tconst t = 0 + 1 * easing(p / duration);\n\t\t\ttick(t, 1 - t);\n\t\t}\n\n\t\treturn true;\n\t});\n\n\tif (delay) {\n\t\tif (css) node.style.cssText += css(0, 1);\n\t} else {\n\t\tstart();\n\t}\n\n\ttick(0, 1);\n\n\treturn stop;\n}\n\nfunction fix_position(node) {\n\tconst style = getComputedStyle(node);\n\n\tif (style.position !== 'absolute' && style.position !== 'fixed') {\n\t\tconst { width, height } = style;\n\t\tconst a = node.getBoundingClientRect();\n\t\tnode.style.position = 'absolute';\n\t\tnode.style.width = width;\n\t\tnode.style.height = height;\n\t\tconst b = node.getBoundingClientRect();\n\n\t\tif (a.left !== b.left || a.top !== b.top) {\n\t\t\tconst style = getComputedStyle(node);\n\t\t\tconst transform = style.transform === 'none' ? '' : style.transform;\n\n\t\t\tnode.style.transform = `${transform} translate(${a.left - b.left}px, ${a.top - b.top}px)`;\n\t\t}\n\t}\n}\n\nfunction set_current_component(component) {\n\texports.current_component = component;\n}\n\nfunction get_current_component() {\n\tif (!exports.current_component) throw new Error(`Function called outside component initialization`);\n\treturn exports.current_component;\n}\n\nfunction beforeUpdate(fn) {\n\tget_current_component().$$.before_render.push(fn);\n}\n\nfunction onMount(fn) {\n\tget_current_component().$$.on_mount.push(fn);\n}\n\nfunction afterUpdate(fn) {\n\tget_current_component().$$.after_render.push(fn);\n}\n\nfunction onDestroy(fn) {\n\tget_current_component().$$.on_destroy.push(fn);\n}\n\nfunction createEventDispatcher() {\n\tconst component = exports.current_component;\n\n\treturn (type, detail) => {\n\t\tconst callbacks = component.$$.callbacks[type];\n\n\t\tif (callbacks) {\n\t\t\t// TODO are there situations where events could be dispatched\n\t\t\t// in a server (non-DOM) environment?\n\t\t\tconst event = custom_event(type, detail);\n\t\t\tcallbacks.slice().forEach(fn => {\n\t\t\t\tfn.call(component, event);\n\t\t\t});\n\t\t}\n\t};\n}\n\nfunction setContext(key, context) {\n\tget_current_component().$$.context.set(key, context);\n}\n\nfunction getContext(key) {\n\treturn get_current_component().$$.context.get(key);\n}\n\n// TODO figure out if we still want to support\n// shorthand events, or if we want to implement\n// a real bubbling mechanism\nfunction bubble(component, event) {\n\tconst callbacks = component.$$.callbacks[event.type];\n\n\tif (callbacks) {\n\t\tcallbacks.slice().forEach(fn => fn(event));\n\t}\n}\n\nconst dirty_components = [];\nconst intros = { enabled: false };\n\nconst resolved_promise = Promise.resolve();\nlet update_scheduled = false;\nconst binding_callbacks = [];\nconst render_callbacks = [];\nconst flush_callbacks = [];\n\nfunction schedule_update() {\n\tif (!update_scheduled) {\n\t\tupdate_scheduled = true;\n\t\tresolved_promise.then(flush);\n\t}\n}\n\nfunction tick() {\n\tschedule_update();\n\treturn resolved_promise;\n}\n\nfunction add_binding_callback(fn) {\n\tbinding_callbacks.push(fn);\n}\n\nfunction add_render_callback(fn) {\n\trender_callbacks.push(fn);\n}\n\nfunction add_flush_callback(fn) {\n\tflush_callbacks.push(fn);\n}\n\nfunction flush() {\n\tconst seen_callbacks = new Set();\n\n\tdo {\n\t\t// first, call beforeUpdate functions\n\t\t// and update components\n\t\twhile (dirty_components.length) {\n\t\t\tconst component = dirty_components.shift();\n\t\t\tset_current_component(component);\n\t\t\tupdate(component.$$);\n\t\t}\n\n\t\twhile (binding_callbacks.length) binding_callbacks.shift()();\n\n\t\t// then, once components are updated, call\n\t\t// afterUpdate functions. This may cause\n\t\t// subsequent updates...\n\t\twhile (render_callbacks.length) {\n\t\t\tconst callback = render_callbacks.pop();\n\t\t\tif (!seen_callbacks.has(callback)) {\n\t\t\t\tcallback();\n\n\t\t\t\t// ...so guard against infinite loops\n\t\t\t\tseen_callbacks.add(callback);\n\t\t\t}\n\t\t}\n\t} while (dirty_components.length);\n\n\twhile (flush_callbacks.length) {\n\t\tflush_callbacks.pop()();\n\t}\n\n\tupdate_scheduled = false;\n}\n\nfunction update($$) {\n\tif ($$.fragment) {\n\t\t$$.update($$.dirty);\n\t\trun_all($$.before_render);\n\t\t$$.fragment.p($$.dirty, $$.ctx);\n\t\t$$.dirty = null;\n\n\t\t$$.after_render.forEach(add_render_callback);\n\t}\n}\n\nlet promise;\n\nfunction wait() {\n\tif (!promise) {\n\t\tpromise = Promise.resolve();\n\t\tpromise.then(() => {\n\t\t\tpromise = null;\n\t\t});\n\t}\n\n\treturn promise;\n}\n\nfunction dispatch(node, direction, kind) {\n\tnode.dispatchEvent(custom_event(`${direction ? 'intro' : 'outro'}${kind}`));\n}\n\nlet outros;\n\nfunction group_outros() {\n\toutros = {\n\t\tremaining: 0,\n\t\tcallbacks: []\n\t};\n}\n\nfunction check_outros() {\n\tif (!outros.remaining) {\n\t\trun_all(outros.callbacks);\n\t}\n}\n\nfunction on_outro(callback) {\n\toutros.callbacks.push(callback);\n}\n\nfunction create_in_transition(node, fn, params) {\n\tlet config = fn(node, params);\n\tlet running = false;\n\tlet animation_name;\n\tlet task;\n\tlet uid = 0;\n\n\tfunction cleanup() {\n\t\tif (animation_name) delete_rule(node, animation_name);\n\t}\n\n\tfunction go() {\n\t\tconst {\n\t\t\tdelay = 0,\n\t\t\tduration = 300,\n\t\t\teasing = identity,\n\t\t\ttick: tick$$1 = noop,\n\t\t\tcss\n\t\t} = config;\n\n\t\tif (css) animation_name = create_rule(node, 0, 1, duration, delay, easing, css, uid++);\n\t\ttick$$1(0, 1);\n\n\t\tconst start_time = window.performance.now() + delay;\n\t\tconst end_time = start_time + duration;\n\n\t\tif (task) task.abort();\n\t\trunning = true;\n\n\t\ttask = loop(now => {\n\t\t\tif (running) {\n\t\t\t\tif (now >= end_time) {\n\t\t\t\t\ttick$$1(1, 0);\n\t\t\t\t\tcleanup();\n\t\t\t\t\treturn running = false;\n\t\t\t\t}\n\n\t\t\t\tif (now >= start_time) {\n\t\t\t\t\tconst t = easing((now - start_time) / duration);\n\t\t\t\t\ttick$$1(t, 1 - t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn running;\n\t\t});\n\t}\n\n\tlet started = false;\n\n\treturn {\n\t\tstart() {\n\t\t\tif (started) return;\n\n\t\t\tdelete_rule(node);\n\n\t\t\tif (typeof config === 'function') {\n\t\t\t\tconfig = config();\n\t\t\t\twait().then(go);\n\t\t\t} else {\n\t\t\t\tgo();\n\t\t\t}\n\t\t},\n\n\t\tinvalidate() {\n\t\t\tstarted = false;\n\t\t},\n\n\t\tend() {\n\t\t\tif (running) {\n\t\t\t\tcleanup();\n\t\t\t\trunning = false;\n\t\t\t}\n\t\t}\n\t};\n}\n\nfunction create_out_transition(node, fn, params) {\n\tlet config = fn(node, params);\n\tlet running = true;\n\tlet animation_name;\n\n\tconst group = outros;\n\n\tgroup.remaining += 1;\n\n\tfunction go() {\n\t\tconst {\n\t\t\tdelay = 0,\n\t\t\tduration = 300,\n\t\t\teasing = identity,\n\t\t\ttick: tick$$1 = noop,\n\t\t\tcss\n\t\t} = config;\n\n\t\tif (css) animation_name = create_rule(node, 1, 0, duration, delay, easing, css);\n\n\t\tconst start_time = window.performance.now() + delay;\n\t\tconst end_time = start_time + duration;\n\n\t\tloop(now => {\n\t\t\tif (running) {\n\t\t\t\tif (now >= end_time) {\n\t\t\t\t\ttick$$1(0, 1);\n\n\t\t\t\t\tif (!--group.remaining) {\n\t\t\t\t\t\t// this will result in `end()` being called,\n\t\t\t\t\t\t// so we don't need to clean up here\n\t\t\t\t\t\trun_all(group.callbacks);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tif (now >= start_time) {\n\t\t\t\t\tconst t = easing((now - start_time) / duration);\n\t\t\t\t\ttick$$1(1 - t, t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn running;\n\t\t});\n\t}\n\n\tif (typeof config === 'function') {\n\t\twait().then(() => {\n\t\t\tconfig = config();\n\t\t\tgo();\n\t\t});\n\t} else {\n\t\tgo();\n\t}\n\n\treturn {\n\t\tend(reset) {\n\t\t\tif (reset && config.tick) {\n\t\t\t\tconfig.tick(1, 0);\n\t\t\t}\n\n\t\t\tif (running) {\n\t\t\t\tif (animation_name) delete_rule(node, animation_name);\n\t\t\t\trunning = false;\n\t\t\t}\n\t\t}\n\t};\n}\n\nfunction create_bidirectional_transition(node, fn, params, intro) {\n\tlet config = fn(node, params);\n\n\tlet t = intro ? 0 : 1;\n\n\tlet running_program = null;\n\tlet pending_program = null;\n\tlet animation_name = null;\n\n\tfunction clear_animation() {\n\t\tif (animation_name) delete_rule(node, animation_name);\n\t}\n\n\tfunction init(program, duration) {\n\t\tconst d = program.b - t;\n\t\tduration *= Math.abs(d);\n\n\t\treturn {\n\t\t\ta: t,\n\t\t\tb: program.b,\n\t\t\td,\n\t\t\tduration,\n\t\t\tstart: program.start,\n\t\t\tend: program.start + duration,\n\t\t\tgroup: program.group\n\t\t};\n\t}\n\n\tfunction go(b) {\n\t\tconst {\n\t\t\tdelay = 0,\n\t\t\tduration = 300,\n\t\t\teasing = identity,\n\t\t\ttick: tick$$1 = noop,\n\t\t\tcss\n\t\t} = config;\n\n\t\tconst program = {\n\t\t\tstart: window.performance.now() + delay,\n\t\t\tb\n\t\t};\n\n\t\tif (!b) {\n\t\t\tprogram.group = outros;\n\t\t\toutros.remaining += 1;\n\t\t}\n\n\t\tif (running_program) {\n\t\t\tpending_program = program;\n\t\t} else {\n\t\t\t// if this is an intro, and there's a delay, we need to do\n\t\t\t// an initial tick and/or apply CSS animation immediately\n\t\t\tif (css) {\n\t\t\t\tclear_animation();\n\t\t\t\tanimation_name = create_rule(node, t, b, duration, delay, easing, css);\n\t\t\t}\n\n\t\t\tif (b) tick$$1(0, 1);\n\n\t\t\trunning_program = init(program, duration);\n\t\t\tadd_render_callback(() => dispatch(node, b, 'start'));\n\n\t\t\tloop(now => {\n\t\t\t\tif (pending_program && now > pending_program.start) {\n\t\t\t\t\trunning_program = init(pending_program, duration);\n\t\t\t\t\tpending_program = null;\n\n\t\t\t\t\tdispatch(node, running_program.b, 'start');\n\n\t\t\t\t\tif (css) {\n\t\t\t\t\t\tclear_animation();\n\t\t\t\t\t\tanimation_name = create_rule(node, t, running_program.b, running_program.duration, 0, easing, config.css);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (running_program) {\n\t\t\t\t\tif (now >= running_program.end) {\n\t\t\t\t\t\ttick$$1(t = running_program.b, 1 - t);\n\t\t\t\t\t\tdispatch(node, running_program.b, 'end');\n\n\t\t\t\t\t\tif (!pending_program) {\n\t\t\t\t\t\t\t// we're done\n\t\t\t\t\t\t\tif (running_program.b) {\n\t\t\t\t\t\t\t\t// intro — we can tidy up immediately\n\t\t\t\t\t\t\t\tclear_animation();\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t// outro — needs to be coordinated\n\t\t\t\t\t\t\t\tif (!--running_program.group.remaining) run_all(running_program.group.callbacks);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\trunning_program = null;\n\t\t\t\t\t}\n\n\t\t\t\t\telse if (now >= running_program.start) {\n\t\t\t\t\t\tconst p = now - running_program.start;\n\t\t\t\t\t\tt = running_program.a + running_program.d * easing(p / running_program.duration);\n\t\t\t\t\t\ttick$$1(t, 1 - t);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn !!(running_program || pending_program);\n\t\t\t});\n\t\t}\n\t}\n\n\treturn {\n\t\trun(b) {\n\t\t\tif (typeof config === 'function') {\n\t\t\t\twait().then(() => {\n\t\t\t\t\tconfig = config();\n\t\t\t\t\tgo(b);\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tgo(b);\n\t\t\t}\n\t\t},\n\n\t\tend() {\n\t\t\tclear_animation();\n\t\t\trunning_program = pending_program = null;\n\t\t}\n\t};\n}\n\nfunction handle_promise(promise, info) {\n\tconst token = info.token = {};\n\n\tfunction update(type, index, key, value) {\n\t\tif (info.token !== token) return;\n\n\t\tinfo.resolved = key && { [key]: value };\n\n\t\tconst child_ctx = assign(assign({}, info.ctx), info.resolved);\n\t\tconst block = type && (info.current = type)(child_ctx);\n\n\t\tif (info.block) {\n\t\t\tif (info.blocks) {\n\t\t\t\tinfo.blocks.forEach((block, i) => {\n\t\t\t\t\tif (i !== index && block) {\n\t\t\t\t\t\tgroup_outros();\n\t\t\t\t\t\ton_outro(() => {\n\t\t\t\t\t\t\tblock.d(1);\n\t\t\t\t\t\t\tinfo.blocks[i] = null;\n\t\t\t\t\t\t});\n\t\t\t\t\t\tblock.o(1);\n\t\t\t\t\t\tcheck_outros();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tinfo.block.d(1);\n\t\t\t}\n\n\t\t\tblock.c();\n\t\t\tif (block.i) block.i(1);\n\t\t\tblock.m(info.mount(), info.anchor);\n\n\t\t\tflush();\n\t\t}\n\n\t\tinfo.block = block;\n\t\tif (info.blocks) info.blocks[index] = block;\n\t}\n\n\tif (is_promise(promise)) {\n\t\tpromise.then(value => {\n\t\t\tupdate(info.then, 1, info.value, value);\n\t\t}, error => {\n\t\t\tupdate(info.catch, 2, info.error, error);\n\t\t});\n\n\t\t// if we previously had a then/catch block, destroy it\n\t\tif (info.current !== info.pending) {\n\t\t\tupdate(info.pending, 0);\n\t\t\treturn true;\n\t\t}\n\t} else {\n\t\tif (info.current !== info.then) {\n\t\t\tupdate(info.then, 1, info.value, promise);\n\t\t\treturn true;\n\t\t}\n\n\t\tinfo.resolved = { [info.value]: promise };\n\t}\n}\n\nfunction destroy_block(block, lookup) {\n\tblock.d(1);\n\tlookup.delete(block.key);\n}\n\nfunction outro_and_destroy_block(block, lookup) {\n\ton_outro(() => {\n\t\tdestroy_block(block, lookup);\n\t});\n\n\tblock.o(1);\n}\n\nfunction fix_and_outro_and_destroy_block(block, lookup) {\n\tblock.f();\n\toutro_and_destroy_block(block, lookup);\n}\n\nfunction update_keyed_each(old_blocks, changed, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block, next, get_context) {\n\tlet o = old_blocks.length;\n\tlet n = list.length;\n\n\tlet i = o;\n\tconst old_indexes = {};\n\twhile (i--) old_indexes[old_blocks[i].key] = i;\n\n\tconst new_blocks = [];\n\tconst new_lookup = new Map();\n\tconst deltas = new Map();\n\n\ti = n;\n\twhile (i--) {\n\t\tconst child_ctx = get_context(ctx, list, i);\n\t\tconst key = get_key(child_ctx);\n\t\tlet block = lookup.get(key);\n\n\t\tif (!block) {\n\t\t\tblock = create_each_block(key, child_ctx);\n\t\t\tblock.c();\n\t\t} else if (dynamic) {\n\t\t\tblock.p(changed, child_ctx);\n\t\t}\n\n\t\tnew_lookup.set(key, new_blocks[i] = block);\n\n\t\tif (key in old_indexes) deltas.set(key, Math.abs(i - old_indexes[key]));\n\t}\n\n\tconst will_move = new Set();\n\tconst did_move = new Set();\n\n\tfunction insert(block) {\n\t\tif (block.i) block.i(1);\n\t\tblock.m(node, next);\n\t\tlookup.set(block.key, block);\n\t\tnext = block.first;\n\t\tn--;\n\t}\n\n\twhile (o && n) {\n\t\tconst new_block = new_blocks[n - 1];\n\t\tconst old_block = old_blocks[o - 1];\n\t\tconst new_key = new_block.key;\n\t\tconst old_key = old_block.key;\n\n\t\tif (new_block === old_block) {\n\t\t\t// do nothing\n\t\t\tnext = new_block.first;\n\t\t\to--;\n\t\t\tn--;\n\t\t}\n\n\t\telse if (!new_lookup.has(old_key)) {\n\t\t\t// remove old block\n\t\t\tdestroy(old_block, lookup);\n\t\t\to--;\n\t\t}\n\n\t\telse if (!lookup.has(new_key) || will_move.has(new_key)) {\n\t\t\tinsert(new_block);\n\t\t}\n\n\t\telse if (did_move.has(old_key)) {\n\t\t\to--;\n\n\t\t} else if (deltas.get(new_key) > deltas.get(old_key)) {\n\t\t\tdid_move.add(new_key);\n\t\t\tinsert(new_block);\n\n\t\t} else {\n\t\t\twill_move.add(old_key);\n\t\t\to--;\n\t\t}\n\t}\n\n\twhile (o--) {\n\t\tconst old_block = old_blocks[o];\n\t\tif (!new_lookup.has(old_block.key)) destroy(old_block, lookup);\n\t}\n\n\twhile (n) insert(new_blocks[n - 1]);\n\n\treturn new_blocks;\n}\n\nfunction measure(blocks) {\n\tconst rects = {};\n\tlet i = blocks.length;\n\twhile (i--) rects[blocks[i].key] = blocks[i].node.getBoundingClientRect();\n\treturn rects;\n}\n\nfunction get_spread_update(levels, updates) {\n\tconst update = {};\n\n\tconst to_null_out = {};\n\tconst accounted_for = { $$scope: 1 };\n\n\tlet i = levels.length;\n\twhile (i--) {\n\t\tconst o = levels[i];\n\t\tconst n = updates[i];\n\n\t\tif (n) {\n\t\t\tfor (const key in o) {\n\t\t\t\tif (!(key in n)) to_null_out[key] = 1;\n\t\t\t}\n\n\t\t\tfor (const key in n) {\n\t\t\t\tif (!accounted_for[key]) {\n\t\t\t\t\tupdate[key] = n[key];\n\t\t\t\t\taccounted_for[key] = 1;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlevels[i] = n;\n\t\t} else {\n\t\t\tfor (const key in o) {\n\t\t\t\taccounted_for[key] = 1;\n\t\t\t}\n\t\t}\n\t}\n\n\tfor (const key in to_null_out) {\n\t\tif (!(key in update)) update[key] = undefined;\n\t}\n\n\treturn update;\n}\n\nconst invalid_attribute_name_character = /[\\s'\">/=\\u{FDD0}-\\u{FDEF}\\u{FFFE}\\u{FFFF}\\u{1FFFE}\\u{1FFFF}\\u{2FFFE}\\u{2FFFF}\\u{3FFFE}\\u{3FFFF}\\u{4FFFE}\\u{4FFFF}\\u{5FFFE}\\u{5FFFF}\\u{6FFFE}\\u{6FFFF}\\u{7FFFE}\\u{7FFFF}\\u{8FFFE}\\u{8FFFF}\\u{9FFFE}\\u{9FFFF}\\u{AFFFE}\\u{AFFFF}\\u{BFFFE}\\u{BFFFF}\\u{CFFFE}\\u{CFFFF}\\u{DFFFE}\\u{DFFFF}\\u{EFFFE}\\u{EFFFF}\\u{FFFFE}\\u{FFFFF}\\u{10FFFE}\\u{10FFFF}]/u;\n// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n// https://infra.spec.whatwg.org/#noncharacter\n\nfunction spread(args) {\n\tconst attributes = Object.assign({}, ...args);\n\tlet str = '';\n\n\tObject.keys(attributes).forEach(name => {\n\t\tif (invalid_attribute_name_character.test(name)) return;\n\n\t\tconst value = attributes[name];\n\t\tif (value === undefined) return;\n\t\tif (value === true) str += \" \" + name;\n\n\t\tconst escaped = String(value)\n\t\t\t.replace(/\"/g, '"')\n\t\t\t.replace(/'/g, ''');\n\n\t\tstr += \" \" + name + \"=\" + JSON.stringify(escaped);\n\t});\n\n\treturn str;\n}\n\nconst escaped = {\n\t'\"': '"',\n\t\"'\": ''',\n\t'&': '&',\n\t'<': '<',\n\t'>': '>'\n};\n\nfunction escape(html) {\n\treturn String(html).replace(/[\"'&<>]/g, match => escaped[match]);\n}\n\nfunction each(items, fn) {\n\tlet str = '';\n\tfor (let i = 0; i < items.length; i += 1) {\n\t\tstr += fn(items[i], i);\n\t}\n\treturn str;\n}\n\nconst missing_component = {\n\t$$render: () => ''\n};\n\nfunction validate_component(component, name) {\n\tif (!component || !component.$$render) {\n\t\tif (name === 'svelte:component') name += ' this={...}';\n\t\tthrow new Error(`<${name}> is not a valid SSR component. You may need to review your build config to ensure that dependencies are compiled, rather than imported as pre-compiled modules`);\n\t}\n\n\treturn component;\n}\n\nfunction debug(file, line, column, values) {\n\tconsole.log(`{@debug} ${file ? file + ' ' : ''}(${line}:${column})`); // eslint-disable-line no-console\n\tconsole.log(values); // eslint-disable-line no-console\n\treturn '';\n}\n\nlet on_destroy;\n\nfunction create_ssr_component(fn) {\n\tfunction $$render(result, props, bindings, slots) {\n\t\tconst parent_component = exports.current_component;\n\n\t\tconst $$ = {\n\t\t\ton_destroy,\n\t\t\tcontext: new Map(parent_component ? parent_component.$$.context : []),\n\n\t\t\t// these will be immediately discarded\n\t\t\ton_mount: [],\n\t\t\tbefore_render: [],\n\t\t\tafter_render: [],\n\t\t\tcallbacks: blank_object()\n\t\t};\n\n\t\tset_current_component({ $$ });\n\n\t\tconst html = fn(result, props, bindings, slots);\n\n\t\tset_current_component(parent_component);\n\t\treturn html;\n\t}\n\n\treturn {\n\t\trender: (props = {}, options = {}) => {\n\t\t\ton_destroy = [];\n\n\t\t\tconst result = { head: '', css: new Set() };\n\t\t\tconst html = $$render(result, props, {}, options);\n\n\t\t\trun_all(on_destroy);\n\n\t\t\treturn {\n\t\t\t\thtml,\n\t\t\t\tcss: {\n\t\t\t\t\tcode: Array.from(result.css).map(css => css.code).join('\\n'),\n\t\t\t\t\tmap: null // TODO\n\t\t\t\t},\n\t\t\t\thead: result.head\n\t\t\t};\n\t\t},\n\n\t\t$$render\n\t};\n}\n\nfunction get_store_value(store) {\n\tlet value;\n\tstore.subscribe(_ => value = _)();\n\treturn value;\n}\n\nfunction bind(component, name, callback) {\n\tif (component.$$.props.indexOf(name) === -1) return;\n\tcomponent.$$.bound[name] = callback;\n\tcallback(component.$$.ctx[name]);\n}\n\nfunction mount_component(component, target, anchor) {\n\tconst { fragment, on_mount, on_destroy, after_render } = component.$$;\n\n\tfragment.m(target, anchor);\n\n\t// onMount happens after the initial afterUpdate. Because\n\t// afterUpdate callbacks happen in reverse order (inner first)\n\t// we schedule onMount callbacks before afterUpdate callbacks\n\tadd_render_callback(() => {\n\t\tconst new_on_destroy = on_mount.map(run).filter(is_function);\n\t\tif (on_destroy) {\n\t\t\ton_destroy.push(...new_on_destroy);\n\t\t} else {\n\t\t\t// Edge case - component was destroyed immediately,\n\t\t\t// most likely as a result of a binding initialising\n\t\t\trun_all(new_on_destroy);\n\t\t}\n\t\tcomponent.$$.on_mount = [];\n\t});\n\n\tafter_render.forEach(add_render_callback);\n}\n\nfunction destroy(component, detaching) {\n\tif (component.$$) {\n\t\trun_all(component.$$.on_destroy);\n\t\tcomponent.$$.fragment.d(detaching);\n\n\t\t// TODO null out other refs, including component.$$ (but need to\n\t\t// preserve final state?)\n\t\tcomponent.$$.on_destroy = component.$$.fragment = null;\n\t\tcomponent.$$.ctx = {};\n\t}\n}\n\nfunction make_dirty(component, key) {\n\tif (!component.$$.dirty) {\n\t\tdirty_components.push(component);\n\t\tschedule_update();\n\t\tcomponent.$$.dirty = {};\n\t}\n\tcomponent.$$.dirty[key] = true;\n}\n\nfunction init(component, options, instance, create_fragment, not_equal$$1, prop_names) {\n\tconst parent_component = exports.current_component;\n\tset_current_component(component);\n\n\tconst props = options.props || {};\n\n\tconst $$ = component.$$ = {\n\t\tfragment: null,\n\t\tctx: null,\n\n\t\t// state\n\t\tprops: prop_names,\n\t\tupdate: noop,\n\t\tnot_equal: not_equal$$1,\n\t\tbound: blank_object(),\n\n\t\t// lifecycle\n\t\ton_mount: [],\n\t\ton_destroy: [],\n\t\tbefore_render: [],\n\t\tafter_render: [],\n\t\tcontext: new Map(parent_component ? parent_component.$$.context : []),\n\n\t\t// everything else\n\t\tcallbacks: blank_object(),\n\t\tdirty: null\n\t};\n\n\tlet ready = false;\n\n\t$$.ctx = instance\n\t\t? instance(component, props, (key, value) => {\n\t\t\tif ($$.ctx && not_equal$$1($$.ctx[key], $$.ctx[key] = value)) {\n\t\t\t\tif ($$.bound[key]) $$.bound[key](value);\n\t\t\t\tif (ready) make_dirty(component, key);\n\t\t\t}\n\t\t})\n\t\t: props;\n\n\t$$.update();\n\tready = true;\n\trun_all($$.before_render);\n\t$$.fragment = create_fragment($$.ctx);\n\n\tif (options.target) {\n\t\tif (options.hydrate) {\n\t\t\t$$.fragment.l(children(options.target));\n\t\t} else {\n\t\t\t$$.fragment.c();\n\t\t}\n\n\t\tif (options.intro && component.$$.fragment.i) component.$$.fragment.i();\n\t\tmount_component(component, options.target, options.anchor);\n\t\tflush();\n\t}\n\n\tset_current_component(parent_component);\n}\nif (typeof HTMLElement !== 'undefined') {\n\texports.SvelteElement = class extends HTMLElement {\n\t\tconstructor() {\n\t\t\tsuper();\n\t\t\tthis.attachShadow({ mode: 'open' });\n\t\t}\n\n\t\tconnectedCallback() {\n\t\t\tfor (const key in this.$$.slotted) {\n\t\t\t\tthis.appendChild(this.$$.slotted[key]);\n\t\t\t}\n\t\t}\n\n\t\tattributeChangedCallback(attr$$1, oldValue, newValue) {\n\t\t\tthis[attr$$1] = newValue;\n\t\t}\n\n\t\t$destroy() {\n\t\t\tdestroy(this, true);\n\t\t\tthis.$destroy = noop;\n\t\t}\n\n\t\t$on(type, callback) {\n\t\t\t// TODO should this delegate to addEventListener?\n\t\t\tconst callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n\t\t\tcallbacks.push(callback);\n\n\t\t\treturn () => {\n\t\t\t\tconst index = callbacks.indexOf(callback);\n\t\t\t\tif (index !== -1) callbacks.splice(index, 1);\n\t\t\t};\n\t\t}\n\n\t\t$set() {\n\t\t\t// overridden by instance, if it has props\n\t\t}\n\t};\n}\n\nclass SvelteComponent {\n\t$destroy() {\n\t\tdestroy(this, true);\n\t\tthis.$destroy = noop;\n\t}\n\n\t$on(type, callback) {\n\t\tconst callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n\t\tcallbacks.push(callback);\n\n\t\treturn () => {\n\t\t\tconst index = callbacks.indexOf(callback);\n\t\t\tif (index !== -1) callbacks.splice(index, 1);\n\t\t};\n\t}\n\n\t$set() {\n\t\t// overridden by instance, if it has props\n\t}\n}\n\nclass SvelteComponentDev extends SvelteComponent {\n\tconstructor(options) {\n\t\tif (!options || (!options.target && !options.$$inline)) {\n\t\t\tthrow new Error(`'target' is a required option`);\n\t\t}\n\n\t\tsuper();\n\t}\n\n\t$destroy() {\n\t\tsuper.$destroy();\n\t\tthis.$destroy = () => {\n\t\t\tconsole.warn(`Component was already destroyed`); // eslint-disable-line no-console\n\t\t};\n\t}\n}\n\nexports.create_animation = create_animation;\nexports.fix_position = fix_position;\nexports.handle_promise = handle_promise;\nexports.append = append;\nexports.insert = insert;\nexports.detach = detach;\nexports.detach_between = detach_between;\nexports.detach_before = detach_before;\nexports.detach_after = detach_after;\nexports.destroy_each = destroy_each;\nexports.element = element;\nexports.object_without_properties = object_without_properties;\nexports.svg_element = svg_element;\nexports.text = text;\nexports.space = space;\nexports.empty = empty;\nexports.listen = listen;\nexports.prevent_default = prevent_default;\nexports.stop_propagation = stop_propagation;\nexports.attr = attr;\nexports.set_attributes = set_attributes;\nexports.set_custom_element_data = set_custom_element_data;\nexports.xlink_attr = xlink_attr;\nexports.get_binding_group_value = get_binding_group_value;\nexports.to_number = to_number;\nexports.time_ranges_to_array = time_ranges_to_array;\nexports.children = children;\nexports.claim_element = claim_element;\nexports.claim_text = claim_text;\nexports.set_data = set_data;\nexports.set_input_type = set_input_type;\nexports.set_style = set_style;\nexports.select_option = select_option;\nexports.select_options = select_options;\nexports.select_value = select_value;\nexports.select_multiple_value = select_multiple_value;\nexports.add_resize_listener = add_resize_listener;\nexports.toggle_class = toggle_class;\nexports.custom_event = custom_event;\nexports.destroy_block = destroy_block;\nexports.outro_and_destroy_block = outro_and_destroy_block;\nexports.fix_and_outro_and_destroy_block = fix_and_outro_and_destroy_block;\nexports.update_keyed_each = update_keyed_each;\nexports.measure = measure;\nexports.set_current_component = set_current_component;\nexports.beforeUpdate = beforeUpdate;\nexports.onMount = onMount;\nexports.afterUpdate = afterUpdate;\nexports.onDestroy = onDestroy;\nexports.createEventDispatcher = createEventDispatcher;\nexports.setContext = setContext;\nexports.getContext = getContext;\nexports.bubble = bubble;\nexports.clear_loops = clear_loops;\nexports.loop = loop;\nexports.dirty_components = dirty_components;\nexports.intros = intros;\nexports.schedule_update = schedule_update;\nexports.tick = tick;\nexports.add_binding_callback = add_binding_callback;\nexports.add_render_callback = add_render_callback;\nexports.add_flush_callback = add_flush_callback;\nexports.flush = flush;\nexports.get_spread_update = get_spread_update;\nexports.invalid_attribute_name_character = invalid_attribute_name_character;\nexports.spread = spread;\nexports.escaped = escaped;\nexports.escape = escape;\nexports.each = each;\nexports.missing_component = missing_component;\nexports.validate_component = validate_component;\nexports.debug = debug;\nexports.create_ssr_component = create_ssr_component;\nexports.get_store_value = get_store_value;\nexports.group_outros = group_outros;\nexports.check_outros = check_outros;\nexports.on_outro = on_outro;\nexports.create_in_transition = create_in_transition;\nexports.create_out_transition = create_out_transition;\nexports.create_bidirectional_transition = create_bidirectional_transition;\nexports.noop = noop;\nexports.identity = identity;\nexports.assign = assign;\nexports.is_promise = is_promise;\nexports.add_location = add_location;\nexports.run = run;\nexports.blank_object = blank_object;\nexports.run_all = run_all;\nexports.is_function = is_function;\nexports.safe_not_equal = safe_not_equal;\nexports.not_equal = not_equal;\nexports.validate_store = validate_store;\nexports.subscribe = subscribe;\nexports.create_slot = create_slot;\nexports.get_slot_context = get_slot_context;\nexports.get_slot_changes = get_slot_changes;\nexports.exclude_internal_props = exclude_internal_props;\nexports.bind = bind;\nexports.mount_component = mount_component;\nexports.init = init;\nexports.SvelteComponent = SvelteComponent;\nexports.SvelteComponentDev = SvelteComponentDev;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar internal = require('./internal');\n\n/*\nAdapted from https://github.com/mattdesl\nDistributed under MIT License https://github.com/mattdesl/eases/blob/master/LICENSE.md\n*/\n\nfunction backInOut(t) {\n\tconst s = 1.70158 * 1.525;\n\tif ((t *= 2) < 1) return 0.5 * (t * t * ((s + 1) * t - s));\n\treturn 0.5 * ((t -= 2) * t * ((s + 1) * t + s) + 2);\n}\n\nfunction backIn(t) {\n\tconst s = 1.70158;\n\treturn t * t * ((s + 1) * t - s);\n}\n\nfunction backOut(t) {\n\tconst s = 1.70158;\n\treturn --t * t * ((s + 1) * t + s) + 1;\n}\n\nfunction bounceOut(t) {\n\tconst a = 4.0 / 11.0;\n\tconst b = 8.0 / 11.0;\n\tconst c = 9.0 / 10.0;\n\n\tconst ca = 4356.0 / 361.0;\n\tconst cb = 35442.0 / 1805.0;\n\tconst cc = 16061.0 / 1805.0;\n\n\tconst t2 = t * t;\n\n\treturn t < a\n\t\t? 7.5625 * t2\n\t\t: t < b\n\t\t\t? 9.075 * t2 - 9.9 * t + 3.4\n\t\t\t: t < c\n\t\t\t\t? ca * t2 - cb * t + cc\n\t\t\t\t: 10.8 * t * t - 20.52 * t + 10.72;\n}\n\nfunction bounceInOut(t) {\n\treturn t < 0.5\n\t\t? 0.5 * (1.0 - bounceOut(1.0 - t * 2.0))\n\t\t: 0.5 * bounceOut(t * 2.0 - 1.0) + 0.5;\n}\n\nfunction bounceIn(t) {\n\treturn 1.0 - bounceOut(1.0 - t);\n}\n\nfunction circInOut(t) {\n\tif ((t *= 2) < 1) return -0.5 * (Math.sqrt(1 - t * t) - 1);\n\treturn 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\n}\n\nfunction circIn(t) {\n\treturn 1.0 - Math.sqrt(1.0 - t * t);\n}\n\nfunction circOut(t) {\n\treturn Math.sqrt(1 - --t * t);\n}\n\nfunction cubicInOut(t) {\n\treturn t < 0.5 ? 4.0 * t * t * t : 0.5 * Math.pow(2.0 * t - 2.0, 3.0) + 1.0;\n}\n\nfunction cubicIn(t) {\n\treturn t * t * t;\n}\n\nfunction cubicOut(t) {\n\tconst f = t - 1.0;\n\treturn f * f * f + 1.0;\n}\n\nfunction elasticInOut(t) {\n\treturn t < 0.5\n\t\t? 0.5 *\n\t\t\t\tMath.sin(((+13.0 * Math.PI) / 2) * 2.0 * t) *\n\t\t\t\tMath.pow(2.0, 10.0 * (2.0 * t - 1.0))\n\t\t: 0.5 *\n\t\t\t\tMath.sin(((-13.0 * Math.PI) / 2) * (2.0 * t - 1.0 + 1.0)) *\n\t\t\t\tMath.pow(2.0, -10.0 * (2.0 * t - 1.0)) +\n\t\t\t\t1.0;\n}\n\nfunction elasticIn(t) {\n\treturn Math.sin((13.0 * t * Math.PI) / 2) * Math.pow(2.0, 10.0 * (t - 1.0));\n}\n\nfunction elasticOut(t) {\n\treturn (\n\t\tMath.sin((-13.0 * (t + 1.0) * Math.PI) / 2) * Math.pow(2.0, -10.0 * t) + 1.0\n\t);\n}\n\nfunction expoInOut(t) {\n\treturn t === 0.0 || t === 1.0\n\t\t? t\n\t\t: t < 0.5\n\t\t\t? +0.5 * Math.pow(2.0, 20.0 * t - 10.0)\n\t\t\t: -0.5 * Math.pow(2.0, 10.0 - t * 20.0) + 1.0;\n}\n\nfunction expoIn(t) {\n\treturn t === 0.0 ? t : Math.pow(2.0, 10.0 * (t - 1.0));\n}\n\nfunction expoOut(t) {\n\treturn t === 1.0 ? t : 1.0 - Math.pow(2.0, -10.0 * t);\n}\n\nfunction quadInOut(t) {\n\tt /= 0.5;\n\tif (t < 1) return 0.5 * t * t;\n\tt--;\n\treturn -0.5 * (t * (t - 2) - 1);\n}\n\nfunction quadIn(t) {\n\treturn t * t;\n}\n\nfunction quadOut(t) {\n\treturn -t * (t - 2.0);\n}\n\nfunction quartInOut(t) {\n\treturn t < 0.5\n\t\t? +8.0 * Math.pow(t, 4.0)\n\t\t: -8.0 * Math.pow(t - 1.0, 4.0) + 1.0;\n}\n\nfunction quartIn(t) {\n\treturn Math.pow(t, 4.0);\n}\n\nfunction quartOut(t) {\n\treturn Math.pow(t - 1.0, 3.0) * (1.0 - t) + 1.0;\n}\n\nfunction quintInOut(t) {\n\tif ((t *= 2) < 1) return 0.5 * t * t * t * t * t;\n\treturn 0.5 * ((t -= 2) * t * t * t * t + 2);\n}\n\nfunction quintIn(t) {\n\treturn t * t * t * t * t;\n}\n\nfunction quintOut(t) {\n\treturn --t * t * t * t * t + 1;\n}\n\nfunction sineInOut(t) {\n\treturn -0.5 * (Math.cos(Math.PI * t) - 1);\n}\n\nfunction sineIn(t) {\n\tconst v = Math.cos(t * Math.PI * 0.5);\n\tif (Math.abs(v) < 1e-14) return 1;\n\telse return 1 - v;\n}\n\nfunction sineOut(t) {\n\treturn Math.sin((t * Math.PI) / 2);\n}\n\nexports.linear = internal.identity;\nexports.backInOut = backInOut;\nexports.backIn = backIn;\nexports.backOut = backOut;\nexports.bounceOut = bounceOut;\nexports.bounceInOut = bounceInOut;\nexports.bounceIn = bounceIn;\nexports.circInOut = circInOut;\nexports.circIn = circIn;\nexports.circOut = circOut;\nexports.cubicInOut = cubicInOut;\nexports.cubicIn = cubicIn;\nexports.cubicOut = cubicOut;\nexports.elasticInOut = elasticInOut;\nexports.elasticIn = elasticIn;\nexports.elasticOut = elasticOut;\nexports.expoInOut = expoInOut;\nexports.expoIn = expoIn;\nexports.expoOut = expoOut;\nexports.quadInOut = quadInOut;\nexports.quadIn = quadIn;\nexports.quadOut = quadOut;\nexports.quartInOut = quartInOut;\nexports.quartIn = quartIn;\nexports.quartOut = quartOut;\nexports.quintInOut = quintInOut;\nexports.quintIn = quintIn;\nexports.quintOut = quintOut;\nexports.sineInOut = sineInOut;\nexports.sineIn = sineIn;\nexports.sineOut = sineOut;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar easing = require('./easing');\nvar internal = require('./internal');\n\nfunction fade(node, {\n\tdelay = 0,\n\tduration = 400\n}) {\n\tconst o = +getComputedStyle(node).opacity;\n\n\treturn {\n\t\tdelay,\n\t\tduration,\n\t\tcss: t => `opacity: ${t * o}`\n\t};\n}\n\nfunction fly(node, {\n\tdelay = 0,\n\tduration = 400,\n\teasing: easing$$1 = easing.cubicOut,\n\tx = 0,\n\ty = 0,\n\topacity = 0\n}) {\n\tconst style = getComputedStyle(node);\n\tconst target_opacity = +style.opacity;\n\tconst transform = style.transform === 'none' ? '' : style.transform;\n\n\tconst od = target_opacity * (1 - opacity);\n\n\treturn {\n\t\tdelay,\n\t\tduration,\n\t\teasing: easing$$1,\n\t\tcss: (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\t};\n}\n\nfunction slide(node, {\n\tdelay = 0,\n\tduration = 400,\n\teasing: easing$$1 = easing.cubicOut\n}) {\n\tconst style = getComputedStyle(node);\n\tconst opacity = +style.opacity;\n\tconst height = parseFloat(style.height);\n\tconst padding_top = parseFloat(style.paddingTop);\n\tconst padding_bottom = parseFloat(style.paddingBottom);\n\tconst margin_top = parseFloat(style.marginTop);\n\tconst margin_bottom = parseFloat(style.marginBottom);\n\tconst border_top_width = parseFloat(style.borderTopWidth);\n\tconst border_bottom_width = parseFloat(style.borderBottomWidth);\n\n\treturn {\n\t\tdelay,\n\t\tduration,\n\t\teasing: easing$$1,\n\t\tcss: t =>\n\t\t\t`overflow: hidden;` +\n\t\t\t`opacity: ${Math.min(t * 20, 1) * opacity};` +\n\t\t\t`height: ${t * height}px;` +\n\t\t\t`padding-top: ${t * padding_top}px;` +\n\t\t\t`padding-bottom: ${t * padding_bottom}px;` +\n\t\t\t`margin-top: ${t * margin_top}px;` +\n\t\t\t`margin-bottom: ${t * margin_bottom}px;` +\n\t\t\t`border-top-width: ${t * border_top_width}px;` +\n\t\t\t`border-bottom-width: ${t * border_bottom_width}px;`\n\t};\n}\n\nfunction scale(node, {\n\tdelay = 0,\n\tduration = 400,\n\teasing: easing$$1 = easing.cubicOut,\n\tstart = 0,\n\topacity = 0\n}) {\n\tconst style = getComputedStyle(node);\n\tconst target_opacity = +style.opacity;\n\tconst transform = style.transform === 'none' ? '' : style.transform;\n\n\tconst sd = 1 - start;\n\tconst od = target_opacity * (1 - opacity);\n\n\treturn {\n\t\tdelay,\n\t\tduration,\n\t\teasing: easing$$1,\n\t\tcss: (t, u) => `\n\t\t\ttransform: ${transform} scale(${1 - (sd * u)});\n\t\t\topacity: ${target_opacity - (od * u)}\n\t\t`\n\t};\n}\n\nfunction draw(node, {\n\tdelay = 0,\n\tspeed,\n\tduration,\n\teasing: easing$$1 = easing.cubicInOut\n}) {\n\tconst len = node.getTotalLength();\n\n\tif (duration === undefined) {\n\t\tif (speed === undefined) {\n\t\t\tduration = 800;\n\t\t} else {\n\t\t\tduration = len / speed;\n\t\t}\n\t} else if (typeof duration === 'function') {\n\t\tduration = duration(len);\n\t}\n\n\treturn {\n\t\tdelay,\n\t\tduration,\n\t\teasing: easing$$1,\n\t\tcss: (t, u) => `stroke-dasharray: ${t * len} ${u * len}`\n\t};\n}\n\nfunction crossfade({ fallback, ...defaults }) {\n\tconst to_receive = new Map();\n\tconst to_send = new Map();\n\n\tfunction crossfade(from, node, params) {\n\t\tconst {\n\t\t\tdelay = 0,\n\t\t\tduration = d => Math.sqrt(d) * 30,\n\t\t\teasing: easing$$1 = easing.cubicOut\n\t\t} = internal.assign(internal.assign({}, defaults), params);\n\n\t\tconst to = node.getBoundingClientRect();\n\t\tconst dx = from.left - to.left;\n\t\tconst dy = from.top - to.top;\n\t\tconst d = Math.sqrt(dx * dx + dy * dy);\n\n\t\tconst style = getComputedStyle(node);\n\t\tconst transform = style.transform === 'none' ? '' : style.transform;\n\t\tconst opacity = +style.opacity;\n\n\t\treturn {\n\t\t\tdelay,\n\t\t\tduration: internal.is_function(duration) ? duration(d) : duration,\n\t\t\teasing: easing$$1,\n\t\t\tcss: (t, u) => `\n\t\t\t\topacity: ${t * opacity};\n\t\t\t\ttransform: ${transform} translate(${u * dx}px,${u * dy}px);\n\t\t\t`\n\t\t};\n\t}\n\n\tfunction transition(items, counterparts, intro) {\n\t\treturn (node, params) => {\n\t\t\titems.set(params.key, {\n\t\t\t\trect: node.getBoundingClientRect()\n\t\t\t});\n\n\t\t\treturn () => {\n\t\t\t\tif (counterparts.has(params.key)) {\n\t\t\t\t\tconst { rect } = counterparts.get(params.key);\n\t\t\t\t\tcounterparts.delete(params.key);\n\n\t\t\t\t\treturn crossfade(rect, node, params);\n\t\t\t\t}\n\n\t\t\t\t// if the node is disappearing altogether\n\t\t\t\t// (i.e. wasn't claimed by the other list)\n\t\t\t\t// then we need to supply an outro\n\t\t\t\titems.delete(params.key);\n\t\t\t\treturn fallback && fallback(node, params, intro);\n\t\t\t};\n\t\t};\n\t}\n\n\treturn [\n\t\ttransition(to_send, to_receive, false),\n\t\ttransition(to_receive, to_send, true)\n\t];\n}\n\nexports.fade = fade;\nexports.fly = fly;\nexports.slide = slide;\nexports.scale = scale;\nexports.draw = draw;\nexports.crossfade = crossfade;\n","\n\n\n \n \n \n \n \n","\n\n\n\n
\n
open=!open}>\n
\n
{name}
\n
\n {#if Array.isArray(value)}\n {#each value as v, i}\n {v}\n {#if i < value.length - 1}\n
\n {/if}\n {/each}\n {:else}\n {value}\n {/if}\n
\n
\n \n
\n {#if open}\n
\n \n
\n {/if}\n
","export function setCookie(cname: string, cvalue: string, exdate: string) {\n const expires = exdate ? `;expires=${exdate}` : \"\";\n document.cookie = `${cname}=${cvalue}${expires}`\n}\n\nexport function getCookie(cname: string) {\n const name = cname + \"=\";\n const dc = decodeURIComponent(document.cookie);\n const ca = dc.split(';');\n for (let i = 0; i < ca.length; i++) {\n let c = ca[i];\n while (c.charAt(0) == ' ') {\n c = c.substring(1);\n }\n if (c.indexOf(name) == 0) {\n return c.substring(name.length, c.length);\n }\n }\n return \"\";\n}","import { getCookie } from \"./cookie\";\n\n// const baseURL = \"https://auth.stamm.me\";\nconst baseURL = \"http://localhost:3000\";\n\nexport default async function request(endpoint: string, parameters: { [key: string]: string } = {}, method: \"GET\" | \"POST\" | \"DELETE\" | \"PUT\" = \"GET\", body?: any, authInParam = false) {\n let pairs = [];\n\n if (authInParam) {\n parameters.login = getCookie(\"login\");\n parameters.special = getCookie(\"special\");\n }\n\n for (let key in parameters) {\n pairs.push(key + \"=\" + parameters[key]);\n }\n\n let url = endpoint;\n if (pairs.length > 0) {\n url += \"?\" + pairs.join(\"&\");\n }\n\n return fetch(baseURL + url, {\n method,\n body: JSON.stringify(body),\n credentials: \"same-origin\",\n headers: {\n 'content-type': 'application/json'\n },\n }).then(e => {\n if (e.status !== 200) throw new Error(e.statusText)\n return e.json()\n }).then(data => {\n if (data.error) {\n if (data.additional && data.additional.auth) {\n let state = btoa(window.location.pathname + window.location.hash);\n // window.location.href = `/login?state=${state}&base64=true`;\n }\n return Promise.reject(new Error(data.error))\n }\n return data;\n })\n}","\n\n\n\n\n

Profile

\n {#if error}\n

{error}

\n {/if}\n \n
\n
\n \n \n \n \n
\n \n
\n
\n \n
\n
\n \n
\n \n
\n
\n \n \n
\n\n\n

Contact

\n \n \n
","\n\n\n\n\n\n

Two Factor

\n \n {#each twofactor as t}\n \n \n \n {/each}\n \n
\n\n\n

Anmeldungen

\n\n {#each token as t}\n \n \n \n {:else}\n No Tokens\n {/each}\n\n \n
\n\n\n","\n\n\n\n{#each pages as page}\n
open(page.id)}>\n
\n

\n {page.title}\n

\n
\n{/each}","\n
\n
\n
\n {#if sidebar_button}\n \n {/if}\n

{page.title}

\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n\n{#if loading}\n
\n
\n
\n
\n
\n{/if}\n\n","import App from './App.svelte';\n\nvar app = new App({\n target: document.getElementById(\"content\")\n});\n\nexport default app;"],"names":["AccountPage","SecurityPage"],"mappings":"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"} \ No newline at end of file diff --git a/src/Home/App.svelte b/src/Home/App.svelte new file mode 100644 index 0000000..9a23f03 --- /dev/null +++ b/src/Home/App.svelte @@ -0,0 +1,37 @@ + + +
+

Home Page

+ +

About

+

+ OpenAuth is a Service to provide simple Authentication to a veriaty of Applications. + With a simple to use API and different Strategies, it can be easily integrated + into most Applications. +

+ +

QickLinks

+

+ If you want to manage your Account, click here +

+ +

Applications using OpenAuth

+ + +
\ No newline at end of file diff --git a/src/Home/main.js b/src/Home/main.js new file mode 100644 index 0000000..3ea3e5d --- /dev/null +++ b/src/Home/main.js @@ -0,0 +1,7 @@ +import App from './App.svelte'; + +var app = new App({ + target: document.getElementById("content") +}); + +export default app; \ No newline at end of file diff --git a/src/Login/App.svelte b/src/Login/App.svelte new file mode 100644 index 0000000..d11b010 --- /dev/null +++ b/src/Login/App.svelte @@ -0,0 +1,206 @@ + + +
+
+
+

Login

+
+ {#if loading} +
+
+
+
+
+ {/if} +
+ {#if state === states.redirect} + + {:else if state === states.credentials} + loading = s} /> + {:else if state === states.twofactor} + loading = s} /> + {/if} +
+
+
+
+

Powered by {appname}

+
+ + \ No newline at end of file diff --git a/src/Login/Credentials.svelte b/src/Login/Credentials.svelte new file mode 100644 index 0000000..c5c7fc0 --- /dev/null +++ b/src/Login/Credentials.svelte @@ -0,0 +1,79 @@ + + + + +{#if state === states.username} +

Enter your Username or your E-Mail Address

+
+ + + + +
{error}
+
+{:else} +

Enter password for {username}

+
+ + + + +
{error}
+
+{/if} + + \ No newline at end of file diff --git a/src/Login/Redirect.svelte b/src/Login/Redirect.svelte new file mode 100644 index 0000000..abb276c --- /dev/null +++ b/src/Login/Redirect.svelte @@ -0,0 +1,100 @@ + + +
+ + + + +
+ +

{text}

+ + + \ No newline at end of file diff --git a/src/Login/Twofactor.svelte b/src/Login/Twofactor.svelte new file mode 100644 index 0000000..1769b78 --- /dev/null +++ b/src/Login/Twofactor.svelte @@ -0,0 +1,112 @@ + + + + +
+ {#if !twofactor} +

Select your Authentication method:

+
    + {#each twofactors as tf} +
  • twofactor = tf}> +
    + +
    + +
    + {tf.name} +
    +
  • + {/each} +
+ {:else} + {#if twofactor.type === TFATypes.OTC} + + {:else if twofactor.type === TFATypes.BACKUP_CODE} + + {:else if twofactor.type === TFATypes.U2F} + + {:else if twofactor.type === TFATypes.APP_ALLOW} + + {:else} +
Invalid TwoFactor Method!
+ {/if} + {/if} + +
\ No newline at end of file diff --git a/src/Login/api.ts b/src/Login/api.ts new file mode 100644 index 0000000..5392cd4 --- /dev/null +++ b/src/Login/api.ts @@ -0,0 +1,127 @@ +import request from "../request"; +import sha from "../sha512"; +import { + setCookie, + getCookie +} from "../cookie" + +export interface TwoFactor { + id: string; + name: string; + type: TFATypes; +} + +export enum TFATypes { + OTC, + BACKUP_CODE, + U2F, + APP_ALLOW +} + +const Api = { + // twofactor: [{ + // id: "1", + // name: "Backup Codes", + // type: TFATypes.BACKUP_CODE + // }, { + // id: "2", + // name: "YubiKey", + // type: TFATypes.U2F + // }, { + // id: "3", + // name: "Authenticator", + // type: TFATypes.OTC + // }] as TwoFactor[], + getUsername() { + return this.username || getCookie("username"); + }, + async setUsername(username: string): Promise<{ error: string | undefined }> { + return request("/api/user/login", { + type: "username", + username + }, "POST").then(res => { + this.salt = res.salt; + this.username = username; + return { + error: undefined + } + }).catch(err => { + let error = err.message; + return { error } + }) + }, + async setPassword(password: string): Promise<{ error: string | undefined, twofactor?: any }> { + let pw = sha(this.salt + password); + return request("/api/user/login", { + type: "password" + }, "POST", { + username: this.username, + password: pw + } + ).then(({ + login, + special, + tfa + }) => { + + this.login = login; + this.special = special; + + if (tfa && Array.isArray(tfa) && tfa.length > 0) + this.twofactor = tfa; + else + this.twofactor = undefined; + + + return { + error: undefined + } + }).catch(err => { + let error = err.message; + return { error } + }) + }, + gettok() { + return { + login: this.login.token, + special: this.special.token + } + }, + async sendBackup(id: string, code: string) { + return request("/api/user/twofactor/backup", this.gettok(), "PUT", { code, id }).then(({ login_exp, special_exp }) => { + this.login.expires = login_exp; + this.special.expires = special_exp; + return {}; + }).catch(err => ({ error: err.message })); + }, + async sendOTC(id: string, code: string) { + return request("/api/user/twofactor/otc", this.gettok(), "PUT", { code, id }).then(({ login_exp, special_exp }) => { + this.login.expires = login_exp; + this.special.expires = special_exp; + return {}; + }).catch(error => ({ error: error.message })) + }, + async finish() { + let d = new Date() + d.setTime(d.getTime() + (30 * 24 * 60 * 60 * 1000)); //Keep the username 30 days + setCookie("username", this.username, d.toUTCString()); + + setCookie("login", this.login.token, new Date(this.login.expires).toUTCString()); + setCookie("special", this.special.token, new Date(this.special.expires).toUTCString()); + + let url = new URL(window.location.href); + let state = url.searchParams.get("state") + let red = "/" + + if (state) { + let base64 = url.searchParams.get("base64") + if (base64) + red = atob(state) + else + red = state + } + window.location.href = red; + } +} + +export default Api; \ No newline at end of file diff --git a/src/Login/icons/AppPush.svg b/src/Login/icons/AppPush.svg new file mode 100644 index 0000000..dfb7ce3 --- /dev/null +++ b/src/Login/icons/AppPush.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/Login/icons/Authenticator.svg b/src/Login/icons/Authenticator.svg new file mode 100644 index 0000000..9afabf6 --- /dev/null +++ b/src/Login/icons/Authenticator.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/Login/icons/BackupCode.svg b/src/Login/icons/BackupCode.svg new file mode 100644 index 0000000..8cfd305 --- /dev/null +++ b/src/Login/icons/BackupCode.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/Login/icons/Icon.svelte b/src/Login/icons/Icon.svelte new file mode 100644 index 0000000..dad45d4 --- /dev/null +++ b/src/Login/icons/Icon.svelte @@ -0,0 +1,15 @@ + + +{#if icon_name === "SecurityKey"} + +{:else if icon_name === "Authenticator"} + +{:else if icon_name === "BackupCode"} + +{:else if icon_name === "AppPush"} + +{:else} +ERR +{/if} \ No newline at end of file diff --git a/src/Login/icons/SecurityKey.svg b/src/Login/icons/SecurityKey.svg new file mode 100644 index 0000000..255cb8b --- /dev/null +++ b/src/Login/icons/SecurityKey.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/Login/main.js b/src/Login/main.js new file mode 100644 index 0000000..3ea3e5d --- /dev/null +++ b/src/Login/main.js @@ -0,0 +1,7 @@ +import App from './App.svelte'; + +var app = new App({ + target: document.getElementById("content") +}); + +export default app; \ No newline at end of file diff --git a/src/Login/twofactors/codeInput.svelte b/src/Login/twofactors/codeInput.svelte new file mode 100644 index 0000000..436a205 --- /dev/null +++ b/src/Login/twofactors/codeInput.svelte @@ -0,0 +1,35 @@ + + + + +
+ + + + +
{error}
+
\ No newline at end of file diff --git a/src/Login/twofactors/otc.svelte b/src/Login/twofactors/otc.svelte new file mode 100644 index 0000000..06d1da2 --- /dev/null +++ b/src/Login/twofactors/otc.svelte @@ -0,0 +1,56 @@ + + + + + +

{title}

+ + + +
+ + +
\ No newline at end of file diff --git a/src/Login/twofactors/push.svelte b/src/Login/twofactors/push.svelte new file mode 100644 index 0000000..2c30033 --- /dev/null +++ b/src/Login/twofactors/push.svelte @@ -0,0 +1,393 @@ + + + + + +

SMS

+ +

A code was sent to your Device {device}

+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
{error}
+ \ No newline at end of file diff --git a/src/Login/twofactors/sms.svelte b/src/Login/twofactors/sms.svelte new file mode 100644 index 0000000..36a5eff --- /dev/null +++ b/src/Login/twofactors/sms.svelte @@ -0,0 +1,49 @@ + + + + + +

SMS

+{#if state === states.approve} +

Send SMS to {number}

+ +{:else} +

A code was sent to you. Please enter

+ +
+ state = states.approve}>Not received? +{/if} +
{error}
+ + \ No newline at end of file diff --git a/src/Login/twofactors/toList.svelte b/src/Login/twofactors/toList.svelte new file mode 100644 index 0000000..3f0d9d5 --- /dev/null +++ b/src/Login/twofactors/toList.svelte @@ -0,0 +1,13 @@ + + + +

+ evt.preventDefault() || finish(false)}>Choose another Method +

\ No newline at end of file diff --git a/src/Login/twofactors/u2f.svelte b/src/Login/twofactors/u2f.svelte new file mode 100644 index 0000000..e95cef5 --- /dev/null +++ b/src/Login/twofactors/u2f.svelte @@ -0,0 +1,72 @@ + + + + + +

U2F Security Key

+

This Method is currently not supported. Please choose another one!

+ \ No newline at end of file diff --git a/src/Public/global.css b/src/Public/global.css new file mode 100644 index 0000000..4244752 --- /dev/null +++ b/src/Public/global.css @@ -0,0 +1,245 @@ +:root { + --primary: #1E88E5; + --mdc-theme-primary: var(--primary); + --mdc-theme-primary-bg: var(--mdc-theme--primary); + --mdc-theme-on-primary: white; + --error: #ff2f00; + --border-color: #ababab; + + --default-font-size: 1.05rem; +} + +* { + font-family: 'Roboto', 'Helvetica', sans-serif; +} + +html, +body { + margin: 0; + color: #636363; + position: relative; + background: #eee; + height: 100%; + font-size: var(--default-font-size); +} + +.group { + position: relative; + margin-bottom: 24px; + min-height: 45px; +} + +.floating>input { + font-size: 1.2rem; + padding: 10px 10px 10px 5px; + appearance: none; + -webkit-appearance: none; + display: block; + background: #fafafa; + background: unset; + color: #636363; + width: 100%; + border: none; + border-radius: 0; + /* border-bottom: 1px solid #757575; */ + border-bottom: 1px solid var(--border-color); + box-sizing: border-box; +} + +.floating>input:focus { + outline: none; +} + +/* Label */ + +.floating>label { + color: #999; + font-size: 18px; + font-weight: normal; + position: absolute; + pointer-events: none; + left: 5px; + top: 10px; + transition: all 0.2s ease; +} + +/* active */ + +.floating>input:focus~label, +.floating>input.used~label { + top: -.75em; + transform: scale(.75); + left: -2px; + /* font-size: 14px; */ + color: var(--primary); + transform-origin: left; +} + +/* Underline */ + +.bar { + position: relative; + display: block; + width: 100%; +} + +.bar:before, +.bar:after { + content: ''; + height: 2px; + width: 0; + bottom: 1px; + position: absolute; + background: var(--primary); + transition: all 0.2s ease; +} + +.bar:before { + left: 50%; +} + +.bar:after { + right: 50%; +} + +/* active */ + +.floating>input:focus~.bar:before, +.floating>input:focus~.bar:after { + width: 50%; +} + +/* Highlight */ + +.highlight { + position: absolute; + height: 60%; + width: 100px; + top: 25%; + left: 0; + pointer-events: none; + opacity: 0.5; +} + +/* active */ + +.floating>input:focus~.highlight { + animation: inputHighlighter 0.3s ease; +} + +/* Animations */ + +@keyframes inputHighlighter { + from { + background: var(--primary); + } + + to { + width: 0; + background: transparent; + } +} + + +.btn { + position: relative; + + display: block; + margin: 2rem; + padding: 0 1em; + + overflow: hidden; + + border-width: 0; + outline: none; + border-radius: 4px; + box-shadow: 0 1px 4px rgba(0, 0, 0, .6); + + background-color: #cccccc; + color: #ecf0f1; + + transition: background-color .3s; + + height: 48px; + + text-transform: uppercase; + font-weight: 500; + font-size: 1.2rem; +} + +.btn:hover, +.btn:focus { + filter: brightness(90%); +} + +.btn>* { + position: relative; +} + +.btn span { + display: block; + padding: 12px 24px; +} + +.btn:before { + content: ""; + + position: absolute; + top: 50%; + left: 50%; + + display: block; + width: 0; + padding-top: 0; + + border-radius: 100%; + + background-color: rgba(236, 240, 241, .3); + + -webkit-transform: translate(-50%, -50%); + -moz-transform: translate(-50%, -50%); + -ms-transform: translate(-50%, -50%); + -o-transform: translate(-50%, -50%); + transform: translate(-50%, -50%); +} + +.btn:active:before { + width: 120%; + padding-top: 120%; + + transition: width .2s ease-out, padding-top .2s ease-out; +} + +.loader_box { + width: 64px; + height: 64px; + margin: auto; +} + +.loader { + display: inline-block; + position: relative; + z-index: 100; +} + +.loader:after { + content: " "; + display: block; + width: 46px; + height: 46px; + margin: 1px; + border-radius: 50%; + border: 5px solid var(--primary); + border-color: var(--primary) transparent var(--primary) transparent; + animation: loader 1.2s linear infinite; +} + +@keyframes loader { + 0% { + transform: rotate(0deg); + } + + 100% { + transform: rotate(360deg); + } +} \ No newline at end of file diff --git a/src/Public/main.js b/src/Public/main.js new file mode 100644 index 0000000..5fb214d --- /dev/null +++ b/src/Public/main.js @@ -0,0 +1,36 @@ +// import "./global.css"; +(() => { + const elements = new WeakSet(); + + function check() { + document.querySelectorAll(".floating>input").forEach(e => { + if (elements.has(e)) return; + elements.add(e); + + function checkState() { + console.log("Check State"); + if (e.value !== "") { + if (e.classList.contains("used")) return; + e.classList.add("used") + } else { + if (e.classList.contains("used")) e.classList.remove("used") + } + } + + e.addEventListener("change", () => checkState()) + checkState() + }) + }; + + const observer = new MutationObserver((mutations) => { + check(); + }); + + + // Start observing the target node for configured mutations + observer.observe(window.document, { + childList: true, + subtree: true + }); + check(); +})() \ No newline at end of file diff --git a/src/User/App.svelte b/src/User/App.svelte new file mode 100644 index 0000000..cfdb678 --- /dev/null +++ b/src/User/App.svelte @@ -0,0 +1,195 @@ + +
+
+
+ {#if sidebar_button} + + {/if} +

{page.title}

+
+ +
+ +
+ +
+
+ +{#if loading} +
+
+
+
+
+{/if} + + \ No newline at end of file diff --git a/src/User/NavigationBar.svelte b/src/User/NavigationBar.svelte new file mode 100644 index 0000000..bc707cb --- /dev/null +++ b/src/User/NavigationBar.svelte @@ -0,0 +1,46 @@ + + + + +{#each pages as page} +
open(page.id)}> +
+

+ {page.title} +

+
+{/each} \ No newline at end of file diff --git a/src/User/Pages/Account.svelte b/src/User/Pages/Account.svelte new file mode 100644 index 0000000..e39f503 --- /dev/null +++ b/src/User/Pages/Account.svelte @@ -0,0 +1,166 @@ + + + + + +

Profile

+ {#if error} +

{error}

+ {/if} + +
+
+ + + + +
+ +
+
+ +
+
+ +
+ +
+
+ + +
+ + +

Contact

+ + +
\ No newline at end of file diff --git a/src/User/Pages/Box.svelte b/src/User/Pages/Box.svelte new file mode 100644 index 0000000..a656dd5 --- /dev/null +++ b/src/User/Pages/Box.svelte @@ -0,0 +1,36 @@ + + +
+ +
\ No newline at end of file diff --git a/src/User/Pages/BoxItem.svelte b/src/User/Pages/BoxItem.svelte new file mode 100644 index 0000000..5332945 --- /dev/null +++ b/src/User/Pages/BoxItem.svelte @@ -0,0 +1,97 @@ + + + + +
+
open=!open}> +
+
{name}
+
+ {#if Array.isArray(value)} + {#each value as v, i} + {v} + {#if i < value.length - 1} +
+ {/if} + {/each} + {:else} + {value} + {/if} +
+
+ +
+ {#if open} +
+ +
+ {/if} +
\ No newline at end of file diff --git a/src/User/Pages/NextIcon.svelte b/src/User/Pages/NextIcon.svelte new file mode 100644 index 0000000..0ba1da6 --- /dev/null +++ b/src/User/Pages/NextIcon.svelte @@ -0,0 +1,13 @@ + + + + + + + + + \ No newline at end of file diff --git a/src/User/Pages/Security.svelte b/src/User/Pages/Security.svelte new file mode 100644 index 0000000..ec71082 --- /dev/null +++ b/src/User/Pages/Security.svelte @@ -0,0 +1,155 @@ + + + + + + +

Two Factor

+ + {#each twofactor as t} + + + + {/each} + +
+ + +

Anmeldungen

+ + {#each token as t} + + + + {:else} + No Tokens + {/each} + + +
+ + + \ No newline at end of file diff --git a/src/User/main.js b/src/User/main.js new file mode 100644 index 0000000..3ea3e5d --- /dev/null +++ b/src/User/main.js @@ -0,0 +1,7 @@ +import App from './App.svelte'; + +var app = new App({ + target: document.getElementById("content") +}); + +export default app; \ No newline at end of file diff --git a/src/cleave.js b/src/cleave.js new file mode 100644 index 0000000..371eb77 --- /dev/null +++ b/src/cleave.js @@ -0,0 +1,1515 @@ +(function webpackUniversalModuleDefinition(root, factory) { + if (typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if (typeof define === 'function' && define.amd) + define([], factory); + else if (typeof exports === 'object') + exports["Cleave"] = factory(); + else + root["Cleave"] = factory(); +})(this, function () { + return /******/ (function (modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; + +/******/ // The require function +/******/ function __webpack_require__(moduleId) { + +/******/ // Check if module is in cache +/******/ if (installedModules[moduleId]) +/******/ return installedModules[moduleId].exports; + +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ exports: {}, +/******/ id: moduleId, +/******/ loaded: false + /******/ +}; + +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); + +/******/ // Flag the module as loaded +/******/ module.loaded = true; + +/******/ // Return the exports of the module +/******/ return module.exports; + /******/ +} + + +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; + +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; + +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; + +/******/ // Load entry module and return exports +/******/ return __webpack_require__(0); + /******/ +}) +/************************************************************************/ +/******/([ +/* 0 */ +/***/ (function (module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function (global) { + 'use strict'; + + /** + * Construct a new Cleave instance by passing the configuration object + * + * @param {String | HTMLElement} element + * @param {Object} opts + */ + var Cleave = function (element, opts) { + var owner = this; + var hasMultipleElements = false; + + if (typeof element === 'string') { + owner.element = document.querySelector(element); + hasMultipleElements = document.querySelectorAll(element).length > 1; + } else { + if (typeof element.length !== 'undefined' && element.length > 0) { + owner.element = element[0]; + hasMultipleElements = element.length > 1; + } else { + owner.element = element; + } + } + + if (!owner.element) { + throw new Error('[cleave.js] Please check the element'); + } + + if (hasMultipleElements) { + try { + // eslint-disable-next-line + console.warn('[cleave.js] Multiple input fields matched, cleave.js will only take the first one.'); + } catch (e) { + // Old IE + } + } + + opts.initValue = owner.element.value; + + owner.properties = Cleave.DefaultProperties.assign({}, opts); + + owner.init(); + }; + + Cleave.prototype = { + init: function () { + var owner = this, pps = owner.properties; + + // no need to use this lib + if (!pps.numeral && !pps.phone && !pps.creditCard && !pps.time && !pps.date && (pps.blocksLength === 0 && !pps.prefix)) { + owner.onInput(pps.initValue); + + return; + } + + pps.maxLength = Cleave.Util.getMaxLength(pps.blocks); + + owner.isAndroid = Cleave.Util.isAndroid(); + owner.lastInputValue = ''; + + owner.onChangeListener = owner.onChange.bind(owner); + owner.onKeyDownListener = owner.onKeyDown.bind(owner); + owner.onFocusListener = owner.onFocus.bind(owner); + owner.onCutListener = owner.onCut.bind(owner); + owner.onCopyListener = owner.onCopy.bind(owner); + + owner.element.addEventListener('input', owner.onChangeListener); + owner.element.addEventListener('keydown', owner.onKeyDownListener); + owner.element.addEventListener('focus', owner.onFocusListener); + owner.element.addEventListener('cut', owner.onCutListener); + owner.element.addEventListener('copy', owner.onCopyListener); + + + owner.initPhoneFormatter(); + owner.initDateFormatter(); + owner.initTimeFormatter(); + owner.initNumeralFormatter(); + + // avoid touch input field if value is null + // otherwise Firefox will add red box-shadow for + if (pps.initValue || (pps.prefix && !pps.noImmediatePrefix)) { + owner.onInput(pps.initValue); + } + }, + + initNumeralFormatter: function () { + var owner = this, pps = owner.properties; + + if (!pps.numeral) { + return; + } + + pps.numeralFormatter = new Cleave.NumeralFormatter( + pps.numeralDecimalMark, + pps.numeralIntegerScale, + pps.numeralDecimalScale, + pps.numeralThousandsGroupStyle, + pps.numeralPositiveOnly, + pps.stripLeadingZeroes, + pps.delimiter + ); + }, + + initTimeFormatter: function () { + var owner = this, pps = owner.properties; + + if (!pps.time) { + return; + } + + pps.timeFormatter = new Cleave.TimeFormatter(pps.timePattern, pps.timeFormat); + pps.blocks = pps.timeFormatter.getBlocks(); + pps.blocksLength = pps.blocks.length; + pps.maxLength = Cleave.Util.getMaxLength(pps.blocks); + }, + + initDateFormatter: function () { + var owner = this, pps = owner.properties; + + if (!pps.date) { + return; + } + + pps.dateFormatter = new Cleave.DateFormatter(pps.datePattern); + pps.blocks = pps.dateFormatter.getBlocks(); + pps.blocksLength = pps.blocks.length; + pps.maxLength = Cleave.Util.getMaxLength(pps.blocks); + }, + + initPhoneFormatter: function () { + var owner = this, pps = owner.properties; + + if (!pps.phone) { + return; + } + + // Cleave.AsYouTypeFormatter should be provided by + // external google closure lib + try { + pps.phoneFormatter = new Cleave.PhoneFormatter( + new pps.root.Cleave.AsYouTypeFormatter(pps.phoneRegionCode), + pps.delimiter + ); + } catch (ex) { + throw new Error('[cleave.js] Please include phone-type-formatter.{country}.js lib'); + } + }, + + onKeyDown: function (event) { + var owner = this, pps = owner.properties, + charCode = event.which || event.keyCode, + Util = Cleave.Util, + currentValue = owner.element.value; + + // if we got any charCode === 8, this means, that this device correctly + // sends backspace keys in event, so we do not need to apply any hacks + owner.hasBackspaceSupport = owner.hasBackspaceSupport || charCode === 8; + if (!owner.hasBackspaceSupport + && Util.isAndroidBackspaceKeydown(owner.lastInputValue, currentValue) + ) { + charCode = 8; + } + + owner.lastInputValue = currentValue; + + // hit backspace when last character is delimiter + var postDelimiter = Util.getPostDelimiter(currentValue, pps.delimiter, pps.delimiters); + if (charCode === 8 && postDelimiter) { + pps.postDelimiterBackspace = postDelimiter; + } else { + pps.postDelimiterBackspace = false; + } + }, + + onChange: function () { + this.onInput(this.element.value); + }, + + onFocus: function () { + var owner = this, + pps = owner.properties; + + Cleave.Util.fixPrefixCursor(owner.element, pps.prefix, pps.delimiter, pps.delimiters); + }, + + onCut: function (e) { + this.copyClipboardData(e); + this.onInput(''); + }, + + onCopy: function (e) { + this.copyClipboardData(e); + }, + + copyClipboardData: function (e) { + var owner = this, + pps = owner.properties, + Util = Cleave.Util, + inputValue = owner.element.value, + textToCopy = ''; + + if (!pps.copyDelimiter) { + textToCopy = Util.stripDelimiters(inputValue, pps.delimiter, pps.delimiters); + } else { + textToCopy = inputValue; + } + + try { + if (e.clipboardData) { + e.clipboardData.setData('Text', textToCopy); + } else { + window.clipboardData.setData('Text', textToCopy); + } + + e.preventDefault(); + } catch (ex) { + // empty + } + }, + + onInput: function (value) { + var owner = this, pps = owner.properties, + Util = Cleave.Util; + + // case 1: delete one more character "4" + // 1234*| -> hit backspace -> 123| + // case 2: last character is not delimiter which is: + // 12|34* -> hit backspace -> 1|34* + // note: no need to apply this for numeral mode + var postDelimiterAfter = Util.getPostDelimiter(value, pps.delimiter, pps.delimiters); + if (!pps.numeral && pps.postDelimiterBackspace && !postDelimiterAfter) { + value = Util.headStr(value, value.length - pps.postDelimiterBackspace.length); + } + + // phone formatter + if (pps.phone) { + if (pps.prefix && (!pps.noImmediatePrefix || value.length)) { + pps.result = pps.prefix + pps.phoneFormatter.format(value).slice(pps.prefix.length); + } else { + pps.result = pps.phoneFormatter.format(value); + } + owner.updateValueState(); + + return; + } + + // numeral formatter + if (pps.numeral) { + if (pps.prefix && (!pps.noImmediatePrefix || value.length)) { + pps.result = pps.prefix + pps.numeralFormatter.format(value); + } else { + pps.result = pps.numeralFormatter.format(value); + } + owner.updateValueState(); + + return; + } + + // date + if (pps.date) { + value = pps.dateFormatter.getValidatedDate(value); + } + + // time + if (pps.time) { + value = pps.timeFormatter.getValidatedTime(value); + } + + // strip delimiters + value = Util.stripDelimiters(value, pps.delimiter, pps.delimiters); + + // strip prefix + // var strippedPreviousResult = Util.stripDelimiters(pps.result, pps.delimiter, pps.delimiters); + value = Util.getPrefixStrippedValue(value, pps.prefix, pps.prefixLength, pps.result, pps.delimiter, pps.delimiters); + + // strip non-numeric characters + value = pps.numericOnly ? Util.strip(value, /[^\d]/g) : value; + + // convert case + value = pps.uppercase ? value.toUpperCase() : value; + value = pps.lowercase ? value.toLowerCase() : value; + + // prefix + if (pps.prefix && (!pps.noImmediatePrefix || value.length)) { + value = pps.prefix + value; + + // no blocks specified, no need to do formatting + if (pps.blocksLength === 0) { + pps.result = value; + owner.updateValueState(); + + return; + } + } + + // update credit card props + if (pps.creditCard) { + owner.updateCreditCardPropsByValue(value); + } + + // strip over length characters + value = Util.headStr(value, pps.maxLength); + + // apply blocks + pps.result = Util.getFormattedValue( + value, + pps.blocks, pps.blocksLength, + pps.delimiter, pps.delimiters, pps.delimiterLazyShow + ); + + owner.updateValueState(); + }, + + updateCreditCardPropsByValue: function (value) { + var owner = this, pps = owner.properties, + Util = Cleave.Util, + creditCardInfo; + + // At least one of the first 4 characters has changed + if (Util.headStr(pps.result, 4) === Util.headStr(value, 4)) { + return; + } + + creditCardInfo = Cleave.CreditCardDetector.getInfo(value, pps.creditCardStrictMode); + + pps.blocks = creditCardInfo.blocks; + pps.blocksLength = pps.blocks.length; + pps.maxLength = Util.getMaxLength(pps.blocks); + + // credit card type changed + if (pps.creditCardType !== creditCardInfo.type) { + pps.creditCardType = creditCardInfo.type; + + pps.onCreditCardTypeChanged.call(owner, pps.creditCardType); + } + }, + + updateValueState: function () { + var owner = this, + Util = Cleave.Util, + pps = owner.properties; + + if (!owner.element) { + return; + } + + var endPos = owner.element.selectionEnd; + var oldValue = owner.element.value; + var newValue = pps.result; + + endPos = Util.getNextCursorPosition(endPos, oldValue, newValue, pps.delimiter, pps.delimiters); + + // fix Android browser type="text" input field + // cursor not jumping issue + if (owner.isAndroid) { + window.setTimeout(function () { + owner.element.value = newValue; + Util.setSelection(owner.element, endPos, pps.document, false); + owner.callOnValueChanged(); + }, 1); + + return; + } + + owner.element.value = newValue; + Util.setSelection(owner.element, endPos, pps.document, false); + owner.callOnValueChanged(); + }, + + callOnValueChanged: function () { + var owner = this, + pps = owner.properties; + + pps.onValueChanged.call(owner, { + target: { + value: pps.result, + rawValue: owner.getRawValue() + } + }); + }, + + setPhoneRegionCode: function (phoneRegionCode) { + var owner = this, pps = owner.properties; + + pps.phoneRegionCode = phoneRegionCode; + owner.initPhoneFormatter(); + owner.onChange(); + }, + + setRawValue: function (value) { + var owner = this, pps = owner.properties; + + value = value !== undefined && value !== null ? value.toString() : ''; + + if (pps.numeral) { + value = value.replace('.', pps.numeralDecimalMark); + } + + pps.postDelimiterBackspace = false; + + owner.element.value = value; + owner.onInput(value); + }, + + getRawValue: function () { + var owner = this, + pps = owner.properties, + Util = Cleave.Util, + rawValue = owner.element.value; + + if (pps.rawValueTrimPrefix) { + rawValue = Util.getPrefixStrippedValue(rawValue, pps.prefix, pps.prefixLength, pps.result, pps.delimiter, pps.delimiters); + } + + if (pps.numeral) { + rawValue = pps.numeralFormatter.getRawValue(rawValue); + } else { + rawValue = Util.stripDelimiters(rawValue, pps.delimiter, pps.delimiters); + } + + return rawValue; + }, + + getISOFormatDate: function () { + var owner = this, + pps = owner.properties; + + return pps.date ? pps.dateFormatter.getISOFormatDate() : ''; + }, + + getISOFormatTime: function () { + var owner = this, + pps = owner.properties; + + return pps.time ? pps.timeFormatter.getISOFormatTime() : ''; + }, + + getFormattedValue: function () { + return this.element.value; + }, + + destroy: function () { + var owner = this; + + owner.element.removeEventListener('input', owner.onChangeListener); + owner.element.removeEventListener('keydown', owner.onKeyDownListener); + owner.element.removeEventListener('focus', owner.onFocusListener); + owner.element.removeEventListener('cut', owner.onCutListener); + owner.element.removeEventListener('copy', owner.onCopyListener); + }, + + toString: function () { + return '[Cleave Object]'; + } + }; + + Cleave.NumeralFormatter = __webpack_require__(1); + Cleave.DateFormatter = __webpack_require__(2); + Cleave.TimeFormatter = __webpack_require__(3); + Cleave.PhoneFormatter = __webpack_require__(4); + Cleave.CreditCardDetector = __webpack_require__(5); + Cleave.Util = __webpack_require__(6); + Cleave.DefaultProperties = __webpack_require__(7); + + // for angular directive + ((typeof global === 'object' && global) ? global : window)['Cleave'] = Cleave; + + // CommonJS + module.exports = Cleave; + + /* WEBPACK VAR INJECTION */ +}.call(exports, (function () { return this; }()))) + + /***/ +}), +/* 1 */ +/***/ (function (module, exports) { + + 'use strict'; + + var NumeralFormatter = function (numeralDecimalMark, + numeralIntegerScale, + numeralDecimalScale, + numeralThousandsGroupStyle, + numeralPositiveOnly, + stripLeadingZeroes, + delimiter) { + var owner = this; + + owner.numeralDecimalMark = numeralDecimalMark || '.'; + owner.numeralIntegerScale = numeralIntegerScale > 0 ? numeralIntegerScale : 0; + owner.numeralDecimalScale = numeralDecimalScale >= 0 ? numeralDecimalScale : 2; + owner.numeralThousandsGroupStyle = numeralThousandsGroupStyle || NumeralFormatter.groupStyle.thousand; + owner.numeralPositiveOnly = !!numeralPositiveOnly; + owner.stripLeadingZeroes = stripLeadingZeroes !== false; + owner.delimiter = (delimiter || delimiter === '') ? delimiter : ','; + owner.delimiterRE = delimiter ? new RegExp('\\' + delimiter, 'g') : ''; + }; + + NumeralFormatter.groupStyle = { + thousand: 'thousand', + lakh: 'lakh', + wan: 'wan', + none: 'none' + }; + + NumeralFormatter.prototype = { + getRawValue: function (value) { + return value.replace(this.delimiterRE, '').replace(this.numeralDecimalMark, '.'); + }, + + format: function (value) { + var owner = this, parts, partInteger, partDecimal = ''; + + // strip alphabet letters + value = value.replace(/[A-Za-z]/g, '') + // replace the first decimal mark with reserved placeholder + .replace(owner.numeralDecimalMark, 'M') + + // strip non numeric letters except minus and "M" + // this is to ensure prefix has been stripped + .replace(/[^\dM-]/g, '') + + // replace the leading minus with reserved placeholder + .replace(/^\-/, 'N') + + // strip the other minus sign (if present) + .replace(/\-/g, '') + + // replace the minus sign (if present) + .replace('N', owner.numeralPositiveOnly ? '' : '-') + + // replace decimal mark + .replace('M', owner.numeralDecimalMark); + + // strip any leading zeros + if (owner.stripLeadingZeroes) { + value = value.replace(/^(-)?0+(?=\d)/, '$1'); + } + + partInteger = value; + + if (value.indexOf(owner.numeralDecimalMark) >= 0) { + parts = value.split(owner.numeralDecimalMark); + partInteger = parts[0]; + partDecimal = owner.numeralDecimalMark + parts[1].slice(0, owner.numeralDecimalScale); + } + + if (owner.numeralIntegerScale > 0) { + partInteger = partInteger.slice(0, owner.numeralIntegerScale + (value.slice(0, 1) === '-' ? 1 : 0)); + } + + switch (owner.numeralThousandsGroupStyle) { + case NumeralFormatter.groupStyle.lakh: + partInteger = partInteger.replace(/(\d)(?=(\d\d)+\d$)/g, '$1' + owner.delimiter); + + break; + + case NumeralFormatter.groupStyle.wan: + partInteger = partInteger.replace(/(\d)(?=(\d{4})+$)/g, '$1' + owner.delimiter); + + break; + + case NumeralFormatter.groupStyle.thousand: + partInteger = partInteger.replace(/(\d)(?=(\d{3})+$)/g, '$1' + owner.delimiter); + + break; + } + + return partInteger.toString() + (owner.numeralDecimalScale > 0 ? partDecimal.toString() : ''); + } + }; + + module.exports = NumeralFormatter; + + + /***/ +}), +/* 2 */ +/***/ (function (module, exports) { + + 'use strict'; + + var DateFormatter = function (datePattern) { + var owner = this; + + owner.date = []; + owner.blocks = []; + owner.datePattern = datePattern; + owner.initBlocks(); + }; + + DateFormatter.prototype = { + initBlocks: function () { + var owner = this; + owner.datePattern.forEach(function (value) { + if (value === 'Y') { + owner.blocks.push(4); + } else { + owner.blocks.push(2); + } + }); + }, + + getISOFormatDate: function () { + var owner = this, + date = owner.date; + + return date[2] ? ( + date[2] + '-' + owner.addLeadingZero(date[1]) + '-' + owner.addLeadingZero(date[0]) + ) : ''; + }, + + getBlocks: function () { + return this.blocks; + }, + + getValidatedDate: function (value) { + var owner = this, result = ''; + + value = value.replace(/[^\d]/g, ''); + + owner.blocks.forEach(function (length, index) { + if (value.length > 0) { + var sub = value.slice(0, length), + sub0 = sub.slice(0, 1), + rest = value.slice(length); + + switch (owner.datePattern[index]) { + case 'd': + if (sub === '00') { + sub = '01'; + } else if (parseInt(sub0, 10) > 3) { + sub = '0' + sub0; + } else if (parseInt(sub, 10) > 31) { + sub = '31'; + } + + break; + + case 'm': + if (sub === '00') { + sub = '01'; + } else if (parseInt(sub0, 10) > 1) { + sub = '0' + sub0; + } else if (parseInt(sub, 10) > 12) { + sub = '12'; + } + + break; + } + + result += sub; + + // update remaining string + value = rest; + } + }); + + return this.getFixedDateString(result); + }, + + getFixedDateString: function (value) { + var owner = this, datePattern = owner.datePattern, date = [], + dayIndex = 0, monthIndex = 0, yearIndex = 0, + dayStartIndex = 0, monthStartIndex = 0, yearStartIndex = 0, + day, month, year, fullYearDone = false; + + // mm-dd || dd-mm + if (value.length === 4 && datePattern[0].toLowerCase() !== 'y' && datePattern[1].toLowerCase() !== 'y') { + dayStartIndex = datePattern[0] === 'd' ? 0 : 2; + monthStartIndex = 2 - dayStartIndex; + day = parseInt(value.slice(dayStartIndex, dayStartIndex + 2), 10); + month = parseInt(value.slice(monthStartIndex, monthStartIndex + 2), 10); + + date = this.getFixedDate(day, month, 0); + } + + // yyyy-mm-dd || yyyy-dd-mm || mm-dd-yyyy || dd-mm-yyyy || dd-yyyy-mm || mm-yyyy-dd + if (value.length === 8) { + datePattern.forEach(function (type, index) { + switch (type) { + case 'd': + dayIndex = index; + break; + case 'm': + monthIndex = index; + break; + default: + yearIndex = index; + break; + } + }); + + yearStartIndex = yearIndex * 2; + dayStartIndex = (dayIndex <= yearIndex) ? dayIndex * 2 : (dayIndex * 2 + 2); + monthStartIndex = (monthIndex <= yearIndex) ? monthIndex * 2 : (monthIndex * 2 + 2); + + day = parseInt(value.slice(dayStartIndex, dayStartIndex + 2), 10); + month = parseInt(value.slice(monthStartIndex, monthStartIndex + 2), 10); + year = parseInt(value.slice(yearStartIndex, yearStartIndex + 4), 10); + + fullYearDone = value.slice(yearStartIndex, yearStartIndex + 4).length === 4; + + date = this.getFixedDate(day, month, year); + } + + owner.date = date; + + return date.length === 0 ? value : datePattern.reduce(function (previous, current) { + switch (current) { + case 'd': + return previous + owner.addLeadingZero(date[0]); + case 'm': + return previous + owner.addLeadingZero(date[1]); + default: + return previous + (fullYearDone ? owner.addLeadingZeroForYear(date[2]) : ''); + } + }, ''); + }, + + getFixedDate: function (day, month, year) { + day = Math.min(day, 31); + month = Math.min(month, 12); + year = parseInt((year || 0), 10); + + if ((month < 7 && month % 2 === 0) || (month > 8 && month % 2 === 1)) { + day = Math.min(day, month === 2 ? (this.isLeapYear(year) ? 29 : 28) : 30); + } + + return [day, month, year]; + }, + + isLeapYear: function (year) { + return ((year % 4 === 0) && (year % 100 !== 0)) || (year % 400 === 0); + }, + + addLeadingZero: function (number) { + return (number < 10 ? '0' : '') + number; + }, + + addLeadingZeroForYear: function (number) { + return (number < 10 ? '000' : (number < 100 ? '00' : (number < 1000 ? '0' : ''))) + number; + } + }; + + module.exports = DateFormatter; + + + + /***/ +}), +/* 3 */ +/***/ (function (module, exports) { + + 'use strict'; + + var TimeFormatter = function (timePattern, timeFormat) { + var owner = this; + + owner.time = []; + owner.blocks = []; + owner.timePattern = timePattern; + owner.timeFormat = timeFormat; + owner.initBlocks(); + }; + + TimeFormatter.prototype = { + initBlocks: function () { + var owner = this; + owner.timePattern.forEach(function () { + owner.blocks.push(2); + }); + }, + + getISOFormatTime: function () { + var owner = this, + time = owner.time; + + return time[2] ? ( + owner.addLeadingZero(time[0]) + ':' + owner.addLeadingZero(time[1]) + ':' + owner.addLeadingZero(time[2]) + ) : ''; + }, + + getBlocks: function () { + return this.blocks; + }, + + getTimeFormatOptions: function () { + var owner = this; + if (String(owner.timeFormat) === '12') { + return { + maxHourFirstDigit: 1, + maxHours: 12, + maxMinutesFirstDigit: 5, + maxMinutes: 60 + }; + } + + return { + maxHourFirstDigit: 2, + maxHours: 23, + maxMinutesFirstDigit: 5, + maxMinutes: 60 + }; + }, + + getValidatedTime: function (value) { + var owner = this, result = ''; + + value = value.replace(/[^\d]/g, ''); + + var timeFormatOptions = owner.getTimeFormatOptions(); + + owner.blocks.forEach(function (length, index) { + if (value.length > 0) { + var sub = value.slice(0, length), + sub0 = sub.slice(0, 1), + rest = value.slice(length); + + switch (owner.timePattern[index]) { + + case 'h': + if (parseInt(sub0, 10) > timeFormatOptions.maxHourFirstDigit) { + sub = '0' + sub0; + } else if (parseInt(sub, 10) > timeFormatOptions.maxHours) { + sub = timeFormatOptions.maxHours + ''; + } + + break; + + case 'm': + case 's': + if (parseInt(sub0, 10) > timeFormatOptions.maxMinutesFirstDigit) { + sub = '0' + sub0; + } else if (parseInt(sub, 10) > timeFormatOptions.maxMinutes) { + sub = timeFormatOptions.maxMinutes + ''; + } + break; + } + + result += sub; + + // update remaining string + value = rest; + } + }); + + return this.getFixedTimeString(result); + }, + + getFixedTimeString: function (value) { + var owner = this, timePattern = owner.timePattern, time = [], + secondIndex = 0, minuteIndex = 0, hourIndex = 0, + secondStartIndex = 0, minuteStartIndex = 0, hourStartIndex = 0, + second, minute, hour; + + if (value.length === 6) { + timePattern.forEach(function (type, index) { + switch (type) { + case 's': + secondIndex = index * 2; + break; + case 'm': + minuteIndex = index * 2; + break; + case 'h': + hourIndex = index * 2; + break; + } + }); + + hourStartIndex = hourIndex; + minuteStartIndex = minuteIndex; + secondStartIndex = secondIndex; + + second = parseInt(value.slice(secondStartIndex, secondStartIndex + 2), 10); + minute = parseInt(value.slice(minuteStartIndex, minuteStartIndex + 2), 10); + hour = parseInt(value.slice(hourStartIndex, hourStartIndex + 2), 10); + + time = this.getFixedTime(hour, minute, second); + } + + if (value.length === 4 && owner.timePattern.indexOf('s') < 0) { + timePattern.forEach(function (type, index) { + switch (type) { + case 'm': + minuteIndex = index * 2; + break; + case 'h': + hourIndex = index * 2; + break; + } + }); + + hourStartIndex = hourIndex; + minuteStartIndex = minuteIndex; + + second = 0; + minute = parseInt(value.slice(minuteStartIndex, minuteStartIndex + 2), 10); + hour = parseInt(value.slice(hourStartIndex, hourStartIndex + 2), 10); + + time = this.getFixedTime(hour, minute, second); + } + + owner.time = time; + + return time.length === 0 ? value : timePattern.reduce(function (previous, current) { + switch (current) { + case 's': + return previous + owner.addLeadingZero(time[2]); + case 'm': + return previous + owner.addLeadingZero(time[1]); + case 'h': + return previous + owner.addLeadingZero(time[0]); + } + }, ''); + }, + + getFixedTime: function (hour, minute, second) { + second = Math.min(parseInt(second || 0, 10), 60); + minute = Math.min(minute, 60); + hour = Math.min(hour, 60); + + return [hour, minute, second]; + }, + + addLeadingZero: function (number) { + return (number < 10 ? '0' : '') + number; + } + }; + + module.exports = TimeFormatter; + + + /***/ +}), +/* 4 */ +/***/ (function (module, exports) { + + 'use strict'; + + var PhoneFormatter = function (formatter, delimiter) { + var owner = this; + + owner.delimiter = (delimiter || delimiter === '') ? delimiter : ' '; + owner.delimiterRE = delimiter ? new RegExp('\\' + delimiter, 'g') : ''; + + owner.formatter = formatter; + }; + + PhoneFormatter.prototype = { + setFormatter: function (formatter) { + this.formatter = formatter; + }, + + format: function (phoneNumber) { + var owner = this; + + owner.formatter.clear(); + + // only keep number and + + phoneNumber = phoneNumber.replace(/[^\d+]/g, ''); + + // strip non-leading + + phoneNumber = phoneNumber.replace(/^\+/, 'B').replace(/\+/g, '').replace('B', '+'); + + // strip delimiter + phoneNumber = phoneNumber.replace(owner.delimiterRE, ''); + + var result = '', current, validated = false; + + for (var i = 0, iMax = phoneNumber.length; i < iMax; i++) { + current = owner.formatter.inputDigit(phoneNumber.charAt(i)); + + // has ()- or space inside + if (/[\s()-]/g.test(current)) { + result = current; + + validated = true; + } else { + if (!validated) { + result = current; + } + // else: over length input + // it turns to invalid number again + } + } + + // strip () + // e.g. US: 7161234567 returns (716) 123-4567 + result = result.replace(/[()]/g, ''); + // replace library delimiter with user customized delimiter + result = result.replace(/[\s-]/g, owner.delimiter); + + return result; + } + }; + + module.exports = PhoneFormatter; + + + /***/ +}), +/* 5 */ +/***/ (function (module, exports) { + + 'use strict'; + + var CreditCardDetector = { + blocks: { + uatp: [4, 5, 6], + amex: [4, 6, 5], + diners: [4, 6, 4], + discover: [4, 4, 4, 4], + mastercard: [4, 4, 4, 4], + dankort: [4, 4, 4, 4], + instapayment: [4, 4, 4, 4], + jcb15: [4, 6, 5], + jcb: [4, 4, 4, 4], + maestro: [4, 4, 4, 4], + visa: [4, 4, 4, 4], + mir: [4, 4, 4, 4], + unionPay: [4, 4, 4, 4], + general: [4, 4, 4, 4], + generalStrict: [4, 4, 4, 7] + }, + + re: { + // starts with 1; 15 digits, not starts with 1800 (jcb card) + uatp: /^(?!1800)1\d{0,14}/, + + // starts with 34/37; 15 digits + amex: /^3[47]\d{0,13}/, + + // starts with 6011/65/644-649; 16 digits + discover: /^(?:6011|65\d{0,2}|64[4-9]\d?)\d{0,12}/, + + // starts with 300-305/309 or 36/38/39; 14 digits + diners: /^3(?:0([0-5]|9)|[689]\d?)\d{0,11}/, + + // starts with 51-55/2221–2720; 16 digits + mastercard: /^(5[1-5]\d{0,2}|22[2-9]\d{0,1}|2[3-7]\d{0,2})\d{0,12}/, + + // starts with 5019/4175/4571; 16 digits + dankort: /^(5019|4175|4571)\d{0,12}/, + + // starts with 637-639; 16 digits + instapayment: /^63[7-9]\d{0,13}/, + + // starts with 2131/1800; 15 digits + jcb15: /^(?:2131|1800)\d{0,11}/, + + // starts with 2131/1800/35; 16 digits + jcb: /^(?:35\d{0,2})\d{0,12}/, + + // starts with 50/56-58/6304/67; 16 digits + maestro: /^(?:5[0678]\d{0,2}|6304|67\d{0,2})\d{0,12}/, + + // starts with 22; 16 digits + mir: /^220[0-4]\d{0,12}/, + + // starts with 4; 16 digits + visa: /^4\d{0,15}/, + + // starts with 62; 16 digits + unionPay: /^62\d{0,14}/ + }, + + getInfo: function (value, strictMode) { + var blocks = CreditCardDetector.blocks, + re = CreditCardDetector.re; + + // Some credit card can have up to 19 digits number. + // Set strictMode to true will remove the 16 max-length restrain, + // however, I never found any website validate card number like + // this, hence probably you don't want to enable this option. + strictMode = !!strictMode; + + for (var key in re) { + if (re[key].test(value)) { + var block; + + if (strictMode) { + block = blocks.generalStrict; + } else { + block = blocks[key]; + } + + return { + type: key, + blocks: block + }; + } + } + + return { + type: 'unknown', + blocks: strictMode ? blocks.generalStrict : blocks.general + }; + } + }; + + module.exports = CreditCardDetector; + + + /***/ +}), +/* 6 */ +/***/ (function (module, exports) { + + 'use strict'; + + var Util = { + noop: function () { + }, + + strip: function (value, re) { + return value.replace(re, ''); + }, + + getPostDelimiter: function (value, delimiter, delimiters) { + // single delimiter + if (delimiters.length === 0) { + return value.slice(-delimiter.length) === delimiter ? delimiter : ''; + } + + // multiple delimiters + var matchedDelimiter = ''; + delimiters.forEach(function (current) { + if (value.slice(-current.length) === current) { + matchedDelimiter = current; + } + }); + + return matchedDelimiter; + }, + + getDelimiterREByDelimiter: function (delimiter) { + return new RegExp(delimiter.replace(/([.?*+^$[\]\\(){}|-])/g, '\\$1'), 'g'); + }, + + getNextCursorPosition: function (prevPos, oldValue, newValue, delimiter, delimiters) { + // If cursor was at the end of value, just place it back. + // Because new value could contain additional chars. + if (oldValue.length === prevPos) { + return newValue.length; + } + + return prevPos + this.getPositionOffset(prevPos, oldValue, newValue, delimiter, delimiters); + }, + + getPositionOffset: function (prevPos, oldValue, newValue, delimiter, delimiters) { + var oldRawValue, newRawValue, lengthOffset; + + oldRawValue = this.stripDelimiters(oldValue.slice(0, prevPos), delimiter, delimiters); + newRawValue = this.stripDelimiters(newValue.slice(0, prevPos), delimiter, delimiters); + lengthOffset = oldRawValue.length - newRawValue.length; + + return (lengthOffset !== 0) ? (lengthOffset / Math.abs(lengthOffset)) : 0; + }, + + stripDelimiters: function (value, delimiter, delimiters) { + var owner = this; + + // single delimiter + if (delimiters.length === 0) { + var delimiterRE = delimiter ? owner.getDelimiterREByDelimiter(delimiter) : ''; + + return value.replace(delimiterRE, ''); + } + + // multiple delimiters + delimiters.forEach(function (current) { + current.split('').forEach(function (letter) { + value = value.replace(owner.getDelimiterREByDelimiter(letter), ''); + }); + }); + + return value; + }, + + headStr: function (str, length) { + return str.slice(0, length); + }, + + getMaxLength: function (blocks) { + return blocks.reduce(function (previous, current) { + return previous + current; + }, 0); + }, + + // strip prefix + // Before type | After type | Return value + // PEFIX-... | PEFIX-... | '' + // PREFIX-123 | PEFIX-123 | 123 + // PREFIX-123 | PREFIX-23 | 23 + // PREFIX-123 | PREFIX-1234 | 1234 + getPrefixStrippedValue: function (value, prefix, prefixLength, prevResult, delimiter, delimiters) { + // No prefix + if (prefixLength === 0) { + return value; + } + + // Pre result has issue + // Revert to raw prefix + if (prevResult.slice(0, prefixLength) !== prefix) { + return ''; + } + + var prevValue = this.stripDelimiters(prevResult, delimiter, delimiters); + + // New value has issue, someone typed in between prefix letters + // Revert to pre value + if (value.slice(0, prefixLength) !== prefix) { + return prevValue.slice(prefixLength); + } + + // No issue, strip prefix for new value + return value.slice(prefixLength); + }, + + getFirstDiffIndex: function (prev, current) { + var index = 0; + + while (prev.charAt(index) === current.charAt(index)) { + if (prev.charAt(index++) === '') { + return -1; + } + } + + return index; + }, + + getFormattedValue: function (value, blocks, blocksLength, delimiter, delimiters, delimiterLazyShow) { + var result = '', + multipleDelimiters = delimiters.length > 0, + currentDelimiter; + + // no options, normal input + if (blocksLength === 0) { + return value; + } + + blocks.forEach(function (length, index) { + if (value.length > 0) { + var sub = value.slice(0, length), + rest = value.slice(length); + + if (multipleDelimiters) { + currentDelimiter = delimiters[delimiterLazyShow ? (index - 1) : index] || currentDelimiter; + } else { + currentDelimiter = delimiter; + } + + if (delimiterLazyShow) { + if (index > 0) { + result += currentDelimiter; + } + + result += sub; + } else { + result += sub; + + if (sub.length === length && index < blocksLength - 1) { + result += currentDelimiter; + } + } + + // update remaining string + value = rest; + } + }); + + return result; + }, + + // move cursor to the end + // the first time user focuses on an input with prefix + fixPrefixCursor: function (el, prefix, delimiter, delimiters) { + if (!el) { + return; + } + + var val = el.value, + appendix = delimiter || (delimiters[0] || ' '); + + if (!el.setSelectionRange || !prefix || (prefix.length + appendix.length) < val.length) { + return; + } + + var len = val.length * 2; + + // set timeout to avoid blink + setTimeout(function () { + el.setSelectionRange(len, len); + }, 1); + }, + + setSelection: function (element, position, doc) { + if (element !== this.getActiveElement(doc)) { + return; + } + + // cursor is already in the end + if (element && element.value.length <= position) { + return; + } + + if (element.createTextRange) { + var range = element.createTextRange(); + + range.move('character', position); + range.select(); + } else { + try { + element.setSelectionRange(position, position); + } catch (e) { + // eslint-disable-next-line + console.warn('The input element type does not support selection'); + } + } + }, + + getActiveElement: function (parent) { + var activeElement = parent.activeElement; + if (activeElement && activeElement.shadowRoot) { + return this.getActiveElement(activeElement.shadowRoot); + } + return activeElement; + }, + + isAndroid: function () { + return navigator && /android/i.test(navigator.userAgent); + }, + + // On Android chrome, the keyup and keydown events + // always return key code 229 as a composition that + // buffers the user’s keystrokes + // see https://github.com/nosir/cleave.js/issues/147 + isAndroidBackspaceKeydown: function (lastInputValue, currentInputValue) { + if (!this.isAndroid() || !lastInputValue || !currentInputValue) { + return false; + } + + return currentInputValue === lastInputValue.slice(0, -1); + } + }; + + module.exports = Util; + + + /***/ +}), +/* 7 */ +/***/ (function (module, exports) { + + /* WEBPACK VAR INJECTION */(function (global) { + 'use strict'; + + /** + * Props Assignment + * + * Separate this, so react module can share the usage + */ + var DefaultProperties = { + // Maybe change to object-assign + // for now just keep it as simple + assign: function (target, opts) { + target = target || {}; + opts = opts || {}; + + // credit card + target.creditCard = !!opts.creditCard; + target.creditCardStrictMode = !!opts.creditCardStrictMode; + target.creditCardType = ''; + target.onCreditCardTypeChanged = opts.onCreditCardTypeChanged || (function () { }); + + // phone + target.phone = !!opts.phone; + target.phoneRegionCode = opts.phoneRegionCode || 'AU'; + target.phoneFormatter = {}; + + // time + target.time = !!opts.time; + target.timePattern = opts.timePattern || ['h', 'm', 's']; + target.timeFormat = opts.timeFormat || '24'; + target.timeFormatter = {}; + + // date + target.date = !!opts.date; + target.datePattern = opts.datePattern || ['d', 'm', 'Y']; + target.dateFormatter = {}; + + // numeral + target.numeral = !!opts.numeral; + target.numeralIntegerScale = opts.numeralIntegerScale > 0 ? opts.numeralIntegerScale : 0; + target.numeralDecimalScale = opts.numeralDecimalScale >= 0 ? opts.numeralDecimalScale : 2; + target.numeralDecimalMark = opts.numeralDecimalMark || '.'; + target.numeralThousandsGroupStyle = opts.numeralThousandsGroupStyle || 'thousand'; + target.numeralPositiveOnly = !!opts.numeralPositiveOnly; + target.stripLeadingZeroes = opts.stripLeadingZeroes !== false; + + // others + target.numericOnly = target.creditCard || target.date || !!opts.numericOnly; + + target.uppercase = !!opts.uppercase; + target.lowercase = !!opts.lowercase; + + target.prefix = (target.creditCard || target.date) ? '' : (opts.prefix || ''); + target.noImmediatePrefix = !!opts.noImmediatePrefix; + target.prefixLength = target.prefix.length; + target.rawValueTrimPrefix = !!opts.rawValueTrimPrefix; + target.copyDelimiter = !!opts.copyDelimiter; + + target.initValue = (opts.initValue !== undefined && opts.initValue !== null) ? opts.initValue.toString() : ''; + + target.delimiter = + (opts.delimiter || opts.delimiter === '') ? opts.delimiter : + (opts.date ? '/' : + (opts.time ? ':' : + (opts.numeral ? ',' : + (opts.phone ? ' ' : + ' ')))); + target.delimiterLength = target.delimiter.length; + target.delimiterLazyShow = !!opts.delimiterLazyShow; + target.delimiters = opts.delimiters || []; + + target.blocks = opts.blocks || []; + target.blocksLength = target.blocks.length; + + target.root = (typeof global === 'object' && global) ? global : window; + target.document = opts.document || target.root.document; + + target.maxLength = 0; + + target.backspace = false; + target.result = ''; + + target.onValueChanged = opts.onValueChanged || (function () { }); + + return target; + } + }; + + module.exports = DefaultProperties; + + /* WEBPACK VAR INJECTION */ +}.call(exports, (function () { return this; }()))) + + /***/ +}) +/******/]) +}); +; \ No newline at end of file diff --git a/src/cookie.ts b/src/cookie.ts new file mode 100644 index 0000000..c809418 --- /dev/null +++ b/src/cookie.ts @@ -0,0 +1,20 @@ +export function setCookie(cname: string, cvalue: string, exdate: string) { + const expires = exdate ? `;expires=${exdate}` : ""; + document.cookie = `${cname}=${cvalue}${expires}` +} + +export function getCookie(cname: string) { + const name = cname + "="; + const dc = decodeURIComponent(document.cookie); + const ca = dc.split(';'); + for (let i = 0; i < ca.length; i++) { + let c = ca[i]; + while (c.charAt(0) == ' ') { + c = c.substring(1); + } + if (c.indexOf(name) == 0) { + return c.substring(name.length, c.length); + } + } + return ""; +} \ No newline at end of file diff --git a/src/request.ts b/src/request.ts new file mode 100644 index 0000000..502be05 --- /dev/null +++ b/src/request.ts @@ -0,0 +1,43 @@ +import { getCookie } from "./cookie"; + +// const baseURL = "https://auth.stamm.me"; +const baseURL = "http://localhost:3000"; + +export default async function request(endpoint: string, parameters: { [key: string]: string } = {}, method: "GET" | "POST" | "DELETE" | "PUT" = "GET", body?: any, authInParam = false) { + let pairs = []; + + if (authInParam) { + parameters.login = getCookie("login"); + parameters.special = getCookie("special"); + } + + for (let key in parameters) { + pairs.push(key + "=" + parameters[key]); + } + + let url = endpoint; + if (pairs.length > 0) { + url += "?" + pairs.join("&"); + } + + return fetch(baseURL + url, { + method, + body: JSON.stringify(body), + credentials: "same-origin", + headers: { + 'content-type': 'application/json' + }, + }).then(e => { + if (e.status !== 200) throw new Error(e.statusText) + return e.json() + }).then(data => { + if (data.error) { + if (data.additional && data.additional.auth) { + let state = btoa(window.location.pathname + window.location.hash); + // window.location.href = `/login?state=${state}&base64=true`; + } + return Promise.reject(new Error(data.error)) + } + return data; + }) +} \ No newline at end of file diff --git a/src/sha512.js b/src/sha512.js new file mode 100644 index 0000000..b64984e --- /dev/null +++ b/src/sha512.js @@ -0,0 +1 @@ +var b;if(!(b=t)){var w=Math,y={},B=y.p={},aa=function(){},C=B.A={extend:function(o){aa.prototype=this;var _=new aa;return o&&_.u(o),_.z=this,_},create:function(){var o=this.extend();return o.h.apply(o,arguments),o},h:function(){},u:function(o){for(var _ in o)o.hasOwnProperty(_)&&(this[_]=o[_]);o.hasOwnProperty("toString")&&(this.toString=o.toString)},e:function(){return this.z.extend(this)}},D=B.i=C.extend({h:function(o,_){o=this.d=o||[],this.c=void 0==_?4*o.length:_},toString:function(o){return(o||ba).stringify(this)},concat:function(o){var _=this.d,Da=o.d,Ea=this.c,o=o.c;if(this.t(),Ea%4)for(var Fa=0;Fa>>2]|=(255&Da[Fa>>>2]>>>24-8*(Fa%4))<<24-8*((Ea+Fa)%4);else if(65535>>2]=Da[Fa>>>2];else _.push.apply(_,Da);return this.c+=o,this},t:function(){var o=this.d,_=this.c;o[_>>>2]&=4294967295<<32-8*(_%4),o.length=w.ceil(_/4)},e:function(){var o=C.e.call(this);return o.d=this.d.slice(0),o},random:function(o){for(var _=[],Da=0;Da>>2]>>>24-8*(Ea%4),Da.push((Fa>>>4).toString(16)),Da.push((15&Fa).toString(16));return Da.join("")},parse:function(o){for(var _=o.length,Da=[],Ea=0;Ea<_;Ea+=2)Da[Ea>>>3]|=parseInt(o.substr(Ea,2),16)<<24-4*(Ea%8);return D.create(Da,_/2)}},da=ca.M={stringify:function(o){for(var _=o.d,o=o.c,Da=[],Ea=0;Ea>>2]>>>24-8*(Ea%4)));return Da.join("")},parse:function(o){for(var _=o.length,Da=[],Ea=0;Ea<_;Ea++)Da[Ea>>>2]|=(255&o.charCodeAt(Ea))<<24-8*(Ea%4);return D.create(Da,_)}},ea=ca.N={stringify:function(o){try{return decodeURIComponent(escape(da.stringify(o)))}catch(_){throw Error("Malformed UTF-8 data")}},parse:function(o){return da.parse(unescape(encodeURIComponent(o)))}},ia=B.I=C.extend({reset:function(){this.g=D.create(),this.j=0},l:function(o){"string"==typeof o&&(o=ea.parse(o)),this.g.concat(o),this.j+=o.c},m:function(o){var _=this.g,Da=_.d,Ea=_.c,Fa=this.n,Ga=Ea/(4*Fa),Ga=o?w.ceil(Ga):w.max((0|Ga)-this.r,0),o=Ga*Fa,Ea=w.min(4*o,Ea);if(o){for(var Ha=0;HaAa;Aa++)$[Aa]=L();M=M.k=xa.extend({q:function(){this.f=ya.create([L(1779033703,4089235720),L(3144134277,2227873595),L(1013904242,4271175723),L(2773480762,1595750129),L(1359893119,2917565137),L(2600822924,725511199),L(528734635,4215389547),L(1541459225,327033209)])},H:function(o,_){for(var qb,Da=this.f.d,Ea=Da[0],Fa=Da[1],Ga=Da[2],Ha=Da[3],Ia=Da[4],Ja=Da[5],Ka=Da[6],Da=Da[7],La=Ea.a,Ma=Ea.b,Na=Fa.a,Oa=Fa.b,Pa=Ga.a,Qa=Ga.b,Ra=Ha.a,Sa=Ha.b,Ta=Ia.a,Ua=Ia.b,Va=Ja.a,Wa=Ja.b,Xa=Ka.a,Ya=Ka.b,Za=Da.a,$a=Da.b,_a=La,ab=Ma,bb=Na,cb=Oa,db=Pa,eb=Qa,fb=Ra,gb=Sa,hb=Ta,ib=Ua,jb=Va,kb=Wa,lb=Xa,mb=Ya,nb=Za,ob=$a,pb=0;80>pb;pb++){if(qb=$[pb],16>pb)var rb=qb.a=0|o[_+2*pb],sb=qb.b=0|o[_+2*pb+1];else{var rb=$[pb-15],sb=rb.a,tb=rb.b,rb=(tb<<31|sb>>>1)^(tb<<24|sb>>>8)^sb>>>7,tb=(sb<<31|tb>>>1)^(sb<<24|tb>>>8)^(sb<<25|tb>>>7),ub=$[pb-2],sb=ub.a,vb=ub.b,ub=(vb<<13|sb>>>19)^(sb<<3|vb>>>29)^sb>>>6,vb=(sb<<13|vb>>>19)^(vb<<3|sb>>>29)^(sb<<26|vb>>>6),sb=$[pb-7],wb=sb.a,xb=$[pb-16],yb=xb.a,xb=xb.b,sb=tb+sb.b,rb=rb+wb+(sb>>>0>>0?1:0),sb=sb+vb,rb=rb+ub+(sb>>>0>>0?1:0),sb=sb+xb,rb=rb+yb+(sb>>>0>>0?1:0);qb.a=rb,qb.b=sb}var wb=hb&jb^~hb&lb,xb=ib&kb^~ib&mb,qb=_a&bb^_a&db^bb&db,tb=(ab<<4|_a>>>28)^(_a<<30|ab>>>2)^(_a<<25|ab>>>7),ub=(_a<<4|ab>>>28)^(ab<<30|_a>>>2)^(ab<<25|_a>>>7),vb=za[pb],Ab=vb.a,Bb=vb.b,vb=ob+((hb<<18|ib>>>14)^(hb<<14|ib>>>18)^(ib<<23|hb>>>9)),yb=nb+((ib<<18|hb>>>14)^(ib<<14|hb>>>18)^(hb<<23|ib>>>9))+(vb>>>0>>0?1:0),vb=vb+xb,yb=yb+wb+(vb>>>0>>0?1:0),vb=vb+Bb,yb=yb+Ab+(vb>>>0>>0?1:0),vb=vb+sb,yb=yb+rb+(vb>>>0>>0?1:0),sb=ub+(ab&cb^ab&eb^cb&eb),qb=tb+qb+(sb>>>0>>0?1:0),nb=lb,ob=mb,lb=jb,mb=kb,jb=hb,kb=ib,ib=0|gb+vb,hb=0|fb+yb+(ib>>>0>>0?1:0),fb=db,gb=eb,db=bb,eb=cb,bb=_a,cb=ab,ab=0|vb+sb,_a=0|yb+qb+(ab>>>0>>0?1:0)}Ma=Ea.b=0|Ma+ab,Ea.a=0|La+_a+(Ma>>>0>>0?1:0),Oa=Fa.b=0|Oa+cb,Fa.a=0|Na+bb+(Oa>>>0>>0?1:0),Qa=Ga.b=0|Qa+eb,Ga.a=0|Pa+db+(Qa>>>0>>0?1:0),Sa=Ha.b=0|Sa+gb,Ha.a=0|Ra+fb+(Sa>>>0>>0?1:0),Ua=Ia.b=0|Ua+ib,Ia.a=0|Ta+hb+(Ua>>>0>>0?1:0),Wa=Ja.b=0|Wa+kb,Ja.a=0|Va+jb+(Wa>>>0>>0?1:0),Ya=Ka.b=0|Ya+mb,Ka.a=0|Xa+lb+(Ya>>>0>>0?1:0),$a=Da.b=0|$a+ob,Da.a=0|Za+nb+($a>>>0>>0?1:0)},G:function(){var o=this.g,_=o.d,Da=8*this.j,Ea=8*o.c;_[Ea>>>5]|=128<<24-Ea%32,_[(Ea+128>>>10<<5)+31]=Da,o.c=4*_.length,this.m(),this.f=this.f.v()},n:32}),t.k=xa.D(M),t.L=xa.F(M);export default function sha512 (o){return t.k(o)+""}; \ No newline at end of file diff --git a/src/tsconfig.json b/src/tsconfig.json new file mode 100644 index 0000000..f08cfa9 --- /dev/null +++ b/src/tsconfig.json @@ -0,0 +1,6 @@ +{ + "compilerOptions": { + "module": "esnext", + "sourceMap": true + } +} \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..235f88c --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,12 @@ +{ + "compilerOptions": { + "module": "commonjs", + // "noImplicitAny": true, + // "removeComments": true, + // "preserveConstEnums": true, + // "sourceMap": true + }, + "include": [ + "build.ts" + ] +} \ No newline at end of file