1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099 |
- function noop() {}
- function assign(tar, src) {
- for (var k in src) tar[k] = src[k];
- return tar;
- }
- function assignTrue(tar, src) {
- for (var k in src) tar[k] = 1;
- return tar;
- }
- function isPromise(value) {
- return value && typeof value.then === 'function';
- }
- function callAfter(fn, i) {
- if (i === 0) fn();
- return () => {
- if (!--i) fn();
- };
- }
- function addLoc(element, file, line, column, char) {
- element.__svelte_meta = {
- loc: { file, line, column, char }
- };
- }
- function exclude(src, prop) {
- const tar = {};
- for (const k in src) k === prop || (tar[k] = src[k]);
- return tar;
- }
- function run(fn) {
- fn();
- }
- function append(target, node) {
- target.appendChild(node);
- }
- function insert(target, node, anchor) {
- target.insertBefore(node, anchor);
- }
- function detachNode(node) {
- node.parentNode.removeChild(node);
- }
- function detachBetween(before, after) {
- while (before.nextSibling && before.nextSibling !== after) {
- before.parentNode.removeChild(before.nextSibling);
- }
- }
- function detachBefore(after) {
- while (after.previousSibling) {
- after.parentNode.removeChild(after.previousSibling);
- }
- }
- function detachAfter(before) {
- while (before.nextSibling) {
- before.parentNode.removeChild(before.nextSibling);
- }
- }
- function reinsertBetween(before, after, target) {
- while (before.nextSibling && before.nextSibling !== after) {
- target.appendChild(before.parentNode.removeChild(before.nextSibling));
- }
- }
- function reinsertChildren(parent, target) {
- while (parent.firstChild) target.appendChild(parent.firstChild);
- }
- function reinsertAfter(before, target) {
- while (before.nextSibling) target.appendChild(before.nextSibling);
- }
- function reinsertBefore(after, target) {
- var parent = after.parentNode;
- while (parent.firstChild !== after) target.appendChild(parent.firstChild);
- }
- function destroyEach(iterations, detach) {
- for (var i = 0; i < iterations.length; i += 1) {
- if (iterations[i]) iterations[i].d(detach);
- }
- }
- function createFragment() {
- return document.createDocumentFragment();
- }
- function createElement(name) {
- return document.createElement(name);
- }
- function createSvgElement(name) {
- return document.createElementNS('http://www.w3.org/2000/svg', name);
- }
- function createText(data) {
- return document.createTextNode(data);
- }
- function createComment() {
- return document.createComment('');
- }
- function addListener(node, event, handler, options) {
- node.addEventListener(event, handler, options);
- }
- function removeListener(node, event, handler, options) {
- node.removeEventListener(event, handler, options);
- }
- function setAttribute(node, attribute, value) {
- if (value == null) node.removeAttribute(attribute);
- else node.setAttribute(attribute, value);
- }
- function setAttributes(node, attributes) {
- for (var key in attributes) {
- if (key === 'style') {
- node.style.cssText = attributes[key];
- } else if (key in node) {
- node[key] = attributes[key];
- } else {
- setAttribute(node, key, attributes[key]);
- }
- }
- }
- function setCustomElementData(node, prop, value) {
- if (prop in node) {
- node[prop] = value;
- } else if (value) {
- setAttribute(node, prop, value);
- } else {
- node.removeAttribute(prop);
- }
- }
- function setXlinkAttribute(node, attribute, value) {
- node.setAttributeNS('http://www.w3.org/1999/xlink', attribute, value);
- }
- function getBindingGroupValue(group) {
- var value = [];
- for (var i = 0; i < group.length; i += 1) {
- if (group[i].checked) value.push(group[i].__value);
- }
- return value;
- }
- function toNumber(value) {
- return value === '' ? undefined : +value;
- }
- function timeRangesToArray(ranges) {
- var array = [];
- for (var 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 claimElement (nodes, name, attributes, svg) {
- for (var i = 0; i < nodes.length; i += 1) {
- var node = nodes[i];
- if (node.nodeName === name) {
- for (var j = 0; j < node.attributes.length; j += 1) {
- var attribute = node.attributes[j];
- if (!attributes[attribute.name]) node.removeAttribute(attribute.name);
- }
- return nodes.splice(i, 1)[0]; // TODO strip unwanted attributes
- }
- }
- return svg ? createSvgElement(name) : createElement(name);
- }
- function claimText (nodes, data) {
- for (var i = 0; i < nodes.length; i += 1) {
- var node = nodes[i];
- if (node.nodeType === 3) {
- node.data = data;
- return nodes.splice(i, 1)[0];
- }
- }
- return createText(data);
- }
- function setData(text, data) {
- text.data = '' + data;
- }
- function setInputType(input, type) {
- try {
- input.type = type;
- } catch (e) {}
- }
- function setStyle(node, key, value) {
- node.style.setProperty(key, value);
- }
- function selectOption(select, value) {
- for (var i = 0; i < select.options.length; i += 1) {
- var option = select.options[i];
- if (option.__value === value) {
- option.selected = true;
- return;
- }
- }
- }
- function selectOptions(select, value) {
- for (var i = 0; i < select.options.length; i += 1) {
- var option = select.options[i];
- option.selected = ~value.indexOf(option.__value);
- }
- }
- function selectValue(select) {
- var selectedOption = select.querySelector(':checked') || select.options[0];
- return selectedOption && selectedOption.__value;
- }
- function selectMultipleValue(select) {
- return [].map.call(select.querySelectorAll(':checked'), function(option) {
- return option.__value;
- });
- }
- function addResizeListener(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 toggleClass(element, name, toggle) {
- element.classList.toggle(name, !!toggle);
- }
- function linear(t) {
- return t;
- }
- function generateRule({ a, b, delta, duration }, ease, fn) {
- const step = 16.666 / duration;
- let keyframes = '{\n';
- for (let p = 0; p <= 1; p += step) {
- const t = a + delta * ease(p);
- keyframes += p * 100 + `%{${fn(t, 1 - t)}}\n`;
- }
- return keyframes + `100% {${fn(b, 1 - b)}}\n}`;
- }
- // 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 wrapTransition(component, node, fn, params, intro) {
- let obj = fn.call(component, node, params);
- let duration;
- let ease;
- let cssText;
- let initialised = false;
- return {
- t: intro ? 0 : 1,
- running: false,
- program: null,
- pending: null,
- run(b, callback) {
- if (typeof obj === 'function') {
- transitionManager.wait().then(() => {
- obj = obj();
- this._run(b, callback);
- });
- } else {
- this._run(b, callback);
- }
- },
- _run(b, callback) {
- duration = obj.duration || 300;
- ease = obj.easing || linear;
- const program = {
- start: window.performance.now() + (obj.delay || 0),
- b,
- callback: callback || noop
- };
- if (intro && !initialised) {
- if (obj.css && obj.delay) {
- cssText = node.style.cssText;
- node.style.cssText += obj.css(0, 1);
- }
- if (obj.tick) obj.tick(0, 1);
- initialised = true;
- }
- if (!b) {
- program.group = outros.current;
- outros.current.remaining += 1;
- }
- if (obj.delay) {
- this.pending = program;
- } else {
- this.start(program);
- }
- if (!this.running) {
- this.running = true;
- transitionManager.add(this);
- }
- },
- start(program) {
- component.fire(`${program.b ? 'intro' : 'outro'}.start`, { node });
- program.a = this.t;
- program.delta = program.b - program.a;
- program.duration = duration * Math.abs(program.b - program.a);
- program.end = program.start + program.duration;
- if (obj.css) {
- if (obj.delay) node.style.cssText = cssText;
- const rule = generateRule(program, ease, obj.css);
- transitionManager.addRule(rule, program.name = '__svelte_' + hash(rule));
- node.style.animation = (node.style.animation || '')
- .split(', ')
- .filter(anim => anim && (program.delta < 0 || !/__svelte/.test(anim)))
- .concat(`${program.name} ${program.duration}ms linear 1 forwards`)
- .join(', ');
- }
- this.program = program;
- this.pending = null;
- },
- update(now) {
- const program = this.program;
- if (!program) return;
- const p = now - program.start;
- this.t = program.a + program.delta * ease(p / program.duration);
- if (obj.tick) obj.tick(this.t, 1 - this.t);
- },
- done() {
- const program = this.program;
- this.t = program.b;
- if (obj.tick) obj.tick(this.t, 1 - this.t);
- component.fire(`${program.b ? 'intro' : 'outro'}.end`, { node });
- if (!program.b && !program.invalidated) {
- program.group.callbacks.push(() => {
- program.callback();
- if (obj.css) transitionManager.deleteRule(node, program.name);
- });
- if (--program.group.remaining === 0) {
- program.group.callbacks.forEach(run);
- }
- } else {
- if (obj.css) transitionManager.deleteRule(node, program.name);
- }
- this.running = !!this.pending;
- },
- abort(reset) {
- if (this.program) {
- if (reset && obj.tick) obj.tick(1, 0);
- if (obj.css) transitionManager.deleteRule(node, this.program.name);
- this.program = this.pending = null;
- this.running = false;
- }
- },
- invalidate() {
- if (this.program) {
- this.program.invalidated = true;
- }
- }
- };
- }
- let outros = {};
- function groupOutros() {
- outros.current = {
- remaining: 0,
- callbacks: []
- };
- }
- var transitionManager = {
- running: false,
- transitions: [],
- bound: null,
- stylesheet: null,
- activeRules: {},
- promise: null,
- add(transition) {
- this.transitions.push(transition);
- if (!this.running) {
- this.running = true;
- requestAnimationFrame(this.bound || (this.bound = this.next.bind(this)));
- }
- },
- addRule(rule, name) {
- if (!this.stylesheet) {
- const style = createElement('style');
- document.head.appendChild(style);
- transitionManager.stylesheet = style.sheet;
- }
- if (!this.activeRules[name]) {
- this.activeRules[name] = true;
- this.stylesheet.insertRule(`@keyframes ${name} ${rule}`, this.stylesheet.cssRules.length);
- }
- },
- next() {
- this.running = false;
- const now = window.performance.now();
- let i = this.transitions.length;
- while (i--) {
- const transition = this.transitions[i];
- if (transition.program && now >= transition.program.end) {
- transition.done();
- }
- if (transition.pending && now >= transition.pending.start) {
- transition.start(transition.pending);
- }
- if (transition.running) {
- transition.update(now);
- this.running = true;
- } else if (!transition.pending) {
- this.transitions.splice(i, 1);
- }
- }
- if (this.running) {
- requestAnimationFrame(this.bound);
- } else if (this.stylesheet) {
- let i = this.stylesheet.cssRules.length;
- while (i--) this.stylesheet.deleteRule(i);
- this.activeRules = {};
- }
- },
- deleteRule(node, name) {
- node.style.animation = node.style.animation
- .split(', ')
- .filter(anim => anim && anim.indexOf(name) === -1)
- .join(', ');
- },
- wait() {
- if (!transitionManager.promise) {
- transitionManager.promise = Promise.resolve();
- transitionManager.promise.then(() => {
- transitionManager.promise = null;
- });
- }
- return transitionManager.promise;
- }
- };
- function wrapAnimation(node, from, fn, params) {
- if (!from) return;
- const to = node.getBoundingClientRect();
- if (from.left === to.left && from.right === to.right && from.top === to.top && from.bottom === to.bottom) return;
- const info = fn(node, { from, to }, params);
- const duration = 'duration' in info ? info.duration : 300;
- const delay = 'delay' in info ? info.delay : 0;
- const ease = info.easing || linear;
- const start = window.performance.now() + delay;
- const end = start + duration;
- const program = {
- a: 0,
- t: 0,
- b: 1,
- delta: 1,
- duration,
- start,
- end
- };
- const cssText = node.style.cssText;
- const animation = {
- pending: delay ? program : null,
- program: delay ? null : program,
- running: true,
- start() {
- if (info.css) {
- if (delay) node.style.cssText = cssText;
- const rule = generateRule(program, ease, info.css);
- program.name = `__svelte_${hash(rule)}`;
- transitionManager.addRule(rule, program.name);
- node.style.animation = (node.style.animation || '')
- .split(', ')
- .filter(anim => anim && (program.delta < 0 || !/__svelte/.test(anim)))
- .concat(`${program.name} ${program.duration}ms linear 1 forwards`)
- .join(', ');
- }
- animation.program = program;
- animation.pending = null;
- },
- update: now => {
- const p = now - program.start;
- const t = program.a + program.delta * ease(p / program.duration);
- if (info.tick) info.tick(t, 1 - t);
- },
- done() {
- if (info.tick) info.tick(1, 0);
- animation.stop();
- },
- stop() {
- if (info.css) transitionManager.deleteRule(node, program.name);
- animation.running = false;
- }
- };
- transitionManager.add(animation);
- if (info.tick) info.tick(0, 1);
- if (delay) {
- if (info.css) node.style.cssText += info.css(0, 1);
- } else {
- animation.start();
- }
- return animation;
- }
- function fixPosition(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 handlePromise(promise, info) {
- var 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)(info.component, child_ctx);
- if (info.block) {
- if (info.blocks) {
- info.blocks.forEach((block, i) => {
- if (i !== index && block) {
- groupOutros();
- block.o(() => {
- block.d(1);
- info.blocks[i] = null;
- });
- }
- });
- } else {
- info.block.d(1);
- }
- block.c();
- block[block.i ? 'i' : 'm'](info.mount(), info.anchor);
- info.component.root.set({}); // flush any handlers that were created
- }
- info.block = block;
- if (info.blocks) info.blocks[index] = block;
- }
- if (isPromise(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 destroyBlock(block, lookup) {
- block.d(1);
- lookup[block.key] = null;
- }
- function outroAndDestroyBlock(block, lookup) {
- block.o(function() {
- destroyBlock(block, lookup);
- });
- }
- function fixAndOutroAndDestroyBlock(block, lookup) {
- block.f();
- outroAndDestroyBlock(block, lookup);
- }
- function updateKeyedEach(old_blocks, component, changed, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block, intro_method, next, get_context) {
- var o = old_blocks.length;
- var n = list.length;
- var i = o;
- var old_indexes = {};
- while (i--) old_indexes[old_blocks[i].key] = i;
- var new_blocks = [];
- var new_lookup = {};
- var deltas = {};
- var i = n;
- while (i--) {
- var child_ctx = get_context(ctx, list, i);
- var key = get_key(child_ctx);
- var block = lookup[key];
- if (!block) {
- block = create_each_block(component, key, child_ctx);
- block.c();
- } else if (dynamic) {
- block.p(changed, child_ctx);
- }
- new_blocks[i] = new_lookup[key] = block;
- if (key in old_indexes) deltas[key] = Math.abs(i - old_indexes[key]);
- }
- var will_move = {};
- var did_move = {};
- function insert(block) {
- block[intro_method](node, next);
- lookup[block.key] = block;
- next = block.first;
- n--;
- }
- while (o && n) {
- var new_block = new_blocks[n - 1];
- var old_block = old_blocks[o - 1];
- var new_key = new_block.key;
- var old_key = old_block.key;
- if (new_block === old_block) {
- // do nothing
- next = new_block.first;
- o--;
- n--;
- }
- else if (!new_lookup[old_key]) {
- // remove old block
- destroy(old_block, lookup);
- o--;
- }
- else if (!lookup[new_key] || will_move[new_key]) {
- insert(new_block);
- }
- else if (did_move[old_key]) {
- o--;
- } else if (deltas[new_key] > deltas[old_key]) {
- did_move[new_key] = true;
- insert(new_block);
- } else {
- will_move[old_key] = true;
- o--;
- }
- }
- while (o--) {
- var old_block = old_blocks[o];
- if (!new_lookup[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 animate(blocks, rects, fn, params) {
- let i = blocks.length;
- while (i--) {
- const block = blocks[i];
- const from = rects[block.key];
- if (!from) continue;
- const to = block.node.getBoundingClientRect();
- if (from.left === to.left && from.right === to.right && from.top === to.top && from.bottom === to.bottom) continue;
- }
- }
- function getSpreadUpdate(levels, updates) {
- var update = {};
- var to_null_out = {};
- var accounted_for = {};
- var i = levels.length;
- while (i--) {
- var o = levels[i];
- var n = updates[i];
- if (n) {
- for (var key in o) {
- if (!(key in n)) to_null_out[key] = 1;
- }
- for (var key in n) {
- if (!accounted_for[key]) {
- update[key] = n[key];
- accounted_for[key] = 1;
- }
- }
- levels[i] = n;
- } else {
- for (var key in o) {
- accounted_for[key] = 1;
- }
- }
- }
- for (var key in to_null_out) {
- if (!(key in update)) update[key] = undefined;
- }
- return update;
- }
- // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2
- // https://infra.spec.whatwg.org/#noncharacter
- const invalidAttributeNameCharacter = /[\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;
- function spread(args) {
- const attributes = Object.assign({}, ...args);
- let str = '';
- Object.keys(attributes).forEach(name => {
- if (invalidAttributeNameCharacter.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, assign, fn) {
- let str = '';
- for (let i = 0; i < items.length; i += 1) {
- str += fn(assign(items[i], i));
- }
- return str;
- }
- const missingComponent = {
- _render: () => ''
- };
- function validateSsrComponent(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})`);
- console.log(values);
- return '';
- }
- function blankObject() {
- return Object.create(null);
- }
- function destroy(detach) {
- this.destroy = noop;
- this.fire('destroy');
- this.set = noop;
- this._fragment.d(detach !== false);
- this._fragment = null;
- this._state = {};
- }
- function destroyDev(detach) {
- destroy.call(this, detach);
- this.destroy = function() {
- console.warn('Component was already destroyed');
- };
- }
- function _differs(a, b) {
- return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function');
- }
- function _differsImmutable(a, b) {
- return a != a ? b == b : a !== b;
- }
- function fire(eventName, data) {
- var handlers =
- eventName in this._handlers && this._handlers[eventName].slice();
- if (!handlers) return;
- for (var i = 0; i < handlers.length; i += 1) {
- var handler = handlers[i];
- if (!handler.__calling) {
- try {
- handler.__calling = true;
- handler.call(this, data);
- } finally {
- handler.__calling = false;
- }
- }
- }
- }
- function flush(component) {
- component._lock = true;
- callAll(component._beforecreate);
- callAll(component._oncreate);
- callAll(component._aftercreate);
- component._lock = false;
- }
- function get() {
- return this._state;
- }
- function init(component, options) {
- component._handlers = blankObject();
- component._slots = blankObject();
- component._bind = options._bind;
- component._staged = {};
- component.options = options;
- component.root = options.root || component;
- component.store = options.store || component.root.store;
- if (!options.root) {
- component._beforecreate = [];
- component._oncreate = [];
- component._aftercreate = [];
- }
- }
- function on(eventName, handler) {
- var handlers = this._handlers[eventName] || (this._handlers[eventName] = []);
- handlers.push(handler);
- return {
- cancel: function() {
- var index = handlers.indexOf(handler);
- if (~index) handlers.splice(index, 1);
- }
- };
- }
- function set(newState) {
- this._set(assign({}, newState));
- if (this.root._lock) return;
- flush(this.root);
- }
- function _set(newState) {
- var oldState = this._state,
- changed = {},
- dirty = false;
- newState = assign(this._staged, newState);
- this._staged = {};
- for (var key in newState) {
- if (this._differs(newState[key], oldState[key])) changed[key] = dirty = true;
- }
- if (!dirty) return;
- this._state = assign(assign({}, oldState), newState);
- this._recompute(changed, this._state);
- if (this._bind) this._bind(changed, this._state);
- if (this._fragment) {
- this.fire("state", { changed: changed, current: this._state, previous: oldState });
- this._fragment.p(changed, this._state);
- this.fire("update", { changed: changed, current: this._state, previous: oldState });
- }
- }
- function _stage(newState) {
- assign(this._staged, newState);
- }
- function setDev(newState) {
- if (typeof newState !== 'object') {
- throw new Error(
- this._debugName + '.set was called without an object of data key-values to update.'
- );
- }
- this._checkReadOnly(newState);
- set.call(this, newState);
- }
- function callAll(fns) {
- while (fns && fns.length) fns.shift()();
- }
- function _mount(target, anchor) {
- this._fragment[this._fragment.i ? 'i' : 'm'](target, anchor || null);
- }
- var PENDING = {};
- var SUCCESS = {};
- var FAILURE = {};
- function removeFromStore() {
- this.store._remove(this);
- }
- var proto = {
- destroy,
- get,
- fire,
- on,
- set,
- _recompute: noop,
- _set,
- _stage,
- _mount,
- _differs
- };
- var protoDev = {
- destroy: destroyDev,
- get,
- fire,
- on,
- set: setDev,
- _recompute: noop,
- _set,
- _stage,
- _mount,
- _differs
- };
- export { blankObject, destroy, destroyDev, _differs, _differsImmutable, fire, flush, get, init, on, set, _set, _stage, setDev, callAll, _mount, PENDING, SUCCESS, FAILURE, removeFromStore, proto, protoDev, wrapAnimation, fixPosition, handlePromise, append, insert, detachNode, detachBetween, detachBefore, detachAfter, reinsertBetween, reinsertChildren, reinsertAfter, reinsertBefore, destroyEach, createFragment, createElement, createSvgElement, createText, createComment, addListener, removeListener, setAttribute, setAttributes, setCustomElementData, setXlinkAttribute, getBindingGroupValue, toNumber, timeRangesToArray, children, claimElement, claimText, setData, setInputType, setStyle, selectOption, selectOptions, selectValue, selectMultipleValue, addResizeListener, toggleClass, destroyBlock, outroAndDestroyBlock, fixAndOutroAndDestroyBlock, updateKeyedEach, measure, animate, getSpreadUpdate, invalidAttributeNameCharacter, spread, escaped, escape, each, missingComponent, validateSsrComponent, debug, linear, generateRule, hash, wrapTransition, outros, groupOutros, transitionManager, noop, assign, assignTrue, isPromise, callAfter, addLoc, exclude, run };
|