(function(l, r) { if (l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (window.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(window.document); var app = (function () { 'use strict'; function noop() { } function assign(tar, src) { // @ts-ignore for (const k in src) tar[k] = src[k]; return tar; } 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 is_empty(obj) { return Object.keys(obj).length === 0; } function create_slot(definition, ctx, $$scope, fn) { if (definition) { const slot_ctx = get_slot_context(definition, ctx, $$scope, fn); return definition[0](slot_ctx); } } function get_slot_context(definition, ctx, $$scope, fn) { return definition[1] && fn ? assign($$scope.ctx.slice(), definition[1](fn(ctx))) : $$scope.ctx; } function get_slot_changes(definition, $$scope, dirty, fn) { if (definition[2] && fn) { const lets = definition[2](fn(dirty)); if ($$scope.dirty === undefined) { return lets; } if (typeof lets === 'object') { const merged = []; const len = Math.max($$scope.dirty.length, lets.length); for (let i = 0; i < len; i += 1) { merged[i] = $$scope.dirty[i] | lets[i]; } return merged; } return $$scope.dirty | lets; } return $$scope.dirty; } function update_slot(slot, slot_definition, ctx, $$scope, dirty, get_slot_changes_fn, get_slot_context_fn) { const slot_changes = get_slot_changes(slot_definition, $$scope, dirty, get_slot_changes_fn); if (slot_changes) { const slot_context = get_slot_context(slot_definition, ctx, $$scope, get_slot_context_fn); slot.p(slot_context, slot_changes); } } function exclude_internal_props(props) { const result = {}; for (const k in props) if (k[0] !== '$') result[k] = props[k]; return result; } function compute_rest_props(props, keys) { const rest = {}; keys = new Set(keys); for (const k in props) if (!keys.has(k) && k[0] !== '$') rest[k] = props[k]; return rest; } function action_destroyer(action_result) { return action_result && is_function(action_result.destroy) ? action_result.destroy : noop; } 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 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 listen(node, event, handler, options) { node.addEventListener(event, handler, options); return () => node.removeEventListener(event, handler, options); } function attr(node, attribute, value) { if (value == null) node.removeAttribute(attribute); else if (node.getAttribute(attribute) !== value) node.setAttribute(attribute, value); } function set_attributes(node, attributes) { // @ts-ignore const descriptors = Object.getOwnPropertyDescriptors(node.__proto__); for (const key in attributes) { if (attributes[key] == null) { node.removeAttribute(key); } else if (key === 'style') { node.style.cssText = attributes[key]; } else if (key === '__value') { node.value = node[key] = attributes[key]; } else if (descriptors[key] && descriptors[key].set) { node[key] = attributes[key]; } else { attr(node, key, attributes[key]); } } } function children(element) { return Array.from(element.childNodes); } 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 current_component; function set_current_component(component) { current_component = component; } // 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 binding_callbacks = []; const render_callbacks = []; const flush_callbacks = []; const resolved_promise = Promise.resolve(); let update_scheduled = false; function schedule_update() { if (!update_scheduled) { update_scheduled = true; resolved_promise.then(flush); } } function add_render_callback(fn) { render_callbacks.push(fn); } let flushing = false; const seen_callbacks = new Set(); function flush() { if (flushing) return; flushing = true; do { // first, call beforeUpdate functions // and update components for (let i = 0; i < dirty_components.length; i += 1) { const component = dirty_components[i]; set_current_component(component); update(component.$$); } set_current_component(null); dirty_components.length = 0; while (binding_callbacks.length) binding_callbacks.pop()(); // then, once components are updated, call // afterUpdate functions. This may cause // subsequent updates... for (let i = 0; i < render_callbacks.length; i += 1) { const callback = render_callbacks[i]; if (!seen_callbacks.has(callback)) { // ...so guard against infinite loops seen_callbacks.add(callback); callback(); } } render_callbacks.length = 0; } while (dirty_components.length); while (flush_callbacks.length) { flush_callbacks.pop()(); } update_scheduled = false; flushing = false; seen_callbacks.clear(); } function update($$) { if ($$.fragment !== null) { $$.update(); run_all($$.before_update); const dirty = $$.dirty; $$.dirty = [-1]; $$.fragment && $$.fragment.p($$.ctx, dirty); $$.after_update.forEach(add_render_callback); } } const outroing = new Set(); let outros; function transition_in(block, local) { if (block && block.i) { outroing.delete(block); block.i(local); } } function transition_out(block, local, detach, callback) { if (block && block.o) { if (outroing.has(block)) return; outroing.add(block); outros.c.push(() => { outroing.delete(block); if (callback) { if (detach) block.d(1); callback(); } }); block.o(local); } } 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; } function create_component(block) { block && block.c(); } function mount_component(component, target, anchor, customElement) { const { fragment, on_mount, on_destroy, after_update } = component.$$; fragment && fragment.m(target, anchor); if (!customElement) { // onMount happens before the initial afterUpdate 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_update.forEach(add_render_callback); } function destroy_component(component, detaching) { const $$ = component.$$; if ($$.fragment !== null) { run_all($$.on_destroy); $$.fragment && $$.fragment.d(detaching); // TODO null out other refs, including component.$$ (but need to // preserve final state?) $$.on_destroy = $$.fragment = null; $$.ctx = []; } } function make_dirty(component, i) { if (component.$$.dirty[0] === -1) { dirty_components.push(component); schedule_update(); component.$$.dirty.fill(0); } component.$$.dirty[(i / 31) | 0] |= (1 << (i % 31)); } function init(component, options, instance, create_fragment, not_equal, props, dirty = [-1]) { const parent_component = current_component; set_current_component(component); const $$ = component.$$ = { fragment: null, ctx: null, // state props, update: noop, not_equal, bound: blank_object(), // lifecycle on_mount: [], on_destroy: [], on_disconnect: [], before_update: [], after_update: [], context: new Map(parent_component ? parent_component.$$.context : []), // everything else callbacks: blank_object(), dirty, skip_bound: false }; let ready = false; $$.ctx = instance ? instance(component, options.props || {}, (i, ret, ...rest) => { const value = rest.length ? rest[0] : ret; if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) { if (!$$.skip_bound && $$.bound[i]) $$.bound[i](value); if (ready) make_dirty(component, i); } return ret; }) : []; $$.update(); ready = true; run_all($$.before_update); // `false` as a special case of no DOM component $$.fragment = create_fragment ? create_fragment($$.ctx) : false; if (options.target) { if (options.hydrate) { const nodes = children(options.target); // eslint-disable-next-line @typescript-eslint/no-non-null-assertion $$.fragment && $$.fragment.l(nodes); nodes.forEach(detach); } else { // eslint-disable-next-line @typescript-eslint/no-non-null-assertion $$.fragment && $$.fragment.c(); } if (options.intro) transition_in(component.$$.fragment); mount_component(component, options.target, options.anchor, options.customElement); flush(); } set_current_component(parent_component); } /** * Base class for Svelte components. Used when dev=false. */ class SvelteComponent { $destroy() { destroy_component(this, 1); 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($$props) { if (this.$$set && !is_empty($$props)) { this.$$.skip_bound = true; this.$$set($$props); this.$$.skip_bound = false; } } } function dispatch_dev(type, detail) { document.dispatchEvent(custom_event(type, Object.assign({ version: '3.35.0' }, detail))); } function append_dev(target, node) { dispatch_dev('SvelteDOMInsert', { target, node }); append(target, node); } function insert_dev(target, node, anchor) { dispatch_dev('SvelteDOMInsert', { target, node, anchor }); insert(target, node, anchor); } function detach_dev(node) { dispatch_dev('SvelteDOMRemove', { node }); detach(node); } function listen_dev(node, event, handler, options, has_prevent_default, has_stop_propagation) { const modifiers = options === true ? ['capture'] : options ? Array.from(Object.keys(options)) : []; if (has_prevent_default) modifiers.push('preventDefault'); if (has_stop_propagation) modifiers.push('stopPropagation'); dispatch_dev('SvelteDOMAddEventListener', { node, event, handler, modifiers }); const dispose = listen(node, event, handler, options); return () => { dispatch_dev('SvelteDOMRemoveEventListener', { node, event, handler, modifiers }); dispose(); }; } function attr_dev(node, attribute, value) { attr(node, attribute, value); if (value == null) dispatch_dev('SvelteDOMRemoveAttribute', { node, attribute }); else dispatch_dev('SvelteDOMSetAttribute', { node, attribute, value }); } function set_data_dev(text, data) { data = '' + data; if (text.wholeText === data) return; dispatch_dev('SvelteDOMSetData', { node: text, data }); text.data = data; } function validate_slots(name, slot, keys) { for (const slot_key of Object.keys(slot)) { if (!~keys.indexOf(slot_key)) { console.warn(`<${name}> received an unexpected slot "${slot_key}".`); } } } /** * Base class for Svelte components with some minor dev-enhancements. Used when dev=true. */ 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 }; } $capture_state() { } $inject_state() { } } /* eslint-disable no-param-reassign */ /** * Options for customizing ripples */ const defaults = { color: 'currentColor', class: '', opacity: 0.1, centered: false, spreadingDuration: '.4s', spreadingDelay: '0s', spreadingTimingFunction: 'linear', clearingDuration: '1s', clearingDelay: '0s', clearingTimingFunction: 'ease-in-out', }; /** * Creates a ripple element but does not destroy it (use RippleStop for that) * * @param {Event} e * @param {*} options * @returns Ripple element */ function RippleStart(e, options = {}) { e.stopImmediatePropagation(); const opts = { ...defaults, ...options }; const isTouchEvent = e.touches ? !!e.touches[0] : false; // Parent element const target = isTouchEvent ? e.touches[0].currentTarget : e.currentTarget; // Create ripple const ripple = document.createElement('div'); const rippleStyle = ripple.style; // Adding default stuff ripple.className = `material-ripple ${opts.class}`; rippleStyle.position = 'absolute'; rippleStyle.color = 'inherit'; rippleStyle.borderRadius = '50%'; rippleStyle.pointerEvents = 'none'; rippleStyle.width = '100px'; rippleStyle.height = '100px'; rippleStyle.marginTop = '-50px'; rippleStyle.marginLeft = '-50px'; target.appendChild(ripple); rippleStyle.opacity = opts.opacity; rippleStyle.transition = `transform ${opts.spreadingDuration} ${opts.spreadingTimingFunction} ${opts.spreadingDelay},opacity ${opts.clearingDuration} ${opts.clearingTimingFunction} ${opts.clearingDelay}`; rippleStyle.transform = 'scale(0) translate(0,0)'; rippleStyle.background = opts.color; // Positioning ripple const targetRect = target.getBoundingClientRect(); if (opts.centered) { rippleStyle.top = `${targetRect.height / 2}px`; rippleStyle.left = `${targetRect.width / 2}px`; } else { const distY = isTouchEvent ? e.touches[0].clientY : e.clientY; const distX = isTouchEvent ? e.touches[0].clientX : e.clientX; rippleStyle.top = `${distY - targetRect.top}px`; rippleStyle.left = `${distX - targetRect.left}px`; } // Enlarge ripple rippleStyle.transform = `scale(${ Math.max(targetRect.width, targetRect.height) * 0.02 }) translate(0,0)`; return ripple; } /** * Destroys the ripple, slowly fading it out. * * @param {Element} ripple */ function RippleStop(ripple) { if (ripple) { ripple.addEventListener('transitionend', (e) => { if (e.propertyName === 'opacity') ripple.remove(); }); ripple.style.opacity = 0; } } /** * @param node {Element} */ var Ripple = (node, _options = {}) => { let options = _options; let destroyed = false; let ripple; let keyboardActive = false; const handleStart = (e) => { ripple = RippleStart(e, options); }; const handleStop = () => RippleStop(ripple); const handleKeyboardStart = (e) => { if (!keyboardActive && (e.keyCode === 13 || e.keyCode === 32)) { ripple = RippleStart(e, { ...options, centered: true }); keyboardActive = true; } }; const handleKeyboardStop = () => { keyboardActive = false; handleStop(); }; function setup() { node.classList.add('s-ripple-container'); node.addEventListener('pointerdown', handleStart); node.addEventListener('pointerup', handleStop); node.addEventListener('pointerleave', handleStop); node.addEventListener('keydown', handleKeyboardStart); node.addEventListener('keyup', handleKeyboardStop); destroyed = false; } function destroy() { node.classList.remove('s-ripple-container'); node.removeEventListener('pointerdown', handleStart); node.removeEventListener('pointerup', handleStop); node.removeEventListener('pointerleave', handleStop); node.removeEventListener('keydown', handleKeyboardStart); node.removeEventListener('keyup', handleKeyboardStop); destroyed = true; } if (options) setup(); return { update(newOptions) { options = newOptions; if (options && destroyed) setup(); else if (!(options || destroyed)) destroy(); }, destroy, }; }; /* node_modules/svelte-materialify/dist/components/MaterialApp/MaterialApp.svelte generated by Svelte v3.35.0 */ const file$3 = "node_modules/svelte-materialify/dist/components/MaterialApp/MaterialApp.svelte"; function create_fragment$3(ctx) { let div; let div_class_value; let current; const default_slot_template = /*#slots*/ ctx[2].default; const default_slot = create_slot(default_slot_template, ctx, /*$$scope*/ ctx[1], null); const block = { c: function create() { div = element("div"); if (default_slot) default_slot.c(); attr_dev(div, "class", div_class_value = "s-app theme--" + /*theme*/ ctx[0]); add_location(div, file$3, 12, 0, 203001); }, 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) { insert_dev(target, div, anchor); if (default_slot) { default_slot.m(div, null); } current = true; }, p: function update(ctx, [dirty]) { if (default_slot) { if (default_slot.p && dirty & /*$$scope*/ 2) { update_slot(default_slot, default_slot_template, ctx, /*$$scope*/ ctx[1], dirty, null, null); } } if (!current || dirty & /*theme*/ 1 && div_class_value !== (div_class_value = "s-app theme--" + /*theme*/ ctx[0])) { attr_dev(div, "class", div_class_value); } }, i: function intro(local) { if (current) return; transition_in(default_slot, local); current = true; }, o: function outro(local) { transition_out(default_slot, local); current = false; }, d: function destroy(detaching) { if (detaching) detach_dev(div); if (default_slot) default_slot.d(detaching); } }; dispatch_dev("SvelteRegisterBlock", { block, id: create_fragment$3.name, type: "component", source: "", ctx }); return block; } function instance$3($$self, $$props, $$invalidate) { let { $$slots: slots = {}, $$scope } = $$props; validate_slots("MaterialApp", slots, ['default']); let { theme = "light" } = $$props; const writable_props = ["theme"]; Object.keys($$props).forEach(key => { if (!~writable_props.indexOf(key) && key.slice(0, 2) !== "$$") console.warn(` was created with unknown prop '${key}'`); }); $$self.$$set = $$props => { if ("theme" in $$props) $$invalidate(0, theme = $$props.theme); if ("$$scope" in $$props) $$invalidate(1, $$scope = $$props.$$scope); }; $$self.$capture_state = () => ({ theme }); $$self.$inject_state = $$props => { if ("theme" in $$props) $$invalidate(0, theme = $$props.theme); }; if ($$props && "$$inject" in $$props) { $$self.$inject_state($$props.$$inject); } return [theme, $$scope, slots]; } class MaterialApp extends SvelteComponentDev { constructor(options) { super(options); init(this, options, instance$3, create_fragment$3, safe_not_equal, { theme: 0 }); dispatch_dev("SvelteRegisterComponent", { component: this, tagName: "MaterialApp", options, id: create_fragment$3.name }); } get theme() { throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); } set theme(value) { throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); } } function format$1(input) { if (typeof input === 'number') return `${input}px`; return input; } /** * @param node {Element} * @param styles {Object} */ var Style = (node, _styles) => { let styles = _styles; Object.entries(styles).forEach(([key, value]) => { if (value) node.style.setProperty(`--s-${key}`, format$1(value)); }); return { update(newStyles) { Object.entries(newStyles).forEach(([key, value]) => { if (value) { node.style.setProperty(`--s-${key}`, format$1(value)); delete styles[key]; } }); Object.keys(styles).forEach((name) => node.style.removeProperty(`--s-${name}`)); styles = newStyles; }, }; }; /* node_modules/svelte-materialify/dist/components/Icon/Icon.svelte generated by Svelte v3.35.0 */ const file$2 = "node_modules/svelte-materialify/dist/components/Icon/Icon.svelte"; // (34:2) {#if path} function create_if_block(ctx) { let svg; let path_1; let svg_viewBox_value; let if_block = /*label*/ ctx[10] && create_if_block_1(ctx); const block = { c: function create() { svg = svg_element("svg"); path_1 = svg_element("path"); if (if_block) if_block.c(); attr_dev(path_1, "d", /*path*/ ctx[9]); add_location(path_1, file$2, 39, 6, 1586); attr_dev(svg, "xmlns", "http://www.w3.org/2000/svg"); attr_dev(svg, "width", /*width*/ ctx[0]); attr_dev(svg, "height", /*height*/ ctx[1]); attr_dev(svg, "viewBox", svg_viewBox_value = "0 0 " + /*viewWidth*/ ctx[4] + " " + /*viewHeight*/ ctx[5]); add_location(svg, file$2, 34, 4, 1454); }, m: function mount(target, anchor) { insert_dev(target, svg, anchor); append_dev(svg, path_1); if (if_block) if_block.m(path_1, null); }, p: function update(ctx, dirty) { if (/*label*/ ctx[10]) { if (if_block) { if_block.p(ctx, dirty); } else { if_block = create_if_block_1(ctx); if_block.c(); if_block.m(path_1, null); } } else if (if_block) { if_block.d(1); if_block = null; } if (dirty & /*path*/ 512) { attr_dev(path_1, "d", /*path*/ ctx[9]); } if (dirty & /*width*/ 1) { attr_dev(svg, "width", /*width*/ ctx[0]); } if (dirty & /*height*/ 2) { attr_dev(svg, "height", /*height*/ ctx[1]); } if (dirty & /*viewWidth, viewHeight*/ 48 && svg_viewBox_value !== (svg_viewBox_value = "0 0 " + /*viewWidth*/ ctx[4] + " " + /*viewHeight*/ ctx[5])) { attr_dev(svg, "viewBox", svg_viewBox_value); } }, d: function destroy(detaching) { if (detaching) detach_dev(svg); if (if_block) if_block.d(); } }; dispatch_dev("SvelteRegisterBlock", { block, id: create_if_block.name, type: "if", source: "(34:2) {#if path}", ctx }); return block; } // (41:8) {#if label} function create_if_block_1(ctx) { let title; let t; const block = { c: function create() { title = svg_element("title"); t = text(/*label*/ ctx[10]); add_location(title, file$2, 41, 10, 1634); }, m: function mount(target, anchor) { insert_dev(target, title, anchor); append_dev(title, t); }, p: function update(ctx, dirty) { if (dirty & /*label*/ 1024) set_data_dev(t, /*label*/ ctx[10]); }, d: function destroy(detaching) { if (detaching) detach_dev(title); } }; dispatch_dev("SvelteRegisterBlock", { block, id: create_if_block_1.name, type: "if", source: "(41:8) {#if label}", ctx }); return block; } function create_fragment$2(ctx) { let i; let t; let i_class_value; let Style_action; let current; let mounted; let dispose; let if_block = /*path*/ ctx[9] && create_if_block(ctx); const default_slot_template = /*#slots*/ ctx[13].default; const default_slot = create_slot(default_slot_template, ctx, /*$$scope*/ ctx[12], null); const block = { c: function create() { i = element("i"); if (if_block) if_block.c(); t = space(); if (default_slot) default_slot.c(); attr_dev(i, "aria-hidden", "true"); attr_dev(i, "class", i_class_value = "s-icon " + /*klass*/ ctx[2]); attr_dev(i, "aria-label", /*label*/ ctx[10]); attr_dev(i, "aria-disabled", /*disabled*/ ctx[8]); attr_dev(i, "style", /*style*/ ctx[11]); toggle_class(i, "spin", /*spin*/ ctx[7]); toggle_class(i, "disabled", /*disabled*/ ctx[8]); add_location(i, file$2, 24, 0, 1222); }, 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) { insert_dev(target, i, anchor); if (if_block) if_block.m(i, null); append_dev(i, t); if (default_slot) { default_slot.m(i, null); } current = true; if (!mounted) { dispose = action_destroyer(Style_action = Style.call(null, i, { "icon-size": /*size*/ ctx[3], "icon-rotate": `${/*rotate*/ ctx[6]}deg` })); mounted = true; } }, p: function update(ctx, [dirty]) { if (/*path*/ ctx[9]) { if (if_block) { if_block.p(ctx, dirty); } else { if_block = create_if_block(ctx); if_block.c(); if_block.m(i, t); } } else if (if_block) { if_block.d(1); if_block = null; } if (default_slot) { if (default_slot.p && dirty & /*$$scope*/ 4096) { update_slot(default_slot, default_slot_template, ctx, /*$$scope*/ ctx[12], dirty, null, null); } } if (!current || dirty & /*klass*/ 4 && i_class_value !== (i_class_value = "s-icon " + /*klass*/ ctx[2])) { attr_dev(i, "class", i_class_value); } if (!current || dirty & /*label*/ 1024) { attr_dev(i, "aria-label", /*label*/ ctx[10]); } if (!current || dirty & /*disabled*/ 256) { attr_dev(i, "aria-disabled", /*disabled*/ ctx[8]); } if (!current || dirty & /*style*/ 2048) { attr_dev(i, "style", /*style*/ ctx[11]); } if (Style_action && is_function(Style_action.update) && dirty & /*size, rotate*/ 72) Style_action.update.call(null, { "icon-size": /*size*/ ctx[3], "icon-rotate": `${/*rotate*/ ctx[6]}deg` }); if (dirty & /*klass, spin*/ 132) { toggle_class(i, "spin", /*spin*/ ctx[7]); } if (dirty & /*klass, disabled*/ 260) { toggle_class(i, "disabled", /*disabled*/ ctx[8]); } }, i: function intro(local) { if (current) return; transition_in(default_slot, local); current = true; }, o: function outro(local) { transition_out(default_slot, local); current = false; }, d: function destroy(detaching) { if (detaching) detach_dev(i); if (if_block) if_block.d(); if (default_slot) default_slot.d(detaching); mounted = false; dispose(); } }; dispatch_dev("SvelteRegisterBlock", { block, id: create_fragment$2.name, type: "component", source: "", ctx }); return block; } function instance$2($$self, $$props, $$invalidate) { let { $$slots: slots = {}, $$scope } = $$props; validate_slots("Icon", slots, ['default']); let { class: klass = "" } = $$props; let { size = "24px" } = $$props; let { width = size } = $$props; let { height = size } = $$props; let { viewWidth = "24" } = $$props; let { viewHeight = "24" } = $$props; let { rotate = 0 } = $$props; let { spin = false } = $$props; let { disabled = false } = $$props; let { path = null } = $$props; let { label = null } = $$props; let { style = null } = $$props; const writable_props = [ "class", "size", "width", "height", "viewWidth", "viewHeight", "rotate", "spin", "disabled", "path", "label", "style" ]; Object.keys($$props).forEach(key => { if (!~writable_props.indexOf(key) && key.slice(0, 2) !== "$$") console.warn(` was created with unknown prop '${key}'`); }); $$self.$$set = $$props => { if ("class" in $$props) $$invalidate(2, klass = $$props.class); if ("size" in $$props) $$invalidate(3, size = $$props.size); if ("width" in $$props) $$invalidate(0, width = $$props.width); if ("height" in $$props) $$invalidate(1, height = $$props.height); if ("viewWidth" in $$props) $$invalidate(4, viewWidth = $$props.viewWidth); if ("viewHeight" in $$props) $$invalidate(5, viewHeight = $$props.viewHeight); if ("rotate" in $$props) $$invalidate(6, rotate = $$props.rotate); if ("spin" in $$props) $$invalidate(7, spin = $$props.spin); if ("disabled" in $$props) $$invalidate(8, disabled = $$props.disabled); if ("path" in $$props) $$invalidate(9, path = $$props.path); if ("label" in $$props) $$invalidate(10, label = $$props.label); if ("style" in $$props) $$invalidate(11, style = $$props.style); if ("$$scope" in $$props) $$invalidate(12, $$scope = $$props.$$scope); }; $$self.$capture_state = () => ({ Style, klass, size, width, height, viewWidth, viewHeight, rotate, spin, disabled, path, label, style }); $$self.$inject_state = $$props => { if ("klass" in $$props) $$invalidate(2, klass = $$props.klass); if ("size" in $$props) $$invalidate(3, size = $$props.size); if ("width" in $$props) $$invalidate(0, width = $$props.width); if ("height" in $$props) $$invalidate(1, height = $$props.height); if ("viewWidth" in $$props) $$invalidate(4, viewWidth = $$props.viewWidth); if ("viewHeight" in $$props) $$invalidate(5, viewHeight = $$props.viewHeight); if ("rotate" in $$props) $$invalidate(6, rotate = $$props.rotate); if ("spin" in $$props) $$invalidate(7, spin = $$props.spin); if ("disabled" in $$props) $$invalidate(8, disabled = $$props.disabled); if ("path" in $$props) $$invalidate(9, path = $$props.path); if ("label" in $$props) $$invalidate(10, label = $$props.label); if ("style" in $$props) $$invalidate(11, style = $$props.style); }; if ($$props && "$$inject" in $$props) { $$self.$inject_state($$props.$$inject); } $$self.$$.update = () => { if ($$self.$$.dirty & /*size*/ 8) { { $$invalidate(0, width = size); $$invalidate(1, height = size); } } }; return [ width, height, klass, size, viewWidth, viewHeight, rotate, spin, disabled, path, label, style, $$scope, slots ]; } class Icon extends SvelteComponentDev { constructor(options) { super(options); init(this, options, instance$2, create_fragment$2, safe_not_equal, { class: 2, size: 3, width: 0, height: 1, viewWidth: 4, viewHeight: 5, rotate: 6, spin: 7, disabled: 8, path: 9, label: 10, style: 11 }); dispatch_dev("SvelteRegisterComponent", { component: this, tagName: "Icon", options, id: create_fragment$2.name }); } get class() { throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); } set class(value) { throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); } get size() { throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); } set size(value) { throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); } get width() { throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); } set width(value) { throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); } get height() { throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); } set height(value) { throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); } get viewWidth() { throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); } set viewWidth(value) { throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); } get viewHeight() { throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); } set viewHeight(value) { throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); } get rotate() { throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); } set rotate(value) { throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); } get spin() { throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); } set spin(value) { throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); } get disabled() { throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); } set disabled(value) { throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); } get path() { throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); } set path(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 style() { throw new Error(": Props cannot be read directly from the component instance unless compiling with 'accessors: true' or ''"); } set style(value) { throw new Error(": Props cannot be set directly on the component instance unless compiling with 'accessors: true' or ''"); } } const filter = (classes) => classes.filter((x) => !!x); const format = (classes) => classes.split(' ').filter((x) => !!x); /** * @param node {Element} * @param classes {Array} */ var Class = (node, _classes) => { let classes = _classes; node.classList.add(...format(filter(classes).join(' '))); return { update(_newClasses) { const newClasses = _newClasses; newClasses.forEach((klass, i) => { if (klass) node.classList.add(...format(klass)); else if (classes[i]) node.classList.remove(...format(classes[i])); }); classes = newClasses; }, }; }; /* node_modules/svelte-materialify/dist/components/Button/Button.svelte generated by Svelte v3.35.0 */ const file$1 = "node_modules/svelte-materialify/dist/components/Button/Button.svelte"; function create_fragment$1(ctx) { let button_1; let span; let button_1_class_value; let Class_action; let Ripple_action; let current; let mounted; let dispose; const default_slot_template = /*#slots*/ ctx[19].default; const default_slot = create_slot(default_slot_template, ctx, /*$$scope*/ ctx[18], null); let button_1_levels = [ { class: button_1_class_value = "s-btn size-" + /*size*/ ctx[5] + " " + /*klass*/ ctx[1] }, { type: /*type*/ ctx[14] }, { style: /*style*/ ctx[16] }, { disabled: /*disabled*/ ctx[11] }, { "aria-disabled": /*disabled*/ ctx[11] }, /*$$restProps*/ ctx[17] ]; let button_1_data = {}; for (let i = 0; i < button_1_levels.length; i += 1) { button_1_data = assign(button_1_data, button_1_levels[i]); } const block_1 = { c: function create() { button_1 = element("button"); span = element("span"); if (default_slot) default_slot.c(); attr_dev(span, "class", "s-btn__content"); add_location(span, file$1, 46, 2, 5233); set_attributes(button_1, button_1_data); toggle_class(button_1, "s-btn--fab", /*fab*/ ctx[2]); toggle_class(button_1, "icon", /*icon*/ ctx[3]); toggle_class(button_1, "block", /*block*/ ctx[4]); toggle_class(button_1, "tile", /*tile*/ ctx[6]); toggle_class(button_1, "text", /*text*/ ctx[7] || /*icon*/ ctx[3]); toggle_class(button_1, "depressed", /*depressed*/ ctx[8] || /*text*/ ctx[7] || /*disabled*/ ctx[11] || /*outlined*/ ctx[9] || /*icon*/ ctx[3]); toggle_class(button_1, "outlined", /*outlined*/ ctx[9]); toggle_class(button_1, "rounded", /*rounded*/ ctx[10]); toggle_class(button_1, "disabled", /*disabled*/ ctx[11]); add_location(button_1, file$1, 26, 0, 4783); }, 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) { insert_dev(target, button_1, anchor); append_dev(button_1, span); if (default_slot) { default_slot.m(span, null); } /*button_1_binding*/ ctx[21](button_1); current = true; if (!mounted) { dispose = [ action_destroyer(Class_action = Class.call(null, button_1, [/*active*/ ctx[12] && /*activeClass*/ ctx[13]])), action_destroyer(Ripple_action = Ripple.call(null, button_1, /*ripple*/ ctx[15])), listen_dev(button_1, "click", /*click_handler*/ ctx[20], false, false, false) ]; mounted = true; } }, p: function update(ctx, [dirty]) { if (default_slot) { if (default_slot.p && dirty & /*$$scope*/ 262144) { update_slot(default_slot, default_slot_template, ctx, /*$$scope*/ ctx[18], dirty, null, null); } } set_attributes(button_1, button_1_data = get_spread_update(button_1_levels, [ (!current || dirty & /*size, klass*/ 34 && button_1_class_value !== (button_1_class_value = "s-btn size-" + /*size*/ ctx[5] + " " + /*klass*/ ctx[1])) && { class: button_1_class_value }, (!current || dirty & /*type*/ 16384) && { type: /*type*/ ctx[14] }, (!current || dirty & /*style*/ 65536) && { style: /*style*/ ctx[16] }, (!current || dirty & /*disabled*/ 2048) && { disabled: /*disabled*/ ctx[11] }, (!current || dirty & /*disabled*/ 2048) && { "aria-disabled": /*disabled*/ ctx[11] }, dirty & /*$$restProps*/ 131072 && /*$$restProps*/ ctx[17] ])); if (Class_action && is_function(Class_action.update) && dirty & /*active, activeClass*/ 12288) Class_action.update.call(null, [/*active*/ ctx[12] && /*activeClass*/ ctx[13]]); if (Ripple_action && is_function(Ripple_action.update) && dirty & /*ripple*/ 32768) Ripple_action.update.call(null, /*ripple*/ ctx[15]); toggle_class(button_1, "s-btn--fab", /*fab*/ ctx[2]); toggle_class(button_1, "icon", /*icon*/ ctx[3]); toggle_class(button_1, "block", /*block*/ ctx[4]); toggle_class(button_1, "tile", /*tile*/ ctx[6]); toggle_class(button_1, "text", /*text*/ ctx[7] || /*icon*/ ctx[3]); toggle_class(button_1, "depressed", /*depressed*/ ctx[8] || /*text*/ ctx[7] || /*disabled*/ ctx[11] || /*outlined*/ ctx[9] || /*icon*/ ctx[3]); toggle_class(button_1, "outlined", /*outlined*/ ctx[9]); toggle_class(button_1, "rounded", /*rounded*/ ctx[10]); toggle_class(button_1, "disabled", /*disabled*/ ctx[11]); }, i: function intro(local) { if (current) return; transition_in(default_slot, local); current = true; }, o: function outro(local) { transition_out(default_slot, local); current = false; }, d: function destroy(detaching) { if (detaching) detach_dev(button_1); if (default_slot) default_slot.d(detaching); /*button_1_binding*/ ctx[21](null); mounted = false; run_all(dispose); } }; dispatch_dev("SvelteRegisterBlock", { block: block_1, id: create_fragment$1.name, type: "component", source: "", ctx }); return block_1; } function instance$1($$self, $$props, $$invalidate) { const omit_props_names = [ "class","fab","icon","block","size","tile","text","depressed","outlined","rounded","disabled","active","activeClass","type","ripple","style","button" ]; let $$restProps = compute_rest_props($$props, omit_props_names); let { $$slots: slots = {}, $$scope } = $$props; validate_slots("Button", slots, ['default']); let { class: klass = "" } = $$props; let { fab = false } = $$props; let { icon = false } = $$props; let { block = false } = $$props; let { size = "default" } = $$props; let { tile = false } = $$props; let { text = false } = $$props; let { depressed = false } = $$props; let { outlined = false } = $$props; let { rounded = false } = $$props; let { disabled = null } = $$props; let { active = false } = $$props; let { activeClass = "active" } = $$props; let { type = "button" } = $$props; let { ripple = {} } = $$props; let { style = null } = $$props; let { button = null } = $$props; function click_handler(event) { bubble($$self, event); } function button_1_binding($$value) { binding_callbacks[$$value ? "unshift" : "push"](() => { button = $$value; $$invalidate(0, button); }); } $$self.$$set = $$new_props => { $$props = assign(assign({}, $$props), exclude_internal_props($$new_props)); $$invalidate(17, $$restProps = compute_rest_props($$props, omit_props_names)); if ("class" in $$new_props) $$invalidate(1, klass = $$new_props.class); if ("fab" in $$new_props) $$invalidate(2, fab = $$new_props.fab); if ("icon" in $$new_props) $$invalidate(3, icon = $$new_props.icon); if ("block" in $$new_props) $$invalidate(4, block = $$new_props.block); if ("size" in $$new_props) $$invalidate(5, size = $$new_props.size); if ("tile" in $$new_props) $$invalidate(6, tile = $$new_props.tile); if ("text" in $$new_props) $$invalidate(7, text = $$new_props.text); if ("depressed" in $$new_props) $$invalidate(8, depressed = $$new_props.depressed); if ("outlined" in $$new_props) $$invalidate(9, outlined = $$new_props.outlined); if ("rounded" in $$new_props) $$invalidate(10, rounded = $$new_props.rounded); if ("disabled" in $$new_props) $$invalidate(11, disabled = $$new_props.disabled); if ("active" in $$new_props) $$invalidate(12, active = $$new_props.active); if ("activeClass" in $$new_props) $$invalidate(13, activeClass = $$new_props.activeClass); if ("type" in $$new_props) $$invalidate(14, type = $$new_props.type); if ("ripple" in $$new_props) $$invalidate(15, ripple = $$new_props.ripple); if ("style" in $$new_props) $$invalidate(16, style = $$new_props.style); if ("button" in $$new_props) $$invalidate(0, button = $$new_props.button); if ("$$scope" in $$new_props) $$invalidate(18, $$scope = $$new_props.$$scope); }; $$self.$capture_state = () => ({ Ripple, Class, klass, fab, icon, block, size, tile, text, depressed, outlined, rounded, disabled, active, activeClass, type, ripple, style, button }); $$self.$inject_state = $$new_props => { if ("klass" in $$props) $$invalidate(1, klass = $$new_props.klass); if ("fab" in $$props) $$invalidate(2, fab = $$new_props.fab); if ("icon" in $$props) $$invalidate(3, icon = $$new_props.icon); if ("block" in $$props) $$invalidate(4, block = $$new_props.block); if ("size" in $$props) $$invalidate(5, size = $$new_props.size); if ("tile" in $$props) $$invalidate(6, tile = $$new_props.tile); if ("text" in $$props) $$invalidate(7, text = $$new_props.text); if ("depressed" in $$props) $$invalidate(8, depressed = $$new_props.depressed); if ("outlined" in $$props) $$invalidate(9, outlined = $$new_props.outlined); if ("rounded" in $$props) $$invalidate(10, rounded = $$new_props.rounded); if ("disabled" in $$props) $$invalidate(11, disabled = $$new_props.disabled); if ("active" in $$props) $$invalidate(12, active = $$new_props.active); if ("activeClass" in $$props) $$invalidate(13, activeClass = $$new_props.activeClass); if ("type" in $$props) $$invalidate(14, type = $$new_props.type); if ("ripple" in $$props) $$invalidate(15, ripple = $$new_props.ripple); if ("style" in $$props) $$invalidate(16, style = $$new_props.style); if ("button" in $$props) $$invalidate(0, button = $$new_props.button); }; if ($$props && "$$inject" in $$props) { $$self.$inject_state($$props.$$inject); } return [ button, klass, fab, icon, block, size, tile, text, depressed, outlined, rounded, disabled, active, activeClass, type, ripple, style, $$restProps, $$scope, slots, click_handler, button_1_binding ]; } class Button extends SvelteComponentDev { constructor(options) { super(options); init(this, options, instance$1, create_fragment$1, safe_not_equal, { class: 1, fab: 2, icon: 3, block: 4, size: 5, tile: 6, text: 7, depressed: 8, outlined: 9, rounded: 10, disabled: 11, active: 12, activeClass: 13, type: 14, ripple: 15, style: 16, button: 0 }); dispatch_dev("SvelteRegisterComponent", { component: this, tagName: "Button", options, id: create_fragment$1.name }); } get class() { throw new Error("