Improved Lighthouse score
This commit is contained in:
		| @@ -1,345 +0,0 @@ | ||||
|  | ||||
| (function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document); | ||||
| import { S as SvelteElement, i as init, a as attribute_to_object, b as insert_dev, s as safe_not_equal, v as validate_each_argument, d as dispatch_dev, c as validate_slots, o as onMount, e as element, f as space, n as noop, g as add_location, h as attr_dev, j as src_url_equal, k as append_dev, l as detach_dev, m as destroy_each, t as text } from './index-ab5c14c8.js'; | ||||
| import '../../../../../../../../../js/components/map-component.js'; | ||||
|  | ||||
| /* src\affiliates-component.svelte generated by Svelte v3.52.0 */ | ||||
|  | ||||
| const file = "src\\affiliates-component.svelte"; | ||||
|  | ||||
| function get_each_context(ctx, list, i) { | ||||
| 	const child_ctx = ctx.slice(); | ||||
| 	child_ctx[1] = list[i]; | ||||
| 	return child_ctx; | ||||
| } | ||||
|  | ||||
| // (36:8) {#each affiliates as affiliate} | ||||
| function create_each_block(ctx) { | ||||
| 	let div2; | ||||
| 	let div1; | ||||
| 	let picture; | ||||
| 	let source0; | ||||
| 	let t0; | ||||
| 	let source1; | ||||
| 	let t1; | ||||
| 	let img; | ||||
| 	let t2; | ||||
| 	let div0; | ||||
| 	let p0; | ||||
| 	let b0; | ||||
| 	let t4_value = /*affiliate*/ ctx[1].name + ""; | ||||
| 	let t4; | ||||
| 	let t5; | ||||
| 	let p1; | ||||
| 	let b1; | ||||
| 	let t7_value = /*affiliate*/ ctx[1].type + ""; | ||||
| 	let t7; | ||||
| 	let t8; | ||||
| 	let p2; | ||||
| 	let b2; | ||||
| 	let a; | ||||
| 	let t10_value = /*affiliate*/ ctx[1].link + ""; | ||||
| 	let t10; | ||||
| 	let t11; | ||||
| 	let p3; | ||||
| 	let b3; | ||||
| 	let t13_value = /*affiliate*/ ctx[1].description + ""; | ||||
| 	let t13; | ||||
| 	let t14; | ||||
|  | ||||
| 	const block = { | ||||
| 		c: function create() { | ||||
| 			div2 = element("div"); | ||||
| 			div1 = element("div"); | ||||
| 			picture = element("picture"); | ||||
| 			source0 = element("source"); | ||||
| 			t0 = space(); | ||||
| 			source1 = element("source"); | ||||
| 			t1 = space(); | ||||
| 			img = element("img"); | ||||
| 			t2 = space(); | ||||
| 			div0 = element("div"); | ||||
| 			p0 = element("p"); | ||||
| 			b0 = element("b"); | ||||
| 			b0.textContent = "Name: "; | ||||
| 			t4 = text(t4_value); | ||||
| 			t5 = space(); | ||||
| 			p1 = element("p"); | ||||
| 			b1 = element("b"); | ||||
| 			b1.textContent = "Type: "; | ||||
| 			t7 = text(t7_value); | ||||
| 			t8 = space(); | ||||
| 			p2 = element("p"); | ||||
| 			b2 = element("b"); | ||||
| 			b2.textContent = "Link: "; | ||||
| 			a = element("a"); | ||||
| 			t10 = text(t10_value); | ||||
| 			t11 = space(); | ||||
| 			p3 = element("p"); | ||||
| 			b3 = element("b"); | ||||
| 			b3.textContent = "Description: "; | ||||
| 			t13 = text(t13_value); | ||||
| 			t14 = space(); | ||||
| 			attr_dev(source0, "srcset", "/img/affiliates/" + /*affiliate*/ ctx[1].logo + ".webp"); | ||||
| 			add_location(source0, file, 39, 24, 1619); | ||||
| 			attr_dev(source1, "srcset", "/img/affiliates/" + /*affiliate*/ ctx[1].logo + ".jpg"); | ||||
| 			add_location(source1, file, 40, 24, 1704); | ||||
| 			attr_dev(img, "class", "affiliate-logo"); | ||||
| 			attr_dev(img, "alt", "logo"); | ||||
| 			add_location(img, file, 41, 24, 1788); | ||||
| 			add_location(picture, file, 38, 20, 1584); | ||||
| 			add_location(b0, file, 44, 27, 1915); | ||||
| 			add_location(p0, file, 44, 24, 1912); | ||||
| 			add_location(b1, file, 45, 27, 1977); | ||||
| 			add_location(p1, file, 45, 24, 1974); | ||||
| 			add_location(b2, file, 46, 27, 2039); | ||||
| 			attr_dev(a, "href", /*affiliate*/ ctx[1].link); | ||||
| 			attr_dev(a, "target", ";_blank;"); | ||||
| 			attr_dev(a, "rel", "noreferrer"); | ||||
| 			add_location(a, file, 46, 40, 2052); | ||||
| 			add_location(p2, file, 46, 24, 2036); | ||||
| 			add_location(div0, file, 43, 20, 1881); | ||||
| 			attr_dev(div1, "class", "img-general-info"); | ||||
| 			add_location(div1, file, 37, 16, 1532); | ||||
| 			add_location(b3, file, 49, 19, 2205); | ||||
| 			add_location(p3, file, 49, 16, 2202); | ||||
| 			attr_dev(div2, "class", "location-info"); | ||||
| 			add_location(div2, file, 36, 12, 1487); | ||||
| 		}, | ||||
| 		m: function mount(target, anchor) { | ||||
| 			insert_dev(target, div2, anchor); | ||||
| 			append_dev(div2, div1); | ||||
| 			append_dev(div1, picture); | ||||
| 			append_dev(picture, source0); | ||||
| 			append_dev(picture, t0); | ||||
| 			append_dev(picture, source1); | ||||
| 			append_dev(picture, t1); | ||||
| 			append_dev(picture, img); | ||||
| 			append_dev(div1, t2); | ||||
| 			append_dev(div1, div0); | ||||
| 			append_dev(div0, p0); | ||||
| 			append_dev(p0, b0); | ||||
| 			append_dev(p0, t4); | ||||
| 			append_dev(div0, t5); | ||||
| 			append_dev(div0, p1); | ||||
| 			append_dev(p1, b1); | ||||
| 			append_dev(p1, t7); | ||||
| 			append_dev(div0, t8); | ||||
| 			append_dev(div0, p2); | ||||
| 			append_dev(p2, b2); | ||||
| 			append_dev(p2, a); | ||||
| 			append_dev(a, t10); | ||||
| 			append_dev(div2, t11); | ||||
| 			append_dev(div2, p3); | ||||
| 			append_dev(p3, b3); | ||||
| 			append_dev(p3, t13); | ||||
| 			append_dev(div2, t14); | ||||
| 		}, | ||||
| 		p: noop, | ||||
| 		d: function destroy(detaching) { | ||||
| 			if (detaching) detach_dev(div2); | ||||
| 		} | ||||
| 	}; | ||||
|  | ||||
| 	dispatch_dev("SvelteRegisterBlock", { | ||||
| 		block, | ||||
| 		id: create_each_block.name, | ||||
| 		type: "each", | ||||
| 		source: "(36:8) {#each affiliates as affiliate}", | ||||
| 		ctx | ||||
| 	}); | ||||
|  | ||||
| 	return block; | ||||
| } | ||||
|  | ||||
| function create_fragment(ctx) { | ||||
| 	let div1; | ||||
| 	let div0; | ||||
| 	let h1; | ||||
| 	let t1; | ||||
| 	let img; | ||||
| 	let img_src_value; | ||||
| 	let t2; | ||||
| 	let p; | ||||
| 	let t4; | ||||
| 	let h3; | ||||
| 	let t6; | ||||
| 	let h4; | ||||
| 	let t8; | ||||
| 	let each_value = /*affiliates*/ ctx[0]; | ||||
| 	validate_each_argument(each_value); | ||||
| 	let each_blocks = []; | ||||
|  | ||||
| 	for (let i = 0; i < each_value.length; i += 1) { | ||||
| 		each_blocks[i] = create_each_block(get_each_context(ctx, each_value, i)); | ||||
| 	} | ||||
|  | ||||
| 	const block = { | ||||
| 		c: function create() { | ||||
| 			div1 = element("div"); | ||||
| 			div0 = element("div"); | ||||
| 			h1 = element("h1"); | ||||
| 			h1.textContent = "Affiliates"; | ||||
| 			t1 = space(); | ||||
| 			img = element("img"); | ||||
| 			t2 = space(); | ||||
| 			p = element("p"); | ||||
| 			p.textContent = "We affiliate with organizations and initiatives that align with our mission. Together, we are a united force driven by a shared worldview where there is no place for authoritarian exploitative systems, but where systems promoting equity and democracy thrive."; | ||||
| 			t4 = space(); | ||||
| 			h3 = element("h3"); | ||||
| 			h3.textContent = "Our affiliates"; | ||||
| 			t6 = space(); | ||||
| 			h4 = element("h4"); | ||||
| 			h4.textContent = "Online"; | ||||
| 			t8 = space(); | ||||
|  | ||||
| 			for (let i = 0; i < each_blocks.length; i += 1) { | ||||
| 				each_blocks[i].c(); | ||||
| 			} | ||||
|  | ||||
| 			this.c = noop; | ||||
| 			add_location(h1, file, 30, 8, 1006); | ||||
| 			attr_dev(img, "id", "hands-img"); | ||||
| 			if (!src_url_equal(img.src, img_src_value = "/img/common/handshake.svg")) attr_dev(img, "src", img_src_value); | ||||
| 			attr_dev(img, "alt", "hands"); | ||||
| 			add_location(img, file, 31, 8, 1035); | ||||
| 			add_location(p, file, 32, 8, 1109); | ||||
| 			add_location(h3, file, 33, 8, 1384); | ||||
| 			add_location(h4, file, 34, 8, 1417); | ||||
| 			attr_dev(div0, "id", "text-container"); | ||||
| 			add_location(div0, file, 29, 4, 971); | ||||
| 			attr_dev(div1, "id", "container"); | ||||
| 			add_location(div1, file, 27, 0, 884); | ||||
| 		}, | ||||
| 		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, div1, anchor); | ||||
| 			append_dev(div1, div0); | ||||
| 			append_dev(div0, h1); | ||||
| 			append_dev(div0, t1); | ||||
| 			append_dev(div0, img); | ||||
| 			append_dev(div0, t2); | ||||
| 			append_dev(div0, p); | ||||
| 			append_dev(div0, t4); | ||||
| 			append_dev(div0, h3); | ||||
| 			append_dev(div0, t6); | ||||
| 			append_dev(div0, h4); | ||||
| 			append_dev(div0, t8); | ||||
|  | ||||
| 			for (let i = 0; i < each_blocks.length; i += 1) { | ||||
| 				each_blocks[i].m(div0, null); | ||||
| 			} | ||||
| 		}, | ||||
| 		p: function update(ctx, [dirty]) { | ||||
| 			if (dirty & /*affiliates*/ 1) { | ||||
| 				each_value = /*affiliates*/ ctx[0]; | ||||
| 				validate_each_argument(each_value); | ||||
| 				let i; | ||||
|  | ||||
| 				for (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(child_ctx, dirty); | ||||
| 					} else { | ||||
| 						each_blocks[i] = create_each_block(child_ctx); | ||||
| 						each_blocks[i].c(); | ||||
| 						each_blocks[i].m(div0, null); | ||||
| 					} | ||||
| 				} | ||||
|  | ||||
| 				for (; i < each_blocks.length; i += 1) { | ||||
| 					each_blocks[i].d(1); | ||||
| 				} | ||||
|  | ||||
| 				each_blocks.length = each_value.length; | ||||
| 			} | ||||
| 		}, | ||||
| 		i: noop, | ||||
| 		o: noop, | ||||
| 		d: function destroy(detaching) { | ||||
| 			if (detaching) detach_dev(div1); | ||||
| 			destroy_each(each_blocks, detaching); | ||||
| 		} | ||||
| 	}; | ||||
|  | ||||
| 	dispatch_dev("SvelteRegisterBlock", { | ||||
| 		block, | ||||
| 		id: create_fragment.name, | ||||
| 		type: "component", | ||||
| 		source: "", | ||||
| 		ctx | ||||
| 	}); | ||||
|  | ||||
| 	return block; | ||||
| } | ||||
|  | ||||
| function instance($$self, $$props, $$invalidate) { | ||||
| 	let { $$slots: slots = {}, $$scope } = $$props; | ||||
| 	validate_slots('affiliates-component', slots, []); | ||||
|  | ||||
| 	let affiliates = [ | ||||
| 		{ | ||||
| 			name: "Gaia's Fall", | ||||
| 			type: "a place to discuss and organize", | ||||
| 			link: "https://discord.libsoc.org", | ||||
| 			description: "Gaia's Fall is a server that promotes Solarpunk ideals, environmentalism, anarchism, and anti-capitalism. We encourage civil debates, discussions of theories and possibilities, and the creation of communities focused on shaping a better world. It is our official Discord server where we organize and work together.", | ||||
| 			logo: "gaias_fall" | ||||
| 		} | ||||
| 	]; | ||||
|  | ||||
| 	onMount(() => { | ||||
| 		 | ||||
| 	}); | ||||
|  | ||||
| 	const writable_props = []; | ||||
|  | ||||
| 	Object.keys($$props).forEach(key => { | ||||
| 		if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console.warn(`<affiliates-component> was created with unknown prop '${key}'`); | ||||
| 	}); | ||||
|  | ||||
| 	$$self.$capture_state = () => ({ onMount, affiliates }); | ||||
|  | ||||
| 	$$self.$inject_state = $$props => { | ||||
| 		if ('affiliates' in $$props) $$invalidate(0, affiliates = $$props.affiliates); | ||||
| 	}; | ||||
|  | ||||
| 	if ($$props && "$$inject" in $$props) { | ||||
| 		$$self.$inject_state($$props.$$inject); | ||||
| 	} | ||||
|  | ||||
| 	return [affiliates]; | ||||
| } | ||||
|  | ||||
| class Affiliates_component extends SvelteElement { | ||||
| 	constructor(options) { | ||||
| 		super(); | ||||
| 		this.shadowRoot.innerHTML = `<style>@import '/css/common.css';#hands-img{position:absolute;width:10.5rem;left:50%;transform:translate(-50%);z-index:0;opacity:0.2;margin-top:-2rem}#text-container>:nth-child(3){margin-top:6rem}.img-general-info{display:flex;align-content:center;width:100%;gap:1.5rem;align-items:center;margin-bottom:1rem}.img-general-info>:nth-child(2){flex:none}.affiliate-logo{position:relative;right:0;max-height:6rem;max-width:100%;border-radius:1rem}h4{margin-bottom:2rem}.location-info{position:relative;margin-bottom:2rem}.location-info p{margin-bottom:0}a{color:#DD1C1A}#text-container{max-width:calc(100vw - 4rem);margin:auto}h1{margin-bottom:1rem;font-size:2.2rem;text-align:center}h3{margin-bottom:2rem}#container{margin:auto;max-width:1000px;margin-top:1rem;margin-bottom:4rem}#container>div>p{margin-bottom:1rem}#container p{text-align:justify}@media only screen and (max-width: 500px){.img-general-info{display:flex;flex-direction:column;align-content:left;width:100%;gap:1rem;align-items:left;margin-bottom:0rem}.img-general-info>:nth-child(1){width:max-content}.img-general-info>:nth-child(2){width:100%}}</style>`; | ||||
|  | ||||
| 		init( | ||||
| 			this, | ||||
| 			{ | ||||
| 				target: this.shadowRoot, | ||||
| 				props: attribute_to_object(this.attributes), | ||||
| 				customElement: true | ||||
| 			}, | ||||
| 			instance, | ||||
| 			create_fragment, | ||||
| 			safe_not_equal, | ||||
| 			{}, | ||||
| 			null | ||||
| 		); | ||||
|  | ||||
| 		if (options) { | ||||
| 			if (options.target) { | ||||
| 				insert_dev(options.target, this, options.anchor); | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
|  | ||||
| customElements.define("affiliates-component", Affiliates_component); | ||||
|  | ||||
| export { Affiliates_component as default }; | ||||
| @@ -1 +0,0 @@ | ||||
| import{S as t,i as o,a as n,b as e,s as i,e as a,n as m,d as s,c as r,o as c,f as l,t as p,g,h as u,j as h,k as d,l as f,m as b,p as x}from"./index-4348483d.js";import{w as j}from"./index-71440b21.js";import{communities as v,addMarkersCommunities as w}from"../../../../../../../../../js/communities.js";import{loadLocaleContent as k}from"../../../../../../../../../js/libraries/serverTools.js";import"../../../../../../../../../js/components/map-component.js";function y(t,o,n){const e=t.slice();return e[6]=o[n],e}function z(t){let o,n,i,a,m,r,c,j,w,k,z,E,O,R,T,A,C,H=t[0].heading+"",L=t[0].p1+"",M=t[0].subheading1+"",N=v,S=[];for(let o=0;o<N.length;o+=1)S[o]=D(y(t,N,o));return{c(){o=l("div"),n=l("div"),i=l("h1"),a=p(H),m=g(),r=l("img"),j=g(),w=l("p"),k=p(L),z=g(),E=l("h3"),O=p(M),R=g(),T=l("map-component"),C=g();for(let t=0;t<S.length;t+=1)S[t].c();u(r,"id","communities-img"),h(r.src,c="/img/common/communities.svg")||u(r,"src","/img/common/communities.svg"),u(r,"alt","communities"),d(T,"id","map"),d(T,"callback",A=t[5]),u(n,"id","text-container"),u(o,"id","container")},m(t,s){e(t,o,s),f(o,n),f(n,i),f(i,a),f(n,m),f(n,r),f(n,j),f(n,w),f(w,k),f(n,z),f(n,E),f(E,O),f(n,R),f(n,T),f(n,C);for(let t=0;t<S.length;t+=1)S[t].m(n,null)},p(t,o){if(1&o&&H!==(H=t[0].heading+"")&&b(a,H),1&o&&L!==(L=t[0].p1+"")&&b(k,L),1&o&&M!==(M=t[0].subheading1+"")&&b(O,M),1&o&&A!==(A=t[5])&&d(T,"callback",A),1&o){let e;for(N=v,e=0;e<N.length;e+=1){const i=y(t,N,e);S[e]?S[e].p(i,o):(S[e]=D(i),S[e].c(),S[e].m(n,null))}for(;e<S.length;e+=1)S[e].d(1);S.length=N.length}},d(t){t&&s(o),x(S,t)}}}function D(t){let o,n,i,a,m,r,c,h,d,x,j,v,w,k,y,z,D,E,O,R,T,A,C,H,L,M,N=t[0].location+"",S=t[0][t[6].location[0]]+"",_=t[0].status+"",q=t[0][t[6].status]+"",B=t[0].members+"",F=t[6].members+"",G=t[0].contact+"",I=t[0][t[6].contact[1]]+"";return{c(){o=l("div"),n=l("p"),i=l("b"),a=p(N),m=p(": "),r=p(S),c=g(),h=l("p"),d=l("b"),x=p(_),j=p(": "),v=p(q),w=g(),k=l("p"),y=l("b"),z=p(B),D=p(": "),E=p(F),O=g(),R=l("p"),T=l("b"),A=p(G),C=p(": "),H=l("a"),L=p(I),M=g(),u(H,"href",t[6].contact[0]),u(H,"target",";_blank;"),u(H,"rel","noreferrer"),u(o,"class","location-info")},m(t,s){e(t,o,s),f(o,n),f(n,i),f(i,a),f(i,m),f(n,r),f(o,c),f(o,h),f(h,d),f(d,x),f(d,j),f(h,v),f(o,w),f(o,k),f(k,y),f(y,z),f(y,D),f(k,E),f(o,O),f(o,R),f(R,T),f(T,A),f(T,C),f(R,H),f(H,L),f(o,M)},p(t,o){1&o&&N!==(N=t[0].location+"")&&b(a,N),1&o&&S!==(S=t[0][t[6].location[0]]+"")&&b(r,S),1&o&&_!==(_=t[0].status+"")&&b(x,_),1&o&&q!==(q=t[0][t[6].status]+"")&&b(v,q),1&o&&B!==(B=t[0].members+"")&&b(z,B),1&o&&G!==(G=t[0].contact+"")&&b(A,G),1&o&&I!==(I=t[0][t[6].contact[1]]+"")&&b(L,I)},d(t){t&&s(o)}}}function E(t){let o,n=0!=Object.keys(t[0]).length,i=n&&z(t);return{c(){i&&i.c(),o=a(),this.c=m},m(t,n){i&&i.m(t,n),e(t,o,n)},p(t,[e]){1&e&&(n=0!=Object.keys(t[0]).length),n?i?i.p(t,e):(i=z(t),i.c(),i.m(o.parentNode,o)):i&&(i.d(1),i=null)},i:m,o:m,d(t){i&&i.d(t),t&&s(o)}}}function O(t,o,n){let e,i,a=j({});r(t,a,(t=>n(0,e=t)));let m=k(a,"communities-component",i);function s(t,o){let n=t([22,0],2);w(n,o)}c((()=>{}));return[e,i,a,m,s,t=>s(t,e)]}class R extends t{constructor(t){super(),this.shadowRoot.innerHTML="<style>@import '/css/common.css';#communities-img{position:absolute;width:11.5rem;left:50%;transform:translate(-50%);z-index:0;opacity:0.2}#text-container>:nth-child(3){margin-top:8rem}.location-info{position:relative;margin-bottom:2rem}.location-info p{margin-bottom:0}a{color:#DD1C1A}#map{--height:30rem;--width:100%;--margin-bottom:3rem}#text-container{max-width:calc(100vw - 4rem);margin:auto}h1{margin-bottom:1rem;font-size:2.2rem;text-align:center}h3{margin-bottom:1rem}#container{margin:auto;max-width:800px;margin-top:1rem;margin-bottom:4rem}#container>div>p{margin-bottom:1rem}#container p{text-align:justify}</style>",o(this,{target:this.shadowRoot,props:n(this.attributes),customElement:!0},O,E,i,{},null),t&&t.target&&e(t.target,this,t.anchor)}}customElements.define("communities-component",R);export{R as default}; | ||||
| @@ -1 +1 @@ | ||||
| import{S as t,i as e,a as r,b as o,s as a,e as i,n,d as s,c as m,h as c,t as d,j as f,k as l,z as g,l as h,m as p,y as u}from"./index-0d9f0c09.js";import{w as v}from"./index-1c123138.js";import{loadLocaleContent as w}from"../../../../../../../../../js/libraries/serverTools.js";function b(t){let e,r,a,i,n,m,v,w,b,y,k,x,L,j,z,U,_,T,C,H,M,R,B=t[1].contactUs+"",N=t[1].inviteLink+"",A=t[1].inviteLink+"";return{c(){e=c("footer"),r=c("div"),a=c("div"),i=c("div"),n=c("h2"),m=d(B),v=f(),w=c("p"),b=d("Discord: "),y=c("a"),k=d(N),x=f(),L=c("p"),j=d("WhatsApp: "),z=c("a"),U=d(A),_=f(),T=c("button"),T.innerHTML='<svg xmlns="http://www.w3.org/2000/svg" width="42.545" height="72.601" viewBox="0 0 42.545 72.601"><g id="Group_268" data-name="Group 268" transform="translate(-6.177 -2.399)"><rect id="Rectangle_146" data-name="Rectangle 146" width="11" height="51" rx="5.5" transform="translate(22 24)" fill="var(--red)"></rect><path id="Path_1145" data-name="Path 1145" d="M23.814,4.021a5,5,0,0,1,7.372,0l16.134,17.6c2.94,3.207,1.046,10.4-3.686,8.379S28.02,14.081,28.391,13.524,16.544,27.976,11.366,30,4.741,24.828,7.68,21.621Z" fill="var(--red)"></path></g></svg>',C=f(),H=c("p"),H.innerHTML='Licensed under a Creative Commons <a href="https://creativecommons.org/licenses/by/4.0/legalcode " target="_blank" rel="noreferrer">CC BY 4.0 license</a>',l(y,"href","https://discord.gg/Qk8KUk787z"),l(y,"target","_blank"),l(y,"rel","noreferrer"),g(y,"margin-left","1.8rem"),l(z,"href","https://chat.whatsapp.com/BhnmUNljUxJ2AjeHUwyTKh"),l(z,"target","_blank"),l(z,"rel","noreferrer"),g(z,"margin-left","0.5rem"),l(i,"id","contact-us-container"),l(a,"id","footer-grid-content-container"),l(a,"class","logged"),l(T,"id","footer-up"),l(T,"aria-label","go up"),l(H,"id","footer-copyright"),l(r,"id","footer-content-container")},m(s,c){o(s,e,c),h(e,r),h(r,a),h(a,i),h(i,n),h(n,m),h(i,v),h(i,w),h(w,b),h(w,y),h(y,k),h(i,x),h(i,L),h(L,j),h(L,z),h(z,U),h(r,_),h(r,T),h(r,C),h(r,H),M||(R=p(T,"click",t[4]),M=!0)},p(t,e){2&e&&B!==(B=t[1].contactUs+"")&&u(m,B),2&e&&N!==(N=t[1].inviteLink+"")&&u(k,N),2&e&&A!==(A=t[1].inviteLink+"")&&u(U,A)},d(t){t&&s(e),M=!1,R()}}}function y(t){let e,r=2==t[0]&&b(t);return{c(){r&&r.c(),e=i()},m(t,a){r&&r.m(t,a),o(t,e,a)},p(t,o){2==t[0]?r?r.p(t,o):(r=b(t),r.c(),r.m(e.parentNode,e)):r&&(r.d(1),r=null)},d(t){r&&r.d(t),t&&s(e)}}}function k(t){let e,r=t[0],m=y(t);return{c(){m.c(),e=i(),this.c=n},m(t,r){m.m(t,r),o(t,e,r)},p(t,[o]){1&o&&a(r,r=t[0])?(m.d(1),m=y(t),m.c(),m.m(e.parentNode,e)):m.p(t,o)},i:n,o:n,d(t){t&&s(e),m.d(t)}}}function x(t,e,r){let o,a,i=v(0);m(t,i,(t=>r(0,o=t)));let n=v({});m(t,n,(t=>r(1,a=t))),w(n,"countries",i),w(n,"footer-component",i);return[o,a,i,n,()=>{location.href="#"}]}class L extends t{constructor(t){super(),this.shadowRoot.innerHTML="<style>@import '/css/common.css';footer{position:relative;bottom:0;width:100%;height:auto;background:var(--gray);border-top:var(--red) solid 0.5rem}footer p,footer a{font-family:var(--sans-serif)}#footer-content-container{position:relative;margin:auto;padding-top:2rem;max-width:116rem;width:97vw}#footer-grid-content-container{display:grid;margin-left:2rem;margin-right:2rem;margin-bottom:1rem}.logged{grid-template-columns:auto auto 2rem}footer h2{color:#ffffff;font-size:1.3rem;margin-bottom:0.5rem}#footer-copyright{position:relative;margin:auto;width:100%;bottom:0rem;height:3rem;top:0rem;margin-bottom:0;font-size:1rem;text-align:center}#footer-copyright *{font-size:1rem}footer a{font-size:1.1rem;color:#ffffff}footer p{display:block;font-size:1.1rem;color:#d8d8d8;font-family:var(--sans-serif,sans-serif);margin-bottom:0.5rem}#contact-us-container{width:16rem}#footer-up{position:absolute;width:4.8rem;height:4.8rem;border-radius:3.4rem;top:4rem;right:2rem;background:#ffffff}#footer-up svg{width:40%;height:auto}@media only screen and (max-width: 1170px){.logged{grid-template-rows:auto auto auto;grid-template-columns:auto;row-gap:2rem}#footer-copyright{height:1rem;top:-2rem}}</style>",e(this,{target:this.shadowRoot,props:r(this.attributes),customElement:!0},x,k,a,{},null),t&&t.target&&o(t.target,this,t.anchor)}}customElements.define("footer-component",L);export{L as default}; | ||||
| import{S as t,i as e,a as r,b as o,s as a,e as i,n,d as s,c as m,h as c,t as d,j as f,k as l,z as g,l as h,m as p,y as u}from"./index-0d9f0c09.js";import{w as v}from"./index-1c123138.js";import{loadLocaleContent as w}from"../../../../../../../../../js/libraries/serverTools.js";function b(t){let e,r,a,i,n,m,v,w,b,y,k,x,L,j,z,U,_,T,C,H,M,R,B=t[1].contactUs+"",N=t[1].inviteLink+"",A=t[1].inviteLink+"";return{c(){e=c("footer"),r=c("div"),a=c("div"),i=c("div"),n=c("h2"),m=d(B),v=f(),w=c("p"),b=d("Discord: "),y=c("a"),k=d(N),x=f(),L=c("p"),j=d("WhatsApp: "),z=c("a"),U=d(A),_=f(),T=c("button"),T.innerHTML='<svg xmlns="http://www.w3.org/2000/svg" width="42.545" height="72.601" viewBox="0 0 42.545 72.601"><g id="Group_268" data-name="Group 268" transform="translate(-6.177 -2.399)"><rect id="Rectangle_146" data-name="Rectangle 146" width="11" height="51" rx="5.5" transform="translate(22 24)" fill="var(--red)"></rect><path id="Path_1145" data-name="Path 1145" d="M23.814,4.021a5,5,0,0,1,7.372,0l16.134,17.6c2.94,3.207,1.046,10.4-3.686,8.379S28.02,14.081,28.391,13.524,16.544,27.976,11.366,30,4.741,24.828,7.68,21.621Z" fill="var(--red)"></path></g></svg>',C=f(),H=c("p"),H.innerHTML='Licensed under a Creative Commons <a href="https://creativecommons.org/licenses/by/4.0/legalcode " target="_blank" rel="noreferrer">CC BY 4.0 license</a>',l(y,"href","https://discord.gg/Qk8KUk787z"),l(y,"target","_blank"),l(y,"rel","noreferrer"),g(y,"margin-left","1.8rem"),l(z,"href","https://chat.whatsapp.com/BhnmUNljUxJ2AjeHUwyTKh"),l(z,"target","_blank"),l(z,"rel","noreferrer"),g(z,"margin-left","0.5rem"),l(i,"id","contact-us-container"),l(a,"id","footer-grid-content-container"),l(a,"class","logged"),l(T,"id","footer-up"),l(T,"aria-label","go up"),l(H,"id","footer-copyright"),l(r,"id","footer-content-container")},m(s,c){o(s,e,c),h(e,r),h(r,a),h(a,i),h(i,n),h(n,m),h(i,v),h(i,w),h(w,b),h(w,y),h(y,k),h(i,x),h(i,L),h(L,j),h(L,z),h(z,U),h(r,_),h(r,T),h(r,C),h(r,H),M||(R=p(T,"click",t[4]),M=!0)},p(t,e){2&e&&B!==(B=t[1].contactUs+"")&&u(m,B),2&e&&N!==(N=t[1].inviteLink+"")&&u(k,N),2&e&&A!==(A=t[1].inviteLink+"")&&u(U,A)},d(t){t&&s(e),M=!1,R()}}}function y(t){let e,r=2==t[0]&&b(t);return{c(){r&&r.c(),e=i()},m(t,a){r&&r.m(t,a),o(t,e,a)},p(t,o){2==t[0]?r?r.p(t,o):(r=b(t),r.c(),r.m(e.parentNode,e)):r&&(r.d(1),r=null)},d(t){r&&r.d(t),t&&s(e)}}}function k(t){let e,r=t[0],m=y(t);return{c(){m.c(),e=i(),this.c=n},m(t,r){m.m(t,r),o(t,e,r)},p(t,[o]){1&o&&a(r,r=t[0])?(m.d(1),m=y(t),m.c(),m.m(e.parentNode,e)):m.p(t,o)},i:n,o:n,d(t){t&&s(e),m.d(t)}}}function x(t,e,r){let o,a,i=v(0);m(t,i,(t=>r(0,o=t)));let n=v({});m(t,n,(t=>r(1,a=t))),w(n,"countries",i),w(n,"footer-component",i);return[o,a,i,n,()=>{location.href="#"}]}class L extends t{constructor(t){super(),this.shadowRoot.innerHTML="<style>@import '/css/common.css';footer{position:relative;bottom:0;width:100%;height:13.2875rem;background:var(--gray);border-top:var(--red) solid 0.5rem}footer p,footer a{font-family:var(--sans-serif)}#footer-content-container{position:relative;margin:auto;padding-top:2rem;max-width:116rem;width:97vw}#footer-grid-content-container{display:grid;margin-left:2rem;margin-right:2rem;margin-bottom:1rem}.logged{grid-template-columns:auto auto 2rem}footer h2{color:#ffffff;font-size:1.3rem;margin-bottom:0.5rem}#footer-copyright{position:relative;margin:auto;width:100%;bottom:0rem;height:3rem;top:0rem;margin-bottom:0;font-size:1rem;text-align:center}#footer-copyright *{font-size:1rem}footer a{font-size:1.1rem;color:#ffffff}footer p{display:block;font-size:1.1rem;color:#d8d8d8;font-family:var(--sans-serif,sans-serif);margin-bottom:0.5rem}#contact-us-container{width:16rem}#footer-up{position:absolute;width:4.8rem;height:4.8rem;border-radius:3.4rem;top:4rem;right:2rem;background:#ffffff}#footer-up svg{width:40%;height:auto}@media only screen and (max-width: 1170px){.logged{grid-template-rows:auto auto auto;grid-template-columns:auto;row-gap:2rem}#footer-copyright{height:1rem;top:-2rem}}</style>",e(this,{target:this.shadowRoot,props:r(this.attributes),customElement:!0},x,k,a,{},null),t&&t.target&&o(t.target,this,t.anchor)}}customElements.define("footer-component",L);export{L as default}; | ||||
|   | ||||
| @@ -1 +0,0 @@ | ||||
| function t(){}function n(t){return t()}function e(){return Object.create(null)}function o(t){t.forEach(n)}function s(t){return"function"==typeof t}function r(t,n){return t!=t?n==n:t!==n||t&&"object"==typeof t||"function"==typeof t}let i,c;function a(t,n){return i||(i=document.createElement("a")),i.href=n,t===i.href}function u(t,n){t.appendChild(n)}function f(t,n,e){t.insertBefore(n,e||null)}function l(t){t.parentNode.removeChild(t)}function h(t,n){for(let e=0;e<t.length;e+=1)t[e]&&t[e].d(n)}function d(t){return document.createElement(t)}function $(t){return document.createTextNode(t)}function p(){return $(" ")}function m(){return $("")}function g(t,n,e,o){return t.addEventListener(n,e,o),()=>t.removeEventListener(n,e,o)}function _(t,n,e){null==e?t.removeAttribute(n):t.getAttribute(n)!==e&&t.setAttribute(n,e)}function y(t,n,e){n in t?t[n]="boolean"==typeof t[n]&&""===e||e:_(t,n,e)}function b(t,n){n=""+n,t.wholeText!==n&&(t.data=n)}function x(t,n,e,o){null===e?t.style.removeProperty(n):t.style.setProperty(n,e,o?"important":"")}class v{constructor(t=!1){this.is_svg=!1,this.is_svg=t,this.e=this.n=null}c(t){this.h(t)}m(t,n,e=null){var o;this.e||(this.is_svg?this.e=(o=n.nodeName,document.createElementNS("http://www.w3.org/2000/svg",o)):this.e=d(n.nodeName),this.t=n,this.c(t)),this.i(e)}h(t){this.e.innerHTML=t,this.n=Array.from(this.e.childNodes)}i(t){for(let n=0;n<this.n.length;n+=1)f(this.t,this.n[n],t)}p(t){this.d(),this.h(t),this.i(this.a)}d(){this.n.forEach(l)}}function E(t){const n={};for(const e of t)n[e.name]=e.value;return n}function w(t){c=t}function k(){if(!c)throw new Error("Function called outside component initialization");return c}function C(t){k().$$.on_mount.push(t)}function N(t){return k().$$.context.get(t)}const A=[],L=[],S=[],T=[],j=Promise.resolve();let H=!1;function M(t){S.push(t)}const O=new Set;let P=0;function q(){const t=c;do{for(;P<A.length;){const t=A[P];P++,w(t),z(t.$$)}for(w(null),A.length=0,P=0;L.length;)L.pop()();for(let t=0;t<S.length;t+=1){const n=S[t];O.has(n)||(O.add(n),n())}S.length=0}while(A.length);for(;T.length;)T.pop()();H=!1,O.clear(),w(t)}function z(t){if(null!==t.fragment){t.update(),o(t.before_update);const n=t.dirty;t.dirty=[-1],t.fragment&&t.fragment.p(t.ctx,n),t.after_update.forEach(M)}}const B=new Set;function F(t,n){-1===t.$$.dirty[0]&&(A.push(t),H||(H=!0,j.then(q)),t.$$.dirty.fill(0)),t.$$.dirty[n/31|0]|=1<<n%31}function D(r,i,a,u,f,h,d,$=[-1]){const p=c;w(r);const m=r.$$={fragment:null,ctx:[],props:h,update:t,not_equal:f,bound:e(),on_mount:[],on_destroy:[],on_disconnect:[],before_update:[],after_update:[],context:new Map(i.context||(p?p.$$.context:[])),callbacks:e(),dirty:$,skip_bound:!1,root:i.target||p.$$.root};d&&d(m.root);let g=!1;if(m.ctx=a?a(r,i.props||{},((t,n,...e)=>{const o=e.length?e[0]:n;return m.ctx&&f(m.ctx[t],m.ctx[t]=o)&&(!m.skip_bound&&m.bound[t]&&m.bound[t](o),g&&F(r,t)),n})):[],m.update(),g=!0,o(m.before_update),m.fragment=!!u&&u(m.ctx),i.target){if(i.hydrate){const t=function(t){return Array.from(t.childNodes)}(i.target);m.fragment&&m.fragment.l(t),t.forEach(l)}else m.fragment&&m.fragment.c();i.intro&&((_=r.$$.fragment)&&_.i&&(B.delete(_),_.i(y))),function(t,e,r,i){const{fragment:c,after_update:a}=t.$$;c&&c.m(e,r),i||M((()=>{const e=t.$$.on_mount.map(n).filter(s);t.$$.on_destroy?t.$$.on_destroy.push(...e):o(e),t.$$.on_mount=[]})),a.forEach(M)}(r,i.target,i.anchor,i.customElement),q()}var _,y;w(p)}let G;"function"==typeof HTMLElement&&(G=class extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"})}connectedCallback(){const{on_mount:t}=this.$$;this.$$.on_disconnect=t.map(n).filter(s);for(const t in this.$$.slotted)this.appendChild(this.$$.slotted[t])}attributeChangedCallback(t,n,e){this[t]=e}disconnectedCallback(){o(this.$$.on_disconnect)}$destroy(){!function(t,n){const e=t.$$;null!==e.fragment&&(o(e.on_destroy),e.fragment&&e.fragment.d(n),e.on_destroy=e.fragment=null,e.ctx=[])}(this,1),this.$destroy=t}$on(n,e){if(!s(e))return t;const o=this.$$.callbacks[n]||(this.$$.callbacks[n]=[]);return o.push(e),()=>{const t=o.indexOf(e);-1!==t&&o.splice(t,1)}}$set(t){var n;this.$$set&&(n=t,0!==Object.keys(n).length)&&(this.$$.skip_bound=!0,this.$$set(t),this.$$.skip_bound=!1)}});export{v as H,G as S,E as a,f as b,p as c,_ as d,d as e,a as f,y as g,u as h,D as i,l as j,h as k,q as l,x as m,t as n,C as o,g as p,b as q,L as r,r as s,$ as t,N as u,o as v,m as w,s as x}; | ||||
| @@ -1 +0,0 @@ | ||||
| function t(){}function n(t){return t()}function e(){return Object.create(null)}function o(t){t.forEach(n)}function s(t){return"function"==typeof t}function r(t,n){return t!=t?n==n:t!==n||t&&"object"==typeof t||"function"==typeof t}let i,c;function a(t,n){return i||(i=document.createElement("a")),i.href=n,t===i.href}function u(t,n){t.appendChild(n)}function f(t,n,e){t.insertBefore(n,e||null)}function l(t){t.parentNode.removeChild(t)}function h(t,n){for(let e=0;e<t.length;e+=1)t[e]&&t[e].d(n)}function d(t){return document.createElement(t)}function $(t){return document.createTextNode(t)}function p(){return $(" ")}function m(){return $("")}function g(t,n,e,o){return t.addEventListener(n,e,o),()=>t.removeEventListener(n,e,o)}function _(t,n,e){null==e?t.removeAttribute(n):t.getAttribute(n)!==e&&t.setAttribute(n,e)}function y(t,n,e){n in t?t[n]="boolean"==typeof t[n]&&""===e||e:_(t,n,e)}function b(t,n){n=""+n,t.wholeText!==n&&(t.data=n)}function x(t,n,e,o){null===e?t.style.removeProperty(n):t.style.setProperty(n,e,o?"important":"")}class v{constructor(t=!1){this.is_svg=!1,this.is_svg=t,this.e=this.n=null}c(t){this.h(t)}m(t,n,e=null){var o;this.e||(this.is_svg?this.e=(o=n.nodeName,document.createElementNS("http://www.w3.org/2000/svg",o)):this.e=d(n.nodeName),this.t=n,this.c(t)),this.i(e)}h(t){this.e.innerHTML=t,this.n=Array.from(this.e.childNodes)}i(t){for(let n=0;n<this.n.length;n+=1)f(this.t,this.n[n],t)}p(t){this.d(),this.h(t),this.i(this.a)}d(){this.n.forEach(l)}}function E(t){const n={};for(const e of t)n[e.name]=e.value;return n}function w(t){c=t}function k(){if(!c)throw new Error("Function called outside component initialization");return c}function C(t){k().$$.on_mount.push(t)}function N(t){return k().$$.context.get(t)}const A=[],L=[],S=[],T=[],j=Promise.resolve();let H=!1;function M(t){S.push(t)}const O=new Set;let P=0;function q(){const t=c;do{for(;P<A.length;){const t=A[P];P++,w(t),z(t.$$)}for(w(null),A.length=0,P=0;L.length;)L.pop()();for(let t=0;t<S.length;t+=1){const n=S[t];O.has(n)||(O.add(n),n())}S.length=0}while(A.length);for(;T.length;)T.pop()();H=!1,O.clear(),w(t)}function z(t){if(null!==t.fragment){t.update(),o(t.before_update);const n=t.dirty;t.dirty=[-1],t.fragment&&t.fragment.p(t.ctx,n),t.after_update.forEach(M)}}const B=new Set;function F(t,n){-1===t.$$.dirty[0]&&(A.push(t),H||(H=!0,j.then(q)),t.$$.dirty.fill(0)),t.$$.dirty[n/31|0]|=1<<n%31}function D(r,i,a,u,f,h,d,$=[-1]){const p=c;w(r);const m=r.$$={fragment:null,ctx:[],props:h,update:t,not_equal:f,bound:e(),on_mount:[],on_destroy:[],on_disconnect:[],before_update:[],after_update:[],context:new Map(i.context||(p?p.$$.context:[])),callbacks:e(),dirty:$,skip_bound:!1,root:i.target||p.$$.root};d&&d(m.root);let g=!1;if(m.ctx=a?a(r,i.props||{},((t,n,...e)=>{const o=e.length?e[0]:n;return m.ctx&&f(m.ctx[t],m.ctx[t]=o)&&(!m.skip_bound&&m.bound[t]&&m.bound[t](o),g&&F(r,t)),n})):[],m.update(),g=!0,o(m.before_update),m.fragment=!!u&&u(m.ctx),i.target){if(i.hydrate){const t=function(t){return Array.from(t.childNodes)}(i.target);m.fragment&&m.fragment.l(t),t.forEach(l)}else m.fragment&&m.fragment.c();i.intro&&((_=r.$$.fragment)&&_.i&&(B.delete(_),_.i(y))),function(t,e,r,i){const{fragment:c,after_update:a}=t.$$;c&&c.m(e,r),i||M((()=>{const e=t.$$.on_mount.map(n).filter(s);t.$$.on_destroy?t.$$.on_destroy.push(...e):o(e),t.$$.on_mount=[]})),a.forEach(M)}(r,i.target,i.anchor,i.customElement),q()}var _,y;w(p)}let G;"function"==typeof HTMLElement&&(G=class extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"})}connectedCallback(){const{on_mount:t}=this.$$;this.$$.on_disconnect=t.map(n).filter(s);for(const t in this.$$.slotted)this.appendChild(this.$$.slotted[t])}attributeChangedCallback(t,n,e){this[t]=e}disconnectedCallback(){o(this.$$.on_disconnect)}$destroy(){!function(t,n){const e=t.$$;null!==e.fragment&&(o(e.on_destroy),e.fragment&&e.fragment.d(n),e.on_destroy=e.fragment=null,e.ctx=[])}(this,1),this.$destroy=t}$on(n,e){if(!s(e))return t;const o=this.$$.callbacks[n]||(this.$$.callbacks[n]=[]);return o.push(e),()=>{const t=o.indexOf(e);-1!==t&&o.splice(t,1)}}$set(t){var n;this.$$set&&(n=t,0!==Object.keys(n).length)&&(this.$$.skip_bound=!0,this.$$set(t),this.$$.skip_bound=!1)}});export{v as H,G as S,E as a,f as b,p as c,y as d,d as e,_ as f,u as g,l as h,D as i,h as j,q as k,x as l,g as m,t as n,C as o,b as p,L as q,N as r,r as s,$ as t,a as u,o as v,m as w}; | ||||
| @@ -1,53 +0,0 @@ | ||||
|  | ||||
| (function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document); | ||||
| import { n as noop, s as safe_not_equal } from './index-e7d4b1a1.js'; | ||||
|  | ||||
| const subscriber_queue = []; | ||||
| /** | ||||
|  * Create a `Writable` store that allows both updating and reading by subscription. | ||||
|  * @param {*=}value initial value | ||||
|  * @param {StartStopNotifier=}start start and stop notifications for subscriptions | ||||
|  */ | ||||
| function writable(value, start = noop) { | ||||
|     let stop; | ||||
|     const subscribers = new Set(); | ||||
|     function set(new_value) { | ||||
|         if (safe_not_equal(value, new_value)) { | ||||
|             value = new_value; | ||||
|             if (stop) { // store is ready | ||||
|                 const run_queue = !subscriber_queue.length; | ||||
|                 for (const subscriber of subscribers) { | ||||
|                     subscriber[1](); | ||||
|                     subscriber_queue.push(subscriber, value); | ||||
|                 } | ||||
|                 if (run_queue) { | ||||
|                     for (let i = 0; i < subscriber_queue.length; i += 2) { | ||||
|                         subscriber_queue[i][0](subscriber_queue[i + 1]); | ||||
|                     } | ||||
|                     subscriber_queue.length = 0; | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|     function update(fn) { | ||||
|         set(fn(value)); | ||||
|     } | ||||
|     function subscribe(run, invalidate = noop) { | ||||
|         const subscriber = [run, invalidate]; | ||||
|         subscribers.add(subscriber); | ||||
|         if (subscribers.size === 1) { | ||||
|             stop = start(set) || noop; | ||||
|         } | ||||
|         run(value); | ||||
|         return () => { | ||||
|             subscribers.delete(subscriber); | ||||
|             if (subscribers.size === 0) { | ||||
|                 stop(); | ||||
|                 stop = null; | ||||
|             } | ||||
|         }; | ||||
|     } | ||||
|     return { set, update, subscribe }; | ||||
| } | ||||
|  | ||||
| export { writable as w }; | ||||
| @@ -1,527 +0,0 @@ | ||||
|  | ||||
| (function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document); | ||||
| function noop() { } | ||||
| 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'); | ||||
| } | ||||
| let src_url_equal_anchor; | ||||
| function src_url_equal(element_src, url) { | ||||
|     if (!src_url_equal_anchor) { | ||||
|         src_url_equal_anchor = document.createElement('a'); | ||||
|     } | ||||
|     src_url_equal_anchor.href = url; | ||||
|     return element_src === src_url_equal_anchor.href; | ||||
| } | ||||
| function is_empty(obj) { | ||||
|     return Object.keys(obj).length === 0; | ||||
| } | ||||
| function validate_store(store, name) { | ||||
|     if (store != null && typeof store.subscribe !== 'function') { | ||||
|         throw new Error(`'${name}' is not a store with a 'subscribe' method`); | ||||
|     } | ||||
| } | ||||
| function subscribe(store, ...callbacks) { | ||||
|     if (store == null) { | ||||
|         return noop; | ||||
|     } | ||||
|     const unsub = store.subscribe(...callbacks); | ||||
|     return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub; | ||||
| } | ||||
| function component_subscribe(component, store, callback) { | ||||
|     component.$$.on_destroy.push(subscribe(store, callback)); | ||||
| } | ||||
| 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 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 attr(node, attribute, value) { | ||||
|     if (value == null) | ||||
|         node.removeAttribute(attribute); | ||||
|     else if (node.getAttribute(attribute) !== value) | ||||
|         node.setAttribute(attribute, value); | ||||
| } | ||||
| function set_custom_element_data(node, prop, value) { | ||||
|     if (prop in node) { | ||||
|         node[prop] = typeof node[prop] === 'boolean' && value === '' ? true : value; | ||||
|     } | ||||
|     else { | ||||
|         attr(node, prop, value); | ||||
|     } | ||||
| } | ||||
| function to_number(value) { | ||||
|     return value === '' ? null : +value; | ||||
| } | ||||
| function children(element) { | ||||
|     return Array.from(element.childNodes); | ||||
| } | ||||
| function set_input_value(input, value) { | ||||
|     input.value = value == null ? '' : value; | ||||
| } | ||||
| function set_style(node, key, value, important) { | ||||
|     if (value === null) { | ||||
|         node.style.removeProperty(key); | ||||
|     } | ||||
|     else { | ||||
|         node.style.setProperty(key, value, important ? 'important' : ''); | ||||
|     } | ||||
| } | ||||
| function custom_event(type, detail, { bubbles = false, cancelable = false } = {}) { | ||||
|     const e = document.createEvent('CustomEvent'); | ||||
|     e.initCustomEvent(type, bubbles, cancelable, detail); | ||||
|     return e; | ||||
| } | ||||
| class HtmlTag { | ||||
|     constructor(is_svg = false) { | ||||
|         this.is_svg = false; | ||||
|         this.is_svg = is_svg; | ||||
|         this.e = this.n = null; | ||||
|     } | ||||
|     c(html) { | ||||
|         this.h(html); | ||||
|     } | ||||
|     m(html, target, anchor = null) { | ||||
|         if (!this.e) { | ||||
|             if (this.is_svg) | ||||
|                 this.e = svg_element(target.nodeName); | ||||
|             else | ||||
|                 this.e = element(target.nodeName); | ||||
|             this.t = target; | ||||
|             this.c(html); | ||||
|         } | ||||
|         this.i(anchor); | ||||
|     } | ||||
|     h(html) { | ||||
|         this.e.innerHTML = html; | ||||
|         this.n = Array.from(this.e.childNodes); | ||||
|     } | ||||
|     i(anchor) { | ||||
|         for (let i = 0; i < this.n.length; i += 1) { | ||||
|             insert(this.t, this.n[i], anchor); | ||||
|         } | ||||
|     } | ||||
|     p(html) { | ||||
|         this.d(); | ||||
|         this.h(html); | ||||
|         this.i(this.a); | ||||
|     } | ||||
|     d() { | ||||
|         this.n.forEach(detach); | ||||
|     } | ||||
| } | ||||
| function attribute_to_object(attributes) { | ||||
|     const result = {}; | ||||
|     for (const attribute of attributes) { | ||||
|         result[attribute.name] = attribute.value; | ||||
|     } | ||||
|     return result; | ||||
| } | ||||
|  | ||||
| let current_component; | ||||
| function set_current_component(component) { | ||||
|     current_component = component; | ||||
| } | ||||
| function get_current_component() { | ||||
|     if (!current_component) | ||||
|         throw new Error('Function called outside component initialization'); | ||||
|     return current_component; | ||||
| } | ||||
| /** | ||||
|  * The `onMount` function schedules a callback to run as soon as the component has been mounted to the DOM. | ||||
|  * It must be called during the component's initialisation (but doesn't need to live *inside* the component; | ||||
|  * it can be called from an external module). | ||||
|  * | ||||
|  * `onMount` does not run inside a [server-side component](/docs#run-time-server-side-component-api). | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-onmount | ||||
|  */ | ||||
| function onMount(fn) { | ||||
|     get_current_component().$$.on_mount.push(fn); | ||||
| } | ||||
| /** | ||||
|  * Schedules a callback to run immediately after the component has been updated. | ||||
|  * | ||||
|  * The first time the callback runs will be after the initial `onMount` | ||||
|  */ | ||||
| function afterUpdate(fn) { | ||||
|     get_current_component().$$.after_update.push(fn); | ||||
| } | ||||
| /** | ||||
|  * Associates an arbitrary `context` object with the current component and the specified `key` | ||||
|  * and returns that object. The context is then available to children of the component | ||||
|  * (including slotted content) with `getContext`. | ||||
|  * | ||||
|  * Like lifecycle functions, this must be called during component initialisation. | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-setcontext | ||||
|  */ | ||||
| function setContext(key, context) { | ||||
|     get_current_component().$$.context.set(key, context); | ||||
|     return context; | ||||
| } | ||||
| /** | ||||
|  * Retrieves the context that belongs to the closest parent component with the specified `key`. | ||||
|  * Must be called during component initialisation. | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-getcontext | ||||
|  */ | ||||
| function getContext(key) { | ||||
|     return get_current_component().$$.context.get(key); | ||||
| } | ||||
|  | ||||
| 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); | ||||
| } | ||||
| // flush() calls callbacks in this order: | ||||
| // 1. All beforeUpdate callbacks, in order: parents before children | ||||
| // 2. All bind:this callbacks, in reverse order: children before parents. | ||||
| // 3. All afterUpdate callbacks, in order: parents before children. EXCEPT | ||||
| //    for afterUpdates called during the initial onMount, which are called in | ||||
| //    reverse order: children before parents. | ||||
| // Since callbacks might update component values, which could trigger another | ||||
| // call to flush(), the following steps guard against this: | ||||
| // 1. During beforeUpdate, any updated components will be added to the | ||||
| //    dirty_components array and will cause a reentrant call to flush(). Because | ||||
| //    the flush index is kept outside the function, the reentrant call will pick | ||||
| //    up where the earlier call left off and go through all dirty components. The | ||||
| //    current_component value is saved and restored so that the reentrant call will | ||||
| //    not interfere with the "parent" flush() call. | ||||
| // 2. bind:this callbacks cannot trigger new flush() calls. | ||||
| // 3. During afterUpdate, any updated components will NOT have their afterUpdate | ||||
| //    callback called a second time; the seen_callbacks set, outside the flush() | ||||
| //    function, guarantees this behavior. | ||||
| const seen_callbacks = new Set(); | ||||
| let flushidx = 0; // Do *not* move this inside the flush() function | ||||
| function flush() { | ||||
|     const saved_component = current_component; | ||||
|     do { | ||||
|         // first, call beforeUpdate functions | ||||
|         // and update components | ||||
|         while (flushidx < dirty_components.length) { | ||||
|             const component = dirty_components[flushidx]; | ||||
|             flushidx++; | ||||
|             set_current_component(component); | ||||
|             update(component.$$); | ||||
|         } | ||||
|         set_current_component(null); | ||||
|         dirty_components.length = 0; | ||||
|         flushidx = 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; | ||||
|     seen_callbacks.clear(); | ||||
|     set_current_component(saved_component); | ||||
| } | ||||
| 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(); | ||||
| function transition_in(block, local) { | ||||
|     if (block && block.i) { | ||||
|         outroing.delete(block); | ||||
|         block.i(local); | ||||
|     } | ||||
| } | ||||
|  | ||||
| const globals = (typeof window !== 'undefined' | ||||
|     ? window | ||||
|     : typeof globalThis !== 'undefined' | ||||
|         ? globalThis | ||||
|         : global); | ||||
| function mount_component(component, target, anchor, customElement) { | ||||
|     const { fragment, after_update } = component.$$; | ||||
|     fragment && fragment.m(target, anchor); | ||||
|     if (!customElement) { | ||||
|         // onMount happens before the initial afterUpdate | ||||
|         add_render_callback(() => { | ||||
|             const new_on_destroy = component.$$.on_mount.map(run).filter(is_function); | ||||
|             // if the component was destroyed immediately | ||||
|             // it will update the `$$.on_destroy` reference to `null`. | ||||
|             // the destructured on_destroy may still reference to the old array | ||||
|             if (component.$$.on_destroy) { | ||||
|                 component.$$.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, append_styles, dirty = [-1]) { | ||||
|     const parent_component = current_component; | ||||
|     set_current_component(component); | ||||
|     const $$ = component.$$ = { | ||||
|         fragment: null, | ||||
|         ctx: [], | ||||
|         // state | ||||
|         props, | ||||
|         update: noop, | ||||
|         not_equal, | ||||
|         bound: blank_object(), | ||||
|         // lifecycle | ||||
|         on_mount: [], | ||||
|         on_destroy: [], | ||||
|         on_disconnect: [], | ||||
|         before_update: [], | ||||
|         after_update: [], | ||||
|         context: new Map(options.context || (parent_component ? parent_component.$$.context : [])), | ||||
|         // everything else | ||||
|         callbacks: blank_object(), | ||||
|         dirty, | ||||
|         skip_bound: false, | ||||
|         root: options.target || parent_component.$$.root | ||||
|     }; | ||||
|     append_styles && append_styles($$.root); | ||||
|     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); | ||||
| } | ||||
| let SvelteElement; | ||||
| if (typeof HTMLElement === 'function') { | ||||
|     SvelteElement = class extends HTMLElement { | ||||
|         constructor() { | ||||
|             super(); | ||||
|             this.attachShadow({ mode: 'open' }); | ||||
|         } | ||||
|         connectedCallback() { | ||||
|             const { on_mount } = this.$$; | ||||
|             this.$$.on_disconnect = on_mount.map(run).filter(is_function); | ||||
|             // @ts-ignore todo: improve typings | ||||
|             for (const key in this.$$.slotted) { | ||||
|                 // @ts-ignore todo: improve typings | ||||
|                 this.appendChild(this.$$.slotted[key]); | ||||
|             } | ||||
|         } | ||||
|         attributeChangedCallback(attr, _oldValue, newValue) { | ||||
|             this[attr] = newValue; | ||||
|         } | ||||
|         disconnectedCallback() { | ||||
|             run_all(this.$$.on_disconnect); | ||||
|         } | ||||
|         $destroy() { | ||||
|             destroy_component(this, 1); | ||||
|             this.$destroy = noop; | ||||
|         } | ||||
|         $on(type, callback) { | ||||
|             // TODO should this delegate to addEventListener? | ||||
|             if (!is_function(callback)) { | ||||
|                 return noop; | ||||
|             } | ||||
|             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.52.0' }, detail), { bubbles: true })); | ||||
| } | ||||
| 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 prop_dev(node, property, value) { | ||||
|     node[property] = value; | ||||
|     dispatch_dev('SvelteDOMSetProperty', { node, property, 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_each_argument(arg) { | ||||
|     if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) { | ||||
|         let msg = '{#each} only iterates over array-like objects.'; | ||||
|         if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) { | ||||
|             msg += ' You can use a spread to convert this iterable into an array.'; | ||||
|         } | ||||
|         throw new Error(msg); | ||||
|     } | ||||
| } | ||||
| 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}".`); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| export { set_custom_element_data as A, validate_each_argument as B, text as C, set_data_dev as D, destroy_each as E, prop_dev as F, set_style as G, svg_element as H, HtmlTag as I, afterUpdate as J, to_number as K, set_input_value as L, SvelteElement as S, attribute_to_object as a, insert_dev as b, setContext as c, dispatch_dev as d, globals as e, element as f, getContext as g, space as h, init as i, add_location as j, attr_dev as k, append_dev as l, listen_dev as m, noop as n, onMount as o, detach_dev as p, binding_callbacks as q, run_all as r, safe_not_equal as s, flush as t, is_function as u, validate_slots as v, validate_store as w, component_subscribe as x, empty as y, src_url_equal as z }; | ||||
| @@ -1,513 +0,0 @@ | ||||
|  | ||||
| (function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document); | ||||
| function noop() { } | ||||
| 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'); | ||||
| } | ||||
| let src_url_equal_anchor; | ||||
| function src_url_equal(element_src, url) { | ||||
|     if (!src_url_equal_anchor) { | ||||
|         src_url_equal_anchor = document.createElement('a'); | ||||
|     } | ||||
|     src_url_equal_anchor.href = url; | ||||
|     return element_src === src_url_equal_anchor.href; | ||||
| } | ||||
| function is_empty(obj) { | ||||
|     return Object.keys(obj).length === 0; | ||||
| } | ||||
| function validate_store(store, name) { | ||||
|     if (store != null && typeof store.subscribe !== 'function') { | ||||
|         throw new Error(`'${name}' is not a store with a 'subscribe' method`); | ||||
|     } | ||||
| } | ||||
| function subscribe(store, ...callbacks) { | ||||
|     if (store == null) { | ||||
|         return noop; | ||||
|     } | ||||
|     const unsub = store.subscribe(...callbacks); | ||||
|     return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub; | ||||
| } | ||||
| function component_subscribe(component, store, callback) { | ||||
|     component.$$.on_destroy.push(subscribe(store, callback)); | ||||
| } | ||||
| 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 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 attr(node, attribute, value) { | ||||
|     if (value == null) | ||||
|         node.removeAttribute(attribute); | ||||
|     else if (node.getAttribute(attribute) !== value) | ||||
|         node.setAttribute(attribute, value); | ||||
| } | ||||
| function set_custom_element_data(node, prop, value) { | ||||
|     if (prop in node) { | ||||
|         node[prop] = typeof node[prop] === 'boolean' && value === '' ? true : value; | ||||
|     } | ||||
|     else { | ||||
|         attr(node, prop, value); | ||||
|     } | ||||
| } | ||||
| function children(element) { | ||||
|     return Array.from(element.childNodes); | ||||
| } | ||||
| function set_style(node, key, value, important) { | ||||
|     if (value === null) { | ||||
|         node.style.removeProperty(key); | ||||
|     } | ||||
|     else { | ||||
|         node.style.setProperty(key, value, important ? 'important' : ''); | ||||
|     } | ||||
| } | ||||
| function custom_event(type, detail, { bubbles = false, cancelable = false } = {}) { | ||||
|     const e = document.createEvent('CustomEvent'); | ||||
|     e.initCustomEvent(type, bubbles, cancelable, detail); | ||||
|     return e; | ||||
| } | ||||
| class HtmlTag { | ||||
|     constructor(is_svg = false) { | ||||
|         this.is_svg = false; | ||||
|         this.is_svg = is_svg; | ||||
|         this.e = this.n = null; | ||||
|     } | ||||
|     c(html) { | ||||
|         this.h(html); | ||||
|     } | ||||
|     m(html, target, anchor = null) { | ||||
|         if (!this.e) { | ||||
|             if (this.is_svg) | ||||
|                 this.e = svg_element(target.nodeName); | ||||
|             else | ||||
|                 this.e = element(target.nodeName); | ||||
|             this.t = target; | ||||
|             this.c(html); | ||||
|         } | ||||
|         this.i(anchor); | ||||
|     } | ||||
|     h(html) { | ||||
|         this.e.innerHTML = html; | ||||
|         this.n = Array.from(this.e.childNodes); | ||||
|     } | ||||
|     i(anchor) { | ||||
|         for (let i = 0; i < this.n.length; i += 1) { | ||||
|             insert(this.t, this.n[i], anchor); | ||||
|         } | ||||
|     } | ||||
|     p(html) { | ||||
|         this.d(); | ||||
|         this.h(html); | ||||
|         this.i(this.a); | ||||
|     } | ||||
|     d() { | ||||
|         this.n.forEach(detach); | ||||
|     } | ||||
| } | ||||
| function attribute_to_object(attributes) { | ||||
|     const result = {}; | ||||
|     for (const attribute of attributes) { | ||||
|         result[attribute.name] = attribute.value; | ||||
|     } | ||||
|     return result; | ||||
| } | ||||
|  | ||||
| let current_component; | ||||
| function set_current_component(component) { | ||||
|     current_component = component; | ||||
| } | ||||
| function get_current_component() { | ||||
|     if (!current_component) | ||||
|         throw new Error('Function called outside component initialization'); | ||||
|     return current_component; | ||||
| } | ||||
| /** | ||||
|  * The `onMount` function schedules a callback to run as soon as the component has been mounted to the DOM. | ||||
|  * It must be called during the component's initialisation (but doesn't need to live *inside* the component; | ||||
|  * it can be called from an external module). | ||||
|  * | ||||
|  * `onMount` does not run inside a [server-side component](/docs#run-time-server-side-component-api). | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-onmount | ||||
|  */ | ||||
| function onMount(fn) { | ||||
|     get_current_component().$$.on_mount.push(fn); | ||||
| } | ||||
| /** | ||||
|  * Associates an arbitrary `context` object with the current component and the specified `key` | ||||
|  * and returns that object. The context is then available to children of the component | ||||
|  * (including slotted content) with `getContext`. | ||||
|  * | ||||
|  * Like lifecycle functions, this must be called during component initialisation. | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-setcontext | ||||
|  */ | ||||
| function setContext(key, context) { | ||||
|     get_current_component().$$.context.set(key, context); | ||||
|     return context; | ||||
| } | ||||
| /** | ||||
|  * Retrieves the context that belongs to the closest parent component with the specified `key`. | ||||
|  * Must be called during component initialisation. | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-getcontext | ||||
|  */ | ||||
| function getContext(key) { | ||||
|     return get_current_component().$$.context.get(key); | ||||
| } | ||||
|  | ||||
| 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); | ||||
| } | ||||
| // flush() calls callbacks in this order: | ||||
| // 1. All beforeUpdate callbacks, in order: parents before children | ||||
| // 2. All bind:this callbacks, in reverse order: children before parents. | ||||
| // 3. All afterUpdate callbacks, in order: parents before children. EXCEPT | ||||
| //    for afterUpdates called during the initial onMount, which are called in | ||||
| //    reverse order: children before parents. | ||||
| // Since callbacks might update component values, which could trigger another | ||||
| // call to flush(), the following steps guard against this: | ||||
| // 1. During beforeUpdate, any updated components will be added to the | ||||
| //    dirty_components array and will cause a reentrant call to flush(). Because | ||||
| //    the flush index is kept outside the function, the reentrant call will pick | ||||
| //    up where the earlier call left off and go through all dirty components. The | ||||
| //    current_component value is saved and restored so that the reentrant call will | ||||
| //    not interfere with the "parent" flush() call. | ||||
| // 2. bind:this callbacks cannot trigger new flush() calls. | ||||
| // 3. During afterUpdate, any updated components will NOT have their afterUpdate | ||||
| //    callback called a second time; the seen_callbacks set, outside the flush() | ||||
| //    function, guarantees this behavior. | ||||
| const seen_callbacks = new Set(); | ||||
| let flushidx = 0; // Do *not* move this inside the flush() function | ||||
| function flush() { | ||||
|     const saved_component = current_component; | ||||
|     do { | ||||
|         // first, call beforeUpdate functions | ||||
|         // and update components | ||||
|         while (flushidx < dirty_components.length) { | ||||
|             const component = dirty_components[flushidx]; | ||||
|             flushidx++; | ||||
|             set_current_component(component); | ||||
|             update(component.$$); | ||||
|         } | ||||
|         set_current_component(null); | ||||
|         dirty_components.length = 0; | ||||
|         flushidx = 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; | ||||
|     seen_callbacks.clear(); | ||||
|     set_current_component(saved_component); | ||||
| } | ||||
| 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(); | ||||
| function transition_in(block, local) { | ||||
|     if (block && block.i) { | ||||
|         outroing.delete(block); | ||||
|         block.i(local); | ||||
|     } | ||||
| } | ||||
|  | ||||
| const globals = (typeof window !== 'undefined' | ||||
|     ? window | ||||
|     : typeof globalThis !== 'undefined' | ||||
|         ? globalThis | ||||
|         : global); | ||||
| function mount_component(component, target, anchor, customElement) { | ||||
|     const { fragment, after_update } = component.$$; | ||||
|     fragment && fragment.m(target, anchor); | ||||
|     if (!customElement) { | ||||
|         // onMount happens before the initial afterUpdate | ||||
|         add_render_callback(() => { | ||||
|             const new_on_destroy = component.$$.on_mount.map(run).filter(is_function); | ||||
|             // if the component was destroyed immediately | ||||
|             // it will update the `$$.on_destroy` reference to `null`. | ||||
|             // the destructured on_destroy may still reference to the old array | ||||
|             if (component.$$.on_destroy) { | ||||
|                 component.$$.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, append_styles, dirty = [-1]) { | ||||
|     const parent_component = current_component; | ||||
|     set_current_component(component); | ||||
|     const $$ = component.$$ = { | ||||
|         fragment: null, | ||||
|         ctx: [], | ||||
|         // state | ||||
|         props, | ||||
|         update: noop, | ||||
|         not_equal, | ||||
|         bound: blank_object(), | ||||
|         // lifecycle | ||||
|         on_mount: [], | ||||
|         on_destroy: [], | ||||
|         on_disconnect: [], | ||||
|         before_update: [], | ||||
|         after_update: [], | ||||
|         context: new Map(options.context || (parent_component ? parent_component.$$.context : [])), | ||||
|         // everything else | ||||
|         callbacks: blank_object(), | ||||
|         dirty, | ||||
|         skip_bound: false, | ||||
|         root: options.target || parent_component.$$.root | ||||
|     }; | ||||
|     append_styles && append_styles($$.root); | ||||
|     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); | ||||
| } | ||||
| let SvelteElement; | ||||
| if (typeof HTMLElement === 'function') { | ||||
|     SvelteElement = class extends HTMLElement { | ||||
|         constructor() { | ||||
|             super(); | ||||
|             this.attachShadow({ mode: 'open' }); | ||||
|         } | ||||
|         connectedCallback() { | ||||
|             const { on_mount } = this.$$; | ||||
|             this.$$.on_disconnect = on_mount.map(run).filter(is_function); | ||||
|             // @ts-ignore todo: improve typings | ||||
|             for (const key in this.$$.slotted) { | ||||
|                 // @ts-ignore todo: improve typings | ||||
|                 this.appendChild(this.$$.slotted[key]); | ||||
|             } | ||||
|         } | ||||
|         attributeChangedCallback(attr, _oldValue, newValue) { | ||||
|             this[attr] = newValue; | ||||
|         } | ||||
|         disconnectedCallback() { | ||||
|             run_all(this.$$.on_disconnect); | ||||
|         } | ||||
|         $destroy() { | ||||
|             destroy_component(this, 1); | ||||
|             this.$destroy = noop; | ||||
|         } | ||||
|         $on(type, callback) { | ||||
|             // TODO should this delegate to addEventListener? | ||||
|             if (!is_function(callback)) { | ||||
|                 return noop; | ||||
|             } | ||||
|             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.52.0' }, detail), { bubbles: true })); | ||||
| } | ||||
| 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 prop_dev(node, property, value) { | ||||
|     node[property] = value; | ||||
|     dispatch_dev('SvelteDOMSetProperty', { node, property, 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_each_argument(arg) { | ||||
|     if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) { | ||||
|         let msg = '{#each} only iterates over array-like objects.'; | ||||
|         if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) { | ||||
|             msg += ' You can use a spread to convert this iterable into an array.'; | ||||
|         } | ||||
|         throw new Error(msg); | ||||
|     } | ||||
| } | ||||
| 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}".`); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| export { validate_each_argument as A, text as B, set_data_dev as C, destroy_each as D, prop_dev as E, set_style as F, svg_element as G, is_function as H, HtmlTag as I, SvelteElement as S, attribute_to_object as a, insert_dev as b, setContext as c, dispatch_dev as d, globals as e, element as f, getContext as g, space as h, init as i, add_location as j, attr_dev as k, append_dev as l, listen_dev as m, noop as n, onMount as o, detach_dev as p, binding_callbacks as q, run_all as r, safe_not_equal as s, flush as t, src_url_equal as u, validate_slots as v, validate_store as w, component_subscribe as x, empty as y, set_custom_element_data as z }; | ||||
| @@ -1,53 +0,0 @@ | ||||
|  | ||||
| (function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document); | ||||
| import { n as noop, s as safe_not_equal } from './index-68a48afb.js'; | ||||
|  | ||||
| const subscriber_queue = []; | ||||
| /** | ||||
|  * Create a `Writable` store that allows both updating and reading by subscription. | ||||
|  * @param {*=}value initial value | ||||
|  * @param {StartStopNotifier=}start start and stop notifications for subscriptions | ||||
|  */ | ||||
| function writable(value, start = noop) { | ||||
|     let stop; | ||||
|     const subscribers = new Set(); | ||||
|     function set(new_value) { | ||||
|         if (safe_not_equal(value, new_value)) { | ||||
|             value = new_value; | ||||
|             if (stop) { // store is ready | ||||
|                 const run_queue = !subscriber_queue.length; | ||||
|                 for (const subscriber of subscribers) { | ||||
|                     subscriber[1](); | ||||
|                     subscriber_queue.push(subscriber, value); | ||||
|                 } | ||||
|                 if (run_queue) { | ||||
|                     for (let i = 0; i < subscriber_queue.length; i += 2) { | ||||
|                         subscriber_queue[i][0](subscriber_queue[i + 1]); | ||||
|                     } | ||||
|                     subscriber_queue.length = 0; | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|     function update(fn) { | ||||
|         set(fn(value)); | ||||
|     } | ||||
|     function subscribe(run, invalidate = noop) { | ||||
|         const subscriber = [run, invalidate]; | ||||
|         subscribers.add(subscriber); | ||||
|         if (subscribers.size === 1) { | ||||
|             stop = start(set) || noop; | ||||
|         } | ||||
|         run(value); | ||||
|         return () => { | ||||
|             subscribers.delete(subscriber); | ||||
|             if (subscribers.size === 0) { | ||||
|                 stop(); | ||||
|                 stop = null; | ||||
|             } | ||||
|         }; | ||||
|     } | ||||
|     return { set, update, subscribe }; | ||||
| } | ||||
|  | ||||
| export { writable as w }; | ||||
| @@ -1,53 +0,0 @@ | ||||
|  | ||||
| (function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document); | ||||
| import { n as noop, s as safe_not_equal } from './index-8c3676b2.js'; | ||||
|  | ||||
| const subscriber_queue = []; | ||||
| /** | ||||
|  * Create a `Writable` store that allows both updating and reading by subscription. | ||||
|  * @param {*=}value initial value | ||||
|  * @param {StartStopNotifier=}start start and stop notifications for subscriptions | ||||
|  */ | ||||
| function writable(value, start = noop) { | ||||
|     let stop; | ||||
|     const subscribers = new Set(); | ||||
|     function set(new_value) { | ||||
|         if (safe_not_equal(value, new_value)) { | ||||
|             value = new_value; | ||||
|             if (stop) { // store is ready | ||||
|                 const run_queue = !subscriber_queue.length; | ||||
|                 for (const subscriber of subscribers) { | ||||
|                     subscriber[1](); | ||||
|                     subscriber_queue.push(subscriber, value); | ||||
|                 } | ||||
|                 if (run_queue) { | ||||
|                     for (let i = 0; i < subscriber_queue.length; i += 2) { | ||||
|                         subscriber_queue[i][0](subscriber_queue[i + 1]); | ||||
|                     } | ||||
|                     subscriber_queue.length = 0; | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|     function update(fn) { | ||||
|         set(fn(value)); | ||||
|     } | ||||
|     function subscribe(run, invalidate = noop) { | ||||
|         const subscriber = [run, invalidate]; | ||||
|         subscribers.add(subscriber); | ||||
|         if (subscribers.size === 1) { | ||||
|             stop = start(set) || noop; | ||||
|         } | ||||
|         run(value); | ||||
|         return () => { | ||||
|             subscribers.delete(subscriber); | ||||
|             if (subscribers.size === 0) { | ||||
|                 stop(); | ||||
|                 stop = null; | ||||
|             } | ||||
|         }; | ||||
|     } | ||||
|     return { set, update, subscribe }; | ||||
| } | ||||
|  | ||||
| export { writable as w }; | ||||
| @@ -1,53 +0,0 @@ | ||||
|  | ||||
| (function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document); | ||||
| import { n as noop, s as safe_not_equal } from './index-a459c24b.js'; | ||||
|  | ||||
| const subscriber_queue = []; | ||||
| /** | ||||
|  * Create a `Writable` store that allows both updating and reading by subscription. | ||||
|  * @param {*=}value initial value | ||||
|  * @param {StartStopNotifier=}start start and stop notifications for subscriptions | ||||
|  */ | ||||
| function writable(value, start = noop) { | ||||
|     let stop; | ||||
|     const subscribers = new Set(); | ||||
|     function set(new_value) { | ||||
|         if (safe_not_equal(value, new_value)) { | ||||
|             value = new_value; | ||||
|             if (stop) { // store is ready | ||||
|                 const run_queue = !subscriber_queue.length; | ||||
|                 for (const subscriber of subscribers) { | ||||
|                     subscriber[1](); | ||||
|                     subscriber_queue.push(subscriber, value); | ||||
|                 } | ||||
|                 if (run_queue) { | ||||
|                     for (let i = 0; i < subscriber_queue.length; i += 2) { | ||||
|                         subscriber_queue[i][0](subscriber_queue[i + 1]); | ||||
|                     } | ||||
|                     subscriber_queue.length = 0; | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|     function update(fn) { | ||||
|         set(fn(value)); | ||||
|     } | ||||
|     function subscribe(run, invalidate = noop) { | ||||
|         const subscriber = [run, invalidate]; | ||||
|         subscribers.add(subscriber); | ||||
|         if (subscribers.size === 1) { | ||||
|             stop = start(set) || noop; | ||||
|         } | ||||
|         run(value); | ||||
|         return () => { | ||||
|             subscribers.delete(subscriber); | ||||
|             if (subscribers.size === 0) { | ||||
|                 stop(); | ||||
|                 stop = null; | ||||
|             } | ||||
|         }; | ||||
|     } | ||||
|     return { set, update, subscribe }; | ||||
| } | ||||
|  | ||||
| export { writable as w }; | ||||
| @@ -1,527 +0,0 @@ | ||||
|  | ||||
| (function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document); | ||||
| function noop() { } | ||||
| 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'); | ||||
| } | ||||
| let src_url_equal_anchor; | ||||
| function src_url_equal(element_src, url) { | ||||
|     if (!src_url_equal_anchor) { | ||||
|         src_url_equal_anchor = document.createElement('a'); | ||||
|     } | ||||
|     src_url_equal_anchor.href = url; | ||||
|     return element_src === src_url_equal_anchor.href; | ||||
| } | ||||
| function is_empty(obj) { | ||||
|     return Object.keys(obj).length === 0; | ||||
| } | ||||
| function validate_store(store, name) { | ||||
|     if (store != null && typeof store.subscribe !== 'function') { | ||||
|         throw new Error(`'${name}' is not a store with a 'subscribe' method`); | ||||
|     } | ||||
| } | ||||
| function subscribe(store, ...callbacks) { | ||||
|     if (store == null) { | ||||
|         return noop; | ||||
|     } | ||||
|     const unsub = store.subscribe(...callbacks); | ||||
|     return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub; | ||||
| } | ||||
| function component_subscribe(component, store, callback) { | ||||
|     component.$$.on_destroy.push(subscribe(store, callback)); | ||||
| } | ||||
| 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 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 attr(node, attribute, value) { | ||||
|     if (value == null) | ||||
|         node.removeAttribute(attribute); | ||||
|     else if (node.getAttribute(attribute) !== value) | ||||
|         node.setAttribute(attribute, value); | ||||
| } | ||||
| function set_custom_element_data(node, prop, value) { | ||||
|     if (prop in node) { | ||||
|         node[prop] = typeof node[prop] === 'boolean' && value === '' ? true : value; | ||||
|     } | ||||
|     else { | ||||
|         attr(node, prop, value); | ||||
|     } | ||||
| } | ||||
| function to_number(value) { | ||||
|     return value === '' ? null : +value; | ||||
| } | ||||
| function children(element) { | ||||
|     return Array.from(element.childNodes); | ||||
| } | ||||
| function set_input_value(input, value) { | ||||
|     input.value = value == null ? '' : value; | ||||
| } | ||||
| function set_style(node, key, value, important) { | ||||
|     if (value === null) { | ||||
|         node.style.removeProperty(key); | ||||
|     } | ||||
|     else { | ||||
|         node.style.setProperty(key, value, important ? 'important' : ''); | ||||
|     } | ||||
| } | ||||
| function custom_event(type, detail, { bubbles = false, cancelable = false } = {}) { | ||||
|     const e = document.createEvent('CustomEvent'); | ||||
|     e.initCustomEvent(type, bubbles, cancelable, detail); | ||||
|     return e; | ||||
| } | ||||
| class HtmlTag { | ||||
|     constructor(is_svg = false) { | ||||
|         this.is_svg = false; | ||||
|         this.is_svg = is_svg; | ||||
|         this.e = this.n = null; | ||||
|     } | ||||
|     c(html) { | ||||
|         this.h(html); | ||||
|     } | ||||
|     m(html, target, anchor = null) { | ||||
|         if (!this.e) { | ||||
|             if (this.is_svg) | ||||
|                 this.e = svg_element(target.nodeName); | ||||
|             else | ||||
|                 this.e = element(target.nodeName); | ||||
|             this.t = target; | ||||
|             this.c(html); | ||||
|         } | ||||
|         this.i(anchor); | ||||
|     } | ||||
|     h(html) { | ||||
|         this.e.innerHTML = html; | ||||
|         this.n = Array.from(this.e.childNodes); | ||||
|     } | ||||
|     i(anchor) { | ||||
|         for (let i = 0; i < this.n.length; i += 1) { | ||||
|             insert(this.t, this.n[i], anchor); | ||||
|         } | ||||
|     } | ||||
|     p(html) { | ||||
|         this.d(); | ||||
|         this.h(html); | ||||
|         this.i(this.a); | ||||
|     } | ||||
|     d() { | ||||
|         this.n.forEach(detach); | ||||
|     } | ||||
| } | ||||
| function attribute_to_object(attributes) { | ||||
|     const result = {}; | ||||
|     for (const attribute of attributes) { | ||||
|         result[attribute.name] = attribute.value; | ||||
|     } | ||||
|     return result; | ||||
| } | ||||
|  | ||||
| let current_component; | ||||
| function set_current_component(component) { | ||||
|     current_component = component; | ||||
| } | ||||
| function get_current_component() { | ||||
|     if (!current_component) | ||||
|         throw new Error('Function called outside component initialization'); | ||||
|     return current_component; | ||||
| } | ||||
| /** | ||||
|  * The `onMount` function schedules a callback to run as soon as the component has been mounted to the DOM. | ||||
|  * It must be called during the component's initialisation (but doesn't need to live *inside* the component; | ||||
|  * it can be called from an external module). | ||||
|  * | ||||
|  * `onMount` does not run inside a [server-side component](/docs#run-time-server-side-component-api). | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-onmount | ||||
|  */ | ||||
| function onMount(fn) { | ||||
|     get_current_component().$$.on_mount.push(fn); | ||||
| } | ||||
| /** | ||||
|  * Schedules a callback to run immediately after the component has been updated. | ||||
|  * | ||||
|  * The first time the callback runs will be after the initial `onMount` | ||||
|  */ | ||||
| function afterUpdate(fn) { | ||||
|     get_current_component().$$.after_update.push(fn); | ||||
| } | ||||
| /** | ||||
|  * Associates an arbitrary `context` object with the current component and the specified `key` | ||||
|  * and returns that object. The context is then available to children of the component | ||||
|  * (including slotted content) with `getContext`. | ||||
|  * | ||||
|  * Like lifecycle functions, this must be called during component initialisation. | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-setcontext | ||||
|  */ | ||||
| function setContext(key, context) { | ||||
|     get_current_component().$$.context.set(key, context); | ||||
|     return context; | ||||
| } | ||||
| /** | ||||
|  * Retrieves the context that belongs to the closest parent component with the specified `key`. | ||||
|  * Must be called during component initialisation. | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-getcontext | ||||
|  */ | ||||
| function getContext(key) { | ||||
|     return get_current_component().$$.context.get(key); | ||||
| } | ||||
|  | ||||
| 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); | ||||
| } | ||||
| // flush() calls callbacks in this order: | ||||
| // 1. All beforeUpdate callbacks, in order: parents before children | ||||
| // 2. All bind:this callbacks, in reverse order: children before parents. | ||||
| // 3. All afterUpdate callbacks, in order: parents before children. EXCEPT | ||||
| //    for afterUpdates called during the initial onMount, which are called in | ||||
| //    reverse order: children before parents. | ||||
| // Since callbacks might update component values, which could trigger another | ||||
| // call to flush(), the following steps guard against this: | ||||
| // 1. During beforeUpdate, any updated components will be added to the | ||||
| //    dirty_components array and will cause a reentrant call to flush(). Because | ||||
| //    the flush index is kept outside the function, the reentrant call will pick | ||||
| //    up where the earlier call left off and go through all dirty components. The | ||||
| //    current_component value is saved and restored so that the reentrant call will | ||||
| //    not interfere with the "parent" flush() call. | ||||
| // 2. bind:this callbacks cannot trigger new flush() calls. | ||||
| // 3. During afterUpdate, any updated components will NOT have their afterUpdate | ||||
| //    callback called a second time; the seen_callbacks set, outside the flush() | ||||
| //    function, guarantees this behavior. | ||||
| const seen_callbacks = new Set(); | ||||
| let flushidx = 0; // Do *not* move this inside the flush() function | ||||
| function flush() { | ||||
|     const saved_component = current_component; | ||||
|     do { | ||||
|         // first, call beforeUpdate functions | ||||
|         // and update components | ||||
|         while (flushidx < dirty_components.length) { | ||||
|             const component = dirty_components[flushidx]; | ||||
|             flushidx++; | ||||
|             set_current_component(component); | ||||
|             update(component.$$); | ||||
|         } | ||||
|         set_current_component(null); | ||||
|         dirty_components.length = 0; | ||||
|         flushidx = 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; | ||||
|     seen_callbacks.clear(); | ||||
|     set_current_component(saved_component); | ||||
| } | ||||
| 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(); | ||||
| function transition_in(block, local) { | ||||
|     if (block && block.i) { | ||||
|         outroing.delete(block); | ||||
|         block.i(local); | ||||
|     } | ||||
| } | ||||
|  | ||||
| const globals = (typeof window !== 'undefined' | ||||
|     ? window | ||||
|     : typeof globalThis !== 'undefined' | ||||
|         ? globalThis | ||||
|         : global); | ||||
| function mount_component(component, target, anchor, customElement) { | ||||
|     const { fragment, after_update } = component.$$; | ||||
|     fragment && fragment.m(target, anchor); | ||||
|     if (!customElement) { | ||||
|         // onMount happens before the initial afterUpdate | ||||
|         add_render_callback(() => { | ||||
|             const new_on_destroy = component.$$.on_mount.map(run).filter(is_function); | ||||
|             // if the component was destroyed immediately | ||||
|             // it will update the `$$.on_destroy` reference to `null`. | ||||
|             // the destructured on_destroy may still reference to the old array | ||||
|             if (component.$$.on_destroy) { | ||||
|                 component.$$.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, append_styles, dirty = [-1]) { | ||||
|     const parent_component = current_component; | ||||
|     set_current_component(component); | ||||
|     const $$ = component.$$ = { | ||||
|         fragment: null, | ||||
|         ctx: [], | ||||
|         // state | ||||
|         props, | ||||
|         update: noop, | ||||
|         not_equal, | ||||
|         bound: blank_object(), | ||||
|         // lifecycle | ||||
|         on_mount: [], | ||||
|         on_destroy: [], | ||||
|         on_disconnect: [], | ||||
|         before_update: [], | ||||
|         after_update: [], | ||||
|         context: new Map(options.context || (parent_component ? parent_component.$$.context : [])), | ||||
|         // everything else | ||||
|         callbacks: blank_object(), | ||||
|         dirty, | ||||
|         skip_bound: false, | ||||
|         root: options.target || parent_component.$$.root | ||||
|     }; | ||||
|     append_styles && append_styles($$.root); | ||||
|     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); | ||||
| } | ||||
| let SvelteElement; | ||||
| if (typeof HTMLElement === 'function') { | ||||
|     SvelteElement = class extends HTMLElement { | ||||
|         constructor() { | ||||
|             super(); | ||||
|             this.attachShadow({ mode: 'open' }); | ||||
|         } | ||||
|         connectedCallback() { | ||||
|             const { on_mount } = this.$$; | ||||
|             this.$$.on_disconnect = on_mount.map(run).filter(is_function); | ||||
|             // @ts-ignore todo: improve typings | ||||
|             for (const key in this.$$.slotted) { | ||||
|                 // @ts-ignore todo: improve typings | ||||
|                 this.appendChild(this.$$.slotted[key]); | ||||
|             } | ||||
|         } | ||||
|         attributeChangedCallback(attr, _oldValue, newValue) { | ||||
|             this[attr] = newValue; | ||||
|         } | ||||
|         disconnectedCallback() { | ||||
|             run_all(this.$$.on_disconnect); | ||||
|         } | ||||
|         $destroy() { | ||||
|             destroy_component(this, 1); | ||||
|             this.$destroy = noop; | ||||
|         } | ||||
|         $on(type, callback) { | ||||
|             // TODO should this delegate to addEventListener? | ||||
|             if (!is_function(callback)) { | ||||
|                 return noop; | ||||
|             } | ||||
|             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.52.0' }, detail), { bubbles: true })); | ||||
| } | ||||
| 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 prop_dev(node, property, value) { | ||||
|     node[property] = value; | ||||
|     dispatch_dev('SvelteDOMSetProperty', { node, property, 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_each_argument(arg) { | ||||
|     if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) { | ||||
|         let msg = '{#each} only iterates over array-like objects.'; | ||||
|         if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) { | ||||
|             msg += ' You can use a spread to convert this iterable into an array.'; | ||||
|         } | ||||
|         throw new Error(msg); | ||||
|     } | ||||
| } | ||||
| 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}".`); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| export { run_all as A, flush as B, is_function as C, src_url_equal as D, set_custom_element_data as E, prop_dev as F, set_style as G, svg_element as H, HtmlTag as I, afterUpdate as J, to_number as K, set_input_value as L, SvelteElement as S, attribute_to_object as a, insert_dev as b, validate_store as c, dispatch_dev as d, component_subscribe as e, globals as f, getContext as g, empty as h, init as i, detach_dev as j, binding_callbacks as k, validate_each_argument as l, space as m, noop as n, onMount as o, set_data_dev as p, element as q, add_location as r, safe_not_equal as s, text as t, attr_dev as u, validate_slots as v, append_dev as w, listen_dev as x, destroy_each as y, setContext as z }; | ||||
| @@ -1,53 +0,0 @@ | ||||
|  | ||||
| (function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document); | ||||
| import { n as noop, s as safe_not_equal } from './index-2e2aa7d2.js'; | ||||
|  | ||||
| const subscriber_queue = []; | ||||
| /** | ||||
|  * Create a `Writable` store that allows both updating and reading by subscription. | ||||
|  * @param {*=}value initial value | ||||
|  * @param {StartStopNotifier=}start start and stop notifications for subscriptions | ||||
|  */ | ||||
| function writable(value, start = noop) { | ||||
|     let stop; | ||||
|     const subscribers = new Set(); | ||||
|     function set(new_value) { | ||||
|         if (safe_not_equal(value, new_value)) { | ||||
|             value = new_value; | ||||
|             if (stop) { // store is ready | ||||
|                 const run_queue = !subscriber_queue.length; | ||||
|                 for (const subscriber of subscribers) { | ||||
|                     subscriber[1](); | ||||
|                     subscriber_queue.push(subscriber, value); | ||||
|                 } | ||||
|                 if (run_queue) { | ||||
|                     for (let i = 0; i < subscriber_queue.length; i += 2) { | ||||
|                         subscriber_queue[i][0](subscriber_queue[i + 1]); | ||||
|                     } | ||||
|                     subscriber_queue.length = 0; | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|     function update(fn) { | ||||
|         set(fn(value)); | ||||
|     } | ||||
|     function subscribe(run, invalidate = noop) { | ||||
|         const subscriber = [run, invalidate]; | ||||
|         subscribers.add(subscriber); | ||||
|         if (subscribers.size === 1) { | ||||
|             stop = start(set) || noop; | ||||
|         } | ||||
|         run(value); | ||||
|         return () => { | ||||
|             subscribers.delete(subscriber); | ||||
|             if (subscribers.size === 0) { | ||||
|                 stop(); | ||||
|                 stop = null; | ||||
|             } | ||||
|         }; | ||||
|     } | ||||
|     return { set, update, subscribe }; | ||||
| } | ||||
|  | ||||
| export { writable as w }; | ||||
| @@ -1,513 +0,0 @@ | ||||
|  | ||||
| (function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document); | ||||
| function noop() { } | ||||
| 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'); | ||||
| } | ||||
| let src_url_equal_anchor; | ||||
| function src_url_equal(element_src, url) { | ||||
|     if (!src_url_equal_anchor) { | ||||
|         src_url_equal_anchor = document.createElement('a'); | ||||
|     } | ||||
|     src_url_equal_anchor.href = url; | ||||
|     return element_src === src_url_equal_anchor.href; | ||||
| } | ||||
| function is_empty(obj) { | ||||
|     return Object.keys(obj).length === 0; | ||||
| } | ||||
| function validate_store(store, name) { | ||||
|     if (store != null && typeof store.subscribe !== 'function') { | ||||
|         throw new Error(`'${name}' is not a store with a 'subscribe' method`); | ||||
|     } | ||||
| } | ||||
| function subscribe(store, ...callbacks) { | ||||
|     if (store == null) { | ||||
|         return noop; | ||||
|     } | ||||
|     const unsub = store.subscribe(...callbacks); | ||||
|     return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub; | ||||
| } | ||||
| function component_subscribe(component, store, callback) { | ||||
|     component.$$.on_destroy.push(subscribe(store, callback)); | ||||
| } | ||||
| 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 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 attr(node, attribute, value) { | ||||
|     if (value == null) | ||||
|         node.removeAttribute(attribute); | ||||
|     else if (node.getAttribute(attribute) !== value) | ||||
|         node.setAttribute(attribute, value); | ||||
| } | ||||
| function set_custom_element_data(node, prop, value) { | ||||
|     if (prop in node) { | ||||
|         node[prop] = typeof node[prop] === 'boolean' && value === '' ? true : value; | ||||
|     } | ||||
|     else { | ||||
|         attr(node, prop, value); | ||||
|     } | ||||
| } | ||||
| function children(element) { | ||||
|     return Array.from(element.childNodes); | ||||
| } | ||||
| function set_style(node, key, value, important) { | ||||
|     if (value === null) { | ||||
|         node.style.removeProperty(key); | ||||
|     } | ||||
|     else { | ||||
|         node.style.setProperty(key, value, important ? 'important' : ''); | ||||
|     } | ||||
| } | ||||
| function custom_event(type, detail, { bubbles = false, cancelable = false } = {}) { | ||||
|     const e = document.createEvent('CustomEvent'); | ||||
|     e.initCustomEvent(type, bubbles, cancelable, detail); | ||||
|     return e; | ||||
| } | ||||
| class HtmlTag { | ||||
|     constructor(is_svg = false) { | ||||
|         this.is_svg = false; | ||||
|         this.is_svg = is_svg; | ||||
|         this.e = this.n = null; | ||||
|     } | ||||
|     c(html) { | ||||
|         this.h(html); | ||||
|     } | ||||
|     m(html, target, anchor = null) { | ||||
|         if (!this.e) { | ||||
|             if (this.is_svg) | ||||
|                 this.e = svg_element(target.nodeName); | ||||
|             else | ||||
|                 this.e = element(target.nodeName); | ||||
|             this.t = target; | ||||
|             this.c(html); | ||||
|         } | ||||
|         this.i(anchor); | ||||
|     } | ||||
|     h(html) { | ||||
|         this.e.innerHTML = html; | ||||
|         this.n = Array.from(this.e.childNodes); | ||||
|     } | ||||
|     i(anchor) { | ||||
|         for (let i = 0; i < this.n.length; i += 1) { | ||||
|             insert(this.t, this.n[i], anchor); | ||||
|         } | ||||
|     } | ||||
|     p(html) { | ||||
|         this.d(); | ||||
|         this.h(html); | ||||
|         this.i(this.a); | ||||
|     } | ||||
|     d() { | ||||
|         this.n.forEach(detach); | ||||
|     } | ||||
| } | ||||
| function attribute_to_object(attributes) { | ||||
|     const result = {}; | ||||
|     for (const attribute of attributes) { | ||||
|         result[attribute.name] = attribute.value; | ||||
|     } | ||||
|     return result; | ||||
| } | ||||
|  | ||||
| let current_component; | ||||
| function set_current_component(component) { | ||||
|     current_component = component; | ||||
| } | ||||
| function get_current_component() { | ||||
|     if (!current_component) | ||||
|         throw new Error('Function called outside component initialization'); | ||||
|     return current_component; | ||||
| } | ||||
| /** | ||||
|  * The `onMount` function schedules a callback to run as soon as the component has been mounted to the DOM. | ||||
|  * It must be called during the component's initialisation (but doesn't need to live *inside* the component; | ||||
|  * it can be called from an external module). | ||||
|  * | ||||
|  * `onMount` does not run inside a [server-side component](/docs#run-time-server-side-component-api). | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-onmount | ||||
|  */ | ||||
| function onMount(fn) { | ||||
|     get_current_component().$$.on_mount.push(fn); | ||||
| } | ||||
| /** | ||||
|  * Associates an arbitrary `context` object with the current component and the specified `key` | ||||
|  * and returns that object. The context is then available to children of the component | ||||
|  * (including slotted content) with `getContext`. | ||||
|  * | ||||
|  * Like lifecycle functions, this must be called during component initialisation. | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-setcontext | ||||
|  */ | ||||
| function setContext(key, context) { | ||||
|     get_current_component().$$.context.set(key, context); | ||||
|     return context; | ||||
| } | ||||
| /** | ||||
|  * Retrieves the context that belongs to the closest parent component with the specified `key`. | ||||
|  * Must be called during component initialisation. | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-getcontext | ||||
|  */ | ||||
| function getContext(key) { | ||||
|     return get_current_component().$$.context.get(key); | ||||
| } | ||||
|  | ||||
| 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); | ||||
| } | ||||
| // flush() calls callbacks in this order: | ||||
| // 1. All beforeUpdate callbacks, in order: parents before children | ||||
| // 2. All bind:this callbacks, in reverse order: children before parents. | ||||
| // 3. All afterUpdate callbacks, in order: parents before children. EXCEPT | ||||
| //    for afterUpdates called during the initial onMount, which are called in | ||||
| //    reverse order: children before parents. | ||||
| // Since callbacks might update component values, which could trigger another | ||||
| // call to flush(), the following steps guard against this: | ||||
| // 1. During beforeUpdate, any updated components will be added to the | ||||
| //    dirty_components array and will cause a reentrant call to flush(). Because | ||||
| //    the flush index is kept outside the function, the reentrant call will pick | ||||
| //    up where the earlier call left off and go through all dirty components. The | ||||
| //    current_component value is saved and restored so that the reentrant call will | ||||
| //    not interfere with the "parent" flush() call. | ||||
| // 2. bind:this callbacks cannot trigger new flush() calls. | ||||
| // 3. During afterUpdate, any updated components will NOT have their afterUpdate | ||||
| //    callback called a second time; the seen_callbacks set, outside the flush() | ||||
| //    function, guarantees this behavior. | ||||
| const seen_callbacks = new Set(); | ||||
| let flushidx = 0; // Do *not* move this inside the flush() function | ||||
| function flush() { | ||||
|     const saved_component = current_component; | ||||
|     do { | ||||
|         // first, call beforeUpdate functions | ||||
|         // and update components | ||||
|         while (flushidx < dirty_components.length) { | ||||
|             const component = dirty_components[flushidx]; | ||||
|             flushidx++; | ||||
|             set_current_component(component); | ||||
|             update(component.$$); | ||||
|         } | ||||
|         set_current_component(null); | ||||
|         dirty_components.length = 0; | ||||
|         flushidx = 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; | ||||
|     seen_callbacks.clear(); | ||||
|     set_current_component(saved_component); | ||||
| } | ||||
| 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(); | ||||
| function transition_in(block, local) { | ||||
|     if (block && block.i) { | ||||
|         outroing.delete(block); | ||||
|         block.i(local); | ||||
|     } | ||||
| } | ||||
|  | ||||
| const globals = (typeof window !== 'undefined' | ||||
|     ? window | ||||
|     : typeof globalThis !== 'undefined' | ||||
|         ? globalThis | ||||
|         : global); | ||||
| function mount_component(component, target, anchor, customElement) { | ||||
|     const { fragment, after_update } = component.$$; | ||||
|     fragment && fragment.m(target, anchor); | ||||
|     if (!customElement) { | ||||
|         // onMount happens before the initial afterUpdate | ||||
|         add_render_callback(() => { | ||||
|             const new_on_destroy = component.$$.on_mount.map(run).filter(is_function); | ||||
|             // if the component was destroyed immediately | ||||
|             // it will update the `$$.on_destroy` reference to `null`. | ||||
|             // the destructured on_destroy may still reference to the old array | ||||
|             if (component.$$.on_destroy) { | ||||
|                 component.$$.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, append_styles, dirty = [-1]) { | ||||
|     const parent_component = current_component; | ||||
|     set_current_component(component); | ||||
|     const $$ = component.$$ = { | ||||
|         fragment: null, | ||||
|         ctx: [], | ||||
|         // state | ||||
|         props, | ||||
|         update: noop, | ||||
|         not_equal, | ||||
|         bound: blank_object(), | ||||
|         // lifecycle | ||||
|         on_mount: [], | ||||
|         on_destroy: [], | ||||
|         on_disconnect: [], | ||||
|         before_update: [], | ||||
|         after_update: [], | ||||
|         context: new Map(options.context || (parent_component ? parent_component.$$.context : [])), | ||||
|         // everything else | ||||
|         callbacks: blank_object(), | ||||
|         dirty, | ||||
|         skip_bound: false, | ||||
|         root: options.target || parent_component.$$.root | ||||
|     }; | ||||
|     append_styles && append_styles($$.root); | ||||
|     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); | ||||
| } | ||||
| let SvelteElement; | ||||
| if (typeof HTMLElement === 'function') { | ||||
|     SvelteElement = class extends HTMLElement { | ||||
|         constructor() { | ||||
|             super(); | ||||
|             this.attachShadow({ mode: 'open' }); | ||||
|         } | ||||
|         connectedCallback() { | ||||
|             const { on_mount } = this.$$; | ||||
|             this.$$.on_disconnect = on_mount.map(run).filter(is_function); | ||||
|             // @ts-ignore todo: improve typings | ||||
|             for (const key in this.$$.slotted) { | ||||
|                 // @ts-ignore todo: improve typings | ||||
|                 this.appendChild(this.$$.slotted[key]); | ||||
|             } | ||||
|         } | ||||
|         attributeChangedCallback(attr, _oldValue, newValue) { | ||||
|             this[attr] = newValue; | ||||
|         } | ||||
|         disconnectedCallback() { | ||||
|             run_all(this.$$.on_disconnect); | ||||
|         } | ||||
|         $destroy() { | ||||
|             destroy_component(this, 1); | ||||
|             this.$destroy = noop; | ||||
|         } | ||||
|         $on(type, callback) { | ||||
|             // TODO should this delegate to addEventListener? | ||||
|             if (!is_function(callback)) { | ||||
|                 return noop; | ||||
|             } | ||||
|             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.52.0' }, detail), { bubbles: true })); | ||||
| } | ||||
| 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 prop_dev(node, property, value) { | ||||
|     node[property] = value; | ||||
|     dispatch_dev('SvelteDOMSetProperty', { node, property, 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_each_argument(arg) { | ||||
|     if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) { | ||||
|         let msg = '{#each} only iterates over array-like objects.'; | ||||
|         if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) { | ||||
|             msg += ' You can use a spread to convert this iterable into an array.'; | ||||
|         } | ||||
|         throw new Error(msg); | ||||
|     } | ||||
| } | ||||
| 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}".`); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| export { flush as A, globals as B, binding_callbacks as C, set_style as D, getContext as E, setContext as F, svg_element as G, is_function as H, HtmlTag as I, SvelteElement as S, attribute_to_object as a, insert_dev as b, validate_store as c, dispatch_dev as d, component_subscribe as e, empty as f, detach_dev as g, validate_each_argument as h, init as i, element as j, space as k, add_location as l, attr_dev as m, noop as n, onMount as o, src_url_equal as p, set_custom_element_data as q, append_dev as r, safe_not_equal as s, text as t, set_data_dev as u, validate_slots as v, destroy_each as w, listen_dev as x, run_all as y, prop_dev as z }; | ||||
| @@ -1,53 +0,0 @@ | ||||
|  | ||||
| (function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document); | ||||
| import { n as noop, s as safe_not_equal } from './index-c56a6d4d.js'; | ||||
|  | ||||
| const subscriber_queue = []; | ||||
| /** | ||||
|  * Create a `Writable` store that allows both updating and reading by subscription. | ||||
|  * @param {*=}value initial value | ||||
|  * @param {StartStopNotifier=}start start and stop notifications for subscriptions | ||||
|  */ | ||||
| function writable(value, start = noop) { | ||||
|     let stop; | ||||
|     const subscribers = new Set(); | ||||
|     function set(new_value) { | ||||
|         if (safe_not_equal(value, new_value)) { | ||||
|             value = new_value; | ||||
|             if (stop) { // store is ready | ||||
|                 const run_queue = !subscriber_queue.length; | ||||
|                 for (const subscriber of subscribers) { | ||||
|                     subscriber[1](); | ||||
|                     subscriber_queue.push(subscriber, value); | ||||
|                 } | ||||
|                 if (run_queue) { | ||||
|                     for (let i = 0; i < subscriber_queue.length; i += 2) { | ||||
|                         subscriber_queue[i][0](subscriber_queue[i + 1]); | ||||
|                     } | ||||
|                     subscriber_queue.length = 0; | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|     function update(fn) { | ||||
|         set(fn(value)); | ||||
|     } | ||||
|     function subscribe(run, invalidate = noop) { | ||||
|         const subscriber = [run, invalidate]; | ||||
|         subscribers.add(subscriber); | ||||
|         if (subscribers.size === 1) { | ||||
|             stop = start(set) || noop; | ||||
|         } | ||||
|         run(value); | ||||
|         return () => { | ||||
|             subscribers.delete(subscriber); | ||||
|             if (subscribers.size === 0) { | ||||
|                 stop(); | ||||
|                 stop = null; | ||||
|             } | ||||
|         }; | ||||
|     } | ||||
|     return { set, update, subscribe }; | ||||
| } | ||||
|  | ||||
| export { writable as w }; | ||||
| @@ -1,494 +0,0 @@ | ||||
|  | ||||
| (function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document); | ||||
| function noop() { } | ||||
| 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'); | ||||
| } | ||||
| let src_url_equal_anchor; | ||||
| function src_url_equal(element_src, url) { | ||||
|     if (!src_url_equal_anchor) { | ||||
|         src_url_equal_anchor = document.createElement('a'); | ||||
|     } | ||||
|     src_url_equal_anchor.href = url; | ||||
|     return element_src === src_url_equal_anchor.href; | ||||
| } | ||||
| function is_empty(obj) { | ||||
|     return Object.keys(obj).length === 0; | ||||
| } | ||||
| 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 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 attr(node, attribute, value) { | ||||
|     if (value == null) | ||||
|         node.removeAttribute(attribute); | ||||
|     else if (node.getAttribute(attribute) !== value) | ||||
|         node.setAttribute(attribute, value); | ||||
| } | ||||
| function set_custom_element_data(node, prop, value) { | ||||
|     if (prop in node) { | ||||
|         node[prop] = typeof node[prop] === 'boolean' && value === '' ? true : value; | ||||
|     } | ||||
|     else { | ||||
|         attr(node, prop, value); | ||||
|     } | ||||
| } | ||||
| function children(element) { | ||||
|     return Array.from(element.childNodes); | ||||
| } | ||||
| function set_style(node, key, value, important) { | ||||
|     if (value === null) { | ||||
|         node.style.removeProperty(key); | ||||
|     } | ||||
|     else { | ||||
|         node.style.setProperty(key, value, important ? 'important' : ''); | ||||
|     } | ||||
| } | ||||
| function custom_event(type, detail, { bubbles = false, cancelable = false } = {}) { | ||||
|     const e = document.createEvent('CustomEvent'); | ||||
|     e.initCustomEvent(type, bubbles, cancelable, detail); | ||||
|     return e; | ||||
| } | ||||
| class HtmlTag { | ||||
|     constructor(is_svg = false) { | ||||
|         this.is_svg = false; | ||||
|         this.is_svg = is_svg; | ||||
|         this.e = this.n = null; | ||||
|     } | ||||
|     c(html) { | ||||
|         this.h(html); | ||||
|     } | ||||
|     m(html, target, anchor = null) { | ||||
|         if (!this.e) { | ||||
|             if (this.is_svg) | ||||
|                 this.e = svg_element(target.nodeName); | ||||
|             else | ||||
|                 this.e = element(target.nodeName); | ||||
|             this.t = target; | ||||
|             this.c(html); | ||||
|         } | ||||
|         this.i(anchor); | ||||
|     } | ||||
|     h(html) { | ||||
|         this.e.innerHTML = html; | ||||
|         this.n = Array.from(this.e.childNodes); | ||||
|     } | ||||
|     i(anchor) { | ||||
|         for (let i = 0; i < this.n.length; i += 1) { | ||||
|             insert(this.t, this.n[i], anchor); | ||||
|         } | ||||
|     } | ||||
|     p(html) { | ||||
|         this.d(); | ||||
|         this.h(html); | ||||
|         this.i(this.a); | ||||
|     } | ||||
|     d() { | ||||
|         this.n.forEach(detach); | ||||
|     } | ||||
| } | ||||
| function attribute_to_object(attributes) { | ||||
|     const result = {}; | ||||
|     for (const attribute of attributes) { | ||||
|         result[attribute.name] = attribute.value; | ||||
|     } | ||||
|     return result; | ||||
| } | ||||
|  | ||||
| let current_component; | ||||
| function set_current_component(component) { | ||||
|     current_component = component; | ||||
| } | ||||
| function get_current_component() { | ||||
|     if (!current_component) | ||||
|         throw new Error('Function called outside component initialization'); | ||||
|     return current_component; | ||||
| } | ||||
| /** | ||||
|  * The `onMount` function schedules a callback to run as soon as the component has been mounted to the DOM. | ||||
|  * It must be called during the component's initialisation (but doesn't need to live *inside* the component; | ||||
|  * it can be called from an external module). | ||||
|  * | ||||
|  * `onMount` does not run inside a [server-side component](/docs#run-time-server-side-component-api). | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-onmount | ||||
|  */ | ||||
| function onMount(fn) { | ||||
|     get_current_component().$$.on_mount.push(fn); | ||||
| } | ||||
| /** | ||||
|  * Associates an arbitrary `context` object with the current component and the specified `key` | ||||
|  * and returns that object. The context is then available to children of the component | ||||
|  * (including slotted content) with `getContext`. | ||||
|  * | ||||
|  * Like lifecycle functions, this must be called during component initialisation. | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-setcontext | ||||
|  */ | ||||
| function setContext(key, context) { | ||||
|     get_current_component().$$.context.set(key, context); | ||||
|     return context; | ||||
| } | ||||
| /** | ||||
|  * Retrieves the context that belongs to the closest parent component with the specified `key`. | ||||
|  * Must be called during component initialisation. | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-getcontext | ||||
|  */ | ||||
| function getContext(key) { | ||||
|     return get_current_component().$$.context.get(key); | ||||
| } | ||||
|  | ||||
| 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); | ||||
| } | ||||
| // flush() calls callbacks in this order: | ||||
| // 1. All beforeUpdate callbacks, in order: parents before children | ||||
| // 2. All bind:this callbacks, in reverse order: children before parents. | ||||
| // 3. All afterUpdate callbacks, in order: parents before children. EXCEPT | ||||
| //    for afterUpdates called during the initial onMount, which are called in | ||||
| //    reverse order: children before parents. | ||||
| // Since callbacks might update component values, which could trigger another | ||||
| // call to flush(), the following steps guard against this: | ||||
| // 1. During beforeUpdate, any updated components will be added to the | ||||
| //    dirty_components array and will cause a reentrant call to flush(). Because | ||||
| //    the flush index is kept outside the function, the reentrant call will pick | ||||
| //    up where the earlier call left off and go through all dirty components. The | ||||
| //    current_component value is saved and restored so that the reentrant call will | ||||
| //    not interfere with the "parent" flush() call. | ||||
| // 2. bind:this callbacks cannot trigger new flush() calls. | ||||
| // 3. During afterUpdate, any updated components will NOT have their afterUpdate | ||||
| //    callback called a second time; the seen_callbacks set, outside the flush() | ||||
| //    function, guarantees this behavior. | ||||
| const seen_callbacks = new Set(); | ||||
| let flushidx = 0; // Do *not* move this inside the flush() function | ||||
| function flush() { | ||||
|     const saved_component = current_component; | ||||
|     do { | ||||
|         // first, call beforeUpdate functions | ||||
|         // and update components | ||||
|         while (flushidx < dirty_components.length) { | ||||
|             const component = dirty_components[flushidx]; | ||||
|             flushidx++; | ||||
|             set_current_component(component); | ||||
|             update(component.$$); | ||||
|         } | ||||
|         set_current_component(null); | ||||
|         dirty_components.length = 0; | ||||
|         flushidx = 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; | ||||
|     seen_callbacks.clear(); | ||||
|     set_current_component(saved_component); | ||||
| } | ||||
| 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(); | ||||
| function transition_in(block, local) { | ||||
|     if (block && block.i) { | ||||
|         outroing.delete(block); | ||||
|         block.i(local); | ||||
|     } | ||||
| } | ||||
|  | ||||
| const globals = (typeof window !== 'undefined' | ||||
|     ? window | ||||
|     : typeof globalThis !== 'undefined' | ||||
|         ? globalThis | ||||
|         : global); | ||||
| function mount_component(component, target, anchor, customElement) { | ||||
|     const { fragment, after_update } = component.$$; | ||||
|     fragment && fragment.m(target, anchor); | ||||
|     if (!customElement) { | ||||
|         // onMount happens before the initial afterUpdate | ||||
|         add_render_callback(() => { | ||||
|             const new_on_destroy = component.$$.on_mount.map(run).filter(is_function); | ||||
|             // if the component was destroyed immediately | ||||
|             // it will update the `$$.on_destroy` reference to `null`. | ||||
|             // the destructured on_destroy may still reference to the old array | ||||
|             if (component.$$.on_destroy) { | ||||
|                 component.$$.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, append_styles, dirty = [-1]) { | ||||
|     const parent_component = current_component; | ||||
|     set_current_component(component); | ||||
|     const $$ = component.$$ = { | ||||
|         fragment: null, | ||||
|         ctx: [], | ||||
|         // state | ||||
|         props, | ||||
|         update: noop, | ||||
|         not_equal, | ||||
|         bound: blank_object(), | ||||
|         // lifecycle | ||||
|         on_mount: [], | ||||
|         on_destroy: [], | ||||
|         on_disconnect: [], | ||||
|         before_update: [], | ||||
|         after_update: [], | ||||
|         context: new Map(options.context || (parent_component ? parent_component.$$.context : [])), | ||||
|         // everything else | ||||
|         callbacks: blank_object(), | ||||
|         dirty, | ||||
|         skip_bound: false, | ||||
|         root: options.target || parent_component.$$.root | ||||
|     }; | ||||
|     append_styles && append_styles($$.root); | ||||
|     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); | ||||
| } | ||||
| let SvelteElement; | ||||
| if (typeof HTMLElement === 'function') { | ||||
|     SvelteElement = class extends HTMLElement { | ||||
|         constructor() { | ||||
|             super(); | ||||
|             this.attachShadow({ mode: 'open' }); | ||||
|         } | ||||
|         connectedCallback() { | ||||
|             const { on_mount } = this.$$; | ||||
|             this.$$.on_disconnect = on_mount.map(run).filter(is_function); | ||||
|             // @ts-ignore todo: improve typings | ||||
|             for (const key in this.$$.slotted) { | ||||
|                 // @ts-ignore todo: improve typings | ||||
|                 this.appendChild(this.$$.slotted[key]); | ||||
|             } | ||||
|         } | ||||
|         attributeChangedCallback(attr, _oldValue, newValue) { | ||||
|             this[attr] = newValue; | ||||
|         } | ||||
|         disconnectedCallback() { | ||||
|             run_all(this.$$.on_disconnect); | ||||
|         } | ||||
|         $destroy() { | ||||
|             destroy_component(this, 1); | ||||
|             this.$destroy = noop; | ||||
|         } | ||||
|         $on(type, callback) { | ||||
|             // TODO should this delegate to addEventListener? | ||||
|             if (!is_function(callback)) { | ||||
|                 return noop; | ||||
|             } | ||||
|             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.52.0' }, detail), { bubbles: true })); | ||||
| } | ||||
| 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_each_argument(arg) { | ||||
|     if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) { | ||||
|         let msg = '{#each} only iterates over array-like objects.'; | ||||
|         if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) { | ||||
|             msg += ' You can use a spread to convert this iterable into an array.'; | ||||
|         } | ||||
|         throw new Error(msg); | ||||
|     } | ||||
| } | ||||
| 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}".`); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| export { setContext as A, run_all as B, svg_element as C, empty as D, is_function as E, HtmlTag as H, SvelteElement as S, attribute_to_object as a, insert_dev as b, validate_slots as c, dispatch_dev as d, element as e, space as f, add_location as g, attr_dev as h, init as i, src_url_equal as j, append_dev as k, detach_dev as l, destroy_each as m, noop as n, onMount as o, set_custom_element_data as p, flush as q, globals as r, safe_not_equal as s, text as t, binding_callbacks as u, validate_each_argument as v, set_style as w, listen_dev as x, set_data_dev as y, getContext as z }; | ||||
| @@ -1 +0,0 @@ | ||||
| import{n,s as t}from"./index-6e99513e.js";const e=[];function s(s,o=n){let i;const c=new Set;function f(n){if(t(s,n)&&(s=n,i)){const n=!e.length;for(const n of c)n[1](),e.push(n,s);if(n){for(let n=0;n<e.length;n+=2)e[n][0](e[n+1]);e.length=0}}}return{set:f,update:function(n){f(n(s))},subscribe:function(t,e=n){const r=[t,e];return c.add(r),1===c.size&&(i=o(f)||n),t(s),()=>{c.delete(r),0===c.size&&(i(),i=null)}}}}export{s as w}; | ||||
| @@ -1,494 +0,0 @@ | ||||
|  | ||||
| (function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document); | ||||
| function noop() { } | ||||
| 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'); | ||||
| } | ||||
| let src_url_equal_anchor; | ||||
| function src_url_equal(element_src, url) { | ||||
|     if (!src_url_equal_anchor) { | ||||
|         src_url_equal_anchor = document.createElement('a'); | ||||
|     } | ||||
|     src_url_equal_anchor.href = url; | ||||
|     return element_src === src_url_equal_anchor.href; | ||||
| } | ||||
| function is_empty(obj) { | ||||
|     return Object.keys(obj).length === 0; | ||||
| } | ||||
| 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 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 attr(node, attribute, value) { | ||||
|     if (value == null) | ||||
|         node.removeAttribute(attribute); | ||||
|     else if (node.getAttribute(attribute) !== value) | ||||
|         node.setAttribute(attribute, value); | ||||
| } | ||||
| function set_custom_element_data(node, prop, value) { | ||||
|     if (prop in node) { | ||||
|         node[prop] = typeof node[prop] === 'boolean' && value === '' ? true : value; | ||||
|     } | ||||
|     else { | ||||
|         attr(node, prop, value); | ||||
|     } | ||||
| } | ||||
| function children(element) { | ||||
|     return Array.from(element.childNodes); | ||||
| } | ||||
| function set_style(node, key, value, important) { | ||||
|     if (value === null) { | ||||
|         node.style.removeProperty(key); | ||||
|     } | ||||
|     else { | ||||
|         node.style.setProperty(key, value, important ? 'important' : ''); | ||||
|     } | ||||
| } | ||||
| function custom_event(type, detail, { bubbles = false, cancelable = false } = {}) { | ||||
|     const e = document.createEvent('CustomEvent'); | ||||
|     e.initCustomEvent(type, bubbles, cancelable, detail); | ||||
|     return e; | ||||
| } | ||||
| class HtmlTag { | ||||
|     constructor(is_svg = false) { | ||||
|         this.is_svg = false; | ||||
|         this.is_svg = is_svg; | ||||
|         this.e = this.n = null; | ||||
|     } | ||||
|     c(html) { | ||||
|         this.h(html); | ||||
|     } | ||||
|     m(html, target, anchor = null) { | ||||
|         if (!this.e) { | ||||
|             if (this.is_svg) | ||||
|                 this.e = svg_element(target.nodeName); | ||||
|             else | ||||
|                 this.e = element(target.nodeName); | ||||
|             this.t = target; | ||||
|             this.c(html); | ||||
|         } | ||||
|         this.i(anchor); | ||||
|     } | ||||
|     h(html) { | ||||
|         this.e.innerHTML = html; | ||||
|         this.n = Array.from(this.e.childNodes); | ||||
|     } | ||||
|     i(anchor) { | ||||
|         for (let i = 0; i < this.n.length; i += 1) { | ||||
|             insert(this.t, this.n[i], anchor); | ||||
|         } | ||||
|     } | ||||
|     p(html) { | ||||
|         this.d(); | ||||
|         this.h(html); | ||||
|         this.i(this.a); | ||||
|     } | ||||
|     d() { | ||||
|         this.n.forEach(detach); | ||||
|     } | ||||
| } | ||||
| function attribute_to_object(attributes) { | ||||
|     const result = {}; | ||||
|     for (const attribute of attributes) { | ||||
|         result[attribute.name] = attribute.value; | ||||
|     } | ||||
|     return result; | ||||
| } | ||||
|  | ||||
| let current_component; | ||||
| function set_current_component(component) { | ||||
|     current_component = component; | ||||
| } | ||||
| function get_current_component() { | ||||
|     if (!current_component) | ||||
|         throw new Error('Function called outside component initialization'); | ||||
|     return current_component; | ||||
| } | ||||
| /** | ||||
|  * The `onMount` function schedules a callback to run as soon as the component has been mounted to the DOM. | ||||
|  * It must be called during the component's initialisation (but doesn't need to live *inside* the component; | ||||
|  * it can be called from an external module). | ||||
|  * | ||||
|  * `onMount` does not run inside a [server-side component](/docs#run-time-server-side-component-api). | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-onmount | ||||
|  */ | ||||
| function onMount(fn) { | ||||
|     get_current_component().$$.on_mount.push(fn); | ||||
| } | ||||
| /** | ||||
|  * Associates an arbitrary `context` object with the current component and the specified `key` | ||||
|  * and returns that object. The context is then available to children of the component | ||||
|  * (including slotted content) with `getContext`. | ||||
|  * | ||||
|  * Like lifecycle functions, this must be called during component initialisation. | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-setcontext | ||||
|  */ | ||||
| function setContext(key, context) { | ||||
|     get_current_component().$$.context.set(key, context); | ||||
|     return context; | ||||
| } | ||||
| /** | ||||
|  * Retrieves the context that belongs to the closest parent component with the specified `key`. | ||||
|  * Must be called during component initialisation. | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-getcontext | ||||
|  */ | ||||
| function getContext(key) { | ||||
|     return get_current_component().$$.context.get(key); | ||||
| } | ||||
|  | ||||
| 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); | ||||
| } | ||||
| // flush() calls callbacks in this order: | ||||
| // 1. All beforeUpdate callbacks, in order: parents before children | ||||
| // 2. All bind:this callbacks, in reverse order: children before parents. | ||||
| // 3. All afterUpdate callbacks, in order: parents before children. EXCEPT | ||||
| //    for afterUpdates called during the initial onMount, which are called in | ||||
| //    reverse order: children before parents. | ||||
| // Since callbacks might update component values, which could trigger another | ||||
| // call to flush(), the following steps guard against this: | ||||
| // 1. During beforeUpdate, any updated components will be added to the | ||||
| //    dirty_components array and will cause a reentrant call to flush(). Because | ||||
| //    the flush index is kept outside the function, the reentrant call will pick | ||||
| //    up where the earlier call left off and go through all dirty components. The | ||||
| //    current_component value is saved and restored so that the reentrant call will | ||||
| //    not interfere with the "parent" flush() call. | ||||
| // 2. bind:this callbacks cannot trigger new flush() calls. | ||||
| // 3. During afterUpdate, any updated components will NOT have their afterUpdate | ||||
| //    callback called a second time; the seen_callbacks set, outside the flush() | ||||
| //    function, guarantees this behavior. | ||||
| const seen_callbacks = new Set(); | ||||
| let flushidx = 0; // Do *not* move this inside the flush() function | ||||
| function flush() { | ||||
|     const saved_component = current_component; | ||||
|     do { | ||||
|         // first, call beforeUpdate functions | ||||
|         // and update components | ||||
|         while (flushidx < dirty_components.length) { | ||||
|             const component = dirty_components[flushidx]; | ||||
|             flushidx++; | ||||
|             set_current_component(component); | ||||
|             update(component.$$); | ||||
|         } | ||||
|         set_current_component(null); | ||||
|         dirty_components.length = 0; | ||||
|         flushidx = 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; | ||||
|     seen_callbacks.clear(); | ||||
|     set_current_component(saved_component); | ||||
| } | ||||
| 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(); | ||||
| function transition_in(block, local) { | ||||
|     if (block && block.i) { | ||||
|         outroing.delete(block); | ||||
|         block.i(local); | ||||
|     } | ||||
| } | ||||
|  | ||||
| const globals = (typeof window !== 'undefined' | ||||
|     ? window | ||||
|     : typeof globalThis !== 'undefined' | ||||
|         ? globalThis | ||||
|         : global); | ||||
| function mount_component(component, target, anchor, customElement) { | ||||
|     const { fragment, after_update } = component.$$; | ||||
|     fragment && fragment.m(target, anchor); | ||||
|     if (!customElement) { | ||||
|         // onMount happens before the initial afterUpdate | ||||
|         add_render_callback(() => { | ||||
|             const new_on_destroy = component.$$.on_mount.map(run).filter(is_function); | ||||
|             // if the component was destroyed immediately | ||||
|             // it will update the `$$.on_destroy` reference to `null`. | ||||
|             // the destructured on_destroy may still reference to the old array | ||||
|             if (component.$$.on_destroy) { | ||||
|                 component.$$.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, append_styles, dirty = [-1]) { | ||||
|     const parent_component = current_component; | ||||
|     set_current_component(component); | ||||
|     const $$ = component.$$ = { | ||||
|         fragment: null, | ||||
|         ctx: [], | ||||
|         // state | ||||
|         props, | ||||
|         update: noop, | ||||
|         not_equal, | ||||
|         bound: blank_object(), | ||||
|         // lifecycle | ||||
|         on_mount: [], | ||||
|         on_destroy: [], | ||||
|         on_disconnect: [], | ||||
|         before_update: [], | ||||
|         after_update: [], | ||||
|         context: new Map(options.context || (parent_component ? parent_component.$$.context : [])), | ||||
|         // everything else | ||||
|         callbacks: blank_object(), | ||||
|         dirty, | ||||
|         skip_bound: false, | ||||
|         root: options.target || parent_component.$$.root | ||||
|     }; | ||||
|     append_styles && append_styles($$.root); | ||||
|     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); | ||||
| } | ||||
| let SvelteElement; | ||||
| if (typeof HTMLElement === 'function') { | ||||
|     SvelteElement = class extends HTMLElement { | ||||
|         constructor() { | ||||
|             super(); | ||||
|             this.attachShadow({ mode: 'open' }); | ||||
|         } | ||||
|         connectedCallback() { | ||||
|             const { on_mount } = this.$$; | ||||
|             this.$$.on_disconnect = on_mount.map(run).filter(is_function); | ||||
|             // @ts-ignore todo: improve typings | ||||
|             for (const key in this.$$.slotted) { | ||||
|                 // @ts-ignore todo: improve typings | ||||
|                 this.appendChild(this.$$.slotted[key]); | ||||
|             } | ||||
|         } | ||||
|         attributeChangedCallback(attr, _oldValue, newValue) { | ||||
|             this[attr] = newValue; | ||||
|         } | ||||
|         disconnectedCallback() { | ||||
|             run_all(this.$$.on_disconnect); | ||||
|         } | ||||
|         $destroy() { | ||||
|             destroy_component(this, 1); | ||||
|             this.$destroy = noop; | ||||
|         } | ||||
|         $on(type, callback) { | ||||
|             // TODO should this delegate to addEventListener? | ||||
|             if (!is_function(callback)) { | ||||
|                 return noop; | ||||
|             } | ||||
|             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.52.0' }, detail), { bubbles: true })); | ||||
| } | ||||
| 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_each_argument(arg) { | ||||
|     if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) { | ||||
|         let msg = '{#each} only iterates over array-like objects.'; | ||||
|         if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) { | ||||
|             msg += ' You can use a spread to convert this iterable into an array.'; | ||||
|         } | ||||
|         throw new Error(msg); | ||||
|     } | ||||
| } | ||||
| 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}".`); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| export { src_url_equal as A, run_all as B, svg_element as C, empty as D, HtmlTag as H, SvelteElement as S, attribute_to_object as a, insert_dev as b, validate_slots as c, dispatch_dev as d, element as e, space as f, add_location as g, set_custom_element_data as h, init as i, attr_dev as j, append_dev as k, detach_dev as l, destroy_each as m, noop as n, onMount as o, flush as p, globals as q, binding_callbacks as r, safe_not_equal as s, text as t, set_style as u, validate_each_argument as v, listen_dev as w, set_data_dev as x, getContext as y, setContext as z }; | ||||
| @@ -1,513 +0,0 @@ | ||||
|  | ||||
| (function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document); | ||||
| function noop() { } | ||||
| 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'); | ||||
| } | ||||
| let src_url_equal_anchor; | ||||
| function src_url_equal(element_src, url) { | ||||
|     if (!src_url_equal_anchor) { | ||||
|         src_url_equal_anchor = document.createElement('a'); | ||||
|     } | ||||
|     src_url_equal_anchor.href = url; | ||||
|     return element_src === src_url_equal_anchor.href; | ||||
| } | ||||
| function is_empty(obj) { | ||||
|     return Object.keys(obj).length === 0; | ||||
| } | ||||
| function validate_store(store, name) { | ||||
|     if (store != null && typeof store.subscribe !== 'function') { | ||||
|         throw new Error(`'${name}' is not a store with a 'subscribe' method`); | ||||
|     } | ||||
| } | ||||
| function subscribe(store, ...callbacks) { | ||||
|     if (store == null) { | ||||
|         return noop; | ||||
|     } | ||||
|     const unsub = store.subscribe(...callbacks); | ||||
|     return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub; | ||||
| } | ||||
| function component_subscribe(component, store, callback) { | ||||
|     component.$$.on_destroy.push(subscribe(store, callback)); | ||||
| } | ||||
| 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 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 attr(node, attribute, value) { | ||||
|     if (value == null) | ||||
|         node.removeAttribute(attribute); | ||||
|     else if (node.getAttribute(attribute) !== value) | ||||
|         node.setAttribute(attribute, value); | ||||
| } | ||||
| function set_custom_element_data(node, prop, value) { | ||||
|     if (prop in node) { | ||||
|         node[prop] = typeof node[prop] === 'boolean' && value === '' ? true : value; | ||||
|     } | ||||
|     else { | ||||
|         attr(node, prop, value); | ||||
|     } | ||||
| } | ||||
| function children(element) { | ||||
|     return Array.from(element.childNodes); | ||||
| } | ||||
| function set_style(node, key, value, important) { | ||||
|     if (value === null) { | ||||
|         node.style.removeProperty(key); | ||||
|     } | ||||
|     else { | ||||
|         node.style.setProperty(key, value, important ? 'important' : ''); | ||||
|     } | ||||
| } | ||||
| function custom_event(type, detail, { bubbles = false, cancelable = false } = {}) { | ||||
|     const e = document.createEvent('CustomEvent'); | ||||
|     e.initCustomEvent(type, bubbles, cancelable, detail); | ||||
|     return e; | ||||
| } | ||||
| class HtmlTag { | ||||
|     constructor(is_svg = false) { | ||||
|         this.is_svg = false; | ||||
|         this.is_svg = is_svg; | ||||
|         this.e = this.n = null; | ||||
|     } | ||||
|     c(html) { | ||||
|         this.h(html); | ||||
|     } | ||||
|     m(html, target, anchor = null) { | ||||
|         if (!this.e) { | ||||
|             if (this.is_svg) | ||||
|                 this.e = svg_element(target.nodeName); | ||||
|             else | ||||
|                 this.e = element(target.nodeName); | ||||
|             this.t = target; | ||||
|             this.c(html); | ||||
|         } | ||||
|         this.i(anchor); | ||||
|     } | ||||
|     h(html) { | ||||
|         this.e.innerHTML = html; | ||||
|         this.n = Array.from(this.e.childNodes); | ||||
|     } | ||||
|     i(anchor) { | ||||
|         for (let i = 0; i < this.n.length; i += 1) { | ||||
|             insert(this.t, this.n[i], anchor); | ||||
|         } | ||||
|     } | ||||
|     p(html) { | ||||
|         this.d(); | ||||
|         this.h(html); | ||||
|         this.i(this.a); | ||||
|     } | ||||
|     d() { | ||||
|         this.n.forEach(detach); | ||||
|     } | ||||
| } | ||||
| function attribute_to_object(attributes) { | ||||
|     const result = {}; | ||||
|     for (const attribute of attributes) { | ||||
|         result[attribute.name] = attribute.value; | ||||
|     } | ||||
|     return result; | ||||
| } | ||||
|  | ||||
| let current_component; | ||||
| function set_current_component(component) { | ||||
|     current_component = component; | ||||
| } | ||||
| function get_current_component() { | ||||
|     if (!current_component) | ||||
|         throw new Error('Function called outside component initialization'); | ||||
|     return current_component; | ||||
| } | ||||
| /** | ||||
|  * The `onMount` function schedules a callback to run as soon as the component has been mounted to the DOM. | ||||
|  * It must be called during the component's initialisation (but doesn't need to live *inside* the component; | ||||
|  * it can be called from an external module). | ||||
|  * | ||||
|  * `onMount` does not run inside a [server-side component](/docs#run-time-server-side-component-api). | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-onmount | ||||
|  */ | ||||
| function onMount(fn) { | ||||
|     get_current_component().$$.on_mount.push(fn); | ||||
| } | ||||
| /** | ||||
|  * Associates an arbitrary `context` object with the current component and the specified `key` | ||||
|  * and returns that object. The context is then available to children of the component | ||||
|  * (including slotted content) with `getContext`. | ||||
|  * | ||||
|  * Like lifecycle functions, this must be called during component initialisation. | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-setcontext | ||||
|  */ | ||||
| function setContext(key, context) { | ||||
|     get_current_component().$$.context.set(key, context); | ||||
|     return context; | ||||
| } | ||||
| /** | ||||
|  * Retrieves the context that belongs to the closest parent component with the specified `key`. | ||||
|  * Must be called during component initialisation. | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-getcontext | ||||
|  */ | ||||
| function getContext(key) { | ||||
|     return get_current_component().$$.context.get(key); | ||||
| } | ||||
|  | ||||
| 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); | ||||
| } | ||||
| // flush() calls callbacks in this order: | ||||
| // 1. All beforeUpdate callbacks, in order: parents before children | ||||
| // 2. All bind:this callbacks, in reverse order: children before parents. | ||||
| // 3. All afterUpdate callbacks, in order: parents before children. EXCEPT | ||||
| //    for afterUpdates called during the initial onMount, which are called in | ||||
| //    reverse order: children before parents. | ||||
| // Since callbacks might update component values, which could trigger another | ||||
| // call to flush(), the following steps guard against this: | ||||
| // 1. During beforeUpdate, any updated components will be added to the | ||||
| //    dirty_components array and will cause a reentrant call to flush(). Because | ||||
| //    the flush index is kept outside the function, the reentrant call will pick | ||||
| //    up where the earlier call left off and go through all dirty components. The | ||||
| //    current_component value is saved and restored so that the reentrant call will | ||||
| //    not interfere with the "parent" flush() call. | ||||
| // 2. bind:this callbacks cannot trigger new flush() calls. | ||||
| // 3. During afterUpdate, any updated components will NOT have their afterUpdate | ||||
| //    callback called a second time; the seen_callbacks set, outside the flush() | ||||
| //    function, guarantees this behavior. | ||||
| const seen_callbacks = new Set(); | ||||
| let flushidx = 0; // Do *not* move this inside the flush() function | ||||
| function flush() { | ||||
|     const saved_component = current_component; | ||||
|     do { | ||||
|         // first, call beforeUpdate functions | ||||
|         // and update components | ||||
|         while (flushidx < dirty_components.length) { | ||||
|             const component = dirty_components[flushidx]; | ||||
|             flushidx++; | ||||
|             set_current_component(component); | ||||
|             update(component.$$); | ||||
|         } | ||||
|         set_current_component(null); | ||||
|         dirty_components.length = 0; | ||||
|         flushidx = 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; | ||||
|     seen_callbacks.clear(); | ||||
|     set_current_component(saved_component); | ||||
| } | ||||
| 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(); | ||||
| function transition_in(block, local) { | ||||
|     if (block && block.i) { | ||||
|         outroing.delete(block); | ||||
|         block.i(local); | ||||
|     } | ||||
| } | ||||
|  | ||||
| const globals = (typeof window !== 'undefined' | ||||
|     ? window | ||||
|     : typeof globalThis !== 'undefined' | ||||
|         ? globalThis | ||||
|         : global); | ||||
| function mount_component(component, target, anchor, customElement) { | ||||
|     const { fragment, after_update } = component.$$; | ||||
|     fragment && fragment.m(target, anchor); | ||||
|     if (!customElement) { | ||||
|         // onMount happens before the initial afterUpdate | ||||
|         add_render_callback(() => { | ||||
|             const new_on_destroy = component.$$.on_mount.map(run).filter(is_function); | ||||
|             // if the component was destroyed immediately | ||||
|             // it will update the `$$.on_destroy` reference to `null`. | ||||
|             // the destructured on_destroy may still reference to the old array | ||||
|             if (component.$$.on_destroy) { | ||||
|                 component.$$.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, append_styles, dirty = [-1]) { | ||||
|     const parent_component = current_component; | ||||
|     set_current_component(component); | ||||
|     const $$ = component.$$ = { | ||||
|         fragment: null, | ||||
|         ctx: [], | ||||
|         // state | ||||
|         props, | ||||
|         update: noop, | ||||
|         not_equal, | ||||
|         bound: blank_object(), | ||||
|         // lifecycle | ||||
|         on_mount: [], | ||||
|         on_destroy: [], | ||||
|         on_disconnect: [], | ||||
|         before_update: [], | ||||
|         after_update: [], | ||||
|         context: new Map(options.context || (parent_component ? parent_component.$$.context : [])), | ||||
|         // everything else | ||||
|         callbacks: blank_object(), | ||||
|         dirty, | ||||
|         skip_bound: false, | ||||
|         root: options.target || parent_component.$$.root | ||||
|     }; | ||||
|     append_styles && append_styles($$.root); | ||||
|     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); | ||||
| } | ||||
| let SvelteElement; | ||||
| if (typeof HTMLElement === 'function') { | ||||
|     SvelteElement = class extends HTMLElement { | ||||
|         constructor() { | ||||
|             super(); | ||||
|             this.attachShadow({ mode: 'open' }); | ||||
|         } | ||||
|         connectedCallback() { | ||||
|             const { on_mount } = this.$$; | ||||
|             this.$$.on_disconnect = on_mount.map(run).filter(is_function); | ||||
|             // @ts-ignore todo: improve typings | ||||
|             for (const key in this.$$.slotted) { | ||||
|                 // @ts-ignore todo: improve typings | ||||
|                 this.appendChild(this.$$.slotted[key]); | ||||
|             } | ||||
|         } | ||||
|         attributeChangedCallback(attr, _oldValue, newValue) { | ||||
|             this[attr] = newValue; | ||||
|         } | ||||
|         disconnectedCallback() { | ||||
|             run_all(this.$$.on_disconnect); | ||||
|         } | ||||
|         $destroy() { | ||||
|             destroy_component(this, 1); | ||||
|             this.$destroy = noop; | ||||
|         } | ||||
|         $on(type, callback) { | ||||
|             // TODO should this delegate to addEventListener? | ||||
|             if (!is_function(callback)) { | ||||
|                 return noop; | ||||
|             } | ||||
|             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.52.0' }, detail), { bubbles: true })); | ||||
| } | ||||
| 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 prop_dev(node, property, value) { | ||||
|     node[property] = value; | ||||
|     dispatch_dev('SvelteDOMSetProperty', { node, property, 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_each_argument(arg) { | ||||
|     if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) { | ||||
|         let msg = '{#each} only iterates over array-like objects.'; | ||||
|         if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) { | ||||
|             msg += ' You can use a spread to convert this iterable into an array.'; | ||||
|         } | ||||
|         throw new Error(msg); | ||||
|     } | ||||
| } | ||||
| 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}".`); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| export { prop_dev as A, flush as B, binding_callbacks as C, set_style as D, getContext as E, setContext as F, svg_element as G, is_function as H, HtmlTag as I, SvelteElement as S, attribute_to_object as a, insert_dev as b, validate_store as c, dispatch_dev as d, component_subscribe as e, validate_each_argument as f, globals as g, empty as h, init as i, detach_dev as j, element as k, space as l, add_location as m, noop as n, onMount as o, attr_dev as p, src_url_equal as q, set_custom_element_data as r, safe_not_equal as s, text as t, append_dev as u, validate_slots as v, set_data_dev as w, destroy_each as x, listen_dev as y, run_all as z }; | ||||
| @@ -1 +0,0 @@ | ||||
| function t(){}function n(t){return t()}function e(){return Object.create(null)}function o(t){t.forEach(n)}function s(t){return"function"==typeof t}function r(t,n){return t!=t?n==n:t!==n||t&&"object"==typeof t||"function"==typeof t}let i,c;function a(t,n){return i||(i=document.createElement("a")),i.href=n,t===i.href}function u(n,e,o){n.$$.on_destroy.push(function(n,...e){if(null==n)return t;const o=n.subscribe(...e);return o.unsubscribe?()=>o.unsubscribe():o}(e,o))}function f(t,n){t.appendChild(n)}function l(t,n,e){t.insertBefore(n,e||null)}function h(t){t.parentNode.removeChild(t)}function d(t,n){for(let e=0;e<t.length;e+=1)t[e]&&t[e].d(n)}function $(t){return document.createElement(t)}function p(t){return document.createTextNode(t)}function m(){return p(" ")}function g(){return p("")}function b(t,n,e,o){return t.addEventListener(n,e,o),()=>t.removeEventListener(n,e,o)}function y(t,n,e){null==e?t.removeAttribute(n):t.getAttribute(n)!==e&&t.setAttribute(n,e)}function _(t,n,e){n in t?t[n]="boolean"==typeof t[n]&&""===e||e:y(t,n,e)}function x(t,n){n=""+n,t.wholeText!==n&&(t.data=n)}function v(t,n,e,o){null===e?t.style.removeProperty(n):t.style.setProperty(n,e,o?"important":"")}class E{constructor(t=!1){this.is_svg=!1,this.is_svg=t,this.e=this.n=null}c(t){this.h(t)}m(t,n,e=null){var o;this.e||(this.is_svg?this.e=(o=n.nodeName,document.createElementNS("http://www.w3.org/2000/svg",o)):this.e=$(n.nodeName),this.t=n,this.c(t)),this.i(e)}h(t){this.e.innerHTML=t,this.n=Array.from(this.e.childNodes)}i(t){for(let n=0;n<this.n.length;n+=1)l(this.t,this.n[n],t)}p(t){this.d(),this.h(t),this.i(this.a)}d(){this.n.forEach(h)}}function w(t){const n={};for(const e of t)n[e.name]=e.value;return n}function k(t){c=t}function C(){if(!c)throw new Error("Function called outside component initialization");return c}function N(t){C().$$.on_mount.push(t)}function A(t){return C().$$.context.get(t)}const L=[],S=[],T=[],j=[],H=Promise.resolve();let M=!1;function O(t){T.push(t)}const P=new Set;let q=0;function z(){const t=c;do{for(;q<L.length;){const t=L[q];q++,k(t),B(t.$$)}for(k(null),L.length=0,q=0;S.length;)S.pop()();for(let t=0;t<T.length;t+=1){const n=T[t];P.has(n)||(P.add(n),n())}T.length=0}while(L.length);for(;j.length;)j.pop()();M=!1,P.clear(),k(t)}function B(t){if(null!==t.fragment){t.update(),o(t.before_update);const n=t.dirty;t.dirty=[-1],t.fragment&&t.fragment.p(t.ctx,n),t.after_update.forEach(O)}}const F=new Set;function D(t,n){-1===t.$$.dirty[0]&&(L.push(t),M||(M=!0,H.then(z)),t.$$.dirty.fill(0)),t.$$.dirty[n/31|0]|=1<<n%31}function G(r,i,a,u,f,l,d,$=[-1]){const p=c;k(r);const m=r.$$={fragment:null,ctx:[],props:l,update:t,not_equal:f,bound:e(),on_mount:[],on_destroy:[],on_disconnect:[],before_update:[],after_update:[],context:new Map(i.context||(p?p.$$.context:[])),callbacks:e(),dirty:$,skip_bound:!1,root:i.target||p.$$.root};d&&d(m.root);let g=!1;if(m.ctx=a?a(r,i.props||{},((t,n,...e)=>{const o=e.length?e[0]:n;return m.ctx&&f(m.ctx[t],m.ctx[t]=o)&&(!m.skip_bound&&m.bound[t]&&m.bound[t](o),g&&D(r,t)),n})):[],m.update(),g=!0,o(m.before_update),m.fragment=!!u&&u(m.ctx),i.target){if(i.hydrate){const t=function(t){return Array.from(t.childNodes)}(i.target);m.fragment&&m.fragment.l(t),t.forEach(h)}else m.fragment&&m.fragment.c();i.intro&&((b=r.$$.fragment)&&b.i&&(F.delete(b),b.i(y))),function(t,e,r,i){const{fragment:c,after_update:a}=t.$$;c&&c.m(e,r),i||O((()=>{const e=t.$$.on_mount.map(n).filter(s);t.$$.on_destroy?t.$$.on_destroy.push(...e):o(e),t.$$.on_mount=[]})),a.forEach(O)}(r,i.target,i.anchor,i.customElement),z()}var b,y;k(p)}let I;"function"==typeof HTMLElement&&(I=class extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"})}connectedCallback(){const{on_mount:t}=this.$$;this.$$.on_disconnect=t.map(n).filter(s);for(const t in this.$$.slotted)this.appendChild(this.$$.slotted[t])}attributeChangedCallback(t,n,e){this[t]=e}disconnectedCallback(){o(this.$$.on_disconnect)}$destroy(){!function(t,n){const e=t.$$;null!==e.fragment&&(o(e.on_destroy),e.fragment&&e.fragment.d(n),e.on_destroy=e.fragment=null,e.ctx=[])}(this,1),this.$destroy=t}$on(n,e){if(!s(e))return t;const o=this.$$.callbacks[n]||(this.$$.callbacks[n]=[]);return o.push(e),()=>{const t=o.indexOf(e);-1!==t&&o.splice(t,1)}}$set(t){var n;this.$$set&&(n=t,0!==Object.keys(n).length)&&(this.$$.skip_bound=!0,this.$$set(t),this.$$.skip_bound=!1)}});export{E as H,I as S,w as a,l as b,u as c,h as d,g as e,$ as f,m as g,y as h,G as i,a as j,_ as k,f as l,x as m,t as n,N as o,d as p,b as q,o as r,r as s,p as t,z as u,v,S as w,A as x,s as y}; | ||||
| @@ -1,53 +0,0 @@ | ||||
|  | ||||
| (function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document); | ||||
| import { n as noop, s as safe_not_equal } from './index-d19aafba.js'; | ||||
|  | ||||
| const subscriber_queue = []; | ||||
| /** | ||||
|  * Create a `Writable` store that allows both updating and reading by subscription. | ||||
|  * @param {*=}value initial value | ||||
|  * @param {StartStopNotifier=}start start and stop notifications for subscriptions | ||||
|  */ | ||||
| function writable(value, start = noop) { | ||||
|     let stop; | ||||
|     const subscribers = new Set(); | ||||
|     function set(new_value) { | ||||
|         if (safe_not_equal(value, new_value)) { | ||||
|             value = new_value; | ||||
|             if (stop) { // store is ready | ||||
|                 const run_queue = !subscriber_queue.length; | ||||
|                 for (const subscriber of subscribers) { | ||||
|                     subscriber[1](); | ||||
|                     subscriber_queue.push(subscriber, value); | ||||
|                 } | ||||
|                 if (run_queue) { | ||||
|                     for (let i = 0; i < subscriber_queue.length; i += 2) { | ||||
|                         subscriber_queue[i][0](subscriber_queue[i + 1]); | ||||
|                     } | ||||
|                     subscriber_queue.length = 0; | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|     function update(fn) { | ||||
|         set(fn(value)); | ||||
|     } | ||||
|     function subscribe(run, invalidate = noop) { | ||||
|         const subscriber = [run, invalidate]; | ||||
|         subscribers.add(subscriber); | ||||
|         if (subscribers.size === 1) { | ||||
|             stop = start(set) || noop; | ||||
|         } | ||||
|         run(value); | ||||
|         return () => { | ||||
|             subscribers.delete(subscriber); | ||||
|             if (subscribers.size === 0) { | ||||
|                 stop(); | ||||
|                 stop = null; | ||||
|             } | ||||
|         }; | ||||
|     } | ||||
|     return { set, update, subscribe }; | ||||
| } | ||||
|  | ||||
| export { writable as w }; | ||||
| @@ -1 +0,0 @@ | ||||
| import{n,s as t}from"./index-6a7bc1e2.js";const e=[];function s(s,o=n){let c;const i=new Set;function f(n){if(t(s,n)&&(s=n,c)){const n=!e.length;for(const n of i)n[1](),e.push(n,s);if(n){for(let n=0;n<e.length;n+=2)e[n][0](e[n+1]);e.length=0}}}return{set:f,update:function(n){f(n(s))},subscribe:function(t,e=n){const r=[t,e];return i.add(r),1===i.size&&(c=o(f)||n),t(s),()=>{i.delete(r),0===i.size&&(c(),c=null)}}}}export{s as w}; | ||||
| @@ -1,494 +0,0 @@ | ||||
|  | ||||
| (function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document); | ||||
| function noop() { } | ||||
| 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'); | ||||
| } | ||||
| let src_url_equal_anchor; | ||||
| function src_url_equal(element_src, url) { | ||||
|     if (!src_url_equal_anchor) { | ||||
|         src_url_equal_anchor = document.createElement('a'); | ||||
|     } | ||||
|     src_url_equal_anchor.href = url; | ||||
|     return element_src === src_url_equal_anchor.href; | ||||
| } | ||||
| function is_empty(obj) { | ||||
|     return Object.keys(obj).length === 0; | ||||
| } | ||||
| 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 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 attr(node, attribute, value) { | ||||
|     if (value == null) | ||||
|         node.removeAttribute(attribute); | ||||
|     else if (node.getAttribute(attribute) !== value) | ||||
|         node.setAttribute(attribute, value); | ||||
| } | ||||
| function set_custom_element_data(node, prop, value) { | ||||
|     if (prop in node) { | ||||
|         node[prop] = typeof node[prop] === 'boolean' && value === '' ? true : value; | ||||
|     } | ||||
|     else { | ||||
|         attr(node, prop, value); | ||||
|     } | ||||
| } | ||||
| function children(element) { | ||||
|     return Array.from(element.childNodes); | ||||
| } | ||||
| function set_style(node, key, value, important) { | ||||
|     if (value === null) { | ||||
|         node.style.removeProperty(key); | ||||
|     } | ||||
|     else { | ||||
|         node.style.setProperty(key, value, important ? 'important' : ''); | ||||
|     } | ||||
| } | ||||
| function custom_event(type, detail, { bubbles = false, cancelable = false } = {}) { | ||||
|     const e = document.createEvent('CustomEvent'); | ||||
|     e.initCustomEvent(type, bubbles, cancelable, detail); | ||||
|     return e; | ||||
| } | ||||
| class HtmlTag { | ||||
|     constructor(is_svg = false) { | ||||
|         this.is_svg = false; | ||||
|         this.is_svg = is_svg; | ||||
|         this.e = this.n = null; | ||||
|     } | ||||
|     c(html) { | ||||
|         this.h(html); | ||||
|     } | ||||
|     m(html, target, anchor = null) { | ||||
|         if (!this.e) { | ||||
|             if (this.is_svg) | ||||
|                 this.e = svg_element(target.nodeName); | ||||
|             else | ||||
|                 this.e = element(target.nodeName); | ||||
|             this.t = target; | ||||
|             this.c(html); | ||||
|         } | ||||
|         this.i(anchor); | ||||
|     } | ||||
|     h(html) { | ||||
|         this.e.innerHTML = html; | ||||
|         this.n = Array.from(this.e.childNodes); | ||||
|     } | ||||
|     i(anchor) { | ||||
|         for (let i = 0; i < this.n.length; i += 1) { | ||||
|             insert(this.t, this.n[i], anchor); | ||||
|         } | ||||
|     } | ||||
|     p(html) { | ||||
|         this.d(); | ||||
|         this.h(html); | ||||
|         this.i(this.a); | ||||
|     } | ||||
|     d() { | ||||
|         this.n.forEach(detach); | ||||
|     } | ||||
| } | ||||
| function attribute_to_object(attributes) { | ||||
|     const result = {}; | ||||
|     for (const attribute of attributes) { | ||||
|         result[attribute.name] = attribute.value; | ||||
|     } | ||||
|     return result; | ||||
| } | ||||
|  | ||||
| let current_component; | ||||
| function set_current_component(component) { | ||||
|     current_component = component; | ||||
| } | ||||
| function get_current_component() { | ||||
|     if (!current_component) | ||||
|         throw new Error('Function called outside component initialization'); | ||||
|     return current_component; | ||||
| } | ||||
| /** | ||||
|  * The `onMount` function schedules a callback to run as soon as the component has been mounted to the DOM. | ||||
|  * It must be called during the component's initialisation (but doesn't need to live *inside* the component; | ||||
|  * it can be called from an external module). | ||||
|  * | ||||
|  * `onMount` does not run inside a [server-side component](/docs#run-time-server-side-component-api). | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-onmount | ||||
|  */ | ||||
| function onMount(fn) { | ||||
|     get_current_component().$$.on_mount.push(fn); | ||||
| } | ||||
| /** | ||||
|  * Associates an arbitrary `context` object with the current component and the specified `key` | ||||
|  * and returns that object. The context is then available to children of the component | ||||
|  * (including slotted content) with `getContext`. | ||||
|  * | ||||
|  * Like lifecycle functions, this must be called during component initialisation. | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-setcontext | ||||
|  */ | ||||
| function setContext(key, context) { | ||||
|     get_current_component().$$.context.set(key, context); | ||||
|     return context; | ||||
| } | ||||
| /** | ||||
|  * Retrieves the context that belongs to the closest parent component with the specified `key`. | ||||
|  * Must be called during component initialisation. | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-getcontext | ||||
|  */ | ||||
| function getContext(key) { | ||||
|     return get_current_component().$$.context.get(key); | ||||
| } | ||||
|  | ||||
| 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); | ||||
| } | ||||
| // flush() calls callbacks in this order: | ||||
| // 1. All beforeUpdate callbacks, in order: parents before children | ||||
| // 2. All bind:this callbacks, in reverse order: children before parents. | ||||
| // 3. All afterUpdate callbacks, in order: parents before children. EXCEPT | ||||
| //    for afterUpdates called during the initial onMount, which are called in | ||||
| //    reverse order: children before parents. | ||||
| // Since callbacks might update component values, which could trigger another | ||||
| // call to flush(), the following steps guard against this: | ||||
| // 1. During beforeUpdate, any updated components will be added to the | ||||
| //    dirty_components array and will cause a reentrant call to flush(). Because | ||||
| //    the flush index is kept outside the function, the reentrant call will pick | ||||
| //    up where the earlier call left off and go through all dirty components. The | ||||
| //    current_component value is saved and restored so that the reentrant call will | ||||
| //    not interfere with the "parent" flush() call. | ||||
| // 2. bind:this callbacks cannot trigger new flush() calls. | ||||
| // 3. During afterUpdate, any updated components will NOT have their afterUpdate | ||||
| //    callback called a second time; the seen_callbacks set, outside the flush() | ||||
| //    function, guarantees this behavior. | ||||
| const seen_callbacks = new Set(); | ||||
| let flushidx = 0; // Do *not* move this inside the flush() function | ||||
| function flush() { | ||||
|     const saved_component = current_component; | ||||
|     do { | ||||
|         // first, call beforeUpdate functions | ||||
|         // and update components | ||||
|         while (flushidx < dirty_components.length) { | ||||
|             const component = dirty_components[flushidx]; | ||||
|             flushidx++; | ||||
|             set_current_component(component); | ||||
|             update(component.$$); | ||||
|         } | ||||
|         set_current_component(null); | ||||
|         dirty_components.length = 0; | ||||
|         flushidx = 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; | ||||
|     seen_callbacks.clear(); | ||||
|     set_current_component(saved_component); | ||||
| } | ||||
| 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(); | ||||
| function transition_in(block, local) { | ||||
|     if (block && block.i) { | ||||
|         outroing.delete(block); | ||||
|         block.i(local); | ||||
|     } | ||||
| } | ||||
|  | ||||
| const globals = (typeof window !== 'undefined' | ||||
|     ? window | ||||
|     : typeof globalThis !== 'undefined' | ||||
|         ? globalThis | ||||
|         : global); | ||||
| function mount_component(component, target, anchor, customElement) { | ||||
|     const { fragment, after_update } = component.$$; | ||||
|     fragment && fragment.m(target, anchor); | ||||
|     if (!customElement) { | ||||
|         // onMount happens before the initial afterUpdate | ||||
|         add_render_callback(() => { | ||||
|             const new_on_destroy = component.$$.on_mount.map(run).filter(is_function); | ||||
|             // if the component was destroyed immediately | ||||
|             // it will update the `$$.on_destroy` reference to `null`. | ||||
|             // the destructured on_destroy may still reference to the old array | ||||
|             if (component.$$.on_destroy) { | ||||
|                 component.$$.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, append_styles, dirty = [-1]) { | ||||
|     const parent_component = current_component; | ||||
|     set_current_component(component); | ||||
|     const $$ = component.$$ = { | ||||
|         fragment: null, | ||||
|         ctx: [], | ||||
|         // state | ||||
|         props, | ||||
|         update: noop, | ||||
|         not_equal, | ||||
|         bound: blank_object(), | ||||
|         // lifecycle | ||||
|         on_mount: [], | ||||
|         on_destroy: [], | ||||
|         on_disconnect: [], | ||||
|         before_update: [], | ||||
|         after_update: [], | ||||
|         context: new Map(options.context || (parent_component ? parent_component.$$.context : [])), | ||||
|         // everything else | ||||
|         callbacks: blank_object(), | ||||
|         dirty, | ||||
|         skip_bound: false, | ||||
|         root: options.target || parent_component.$$.root | ||||
|     }; | ||||
|     append_styles && append_styles($$.root); | ||||
|     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); | ||||
| } | ||||
| let SvelteElement; | ||||
| if (typeof HTMLElement === 'function') { | ||||
|     SvelteElement = class extends HTMLElement { | ||||
|         constructor() { | ||||
|             super(); | ||||
|             this.attachShadow({ mode: 'open' }); | ||||
|         } | ||||
|         connectedCallback() { | ||||
|             const { on_mount } = this.$$; | ||||
|             this.$$.on_disconnect = on_mount.map(run).filter(is_function); | ||||
|             // @ts-ignore todo: improve typings | ||||
|             for (const key in this.$$.slotted) { | ||||
|                 // @ts-ignore todo: improve typings | ||||
|                 this.appendChild(this.$$.slotted[key]); | ||||
|             } | ||||
|         } | ||||
|         attributeChangedCallback(attr, _oldValue, newValue) { | ||||
|             this[attr] = newValue; | ||||
|         } | ||||
|         disconnectedCallback() { | ||||
|             run_all(this.$$.on_disconnect); | ||||
|         } | ||||
|         $destroy() { | ||||
|             destroy_component(this, 1); | ||||
|             this.$destroy = noop; | ||||
|         } | ||||
|         $on(type, callback) { | ||||
|             // TODO should this delegate to addEventListener? | ||||
|             if (!is_function(callback)) { | ||||
|                 return noop; | ||||
|             } | ||||
|             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.52.0' }, detail), { bubbles: true })); | ||||
| } | ||||
| 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_each_argument(arg) { | ||||
|     if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) { | ||||
|         let msg = '{#each} only iterates over array-like objects.'; | ||||
|         if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) { | ||||
|             msg += ' You can use a spread to convert this iterable into an array.'; | ||||
|         } | ||||
|         throw new Error(msg); | ||||
|     } | ||||
| } | ||||
| 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}".`); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| export { run_all as A, svg_element as B, set_custom_element_data as C, empty as D, HtmlTag as H, SvelteElement as S, attribute_to_object as a, insert_dev as b, space as c, dispatch_dev as d, element as e, add_location as f, attr_dev as g, append_dev as h, init as i, detach_dev as j, flush as k, validate_each_argument as l, globals as m, noop as n, onMount as o, destroy_each as p, binding_callbacks as q, set_style as r, safe_not_equal as s, text as t, listen_dev as u, validate_slots as v, set_data_dev as w, getContext as x, setContext as y, src_url_equal as z }; | ||||
| @@ -1,53 +0,0 @@ | ||||
|  | ||||
| (function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document); | ||||
| import { n as noop, s as safe_not_equal } from './index-5cb337ff.js'; | ||||
|  | ||||
| const subscriber_queue = []; | ||||
| /** | ||||
|  * Create a `Writable` store that allows both updating and reading by subscription. | ||||
|  * @param {*=}value initial value | ||||
|  * @param {StartStopNotifier=}start start and stop notifications for subscriptions | ||||
|  */ | ||||
| function writable(value, start = noop) { | ||||
|     let stop; | ||||
|     const subscribers = new Set(); | ||||
|     function set(new_value) { | ||||
|         if (safe_not_equal(value, new_value)) { | ||||
|             value = new_value; | ||||
|             if (stop) { // store is ready | ||||
|                 const run_queue = !subscriber_queue.length; | ||||
|                 for (const subscriber of subscribers) { | ||||
|                     subscriber[1](); | ||||
|                     subscriber_queue.push(subscriber, value); | ||||
|                 } | ||||
|                 if (run_queue) { | ||||
|                     for (let i = 0; i < subscriber_queue.length; i += 2) { | ||||
|                         subscriber_queue[i][0](subscriber_queue[i + 1]); | ||||
|                     } | ||||
|                     subscriber_queue.length = 0; | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|     function update(fn) { | ||||
|         set(fn(value)); | ||||
|     } | ||||
|     function subscribe(run, invalidate = noop) { | ||||
|         const subscriber = [run, invalidate]; | ||||
|         subscribers.add(subscriber); | ||||
|         if (subscribers.size === 1) { | ||||
|             stop = start(set) || noop; | ||||
|         } | ||||
|         run(value); | ||||
|         return () => { | ||||
|             subscribers.delete(subscriber); | ||||
|             if (subscribers.size === 0) { | ||||
|                 stop(); | ||||
|                 stop = null; | ||||
|             } | ||||
|         }; | ||||
|     } | ||||
|     return { set, update, subscribe }; | ||||
| } | ||||
|  | ||||
| export { writable as w }; | ||||
| @@ -1,513 +0,0 @@ | ||||
|  | ||||
| (function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document); | ||||
| function noop() { } | ||||
| 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'); | ||||
| } | ||||
| let src_url_equal_anchor; | ||||
| function src_url_equal(element_src, url) { | ||||
|     if (!src_url_equal_anchor) { | ||||
|         src_url_equal_anchor = document.createElement('a'); | ||||
|     } | ||||
|     src_url_equal_anchor.href = url; | ||||
|     return element_src === src_url_equal_anchor.href; | ||||
| } | ||||
| function is_empty(obj) { | ||||
|     return Object.keys(obj).length === 0; | ||||
| } | ||||
| function validate_store(store, name) { | ||||
|     if (store != null && typeof store.subscribe !== 'function') { | ||||
|         throw new Error(`'${name}' is not a store with a 'subscribe' method`); | ||||
|     } | ||||
| } | ||||
| function subscribe(store, ...callbacks) { | ||||
|     if (store == null) { | ||||
|         return noop; | ||||
|     } | ||||
|     const unsub = store.subscribe(...callbacks); | ||||
|     return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub; | ||||
| } | ||||
| function component_subscribe(component, store, callback) { | ||||
|     component.$$.on_destroy.push(subscribe(store, callback)); | ||||
| } | ||||
| 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 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 attr(node, attribute, value) { | ||||
|     if (value == null) | ||||
|         node.removeAttribute(attribute); | ||||
|     else if (node.getAttribute(attribute) !== value) | ||||
|         node.setAttribute(attribute, value); | ||||
| } | ||||
| function set_custom_element_data(node, prop, value) { | ||||
|     if (prop in node) { | ||||
|         node[prop] = typeof node[prop] === 'boolean' && value === '' ? true : value; | ||||
|     } | ||||
|     else { | ||||
|         attr(node, prop, value); | ||||
|     } | ||||
| } | ||||
| function children(element) { | ||||
|     return Array.from(element.childNodes); | ||||
| } | ||||
| function set_style(node, key, value, important) { | ||||
|     if (value === null) { | ||||
|         node.style.removeProperty(key); | ||||
|     } | ||||
|     else { | ||||
|         node.style.setProperty(key, value, important ? 'important' : ''); | ||||
|     } | ||||
| } | ||||
| function custom_event(type, detail, { bubbles = false, cancelable = false } = {}) { | ||||
|     const e = document.createEvent('CustomEvent'); | ||||
|     e.initCustomEvent(type, bubbles, cancelable, detail); | ||||
|     return e; | ||||
| } | ||||
| class HtmlTag { | ||||
|     constructor(is_svg = false) { | ||||
|         this.is_svg = false; | ||||
|         this.is_svg = is_svg; | ||||
|         this.e = this.n = null; | ||||
|     } | ||||
|     c(html) { | ||||
|         this.h(html); | ||||
|     } | ||||
|     m(html, target, anchor = null) { | ||||
|         if (!this.e) { | ||||
|             if (this.is_svg) | ||||
|                 this.e = svg_element(target.nodeName); | ||||
|             else | ||||
|                 this.e = element(target.nodeName); | ||||
|             this.t = target; | ||||
|             this.c(html); | ||||
|         } | ||||
|         this.i(anchor); | ||||
|     } | ||||
|     h(html) { | ||||
|         this.e.innerHTML = html; | ||||
|         this.n = Array.from(this.e.childNodes); | ||||
|     } | ||||
|     i(anchor) { | ||||
|         for (let i = 0; i < this.n.length; i += 1) { | ||||
|             insert(this.t, this.n[i], anchor); | ||||
|         } | ||||
|     } | ||||
|     p(html) { | ||||
|         this.d(); | ||||
|         this.h(html); | ||||
|         this.i(this.a); | ||||
|     } | ||||
|     d() { | ||||
|         this.n.forEach(detach); | ||||
|     } | ||||
| } | ||||
| function attribute_to_object(attributes) { | ||||
|     const result = {}; | ||||
|     for (const attribute of attributes) { | ||||
|         result[attribute.name] = attribute.value; | ||||
|     } | ||||
|     return result; | ||||
| } | ||||
|  | ||||
| let current_component; | ||||
| function set_current_component(component) { | ||||
|     current_component = component; | ||||
| } | ||||
| function get_current_component() { | ||||
|     if (!current_component) | ||||
|         throw new Error('Function called outside component initialization'); | ||||
|     return current_component; | ||||
| } | ||||
| /** | ||||
|  * The `onMount` function schedules a callback to run as soon as the component has been mounted to the DOM. | ||||
|  * It must be called during the component's initialisation (but doesn't need to live *inside* the component; | ||||
|  * it can be called from an external module). | ||||
|  * | ||||
|  * `onMount` does not run inside a [server-side component](/docs#run-time-server-side-component-api). | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-onmount | ||||
|  */ | ||||
| function onMount(fn) { | ||||
|     get_current_component().$$.on_mount.push(fn); | ||||
| } | ||||
| /** | ||||
|  * Associates an arbitrary `context` object with the current component and the specified `key` | ||||
|  * and returns that object. The context is then available to children of the component | ||||
|  * (including slotted content) with `getContext`. | ||||
|  * | ||||
|  * Like lifecycle functions, this must be called during component initialisation. | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-setcontext | ||||
|  */ | ||||
| function setContext(key, context) { | ||||
|     get_current_component().$$.context.set(key, context); | ||||
|     return context; | ||||
| } | ||||
| /** | ||||
|  * Retrieves the context that belongs to the closest parent component with the specified `key`. | ||||
|  * Must be called during component initialisation. | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-getcontext | ||||
|  */ | ||||
| function getContext(key) { | ||||
|     return get_current_component().$$.context.get(key); | ||||
| } | ||||
|  | ||||
| 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); | ||||
| } | ||||
| // flush() calls callbacks in this order: | ||||
| // 1. All beforeUpdate callbacks, in order: parents before children | ||||
| // 2. All bind:this callbacks, in reverse order: children before parents. | ||||
| // 3. All afterUpdate callbacks, in order: parents before children. EXCEPT | ||||
| //    for afterUpdates called during the initial onMount, which are called in | ||||
| //    reverse order: children before parents. | ||||
| // Since callbacks might update component values, which could trigger another | ||||
| // call to flush(), the following steps guard against this: | ||||
| // 1. During beforeUpdate, any updated components will be added to the | ||||
| //    dirty_components array and will cause a reentrant call to flush(). Because | ||||
| //    the flush index is kept outside the function, the reentrant call will pick | ||||
| //    up where the earlier call left off and go through all dirty components. The | ||||
| //    current_component value is saved and restored so that the reentrant call will | ||||
| //    not interfere with the "parent" flush() call. | ||||
| // 2. bind:this callbacks cannot trigger new flush() calls. | ||||
| // 3. During afterUpdate, any updated components will NOT have their afterUpdate | ||||
| //    callback called a second time; the seen_callbacks set, outside the flush() | ||||
| //    function, guarantees this behavior. | ||||
| const seen_callbacks = new Set(); | ||||
| let flushidx = 0; // Do *not* move this inside the flush() function | ||||
| function flush() { | ||||
|     const saved_component = current_component; | ||||
|     do { | ||||
|         // first, call beforeUpdate functions | ||||
|         // and update components | ||||
|         while (flushidx < dirty_components.length) { | ||||
|             const component = dirty_components[flushidx]; | ||||
|             flushidx++; | ||||
|             set_current_component(component); | ||||
|             update(component.$$); | ||||
|         } | ||||
|         set_current_component(null); | ||||
|         dirty_components.length = 0; | ||||
|         flushidx = 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; | ||||
|     seen_callbacks.clear(); | ||||
|     set_current_component(saved_component); | ||||
| } | ||||
| 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(); | ||||
| function transition_in(block, local) { | ||||
|     if (block && block.i) { | ||||
|         outroing.delete(block); | ||||
|         block.i(local); | ||||
|     } | ||||
| } | ||||
|  | ||||
| const globals = (typeof window !== 'undefined' | ||||
|     ? window | ||||
|     : typeof globalThis !== 'undefined' | ||||
|         ? globalThis | ||||
|         : global); | ||||
| function mount_component(component, target, anchor, customElement) { | ||||
|     const { fragment, after_update } = component.$$; | ||||
|     fragment && fragment.m(target, anchor); | ||||
|     if (!customElement) { | ||||
|         // onMount happens before the initial afterUpdate | ||||
|         add_render_callback(() => { | ||||
|             const new_on_destroy = component.$$.on_mount.map(run).filter(is_function); | ||||
|             // if the component was destroyed immediately | ||||
|             // it will update the `$$.on_destroy` reference to `null`. | ||||
|             // the destructured on_destroy may still reference to the old array | ||||
|             if (component.$$.on_destroy) { | ||||
|                 component.$$.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, append_styles, dirty = [-1]) { | ||||
|     const parent_component = current_component; | ||||
|     set_current_component(component); | ||||
|     const $$ = component.$$ = { | ||||
|         fragment: null, | ||||
|         ctx: [], | ||||
|         // state | ||||
|         props, | ||||
|         update: noop, | ||||
|         not_equal, | ||||
|         bound: blank_object(), | ||||
|         // lifecycle | ||||
|         on_mount: [], | ||||
|         on_destroy: [], | ||||
|         on_disconnect: [], | ||||
|         before_update: [], | ||||
|         after_update: [], | ||||
|         context: new Map(options.context || (parent_component ? parent_component.$$.context : [])), | ||||
|         // everything else | ||||
|         callbacks: blank_object(), | ||||
|         dirty, | ||||
|         skip_bound: false, | ||||
|         root: options.target || parent_component.$$.root | ||||
|     }; | ||||
|     append_styles && append_styles($$.root); | ||||
|     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); | ||||
| } | ||||
| let SvelteElement; | ||||
| if (typeof HTMLElement === 'function') { | ||||
|     SvelteElement = class extends HTMLElement { | ||||
|         constructor() { | ||||
|             super(); | ||||
|             this.attachShadow({ mode: 'open' }); | ||||
|         } | ||||
|         connectedCallback() { | ||||
|             const { on_mount } = this.$$; | ||||
|             this.$$.on_disconnect = on_mount.map(run).filter(is_function); | ||||
|             // @ts-ignore todo: improve typings | ||||
|             for (const key in this.$$.slotted) { | ||||
|                 // @ts-ignore todo: improve typings | ||||
|                 this.appendChild(this.$$.slotted[key]); | ||||
|             } | ||||
|         } | ||||
|         attributeChangedCallback(attr, _oldValue, newValue) { | ||||
|             this[attr] = newValue; | ||||
|         } | ||||
|         disconnectedCallback() { | ||||
|             run_all(this.$$.on_disconnect); | ||||
|         } | ||||
|         $destroy() { | ||||
|             destroy_component(this, 1); | ||||
|             this.$destroy = noop; | ||||
|         } | ||||
|         $on(type, callback) { | ||||
|             // TODO should this delegate to addEventListener? | ||||
|             if (!is_function(callback)) { | ||||
|                 return noop; | ||||
|             } | ||||
|             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.52.0' }, detail), { bubbles: true })); | ||||
| } | ||||
| 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 prop_dev(node, property, value) { | ||||
|     node[property] = value; | ||||
|     dispatch_dev('SvelteDOMSetProperty', { node, property, 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_each_argument(arg) { | ||||
|     if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) { | ||||
|         let msg = '{#each} only iterates over array-like objects.'; | ||||
|         if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) { | ||||
|             msg += ' You can use a spread to convert this iterable into an array.'; | ||||
|         } | ||||
|         throw new Error(msg); | ||||
|     } | ||||
| } | ||||
| 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}".`); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| export { destroy_each as A, prop_dev as B, flush as C, set_style as D, getContext as E, setContext as F, svg_element as G, is_function as H, HtmlTag as I, SvelteElement as S, attribute_to_object as a, insert_dev as b, validate_store as c, dispatch_dev as d, component_subscribe as e, empty as f, detach_dev as g, binding_callbacks as h, init as i, element as j, space as k, add_location as l, attr_dev as m, noop as n, onMount as o, src_url_equal as p, set_custom_element_data as q, append_dev as r, safe_not_equal as s, listen_dev as t, run_all as u, validate_slots as v, globals as w, validate_each_argument as x, text as y, set_data_dev as z }; | ||||
| @@ -1,513 +0,0 @@ | ||||
|  | ||||
| (function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document); | ||||
| function noop() { } | ||||
| 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'); | ||||
| } | ||||
| let src_url_equal_anchor; | ||||
| function src_url_equal(element_src, url) { | ||||
|     if (!src_url_equal_anchor) { | ||||
|         src_url_equal_anchor = document.createElement('a'); | ||||
|     } | ||||
|     src_url_equal_anchor.href = url; | ||||
|     return element_src === src_url_equal_anchor.href; | ||||
| } | ||||
| function is_empty(obj) { | ||||
|     return Object.keys(obj).length === 0; | ||||
| } | ||||
| function validate_store(store, name) { | ||||
|     if (store != null && typeof store.subscribe !== 'function') { | ||||
|         throw new Error(`'${name}' is not a store with a 'subscribe' method`); | ||||
|     } | ||||
| } | ||||
| function subscribe(store, ...callbacks) { | ||||
|     if (store == null) { | ||||
|         return noop; | ||||
|     } | ||||
|     const unsub = store.subscribe(...callbacks); | ||||
|     return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub; | ||||
| } | ||||
| function component_subscribe(component, store, callback) { | ||||
|     component.$$.on_destroy.push(subscribe(store, callback)); | ||||
| } | ||||
| function set_store_value(store, ret, value) { | ||||
|     store.set(value); | ||||
|     return ret; | ||||
| } | ||||
| 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 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 attr(node, attribute, value) { | ||||
|     if (value == null) | ||||
|         node.removeAttribute(attribute); | ||||
|     else if (node.getAttribute(attribute) !== value) | ||||
|         node.setAttribute(attribute, value); | ||||
| } | ||||
| function set_custom_element_data(node, prop, value) { | ||||
|     if (prop in node) { | ||||
|         node[prop] = typeof node[prop] === 'boolean' && value === '' ? true : value; | ||||
|     } | ||||
|     else { | ||||
|         attr(node, prop, value); | ||||
|     } | ||||
| } | ||||
| function children(element) { | ||||
|     return Array.from(element.childNodes); | ||||
| } | ||||
| function set_style(node, key, value, important) { | ||||
|     if (value === null) { | ||||
|         node.style.removeProperty(key); | ||||
|     } | ||||
|     else { | ||||
|         node.style.setProperty(key, value, important ? 'important' : ''); | ||||
|     } | ||||
| } | ||||
| function custom_event(type, detail, { bubbles = false, cancelable = false } = {}) { | ||||
|     const e = document.createEvent('CustomEvent'); | ||||
|     e.initCustomEvent(type, bubbles, cancelable, detail); | ||||
|     return e; | ||||
| } | ||||
| class HtmlTag { | ||||
|     constructor(is_svg = false) { | ||||
|         this.is_svg = false; | ||||
|         this.is_svg = is_svg; | ||||
|         this.e = this.n = null; | ||||
|     } | ||||
|     c(html) { | ||||
|         this.h(html); | ||||
|     } | ||||
|     m(html, target, anchor = null) { | ||||
|         if (!this.e) { | ||||
|             if (this.is_svg) | ||||
|                 this.e = svg_element(target.nodeName); | ||||
|             else | ||||
|                 this.e = element(target.nodeName); | ||||
|             this.t = target; | ||||
|             this.c(html); | ||||
|         } | ||||
|         this.i(anchor); | ||||
|     } | ||||
|     h(html) { | ||||
|         this.e.innerHTML = html; | ||||
|         this.n = Array.from(this.e.childNodes); | ||||
|     } | ||||
|     i(anchor) { | ||||
|         for (let i = 0; i < this.n.length; i += 1) { | ||||
|             insert(this.t, this.n[i], anchor); | ||||
|         } | ||||
|     } | ||||
|     p(html) { | ||||
|         this.d(); | ||||
|         this.h(html); | ||||
|         this.i(this.a); | ||||
|     } | ||||
|     d() { | ||||
|         this.n.forEach(detach); | ||||
|     } | ||||
| } | ||||
| function attribute_to_object(attributes) { | ||||
|     const result = {}; | ||||
|     for (const attribute of attributes) { | ||||
|         result[attribute.name] = attribute.value; | ||||
|     } | ||||
|     return result; | ||||
| } | ||||
|  | ||||
| let current_component; | ||||
| function set_current_component(component) { | ||||
|     current_component = component; | ||||
| } | ||||
| function get_current_component() { | ||||
|     if (!current_component) | ||||
|         throw new Error('Function called outside component initialization'); | ||||
|     return current_component; | ||||
| } | ||||
| /** | ||||
|  * The `onMount` function schedules a callback to run as soon as the component has been mounted to the DOM. | ||||
|  * It must be called during the component's initialisation (but doesn't need to live *inside* the component; | ||||
|  * it can be called from an external module). | ||||
|  * | ||||
|  * `onMount` does not run inside a [server-side component](/docs#run-time-server-side-component-api). | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-onmount | ||||
|  */ | ||||
| function onMount(fn) { | ||||
|     get_current_component().$$.on_mount.push(fn); | ||||
| } | ||||
| /** | ||||
|  * Associates an arbitrary `context` object with the current component and the specified `key` | ||||
|  * and returns that object. The context is then available to children of the component | ||||
|  * (including slotted content) with `getContext`. | ||||
|  * | ||||
|  * Like lifecycle functions, this must be called during component initialisation. | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-setcontext | ||||
|  */ | ||||
| function setContext(key, context) { | ||||
|     get_current_component().$$.context.set(key, context); | ||||
|     return context; | ||||
| } | ||||
| /** | ||||
|  * Retrieves the context that belongs to the closest parent component with the specified `key`. | ||||
|  * Must be called during component initialisation. | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-getcontext | ||||
|  */ | ||||
| function getContext(key) { | ||||
|     return get_current_component().$$.context.get(key); | ||||
| } | ||||
|  | ||||
| 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); | ||||
| } | ||||
| // flush() calls callbacks in this order: | ||||
| // 1. All beforeUpdate callbacks, in order: parents before children | ||||
| // 2. All bind:this callbacks, in reverse order: children before parents. | ||||
| // 3. All afterUpdate callbacks, in order: parents before children. EXCEPT | ||||
| //    for afterUpdates called during the initial onMount, which are called in | ||||
| //    reverse order: children before parents. | ||||
| // Since callbacks might update component values, which could trigger another | ||||
| // call to flush(), the following steps guard against this: | ||||
| // 1. During beforeUpdate, any updated components will be added to the | ||||
| //    dirty_components array and will cause a reentrant call to flush(). Because | ||||
| //    the flush index is kept outside the function, the reentrant call will pick | ||||
| //    up where the earlier call left off and go through all dirty components. The | ||||
| //    current_component value is saved and restored so that the reentrant call will | ||||
| //    not interfere with the "parent" flush() call. | ||||
| // 2. bind:this callbacks cannot trigger new flush() calls. | ||||
| // 3. During afterUpdate, any updated components will NOT have their afterUpdate | ||||
| //    callback called a second time; the seen_callbacks set, outside the flush() | ||||
| //    function, guarantees this behavior. | ||||
| const seen_callbacks = new Set(); | ||||
| let flushidx = 0; // Do *not* move this inside the flush() function | ||||
| function flush() { | ||||
|     const saved_component = current_component; | ||||
|     do { | ||||
|         // first, call beforeUpdate functions | ||||
|         // and update components | ||||
|         while (flushidx < dirty_components.length) { | ||||
|             const component = dirty_components[flushidx]; | ||||
|             flushidx++; | ||||
|             set_current_component(component); | ||||
|             update(component.$$); | ||||
|         } | ||||
|         set_current_component(null); | ||||
|         dirty_components.length = 0; | ||||
|         flushidx = 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; | ||||
|     seen_callbacks.clear(); | ||||
|     set_current_component(saved_component); | ||||
| } | ||||
| 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(); | ||||
| function transition_in(block, local) { | ||||
|     if (block && block.i) { | ||||
|         outroing.delete(block); | ||||
|         block.i(local); | ||||
|     } | ||||
| } | ||||
|  | ||||
| const globals = (typeof window !== 'undefined' | ||||
|     ? window | ||||
|     : typeof globalThis !== 'undefined' | ||||
|         ? globalThis | ||||
|         : global); | ||||
| function mount_component(component, target, anchor, customElement) { | ||||
|     const { fragment, after_update } = component.$$; | ||||
|     fragment && fragment.m(target, anchor); | ||||
|     if (!customElement) { | ||||
|         // onMount happens before the initial afterUpdate | ||||
|         add_render_callback(() => { | ||||
|             const new_on_destroy = component.$$.on_mount.map(run).filter(is_function); | ||||
|             // if the component was destroyed immediately | ||||
|             // it will update the `$$.on_destroy` reference to `null`. | ||||
|             // the destructured on_destroy may still reference to the old array | ||||
|             if (component.$$.on_destroy) { | ||||
|                 component.$$.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, append_styles, dirty = [-1]) { | ||||
|     const parent_component = current_component; | ||||
|     set_current_component(component); | ||||
|     const $$ = component.$$ = { | ||||
|         fragment: null, | ||||
|         ctx: [], | ||||
|         // state | ||||
|         props, | ||||
|         update: noop, | ||||
|         not_equal, | ||||
|         bound: blank_object(), | ||||
|         // lifecycle | ||||
|         on_mount: [], | ||||
|         on_destroy: [], | ||||
|         on_disconnect: [], | ||||
|         before_update: [], | ||||
|         after_update: [], | ||||
|         context: new Map(options.context || (parent_component ? parent_component.$$.context : [])), | ||||
|         // everything else | ||||
|         callbacks: blank_object(), | ||||
|         dirty, | ||||
|         skip_bound: false, | ||||
|         root: options.target || parent_component.$$.root | ||||
|     }; | ||||
|     append_styles && append_styles($$.root); | ||||
|     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); | ||||
| } | ||||
| let SvelteElement; | ||||
| if (typeof HTMLElement === 'function') { | ||||
|     SvelteElement = class extends HTMLElement { | ||||
|         constructor() { | ||||
|             super(); | ||||
|             this.attachShadow({ mode: 'open' }); | ||||
|         } | ||||
|         connectedCallback() { | ||||
|             const { on_mount } = this.$$; | ||||
|             this.$$.on_disconnect = on_mount.map(run).filter(is_function); | ||||
|             // @ts-ignore todo: improve typings | ||||
|             for (const key in this.$$.slotted) { | ||||
|                 // @ts-ignore todo: improve typings | ||||
|                 this.appendChild(this.$$.slotted[key]); | ||||
|             } | ||||
|         } | ||||
|         attributeChangedCallback(attr, _oldValue, newValue) { | ||||
|             this[attr] = newValue; | ||||
|         } | ||||
|         disconnectedCallback() { | ||||
|             run_all(this.$$.on_disconnect); | ||||
|         } | ||||
|         $destroy() { | ||||
|             destroy_component(this, 1); | ||||
|             this.$destroy = noop; | ||||
|         } | ||||
|         $on(type, callback) { | ||||
|             // TODO should this delegate to addEventListener? | ||||
|             if (!is_function(callback)) { | ||||
|                 return noop; | ||||
|             } | ||||
|             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.52.0' }, detail), { bubbles: true })); | ||||
| } | ||||
| 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_each_argument(arg) { | ||||
|     if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) { | ||||
|         let msg = '{#each} only iterates over array-like objects.'; | ||||
|         if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) { | ||||
|             msg += ' You can use a spread to convert this iterable into an array.'; | ||||
|         } | ||||
|         throw new Error(msg); | ||||
|     } | ||||
| } | ||||
| 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}".`); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| export { setContext as A, run_all as B, svg_element as C, empty as D, is_function as E, validate_store as F, component_subscribe as G, HtmlTag as H, set_store_value as I, SvelteElement as S, attribute_to_object as a, insert_dev as b, validate_slots as c, dispatch_dev as d, element as e, space as f, add_location as g, attr_dev as h, init as i, src_url_equal as j, append_dev as k, detach_dev as l, destroy_each as m, noop as n, onMount as o, set_custom_element_data as p, flush as q, globals as r, safe_not_equal as s, text as t, binding_callbacks as u, validate_each_argument as v, set_style as w, listen_dev as x, set_data_dev as y, getContext as z }; | ||||
| @@ -1 +0,0 @@ | ||||
| function t(){}function n(t){return t()}function e(){return Object.create(null)}function o(t){t.forEach(n)}function s(t){return"function"==typeof t}function r(t,n){return t!=t?n==n:t!==n||t&&"object"==typeof t||"function"==typeof t}let i,c;function u(t,n){return i||(i=document.createElement("a")),i.href=n,t===i.href}function a(n,e,o){n.$$.on_destroy.push(function(n,...e){if(null==n)return t;const o=n.subscribe(...e);return o.unsubscribe?()=>o.unsubscribe():o}(e,o))}function f(t,n){t.appendChild(n)}function l(t,n,e){t.insertBefore(n,e||null)}function h(t){t.parentNode.removeChild(t)}function d(t,n){for(let e=0;e<t.length;e+=1)t[e]&&t[e].d(n)}function $(t){return document.createElement(t)}function p(t){return document.createTextNode(t)}function m(){return p(" ")}function g(){return p("")}function b(t,n,e,o){return t.addEventListener(n,e,o),()=>t.removeEventListener(n,e,o)}function y(t,n,e){null==e?t.removeAttribute(n):t.getAttribute(n)!==e&&t.setAttribute(n,e)}function _(t,n,e){n in t?t[n]="boolean"==typeof t[n]&&""===e||e:y(t,n,e)}function x(t,n){n=""+n,t.wholeText!==n&&(t.data=n)}function v(t,n){t.value=null==n?"":n}function E(t,n,e,o){null===e?t.style.removeProperty(n):t.style.setProperty(n,e,o?"important":"")}class w{constructor(t=!1){this.is_svg=!1,this.is_svg=t,this.e=this.n=null}c(t){this.h(t)}m(t,n,e=null){var o;this.e||(this.is_svg?this.e=(o=n.nodeName,document.createElementNS("http://www.w3.org/2000/svg",o)):this.e=$(n.nodeName),this.t=n,this.c(t)),this.i(e)}h(t){this.e.innerHTML=t,this.n=Array.from(this.e.childNodes)}i(t){for(let n=0;n<this.n.length;n+=1)l(this.t,this.n[n],t)}p(t){this.d(),this.h(t),this.i(this.a)}d(){this.n.forEach(h)}}function k(t){const n={};for(const e of t)n[e.name]=e.value;return n}function C(t){c=t}function N(){if(!c)throw new Error("Function called outside component initialization");return c}function A(t){N().$$.on_mount.push(t)}function L(t,n){return N().$$.context.set(t,n),n}function S(t){return N().$$.context.get(t)}const T=[],j=[],H=[],M=[],O=Promise.resolve();let P=!1;function q(t){H.push(t)}const z=new Set;let B=0;function F(){const t=c;do{for(;B<T.length;){const t=T[B];B++,C(t),D(t.$$)}for(C(null),T.length=0,B=0;j.length;)j.pop()();for(let t=0;t<H.length;t+=1){const n=H[t];z.has(n)||(z.add(n),n())}H.length=0}while(T.length);for(;M.length;)M.pop()();P=!1,z.clear(),C(t)}function D(t){if(null!==t.fragment){t.update(),o(t.before_update);const n=t.dirty;t.dirty=[-1],t.fragment&&t.fragment.p(t.ctx,n),t.after_update.forEach(q)}}const G=new Set;function I(t,n){-1===t.$$.dirty[0]&&(T.push(t),P||(P=!0,O.then(F)),t.$$.dirty.fill(0)),t.$$.dirty[n/31|0]|=1<<n%31}function J(r,i,u,a,f,l,d,$=[-1]){const p=c;C(r);const m=r.$$={fragment:null,ctx:[],props:l,update:t,not_equal:f,bound:e(),on_mount:[],on_destroy:[],on_disconnect:[],before_update:[],after_update:[],context:new Map(i.context||(p?p.$$.context:[])),callbacks:e(),dirty:$,skip_bound:!1,root:i.target||p.$$.root};d&&d(m.root);let g=!1;if(m.ctx=u?u(r,i.props||{},((t,n,...e)=>{const o=e.length?e[0]:n;return m.ctx&&f(m.ctx[t],m.ctx[t]=o)&&(!m.skip_bound&&m.bound[t]&&m.bound[t](o),g&&I(r,t)),n})):[],m.update(),g=!0,o(m.before_update),m.fragment=!!a&&a(m.ctx),i.target){if(i.hydrate){const t=function(t){return Array.from(t.childNodes)}(i.target);m.fragment&&m.fragment.l(t),t.forEach(h)}else m.fragment&&m.fragment.c();i.intro&&((b=r.$$.fragment)&&b.i&&(G.delete(b),b.i(y))),function(t,e,r,i){const{fragment:c,after_update:u}=t.$$;c&&c.m(e,r),i||q((()=>{const e=t.$$.on_mount.map(n).filter(s);t.$$.on_destroy?t.$$.on_destroy.push(...e):o(e),t.$$.on_mount=[]})),u.forEach(q)}(r,i.target,i.anchor,i.customElement),F()}var b,y;C(p)}let K;"function"==typeof HTMLElement&&(K=class extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"})}connectedCallback(){const{on_mount:t}=this.$$;this.$$.on_disconnect=t.map(n).filter(s);for(const t in this.$$.slotted)this.appendChild(this.$$.slotted[t])}attributeChangedCallback(t,n,e){this[t]=e}disconnectedCallback(){o(this.$$.on_disconnect)}$destroy(){!function(t,n){const e=t.$$;null!==e.fragment&&(o(e.on_destroy),e.fragment&&e.fragment.d(n),e.on_destroy=e.fragment=null,e.ctx=[])}(this,1),this.$destroy=t}$on(n,e){if(!s(e))return t;const o=this.$$.callbacks[n]||(this.$$.callbacks[n]=[]);return o.push(e),()=>{const t=o.indexOf(e);-1!==t&&o.splice(t,1)}}$set(t){var n;this.$$set&&(n=t,0!==Object.keys(n).length)&&(this.$$.skip_bound=!0,this.$$set(t),this.$$.skip_bound=!1)}});export{v as A,w as H,K as S,k as a,l as b,m as c,y as d,$ as e,f,h as g,L as h,J as i,j,F as k,b as l,S as m,t as n,A as o,s as p,g as q,o as r,r as s,a as t,u,_ as v,p as w,x,d as y,E as z}; | ||||
| @@ -1,509 +0,0 @@ | ||||
|  | ||||
| (function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document); | ||||
| function noop() { } | ||||
| 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'); | ||||
| } | ||||
| let src_url_equal_anchor; | ||||
| function src_url_equal(element_src, url) { | ||||
|     if (!src_url_equal_anchor) { | ||||
|         src_url_equal_anchor = document.createElement('a'); | ||||
|     } | ||||
|     src_url_equal_anchor.href = url; | ||||
|     return element_src === src_url_equal_anchor.href; | ||||
| } | ||||
| function is_empty(obj) { | ||||
|     return Object.keys(obj).length === 0; | ||||
| } | ||||
| function validate_store(store, name) { | ||||
|     if (store != null && typeof store.subscribe !== 'function') { | ||||
|         throw new Error(`'${name}' is not a store with a 'subscribe' method`); | ||||
|     } | ||||
| } | ||||
| function subscribe(store, ...callbacks) { | ||||
|     if (store == null) { | ||||
|         return noop; | ||||
|     } | ||||
|     const unsub = store.subscribe(...callbacks); | ||||
|     return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub; | ||||
| } | ||||
| function component_subscribe(component, store, callback) { | ||||
|     component.$$.on_destroy.push(subscribe(store, callback)); | ||||
| } | ||||
| 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 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 attr(node, attribute, value) { | ||||
|     if (value == null) | ||||
|         node.removeAttribute(attribute); | ||||
|     else if (node.getAttribute(attribute) !== value) | ||||
|         node.setAttribute(attribute, value); | ||||
| } | ||||
| function set_custom_element_data(node, prop, value) { | ||||
|     if (prop in node) { | ||||
|         node[prop] = typeof node[prop] === 'boolean' && value === '' ? true : value; | ||||
|     } | ||||
|     else { | ||||
|         attr(node, prop, value); | ||||
|     } | ||||
| } | ||||
| function children(element) { | ||||
|     return Array.from(element.childNodes); | ||||
| } | ||||
| function set_style(node, key, value, important) { | ||||
|     if (value === null) { | ||||
|         node.style.removeProperty(key); | ||||
|     } | ||||
|     else { | ||||
|         node.style.setProperty(key, value, important ? 'important' : ''); | ||||
|     } | ||||
| } | ||||
| function custom_event(type, detail, { bubbles = false, cancelable = false } = {}) { | ||||
|     const e = document.createEvent('CustomEvent'); | ||||
|     e.initCustomEvent(type, bubbles, cancelable, detail); | ||||
|     return e; | ||||
| } | ||||
| class HtmlTag { | ||||
|     constructor(is_svg = false) { | ||||
|         this.is_svg = false; | ||||
|         this.is_svg = is_svg; | ||||
|         this.e = this.n = null; | ||||
|     } | ||||
|     c(html) { | ||||
|         this.h(html); | ||||
|     } | ||||
|     m(html, target, anchor = null) { | ||||
|         if (!this.e) { | ||||
|             if (this.is_svg) | ||||
|                 this.e = svg_element(target.nodeName); | ||||
|             else | ||||
|                 this.e = element(target.nodeName); | ||||
|             this.t = target; | ||||
|             this.c(html); | ||||
|         } | ||||
|         this.i(anchor); | ||||
|     } | ||||
|     h(html) { | ||||
|         this.e.innerHTML = html; | ||||
|         this.n = Array.from(this.e.childNodes); | ||||
|     } | ||||
|     i(anchor) { | ||||
|         for (let i = 0; i < this.n.length; i += 1) { | ||||
|             insert(this.t, this.n[i], anchor); | ||||
|         } | ||||
|     } | ||||
|     p(html) { | ||||
|         this.d(); | ||||
|         this.h(html); | ||||
|         this.i(this.a); | ||||
|     } | ||||
|     d() { | ||||
|         this.n.forEach(detach); | ||||
|     } | ||||
| } | ||||
| function attribute_to_object(attributes) { | ||||
|     const result = {}; | ||||
|     for (const attribute of attributes) { | ||||
|         result[attribute.name] = attribute.value; | ||||
|     } | ||||
|     return result; | ||||
| } | ||||
|  | ||||
| let current_component; | ||||
| function set_current_component(component) { | ||||
|     current_component = component; | ||||
| } | ||||
| function get_current_component() { | ||||
|     if (!current_component) | ||||
|         throw new Error('Function called outside component initialization'); | ||||
|     return current_component; | ||||
| } | ||||
| /** | ||||
|  * The `onMount` function schedules a callback to run as soon as the component has been mounted to the DOM. | ||||
|  * It must be called during the component's initialisation (but doesn't need to live *inside* the component; | ||||
|  * it can be called from an external module). | ||||
|  * | ||||
|  * `onMount` does not run inside a [server-side component](/docs#run-time-server-side-component-api). | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-onmount | ||||
|  */ | ||||
| function onMount(fn) { | ||||
|     get_current_component().$$.on_mount.push(fn); | ||||
| } | ||||
| /** | ||||
|  * Associates an arbitrary `context` object with the current component and the specified `key` | ||||
|  * and returns that object. The context is then available to children of the component | ||||
|  * (including slotted content) with `getContext`. | ||||
|  * | ||||
|  * Like lifecycle functions, this must be called during component initialisation. | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-setcontext | ||||
|  */ | ||||
| function setContext(key, context) { | ||||
|     get_current_component().$$.context.set(key, context); | ||||
|     return context; | ||||
| } | ||||
| /** | ||||
|  * Retrieves the context that belongs to the closest parent component with the specified `key`. | ||||
|  * Must be called during component initialisation. | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-getcontext | ||||
|  */ | ||||
| function getContext(key) { | ||||
|     return get_current_component().$$.context.get(key); | ||||
| } | ||||
|  | ||||
| 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); | ||||
| } | ||||
| // flush() calls callbacks in this order: | ||||
| // 1. All beforeUpdate callbacks, in order: parents before children | ||||
| // 2. All bind:this callbacks, in reverse order: children before parents. | ||||
| // 3. All afterUpdate callbacks, in order: parents before children. EXCEPT | ||||
| //    for afterUpdates called during the initial onMount, which are called in | ||||
| //    reverse order: children before parents. | ||||
| // Since callbacks might update component values, which could trigger another | ||||
| // call to flush(), the following steps guard against this: | ||||
| // 1. During beforeUpdate, any updated components will be added to the | ||||
| //    dirty_components array and will cause a reentrant call to flush(). Because | ||||
| //    the flush index is kept outside the function, the reentrant call will pick | ||||
| //    up where the earlier call left off and go through all dirty components. The | ||||
| //    current_component value is saved and restored so that the reentrant call will | ||||
| //    not interfere with the "parent" flush() call. | ||||
| // 2. bind:this callbacks cannot trigger new flush() calls. | ||||
| // 3. During afterUpdate, any updated components will NOT have their afterUpdate | ||||
| //    callback called a second time; the seen_callbacks set, outside the flush() | ||||
| //    function, guarantees this behavior. | ||||
| const seen_callbacks = new Set(); | ||||
| let flushidx = 0; // Do *not* move this inside the flush() function | ||||
| function flush() { | ||||
|     const saved_component = current_component; | ||||
|     do { | ||||
|         // first, call beforeUpdate functions | ||||
|         // and update components | ||||
|         while (flushidx < dirty_components.length) { | ||||
|             const component = dirty_components[flushidx]; | ||||
|             flushidx++; | ||||
|             set_current_component(component); | ||||
|             update(component.$$); | ||||
|         } | ||||
|         set_current_component(null); | ||||
|         dirty_components.length = 0; | ||||
|         flushidx = 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; | ||||
|     seen_callbacks.clear(); | ||||
|     set_current_component(saved_component); | ||||
| } | ||||
| 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(); | ||||
| function transition_in(block, local) { | ||||
|     if (block && block.i) { | ||||
|         outroing.delete(block); | ||||
|         block.i(local); | ||||
|     } | ||||
| } | ||||
|  | ||||
| const globals = (typeof window !== 'undefined' | ||||
|     ? window | ||||
|     : typeof globalThis !== 'undefined' | ||||
|         ? globalThis | ||||
|         : global); | ||||
| function mount_component(component, target, anchor, customElement) { | ||||
|     const { fragment, after_update } = component.$$; | ||||
|     fragment && fragment.m(target, anchor); | ||||
|     if (!customElement) { | ||||
|         // onMount happens before the initial afterUpdate | ||||
|         add_render_callback(() => { | ||||
|             const new_on_destroy = component.$$.on_mount.map(run).filter(is_function); | ||||
|             // if the component was destroyed immediately | ||||
|             // it will update the `$$.on_destroy` reference to `null`. | ||||
|             // the destructured on_destroy may still reference to the old array | ||||
|             if (component.$$.on_destroy) { | ||||
|                 component.$$.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, append_styles, dirty = [-1]) { | ||||
|     const parent_component = current_component; | ||||
|     set_current_component(component); | ||||
|     const $$ = component.$$ = { | ||||
|         fragment: null, | ||||
|         ctx: [], | ||||
|         // state | ||||
|         props, | ||||
|         update: noop, | ||||
|         not_equal, | ||||
|         bound: blank_object(), | ||||
|         // lifecycle | ||||
|         on_mount: [], | ||||
|         on_destroy: [], | ||||
|         on_disconnect: [], | ||||
|         before_update: [], | ||||
|         after_update: [], | ||||
|         context: new Map(options.context || (parent_component ? parent_component.$$.context : [])), | ||||
|         // everything else | ||||
|         callbacks: blank_object(), | ||||
|         dirty, | ||||
|         skip_bound: false, | ||||
|         root: options.target || parent_component.$$.root | ||||
|     }; | ||||
|     append_styles && append_styles($$.root); | ||||
|     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); | ||||
| } | ||||
| let SvelteElement; | ||||
| if (typeof HTMLElement === 'function') { | ||||
|     SvelteElement = class extends HTMLElement { | ||||
|         constructor() { | ||||
|             super(); | ||||
|             this.attachShadow({ mode: 'open' }); | ||||
|         } | ||||
|         connectedCallback() { | ||||
|             const { on_mount } = this.$$; | ||||
|             this.$$.on_disconnect = on_mount.map(run).filter(is_function); | ||||
|             // @ts-ignore todo: improve typings | ||||
|             for (const key in this.$$.slotted) { | ||||
|                 // @ts-ignore todo: improve typings | ||||
|                 this.appendChild(this.$$.slotted[key]); | ||||
|             } | ||||
|         } | ||||
|         attributeChangedCallback(attr, _oldValue, newValue) { | ||||
|             this[attr] = newValue; | ||||
|         } | ||||
|         disconnectedCallback() { | ||||
|             run_all(this.$$.on_disconnect); | ||||
|         } | ||||
|         $destroy() { | ||||
|             destroy_component(this, 1); | ||||
|             this.$destroy = noop; | ||||
|         } | ||||
|         $on(type, callback) { | ||||
|             // TODO should this delegate to addEventListener? | ||||
|             if (!is_function(callback)) { | ||||
|                 return noop; | ||||
|             } | ||||
|             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.52.0' }, detail), { bubbles: true })); | ||||
| } | ||||
| 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_each_argument(arg) { | ||||
|     if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) { | ||||
|         let msg = '{#each} only iterates over array-like objects.'; | ||||
|         if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) { | ||||
|             msg += ' You can use a spread to convert this iterable into an array.'; | ||||
|         } | ||||
|         throw new Error(msg); | ||||
|     } | ||||
| } | ||||
| 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}".`); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| export { setContext as A, run_all as B, svg_element as C, validate_store as D, component_subscribe as E, empty as F, is_function as G, HtmlTag as H, SvelteElement as S, attribute_to_object as a, insert_dev as b, validate_slots as c, dispatch_dev as d, element as e, space as f, add_location as g, attr_dev as h, init as i, src_url_equal as j, append_dev as k, detach_dev as l, destroy_each as m, noop as n, onMount as o, set_custom_element_data as p, flush as q, globals as r, safe_not_equal as s, text as t, binding_callbacks as u, validate_each_argument as v, set_style as w, listen_dev as x, set_data_dev as y, getContext as z }; | ||||
| @@ -1,513 +0,0 @@ | ||||
|  | ||||
| (function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document); | ||||
| function noop() { } | ||||
| 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'); | ||||
| } | ||||
| let src_url_equal_anchor; | ||||
| function src_url_equal(element_src, url) { | ||||
|     if (!src_url_equal_anchor) { | ||||
|         src_url_equal_anchor = document.createElement('a'); | ||||
|     } | ||||
|     src_url_equal_anchor.href = url; | ||||
|     return element_src === src_url_equal_anchor.href; | ||||
| } | ||||
| function is_empty(obj) { | ||||
|     return Object.keys(obj).length === 0; | ||||
| } | ||||
| function validate_store(store, name) { | ||||
|     if (store != null && typeof store.subscribe !== 'function') { | ||||
|         throw new Error(`'${name}' is not a store with a 'subscribe' method`); | ||||
|     } | ||||
| } | ||||
| function subscribe(store, ...callbacks) { | ||||
|     if (store == null) { | ||||
|         return noop; | ||||
|     } | ||||
|     const unsub = store.subscribe(...callbacks); | ||||
|     return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub; | ||||
| } | ||||
| function component_subscribe(component, store, callback) { | ||||
|     component.$$.on_destroy.push(subscribe(store, callback)); | ||||
| } | ||||
| 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 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 attr(node, attribute, value) { | ||||
|     if (value == null) | ||||
|         node.removeAttribute(attribute); | ||||
|     else if (node.getAttribute(attribute) !== value) | ||||
|         node.setAttribute(attribute, value); | ||||
| } | ||||
| function set_custom_element_data(node, prop, value) { | ||||
|     if (prop in node) { | ||||
|         node[prop] = typeof node[prop] === 'boolean' && value === '' ? true : value; | ||||
|     } | ||||
|     else { | ||||
|         attr(node, prop, value); | ||||
|     } | ||||
| } | ||||
| function children(element) { | ||||
|     return Array.from(element.childNodes); | ||||
| } | ||||
| function set_style(node, key, value, important) { | ||||
|     if (value === null) { | ||||
|         node.style.removeProperty(key); | ||||
|     } | ||||
|     else { | ||||
|         node.style.setProperty(key, value, important ? 'important' : ''); | ||||
|     } | ||||
| } | ||||
| function custom_event(type, detail, { bubbles = false, cancelable = false } = {}) { | ||||
|     const e = document.createEvent('CustomEvent'); | ||||
|     e.initCustomEvent(type, bubbles, cancelable, detail); | ||||
|     return e; | ||||
| } | ||||
| class HtmlTag { | ||||
|     constructor(is_svg = false) { | ||||
|         this.is_svg = false; | ||||
|         this.is_svg = is_svg; | ||||
|         this.e = this.n = null; | ||||
|     } | ||||
|     c(html) { | ||||
|         this.h(html); | ||||
|     } | ||||
|     m(html, target, anchor = null) { | ||||
|         if (!this.e) { | ||||
|             if (this.is_svg) | ||||
|                 this.e = svg_element(target.nodeName); | ||||
|             else | ||||
|                 this.e = element(target.nodeName); | ||||
|             this.t = target; | ||||
|             this.c(html); | ||||
|         } | ||||
|         this.i(anchor); | ||||
|     } | ||||
|     h(html) { | ||||
|         this.e.innerHTML = html; | ||||
|         this.n = Array.from(this.e.childNodes); | ||||
|     } | ||||
|     i(anchor) { | ||||
|         for (let i = 0; i < this.n.length; i += 1) { | ||||
|             insert(this.t, this.n[i], anchor); | ||||
|         } | ||||
|     } | ||||
|     p(html) { | ||||
|         this.d(); | ||||
|         this.h(html); | ||||
|         this.i(this.a); | ||||
|     } | ||||
|     d() { | ||||
|         this.n.forEach(detach); | ||||
|     } | ||||
| } | ||||
| function attribute_to_object(attributes) { | ||||
|     const result = {}; | ||||
|     for (const attribute of attributes) { | ||||
|         result[attribute.name] = attribute.value; | ||||
|     } | ||||
|     return result; | ||||
| } | ||||
|  | ||||
| let current_component; | ||||
| function set_current_component(component) { | ||||
|     current_component = component; | ||||
| } | ||||
| function get_current_component() { | ||||
|     if (!current_component) | ||||
|         throw new Error('Function called outside component initialization'); | ||||
|     return current_component; | ||||
| } | ||||
| /** | ||||
|  * The `onMount` function schedules a callback to run as soon as the component has been mounted to the DOM. | ||||
|  * It must be called during the component's initialisation (but doesn't need to live *inside* the component; | ||||
|  * it can be called from an external module). | ||||
|  * | ||||
|  * `onMount` does not run inside a [server-side component](/docs#run-time-server-side-component-api). | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-onmount | ||||
|  */ | ||||
| function onMount(fn) { | ||||
|     get_current_component().$$.on_mount.push(fn); | ||||
| } | ||||
| /** | ||||
|  * Associates an arbitrary `context` object with the current component and the specified `key` | ||||
|  * and returns that object. The context is then available to children of the component | ||||
|  * (including slotted content) with `getContext`. | ||||
|  * | ||||
|  * Like lifecycle functions, this must be called during component initialisation. | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-setcontext | ||||
|  */ | ||||
| function setContext(key, context) { | ||||
|     get_current_component().$$.context.set(key, context); | ||||
|     return context; | ||||
| } | ||||
| /** | ||||
|  * Retrieves the context that belongs to the closest parent component with the specified `key`. | ||||
|  * Must be called during component initialisation. | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-getcontext | ||||
|  */ | ||||
| function getContext(key) { | ||||
|     return get_current_component().$$.context.get(key); | ||||
| } | ||||
|  | ||||
| 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); | ||||
| } | ||||
| // flush() calls callbacks in this order: | ||||
| // 1. All beforeUpdate callbacks, in order: parents before children | ||||
| // 2. All bind:this callbacks, in reverse order: children before parents. | ||||
| // 3. All afterUpdate callbacks, in order: parents before children. EXCEPT | ||||
| //    for afterUpdates called during the initial onMount, which are called in | ||||
| //    reverse order: children before parents. | ||||
| // Since callbacks might update component values, which could trigger another | ||||
| // call to flush(), the following steps guard against this: | ||||
| // 1. During beforeUpdate, any updated components will be added to the | ||||
| //    dirty_components array and will cause a reentrant call to flush(). Because | ||||
| //    the flush index is kept outside the function, the reentrant call will pick | ||||
| //    up where the earlier call left off and go through all dirty components. The | ||||
| //    current_component value is saved and restored so that the reentrant call will | ||||
| //    not interfere with the "parent" flush() call. | ||||
| // 2. bind:this callbacks cannot trigger new flush() calls. | ||||
| // 3. During afterUpdate, any updated components will NOT have their afterUpdate | ||||
| //    callback called a second time; the seen_callbacks set, outside the flush() | ||||
| //    function, guarantees this behavior. | ||||
| const seen_callbacks = new Set(); | ||||
| let flushidx = 0; // Do *not* move this inside the flush() function | ||||
| function flush() { | ||||
|     const saved_component = current_component; | ||||
|     do { | ||||
|         // first, call beforeUpdate functions | ||||
|         // and update components | ||||
|         while (flushidx < dirty_components.length) { | ||||
|             const component = dirty_components[flushidx]; | ||||
|             flushidx++; | ||||
|             set_current_component(component); | ||||
|             update(component.$$); | ||||
|         } | ||||
|         set_current_component(null); | ||||
|         dirty_components.length = 0; | ||||
|         flushidx = 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; | ||||
|     seen_callbacks.clear(); | ||||
|     set_current_component(saved_component); | ||||
| } | ||||
| 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(); | ||||
| function transition_in(block, local) { | ||||
|     if (block && block.i) { | ||||
|         outroing.delete(block); | ||||
|         block.i(local); | ||||
|     } | ||||
| } | ||||
|  | ||||
| const globals = (typeof window !== 'undefined' | ||||
|     ? window | ||||
|     : typeof globalThis !== 'undefined' | ||||
|         ? globalThis | ||||
|         : global); | ||||
| function mount_component(component, target, anchor, customElement) { | ||||
|     const { fragment, after_update } = component.$$; | ||||
|     fragment && fragment.m(target, anchor); | ||||
|     if (!customElement) { | ||||
|         // onMount happens before the initial afterUpdate | ||||
|         add_render_callback(() => { | ||||
|             const new_on_destroy = component.$$.on_mount.map(run).filter(is_function); | ||||
|             // if the component was destroyed immediately | ||||
|             // it will update the `$$.on_destroy` reference to `null`. | ||||
|             // the destructured on_destroy may still reference to the old array | ||||
|             if (component.$$.on_destroy) { | ||||
|                 component.$$.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, append_styles, dirty = [-1]) { | ||||
|     const parent_component = current_component; | ||||
|     set_current_component(component); | ||||
|     const $$ = component.$$ = { | ||||
|         fragment: null, | ||||
|         ctx: [], | ||||
|         // state | ||||
|         props, | ||||
|         update: noop, | ||||
|         not_equal, | ||||
|         bound: blank_object(), | ||||
|         // lifecycle | ||||
|         on_mount: [], | ||||
|         on_destroy: [], | ||||
|         on_disconnect: [], | ||||
|         before_update: [], | ||||
|         after_update: [], | ||||
|         context: new Map(options.context || (parent_component ? parent_component.$$.context : [])), | ||||
|         // everything else | ||||
|         callbacks: blank_object(), | ||||
|         dirty, | ||||
|         skip_bound: false, | ||||
|         root: options.target || parent_component.$$.root | ||||
|     }; | ||||
|     append_styles && append_styles($$.root); | ||||
|     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); | ||||
| } | ||||
| let SvelteElement; | ||||
| if (typeof HTMLElement === 'function') { | ||||
|     SvelteElement = class extends HTMLElement { | ||||
|         constructor() { | ||||
|             super(); | ||||
|             this.attachShadow({ mode: 'open' }); | ||||
|         } | ||||
|         connectedCallback() { | ||||
|             const { on_mount } = this.$$; | ||||
|             this.$$.on_disconnect = on_mount.map(run).filter(is_function); | ||||
|             // @ts-ignore todo: improve typings | ||||
|             for (const key in this.$$.slotted) { | ||||
|                 // @ts-ignore todo: improve typings | ||||
|                 this.appendChild(this.$$.slotted[key]); | ||||
|             } | ||||
|         } | ||||
|         attributeChangedCallback(attr, _oldValue, newValue) { | ||||
|             this[attr] = newValue; | ||||
|         } | ||||
|         disconnectedCallback() { | ||||
|             run_all(this.$$.on_disconnect); | ||||
|         } | ||||
|         $destroy() { | ||||
|             destroy_component(this, 1); | ||||
|             this.$destroy = noop; | ||||
|         } | ||||
|         $on(type, callback) { | ||||
|             // TODO should this delegate to addEventListener? | ||||
|             if (!is_function(callback)) { | ||||
|                 return noop; | ||||
|             } | ||||
|             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.52.0' }, detail), { bubbles: true })); | ||||
| } | ||||
| 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 prop_dev(node, property, value) { | ||||
|     node[property] = value; | ||||
|     dispatch_dev('SvelteDOMSetProperty', { node, property, 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_each_argument(arg) { | ||||
|     if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) { | ||||
|         let msg = '{#each} only iterates over array-like objects.'; | ||||
|         if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) { | ||||
|             msg += ' You can use a spread to convert this iterable into an array.'; | ||||
|         } | ||||
|         throw new Error(msg); | ||||
|     } | ||||
| } | ||||
| 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}".`); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| export { run_all as A, prop_dev as B, flush as C, set_style as D, getContext as E, setContext as F, svg_element as G, is_function as H, HtmlTag as I, SvelteElement as S, attribute_to_object as a, insert_dev as b, validate_store as c, dispatch_dev as d, component_subscribe as e, validate_each_argument as f, globals as g, empty as h, init as i, detach_dev as j, element as k, space as l, add_location as m, noop as n, onMount as o, attr_dev as p, src_url_equal as q, set_custom_element_data as r, safe_not_equal as s, text as t, append_dev as u, validate_slots as v, set_data_dev as w, destroy_each as x, binding_callbacks as y, listen_dev as z }; | ||||
| @@ -1,513 +0,0 @@ | ||||
|  | ||||
| (function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document); | ||||
| function noop() { } | ||||
| 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'); | ||||
| } | ||||
| let src_url_equal_anchor; | ||||
| function src_url_equal(element_src, url) { | ||||
|     if (!src_url_equal_anchor) { | ||||
|         src_url_equal_anchor = document.createElement('a'); | ||||
|     } | ||||
|     src_url_equal_anchor.href = url; | ||||
|     return element_src === src_url_equal_anchor.href; | ||||
| } | ||||
| function is_empty(obj) { | ||||
|     return Object.keys(obj).length === 0; | ||||
| } | ||||
| function validate_store(store, name) { | ||||
|     if (store != null && typeof store.subscribe !== 'function') { | ||||
|         throw new Error(`'${name}' is not a store with a 'subscribe' method`); | ||||
|     } | ||||
| } | ||||
| function subscribe(store, ...callbacks) { | ||||
|     if (store == null) { | ||||
|         return noop; | ||||
|     } | ||||
|     const unsub = store.subscribe(...callbacks); | ||||
|     return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub; | ||||
| } | ||||
| function component_subscribe(component, store, callback) { | ||||
|     component.$$.on_destroy.push(subscribe(store, callback)); | ||||
| } | ||||
| 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 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 attr(node, attribute, value) { | ||||
|     if (value == null) | ||||
|         node.removeAttribute(attribute); | ||||
|     else if (node.getAttribute(attribute) !== value) | ||||
|         node.setAttribute(attribute, value); | ||||
| } | ||||
| function set_custom_element_data(node, prop, value) { | ||||
|     if (prop in node) { | ||||
|         node[prop] = typeof node[prop] === 'boolean' && value === '' ? true : value; | ||||
|     } | ||||
|     else { | ||||
|         attr(node, prop, value); | ||||
|     } | ||||
| } | ||||
| function children(element) { | ||||
|     return Array.from(element.childNodes); | ||||
| } | ||||
| function set_style(node, key, value, important) { | ||||
|     if (value === null) { | ||||
|         node.style.removeProperty(key); | ||||
|     } | ||||
|     else { | ||||
|         node.style.setProperty(key, value, important ? 'important' : ''); | ||||
|     } | ||||
| } | ||||
| function custom_event(type, detail, { bubbles = false, cancelable = false } = {}) { | ||||
|     const e = document.createEvent('CustomEvent'); | ||||
|     e.initCustomEvent(type, bubbles, cancelable, detail); | ||||
|     return e; | ||||
| } | ||||
| class HtmlTag { | ||||
|     constructor(is_svg = false) { | ||||
|         this.is_svg = false; | ||||
|         this.is_svg = is_svg; | ||||
|         this.e = this.n = null; | ||||
|     } | ||||
|     c(html) { | ||||
|         this.h(html); | ||||
|     } | ||||
|     m(html, target, anchor = null) { | ||||
|         if (!this.e) { | ||||
|             if (this.is_svg) | ||||
|                 this.e = svg_element(target.nodeName); | ||||
|             else | ||||
|                 this.e = element(target.nodeName); | ||||
|             this.t = target; | ||||
|             this.c(html); | ||||
|         } | ||||
|         this.i(anchor); | ||||
|     } | ||||
|     h(html) { | ||||
|         this.e.innerHTML = html; | ||||
|         this.n = Array.from(this.e.childNodes); | ||||
|     } | ||||
|     i(anchor) { | ||||
|         for (let i = 0; i < this.n.length; i += 1) { | ||||
|             insert(this.t, this.n[i], anchor); | ||||
|         } | ||||
|     } | ||||
|     p(html) { | ||||
|         this.d(); | ||||
|         this.h(html); | ||||
|         this.i(this.a); | ||||
|     } | ||||
|     d() { | ||||
|         this.n.forEach(detach); | ||||
|     } | ||||
| } | ||||
| function attribute_to_object(attributes) { | ||||
|     const result = {}; | ||||
|     for (const attribute of attributes) { | ||||
|         result[attribute.name] = attribute.value; | ||||
|     } | ||||
|     return result; | ||||
| } | ||||
|  | ||||
| let current_component; | ||||
| function set_current_component(component) { | ||||
|     current_component = component; | ||||
| } | ||||
| function get_current_component() { | ||||
|     if (!current_component) | ||||
|         throw new Error('Function called outside component initialization'); | ||||
|     return current_component; | ||||
| } | ||||
| /** | ||||
|  * The `onMount` function schedules a callback to run as soon as the component has been mounted to the DOM. | ||||
|  * It must be called during the component's initialisation (but doesn't need to live *inside* the component; | ||||
|  * it can be called from an external module). | ||||
|  * | ||||
|  * `onMount` does not run inside a [server-side component](/docs#run-time-server-side-component-api). | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-onmount | ||||
|  */ | ||||
| function onMount(fn) { | ||||
|     get_current_component().$$.on_mount.push(fn); | ||||
| } | ||||
| /** | ||||
|  * Associates an arbitrary `context` object with the current component and the specified `key` | ||||
|  * and returns that object. The context is then available to children of the component | ||||
|  * (including slotted content) with `getContext`. | ||||
|  * | ||||
|  * Like lifecycle functions, this must be called during component initialisation. | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-setcontext | ||||
|  */ | ||||
| function setContext(key, context) { | ||||
|     get_current_component().$$.context.set(key, context); | ||||
|     return context; | ||||
| } | ||||
| /** | ||||
|  * Retrieves the context that belongs to the closest parent component with the specified `key`. | ||||
|  * Must be called during component initialisation. | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-getcontext | ||||
|  */ | ||||
| function getContext(key) { | ||||
|     return get_current_component().$$.context.get(key); | ||||
| } | ||||
|  | ||||
| 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); | ||||
| } | ||||
| // flush() calls callbacks in this order: | ||||
| // 1. All beforeUpdate callbacks, in order: parents before children | ||||
| // 2. All bind:this callbacks, in reverse order: children before parents. | ||||
| // 3. All afterUpdate callbacks, in order: parents before children. EXCEPT | ||||
| //    for afterUpdates called during the initial onMount, which are called in | ||||
| //    reverse order: children before parents. | ||||
| // Since callbacks might update component values, which could trigger another | ||||
| // call to flush(), the following steps guard against this: | ||||
| // 1. During beforeUpdate, any updated components will be added to the | ||||
| //    dirty_components array and will cause a reentrant call to flush(). Because | ||||
| //    the flush index is kept outside the function, the reentrant call will pick | ||||
| //    up where the earlier call left off and go through all dirty components. The | ||||
| //    current_component value is saved and restored so that the reentrant call will | ||||
| //    not interfere with the "parent" flush() call. | ||||
| // 2. bind:this callbacks cannot trigger new flush() calls. | ||||
| // 3. During afterUpdate, any updated components will NOT have their afterUpdate | ||||
| //    callback called a second time; the seen_callbacks set, outside the flush() | ||||
| //    function, guarantees this behavior. | ||||
| const seen_callbacks = new Set(); | ||||
| let flushidx = 0; // Do *not* move this inside the flush() function | ||||
| function flush() { | ||||
|     const saved_component = current_component; | ||||
|     do { | ||||
|         // first, call beforeUpdate functions | ||||
|         // and update components | ||||
|         while (flushidx < dirty_components.length) { | ||||
|             const component = dirty_components[flushidx]; | ||||
|             flushidx++; | ||||
|             set_current_component(component); | ||||
|             update(component.$$); | ||||
|         } | ||||
|         set_current_component(null); | ||||
|         dirty_components.length = 0; | ||||
|         flushidx = 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; | ||||
|     seen_callbacks.clear(); | ||||
|     set_current_component(saved_component); | ||||
| } | ||||
| 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(); | ||||
| function transition_in(block, local) { | ||||
|     if (block && block.i) { | ||||
|         outroing.delete(block); | ||||
|         block.i(local); | ||||
|     } | ||||
| } | ||||
|  | ||||
| const globals = (typeof window !== 'undefined' | ||||
|     ? window | ||||
|     : typeof globalThis !== 'undefined' | ||||
|         ? globalThis | ||||
|         : global); | ||||
| function mount_component(component, target, anchor, customElement) { | ||||
|     const { fragment, after_update } = component.$$; | ||||
|     fragment && fragment.m(target, anchor); | ||||
|     if (!customElement) { | ||||
|         // onMount happens before the initial afterUpdate | ||||
|         add_render_callback(() => { | ||||
|             const new_on_destroy = component.$$.on_mount.map(run).filter(is_function); | ||||
|             // if the component was destroyed immediately | ||||
|             // it will update the `$$.on_destroy` reference to `null`. | ||||
|             // the destructured on_destroy may still reference to the old array | ||||
|             if (component.$$.on_destroy) { | ||||
|                 component.$$.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, append_styles, dirty = [-1]) { | ||||
|     const parent_component = current_component; | ||||
|     set_current_component(component); | ||||
|     const $$ = component.$$ = { | ||||
|         fragment: null, | ||||
|         ctx: [], | ||||
|         // state | ||||
|         props, | ||||
|         update: noop, | ||||
|         not_equal, | ||||
|         bound: blank_object(), | ||||
|         // lifecycle | ||||
|         on_mount: [], | ||||
|         on_destroy: [], | ||||
|         on_disconnect: [], | ||||
|         before_update: [], | ||||
|         after_update: [], | ||||
|         context: new Map(options.context || (parent_component ? parent_component.$$.context : [])), | ||||
|         // everything else | ||||
|         callbacks: blank_object(), | ||||
|         dirty, | ||||
|         skip_bound: false, | ||||
|         root: options.target || parent_component.$$.root | ||||
|     }; | ||||
|     append_styles && append_styles($$.root); | ||||
|     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); | ||||
| } | ||||
| let SvelteElement; | ||||
| if (typeof HTMLElement === 'function') { | ||||
|     SvelteElement = class extends HTMLElement { | ||||
|         constructor() { | ||||
|             super(); | ||||
|             this.attachShadow({ mode: 'open' }); | ||||
|         } | ||||
|         connectedCallback() { | ||||
|             const { on_mount } = this.$$; | ||||
|             this.$$.on_disconnect = on_mount.map(run).filter(is_function); | ||||
|             // @ts-ignore todo: improve typings | ||||
|             for (const key in this.$$.slotted) { | ||||
|                 // @ts-ignore todo: improve typings | ||||
|                 this.appendChild(this.$$.slotted[key]); | ||||
|             } | ||||
|         } | ||||
|         attributeChangedCallback(attr, _oldValue, newValue) { | ||||
|             this[attr] = newValue; | ||||
|         } | ||||
|         disconnectedCallback() { | ||||
|             run_all(this.$$.on_disconnect); | ||||
|         } | ||||
|         $destroy() { | ||||
|             destroy_component(this, 1); | ||||
|             this.$destroy = noop; | ||||
|         } | ||||
|         $on(type, callback) { | ||||
|             // TODO should this delegate to addEventListener? | ||||
|             if (!is_function(callback)) { | ||||
|                 return noop; | ||||
|             } | ||||
|             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.52.0' }, detail), { bubbles: true })); | ||||
| } | ||||
| 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 prop_dev(node, property, value) { | ||||
|     node[property] = value; | ||||
|     dispatch_dev('SvelteDOMSetProperty', { node, property, 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_each_argument(arg) { | ||||
|     if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) { | ||||
|         let msg = '{#each} only iterates over array-like objects.'; | ||||
|         if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) { | ||||
|             msg += ' You can use a spread to convert this iterable into an array.'; | ||||
|         } | ||||
|         throw new Error(msg); | ||||
|     } | ||||
| } | ||||
| 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}".`); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| export { binding_callbacks as A, set_style as B, listen_dev as C, getContext as D, setContext as E, run_all as F, svg_element as G, is_function as H, HtmlTag as I, SvelteElement as S, attribute_to_object as a, insert_dev as b, validate_store as c, dispatch_dev as d, component_subscribe as e, validate_each_argument as f, globals as g, empty as h, init as i, detach_dev as j, element as k, space as l, add_location as m, noop as n, onMount as o, attr_dev as p, src_url_equal as q, set_custom_element_data as r, safe_not_equal as s, text as t, append_dev as u, validate_slots as v, set_data_dev as w, destroy_each as x, prop_dev as y, flush as z }; | ||||
| @@ -1,53 +0,0 @@ | ||||
|  | ||||
| (function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document); | ||||
| import { n as noop, s as safe_not_equal } from './index-54dd49e1.js'; | ||||
|  | ||||
| const subscriber_queue = []; | ||||
| /** | ||||
|  * Create a `Writable` store that allows both updating and reading by subscription. | ||||
|  * @param {*=}value initial value | ||||
|  * @param {StartStopNotifier=}start start and stop notifications for subscriptions | ||||
|  */ | ||||
| function writable(value, start = noop) { | ||||
|     let stop; | ||||
|     const subscribers = new Set(); | ||||
|     function set(new_value) { | ||||
|         if (safe_not_equal(value, new_value)) { | ||||
|             value = new_value; | ||||
|             if (stop) { // store is ready | ||||
|                 const run_queue = !subscriber_queue.length; | ||||
|                 for (const subscriber of subscribers) { | ||||
|                     subscriber[1](); | ||||
|                     subscriber_queue.push(subscriber, value); | ||||
|                 } | ||||
|                 if (run_queue) { | ||||
|                     for (let i = 0; i < subscriber_queue.length; i += 2) { | ||||
|                         subscriber_queue[i][0](subscriber_queue[i + 1]); | ||||
|                     } | ||||
|                     subscriber_queue.length = 0; | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|     function update(fn) { | ||||
|         set(fn(value)); | ||||
|     } | ||||
|     function subscribe(run, invalidate = noop) { | ||||
|         const subscriber = [run, invalidate]; | ||||
|         subscribers.add(subscriber); | ||||
|         if (subscribers.size === 1) { | ||||
|             stop = start(set) || noop; | ||||
|         } | ||||
|         run(value); | ||||
|         return () => { | ||||
|             subscribers.delete(subscriber); | ||||
|             if (subscribers.size === 0) { | ||||
|                 stop(); | ||||
|                 stop = null; | ||||
|             } | ||||
|         }; | ||||
|     } | ||||
|     return { set, update, subscribe }; | ||||
| } | ||||
|  | ||||
| export { writable as w }; | ||||
| @@ -1 +0,0 @@ | ||||
| function t(){}function n(t){return t()}function e(){return Object.create(null)}function o(t){t.forEach(n)}function s(t){return"function"==typeof t}function r(t,n){return t!=t?n==n:t!==n||t&&"object"==typeof t||"function"==typeof t}let i,c;function u(t,n){return i||(i=document.createElement("a")),i.href=n,t===i.href}function a(n,e,o){n.$$.on_destroy.push(function(n,...e){if(null==n)return t;const o=n.subscribe(...e);return o.unsubscribe?()=>o.unsubscribe():o}(e,o))}function f(t,n){t.appendChild(n)}function l(t,n,e){t.insertBefore(n,e||null)}function h(t){t.parentNode.removeChild(t)}function d(t,n){for(let e=0;e<t.length;e+=1)t[e]&&t[e].d(n)}function $(t){return document.createElement(t)}function p(t){return document.createTextNode(t)}function m(){return p(" ")}function g(){return p("")}function b(t,n,e,o){return t.addEventListener(n,e,o),()=>t.removeEventListener(n,e,o)}function y(t,n,e){null==e?t.removeAttribute(n):t.getAttribute(n)!==e&&t.setAttribute(n,e)}function _(t,n,e){n in t?t[n]="boolean"==typeof t[n]&&""===e||e:y(t,n,e)}function x(t){return""===t?null:+t}function v(t,n){n=""+n,t.wholeText!==n&&(t.data=n)}function E(t,n){t.value=null==n?"":n}function w(t,n,e,o){null===e?t.style.removeProperty(n):t.style.setProperty(n,e,o?"important":"")}class k{constructor(t=!1){this.is_svg=!1,this.is_svg=t,this.e=this.n=null}c(t){this.h(t)}m(t,n,e=null){var o;this.e||(this.is_svg?this.e=(o=n.nodeName,document.createElementNS("http://www.w3.org/2000/svg",o)):this.e=$(n.nodeName),this.t=n,this.c(t)),this.i(e)}h(t){this.e.innerHTML=t,this.n=Array.from(this.e.childNodes)}i(t){for(let n=0;n<this.n.length;n+=1)l(this.t,this.n[n],t)}p(t){this.d(),this.h(t),this.i(this.a)}d(){this.n.forEach(h)}}function C(t){const n={};for(const e of t)n[e.name]=e.value;return n}function N(t){c=t}function A(){if(!c)throw new Error("Function called outside component initialization");return c}function L(t){A().$$.on_mount.push(t)}function S(t,n){return A().$$.context.set(t,n),n}function T(t){return A().$$.context.get(t)}const j=[],H=[],M=[],O=[],P=Promise.resolve();let q=!1;function z(t){M.push(t)}const B=new Set;let F=0;function D(){const t=c;do{for(;F<j.length;){const t=j[F];F++,N(t),G(t.$$)}for(N(null),j.length=0,F=0;H.length;)H.pop()();for(let t=0;t<M.length;t+=1){const n=M[t];B.has(n)||(B.add(n),n())}M.length=0}while(j.length);for(;O.length;)O.pop()();q=!1,B.clear(),N(t)}function G(t){if(null!==t.fragment){t.update(),o(t.before_update);const n=t.dirty;t.dirty=[-1],t.fragment&&t.fragment.p(t.ctx,n),t.after_update.forEach(z)}}const I=new Set;function J(t,n){-1===t.$$.dirty[0]&&(j.push(t),q||(q=!0,P.then(D)),t.$$.dirty.fill(0)),t.$$.dirty[n/31|0]|=1<<n%31}function K(r,i,u,a,f,l,d,$=[-1]){const p=c;N(r);const m=r.$$={fragment:null,ctx:[],props:l,update:t,not_equal:f,bound:e(),on_mount:[],on_destroy:[],on_disconnect:[],before_update:[],after_update:[],context:new Map(i.context||(p?p.$$.context:[])),callbacks:e(),dirty:$,skip_bound:!1,root:i.target||p.$$.root};d&&d(m.root);let g=!1;if(m.ctx=u?u(r,i.props||{},((t,n,...e)=>{const o=e.length?e[0]:n;return m.ctx&&f(m.ctx[t],m.ctx[t]=o)&&(!m.skip_bound&&m.bound[t]&&m.bound[t](o),g&&J(r,t)),n})):[],m.update(),g=!0,o(m.before_update),m.fragment=!!a&&a(m.ctx),i.target){if(i.hydrate){const t=function(t){return Array.from(t.childNodes)}(i.target);m.fragment&&m.fragment.l(t),t.forEach(h)}else m.fragment&&m.fragment.c();i.intro&&((b=r.$$.fragment)&&b.i&&(I.delete(b),b.i(y))),function(t,e,r,i){const{fragment:c,after_update:u}=t.$$;c&&c.m(e,r),i||z((()=>{const e=t.$$.on_mount.map(n).filter(s);t.$$.on_destroy?t.$$.on_destroy.push(...e):o(e),t.$$.on_mount=[]})),u.forEach(z)}(r,i.target,i.anchor,i.customElement),D()}var b,y;N(p)}let Q;"function"==typeof HTMLElement&&(Q=class extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"})}connectedCallback(){const{on_mount:t}=this.$$;this.$$.on_disconnect=t.map(n).filter(s);for(const t in this.$$.slotted)this.appendChild(this.$$.slotted[t])}attributeChangedCallback(t,n,e){this[t]=e}disconnectedCallback(){o(this.$$.on_disconnect)}$destroy(){!function(t,n){const e=t.$$;null!==e.fragment&&(o(e.on_destroy),e.fragment&&e.fragment.d(n),e.on_destroy=e.fragment=null,e.ctx=[])}(this,1),this.$destroy=t}$on(n,e){if(!s(e))return t;const o=this.$$.callbacks[n]||(this.$$.callbacks[n]=[]);return o.push(e),()=>{const t=o.indexOf(e);-1!==t&&o.splice(t,1)}}$set(t){var n;this.$$set&&(n=t,0!==Object.keys(n).length)&&(this.$$.skip_bound=!0,this.$$set(t),this.$$.skip_bound=!1)}});export{x as A,E as B,k as H,Q as S,C as a,l as b,m as c,y as d,$ as e,f,h as g,S as h,K as i,H as j,D as k,b as l,T as m,t as n,L as o,s as p,g as q,o as r,r as s,p as t,a as u,u as v,_ as w,v as x,d as y,w as z}; | ||||
| @@ -1,521 +0,0 @@ | ||||
|  | ||||
| (function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document); | ||||
| function noop() { } | ||||
| 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'); | ||||
| } | ||||
| let src_url_equal_anchor; | ||||
| function src_url_equal(element_src, url) { | ||||
|     if (!src_url_equal_anchor) { | ||||
|         src_url_equal_anchor = document.createElement('a'); | ||||
|     } | ||||
|     src_url_equal_anchor.href = url; | ||||
|     return element_src === src_url_equal_anchor.href; | ||||
| } | ||||
| function is_empty(obj) { | ||||
|     return Object.keys(obj).length === 0; | ||||
| } | ||||
| function validate_store(store, name) { | ||||
|     if (store != null && typeof store.subscribe !== 'function') { | ||||
|         throw new Error(`'${name}' is not a store with a 'subscribe' method`); | ||||
|     } | ||||
| } | ||||
| function subscribe(store, ...callbacks) { | ||||
|     if (store == null) { | ||||
|         return noop; | ||||
|     } | ||||
|     const unsub = store.subscribe(...callbacks); | ||||
|     return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub; | ||||
| } | ||||
| function component_subscribe(component, store, callback) { | ||||
|     component.$$.on_destroy.push(subscribe(store, callback)); | ||||
| } | ||||
| 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 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 attr(node, attribute, value) { | ||||
|     if (value == null) | ||||
|         node.removeAttribute(attribute); | ||||
|     else if (node.getAttribute(attribute) !== value) | ||||
|         node.setAttribute(attribute, value); | ||||
| } | ||||
| function set_custom_element_data(node, prop, value) { | ||||
|     if (prop in node) { | ||||
|         node[prop] = typeof node[prop] === 'boolean' && value === '' ? true : value; | ||||
|     } | ||||
|     else { | ||||
|         attr(node, prop, value); | ||||
|     } | ||||
| } | ||||
| function children(element) { | ||||
|     return Array.from(element.childNodes); | ||||
| } | ||||
| function set_style(node, key, value, important) { | ||||
|     if (value === null) { | ||||
|         node.style.removeProperty(key); | ||||
|     } | ||||
|     else { | ||||
|         node.style.setProperty(key, value, important ? 'important' : ''); | ||||
|     } | ||||
| } | ||||
| function custom_event(type, detail, { bubbles = false, cancelable = false } = {}) { | ||||
|     const e = document.createEvent('CustomEvent'); | ||||
|     e.initCustomEvent(type, bubbles, cancelable, detail); | ||||
|     return e; | ||||
| } | ||||
| class HtmlTag { | ||||
|     constructor(is_svg = false) { | ||||
|         this.is_svg = false; | ||||
|         this.is_svg = is_svg; | ||||
|         this.e = this.n = null; | ||||
|     } | ||||
|     c(html) { | ||||
|         this.h(html); | ||||
|     } | ||||
|     m(html, target, anchor = null) { | ||||
|         if (!this.e) { | ||||
|             if (this.is_svg) | ||||
|                 this.e = svg_element(target.nodeName); | ||||
|             else | ||||
|                 this.e = element(target.nodeName); | ||||
|             this.t = target; | ||||
|             this.c(html); | ||||
|         } | ||||
|         this.i(anchor); | ||||
|     } | ||||
|     h(html) { | ||||
|         this.e.innerHTML = html; | ||||
|         this.n = Array.from(this.e.childNodes); | ||||
|     } | ||||
|     i(anchor) { | ||||
|         for (let i = 0; i < this.n.length; i += 1) { | ||||
|             insert(this.t, this.n[i], anchor); | ||||
|         } | ||||
|     } | ||||
|     p(html) { | ||||
|         this.d(); | ||||
|         this.h(html); | ||||
|         this.i(this.a); | ||||
|     } | ||||
|     d() { | ||||
|         this.n.forEach(detach); | ||||
|     } | ||||
| } | ||||
| function attribute_to_object(attributes) { | ||||
|     const result = {}; | ||||
|     for (const attribute of attributes) { | ||||
|         result[attribute.name] = attribute.value; | ||||
|     } | ||||
|     return result; | ||||
| } | ||||
|  | ||||
| let current_component; | ||||
| function set_current_component(component) { | ||||
|     current_component = component; | ||||
| } | ||||
| function get_current_component() { | ||||
|     if (!current_component) | ||||
|         throw new Error('Function called outside component initialization'); | ||||
|     return current_component; | ||||
| } | ||||
| /** | ||||
|  * The `onMount` function schedules a callback to run as soon as the component has been mounted to the DOM. | ||||
|  * It must be called during the component's initialisation (but doesn't need to live *inside* the component; | ||||
|  * it can be called from an external module). | ||||
|  * | ||||
|  * `onMount` does not run inside a [server-side component](/docs#run-time-server-side-component-api). | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-onmount | ||||
|  */ | ||||
| function onMount(fn) { | ||||
|     get_current_component().$$.on_mount.push(fn); | ||||
| } | ||||
| /** | ||||
|  * Schedules a callback to run immediately after the component has been updated. | ||||
|  * | ||||
|  * The first time the callback runs will be after the initial `onMount` | ||||
|  */ | ||||
| function afterUpdate(fn) { | ||||
|     get_current_component().$$.after_update.push(fn); | ||||
| } | ||||
| /** | ||||
|  * Associates an arbitrary `context` object with the current component and the specified `key` | ||||
|  * and returns that object. The context is then available to children of the component | ||||
|  * (including slotted content) with `getContext`. | ||||
|  * | ||||
|  * Like lifecycle functions, this must be called during component initialisation. | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-setcontext | ||||
|  */ | ||||
| function setContext(key, context) { | ||||
|     get_current_component().$$.context.set(key, context); | ||||
|     return context; | ||||
| } | ||||
| /** | ||||
|  * Retrieves the context that belongs to the closest parent component with the specified `key`. | ||||
|  * Must be called during component initialisation. | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-getcontext | ||||
|  */ | ||||
| function getContext(key) { | ||||
|     return get_current_component().$$.context.get(key); | ||||
| } | ||||
|  | ||||
| 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); | ||||
| } | ||||
| // flush() calls callbacks in this order: | ||||
| // 1. All beforeUpdate callbacks, in order: parents before children | ||||
| // 2. All bind:this callbacks, in reverse order: children before parents. | ||||
| // 3. All afterUpdate callbacks, in order: parents before children. EXCEPT | ||||
| //    for afterUpdates called during the initial onMount, which are called in | ||||
| //    reverse order: children before parents. | ||||
| // Since callbacks might update component values, which could trigger another | ||||
| // call to flush(), the following steps guard against this: | ||||
| // 1. During beforeUpdate, any updated components will be added to the | ||||
| //    dirty_components array and will cause a reentrant call to flush(). Because | ||||
| //    the flush index is kept outside the function, the reentrant call will pick | ||||
| //    up where the earlier call left off and go through all dirty components. The | ||||
| //    current_component value is saved and restored so that the reentrant call will | ||||
| //    not interfere with the "parent" flush() call. | ||||
| // 2. bind:this callbacks cannot trigger new flush() calls. | ||||
| // 3. During afterUpdate, any updated components will NOT have their afterUpdate | ||||
| //    callback called a second time; the seen_callbacks set, outside the flush() | ||||
| //    function, guarantees this behavior. | ||||
| const seen_callbacks = new Set(); | ||||
| let flushidx = 0; // Do *not* move this inside the flush() function | ||||
| function flush() { | ||||
|     const saved_component = current_component; | ||||
|     do { | ||||
|         // first, call beforeUpdate functions | ||||
|         // and update components | ||||
|         while (flushidx < dirty_components.length) { | ||||
|             const component = dirty_components[flushidx]; | ||||
|             flushidx++; | ||||
|             set_current_component(component); | ||||
|             update(component.$$); | ||||
|         } | ||||
|         set_current_component(null); | ||||
|         dirty_components.length = 0; | ||||
|         flushidx = 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; | ||||
|     seen_callbacks.clear(); | ||||
|     set_current_component(saved_component); | ||||
| } | ||||
| 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(); | ||||
| function transition_in(block, local) { | ||||
|     if (block && block.i) { | ||||
|         outroing.delete(block); | ||||
|         block.i(local); | ||||
|     } | ||||
| } | ||||
|  | ||||
| const globals = (typeof window !== 'undefined' | ||||
|     ? window | ||||
|     : typeof globalThis !== 'undefined' | ||||
|         ? globalThis | ||||
|         : global); | ||||
| function mount_component(component, target, anchor, customElement) { | ||||
|     const { fragment, after_update } = component.$$; | ||||
|     fragment && fragment.m(target, anchor); | ||||
|     if (!customElement) { | ||||
|         // onMount happens before the initial afterUpdate | ||||
|         add_render_callback(() => { | ||||
|             const new_on_destroy = component.$$.on_mount.map(run).filter(is_function); | ||||
|             // if the component was destroyed immediately | ||||
|             // it will update the `$$.on_destroy` reference to `null`. | ||||
|             // the destructured on_destroy may still reference to the old array | ||||
|             if (component.$$.on_destroy) { | ||||
|                 component.$$.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, append_styles, dirty = [-1]) { | ||||
|     const parent_component = current_component; | ||||
|     set_current_component(component); | ||||
|     const $$ = component.$$ = { | ||||
|         fragment: null, | ||||
|         ctx: [], | ||||
|         // state | ||||
|         props, | ||||
|         update: noop, | ||||
|         not_equal, | ||||
|         bound: blank_object(), | ||||
|         // lifecycle | ||||
|         on_mount: [], | ||||
|         on_destroy: [], | ||||
|         on_disconnect: [], | ||||
|         before_update: [], | ||||
|         after_update: [], | ||||
|         context: new Map(options.context || (parent_component ? parent_component.$$.context : [])), | ||||
|         // everything else | ||||
|         callbacks: blank_object(), | ||||
|         dirty, | ||||
|         skip_bound: false, | ||||
|         root: options.target || parent_component.$$.root | ||||
|     }; | ||||
|     append_styles && append_styles($$.root); | ||||
|     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); | ||||
| } | ||||
| let SvelteElement; | ||||
| if (typeof HTMLElement === 'function') { | ||||
|     SvelteElement = class extends HTMLElement { | ||||
|         constructor() { | ||||
|             super(); | ||||
|             this.attachShadow({ mode: 'open' }); | ||||
|         } | ||||
|         connectedCallback() { | ||||
|             const { on_mount } = this.$$; | ||||
|             this.$$.on_disconnect = on_mount.map(run).filter(is_function); | ||||
|             // @ts-ignore todo: improve typings | ||||
|             for (const key in this.$$.slotted) { | ||||
|                 // @ts-ignore todo: improve typings | ||||
|                 this.appendChild(this.$$.slotted[key]); | ||||
|             } | ||||
|         } | ||||
|         attributeChangedCallback(attr, _oldValue, newValue) { | ||||
|             this[attr] = newValue; | ||||
|         } | ||||
|         disconnectedCallback() { | ||||
|             run_all(this.$$.on_disconnect); | ||||
|         } | ||||
|         $destroy() { | ||||
|             destroy_component(this, 1); | ||||
|             this.$destroy = noop; | ||||
|         } | ||||
|         $on(type, callback) { | ||||
|             // TODO should this delegate to addEventListener? | ||||
|             if (!is_function(callback)) { | ||||
|                 return noop; | ||||
|             } | ||||
|             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.52.0' }, detail), { bubbles: true })); | ||||
| } | ||||
| 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 prop_dev(node, property, value) { | ||||
|     node[property] = value; | ||||
|     dispatch_dev('SvelteDOMSetProperty', { node, property, 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_each_argument(arg) { | ||||
|     if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) { | ||||
|         let msg = '{#each} only iterates over array-like objects.'; | ||||
|         if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) { | ||||
|             msg += ' You can use a spread to convert this iterable into an array.'; | ||||
|         } | ||||
|         throw new Error(msg); | ||||
|     } | ||||
| } | ||||
| 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}".`); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| export { validate_each_argument as A, text as B, set_data_dev as C, destroy_each as D, prop_dev as E, set_style as F, svg_element as G, is_function as H, HtmlTag as I, afterUpdate as J, SvelteElement as S, attribute_to_object as a, insert_dev as b, setContext as c, dispatch_dev as d, globals as e, element as f, getContext as g, space as h, init as i, add_location as j, attr_dev as k, append_dev as l, listen_dev as m, noop as n, onMount as o, detach_dev as p, binding_callbacks as q, run_all as r, safe_not_equal as s, flush as t, src_url_equal as u, validate_slots as v, validate_store as w, component_subscribe as x, empty as y, set_custom_element_data as z }; | ||||
| @@ -1 +0,0 @@ | ||||
| function t(){}function n(t){return t()}function e(){return Object.create(null)}function o(t){t.forEach(n)}function s(t){return"function"==typeof t}function r(t,n){return t!=t?n==n:t!==n||t&&"object"==typeof t||"function"==typeof t}let i,c;function u(t,n){return i||(i=document.createElement("a")),i.href=n,t===i.href}function a(n,e,o){n.$$.on_destroy.push(function(n,...e){if(null==n)return t;const o=n.subscribe(...e);return o.unsubscribe?()=>o.unsubscribe():o}(e,o))}function f(t,n){t.appendChild(n)}function l(t,n,e){t.insertBefore(n,e||null)}function h(t){t.parentNode.removeChild(t)}function d(t,n){for(let e=0;e<t.length;e+=1)t[e]&&t[e].d(n)}function $(t){return document.createElement(t)}function p(t){return document.createTextNode(t)}function m(){return p(" ")}function g(){return p("")}function b(t,n,e,o){return t.addEventListener(n,e,o),()=>t.removeEventListener(n,e,o)}function y(t,n,e){null==e?t.removeAttribute(n):t.getAttribute(n)!==e&&t.setAttribute(n,e)}function _(t,n,e){n in t?t[n]="boolean"==typeof t[n]&&""===e||e:y(t,n,e)}function x(t){return""===t?null:+t}function v(t,n){n=""+n,t.wholeText!==n&&(t.data=n)}function E(t,n){t.value=null==n?"":n}function w(t,n,e,o){null===e?t.style.removeProperty(n):t.style.setProperty(n,e,o?"important":"")}class k{constructor(t=!1){this.is_svg=!1,this.is_svg=t,this.e=this.n=null}c(t){this.h(t)}m(t,n,e=null){var o;this.e||(this.is_svg?this.e=(o=n.nodeName,document.createElementNS("http://www.w3.org/2000/svg",o)):this.e=$(n.nodeName),this.t=n,this.c(t)),this.i(e)}h(t){this.e.innerHTML=t,this.n=Array.from(this.e.childNodes)}i(t){for(let n=0;n<this.n.length;n+=1)l(this.t,this.n[n],t)}p(t){this.d(),this.h(t),this.i(this.a)}d(){this.n.forEach(h)}}function C(t){const n={};for(const e of t)n[e.name]=e.value;return n}function N(t){c=t}function A(){if(!c)throw new Error("Function called outside component initialization");return c}function L(t){A().$$.on_mount.push(t)}function S(t,n){return A().$$.context.set(t,n),n}function T(t){return A().$$.context.get(t)}const j=[],H=[],M=[],O=[],P=Promise.resolve();let q=!1;function z(t){M.push(t)}const B=new Set;let F=0;function D(){const t=c;do{for(;F<j.length;){const t=j[F];F++,N(t),G(t.$$)}for(N(null),j.length=0,F=0;H.length;)H.pop()();for(let t=0;t<M.length;t+=1){const n=M[t];B.has(n)||(B.add(n),n())}M.length=0}while(j.length);for(;O.length;)O.pop()();q=!1,B.clear(),N(t)}function G(t){if(null!==t.fragment){t.update(),o(t.before_update);const n=t.dirty;t.dirty=[-1],t.fragment&&t.fragment.p(t.ctx,n),t.after_update.forEach(z)}}const I=new Set;function J(t,n){-1===t.$$.dirty[0]&&(j.push(t),q||(q=!0,P.then(D)),t.$$.dirty.fill(0)),t.$$.dirty[n/31|0]|=1<<n%31}function K(r,i,u,a,f,l,d,$=[-1]){const p=c;N(r);const m=r.$$={fragment:null,ctx:[],props:l,update:t,not_equal:f,bound:e(),on_mount:[],on_destroy:[],on_disconnect:[],before_update:[],after_update:[],context:new Map(i.context||(p?p.$$.context:[])),callbacks:e(),dirty:$,skip_bound:!1,root:i.target||p.$$.root};d&&d(m.root);let g=!1;if(m.ctx=u?u(r,i.props||{},((t,n,...e)=>{const o=e.length?e[0]:n;return m.ctx&&f(m.ctx[t],m.ctx[t]=o)&&(!m.skip_bound&&m.bound[t]&&m.bound[t](o),g&&J(r,t)),n})):[],m.update(),g=!0,o(m.before_update),m.fragment=!!a&&a(m.ctx),i.target){if(i.hydrate){const t=function(t){return Array.from(t.childNodes)}(i.target);m.fragment&&m.fragment.l(t),t.forEach(h)}else m.fragment&&m.fragment.c();i.intro&&((b=r.$$.fragment)&&b.i&&(I.delete(b),b.i(y))),function(t,e,r,i){const{fragment:c,after_update:u}=t.$$;c&&c.m(e,r),i||z((()=>{const e=t.$$.on_mount.map(n).filter(s);t.$$.on_destroy?t.$$.on_destroy.push(...e):o(e),t.$$.on_mount=[]})),u.forEach(z)}(r,i.target,i.anchor,i.customElement),D()}var b,y;N(p)}let Q;"function"==typeof HTMLElement&&(Q=class extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"})}connectedCallback(){const{on_mount:t}=this.$$;this.$$.on_disconnect=t.map(n).filter(s);for(const t in this.$$.slotted)this.appendChild(this.$$.slotted[t])}attributeChangedCallback(t,n,e){this[t]=e}disconnectedCallback(){o(this.$$.on_disconnect)}$destroy(){!function(t,n){const e=t.$$;null!==e.fragment&&(o(e.on_destroy),e.fragment&&e.fragment.d(n),e.on_destroy=e.fragment=null,e.ctx=[])}(this,1),this.$destroy=t}$on(n,e){if(!s(e))return t;const o=this.$$.callbacks[n]||(this.$$.callbacks[n]=[]);return o.push(e),()=>{const t=o.indexOf(e);-1!==t&&o.splice(t,1)}}$set(t){var n;this.$$set&&(n=t,0!==Object.keys(n).length)&&(this.$$.skip_bound=!0,this.$$set(t),this.$$.skip_bound=!1)}});export{x as A,E as B,k as H,Q as S,C as a,l as b,m as c,y as d,$ as e,f,h as g,S as h,K as i,H as j,D as k,b as l,T as m,t as n,L as o,s as p,g as q,o as r,r as s,a as t,u,_ as v,p as w,v as x,d as y,w as z}; | ||||
| @@ -1 +0,0 @@ | ||||
| import{n,s as t}from"./index-4348483d.js";const e=[];function s(s,o=n){let i;const c=new Set;function f(n){if(t(s,n)&&(s=n,i)){const n=!e.length;for(const n of c)n[1](),e.push(n,s);if(n){for(let n=0;n<e.length;n+=2)e[n][0](e[n+1]);e.length=0}}}return{set:f,update:function(n){f(n(s))},subscribe:function(t,e=n){const r=[t,e];return c.add(r),1===c.size&&(i=o(f)||n),t(s),()=>{c.delete(r),0===c.size&&(i(),i=null)}}}}export{s as w}; | ||||
| @@ -1,445 +0,0 @@ | ||||
|  | ||||
| (function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document); | ||||
| function noop() { } | ||||
| 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'); | ||||
| } | ||||
| let src_url_equal_anchor; | ||||
| function src_url_equal(element_src, url) { | ||||
|     if (!src_url_equal_anchor) { | ||||
|         src_url_equal_anchor = document.createElement('a'); | ||||
|     } | ||||
|     src_url_equal_anchor.href = url; | ||||
|     return element_src === src_url_equal_anchor.href; | ||||
| } | ||||
| function is_empty(obj) { | ||||
|     return Object.keys(obj).length === 0; | ||||
| } | ||||
| 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 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 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 children(element) { | ||||
|     return Array.from(element.childNodes); | ||||
| } | ||||
| function set_style(node, key, value, important) { | ||||
|     if (value === null) { | ||||
|         node.style.removeProperty(key); | ||||
|     } | ||||
|     else { | ||||
|         node.style.setProperty(key, value, important ? 'important' : ''); | ||||
|     } | ||||
| } | ||||
| function custom_event(type, detail, { bubbles = false, cancelable = false } = {}) { | ||||
|     const e = document.createEvent('CustomEvent'); | ||||
|     e.initCustomEvent(type, bubbles, cancelable, detail); | ||||
|     return e; | ||||
| } | ||||
| function attribute_to_object(attributes) { | ||||
|     const result = {}; | ||||
|     for (const attribute of attributes) { | ||||
|         result[attribute.name] = attribute.value; | ||||
|     } | ||||
|     return result; | ||||
| } | ||||
|  | ||||
| let current_component; | ||||
| function set_current_component(component) { | ||||
|     current_component = component; | ||||
| } | ||||
| function get_current_component() { | ||||
|     if (!current_component) | ||||
|         throw new Error('Function called outside component initialization'); | ||||
|     return current_component; | ||||
| } | ||||
| /** | ||||
|  * The `onMount` function schedules a callback to run as soon as the component has been mounted to the DOM. | ||||
|  * It must be called during the component's initialisation (but doesn't need to live *inside* the component; | ||||
|  * it can be called from an external module). | ||||
|  * | ||||
|  * `onMount` does not run inside a [server-side component](/docs#run-time-server-side-component-api). | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-onmount | ||||
|  */ | ||||
| function onMount(fn) { | ||||
|     get_current_component().$$.on_mount.push(fn); | ||||
| } | ||||
| /** | ||||
|  * Associates an arbitrary `context` object with the current component and the specified `key` | ||||
|  * and returns that object. The context is then available to children of the component | ||||
|  * (including slotted content) with `getContext`. | ||||
|  * | ||||
|  * Like lifecycle functions, this must be called during component initialisation. | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-setcontext | ||||
|  */ | ||||
| function setContext(key, context) { | ||||
|     get_current_component().$$.context.set(key, context); | ||||
|     return context; | ||||
| } | ||||
| /** | ||||
|  * Retrieves the context that belongs to the closest parent component with the specified `key`. | ||||
|  * Must be called during component initialisation. | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-getcontext | ||||
|  */ | ||||
| function getContext(key) { | ||||
|     return get_current_component().$$.context.get(key); | ||||
| } | ||||
|  | ||||
| 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); | ||||
| } | ||||
| // flush() calls callbacks in this order: | ||||
| // 1. All beforeUpdate callbacks, in order: parents before children | ||||
| // 2. All bind:this callbacks, in reverse order: children before parents. | ||||
| // 3. All afterUpdate callbacks, in order: parents before children. EXCEPT | ||||
| //    for afterUpdates called during the initial onMount, which are called in | ||||
| //    reverse order: children before parents. | ||||
| // Since callbacks might update component values, which could trigger another | ||||
| // call to flush(), the following steps guard against this: | ||||
| // 1. During beforeUpdate, any updated components will be added to the | ||||
| //    dirty_components array and will cause a reentrant call to flush(). Because | ||||
| //    the flush index is kept outside the function, the reentrant call will pick | ||||
| //    up where the earlier call left off and go through all dirty components. The | ||||
| //    current_component value is saved and restored so that the reentrant call will | ||||
| //    not interfere with the "parent" flush() call. | ||||
| // 2. bind:this callbacks cannot trigger new flush() calls. | ||||
| // 3. During afterUpdate, any updated components will NOT have their afterUpdate | ||||
| //    callback called a second time; the seen_callbacks set, outside the flush() | ||||
| //    function, guarantees this behavior. | ||||
| const seen_callbacks = new Set(); | ||||
| let flushidx = 0; // Do *not* move this inside the flush() function | ||||
| function flush() { | ||||
|     const saved_component = current_component; | ||||
|     do { | ||||
|         // first, call beforeUpdate functions | ||||
|         // and update components | ||||
|         while (flushidx < dirty_components.length) { | ||||
|             const component = dirty_components[flushidx]; | ||||
|             flushidx++; | ||||
|             set_current_component(component); | ||||
|             update(component.$$); | ||||
|         } | ||||
|         set_current_component(null); | ||||
|         dirty_components.length = 0; | ||||
|         flushidx = 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; | ||||
|     seen_callbacks.clear(); | ||||
|     set_current_component(saved_component); | ||||
| } | ||||
| 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(); | ||||
| function transition_in(block, local) { | ||||
|     if (block && block.i) { | ||||
|         outroing.delete(block); | ||||
|         block.i(local); | ||||
|     } | ||||
| } | ||||
|  | ||||
| const globals = (typeof window !== 'undefined' | ||||
|     ? window | ||||
|     : typeof globalThis !== 'undefined' | ||||
|         ? globalThis | ||||
|         : global); | ||||
| function mount_component(component, target, anchor, customElement) { | ||||
|     const { fragment, after_update } = component.$$; | ||||
|     fragment && fragment.m(target, anchor); | ||||
|     if (!customElement) { | ||||
|         // onMount happens before the initial afterUpdate | ||||
|         add_render_callback(() => { | ||||
|             const new_on_destroy = component.$$.on_mount.map(run).filter(is_function); | ||||
|             // if the component was destroyed immediately | ||||
|             // it will update the `$$.on_destroy` reference to `null`. | ||||
|             // the destructured on_destroy may still reference to the old array | ||||
|             if (component.$$.on_destroy) { | ||||
|                 component.$$.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, append_styles, dirty = [-1]) { | ||||
|     const parent_component = current_component; | ||||
|     set_current_component(component); | ||||
|     const $$ = component.$$ = { | ||||
|         fragment: null, | ||||
|         ctx: [], | ||||
|         // state | ||||
|         props, | ||||
|         update: noop, | ||||
|         not_equal, | ||||
|         bound: blank_object(), | ||||
|         // lifecycle | ||||
|         on_mount: [], | ||||
|         on_destroy: [], | ||||
|         on_disconnect: [], | ||||
|         before_update: [], | ||||
|         after_update: [], | ||||
|         context: new Map(options.context || (parent_component ? parent_component.$$.context : [])), | ||||
|         // everything else | ||||
|         callbacks: blank_object(), | ||||
|         dirty, | ||||
|         skip_bound: false, | ||||
|         root: options.target || parent_component.$$.root | ||||
|     }; | ||||
|     append_styles && append_styles($$.root); | ||||
|     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); | ||||
| } | ||||
| let SvelteElement; | ||||
| if (typeof HTMLElement === 'function') { | ||||
|     SvelteElement = class extends HTMLElement { | ||||
|         constructor() { | ||||
|             super(); | ||||
|             this.attachShadow({ mode: 'open' }); | ||||
|         } | ||||
|         connectedCallback() { | ||||
|             const { on_mount } = this.$$; | ||||
|             this.$$.on_disconnect = on_mount.map(run).filter(is_function); | ||||
|             // @ts-ignore todo: improve typings | ||||
|             for (const key in this.$$.slotted) { | ||||
|                 // @ts-ignore todo: improve typings | ||||
|                 this.appendChild(this.$$.slotted[key]); | ||||
|             } | ||||
|         } | ||||
|         attributeChangedCallback(attr, _oldValue, newValue) { | ||||
|             this[attr] = newValue; | ||||
|         } | ||||
|         disconnectedCallback() { | ||||
|             run_all(this.$$.on_disconnect); | ||||
|         } | ||||
|         $destroy() { | ||||
|             destroy_component(this, 1); | ||||
|             this.$destroy = noop; | ||||
|         } | ||||
|         $on(type, callback) { | ||||
|             // TODO should this delegate to addEventListener? | ||||
|             if (!is_function(callback)) { | ||||
|                 return noop; | ||||
|             } | ||||
|             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.52.0' }, detail), { bubbles: true })); | ||||
| } | ||||
| 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_each_argument(arg) { | ||||
|     if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) { | ||||
|         let msg = '{#each} only iterates over array-like objects.'; | ||||
|         if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) { | ||||
|             msg += ' You can use a spread to convert this iterable into an array.'; | ||||
|         } | ||||
|         throw new Error(msg); | ||||
|     } | ||||
| } | ||||
| 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}".`); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| export { run_all as A, svg_element as B, SvelteElement as S, attribute_to_object as a, insert_dev as b, add_location as c, dispatch_dev as d, element as e, detach_dev as f, attr_dev as g, append_dev as h, init as i, flush as j, validate_each_argument as k, globals as l, destroy_each as m, noop as n, onMount as o, binding_callbacks as p, space as q, set_style as r, safe_not_equal as s, text as t, listen_dev as u, validate_slots as v, set_data_dev as w, getContext as x, setContext as y, src_url_equal as z }; | ||||
| @@ -1 +0,0 @@ | ||||
| import{n,s as t}from"./index-db20528a.js";const e=[];function s(s,o=n){let i;const c=new Set;function f(n){if(t(s,n)&&(s=n,i)){const n=!e.length;for(const n of c)n[1](),e.push(n,s);if(n){for(let n=0;n<e.length;n+=2)e[n][0](e[n+1]);e.length=0}}}return{set:f,update:function(n){f(n(s))},subscribe:function(t,e=n){const r=[t,e];return c.add(r),1===c.size&&(i=o(f)||n),t(s),()=>{c.delete(r),0===c.size&&(i(),i=null)}}}}export{s as w}; | ||||
| @@ -1 +0,0 @@ | ||||
| import{n,s as t}from"./index-8c09578c.js";const e=[];function s(s,o=n){let c;const i=new Set;function f(n){if(t(s,n)&&(s=n,c)){const n=!e.length;for(const n of i)n[1](),e.push(n,s);if(n){for(let n=0;n<e.length;n+=2)e[n][0](e[n+1]);e.length=0}}}return{set:f,update:function(n){f(n(s))},subscribe:function(t,e=n){const r=[t,e];return i.add(r),1===i.size&&(c=o(f)||n),t(s),()=>{i.delete(r),0===i.size&&(c(),c=null)}}}}export{s as w}; | ||||
| @@ -1,494 +0,0 @@ | ||||
|  | ||||
| (function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document); | ||||
| function noop() { } | ||||
| 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'); | ||||
| } | ||||
| let src_url_equal_anchor; | ||||
| function src_url_equal(element_src, url) { | ||||
|     if (!src_url_equal_anchor) { | ||||
|         src_url_equal_anchor = document.createElement('a'); | ||||
|     } | ||||
|     src_url_equal_anchor.href = url; | ||||
|     return element_src === src_url_equal_anchor.href; | ||||
| } | ||||
| function is_empty(obj) { | ||||
|     return Object.keys(obj).length === 0; | ||||
| } | ||||
| 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 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 attr(node, attribute, value) { | ||||
|     if (value == null) | ||||
|         node.removeAttribute(attribute); | ||||
|     else if (node.getAttribute(attribute) !== value) | ||||
|         node.setAttribute(attribute, value); | ||||
| } | ||||
| function set_custom_element_data(node, prop, value) { | ||||
|     if (prop in node) { | ||||
|         node[prop] = typeof node[prop] === 'boolean' && value === '' ? true : value; | ||||
|     } | ||||
|     else { | ||||
|         attr(node, prop, value); | ||||
|     } | ||||
| } | ||||
| function children(element) { | ||||
|     return Array.from(element.childNodes); | ||||
| } | ||||
| function set_style(node, key, value, important) { | ||||
|     if (value === null) { | ||||
|         node.style.removeProperty(key); | ||||
|     } | ||||
|     else { | ||||
|         node.style.setProperty(key, value, important ? 'important' : ''); | ||||
|     } | ||||
| } | ||||
| function custom_event(type, detail, { bubbles = false, cancelable = false } = {}) { | ||||
|     const e = document.createEvent('CustomEvent'); | ||||
|     e.initCustomEvent(type, bubbles, cancelable, detail); | ||||
|     return e; | ||||
| } | ||||
| class HtmlTag { | ||||
|     constructor(is_svg = false) { | ||||
|         this.is_svg = false; | ||||
|         this.is_svg = is_svg; | ||||
|         this.e = this.n = null; | ||||
|     } | ||||
|     c(html) { | ||||
|         this.h(html); | ||||
|     } | ||||
|     m(html, target, anchor = null) { | ||||
|         if (!this.e) { | ||||
|             if (this.is_svg) | ||||
|                 this.e = svg_element(target.nodeName); | ||||
|             else | ||||
|                 this.e = element(target.nodeName); | ||||
|             this.t = target; | ||||
|             this.c(html); | ||||
|         } | ||||
|         this.i(anchor); | ||||
|     } | ||||
|     h(html) { | ||||
|         this.e.innerHTML = html; | ||||
|         this.n = Array.from(this.e.childNodes); | ||||
|     } | ||||
|     i(anchor) { | ||||
|         for (let i = 0; i < this.n.length; i += 1) { | ||||
|             insert(this.t, this.n[i], anchor); | ||||
|         } | ||||
|     } | ||||
|     p(html) { | ||||
|         this.d(); | ||||
|         this.h(html); | ||||
|         this.i(this.a); | ||||
|     } | ||||
|     d() { | ||||
|         this.n.forEach(detach); | ||||
|     } | ||||
| } | ||||
| function attribute_to_object(attributes) { | ||||
|     const result = {}; | ||||
|     for (const attribute of attributes) { | ||||
|         result[attribute.name] = attribute.value; | ||||
|     } | ||||
|     return result; | ||||
| } | ||||
|  | ||||
| let current_component; | ||||
| function set_current_component(component) { | ||||
|     current_component = component; | ||||
| } | ||||
| function get_current_component() { | ||||
|     if (!current_component) | ||||
|         throw new Error('Function called outside component initialization'); | ||||
|     return current_component; | ||||
| } | ||||
| /** | ||||
|  * The `onMount` function schedules a callback to run as soon as the component has been mounted to the DOM. | ||||
|  * It must be called during the component's initialisation (but doesn't need to live *inside* the component; | ||||
|  * it can be called from an external module). | ||||
|  * | ||||
|  * `onMount` does not run inside a [server-side component](/docs#run-time-server-side-component-api). | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-onmount | ||||
|  */ | ||||
| function onMount(fn) { | ||||
|     get_current_component().$$.on_mount.push(fn); | ||||
| } | ||||
| /** | ||||
|  * Associates an arbitrary `context` object with the current component and the specified `key` | ||||
|  * and returns that object. The context is then available to children of the component | ||||
|  * (including slotted content) with `getContext`. | ||||
|  * | ||||
|  * Like lifecycle functions, this must be called during component initialisation. | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-setcontext | ||||
|  */ | ||||
| function setContext(key, context) { | ||||
|     get_current_component().$$.context.set(key, context); | ||||
|     return context; | ||||
| } | ||||
| /** | ||||
|  * Retrieves the context that belongs to the closest parent component with the specified `key`. | ||||
|  * Must be called during component initialisation. | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-getcontext | ||||
|  */ | ||||
| function getContext(key) { | ||||
|     return get_current_component().$$.context.get(key); | ||||
| } | ||||
|  | ||||
| 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); | ||||
| } | ||||
| // flush() calls callbacks in this order: | ||||
| // 1. All beforeUpdate callbacks, in order: parents before children | ||||
| // 2. All bind:this callbacks, in reverse order: children before parents. | ||||
| // 3. All afterUpdate callbacks, in order: parents before children. EXCEPT | ||||
| //    for afterUpdates called during the initial onMount, which are called in | ||||
| //    reverse order: children before parents. | ||||
| // Since callbacks might update component values, which could trigger another | ||||
| // call to flush(), the following steps guard against this: | ||||
| // 1. During beforeUpdate, any updated components will be added to the | ||||
| //    dirty_components array and will cause a reentrant call to flush(). Because | ||||
| //    the flush index is kept outside the function, the reentrant call will pick | ||||
| //    up where the earlier call left off and go through all dirty components. The | ||||
| //    current_component value is saved and restored so that the reentrant call will | ||||
| //    not interfere with the "parent" flush() call. | ||||
| // 2. bind:this callbacks cannot trigger new flush() calls. | ||||
| // 3. During afterUpdate, any updated components will NOT have their afterUpdate | ||||
| //    callback called a second time; the seen_callbacks set, outside the flush() | ||||
| //    function, guarantees this behavior. | ||||
| const seen_callbacks = new Set(); | ||||
| let flushidx = 0; // Do *not* move this inside the flush() function | ||||
| function flush() { | ||||
|     const saved_component = current_component; | ||||
|     do { | ||||
|         // first, call beforeUpdate functions | ||||
|         // and update components | ||||
|         while (flushidx < dirty_components.length) { | ||||
|             const component = dirty_components[flushidx]; | ||||
|             flushidx++; | ||||
|             set_current_component(component); | ||||
|             update(component.$$); | ||||
|         } | ||||
|         set_current_component(null); | ||||
|         dirty_components.length = 0; | ||||
|         flushidx = 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; | ||||
|     seen_callbacks.clear(); | ||||
|     set_current_component(saved_component); | ||||
| } | ||||
| 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(); | ||||
| function transition_in(block, local) { | ||||
|     if (block && block.i) { | ||||
|         outroing.delete(block); | ||||
|         block.i(local); | ||||
|     } | ||||
| } | ||||
|  | ||||
| const globals = (typeof window !== 'undefined' | ||||
|     ? window | ||||
|     : typeof globalThis !== 'undefined' | ||||
|         ? globalThis | ||||
|         : global); | ||||
| function mount_component(component, target, anchor, customElement) { | ||||
|     const { fragment, after_update } = component.$$; | ||||
|     fragment && fragment.m(target, anchor); | ||||
|     if (!customElement) { | ||||
|         // onMount happens before the initial afterUpdate | ||||
|         add_render_callback(() => { | ||||
|             const new_on_destroy = component.$$.on_mount.map(run).filter(is_function); | ||||
|             // if the component was destroyed immediately | ||||
|             // it will update the `$$.on_destroy` reference to `null`. | ||||
|             // the destructured on_destroy may still reference to the old array | ||||
|             if (component.$$.on_destroy) { | ||||
|                 component.$$.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, append_styles, dirty = [-1]) { | ||||
|     const parent_component = current_component; | ||||
|     set_current_component(component); | ||||
|     const $$ = component.$$ = { | ||||
|         fragment: null, | ||||
|         ctx: [], | ||||
|         // state | ||||
|         props, | ||||
|         update: noop, | ||||
|         not_equal, | ||||
|         bound: blank_object(), | ||||
|         // lifecycle | ||||
|         on_mount: [], | ||||
|         on_destroy: [], | ||||
|         on_disconnect: [], | ||||
|         before_update: [], | ||||
|         after_update: [], | ||||
|         context: new Map(options.context || (parent_component ? parent_component.$$.context : [])), | ||||
|         // everything else | ||||
|         callbacks: blank_object(), | ||||
|         dirty, | ||||
|         skip_bound: false, | ||||
|         root: options.target || parent_component.$$.root | ||||
|     }; | ||||
|     append_styles && append_styles($$.root); | ||||
|     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); | ||||
| } | ||||
| let SvelteElement; | ||||
| if (typeof HTMLElement === 'function') { | ||||
|     SvelteElement = class extends HTMLElement { | ||||
|         constructor() { | ||||
|             super(); | ||||
|             this.attachShadow({ mode: 'open' }); | ||||
|         } | ||||
|         connectedCallback() { | ||||
|             const { on_mount } = this.$$; | ||||
|             this.$$.on_disconnect = on_mount.map(run).filter(is_function); | ||||
|             // @ts-ignore todo: improve typings | ||||
|             for (const key in this.$$.slotted) { | ||||
|                 // @ts-ignore todo: improve typings | ||||
|                 this.appendChild(this.$$.slotted[key]); | ||||
|             } | ||||
|         } | ||||
|         attributeChangedCallback(attr, _oldValue, newValue) { | ||||
|             this[attr] = newValue; | ||||
|         } | ||||
|         disconnectedCallback() { | ||||
|             run_all(this.$$.on_disconnect); | ||||
|         } | ||||
|         $destroy() { | ||||
|             destroy_component(this, 1); | ||||
|             this.$destroy = noop; | ||||
|         } | ||||
|         $on(type, callback) { | ||||
|             // TODO should this delegate to addEventListener? | ||||
|             if (!is_function(callback)) { | ||||
|                 return noop; | ||||
|             } | ||||
|             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.52.0' }, detail), { bubbles: true })); | ||||
| } | ||||
| 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_each_argument(arg) { | ||||
|     if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) { | ||||
|         let msg = '{#each} only iterates over array-like objects.'; | ||||
|         if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) { | ||||
|             msg += ' You can use a spread to convert this iterable into an array.'; | ||||
|         } | ||||
|         throw new Error(msg); | ||||
|     } | ||||
| } | ||||
| 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}".`); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| export { setContext as A, run_all as B, svg_element as C, empty as D, HtmlTag as H, SvelteElement as S, attribute_to_object as a, insert_dev as b, validate_slots as c, dispatch_dev as d, element as e, space as f, add_location as g, attr_dev as h, init as i, src_url_equal as j, append_dev as k, detach_dev as l, destroy_each as m, noop as n, onMount as o, set_custom_element_data as p, flush as q, globals as r, safe_not_equal as s, text as t, binding_callbacks as u, validate_each_argument as v, set_style as w, listen_dev as x, set_data_dev as y, getContext as z }; | ||||
| @@ -1,494 +0,0 @@ | ||||
|  | ||||
| (function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document); | ||||
| function noop() { } | ||||
| 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'); | ||||
| } | ||||
| let src_url_equal_anchor; | ||||
| function src_url_equal(element_src, url) { | ||||
|     if (!src_url_equal_anchor) { | ||||
|         src_url_equal_anchor = document.createElement('a'); | ||||
|     } | ||||
|     src_url_equal_anchor.href = url; | ||||
|     return element_src === src_url_equal_anchor.href; | ||||
| } | ||||
| function is_empty(obj) { | ||||
|     return Object.keys(obj).length === 0; | ||||
| } | ||||
| 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 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 attr(node, attribute, value) { | ||||
|     if (value == null) | ||||
|         node.removeAttribute(attribute); | ||||
|     else if (node.getAttribute(attribute) !== value) | ||||
|         node.setAttribute(attribute, value); | ||||
| } | ||||
| function set_custom_element_data(node, prop, value) { | ||||
|     if (prop in node) { | ||||
|         node[prop] = typeof node[prop] === 'boolean' && value === '' ? true : value; | ||||
|     } | ||||
|     else { | ||||
|         attr(node, prop, value); | ||||
|     } | ||||
| } | ||||
| function children(element) { | ||||
|     return Array.from(element.childNodes); | ||||
| } | ||||
| function set_style(node, key, value, important) { | ||||
|     if (value === null) { | ||||
|         node.style.removeProperty(key); | ||||
|     } | ||||
|     else { | ||||
|         node.style.setProperty(key, value, important ? 'important' : ''); | ||||
|     } | ||||
| } | ||||
| function custom_event(type, detail, { bubbles = false, cancelable = false } = {}) { | ||||
|     const e = document.createEvent('CustomEvent'); | ||||
|     e.initCustomEvent(type, bubbles, cancelable, detail); | ||||
|     return e; | ||||
| } | ||||
| class HtmlTag { | ||||
|     constructor(is_svg = false) { | ||||
|         this.is_svg = false; | ||||
|         this.is_svg = is_svg; | ||||
|         this.e = this.n = null; | ||||
|     } | ||||
|     c(html) { | ||||
|         this.h(html); | ||||
|     } | ||||
|     m(html, target, anchor = null) { | ||||
|         if (!this.e) { | ||||
|             if (this.is_svg) | ||||
|                 this.e = svg_element(target.nodeName); | ||||
|             else | ||||
|                 this.e = element(target.nodeName); | ||||
|             this.t = target; | ||||
|             this.c(html); | ||||
|         } | ||||
|         this.i(anchor); | ||||
|     } | ||||
|     h(html) { | ||||
|         this.e.innerHTML = html; | ||||
|         this.n = Array.from(this.e.childNodes); | ||||
|     } | ||||
|     i(anchor) { | ||||
|         for (let i = 0; i < this.n.length; i += 1) { | ||||
|             insert(this.t, this.n[i], anchor); | ||||
|         } | ||||
|     } | ||||
|     p(html) { | ||||
|         this.d(); | ||||
|         this.h(html); | ||||
|         this.i(this.a); | ||||
|     } | ||||
|     d() { | ||||
|         this.n.forEach(detach); | ||||
|     } | ||||
| } | ||||
| function attribute_to_object(attributes) { | ||||
|     const result = {}; | ||||
|     for (const attribute of attributes) { | ||||
|         result[attribute.name] = attribute.value; | ||||
|     } | ||||
|     return result; | ||||
| } | ||||
|  | ||||
| let current_component; | ||||
| function set_current_component(component) { | ||||
|     current_component = component; | ||||
| } | ||||
| function get_current_component() { | ||||
|     if (!current_component) | ||||
|         throw new Error('Function called outside component initialization'); | ||||
|     return current_component; | ||||
| } | ||||
| /** | ||||
|  * The `onMount` function schedules a callback to run as soon as the component has been mounted to the DOM. | ||||
|  * It must be called during the component's initialisation (but doesn't need to live *inside* the component; | ||||
|  * it can be called from an external module). | ||||
|  * | ||||
|  * `onMount` does not run inside a [server-side component](/docs#run-time-server-side-component-api). | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-onmount | ||||
|  */ | ||||
| function onMount(fn) { | ||||
|     get_current_component().$$.on_mount.push(fn); | ||||
| } | ||||
| /** | ||||
|  * Associates an arbitrary `context` object with the current component and the specified `key` | ||||
|  * and returns that object. The context is then available to children of the component | ||||
|  * (including slotted content) with `getContext`. | ||||
|  * | ||||
|  * Like lifecycle functions, this must be called during component initialisation. | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-setcontext | ||||
|  */ | ||||
| function setContext(key, context) { | ||||
|     get_current_component().$$.context.set(key, context); | ||||
|     return context; | ||||
| } | ||||
| /** | ||||
|  * Retrieves the context that belongs to the closest parent component with the specified `key`. | ||||
|  * Must be called during component initialisation. | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-getcontext | ||||
|  */ | ||||
| function getContext(key) { | ||||
|     return get_current_component().$$.context.get(key); | ||||
| } | ||||
|  | ||||
| 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); | ||||
| } | ||||
| // flush() calls callbacks in this order: | ||||
| // 1. All beforeUpdate callbacks, in order: parents before children | ||||
| // 2. All bind:this callbacks, in reverse order: children before parents. | ||||
| // 3. All afterUpdate callbacks, in order: parents before children. EXCEPT | ||||
| //    for afterUpdates called during the initial onMount, which are called in | ||||
| //    reverse order: children before parents. | ||||
| // Since callbacks might update component values, which could trigger another | ||||
| // call to flush(), the following steps guard against this: | ||||
| // 1. During beforeUpdate, any updated components will be added to the | ||||
| //    dirty_components array and will cause a reentrant call to flush(). Because | ||||
| //    the flush index is kept outside the function, the reentrant call will pick | ||||
| //    up where the earlier call left off and go through all dirty components. The | ||||
| //    current_component value is saved and restored so that the reentrant call will | ||||
| //    not interfere with the "parent" flush() call. | ||||
| // 2. bind:this callbacks cannot trigger new flush() calls. | ||||
| // 3. During afterUpdate, any updated components will NOT have their afterUpdate | ||||
| //    callback called a second time; the seen_callbacks set, outside the flush() | ||||
| //    function, guarantees this behavior. | ||||
| const seen_callbacks = new Set(); | ||||
| let flushidx = 0; // Do *not* move this inside the flush() function | ||||
| function flush() { | ||||
|     const saved_component = current_component; | ||||
|     do { | ||||
|         // first, call beforeUpdate functions | ||||
|         // and update components | ||||
|         while (flushidx < dirty_components.length) { | ||||
|             const component = dirty_components[flushidx]; | ||||
|             flushidx++; | ||||
|             set_current_component(component); | ||||
|             update(component.$$); | ||||
|         } | ||||
|         set_current_component(null); | ||||
|         dirty_components.length = 0; | ||||
|         flushidx = 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; | ||||
|     seen_callbacks.clear(); | ||||
|     set_current_component(saved_component); | ||||
| } | ||||
| 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(); | ||||
| function transition_in(block, local) { | ||||
|     if (block && block.i) { | ||||
|         outroing.delete(block); | ||||
|         block.i(local); | ||||
|     } | ||||
| } | ||||
|  | ||||
| const globals = (typeof window !== 'undefined' | ||||
|     ? window | ||||
|     : typeof globalThis !== 'undefined' | ||||
|         ? globalThis | ||||
|         : global); | ||||
| function mount_component(component, target, anchor, customElement) { | ||||
|     const { fragment, after_update } = component.$$; | ||||
|     fragment && fragment.m(target, anchor); | ||||
|     if (!customElement) { | ||||
|         // onMount happens before the initial afterUpdate | ||||
|         add_render_callback(() => { | ||||
|             const new_on_destroy = component.$$.on_mount.map(run).filter(is_function); | ||||
|             // if the component was destroyed immediately | ||||
|             // it will update the `$$.on_destroy` reference to `null`. | ||||
|             // the destructured on_destroy may still reference to the old array | ||||
|             if (component.$$.on_destroy) { | ||||
|                 component.$$.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, append_styles, dirty = [-1]) { | ||||
|     const parent_component = current_component; | ||||
|     set_current_component(component); | ||||
|     const $$ = component.$$ = { | ||||
|         fragment: null, | ||||
|         ctx: [], | ||||
|         // state | ||||
|         props, | ||||
|         update: noop, | ||||
|         not_equal, | ||||
|         bound: blank_object(), | ||||
|         // lifecycle | ||||
|         on_mount: [], | ||||
|         on_destroy: [], | ||||
|         on_disconnect: [], | ||||
|         before_update: [], | ||||
|         after_update: [], | ||||
|         context: new Map(options.context || (parent_component ? parent_component.$$.context : [])), | ||||
|         // everything else | ||||
|         callbacks: blank_object(), | ||||
|         dirty, | ||||
|         skip_bound: false, | ||||
|         root: options.target || parent_component.$$.root | ||||
|     }; | ||||
|     append_styles && append_styles($$.root); | ||||
|     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); | ||||
| } | ||||
| let SvelteElement; | ||||
| if (typeof HTMLElement === 'function') { | ||||
|     SvelteElement = class extends HTMLElement { | ||||
|         constructor() { | ||||
|             super(); | ||||
|             this.attachShadow({ mode: 'open' }); | ||||
|         } | ||||
|         connectedCallback() { | ||||
|             const { on_mount } = this.$$; | ||||
|             this.$$.on_disconnect = on_mount.map(run).filter(is_function); | ||||
|             // @ts-ignore todo: improve typings | ||||
|             for (const key in this.$$.slotted) { | ||||
|                 // @ts-ignore todo: improve typings | ||||
|                 this.appendChild(this.$$.slotted[key]); | ||||
|             } | ||||
|         } | ||||
|         attributeChangedCallback(attr, _oldValue, newValue) { | ||||
|             this[attr] = newValue; | ||||
|         } | ||||
|         disconnectedCallback() { | ||||
|             run_all(this.$$.on_disconnect); | ||||
|         } | ||||
|         $destroy() { | ||||
|             destroy_component(this, 1); | ||||
|             this.$destroy = noop; | ||||
|         } | ||||
|         $on(type, callback) { | ||||
|             // TODO should this delegate to addEventListener? | ||||
|             if (!is_function(callback)) { | ||||
|                 return noop; | ||||
|             } | ||||
|             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.52.0' }, detail), { bubbles: true })); | ||||
| } | ||||
| 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_each_argument(arg) { | ||||
|     if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) { | ||||
|         let msg = '{#each} only iterates over array-like objects.'; | ||||
|         if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) { | ||||
|             msg += ' You can use a spread to convert this iterable into an array.'; | ||||
|         } | ||||
|         throw new Error(msg); | ||||
|     } | ||||
| } | ||||
| 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}".`); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| export { setContext as A, run_all as B, svg_element as C, empty as D, HtmlTag as H, SvelteElement as S, attribute_to_object as a, insert_dev as b, validate_slots as c, dispatch_dev as d, element as e, space as f, add_location as g, attr_dev as h, init as i, src_url_equal as j, set_custom_element_data as k, append_dev as l, detach_dev as m, noop as n, onMount as o, destroy_each as p, flush as q, globals as r, safe_not_equal as s, text as t, binding_callbacks as u, validate_each_argument as v, set_style as w, listen_dev as x, set_data_dev as y, getContext as z }; | ||||
| @@ -1,53 +0,0 @@ | ||||
|  | ||||
| (function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document); | ||||
| import { n as noop, s as safe_not_equal } from './index-5e6510e7.js'; | ||||
|  | ||||
| const subscriber_queue = []; | ||||
| /** | ||||
|  * Create a `Writable` store that allows both updating and reading by subscription. | ||||
|  * @param {*=}value initial value | ||||
|  * @param {StartStopNotifier=}start start and stop notifications for subscriptions | ||||
|  */ | ||||
| function writable(value, start = noop) { | ||||
|     let stop; | ||||
|     const subscribers = new Set(); | ||||
|     function set(new_value) { | ||||
|         if (safe_not_equal(value, new_value)) { | ||||
|             value = new_value; | ||||
|             if (stop) { // store is ready | ||||
|                 const run_queue = !subscriber_queue.length; | ||||
|                 for (const subscriber of subscribers) { | ||||
|                     subscriber[1](); | ||||
|                     subscriber_queue.push(subscriber, value); | ||||
|                 } | ||||
|                 if (run_queue) { | ||||
|                     for (let i = 0; i < subscriber_queue.length; i += 2) { | ||||
|                         subscriber_queue[i][0](subscriber_queue[i + 1]); | ||||
|                     } | ||||
|                     subscriber_queue.length = 0; | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|     function update(fn) { | ||||
|         set(fn(value)); | ||||
|     } | ||||
|     function subscribe(run, invalidate = noop) { | ||||
|         const subscriber = [run, invalidate]; | ||||
|         subscribers.add(subscriber); | ||||
|         if (subscribers.size === 1) { | ||||
|             stop = start(set) || noop; | ||||
|         } | ||||
|         run(value); | ||||
|         return () => { | ||||
|             subscribers.delete(subscriber); | ||||
|             if (subscribers.size === 0) { | ||||
|                 stop(); | ||||
|                 stop = null; | ||||
|             } | ||||
|         }; | ||||
|     } | ||||
|     return { set, update, subscribe }; | ||||
| } | ||||
|  | ||||
| export { writable as w }; | ||||
| @@ -1 +0,0 @@ | ||||
| import{n,s as t}from"./index-5b685137.js";const e=[];function s(s,o=n){let i;const c=new Set;function f(n){if(t(s,n)&&(s=n,i)){const n=!e.length;for(const n of c)n[1](),e.push(n,s);if(n){for(let n=0;n<e.length;n+=2)e[n][0](e[n+1]);e.length=0}}}return{set:f,update:function(n){f(n(s))},subscribe:function(t,e=n){const r=[t,e];return c.add(r),1===c.size&&(i=o(f)||n),t(s),()=>{c.delete(r),0===c.size&&(i(),i=null)}}}}export{s as w}; | ||||
| @@ -1,445 +0,0 @@ | ||||
|  | ||||
| (function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document); | ||||
| function noop() { } | ||||
| 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'); | ||||
| } | ||||
| let src_url_equal_anchor; | ||||
| function src_url_equal(element_src, url) { | ||||
|     if (!src_url_equal_anchor) { | ||||
|         src_url_equal_anchor = document.createElement('a'); | ||||
|     } | ||||
|     src_url_equal_anchor.href = url; | ||||
|     return element_src === src_url_equal_anchor.href; | ||||
| } | ||||
| function is_empty(obj) { | ||||
|     return Object.keys(obj).length === 0; | ||||
| } | ||||
| 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 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 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 children(element) { | ||||
|     return Array.from(element.childNodes); | ||||
| } | ||||
| function set_style(node, key, value, important) { | ||||
|     if (value === null) { | ||||
|         node.style.removeProperty(key); | ||||
|     } | ||||
|     else { | ||||
|         node.style.setProperty(key, value, important ? 'important' : ''); | ||||
|     } | ||||
| } | ||||
| function custom_event(type, detail, { bubbles = false, cancelable = false } = {}) { | ||||
|     const e = document.createEvent('CustomEvent'); | ||||
|     e.initCustomEvent(type, bubbles, cancelable, detail); | ||||
|     return e; | ||||
| } | ||||
| function attribute_to_object(attributes) { | ||||
|     const result = {}; | ||||
|     for (const attribute of attributes) { | ||||
|         result[attribute.name] = attribute.value; | ||||
|     } | ||||
|     return result; | ||||
| } | ||||
|  | ||||
| let current_component; | ||||
| function set_current_component(component) { | ||||
|     current_component = component; | ||||
| } | ||||
| function get_current_component() { | ||||
|     if (!current_component) | ||||
|         throw new Error('Function called outside component initialization'); | ||||
|     return current_component; | ||||
| } | ||||
| /** | ||||
|  * The `onMount` function schedules a callback to run as soon as the component has been mounted to the DOM. | ||||
|  * It must be called during the component's initialisation (but doesn't need to live *inside* the component; | ||||
|  * it can be called from an external module). | ||||
|  * | ||||
|  * `onMount` does not run inside a [server-side component](/docs#run-time-server-side-component-api). | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-onmount | ||||
|  */ | ||||
| function onMount(fn) { | ||||
|     get_current_component().$$.on_mount.push(fn); | ||||
| } | ||||
| /** | ||||
|  * Associates an arbitrary `context` object with the current component and the specified `key` | ||||
|  * and returns that object. The context is then available to children of the component | ||||
|  * (including slotted content) with `getContext`. | ||||
|  * | ||||
|  * Like lifecycle functions, this must be called during component initialisation. | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-setcontext | ||||
|  */ | ||||
| function setContext(key, context) { | ||||
|     get_current_component().$$.context.set(key, context); | ||||
|     return context; | ||||
| } | ||||
| /** | ||||
|  * Retrieves the context that belongs to the closest parent component with the specified `key`. | ||||
|  * Must be called during component initialisation. | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-getcontext | ||||
|  */ | ||||
| function getContext(key) { | ||||
|     return get_current_component().$$.context.get(key); | ||||
| } | ||||
|  | ||||
| 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); | ||||
| } | ||||
| // flush() calls callbacks in this order: | ||||
| // 1. All beforeUpdate callbacks, in order: parents before children | ||||
| // 2. All bind:this callbacks, in reverse order: children before parents. | ||||
| // 3. All afterUpdate callbacks, in order: parents before children. EXCEPT | ||||
| //    for afterUpdates called during the initial onMount, which are called in | ||||
| //    reverse order: children before parents. | ||||
| // Since callbacks might update component values, which could trigger another | ||||
| // call to flush(), the following steps guard against this: | ||||
| // 1. During beforeUpdate, any updated components will be added to the | ||||
| //    dirty_components array and will cause a reentrant call to flush(). Because | ||||
| //    the flush index is kept outside the function, the reentrant call will pick | ||||
| //    up where the earlier call left off and go through all dirty components. The | ||||
| //    current_component value is saved and restored so that the reentrant call will | ||||
| //    not interfere with the "parent" flush() call. | ||||
| // 2. bind:this callbacks cannot trigger new flush() calls. | ||||
| // 3. During afterUpdate, any updated components will NOT have their afterUpdate | ||||
| //    callback called a second time; the seen_callbacks set, outside the flush() | ||||
| //    function, guarantees this behavior. | ||||
| const seen_callbacks = new Set(); | ||||
| let flushidx = 0; // Do *not* move this inside the flush() function | ||||
| function flush() { | ||||
|     const saved_component = current_component; | ||||
|     do { | ||||
|         // first, call beforeUpdate functions | ||||
|         // and update components | ||||
|         while (flushidx < dirty_components.length) { | ||||
|             const component = dirty_components[flushidx]; | ||||
|             flushidx++; | ||||
|             set_current_component(component); | ||||
|             update(component.$$); | ||||
|         } | ||||
|         set_current_component(null); | ||||
|         dirty_components.length = 0; | ||||
|         flushidx = 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; | ||||
|     seen_callbacks.clear(); | ||||
|     set_current_component(saved_component); | ||||
| } | ||||
| 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(); | ||||
| function transition_in(block, local) { | ||||
|     if (block && block.i) { | ||||
|         outroing.delete(block); | ||||
|         block.i(local); | ||||
|     } | ||||
| } | ||||
|  | ||||
| const globals = (typeof window !== 'undefined' | ||||
|     ? window | ||||
|     : typeof globalThis !== 'undefined' | ||||
|         ? globalThis | ||||
|         : global); | ||||
| function mount_component(component, target, anchor, customElement) { | ||||
|     const { fragment, after_update } = component.$$; | ||||
|     fragment && fragment.m(target, anchor); | ||||
|     if (!customElement) { | ||||
|         // onMount happens before the initial afterUpdate | ||||
|         add_render_callback(() => { | ||||
|             const new_on_destroy = component.$$.on_mount.map(run).filter(is_function); | ||||
|             // if the component was destroyed immediately | ||||
|             // it will update the `$$.on_destroy` reference to `null`. | ||||
|             // the destructured on_destroy may still reference to the old array | ||||
|             if (component.$$.on_destroy) { | ||||
|                 component.$$.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, append_styles, dirty = [-1]) { | ||||
|     const parent_component = current_component; | ||||
|     set_current_component(component); | ||||
|     const $$ = component.$$ = { | ||||
|         fragment: null, | ||||
|         ctx: [], | ||||
|         // state | ||||
|         props, | ||||
|         update: noop, | ||||
|         not_equal, | ||||
|         bound: blank_object(), | ||||
|         // lifecycle | ||||
|         on_mount: [], | ||||
|         on_destroy: [], | ||||
|         on_disconnect: [], | ||||
|         before_update: [], | ||||
|         after_update: [], | ||||
|         context: new Map(options.context || (parent_component ? parent_component.$$.context : [])), | ||||
|         // everything else | ||||
|         callbacks: blank_object(), | ||||
|         dirty, | ||||
|         skip_bound: false, | ||||
|         root: options.target || parent_component.$$.root | ||||
|     }; | ||||
|     append_styles && append_styles($$.root); | ||||
|     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); | ||||
| } | ||||
| let SvelteElement; | ||||
| if (typeof HTMLElement === 'function') { | ||||
|     SvelteElement = class extends HTMLElement { | ||||
|         constructor() { | ||||
|             super(); | ||||
|             this.attachShadow({ mode: 'open' }); | ||||
|         } | ||||
|         connectedCallback() { | ||||
|             const { on_mount } = this.$$; | ||||
|             this.$$.on_disconnect = on_mount.map(run).filter(is_function); | ||||
|             // @ts-ignore todo: improve typings | ||||
|             for (const key in this.$$.slotted) { | ||||
|                 // @ts-ignore todo: improve typings | ||||
|                 this.appendChild(this.$$.slotted[key]); | ||||
|             } | ||||
|         } | ||||
|         attributeChangedCallback(attr, _oldValue, newValue) { | ||||
|             this[attr] = newValue; | ||||
|         } | ||||
|         disconnectedCallback() { | ||||
|             run_all(this.$$.on_disconnect); | ||||
|         } | ||||
|         $destroy() { | ||||
|             destroy_component(this, 1); | ||||
|             this.$destroy = noop; | ||||
|         } | ||||
|         $on(type, callback) { | ||||
|             // TODO should this delegate to addEventListener? | ||||
|             if (!is_function(callback)) { | ||||
|                 return noop; | ||||
|             } | ||||
|             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.52.0' }, detail), { bubbles: true })); | ||||
| } | ||||
| 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_each_argument(arg) { | ||||
|     if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) { | ||||
|         let msg = '{#each} only iterates over array-like objects.'; | ||||
|         if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) { | ||||
|             msg += ' You can use a spread to convert this iterable into an array.'; | ||||
|         } | ||||
|         throw new Error(msg); | ||||
|     } | ||||
| } | ||||
| 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}".`); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| export { run_all as A, svg_element as B, SvelteElement as S, attribute_to_object as a, insert_dev as b, space as c, dispatch_dev as d, element as e, add_location as f, attr_dev as g, append_dev as h, init as i, detach_dev as j, flush as k, validate_each_argument as l, globals as m, noop as n, onMount as o, destroy_each as p, binding_callbacks as q, set_style as r, safe_not_equal as s, text as t, listen_dev as u, validate_slots as v, set_data_dev as w, getContext as x, setContext as y, src_url_equal as z }; | ||||
| @@ -1 +0,0 @@ | ||||
| function t(){}function n(t){return t()}function e(){return Object.create(null)}function o(t){t.forEach(n)}function s(t){return"function"==typeof t}function r(t,n){return t!=t?n==n:t!==n||t&&"object"==typeof t||"function"==typeof t}let i,c;function a(t,n){return i||(i=document.createElement("a")),i.href=n,t===i.href}function u(n,e,o){n.$$.on_destroy.push(function(n,...e){if(null==n)return t;const o=n.subscribe(...e);return o.unsubscribe?()=>o.unsubscribe():o}(e,o))}function f(t,n){t.appendChild(n)}function l(t,n,e){t.insertBefore(n,e||null)}function h(t){t.parentNode.removeChild(t)}function d(t,n){for(let e=0;e<t.length;e+=1)t[e]&&t[e].d(n)}function $(t){return document.createElement(t)}function p(t){return document.createTextNode(t)}function m(){return p(" ")}function g(){return p("")}function b(t,n,e,o){return t.addEventListener(n,e,o),()=>t.removeEventListener(n,e,o)}function y(t,n,e){null==e?t.removeAttribute(n):t.getAttribute(n)!==e&&t.setAttribute(n,e)}function _(t,n,e){n in t?t[n]="boolean"==typeof t[n]&&""===e||e:y(t,n,e)}function x(t,n){n=""+n,t.wholeText!==n&&(t.data=n)}function v(t,n,e,o){null===e?t.style.removeProperty(n):t.style.setProperty(n,e,o?"important":"")}class E{constructor(t=!1){this.is_svg=!1,this.is_svg=t,this.e=this.n=null}c(t){this.h(t)}m(t,n,e=null){var o;this.e||(this.is_svg?this.e=(o=n.nodeName,document.createElementNS("http://www.w3.org/2000/svg",o)):this.e=$(n.nodeName),this.t=n,this.c(t)),this.i(e)}h(t){this.e.innerHTML=t,this.n=Array.from(this.e.childNodes)}i(t){for(let n=0;n<this.n.length;n+=1)l(this.t,this.n[n],t)}p(t){this.d(),this.h(t),this.i(this.a)}d(){this.n.forEach(h)}}function w(t){const n={};for(const e of t)n[e.name]=e.value;return n}function k(t){c=t}function C(){if(!c)throw new Error("Function called outside component initialization");return c}function N(t){C().$$.on_mount.push(t)}function A(t){return C().$$.context.get(t)}const L=[],S=[],T=[],j=[],H=Promise.resolve();let M=!1;function O(t){T.push(t)}const P=new Set;let q=0;function z(){const t=c;do{for(;q<L.length;){const t=L[q];q++,k(t),B(t.$$)}for(k(null),L.length=0,q=0;S.length;)S.pop()();for(let t=0;t<T.length;t+=1){const n=T[t];P.has(n)||(P.add(n),n())}T.length=0}while(L.length);for(;j.length;)j.pop()();M=!1,P.clear(),k(t)}function B(t){if(null!==t.fragment){t.update(),o(t.before_update);const n=t.dirty;t.dirty=[-1],t.fragment&&t.fragment.p(t.ctx,n),t.after_update.forEach(O)}}const F=new Set;function D(t,n){-1===t.$$.dirty[0]&&(L.push(t),M||(M=!0,H.then(z)),t.$$.dirty.fill(0)),t.$$.dirty[n/31|0]|=1<<n%31}function G(r,i,a,u,f,l,d,$=[-1]){const p=c;k(r);const m=r.$$={fragment:null,ctx:[],props:l,update:t,not_equal:f,bound:e(),on_mount:[],on_destroy:[],on_disconnect:[],before_update:[],after_update:[],context:new Map(i.context||(p?p.$$.context:[])),callbacks:e(),dirty:$,skip_bound:!1,root:i.target||p.$$.root};d&&d(m.root);let g=!1;if(m.ctx=a?a(r,i.props||{},((t,n,...e)=>{const o=e.length?e[0]:n;return m.ctx&&f(m.ctx[t],m.ctx[t]=o)&&(!m.skip_bound&&m.bound[t]&&m.bound[t](o),g&&D(r,t)),n})):[],m.update(),g=!0,o(m.before_update),m.fragment=!!u&&u(m.ctx),i.target){if(i.hydrate){const t=function(t){return Array.from(t.childNodes)}(i.target);m.fragment&&m.fragment.l(t),t.forEach(h)}else m.fragment&&m.fragment.c();i.intro&&((b=r.$$.fragment)&&b.i&&(F.delete(b),b.i(y))),function(t,e,r,i){const{fragment:c,after_update:a}=t.$$;c&&c.m(e,r),i||O((()=>{const e=t.$$.on_mount.map(n).filter(s);t.$$.on_destroy?t.$$.on_destroy.push(...e):o(e),t.$$.on_mount=[]})),a.forEach(O)}(r,i.target,i.anchor,i.customElement),z()}var b,y;k(p)}let I;"function"==typeof HTMLElement&&(I=class extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"})}connectedCallback(){const{on_mount:t}=this.$$;this.$$.on_disconnect=t.map(n).filter(s);for(const t in this.$$.slotted)this.appendChild(this.$$.slotted[t])}attributeChangedCallback(t,n,e){this[t]=e}disconnectedCallback(){o(this.$$.on_disconnect)}$destroy(){!function(t,n){const e=t.$$;null!==e.fragment&&(o(e.on_destroy),e.fragment&&e.fragment.d(n),e.on_destroy=e.fragment=null,e.ctx=[])}(this,1),this.$destroy=t}$on(n,e){if(!s(e))return t;const o=this.$$.callbacks[n]||(this.$$.callbacks[n]=[]);return o.push(e),()=>{const t=o.indexOf(e);-1!==t&&o.splice(t,1)}}$set(t){var n;this.$$set&&(n=t,0!==Object.keys(n).length)&&(this.$$.skip_bound=!0,this.$$set(t),this.$$.skip_bound=!1)}});export{E as H,I as S,w as a,l as b,u as c,h as d,g as e,S as f,$ as g,m as h,G as i,y as j,a as k,_ as l,f as m,t as n,N as o,b as p,x as q,o as r,r as s,p as t,d as u,z as v,v as w,A as x,s as y}; | ||||
| @@ -1,524 +0,0 @@ | ||||
|  | ||||
| (function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document); | ||||
| function noop() { } | ||||
| 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'); | ||||
| } | ||||
| let src_url_equal_anchor; | ||||
| function src_url_equal(element_src, url) { | ||||
|     if (!src_url_equal_anchor) { | ||||
|         src_url_equal_anchor = document.createElement('a'); | ||||
|     } | ||||
|     src_url_equal_anchor.href = url; | ||||
|     return element_src === src_url_equal_anchor.href; | ||||
| } | ||||
| function is_empty(obj) { | ||||
|     return Object.keys(obj).length === 0; | ||||
| } | ||||
| function validate_store(store, name) { | ||||
|     if (store != null && typeof store.subscribe !== 'function') { | ||||
|         throw new Error(`'${name}' is not a store with a 'subscribe' method`); | ||||
|     } | ||||
| } | ||||
| function subscribe(store, ...callbacks) { | ||||
|     if (store == null) { | ||||
|         return noop; | ||||
|     } | ||||
|     const unsub = store.subscribe(...callbacks); | ||||
|     return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub; | ||||
| } | ||||
| function component_subscribe(component, store, callback) { | ||||
|     component.$$.on_destroy.push(subscribe(store, callback)); | ||||
| } | ||||
| 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 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 attr(node, attribute, value) { | ||||
|     if (value == null) | ||||
|         node.removeAttribute(attribute); | ||||
|     else if (node.getAttribute(attribute) !== value) | ||||
|         node.setAttribute(attribute, value); | ||||
| } | ||||
| function set_custom_element_data(node, prop, value) { | ||||
|     if (prop in node) { | ||||
|         node[prop] = typeof node[prop] === 'boolean' && value === '' ? true : value; | ||||
|     } | ||||
|     else { | ||||
|         attr(node, prop, value); | ||||
|     } | ||||
| } | ||||
| function children(element) { | ||||
|     return Array.from(element.childNodes); | ||||
| } | ||||
| function set_input_value(input, value) { | ||||
|     input.value = value == null ? '' : value; | ||||
| } | ||||
| function set_style(node, key, value, important) { | ||||
|     if (value === null) { | ||||
|         node.style.removeProperty(key); | ||||
|     } | ||||
|     else { | ||||
|         node.style.setProperty(key, value, important ? 'important' : ''); | ||||
|     } | ||||
| } | ||||
| function custom_event(type, detail, { bubbles = false, cancelable = false } = {}) { | ||||
|     const e = document.createEvent('CustomEvent'); | ||||
|     e.initCustomEvent(type, bubbles, cancelable, detail); | ||||
|     return e; | ||||
| } | ||||
| class HtmlTag { | ||||
|     constructor(is_svg = false) { | ||||
|         this.is_svg = false; | ||||
|         this.is_svg = is_svg; | ||||
|         this.e = this.n = null; | ||||
|     } | ||||
|     c(html) { | ||||
|         this.h(html); | ||||
|     } | ||||
|     m(html, target, anchor = null) { | ||||
|         if (!this.e) { | ||||
|             if (this.is_svg) | ||||
|                 this.e = svg_element(target.nodeName); | ||||
|             else | ||||
|                 this.e = element(target.nodeName); | ||||
|             this.t = target; | ||||
|             this.c(html); | ||||
|         } | ||||
|         this.i(anchor); | ||||
|     } | ||||
|     h(html) { | ||||
|         this.e.innerHTML = html; | ||||
|         this.n = Array.from(this.e.childNodes); | ||||
|     } | ||||
|     i(anchor) { | ||||
|         for (let i = 0; i < this.n.length; i += 1) { | ||||
|             insert(this.t, this.n[i], anchor); | ||||
|         } | ||||
|     } | ||||
|     p(html) { | ||||
|         this.d(); | ||||
|         this.h(html); | ||||
|         this.i(this.a); | ||||
|     } | ||||
|     d() { | ||||
|         this.n.forEach(detach); | ||||
|     } | ||||
| } | ||||
| function attribute_to_object(attributes) { | ||||
|     const result = {}; | ||||
|     for (const attribute of attributes) { | ||||
|         result[attribute.name] = attribute.value; | ||||
|     } | ||||
|     return result; | ||||
| } | ||||
|  | ||||
| let current_component; | ||||
| function set_current_component(component) { | ||||
|     current_component = component; | ||||
| } | ||||
| function get_current_component() { | ||||
|     if (!current_component) | ||||
|         throw new Error('Function called outside component initialization'); | ||||
|     return current_component; | ||||
| } | ||||
| /** | ||||
|  * The `onMount` function schedules a callback to run as soon as the component has been mounted to the DOM. | ||||
|  * It must be called during the component's initialisation (but doesn't need to live *inside* the component; | ||||
|  * it can be called from an external module). | ||||
|  * | ||||
|  * `onMount` does not run inside a [server-side component](/docs#run-time-server-side-component-api). | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-onmount | ||||
|  */ | ||||
| function onMount(fn) { | ||||
|     get_current_component().$$.on_mount.push(fn); | ||||
| } | ||||
| /** | ||||
|  * Schedules a callback to run immediately after the component has been updated. | ||||
|  * | ||||
|  * The first time the callback runs will be after the initial `onMount` | ||||
|  */ | ||||
| function afterUpdate(fn) { | ||||
|     get_current_component().$$.after_update.push(fn); | ||||
| } | ||||
| /** | ||||
|  * Associates an arbitrary `context` object with the current component and the specified `key` | ||||
|  * and returns that object. The context is then available to children of the component | ||||
|  * (including slotted content) with `getContext`. | ||||
|  * | ||||
|  * Like lifecycle functions, this must be called during component initialisation. | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-setcontext | ||||
|  */ | ||||
| function setContext(key, context) { | ||||
|     get_current_component().$$.context.set(key, context); | ||||
|     return context; | ||||
| } | ||||
| /** | ||||
|  * Retrieves the context that belongs to the closest parent component with the specified `key`. | ||||
|  * Must be called during component initialisation. | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-getcontext | ||||
|  */ | ||||
| function getContext(key) { | ||||
|     return get_current_component().$$.context.get(key); | ||||
| } | ||||
|  | ||||
| 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); | ||||
| } | ||||
| // flush() calls callbacks in this order: | ||||
| // 1. All beforeUpdate callbacks, in order: parents before children | ||||
| // 2. All bind:this callbacks, in reverse order: children before parents. | ||||
| // 3. All afterUpdate callbacks, in order: parents before children. EXCEPT | ||||
| //    for afterUpdates called during the initial onMount, which are called in | ||||
| //    reverse order: children before parents. | ||||
| // Since callbacks might update component values, which could trigger another | ||||
| // call to flush(), the following steps guard against this: | ||||
| // 1. During beforeUpdate, any updated components will be added to the | ||||
| //    dirty_components array and will cause a reentrant call to flush(). Because | ||||
| //    the flush index is kept outside the function, the reentrant call will pick | ||||
| //    up where the earlier call left off and go through all dirty components. The | ||||
| //    current_component value is saved and restored so that the reentrant call will | ||||
| //    not interfere with the "parent" flush() call. | ||||
| // 2. bind:this callbacks cannot trigger new flush() calls. | ||||
| // 3. During afterUpdate, any updated components will NOT have their afterUpdate | ||||
| //    callback called a second time; the seen_callbacks set, outside the flush() | ||||
| //    function, guarantees this behavior. | ||||
| const seen_callbacks = new Set(); | ||||
| let flushidx = 0; // Do *not* move this inside the flush() function | ||||
| function flush() { | ||||
|     const saved_component = current_component; | ||||
|     do { | ||||
|         // first, call beforeUpdate functions | ||||
|         // and update components | ||||
|         while (flushidx < dirty_components.length) { | ||||
|             const component = dirty_components[flushidx]; | ||||
|             flushidx++; | ||||
|             set_current_component(component); | ||||
|             update(component.$$); | ||||
|         } | ||||
|         set_current_component(null); | ||||
|         dirty_components.length = 0; | ||||
|         flushidx = 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; | ||||
|     seen_callbacks.clear(); | ||||
|     set_current_component(saved_component); | ||||
| } | ||||
| 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(); | ||||
| function transition_in(block, local) { | ||||
|     if (block && block.i) { | ||||
|         outroing.delete(block); | ||||
|         block.i(local); | ||||
|     } | ||||
| } | ||||
|  | ||||
| const globals = (typeof window !== 'undefined' | ||||
|     ? window | ||||
|     : typeof globalThis !== 'undefined' | ||||
|         ? globalThis | ||||
|         : global); | ||||
| function mount_component(component, target, anchor, customElement) { | ||||
|     const { fragment, after_update } = component.$$; | ||||
|     fragment && fragment.m(target, anchor); | ||||
|     if (!customElement) { | ||||
|         // onMount happens before the initial afterUpdate | ||||
|         add_render_callback(() => { | ||||
|             const new_on_destroy = component.$$.on_mount.map(run).filter(is_function); | ||||
|             // if the component was destroyed immediately | ||||
|             // it will update the `$$.on_destroy` reference to `null`. | ||||
|             // the destructured on_destroy may still reference to the old array | ||||
|             if (component.$$.on_destroy) { | ||||
|                 component.$$.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, append_styles, dirty = [-1]) { | ||||
|     const parent_component = current_component; | ||||
|     set_current_component(component); | ||||
|     const $$ = component.$$ = { | ||||
|         fragment: null, | ||||
|         ctx: [], | ||||
|         // state | ||||
|         props, | ||||
|         update: noop, | ||||
|         not_equal, | ||||
|         bound: blank_object(), | ||||
|         // lifecycle | ||||
|         on_mount: [], | ||||
|         on_destroy: [], | ||||
|         on_disconnect: [], | ||||
|         before_update: [], | ||||
|         after_update: [], | ||||
|         context: new Map(options.context || (parent_component ? parent_component.$$.context : [])), | ||||
|         // everything else | ||||
|         callbacks: blank_object(), | ||||
|         dirty, | ||||
|         skip_bound: false, | ||||
|         root: options.target || parent_component.$$.root | ||||
|     }; | ||||
|     append_styles && append_styles($$.root); | ||||
|     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); | ||||
| } | ||||
| let SvelteElement; | ||||
| if (typeof HTMLElement === 'function') { | ||||
|     SvelteElement = class extends HTMLElement { | ||||
|         constructor() { | ||||
|             super(); | ||||
|             this.attachShadow({ mode: 'open' }); | ||||
|         } | ||||
|         connectedCallback() { | ||||
|             const { on_mount } = this.$$; | ||||
|             this.$$.on_disconnect = on_mount.map(run).filter(is_function); | ||||
|             // @ts-ignore todo: improve typings | ||||
|             for (const key in this.$$.slotted) { | ||||
|                 // @ts-ignore todo: improve typings | ||||
|                 this.appendChild(this.$$.slotted[key]); | ||||
|             } | ||||
|         } | ||||
|         attributeChangedCallback(attr, _oldValue, newValue) { | ||||
|             this[attr] = newValue; | ||||
|         } | ||||
|         disconnectedCallback() { | ||||
|             run_all(this.$$.on_disconnect); | ||||
|         } | ||||
|         $destroy() { | ||||
|             destroy_component(this, 1); | ||||
|             this.$destroy = noop; | ||||
|         } | ||||
|         $on(type, callback) { | ||||
|             // TODO should this delegate to addEventListener? | ||||
|             if (!is_function(callback)) { | ||||
|                 return noop; | ||||
|             } | ||||
|             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.52.0' }, detail), { bubbles: true })); | ||||
| } | ||||
| 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 prop_dev(node, property, value) { | ||||
|     node[property] = value; | ||||
|     dispatch_dev('SvelteDOMSetProperty', { node, property, 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_each_argument(arg) { | ||||
|     if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) { | ||||
|         let msg = '{#each} only iterates over array-like objects.'; | ||||
|         if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) { | ||||
|             msg += ' You can use a spread to convert this iterable into an array.'; | ||||
|         } | ||||
|         throw new Error(msg); | ||||
|     } | ||||
| } | ||||
| 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}".`); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| export { set_custom_element_data as A, validate_each_argument as B, text as C, set_data_dev as D, destroy_each as E, prop_dev as F, set_style as G, svg_element as H, HtmlTag as I, afterUpdate as J, set_input_value as K, SvelteElement as S, attribute_to_object as a, insert_dev as b, setContext as c, dispatch_dev as d, globals as e, element as f, getContext as g, space as h, init as i, add_location as j, attr_dev as k, append_dev as l, listen_dev as m, noop as n, onMount as o, detach_dev as p, binding_callbacks as q, run_all as r, safe_not_equal as s, flush as t, is_function as u, validate_slots as v, validate_store as w, component_subscribe as x, empty as y, src_url_equal as z }; | ||||
| @@ -1 +0,0 @@ | ||||
| function t(){}function n(t){return t()}function e(){return Object.create(null)}function o(t){t.forEach(n)}function s(t){return"function"==typeof t}function r(t,n){return t!=t?n==n:t!==n||t&&"object"==typeof t||"function"==typeof t}let i,c;function a(t,n){return i||(i=document.createElement("a")),i.href=n,t===i.href}function u(t,n){t.appendChild(n)}function f(t,n,e){t.insertBefore(n,e||null)}function l(t){t.parentNode.removeChild(t)}function h(t,n){for(let e=0;e<t.length;e+=1)t[e]&&t[e].d(n)}function d(t){return document.createElement(t)}function $(t){return document.createTextNode(t)}function p(){return $(" ")}function m(){return $("")}function g(t,n,e,o){return t.addEventListener(n,e,o),()=>t.removeEventListener(n,e,o)}function _(t,n,e){null==e?t.removeAttribute(n):t.getAttribute(n)!==e&&t.setAttribute(n,e)}function y(t,n,e){n in t?t[n]="boolean"==typeof t[n]&&""===e||e:_(t,n,e)}function b(t,n){n=""+n,t.wholeText!==n&&(t.data=n)}function x(t,n,e,o){null===e?t.style.removeProperty(n):t.style.setProperty(n,e,o?"important":"")}class v{constructor(t=!1){this.is_svg=!1,this.is_svg=t,this.e=this.n=null}c(t){this.h(t)}m(t,n,e=null){var o;this.e||(this.is_svg?this.e=(o=n.nodeName,document.createElementNS("http://www.w3.org/2000/svg",o)):this.e=d(n.nodeName),this.t=n,this.c(t)),this.i(e)}h(t){this.e.innerHTML=t,this.n=Array.from(this.e.childNodes)}i(t){for(let n=0;n<this.n.length;n+=1)f(this.t,this.n[n],t)}p(t){this.d(),this.h(t),this.i(this.a)}d(){this.n.forEach(l)}}function E(t){const n={};for(const e of t)n[e.name]=e.value;return n}function w(t){c=t}function k(){if(!c)throw new Error("Function called outside component initialization");return c}function C(t){k().$$.on_mount.push(t)}function N(t){return k().$$.context.get(t)}const A=[],L=[],S=[],T=[],j=Promise.resolve();let H=!1;function M(t){S.push(t)}const O=new Set;let P=0;function q(){const t=c;do{for(;P<A.length;){const t=A[P];P++,w(t),z(t.$$)}for(w(null),A.length=0,P=0;L.length;)L.pop()();for(let t=0;t<S.length;t+=1){const n=S[t];O.has(n)||(O.add(n),n())}S.length=0}while(A.length);for(;T.length;)T.pop()();H=!1,O.clear(),w(t)}function z(t){if(null!==t.fragment){t.update(),o(t.before_update);const n=t.dirty;t.dirty=[-1],t.fragment&&t.fragment.p(t.ctx,n),t.after_update.forEach(M)}}const B=new Set;function F(t,n){-1===t.$$.dirty[0]&&(A.push(t),H||(H=!0,j.then(q)),t.$$.dirty.fill(0)),t.$$.dirty[n/31|0]|=1<<n%31}function D(r,i,a,u,f,h,d,$=[-1]){const p=c;w(r);const m=r.$$={fragment:null,ctx:[],props:h,update:t,not_equal:f,bound:e(),on_mount:[],on_destroy:[],on_disconnect:[],before_update:[],after_update:[],context:new Map(i.context||(p?p.$$.context:[])),callbacks:e(),dirty:$,skip_bound:!1,root:i.target||p.$$.root};d&&d(m.root);let g=!1;if(m.ctx=a?a(r,i.props||{},((t,n,...e)=>{const o=e.length?e[0]:n;return m.ctx&&f(m.ctx[t],m.ctx[t]=o)&&(!m.skip_bound&&m.bound[t]&&m.bound[t](o),g&&F(r,t)),n})):[],m.update(),g=!0,o(m.before_update),m.fragment=!!u&&u(m.ctx),i.target){if(i.hydrate){const t=function(t){return Array.from(t.childNodes)}(i.target);m.fragment&&m.fragment.l(t),t.forEach(l)}else m.fragment&&m.fragment.c();i.intro&&((_=r.$$.fragment)&&_.i&&(B.delete(_),_.i(y))),function(t,e,r,i){const{fragment:c,after_update:a}=t.$$;c&&c.m(e,r),i||M((()=>{const e=t.$$.on_mount.map(n).filter(s);t.$$.on_destroy?t.$$.on_destroy.push(...e):o(e),t.$$.on_mount=[]})),a.forEach(M)}(r,i.target,i.anchor,i.customElement),q()}var _,y;w(p)}let G;"function"==typeof HTMLElement&&(G=class extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"})}connectedCallback(){const{on_mount:t}=this.$$;this.$$.on_disconnect=t.map(n).filter(s);for(const t in this.$$.slotted)this.appendChild(this.$$.slotted[t])}attributeChangedCallback(t,n,e){this[t]=e}disconnectedCallback(){o(this.$$.on_disconnect)}$destroy(){!function(t,n){const e=t.$$;null!==e.fragment&&(o(e.on_destroy),e.fragment&&e.fragment.d(n),e.on_destroy=e.fragment=null,e.ctx=[])}(this,1),this.$destroy=t}$on(n,e){if(!s(e))return t;const o=this.$$.callbacks[n]||(this.$$.callbacks[n]=[]);return o.push(e),()=>{const t=o.indexOf(e);-1!==t&&o.splice(t,1)}}$set(t){var n;this.$$set&&(n=t,0!==Object.keys(n).length)&&(this.$$.skip_bound=!0,this.$$set(t),this.$$.skip_bound=!1)}});export{v as H,G as S,E as a,f as b,p as c,_ as d,d as e,a as f,u as g,l as h,D as i,h as j,y as k,q as l,x as m,t as n,C as o,g as p,b as q,L as r,r as s,$ as t,N as u,o as v,m as w,s as x}; | ||||
| @@ -1,509 +0,0 @@ | ||||
|  | ||||
| (function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document); | ||||
| function noop() { } | ||||
| 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'); | ||||
| } | ||||
| let src_url_equal_anchor; | ||||
| function src_url_equal(element_src, url) { | ||||
|     if (!src_url_equal_anchor) { | ||||
|         src_url_equal_anchor = document.createElement('a'); | ||||
|     } | ||||
|     src_url_equal_anchor.href = url; | ||||
|     return element_src === src_url_equal_anchor.href; | ||||
| } | ||||
| function is_empty(obj) { | ||||
|     return Object.keys(obj).length === 0; | ||||
| } | ||||
| function validate_store(store, name) { | ||||
|     if (store != null && typeof store.subscribe !== 'function') { | ||||
|         throw new Error(`'${name}' is not a store with a 'subscribe' method`); | ||||
|     } | ||||
| } | ||||
| function subscribe(store, ...callbacks) { | ||||
|     if (store == null) { | ||||
|         return noop; | ||||
|     } | ||||
|     const unsub = store.subscribe(...callbacks); | ||||
|     return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub; | ||||
| } | ||||
| function component_subscribe(component, store, callback) { | ||||
|     component.$$.on_destroy.push(subscribe(store, callback)); | ||||
| } | ||||
| 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 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 attr(node, attribute, value) { | ||||
|     if (value == null) | ||||
|         node.removeAttribute(attribute); | ||||
|     else if (node.getAttribute(attribute) !== value) | ||||
|         node.setAttribute(attribute, value); | ||||
| } | ||||
| function set_custom_element_data(node, prop, value) { | ||||
|     if (prop in node) { | ||||
|         node[prop] = typeof node[prop] === 'boolean' && value === '' ? true : value; | ||||
|     } | ||||
|     else { | ||||
|         attr(node, prop, value); | ||||
|     } | ||||
| } | ||||
| function children(element) { | ||||
|     return Array.from(element.childNodes); | ||||
| } | ||||
| function set_style(node, key, value, important) { | ||||
|     if (value === null) { | ||||
|         node.style.removeProperty(key); | ||||
|     } | ||||
|     else { | ||||
|         node.style.setProperty(key, value, important ? 'important' : ''); | ||||
|     } | ||||
| } | ||||
| function custom_event(type, detail, { bubbles = false, cancelable = false } = {}) { | ||||
|     const e = document.createEvent('CustomEvent'); | ||||
|     e.initCustomEvent(type, bubbles, cancelable, detail); | ||||
|     return e; | ||||
| } | ||||
| class HtmlTag { | ||||
|     constructor(is_svg = false) { | ||||
|         this.is_svg = false; | ||||
|         this.is_svg = is_svg; | ||||
|         this.e = this.n = null; | ||||
|     } | ||||
|     c(html) { | ||||
|         this.h(html); | ||||
|     } | ||||
|     m(html, target, anchor = null) { | ||||
|         if (!this.e) { | ||||
|             if (this.is_svg) | ||||
|                 this.e = svg_element(target.nodeName); | ||||
|             else | ||||
|                 this.e = element(target.nodeName); | ||||
|             this.t = target; | ||||
|             this.c(html); | ||||
|         } | ||||
|         this.i(anchor); | ||||
|     } | ||||
|     h(html) { | ||||
|         this.e.innerHTML = html; | ||||
|         this.n = Array.from(this.e.childNodes); | ||||
|     } | ||||
|     i(anchor) { | ||||
|         for (let i = 0; i < this.n.length; i += 1) { | ||||
|             insert(this.t, this.n[i], anchor); | ||||
|         } | ||||
|     } | ||||
|     p(html) { | ||||
|         this.d(); | ||||
|         this.h(html); | ||||
|         this.i(this.a); | ||||
|     } | ||||
|     d() { | ||||
|         this.n.forEach(detach); | ||||
|     } | ||||
| } | ||||
| function attribute_to_object(attributes) { | ||||
|     const result = {}; | ||||
|     for (const attribute of attributes) { | ||||
|         result[attribute.name] = attribute.value; | ||||
|     } | ||||
|     return result; | ||||
| } | ||||
|  | ||||
| let current_component; | ||||
| function set_current_component(component) { | ||||
|     current_component = component; | ||||
| } | ||||
| function get_current_component() { | ||||
|     if (!current_component) | ||||
|         throw new Error('Function called outside component initialization'); | ||||
|     return current_component; | ||||
| } | ||||
| /** | ||||
|  * The `onMount` function schedules a callback to run as soon as the component has been mounted to the DOM. | ||||
|  * It must be called during the component's initialisation (but doesn't need to live *inside* the component; | ||||
|  * it can be called from an external module). | ||||
|  * | ||||
|  * `onMount` does not run inside a [server-side component](/docs#run-time-server-side-component-api). | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-onmount | ||||
|  */ | ||||
| function onMount(fn) { | ||||
|     get_current_component().$$.on_mount.push(fn); | ||||
| } | ||||
| /** | ||||
|  * Associates an arbitrary `context` object with the current component and the specified `key` | ||||
|  * and returns that object. The context is then available to children of the component | ||||
|  * (including slotted content) with `getContext`. | ||||
|  * | ||||
|  * Like lifecycle functions, this must be called during component initialisation. | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-setcontext | ||||
|  */ | ||||
| function setContext(key, context) { | ||||
|     get_current_component().$$.context.set(key, context); | ||||
|     return context; | ||||
| } | ||||
| /** | ||||
|  * Retrieves the context that belongs to the closest parent component with the specified `key`. | ||||
|  * Must be called during component initialisation. | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-getcontext | ||||
|  */ | ||||
| function getContext(key) { | ||||
|     return get_current_component().$$.context.get(key); | ||||
| } | ||||
|  | ||||
| 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); | ||||
| } | ||||
| // flush() calls callbacks in this order: | ||||
| // 1. All beforeUpdate callbacks, in order: parents before children | ||||
| // 2. All bind:this callbacks, in reverse order: children before parents. | ||||
| // 3. All afterUpdate callbacks, in order: parents before children. EXCEPT | ||||
| //    for afterUpdates called during the initial onMount, which are called in | ||||
| //    reverse order: children before parents. | ||||
| // Since callbacks might update component values, which could trigger another | ||||
| // call to flush(), the following steps guard against this: | ||||
| // 1. During beforeUpdate, any updated components will be added to the | ||||
| //    dirty_components array and will cause a reentrant call to flush(). Because | ||||
| //    the flush index is kept outside the function, the reentrant call will pick | ||||
| //    up where the earlier call left off and go through all dirty components. The | ||||
| //    current_component value is saved and restored so that the reentrant call will | ||||
| //    not interfere with the "parent" flush() call. | ||||
| // 2. bind:this callbacks cannot trigger new flush() calls. | ||||
| // 3. During afterUpdate, any updated components will NOT have their afterUpdate | ||||
| //    callback called a second time; the seen_callbacks set, outside the flush() | ||||
| //    function, guarantees this behavior. | ||||
| const seen_callbacks = new Set(); | ||||
| let flushidx = 0; // Do *not* move this inside the flush() function | ||||
| function flush() { | ||||
|     const saved_component = current_component; | ||||
|     do { | ||||
|         // first, call beforeUpdate functions | ||||
|         // and update components | ||||
|         while (flushidx < dirty_components.length) { | ||||
|             const component = dirty_components[flushidx]; | ||||
|             flushidx++; | ||||
|             set_current_component(component); | ||||
|             update(component.$$); | ||||
|         } | ||||
|         set_current_component(null); | ||||
|         dirty_components.length = 0; | ||||
|         flushidx = 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; | ||||
|     seen_callbacks.clear(); | ||||
|     set_current_component(saved_component); | ||||
| } | ||||
| 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(); | ||||
| function transition_in(block, local) { | ||||
|     if (block && block.i) { | ||||
|         outroing.delete(block); | ||||
|         block.i(local); | ||||
|     } | ||||
| } | ||||
|  | ||||
| const globals = (typeof window !== 'undefined' | ||||
|     ? window | ||||
|     : typeof globalThis !== 'undefined' | ||||
|         ? globalThis | ||||
|         : global); | ||||
| function mount_component(component, target, anchor, customElement) { | ||||
|     const { fragment, after_update } = component.$$; | ||||
|     fragment && fragment.m(target, anchor); | ||||
|     if (!customElement) { | ||||
|         // onMount happens before the initial afterUpdate | ||||
|         add_render_callback(() => { | ||||
|             const new_on_destroy = component.$$.on_mount.map(run).filter(is_function); | ||||
|             // if the component was destroyed immediately | ||||
|             // it will update the `$$.on_destroy` reference to `null`. | ||||
|             // the destructured on_destroy may still reference to the old array | ||||
|             if (component.$$.on_destroy) { | ||||
|                 component.$$.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, append_styles, dirty = [-1]) { | ||||
|     const parent_component = current_component; | ||||
|     set_current_component(component); | ||||
|     const $$ = component.$$ = { | ||||
|         fragment: null, | ||||
|         ctx: [], | ||||
|         // state | ||||
|         props, | ||||
|         update: noop, | ||||
|         not_equal, | ||||
|         bound: blank_object(), | ||||
|         // lifecycle | ||||
|         on_mount: [], | ||||
|         on_destroy: [], | ||||
|         on_disconnect: [], | ||||
|         before_update: [], | ||||
|         after_update: [], | ||||
|         context: new Map(options.context || (parent_component ? parent_component.$$.context : [])), | ||||
|         // everything else | ||||
|         callbacks: blank_object(), | ||||
|         dirty, | ||||
|         skip_bound: false, | ||||
|         root: options.target || parent_component.$$.root | ||||
|     }; | ||||
|     append_styles && append_styles($$.root); | ||||
|     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); | ||||
| } | ||||
| let SvelteElement; | ||||
| if (typeof HTMLElement === 'function') { | ||||
|     SvelteElement = class extends HTMLElement { | ||||
|         constructor() { | ||||
|             super(); | ||||
|             this.attachShadow({ mode: 'open' }); | ||||
|         } | ||||
|         connectedCallback() { | ||||
|             const { on_mount } = this.$$; | ||||
|             this.$$.on_disconnect = on_mount.map(run).filter(is_function); | ||||
|             // @ts-ignore todo: improve typings | ||||
|             for (const key in this.$$.slotted) { | ||||
|                 // @ts-ignore todo: improve typings | ||||
|                 this.appendChild(this.$$.slotted[key]); | ||||
|             } | ||||
|         } | ||||
|         attributeChangedCallback(attr, _oldValue, newValue) { | ||||
|             this[attr] = newValue; | ||||
|         } | ||||
|         disconnectedCallback() { | ||||
|             run_all(this.$$.on_disconnect); | ||||
|         } | ||||
|         $destroy() { | ||||
|             destroy_component(this, 1); | ||||
|             this.$destroy = noop; | ||||
|         } | ||||
|         $on(type, callback) { | ||||
|             // TODO should this delegate to addEventListener? | ||||
|             if (!is_function(callback)) { | ||||
|                 return noop; | ||||
|             } | ||||
|             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.52.0' }, detail), { bubbles: true })); | ||||
| } | ||||
| 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_each_argument(arg) { | ||||
|     if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) { | ||||
|         let msg = '{#each} only iterates over array-like objects.'; | ||||
|         if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) { | ||||
|             msg += ' You can use a spread to convert this iterable into an array.'; | ||||
|         } | ||||
|         throw new Error(msg); | ||||
|     } | ||||
| } | ||||
| 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}".`); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| export { setContext as A, run_all as B, svg_element as C, empty as D, is_function as E, validate_store as F, component_subscribe as G, HtmlTag as H, SvelteElement as S, attribute_to_object as a, insert_dev as b, validate_slots as c, dispatch_dev as d, element as e, space as f, add_location as g, attr_dev as h, init as i, src_url_equal as j, append_dev as k, detach_dev as l, destroy_each as m, noop as n, onMount as o, set_custom_element_data as p, flush as q, globals as r, safe_not_equal as s, text as t, binding_callbacks as u, validate_each_argument as v, set_style as w, listen_dev as x, set_data_dev as y, getContext as z }; | ||||
| @@ -1,524 +0,0 @@ | ||||
|  | ||||
| (function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document); | ||||
| function noop() { } | ||||
| 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'); | ||||
| } | ||||
| let src_url_equal_anchor; | ||||
| function src_url_equal(element_src, url) { | ||||
|     if (!src_url_equal_anchor) { | ||||
|         src_url_equal_anchor = document.createElement('a'); | ||||
|     } | ||||
|     src_url_equal_anchor.href = url; | ||||
|     return element_src === src_url_equal_anchor.href; | ||||
| } | ||||
| function is_empty(obj) { | ||||
|     return Object.keys(obj).length === 0; | ||||
| } | ||||
| function validate_store(store, name) { | ||||
|     if (store != null && typeof store.subscribe !== 'function') { | ||||
|         throw new Error(`'${name}' is not a store with a 'subscribe' method`); | ||||
|     } | ||||
| } | ||||
| function subscribe(store, ...callbacks) { | ||||
|     if (store == null) { | ||||
|         return noop; | ||||
|     } | ||||
|     const unsub = store.subscribe(...callbacks); | ||||
|     return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub; | ||||
| } | ||||
| function component_subscribe(component, store, callback) { | ||||
|     component.$$.on_destroy.push(subscribe(store, callback)); | ||||
| } | ||||
| 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 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 attr(node, attribute, value) { | ||||
|     if (value == null) | ||||
|         node.removeAttribute(attribute); | ||||
|     else if (node.getAttribute(attribute) !== value) | ||||
|         node.setAttribute(attribute, value); | ||||
| } | ||||
| function set_custom_element_data(node, prop, value) { | ||||
|     if (prop in node) { | ||||
|         node[prop] = typeof node[prop] === 'boolean' && value === '' ? true : value; | ||||
|     } | ||||
|     else { | ||||
|         attr(node, prop, value); | ||||
|     } | ||||
| } | ||||
| function children(element) { | ||||
|     return Array.from(element.childNodes); | ||||
| } | ||||
| function set_input_value(input, value) { | ||||
|     input.value = value == null ? '' : value; | ||||
| } | ||||
| function set_style(node, key, value, important) { | ||||
|     if (value === null) { | ||||
|         node.style.removeProperty(key); | ||||
|     } | ||||
|     else { | ||||
|         node.style.setProperty(key, value, important ? 'important' : ''); | ||||
|     } | ||||
| } | ||||
| function custom_event(type, detail, { bubbles = false, cancelable = false } = {}) { | ||||
|     const e = document.createEvent('CustomEvent'); | ||||
|     e.initCustomEvent(type, bubbles, cancelable, detail); | ||||
|     return e; | ||||
| } | ||||
| class HtmlTag { | ||||
|     constructor(is_svg = false) { | ||||
|         this.is_svg = false; | ||||
|         this.is_svg = is_svg; | ||||
|         this.e = this.n = null; | ||||
|     } | ||||
|     c(html) { | ||||
|         this.h(html); | ||||
|     } | ||||
|     m(html, target, anchor = null) { | ||||
|         if (!this.e) { | ||||
|             if (this.is_svg) | ||||
|                 this.e = svg_element(target.nodeName); | ||||
|             else | ||||
|                 this.e = element(target.nodeName); | ||||
|             this.t = target; | ||||
|             this.c(html); | ||||
|         } | ||||
|         this.i(anchor); | ||||
|     } | ||||
|     h(html) { | ||||
|         this.e.innerHTML = html; | ||||
|         this.n = Array.from(this.e.childNodes); | ||||
|     } | ||||
|     i(anchor) { | ||||
|         for (let i = 0; i < this.n.length; i += 1) { | ||||
|             insert(this.t, this.n[i], anchor); | ||||
|         } | ||||
|     } | ||||
|     p(html) { | ||||
|         this.d(); | ||||
|         this.h(html); | ||||
|         this.i(this.a); | ||||
|     } | ||||
|     d() { | ||||
|         this.n.forEach(detach); | ||||
|     } | ||||
| } | ||||
| function attribute_to_object(attributes) { | ||||
|     const result = {}; | ||||
|     for (const attribute of attributes) { | ||||
|         result[attribute.name] = attribute.value; | ||||
|     } | ||||
|     return result; | ||||
| } | ||||
|  | ||||
| let current_component; | ||||
| function set_current_component(component) { | ||||
|     current_component = component; | ||||
| } | ||||
| function get_current_component() { | ||||
|     if (!current_component) | ||||
|         throw new Error('Function called outside component initialization'); | ||||
|     return current_component; | ||||
| } | ||||
| /** | ||||
|  * The `onMount` function schedules a callback to run as soon as the component has been mounted to the DOM. | ||||
|  * It must be called during the component's initialisation (but doesn't need to live *inside* the component; | ||||
|  * it can be called from an external module). | ||||
|  * | ||||
|  * `onMount` does not run inside a [server-side component](/docs#run-time-server-side-component-api). | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-onmount | ||||
|  */ | ||||
| function onMount(fn) { | ||||
|     get_current_component().$$.on_mount.push(fn); | ||||
| } | ||||
| /** | ||||
|  * Schedules a callback to run immediately after the component has been updated. | ||||
|  * | ||||
|  * The first time the callback runs will be after the initial `onMount` | ||||
|  */ | ||||
| function afterUpdate(fn) { | ||||
|     get_current_component().$$.after_update.push(fn); | ||||
| } | ||||
| /** | ||||
|  * Associates an arbitrary `context` object with the current component and the specified `key` | ||||
|  * and returns that object. The context is then available to children of the component | ||||
|  * (including slotted content) with `getContext`. | ||||
|  * | ||||
|  * Like lifecycle functions, this must be called during component initialisation. | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-setcontext | ||||
|  */ | ||||
| function setContext(key, context) { | ||||
|     get_current_component().$$.context.set(key, context); | ||||
|     return context; | ||||
| } | ||||
| /** | ||||
|  * Retrieves the context that belongs to the closest parent component with the specified `key`. | ||||
|  * Must be called during component initialisation. | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-getcontext | ||||
|  */ | ||||
| function getContext(key) { | ||||
|     return get_current_component().$$.context.get(key); | ||||
| } | ||||
|  | ||||
| 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); | ||||
| } | ||||
| // flush() calls callbacks in this order: | ||||
| // 1. All beforeUpdate callbacks, in order: parents before children | ||||
| // 2. All bind:this callbacks, in reverse order: children before parents. | ||||
| // 3. All afterUpdate callbacks, in order: parents before children. EXCEPT | ||||
| //    for afterUpdates called during the initial onMount, which are called in | ||||
| //    reverse order: children before parents. | ||||
| // Since callbacks might update component values, which could trigger another | ||||
| // call to flush(), the following steps guard against this: | ||||
| // 1. During beforeUpdate, any updated components will be added to the | ||||
| //    dirty_components array and will cause a reentrant call to flush(). Because | ||||
| //    the flush index is kept outside the function, the reentrant call will pick | ||||
| //    up where the earlier call left off and go through all dirty components. The | ||||
| //    current_component value is saved and restored so that the reentrant call will | ||||
| //    not interfere with the "parent" flush() call. | ||||
| // 2. bind:this callbacks cannot trigger new flush() calls. | ||||
| // 3. During afterUpdate, any updated components will NOT have their afterUpdate | ||||
| //    callback called a second time; the seen_callbacks set, outside the flush() | ||||
| //    function, guarantees this behavior. | ||||
| const seen_callbacks = new Set(); | ||||
| let flushidx = 0; // Do *not* move this inside the flush() function | ||||
| function flush() { | ||||
|     const saved_component = current_component; | ||||
|     do { | ||||
|         // first, call beforeUpdate functions | ||||
|         // and update components | ||||
|         while (flushidx < dirty_components.length) { | ||||
|             const component = dirty_components[flushidx]; | ||||
|             flushidx++; | ||||
|             set_current_component(component); | ||||
|             update(component.$$); | ||||
|         } | ||||
|         set_current_component(null); | ||||
|         dirty_components.length = 0; | ||||
|         flushidx = 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; | ||||
|     seen_callbacks.clear(); | ||||
|     set_current_component(saved_component); | ||||
| } | ||||
| 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(); | ||||
| function transition_in(block, local) { | ||||
|     if (block && block.i) { | ||||
|         outroing.delete(block); | ||||
|         block.i(local); | ||||
|     } | ||||
| } | ||||
|  | ||||
| const globals = (typeof window !== 'undefined' | ||||
|     ? window | ||||
|     : typeof globalThis !== 'undefined' | ||||
|         ? globalThis | ||||
|         : global); | ||||
| function mount_component(component, target, anchor, customElement) { | ||||
|     const { fragment, after_update } = component.$$; | ||||
|     fragment && fragment.m(target, anchor); | ||||
|     if (!customElement) { | ||||
|         // onMount happens before the initial afterUpdate | ||||
|         add_render_callback(() => { | ||||
|             const new_on_destroy = component.$$.on_mount.map(run).filter(is_function); | ||||
|             // if the component was destroyed immediately | ||||
|             // it will update the `$$.on_destroy` reference to `null`. | ||||
|             // the destructured on_destroy may still reference to the old array | ||||
|             if (component.$$.on_destroy) { | ||||
|                 component.$$.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, append_styles, dirty = [-1]) { | ||||
|     const parent_component = current_component; | ||||
|     set_current_component(component); | ||||
|     const $$ = component.$$ = { | ||||
|         fragment: null, | ||||
|         ctx: [], | ||||
|         // state | ||||
|         props, | ||||
|         update: noop, | ||||
|         not_equal, | ||||
|         bound: blank_object(), | ||||
|         // lifecycle | ||||
|         on_mount: [], | ||||
|         on_destroy: [], | ||||
|         on_disconnect: [], | ||||
|         before_update: [], | ||||
|         after_update: [], | ||||
|         context: new Map(options.context || (parent_component ? parent_component.$$.context : [])), | ||||
|         // everything else | ||||
|         callbacks: blank_object(), | ||||
|         dirty, | ||||
|         skip_bound: false, | ||||
|         root: options.target || parent_component.$$.root | ||||
|     }; | ||||
|     append_styles && append_styles($$.root); | ||||
|     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); | ||||
| } | ||||
| let SvelteElement; | ||||
| if (typeof HTMLElement === 'function') { | ||||
|     SvelteElement = class extends HTMLElement { | ||||
|         constructor() { | ||||
|             super(); | ||||
|             this.attachShadow({ mode: 'open' }); | ||||
|         } | ||||
|         connectedCallback() { | ||||
|             const { on_mount } = this.$$; | ||||
|             this.$$.on_disconnect = on_mount.map(run).filter(is_function); | ||||
|             // @ts-ignore todo: improve typings | ||||
|             for (const key in this.$$.slotted) { | ||||
|                 // @ts-ignore todo: improve typings | ||||
|                 this.appendChild(this.$$.slotted[key]); | ||||
|             } | ||||
|         } | ||||
|         attributeChangedCallback(attr, _oldValue, newValue) { | ||||
|             this[attr] = newValue; | ||||
|         } | ||||
|         disconnectedCallback() { | ||||
|             run_all(this.$$.on_disconnect); | ||||
|         } | ||||
|         $destroy() { | ||||
|             destroy_component(this, 1); | ||||
|             this.$destroy = noop; | ||||
|         } | ||||
|         $on(type, callback) { | ||||
|             // TODO should this delegate to addEventListener? | ||||
|             if (!is_function(callback)) { | ||||
|                 return noop; | ||||
|             } | ||||
|             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.52.0' }, detail), { bubbles: true })); | ||||
| } | ||||
| 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 prop_dev(node, property, value) { | ||||
|     node[property] = value; | ||||
|     dispatch_dev('SvelteDOMSetProperty', { node, property, 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_each_argument(arg) { | ||||
|     if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) { | ||||
|         let msg = '{#each} only iterates over array-like objects.'; | ||||
|         if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) { | ||||
|             msg += ' You can use a spread to convert this iterable into an array.'; | ||||
|         } | ||||
|         throw new Error(msg); | ||||
|     } | ||||
| } | ||||
| 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}".`); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| export { validate_each_argument as A, text as B, set_data_dev as C, destroy_each as D, prop_dev as E, set_style as F, svg_element as G, is_function as H, HtmlTag as I, afterUpdate as J, set_input_value as K, SvelteElement as S, attribute_to_object as a, insert_dev as b, setContext as c, dispatch_dev as d, globals as e, element as f, getContext as g, space as h, init as i, add_location as j, attr_dev as k, append_dev as l, listen_dev as m, noop as n, onMount as o, detach_dev as p, binding_callbacks as q, run_all as r, safe_not_equal as s, flush as t, src_url_equal as u, validate_slots as v, validate_store as w, component_subscribe as x, empty as y, set_custom_element_data as z }; | ||||
| @@ -1 +0,0 @@ | ||||
| function t(){}function n(t){return t()}function e(){return Object.create(null)}function o(t){t.forEach(n)}function s(t){return"function"==typeof t}function r(t,n){return t!=t?n==n:t!==n||t&&"object"==typeof t||"function"==typeof t}let i,c;function a(t,n){return i||(i=document.createElement("a")),i.href=n,t===i.href}function u(t,n){t.appendChild(n)}function f(t,n,e){t.insertBefore(n,e||null)}function l(t){t.parentNode.removeChild(t)}function h(t,n){for(let e=0;e<t.length;e+=1)t[e]&&t[e].d(n)}function d(t){return document.createElement(t)}function $(t){return document.createTextNode(t)}function p(){return $(" ")}function m(){return $("")}function g(t,n,e,o){return t.addEventListener(n,e,o),()=>t.removeEventListener(n,e,o)}function _(t,n,e){null==e?t.removeAttribute(n):t.getAttribute(n)!==e&&t.setAttribute(n,e)}function y(t,n,e){n in t?t[n]="boolean"==typeof t[n]&&""===e||e:_(t,n,e)}function b(t,n){n=""+n,t.wholeText!==n&&(t.data=n)}function x(t,n,e,o){null===e?t.style.removeProperty(n):t.style.setProperty(n,e,o?"important":"")}class v{constructor(t=!1){this.is_svg=!1,this.is_svg=t,this.e=this.n=null}c(t){this.h(t)}m(t,n,e=null){var o;this.e||(this.is_svg?this.e=(o=n.nodeName,document.createElementNS("http://www.w3.org/2000/svg",o)):this.e=d(n.nodeName),this.t=n,this.c(t)),this.i(e)}h(t){this.e.innerHTML=t,this.n=Array.from(this.e.childNodes)}i(t){for(let n=0;n<this.n.length;n+=1)f(this.t,this.n[n],t)}p(t){this.d(),this.h(t),this.i(this.a)}d(){this.n.forEach(l)}}function E(t){const n={};for(const e of t)n[e.name]=e.value;return n}function w(t){c=t}function k(){if(!c)throw new Error("Function called outside component initialization");return c}function C(t){k().$$.on_mount.push(t)}function N(t){return k().$$.context.get(t)}const A=[],L=[],S=[],T=[],j=Promise.resolve();let H=!1;function M(t){S.push(t)}const O=new Set;let P=0;function q(){const t=c;do{for(;P<A.length;){const t=A[P];P++,w(t),z(t.$$)}for(w(null),A.length=0,P=0;L.length;)L.pop()();for(let t=0;t<S.length;t+=1){const n=S[t];O.has(n)||(O.add(n),n())}S.length=0}while(A.length);for(;T.length;)T.pop()();H=!1,O.clear(),w(t)}function z(t){if(null!==t.fragment){t.update(),o(t.before_update);const n=t.dirty;t.dirty=[-1],t.fragment&&t.fragment.p(t.ctx,n),t.after_update.forEach(M)}}const B=new Set;function F(t,n){-1===t.$$.dirty[0]&&(A.push(t),H||(H=!0,j.then(q)),t.$$.dirty.fill(0)),t.$$.dirty[n/31|0]|=1<<n%31}function D(r,i,a,u,f,h,d,$=[-1]){const p=c;w(r);const m=r.$$={fragment:null,ctx:[],props:h,update:t,not_equal:f,bound:e(),on_mount:[],on_destroy:[],on_disconnect:[],before_update:[],after_update:[],context:new Map(i.context||(p?p.$$.context:[])),callbacks:e(),dirty:$,skip_bound:!1,root:i.target||p.$$.root};d&&d(m.root);let g=!1;if(m.ctx=a?a(r,i.props||{},((t,n,...e)=>{const o=e.length?e[0]:n;return m.ctx&&f(m.ctx[t],m.ctx[t]=o)&&(!m.skip_bound&&m.bound[t]&&m.bound[t](o),g&&F(r,t)),n})):[],m.update(),g=!0,o(m.before_update),m.fragment=!!u&&u(m.ctx),i.target){if(i.hydrate){const t=function(t){return Array.from(t.childNodes)}(i.target);m.fragment&&m.fragment.l(t),t.forEach(l)}else m.fragment&&m.fragment.c();i.intro&&((_=r.$$.fragment)&&_.i&&(B.delete(_),_.i(y))),function(t,e,r,i){const{fragment:c,after_update:a}=t.$$;c&&c.m(e,r),i||M((()=>{const e=t.$$.on_mount.map(n).filter(s);t.$$.on_destroy?t.$$.on_destroy.push(...e):o(e),t.$$.on_mount=[]})),a.forEach(M)}(r,i.target,i.anchor,i.customElement),q()}var _,y;w(p)}let G;"function"==typeof HTMLElement&&(G=class extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"})}connectedCallback(){const{on_mount:t}=this.$$;this.$$.on_disconnect=t.map(n).filter(s);for(const t in this.$$.slotted)this.appendChild(this.$$.slotted[t])}attributeChangedCallback(t,n,e){this[t]=e}disconnectedCallback(){o(this.$$.on_disconnect)}$destroy(){!function(t,n){const e=t.$$;null!==e.fragment&&(o(e.on_destroy),e.fragment&&e.fragment.d(n),e.on_destroy=e.fragment=null,e.ctx=[])}(this,1),this.$destroy=t}$on(n,e){if(!s(e))return t;const o=this.$$.callbacks[n]||(this.$$.callbacks[n]=[]);return o.push(e),()=>{const t=o.indexOf(e);-1!==t&&o.splice(t,1)}}$set(t){var n;this.$$set&&(n=t,0!==Object.keys(n).length)&&(this.$$.skip_bound=!0,this.$$set(t),this.$$.skip_bound=!1)}});export{v as H,G as S,E as a,f as b,p as c,_ as d,d as e,a as f,y as g,u as h,D as i,l as j,h as k,q as l,x as m,t as n,C as o,g as p,b as q,L as r,r as s,$ as t,N as u,o as v,m as w}; | ||||
| @@ -1,494 +0,0 @@ | ||||
|  | ||||
| (function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document); | ||||
| function noop() { } | ||||
| 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'); | ||||
| } | ||||
| let src_url_equal_anchor; | ||||
| function src_url_equal(element_src, url) { | ||||
|     if (!src_url_equal_anchor) { | ||||
|         src_url_equal_anchor = document.createElement('a'); | ||||
|     } | ||||
|     src_url_equal_anchor.href = url; | ||||
|     return element_src === src_url_equal_anchor.href; | ||||
| } | ||||
| function is_empty(obj) { | ||||
|     return Object.keys(obj).length === 0; | ||||
| } | ||||
| 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 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 attr(node, attribute, value) { | ||||
|     if (value == null) | ||||
|         node.removeAttribute(attribute); | ||||
|     else if (node.getAttribute(attribute) !== value) | ||||
|         node.setAttribute(attribute, value); | ||||
| } | ||||
| function set_custom_element_data(node, prop, value) { | ||||
|     if (prop in node) { | ||||
|         node[prop] = typeof node[prop] === 'boolean' && value === '' ? true : value; | ||||
|     } | ||||
|     else { | ||||
|         attr(node, prop, value); | ||||
|     } | ||||
| } | ||||
| function children(element) { | ||||
|     return Array.from(element.childNodes); | ||||
| } | ||||
| function set_style(node, key, value, important) { | ||||
|     if (value === null) { | ||||
|         node.style.removeProperty(key); | ||||
|     } | ||||
|     else { | ||||
|         node.style.setProperty(key, value, important ? 'important' : ''); | ||||
|     } | ||||
| } | ||||
| function custom_event(type, detail, { bubbles = false, cancelable = false } = {}) { | ||||
|     const e = document.createEvent('CustomEvent'); | ||||
|     e.initCustomEvent(type, bubbles, cancelable, detail); | ||||
|     return e; | ||||
| } | ||||
| class HtmlTag { | ||||
|     constructor(is_svg = false) { | ||||
|         this.is_svg = false; | ||||
|         this.is_svg = is_svg; | ||||
|         this.e = this.n = null; | ||||
|     } | ||||
|     c(html) { | ||||
|         this.h(html); | ||||
|     } | ||||
|     m(html, target, anchor = null) { | ||||
|         if (!this.e) { | ||||
|             if (this.is_svg) | ||||
|                 this.e = svg_element(target.nodeName); | ||||
|             else | ||||
|                 this.e = element(target.nodeName); | ||||
|             this.t = target; | ||||
|             this.c(html); | ||||
|         } | ||||
|         this.i(anchor); | ||||
|     } | ||||
|     h(html) { | ||||
|         this.e.innerHTML = html; | ||||
|         this.n = Array.from(this.e.childNodes); | ||||
|     } | ||||
|     i(anchor) { | ||||
|         for (let i = 0; i < this.n.length; i += 1) { | ||||
|             insert(this.t, this.n[i], anchor); | ||||
|         } | ||||
|     } | ||||
|     p(html) { | ||||
|         this.d(); | ||||
|         this.h(html); | ||||
|         this.i(this.a); | ||||
|     } | ||||
|     d() { | ||||
|         this.n.forEach(detach); | ||||
|     } | ||||
| } | ||||
| function attribute_to_object(attributes) { | ||||
|     const result = {}; | ||||
|     for (const attribute of attributes) { | ||||
|         result[attribute.name] = attribute.value; | ||||
|     } | ||||
|     return result; | ||||
| } | ||||
|  | ||||
| let current_component; | ||||
| function set_current_component(component) { | ||||
|     current_component = component; | ||||
| } | ||||
| function get_current_component() { | ||||
|     if (!current_component) | ||||
|         throw new Error('Function called outside component initialization'); | ||||
|     return current_component; | ||||
| } | ||||
| /** | ||||
|  * The `onMount` function schedules a callback to run as soon as the component has been mounted to the DOM. | ||||
|  * It must be called during the component's initialisation (but doesn't need to live *inside* the component; | ||||
|  * it can be called from an external module). | ||||
|  * | ||||
|  * `onMount` does not run inside a [server-side component](/docs#run-time-server-side-component-api). | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-onmount | ||||
|  */ | ||||
| function onMount(fn) { | ||||
|     get_current_component().$$.on_mount.push(fn); | ||||
| } | ||||
| /** | ||||
|  * Associates an arbitrary `context` object with the current component and the specified `key` | ||||
|  * and returns that object. The context is then available to children of the component | ||||
|  * (including slotted content) with `getContext`. | ||||
|  * | ||||
|  * Like lifecycle functions, this must be called during component initialisation. | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-setcontext | ||||
|  */ | ||||
| function setContext(key, context) { | ||||
|     get_current_component().$$.context.set(key, context); | ||||
|     return context; | ||||
| } | ||||
| /** | ||||
|  * Retrieves the context that belongs to the closest parent component with the specified `key`. | ||||
|  * Must be called during component initialisation. | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-getcontext | ||||
|  */ | ||||
| function getContext(key) { | ||||
|     return get_current_component().$$.context.get(key); | ||||
| } | ||||
|  | ||||
| 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); | ||||
| } | ||||
| // flush() calls callbacks in this order: | ||||
| // 1. All beforeUpdate callbacks, in order: parents before children | ||||
| // 2. All bind:this callbacks, in reverse order: children before parents. | ||||
| // 3. All afterUpdate callbacks, in order: parents before children. EXCEPT | ||||
| //    for afterUpdates called during the initial onMount, which are called in | ||||
| //    reverse order: children before parents. | ||||
| // Since callbacks might update component values, which could trigger another | ||||
| // call to flush(), the following steps guard against this: | ||||
| // 1. During beforeUpdate, any updated components will be added to the | ||||
| //    dirty_components array and will cause a reentrant call to flush(). Because | ||||
| //    the flush index is kept outside the function, the reentrant call will pick | ||||
| //    up where the earlier call left off and go through all dirty components. The | ||||
| //    current_component value is saved and restored so that the reentrant call will | ||||
| //    not interfere with the "parent" flush() call. | ||||
| // 2. bind:this callbacks cannot trigger new flush() calls. | ||||
| // 3. During afterUpdate, any updated components will NOT have their afterUpdate | ||||
| //    callback called a second time; the seen_callbacks set, outside the flush() | ||||
| //    function, guarantees this behavior. | ||||
| const seen_callbacks = new Set(); | ||||
| let flushidx = 0; // Do *not* move this inside the flush() function | ||||
| function flush() { | ||||
|     const saved_component = current_component; | ||||
|     do { | ||||
|         // first, call beforeUpdate functions | ||||
|         // and update components | ||||
|         while (flushidx < dirty_components.length) { | ||||
|             const component = dirty_components[flushidx]; | ||||
|             flushidx++; | ||||
|             set_current_component(component); | ||||
|             update(component.$$); | ||||
|         } | ||||
|         set_current_component(null); | ||||
|         dirty_components.length = 0; | ||||
|         flushidx = 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; | ||||
|     seen_callbacks.clear(); | ||||
|     set_current_component(saved_component); | ||||
| } | ||||
| 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(); | ||||
| function transition_in(block, local) { | ||||
|     if (block && block.i) { | ||||
|         outroing.delete(block); | ||||
|         block.i(local); | ||||
|     } | ||||
| } | ||||
|  | ||||
| const globals = (typeof window !== 'undefined' | ||||
|     ? window | ||||
|     : typeof globalThis !== 'undefined' | ||||
|         ? globalThis | ||||
|         : global); | ||||
| function mount_component(component, target, anchor, customElement) { | ||||
|     const { fragment, after_update } = component.$$; | ||||
|     fragment && fragment.m(target, anchor); | ||||
|     if (!customElement) { | ||||
|         // onMount happens before the initial afterUpdate | ||||
|         add_render_callback(() => { | ||||
|             const new_on_destroy = component.$$.on_mount.map(run).filter(is_function); | ||||
|             // if the component was destroyed immediately | ||||
|             // it will update the `$$.on_destroy` reference to `null`. | ||||
|             // the destructured on_destroy may still reference to the old array | ||||
|             if (component.$$.on_destroy) { | ||||
|                 component.$$.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, append_styles, dirty = [-1]) { | ||||
|     const parent_component = current_component; | ||||
|     set_current_component(component); | ||||
|     const $$ = component.$$ = { | ||||
|         fragment: null, | ||||
|         ctx: [], | ||||
|         // state | ||||
|         props, | ||||
|         update: noop, | ||||
|         not_equal, | ||||
|         bound: blank_object(), | ||||
|         // lifecycle | ||||
|         on_mount: [], | ||||
|         on_destroy: [], | ||||
|         on_disconnect: [], | ||||
|         before_update: [], | ||||
|         after_update: [], | ||||
|         context: new Map(options.context || (parent_component ? parent_component.$$.context : [])), | ||||
|         // everything else | ||||
|         callbacks: blank_object(), | ||||
|         dirty, | ||||
|         skip_bound: false, | ||||
|         root: options.target || parent_component.$$.root | ||||
|     }; | ||||
|     append_styles && append_styles($$.root); | ||||
|     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); | ||||
| } | ||||
| let SvelteElement; | ||||
| if (typeof HTMLElement === 'function') { | ||||
|     SvelteElement = class extends HTMLElement { | ||||
|         constructor() { | ||||
|             super(); | ||||
|             this.attachShadow({ mode: 'open' }); | ||||
|         } | ||||
|         connectedCallback() { | ||||
|             const { on_mount } = this.$$; | ||||
|             this.$$.on_disconnect = on_mount.map(run).filter(is_function); | ||||
|             // @ts-ignore todo: improve typings | ||||
|             for (const key in this.$$.slotted) { | ||||
|                 // @ts-ignore todo: improve typings | ||||
|                 this.appendChild(this.$$.slotted[key]); | ||||
|             } | ||||
|         } | ||||
|         attributeChangedCallback(attr, _oldValue, newValue) { | ||||
|             this[attr] = newValue; | ||||
|         } | ||||
|         disconnectedCallback() { | ||||
|             run_all(this.$$.on_disconnect); | ||||
|         } | ||||
|         $destroy() { | ||||
|             destroy_component(this, 1); | ||||
|             this.$destroy = noop; | ||||
|         } | ||||
|         $on(type, callback) { | ||||
|             // TODO should this delegate to addEventListener? | ||||
|             if (!is_function(callback)) { | ||||
|                 return noop; | ||||
|             } | ||||
|             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.52.0' }, detail), { bubbles: true })); | ||||
| } | ||||
| 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_each_argument(arg) { | ||||
|     if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) { | ||||
|         let msg = '{#each} only iterates over array-like objects.'; | ||||
|         if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) { | ||||
|             msg += ' You can use a spread to convert this iterable into an array.'; | ||||
|         } | ||||
|         throw new Error(msg); | ||||
|     } | ||||
| } | ||||
| 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}".`); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| export { setContext as A, run_all as B, svg_element as C, empty as D, is_function as E, HtmlTag as H, SvelteElement as S, attribute_to_object as a, insert_dev as b, validate_slots as c, dispatch_dev as d, element as e, space as f, add_location as g, attr_dev as h, init as i, src_url_equal as j, set_custom_element_data as k, append_dev as l, detach_dev as m, noop as n, onMount as o, destroy_each as p, flush as q, globals as r, safe_not_equal as s, text as t, binding_callbacks as u, validate_each_argument as v, set_style as w, listen_dev as x, set_data_dev as y, getContext as z }; | ||||
| @@ -1,53 +0,0 @@ | ||||
|  | ||||
| (function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document); | ||||
| import { n as noop, s as safe_not_equal } from './index-42a25c61.js'; | ||||
|  | ||||
| const subscriber_queue = []; | ||||
| /** | ||||
|  * Create a `Writable` store that allows both updating and reading by subscription. | ||||
|  * @param {*=}value initial value | ||||
|  * @param {StartStopNotifier=}start start and stop notifications for subscriptions | ||||
|  */ | ||||
| function writable(value, start = noop) { | ||||
|     let stop; | ||||
|     const subscribers = new Set(); | ||||
|     function set(new_value) { | ||||
|         if (safe_not_equal(value, new_value)) { | ||||
|             value = new_value; | ||||
|             if (stop) { // store is ready | ||||
|                 const run_queue = !subscriber_queue.length; | ||||
|                 for (const subscriber of subscribers) { | ||||
|                     subscriber[1](); | ||||
|                     subscriber_queue.push(subscriber, value); | ||||
|                 } | ||||
|                 if (run_queue) { | ||||
|                     for (let i = 0; i < subscriber_queue.length; i += 2) { | ||||
|                         subscriber_queue[i][0](subscriber_queue[i + 1]); | ||||
|                     } | ||||
|                     subscriber_queue.length = 0; | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|     function update(fn) { | ||||
|         set(fn(value)); | ||||
|     } | ||||
|     function subscribe(run, invalidate = noop) { | ||||
|         const subscriber = [run, invalidate]; | ||||
|         subscribers.add(subscriber); | ||||
|         if (subscribers.size === 1) { | ||||
|             stop = start(set) || noop; | ||||
|         } | ||||
|         run(value); | ||||
|         return () => { | ||||
|             subscribers.delete(subscriber); | ||||
|             if (subscribers.size === 0) { | ||||
|                 stop(); | ||||
|                 stop = null; | ||||
|             } | ||||
|         }; | ||||
|     } | ||||
|     return { set, update, subscribe }; | ||||
| } | ||||
|  | ||||
| export { writable as w }; | ||||
| @@ -1,53 +0,0 @@ | ||||
|  | ||||
| (function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document); | ||||
| import { n as noop, s as safe_not_equal } from './index-10273c92.js'; | ||||
|  | ||||
| const subscriber_queue = []; | ||||
| /** | ||||
|  * Create a `Writable` store that allows both updating and reading by subscription. | ||||
|  * @param {*=}value initial value | ||||
|  * @param {StartStopNotifier=}start start and stop notifications for subscriptions | ||||
|  */ | ||||
| function writable(value, start = noop) { | ||||
|     let stop; | ||||
|     const subscribers = new Set(); | ||||
|     function set(new_value) { | ||||
|         if (safe_not_equal(value, new_value)) { | ||||
|             value = new_value; | ||||
|             if (stop) { // store is ready | ||||
|                 const run_queue = !subscriber_queue.length; | ||||
|                 for (const subscriber of subscribers) { | ||||
|                     subscriber[1](); | ||||
|                     subscriber_queue.push(subscriber, value); | ||||
|                 } | ||||
|                 if (run_queue) { | ||||
|                     for (let i = 0; i < subscriber_queue.length; i += 2) { | ||||
|                         subscriber_queue[i][0](subscriber_queue[i + 1]); | ||||
|                     } | ||||
|                     subscriber_queue.length = 0; | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|     function update(fn) { | ||||
|         set(fn(value)); | ||||
|     } | ||||
|     function subscribe(run, invalidate = noop) { | ||||
|         const subscriber = [run, invalidate]; | ||||
|         subscribers.add(subscriber); | ||||
|         if (subscribers.size === 1) { | ||||
|             stop = start(set) || noop; | ||||
|         } | ||||
|         run(value); | ||||
|         return () => { | ||||
|             subscribers.delete(subscriber); | ||||
|             if (subscribers.size === 0) { | ||||
|                 stop(); | ||||
|                 stop = null; | ||||
|             } | ||||
|         }; | ||||
|     } | ||||
|     return { set, update, subscribe }; | ||||
| } | ||||
|  | ||||
| export { writable as w }; | ||||
| @@ -1,486 +0,0 @@ | ||||
|  | ||||
| (function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document); | ||||
| function noop() { } | ||||
| 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'); | ||||
| } | ||||
| let src_url_equal_anchor; | ||||
| function src_url_equal(element_src, url) { | ||||
|     if (!src_url_equal_anchor) { | ||||
|         src_url_equal_anchor = document.createElement('a'); | ||||
|     } | ||||
|     src_url_equal_anchor.href = url; | ||||
|     return element_src === src_url_equal_anchor.href; | ||||
| } | ||||
| function is_empty(obj) { | ||||
|     return Object.keys(obj).length === 0; | ||||
| } | ||||
| 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 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 attr(node, attribute, value) { | ||||
|     if (value == null) | ||||
|         node.removeAttribute(attribute); | ||||
|     else if (node.getAttribute(attribute) !== value) | ||||
|         node.setAttribute(attribute, value); | ||||
| } | ||||
| function children(element) { | ||||
|     return Array.from(element.childNodes); | ||||
| } | ||||
| function set_style(node, key, value, important) { | ||||
|     if (value === null) { | ||||
|         node.style.removeProperty(key); | ||||
|     } | ||||
|     else { | ||||
|         node.style.setProperty(key, value, important ? 'important' : ''); | ||||
|     } | ||||
| } | ||||
| function custom_event(type, detail, { bubbles = false, cancelable = false } = {}) { | ||||
|     const e = document.createEvent('CustomEvent'); | ||||
|     e.initCustomEvent(type, bubbles, cancelable, detail); | ||||
|     return e; | ||||
| } | ||||
| class HtmlTag { | ||||
|     constructor(is_svg = false) { | ||||
|         this.is_svg = false; | ||||
|         this.is_svg = is_svg; | ||||
|         this.e = this.n = null; | ||||
|     } | ||||
|     c(html) { | ||||
|         this.h(html); | ||||
|     } | ||||
|     m(html, target, anchor = null) { | ||||
|         if (!this.e) { | ||||
|             if (this.is_svg) | ||||
|                 this.e = svg_element(target.nodeName); | ||||
|             else | ||||
|                 this.e = element(target.nodeName); | ||||
|             this.t = target; | ||||
|             this.c(html); | ||||
|         } | ||||
|         this.i(anchor); | ||||
|     } | ||||
|     h(html) { | ||||
|         this.e.innerHTML = html; | ||||
|         this.n = Array.from(this.e.childNodes); | ||||
|     } | ||||
|     i(anchor) { | ||||
|         for (let i = 0; i < this.n.length; i += 1) { | ||||
|             insert(this.t, this.n[i], anchor); | ||||
|         } | ||||
|     } | ||||
|     p(html) { | ||||
|         this.d(); | ||||
|         this.h(html); | ||||
|         this.i(this.a); | ||||
|     } | ||||
|     d() { | ||||
|         this.n.forEach(detach); | ||||
|     } | ||||
| } | ||||
| function attribute_to_object(attributes) { | ||||
|     const result = {}; | ||||
|     for (const attribute of attributes) { | ||||
|         result[attribute.name] = attribute.value; | ||||
|     } | ||||
|     return result; | ||||
| } | ||||
|  | ||||
| let current_component; | ||||
| function set_current_component(component) { | ||||
|     current_component = component; | ||||
| } | ||||
| function get_current_component() { | ||||
|     if (!current_component) | ||||
|         throw new Error('Function called outside component initialization'); | ||||
|     return current_component; | ||||
| } | ||||
| /** | ||||
|  * The `onMount` function schedules a callback to run as soon as the component has been mounted to the DOM. | ||||
|  * It must be called during the component's initialisation (but doesn't need to live *inside* the component; | ||||
|  * it can be called from an external module). | ||||
|  * | ||||
|  * `onMount` does not run inside a [server-side component](/docs#run-time-server-side-component-api). | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-onmount | ||||
|  */ | ||||
| function onMount(fn) { | ||||
|     get_current_component().$$.on_mount.push(fn); | ||||
| } | ||||
| /** | ||||
|  * Associates an arbitrary `context` object with the current component and the specified `key` | ||||
|  * and returns that object. The context is then available to children of the component | ||||
|  * (including slotted content) with `getContext`. | ||||
|  * | ||||
|  * Like lifecycle functions, this must be called during component initialisation. | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-setcontext | ||||
|  */ | ||||
| function setContext(key, context) { | ||||
|     get_current_component().$$.context.set(key, context); | ||||
|     return context; | ||||
| } | ||||
| /** | ||||
|  * Retrieves the context that belongs to the closest parent component with the specified `key`. | ||||
|  * Must be called during component initialisation. | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-getcontext | ||||
|  */ | ||||
| function getContext(key) { | ||||
|     return get_current_component().$$.context.get(key); | ||||
| } | ||||
|  | ||||
| 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); | ||||
| } | ||||
| // flush() calls callbacks in this order: | ||||
| // 1. All beforeUpdate callbacks, in order: parents before children | ||||
| // 2. All bind:this callbacks, in reverse order: children before parents. | ||||
| // 3. All afterUpdate callbacks, in order: parents before children. EXCEPT | ||||
| //    for afterUpdates called during the initial onMount, which are called in | ||||
| //    reverse order: children before parents. | ||||
| // Since callbacks might update component values, which could trigger another | ||||
| // call to flush(), the following steps guard against this: | ||||
| // 1. During beforeUpdate, any updated components will be added to the | ||||
| //    dirty_components array and will cause a reentrant call to flush(). Because | ||||
| //    the flush index is kept outside the function, the reentrant call will pick | ||||
| //    up where the earlier call left off and go through all dirty components. The | ||||
| //    current_component value is saved and restored so that the reentrant call will | ||||
| //    not interfere with the "parent" flush() call. | ||||
| // 2. bind:this callbacks cannot trigger new flush() calls. | ||||
| // 3. During afterUpdate, any updated components will NOT have their afterUpdate | ||||
| //    callback called a second time; the seen_callbacks set, outside the flush() | ||||
| //    function, guarantees this behavior. | ||||
| const seen_callbacks = new Set(); | ||||
| let flushidx = 0; // Do *not* move this inside the flush() function | ||||
| function flush() { | ||||
|     const saved_component = current_component; | ||||
|     do { | ||||
|         // first, call beforeUpdate functions | ||||
|         // and update components | ||||
|         while (flushidx < dirty_components.length) { | ||||
|             const component = dirty_components[flushidx]; | ||||
|             flushidx++; | ||||
|             set_current_component(component); | ||||
|             update(component.$$); | ||||
|         } | ||||
|         set_current_component(null); | ||||
|         dirty_components.length = 0; | ||||
|         flushidx = 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; | ||||
|     seen_callbacks.clear(); | ||||
|     set_current_component(saved_component); | ||||
| } | ||||
| 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(); | ||||
| function transition_in(block, local) { | ||||
|     if (block && block.i) { | ||||
|         outroing.delete(block); | ||||
|         block.i(local); | ||||
|     } | ||||
| } | ||||
|  | ||||
| const globals = (typeof window !== 'undefined' | ||||
|     ? window | ||||
|     : typeof globalThis !== 'undefined' | ||||
|         ? globalThis | ||||
|         : global); | ||||
| function mount_component(component, target, anchor, customElement) { | ||||
|     const { fragment, after_update } = component.$$; | ||||
|     fragment && fragment.m(target, anchor); | ||||
|     if (!customElement) { | ||||
|         // onMount happens before the initial afterUpdate | ||||
|         add_render_callback(() => { | ||||
|             const new_on_destroy = component.$$.on_mount.map(run).filter(is_function); | ||||
|             // if the component was destroyed immediately | ||||
|             // it will update the `$$.on_destroy` reference to `null`. | ||||
|             // the destructured on_destroy may still reference to the old array | ||||
|             if (component.$$.on_destroy) { | ||||
|                 component.$$.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, append_styles, dirty = [-1]) { | ||||
|     const parent_component = current_component; | ||||
|     set_current_component(component); | ||||
|     const $$ = component.$$ = { | ||||
|         fragment: null, | ||||
|         ctx: [], | ||||
|         // state | ||||
|         props, | ||||
|         update: noop, | ||||
|         not_equal, | ||||
|         bound: blank_object(), | ||||
|         // lifecycle | ||||
|         on_mount: [], | ||||
|         on_destroy: [], | ||||
|         on_disconnect: [], | ||||
|         before_update: [], | ||||
|         after_update: [], | ||||
|         context: new Map(options.context || (parent_component ? parent_component.$$.context : [])), | ||||
|         // everything else | ||||
|         callbacks: blank_object(), | ||||
|         dirty, | ||||
|         skip_bound: false, | ||||
|         root: options.target || parent_component.$$.root | ||||
|     }; | ||||
|     append_styles && append_styles($$.root); | ||||
|     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); | ||||
| } | ||||
| let SvelteElement; | ||||
| if (typeof HTMLElement === 'function') { | ||||
|     SvelteElement = class extends HTMLElement { | ||||
|         constructor() { | ||||
|             super(); | ||||
|             this.attachShadow({ mode: 'open' }); | ||||
|         } | ||||
|         connectedCallback() { | ||||
|             const { on_mount } = this.$$; | ||||
|             this.$$.on_disconnect = on_mount.map(run).filter(is_function); | ||||
|             // @ts-ignore todo: improve typings | ||||
|             for (const key in this.$$.slotted) { | ||||
|                 // @ts-ignore todo: improve typings | ||||
|                 this.appendChild(this.$$.slotted[key]); | ||||
|             } | ||||
|         } | ||||
|         attributeChangedCallback(attr, _oldValue, newValue) { | ||||
|             this[attr] = newValue; | ||||
|         } | ||||
|         disconnectedCallback() { | ||||
|             run_all(this.$$.on_disconnect); | ||||
|         } | ||||
|         $destroy() { | ||||
|             destroy_component(this, 1); | ||||
|             this.$destroy = noop; | ||||
|         } | ||||
|         $on(type, callback) { | ||||
|             // TODO should this delegate to addEventListener? | ||||
|             if (!is_function(callback)) { | ||||
|                 return noop; | ||||
|             } | ||||
|             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.52.0' }, detail), { bubbles: true })); | ||||
| } | ||||
| 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_each_argument(arg) { | ||||
|     if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) { | ||||
|         let msg = '{#each} only iterates over array-like objects.'; | ||||
|         if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) { | ||||
|             msg += ' You can use a spread to convert this iterable into an array.'; | ||||
|         } | ||||
|         throw new Error(msg); | ||||
|     } | ||||
| } | ||||
| 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}".`); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| export { run_all as A, svg_element as B, empty as C, HtmlTag as H, SvelteElement as S, attribute_to_object as a, insert_dev as b, space as c, dispatch_dev as d, element as e, add_location as f, attr_dev as g, append_dev as h, init as i, detach_dev as j, flush as k, validate_each_argument as l, globals as m, noop as n, onMount as o, destroy_each as p, binding_callbacks as q, set_style as r, safe_not_equal as s, text as t, listen_dev as u, validate_slots as v, set_data_dev as w, getContext as x, setContext as y, src_url_equal as z }; | ||||
| @@ -1,509 +0,0 @@ | ||||
|  | ||||
| (function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document); | ||||
| function noop() { } | ||||
| 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'); | ||||
| } | ||||
| let src_url_equal_anchor; | ||||
| function src_url_equal(element_src, url) { | ||||
|     if (!src_url_equal_anchor) { | ||||
|         src_url_equal_anchor = document.createElement('a'); | ||||
|     } | ||||
|     src_url_equal_anchor.href = url; | ||||
|     return element_src === src_url_equal_anchor.href; | ||||
| } | ||||
| function is_empty(obj) { | ||||
|     return Object.keys(obj).length === 0; | ||||
| } | ||||
| function validate_store(store, name) { | ||||
|     if (store != null && typeof store.subscribe !== 'function') { | ||||
|         throw new Error(`'${name}' is not a store with a 'subscribe' method`); | ||||
|     } | ||||
| } | ||||
| function subscribe(store, ...callbacks) { | ||||
|     if (store == null) { | ||||
|         return noop; | ||||
|     } | ||||
|     const unsub = store.subscribe(...callbacks); | ||||
|     return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub; | ||||
| } | ||||
| function component_subscribe(component, store, callback) { | ||||
|     component.$$.on_destroy.push(subscribe(store, callback)); | ||||
| } | ||||
| 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 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 attr(node, attribute, value) { | ||||
|     if (value == null) | ||||
|         node.removeAttribute(attribute); | ||||
|     else if (node.getAttribute(attribute) !== value) | ||||
|         node.setAttribute(attribute, value); | ||||
| } | ||||
| function set_custom_element_data(node, prop, value) { | ||||
|     if (prop in node) { | ||||
|         node[prop] = typeof node[prop] === 'boolean' && value === '' ? true : value; | ||||
|     } | ||||
|     else { | ||||
|         attr(node, prop, value); | ||||
|     } | ||||
| } | ||||
| function children(element) { | ||||
|     return Array.from(element.childNodes); | ||||
| } | ||||
| function set_style(node, key, value, important) { | ||||
|     if (value === null) { | ||||
|         node.style.removeProperty(key); | ||||
|     } | ||||
|     else { | ||||
|         node.style.setProperty(key, value, important ? 'important' : ''); | ||||
|     } | ||||
| } | ||||
| function custom_event(type, detail, { bubbles = false, cancelable = false } = {}) { | ||||
|     const e = document.createEvent('CustomEvent'); | ||||
|     e.initCustomEvent(type, bubbles, cancelable, detail); | ||||
|     return e; | ||||
| } | ||||
| class HtmlTag { | ||||
|     constructor(is_svg = false) { | ||||
|         this.is_svg = false; | ||||
|         this.is_svg = is_svg; | ||||
|         this.e = this.n = null; | ||||
|     } | ||||
|     c(html) { | ||||
|         this.h(html); | ||||
|     } | ||||
|     m(html, target, anchor = null) { | ||||
|         if (!this.e) { | ||||
|             if (this.is_svg) | ||||
|                 this.e = svg_element(target.nodeName); | ||||
|             else | ||||
|                 this.e = element(target.nodeName); | ||||
|             this.t = target; | ||||
|             this.c(html); | ||||
|         } | ||||
|         this.i(anchor); | ||||
|     } | ||||
|     h(html) { | ||||
|         this.e.innerHTML = html; | ||||
|         this.n = Array.from(this.e.childNodes); | ||||
|     } | ||||
|     i(anchor) { | ||||
|         for (let i = 0; i < this.n.length; i += 1) { | ||||
|             insert(this.t, this.n[i], anchor); | ||||
|         } | ||||
|     } | ||||
|     p(html) { | ||||
|         this.d(); | ||||
|         this.h(html); | ||||
|         this.i(this.a); | ||||
|     } | ||||
|     d() { | ||||
|         this.n.forEach(detach); | ||||
|     } | ||||
| } | ||||
| function attribute_to_object(attributes) { | ||||
|     const result = {}; | ||||
|     for (const attribute of attributes) { | ||||
|         result[attribute.name] = attribute.value; | ||||
|     } | ||||
|     return result; | ||||
| } | ||||
|  | ||||
| let current_component; | ||||
| function set_current_component(component) { | ||||
|     current_component = component; | ||||
| } | ||||
| function get_current_component() { | ||||
|     if (!current_component) | ||||
|         throw new Error('Function called outside component initialization'); | ||||
|     return current_component; | ||||
| } | ||||
| /** | ||||
|  * The `onMount` function schedules a callback to run as soon as the component has been mounted to the DOM. | ||||
|  * It must be called during the component's initialisation (but doesn't need to live *inside* the component; | ||||
|  * it can be called from an external module). | ||||
|  * | ||||
|  * `onMount` does not run inside a [server-side component](/docs#run-time-server-side-component-api). | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-onmount | ||||
|  */ | ||||
| function onMount(fn) { | ||||
|     get_current_component().$$.on_mount.push(fn); | ||||
| } | ||||
| /** | ||||
|  * Associates an arbitrary `context` object with the current component and the specified `key` | ||||
|  * and returns that object. The context is then available to children of the component | ||||
|  * (including slotted content) with `getContext`. | ||||
|  * | ||||
|  * Like lifecycle functions, this must be called during component initialisation. | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-setcontext | ||||
|  */ | ||||
| function setContext(key, context) { | ||||
|     get_current_component().$$.context.set(key, context); | ||||
|     return context; | ||||
| } | ||||
| /** | ||||
|  * Retrieves the context that belongs to the closest parent component with the specified `key`. | ||||
|  * Must be called during component initialisation. | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-getcontext | ||||
|  */ | ||||
| function getContext(key) { | ||||
|     return get_current_component().$$.context.get(key); | ||||
| } | ||||
|  | ||||
| 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); | ||||
| } | ||||
| // flush() calls callbacks in this order: | ||||
| // 1. All beforeUpdate callbacks, in order: parents before children | ||||
| // 2. All bind:this callbacks, in reverse order: children before parents. | ||||
| // 3. All afterUpdate callbacks, in order: parents before children. EXCEPT | ||||
| //    for afterUpdates called during the initial onMount, which are called in | ||||
| //    reverse order: children before parents. | ||||
| // Since callbacks might update component values, which could trigger another | ||||
| // call to flush(), the following steps guard against this: | ||||
| // 1. During beforeUpdate, any updated components will be added to the | ||||
| //    dirty_components array and will cause a reentrant call to flush(). Because | ||||
| //    the flush index is kept outside the function, the reentrant call will pick | ||||
| //    up where the earlier call left off and go through all dirty components. The | ||||
| //    current_component value is saved and restored so that the reentrant call will | ||||
| //    not interfere with the "parent" flush() call. | ||||
| // 2. bind:this callbacks cannot trigger new flush() calls. | ||||
| // 3. During afterUpdate, any updated components will NOT have their afterUpdate | ||||
| //    callback called a second time; the seen_callbacks set, outside the flush() | ||||
| //    function, guarantees this behavior. | ||||
| const seen_callbacks = new Set(); | ||||
| let flushidx = 0; // Do *not* move this inside the flush() function | ||||
| function flush() { | ||||
|     const saved_component = current_component; | ||||
|     do { | ||||
|         // first, call beforeUpdate functions | ||||
|         // and update components | ||||
|         while (flushidx < dirty_components.length) { | ||||
|             const component = dirty_components[flushidx]; | ||||
|             flushidx++; | ||||
|             set_current_component(component); | ||||
|             update(component.$$); | ||||
|         } | ||||
|         set_current_component(null); | ||||
|         dirty_components.length = 0; | ||||
|         flushidx = 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; | ||||
|     seen_callbacks.clear(); | ||||
|     set_current_component(saved_component); | ||||
| } | ||||
| 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(); | ||||
| function transition_in(block, local) { | ||||
|     if (block && block.i) { | ||||
|         outroing.delete(block); | ||||
|         block.i(local); | ||||
|     } | ||||
| } | ||||
|  | ||||
| const globals = (typeof window !== 'undefined' | ||||
|     ? window | ||||
|     : typeof globalThis !== 'undefined' | ||||
|         ? globalThis | ||||
|         : global); | ||||
| function mount_component(component, target, anchor, customElement) { | ||||
|     const { fragment, after_update } = component.$$; | ||||
|     fragment && fragment.m(target, anchor); | ||||
|     if (!customElement) { | ||||
|         // onMount happens before the initial afterUpdate | ||||
|         add_render_callback(() => { | ||||
|             const new_on_destroy = component.$$.on_mount.map(run).filter(is_function); | ||||
|             // if the component was destroyed immediately | ||||
|             // it will update the `$$.on_destroy` reference to `null`. | ||||
|             // the destructured on_destroy may still reference to the old array | ||||
|             if (component.$$.on_destroy) { | ||||
|                 component.$$.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, append_styles, dirty = [-1]) { | ||||
|     const parent_component = current_component; | ||||
|     set_current_component(component); | ||||
|     const $$ = component.$$ = { | ||||
|         fragment: null, | ||||
|         ctx: [], | ||||
|         // state | ||||
|         props, | ||||
|         update: noop, | ||||
|         not_equal, | ||||
|         bound: blank_object(), | ||||
|         // lifecycle | ||||
|         on_mount: [], | ||||
|         on_destroy: [], | ||||
|         on_disconnect: [], | ||||
|         before_update: [], | ||||
|         after_update: [], | ||||
|         context: new Map(options.context || (parent_component ? parent_component.$$.context : [])), | ||||
|         // everything else | ||||
|         callbacks: blank_object(), | ||||
|         dirty, | ||||
|         skip_bound: false, | ||||
|         root: options.target || parent_component.$$.root | ||||
|     }; | ||||
|     append_styles && append_styles($$.root); | ||||
|     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); | ||||
| } | ||||
| let SvelteElement; | ||||
| if (typeof HTMLElement === 'function') { | ||||
|     SvelteElement = class extends HTMLElement { | ||||
|         constructor() { | ||||
|             super(); | ||||
|             this.attachShadow({ mode: 'open' }); | ||||
|         } | ||||
|         connectedCallback() { | ||||
|             const { on_mount } = this.$$; | ||||
|             this.$$.on_disconnect = on_mount.map(run).filter(is_function); | ||||
|             // @ts-ignore todo: improve typings | ||||
|             for (const key in this.$$.slotted) { | ||||
|                 // @ts-ignore todo: improve typings | ||||
|                 this.appendChild(this.$$.slotted[key]); | ||||
|             } | ||||
|         } | ||||
|         attributeChangedCallback(attr, _oldValue, newValue) { | ||||
|             this[attr] = newValue; | ||||
|         } | ||||
|         disconnectedCallback() { | ||||
|             run_all(this.$$.on_disconnect); | ||||
|         } | ||||
|         $destroy() { | ||||
|             destroy_component(this, 1); | ||||
|             this.$destroy = noop; | ||||
|         } | ||||
|         $on(type, callback) { | ||||
|             // TODO should this delegate to addEventListener? | ||||
|             if (!is_function(callback)) { | ||||
|                 return noop; | ||||
|             } | ||||
|             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.52.0' }, detail), { bubbles: true })); | ||||
| } | ||||
| 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_each_argument(arg) { | ||||
|     if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) { | ||||
|         let msg = '{#each} only iterates over array-like objects.'; | ||||
|         if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) { | ||||
|             msg += ' You can use a spread to convert this iterable into an array.'; | ||||
|         } | ||||
|         throw new Error(msg); | ||||
|     } | ||||
| } | ||||
| 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}".`); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| export { set_style as A, listen_dev as B, getContext as C, setContext as D, run_all as E, svg_element as F, is_function as G, HtmlTag as H, SvelteElement as S, attribute_to_object as a, insert_dev as b, validate_store as c, dispatch_dev as d, component_subscribe as e, validate_each_argument as f, globals as g, empty as h, init as i, detach_dev as j, element as k, space as l, add_location as m, noop as n, onMount as o, attr_dev as p, src_url_equal as q, set_custom_element_data as r, safe_not_equal as s, text as t, append_dev as u, validate_slots as v, set_data_dev as w, destroy_each as x, flush as y, binding_callbacks as z }; | ||||
| @@ -1,509 +0,0 @@ | ||||
|  | ||||
| (function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document); | ||||
| function noop() { } | ||||
| 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'); | ||||
| } | ||||
| let src_url_equal_anchor; | ||||
| function src_url_equal(element_src, url) { | ||||
|     if (!src_url_equal_anchor) { | ||||
|         src_url_equal_anchor = document.createElement('a'); | ||||
|     } | ||||
|     src_url_equal_anchor.href = url; | ||||
|     return element_src === src_url_equal_anchor.href; | ||||
| } | ||||
| function is_empty(obj) { | ||||
|     return Object.keys(obj).length === 0; | ||||
| } | ||||
| function validate_store(store, name) { | ||||
|     if (store != null && typeof store.subscribe !== 'function') { | ||||
|         throw new Error(`'${name}' is not a store with a 'subscribe' method`); | ||||
|     } | ||||
| } | ||||
| function subscribe(store, ...callbacks) { | ||||
|     if (store == null) { | ||||
|         return noop; | ||||
|     } | ||||
|     const unsub = store.subscribe(...callbacks); | ||||
|     return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub; | ||||
| } | ||||
| function component_subscribe(component, store, callback) { | ||||
|     component.$$.on_destroy.push(subscribe(store, callback)); | ||||
| } | ||||
| 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 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 attr(node, attribute, value) { | ||||
|     if (value == null) | ||||
|         node.removeAttribute(attribute); | ||||
|     else if (node.getAttribute(attribute) !== value) | ||||
|         node.setAttribute(attribute, value); | ||||
| } | ||||
| function set_custom_element_data(node, prop, value) { | ||||
|     if (prop in node) { | ||||
|         node[prop] = typeof node[prop] === 'boolean' && value === '' ? true : value; | ||||
|     } | ||||
|     else { | ||||
|         attr(node, prop, value); | ||||
|     } | ||||
| } | ||||
| function children(element) { | ||||
|     return Array.from(element.childNodes); | ||||
| } | ||||
| function set_style(node, key, value, important) { | ||||
|     if (value === null) { | ||||
|         node.style.removeProperty(key); | ||||
|     } | ||||
|     else { | ||||
|         node.style.setProperty(key, value, important ? 'important' : ''); | ||||
|     } | ||||
| } | ||||
| function custom_event(type, detail, { bubbles = false, cancelable = false } = {}) { | ||||
|     const e = document.createEvent('CustomEvent'); | ||||
|     e.initCustomEvent(type, bubbles, cancelable, detail); | ||||
|     return e; | ||||
| } | ||||
| class HtmlTag { | ||||
|     constructor(is_svg = false) { | ||||
|         this.is_svg = false; | ||||
|         this.is_svg = is_svg; | ||||
|         this.e = this.n = null; | ||||
|     } | ||||
|     c(html) { | ||||
|         this.h(html); | ||||
|     } | ||||
|     m(html, target, anchor = null) { | ||||
|         if (!this.e) { | ||||
|             if (this.is_svg) | ||||
|                 this.e = svg_element(target.nodeName); | ||||
|             else | ||||
|                 this.e = element(target.nodeName); | ||||
|             this.t = target; | ||||
|             this.c(html); | ||||
|         } | ||||
|         this.i(anchor); | ||||
|     } | ||||
|     h(html) { | ||||
|         this.e.innerHTML = html; | ||||
|         this.n = Array.from(this.e.childNodes); | ||||
|     } | ||||
|     i(anchor) { | ||||
|         for (let i = 0; i < this.n.length; i += 1) { | ||||
|             insert(this.t, this.n[i], anchor); | ||||
|         } | ||||
|     } | ||||
|     p(html) { | ||||
|         this.d(); | ||||
|         this.h(html); | ||||
|         this.i(this.a); | ||||
|     } | ||||
|     d() { | ||||
|         this.n.forEach(detach); | ||||
|     } | ||||
| } | ||||
| function attribute_to_object(attributes) { | ||||
|     const result = {}; | ||||
|     for (const attribute of attributes) { | ||||
|         result[attribute.name] = attribute.value; | ||||
|     } | ||||
|     return result; | ||||
| } | ||||
|  | ||||
| let current_component; | ||||
| function set_current_component(component) { | ||||
|     current_component = component; | ||||
| } | ||||
| function get_current_component() { | ||||
|     if (!current_component) | ||||
|         throw new Error('Function called outside component initialization'); | ||||
|     return current_component; | ||||
| } | ||||
| /** | ||||
|  * The `onMount` function schedules a callback to run as soon as the component has been mounted to the DOM. | ||||
|  * It must be called during the component's initialisation (but doesn't need to live *inside* the component; | ||||
|  * it can be called from an external module). | ||||
|  * | ||||
|  * `onMount` does not run inside a [server-side component](/docs#run-time-server-side-component-api). | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-onmount | ||||
|  */ | ||||
| function onMount(fn) { | ||||
|     get_current_component().$$.on_mount.push(fn); | ||||
| } | ||||
| /** | ||||
|  * Associates an arbitrary `context` object with the current component and the specified `key` | ||||
|  * and returns that object. The context is then available to children of the component | ||||
|  * (including slotted content) with `getContext`. | ||||
|  * | ||||
|  * Like lifecycle functions, this must be called during component initialisation. | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-setcontext | ||||
|  */ | ||||
| function setContext(key, context) { | ||||
|     get_current_component().$$.context.set(key, context); | ||||
|     return context; | ||||
| } | ||||
| /** | ||||
|  * Retrieves the context that belongs to the closest parent component with the specified `key`. | ||||
|  * Must be called during component initialisation. | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-getcontext | ||||
|  */ | ||||
| function getContext(key) { | ||||
|     return get_current_component().$$.context.get(key); | ||||
| } | ||||
|  | ||||
| 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); | ||||
| } | ||||
| // flush() calls callbacks in this order: | ||||
| // 1. All beforeUpdate callbacks, in order: parents before children | ||||
| // 2. All bind:this callbacks, in reverse order: children before parents. | ||||
| // 3. All afterUpdate callbacks, in order: parents before children. EXCEPT | ||||
| //    for afterUpdates called during the initial onMount, which are called in | ||||
| //    reverse order: children before parents. | ||||
| // Since callbacks might update component values, which could trigger another | ||||
| // call to flush(), the following steps guard against this: | ||||
| // 1. During beforeUpdate, any updated components will be added to the | ||||
| //    dirty_components array and will cause a reentrant call to flush(). Because | ||||
| //    the flush index is kept outside the function, the reentrant call will pick | ||||
| //    up where the earlier call left off and go through all dirty components. The | ||||
| //    current_component value is saved and restored so that the reentrant call will | ||||
| //    not interfere with the "parent" flush() call. | ||||
| // 2. bind:this callbacks cannot trigger new flush() calls. | ||||
| // 3. During afterUpdate, any updated components will NOT have their afterUpdate | ||||
| //    callback called a second time; the seen_callbacks set, outside the flush() | ||||
| //    function, guarantees this behavior. | ||||
| const seen_callbacks = new Set(); | ||||
| let flushidx = 0; // Do *not* move this inside the flush() function | ||||
| function flush() { | ||||
|     const saved_component = current_component; | ||||
|     do { | ||||
|         // first, call beforeUpdate functions | ||||
|         // and update components | ||||
|         while (flushidx < dirty_components.length) { | ||||
|             const component = dirty_components[flushidx]; | ||||
|             flushidx++; | ||||
|             set_current_component(component); | ||||
|             update(component.$$); | ||||
|         } | ||||
|         set_current_component(null); | ||||
|         dirty_components.length = 0; | ||||
|         flushidx = 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; | ||||
|     seen_callbacks.clear(); | ||||
|     set_current_component(saved_component); | ||||
| } | ||||
| 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(); | ||||
| function transition_in(block, local) { | ||||
|     if (block && block.i) { | ||||
|         outroing.delete(block); | ||||
|         block.i(local); | ||||
|     } | ||||
| } | ||||
|  | ||||
| const globals = (typeof window !== 'undefined' | ||||
|     ? window | ||||
|     : typeof globalThis !== 'undefined' | ||||
|         ? globalThis | ||||
|         : global); | ||||
| function mount_component(component, target, anchor, customElement) { | ||||
|     const { fragment, after_update } = component.$$; | ||||
|     fragment && fragment.m(target, anchor); | ||||
|     if (!customElement) { | ||||
|         // onMount happens before the initial afterUpdate | ||||
|         add_render_callback(() => { | ||||
|             const new_on_destroy = component.$$.on_mount.map(run).filter(is_function); | ||||
|             // if the component was destroyed immediately | ||||
|             // it will update the `$$.on_destroy` reference to `null`. | ||||
|             // the destructured on_destroy may still reference to the old array | ||||
|             if (component.$$.on_destroy) { | ||||
|                 component.$$.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, append_styles, dirty = [-1]) { | ||||
|     const parent_component = current_component; | ||||
|     set_current_component(component); | ||||
|     const $$ = component.$$ = { | ||||
|         fragment: null, | ||||
|         ctx: [], | ||||
|         // state | ||||
|         props, | ||||
|         update: noop, | ||||
|         not_equal, | ||||
|         bound: blank_object(), | ||||
|         // lifecycle | ||||
|         on_mount: [], | ||||
|         on_destroy: [], | ||||
|         on_disconnect: [], | ||||
|         before_update: [], | ||||
|         after_update: [], | ||||
|         context: new Map(options.context || (parent_component ? parent_component.$$.context : [])), | ||||
|         // everything else | ||||
|         callbacks: blank_object(), | ||||
|         dirty, | ||||
|         skip_bound: false, | ||||
|         root: options.target || parent_component.$$.root | ||||
|     }; | ||||
|     append_styles && append_styles($$.root); | ||||
|     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); | ||||
| } | ||||
| let SvelteElement; | ||||
| if (typeof HTMLElement === 'function') { | ||||
|     SvelteElement = class extends HTMLElement { | ||||
|         constructor() { | ||||
|             super(); | ||||
|             this.attachShadow({ mode: 'open' }); | ||||
|         } | ||||
|         connectedCallback() { | ||||
|             const { on_mount } = this.$$; | ||||
|             this.$$.on_disconnect = on_mount.map(run).filter(is_function); | ||||
|             // @ts-ignore todo: improve typings | ||||
|             for (const key in this.$$.slotted) { | ||||
|                 // @ts-ignore todo: improve typings | ||||
|                 this.appendChild(this.$$.slotted[key]); | ||||
|             } | ||||
|         } | ||||
|         attributeChangedCallback(attr, _oldValue, newValue) { | ||||
|             this[attr] = newValue; | ||||
|         } | ||||
|         disconnectedCallback() { | ||||
|             run_all(this.$$.on_disconnect); | ||||
|         } | ||||
|         $destroy() { | ||||
|             destroy_component(this, 1); | ||||
|             this.$destroy = noop; | ||||
|         } | ||||
|         $on(type, callback) { | ||||
|             // TODO should this delegate to addEventListener? | ||||
|             if (!is_function(callback)) { | ||||
|                 return noop; | ||||
|             } | ||||
|             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.52.0' }, detail), { bubbles: true })); | ||||
| } | ||||
| 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_each_argument(arg) { | ||||
|     if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) { | ||||
|         let msg = '{#each} only iterates over array-like objects.'; | ||||
|         if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) { | ||||
|             msg += ' You can use a spread to convert this iterable into an array.'; | ||||
|         } | ||||
|         throw new Error(msg); | ||||
|     } | ||||
| } | ||||
| 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}".`); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| export { set_style as A, listen_dev as B, getContext as C, setContext as D, run_all as E, svg_element as F, is_function as G, HtmlTag as H, SvelteElement as S, attribute_to_object as a, insert_dev as b, validate_slots as c, dispatch_dev as d, element as e, space as f, add_location as g, attr_dev as h, init as i, src_url_equal as j, append_dev as k, detach_dev as l, destroy_each as m, noop as n, onMount as o, validate_store as p, component_subscribe as q, globals as r, safe_not_equal as s, text as t, empty as u, validate_each_argument as v, set_custom_element_data as w, set_data_dev as x, flush as y, binding_callbacks as z }; | ||||
| @@ -1,53 +0,0 @@ | ||||
|  | ||||
| (function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document); | ||||
| import { n as noop, s as safe_not_equal } from './index-d77c7bdd.js'; | ||||
|  | ||||
| const subscriber_queue = []; | ||||
| /** | ||||
|  * Create a `Writable` store that allows both updating and reading by subscription. | ||||
|  * @param {*=}value initial value | ||||
|  * @param {StartStopNotifier=}start start and stop notifications for subscriptions | ||||
|  */ | ||||
| function writable(value, start = noop) { | ||||
|     let stop; | ||||
|     const subscribers = new Set(); | ||||
|     function set(new_value) { | ||||
|         if (safe_not_equal(value, new_value)) { | ||||
|             value = new_value; | ||||
|             if (stop) { // store is ready | ||||
|                 const run_queue = !subscriber_queue.length; | ||||
|                 for (const subscriber of subscribers) { | ||||
|                     subscriber[1](); | ||||
|                     subscriber_queue.push(subscriber, value); | ||||
|                 } | ||||
|                 if (run_queue) { | ||||
|                     for (let i = 0; i < subscriber_queue.length; i += 2) { | ||||
|                         subscriber_queue[i][0](subscriber_queue[i + 1]); | ||||
|                     } | ||||
|                     subscriber_queue.length = 0; | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|     function update(fn) { | ||||
|         set(fn(value)); | ||||
|     } | ||||
|     function subscribe(run, invalidate = noop) { | ||||
|         const subscriber = [run, invalidate]; | ||||
|         subscribers.add(subscriber); | ||||
|         if (subscribers.size === 1) { | ||||
|             stop = start(set) || noop; | ||||
|         } | ||||
|         run(value); | ||||
|         return () => { | ||||
|             subscribers.delete(subscriber); | ||||
|             if (subscribers.size === 0) { | ||||
|                 stop(); | ||||
|                 stop = null; | ||||
|             } | ||||
|         }; | ||||
|     } | ||||
|     return { set, update, subscribe }; | ||||
| } | ||||
|  | ||||
| export { writable as w }; | ||||
| @@ -1,53 +0,0 @@ | ||||
|  | ||||
| (function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document); | ||||
| import { n as noop, s as safe_not_equal } from './index-2620635a.js'; | ||||
|  | ||||
| const subscriber_queue = []; | ||||
| /** | ||||
|  * Create a `Writable` store that allows both updating and reading by subscription. | ||||
|  * @param {*=}value initial value | ||||
|  * @param {StartStopNotifier=}start start and stop notifications for subscriptions | ||||
|  */ | ||||
| function writable(value, start = noop) { | ||||
|     let stop; | ||||
|     const subscribers = new Set(); | ||||
|     function set(new_value) { | ||||
|         if (safe_not_equal(value, new_value)) { | ||||
|             value = new_value; | ||||
|             if (stop) { // store is ready | ||||
|                 const run_queue = !subscriber_queue.length; | ||||
|                 for (const subscriber of subscribers) { | ||||
|                     subscriber[1](); | ||||
|                     subscriber_queue.push(subscriber, value); | ||||
|                 } | ||||
|                 if (run_queue) { | ||||
|                     for (let i = 0; i < subscriber_queue.length; i += 2) { | ||||
|                         subscriber_queue[i][0](subscriber_queue[i + 1]); | ||||
|                     } | ||||
|                     subscriber_queue.length = 0; | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|     function update(fn) { | ||||
|         set(fn(value)); | ||||
|     } | ||||
|     function subscribe(run, invalidate = noop) { | ||||
|         const subscriber = [run, invalidate]; | ||||
|         subscribers.add(subscriber); | ||||
|         if (subscribers.size === 1) { | ||||
|             stop = start(set) || noop; | ||||
|         } | ||||
|         run(value); | ||||
|         return () => { | ||||
|             subscribers.delete(subscriber); | ||||
|             if (subscribers.size === 0) { | ||||
|                 stop(); | ||||
|                 stop = null; | ||||
|             } | ||||
|         }; | ||||
|     } | ||||
|     return { set, update, subscribe }; | ||||
| } | ||||
|  | ||||
| export { writable as w }; | ||||
| @@ -1,445 +0,0 @@ | ||||
|  | ||||
| (function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document); | ||||
| function noop() { } | ||||
| 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'); | ||||
| } | ||||
| let src_url_equal_anchor; | ||||
| function src_url_equal(element_src, url) { | ||||
|     if (!src_url_equal_anchor) { | ||||
|         src_url_equal_anchor = document.createElement('a'); | ||||
|     } | ||||
|     src_url_equal_anchor.href = url; | ||||
|     return element_src === src_url_equal_anchor.href; | ||||
| } | ||||
| function is_empty(obj) { | ||||
|     return Object.keys(obj).length === 0; | ||||
| } | ||||
| 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 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 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 children(element) { | ||||
|     return Array.from(element.childNodes); | ||||
| } | ||||
| function set_style(node, key, value, important) { | ||||
|     if (value === null) { | ||||
|         node.style.removeProperty(key); | ||||
|     } | ||||
|     else { | ||||
|         node.style.setProperty(key, value, important ? 'important' : ''); | ||||
|     } | ||||
| } | ||||
| function custom_event(type, detail, { bubbles = false, cancelable = false } = {}) { | ||||
|     const e = document.createEvent('CustomEvent'); | ||||
|     e.initCustomEvent(type, bubbles, cancelable, detail); | ||||
|     return e; | ||||
| } | ||||
| function attribute_to_object(attributes) { | ||||
|     const result = {}; | ||||
|     for (const attribute of attributes) { | ||||
|         result[attribute.name] = attribute.value; | ||||
|     } | ||||
|     return result; | ||||
| } | ||||
|  | ||||
| let current_component; | ||||
| function set_current_component(component) { | ||||
|     current_component = component; | ||||
| } | ||||
| function get_current_component() { | ||||
|     if (!current_component) | ||||
|         throw new Error('Function called outside component initialization'); | ||||
|     return current_component; | ||||
| } | ||||
| /** | ||||
|  * The `onMount` function schedules a callback to run as soon as the component has been mounted to the DOM. | ||||
|  * It must be called during the component's initialisation (but doesn't need to live *inside* the component; | ||||
|  * it can be called from an external module). | ||||
|  * | ||||
|  * `onMount` does not run inside a [server-side component](/docs#run-time-server-side-component-api). | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-onmount | ||||
|  */ | ||||
| function onMount(fn) { | ||||
|     get_current_component().$$.on_mount.push(fn); | ||||
| } | ||||
| /** | ||||
|  * Associates an arbitrary `context` object with the current component and the specified `key` | ||||
|  * and returns that object. The context is then available to children of the component | ||||
|  * (including slotted content) with `getContext`. | ||||
|  * | ||||
|  * Like lifecycle functions, this must be called during component initialisation. | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-setcontext | ||||
|  */ | ||||
| function setContext(key, context) { | ||||
|     get_current_component().$$.context.set(key, context); | ||||
|     return context; | ||||
| } | ||||
| /** | ||||
|  * Retrieves the context that belongs to the closest parent component with the specified `key`. | ||||
|  * Must be called during component initialisation. | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-getcontext | ||||
|  */ | ||||
| function getContext(key) { | ||||
|     return get_current_component().$$.context.get(key); | ||||
| } | ||||
|  | ||||
| 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); | ||||
| } | ||||
| // flush() calls callbacks in this order: | ||||
| // 1. All beforeUpdate callbacks, in order: parents before children | ||||
| // 2. All bind:this callbacks, in reverse order: children before parents. | ||||
| // 3. All afterUpdate callbacks, in order: parents before children. EXCEPT | ||||
| //    for afterUpdates called during the initial onMount, which are called in | ||||
| //    reverse order: children before parents. | ||||
| // Since callbacks might update component values, which could trigger another | ||||
| // call to flush(), the following steps guard against this: | ||||
| // 1. During beforeUpdate, any updated components will be added to the | ||||
| //    dirty_components array and will cause a reentrant call to flush(). Because | ||||
| //    the flush index is kept outside the function, the reentrant call will pick | ||||
| //    up where the earlier call left off and go through all dirty components. The | ||||
| //    current_component value is saved and restored so that the reentrant call will | ||||
| //    not interfere with the "parent" flush() call. | ||||
| // 2. bind:this callbacks cannot trigger new flush() calls. | ||||
| // 3. During afterUpdate, any updated components will NOT have their afterUpdate | ||||
| //    callback called a second time; the seen_callbacks set, outside the flush() | ||||
| //    function, guarantees this behavior. | ||||
| const seen_callbacks = new Set(); | ||||
| let flushidx = 0; // Do *not* move this inside the flush() function | ||||
| function flush() { | ||||
|     const saved_component = current_component; | ||||
|     do { | ||||
|         // first, call beforeUpdate functions | ||||
|         // and update components | ||||
|         while (flushidx < dirty_components.length) { | ||||
|             const component = dirty_components[flushidx]; | ||||
|             flushidx++; | ||||
|             set_current_component(component); | ||||
|             update(component.$$); | ||||
|         } | ||||
|         set_current_component(null); | ||||
|         dirty_components.length = 0; | ||||
|         flushidx = 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; | ||||
|     seen_callbacks.clear(); | ||||
|     set_current_component(saved_component); | ||||
| } | ||||
| 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(); | ||||
| function transition_in(block, local) { | ||||
|     if (block && block.i) { | ||||
|         outroing.delete(block); | ||||
|         block.i(local); | ||||
|     } | ||||
| } | ||||
|  | ||||
| const globals = (typeof window !== 'undefined' | ||||
|     ? window | ||||
|     : typeof globalThis !== 'undefined' | ||||
|         ? globalThis | ||||
|         : global); | ||||
| function mount_component(component, target, anchor, customElement) { | ||||
|     const { fragment, after_update } = component.$$; | ||||
|     fragment && fragment.m(target, anchor); | ||||
|     if (!customElement) { | ||||
|         // onMount happens before the initial afterUpdate | ||||
|         add_render_callback(() => { | ||||
|             const new_on_destroy = component.$$.on_mount.map(run).filter(is_function); | ||||
|             // if the component was destroyed immediately | ||||
|             // it will update the `$$.on_destroy` reference to `null`. | ||||
|             // the destructured on_destroy may still reference to the old array | ||||
|             if (component.$$.on_destroy) { | ||||
|                 component.$$.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, append_styles, dirty = [-1]) { | ||||
|     const parent_component = current_component; | ||||
|     set_current_component(component); | ||||
|     const $$ = component.$$ = { | ||||
|         fragment: null, | ||||
|         ctx: [], | ||||
|         // state | ||||
|         props, | ||||
|         update: noop, | ||||
|         not_equal, | ||||
|         bound: blank_object(), | ||||
|         // lifecycle | ||||
|         on_mount: [], | ||||
|         on_destroy: [], | ||||
|         on_disconnect: [], | ||||
|         before_update: [], | ||||
|         after_update: [], | ||||
|         context: new Map(options.context || (parent_component ? parent_component.$$.context : [])), | ||||
|         // everything else | ||||
|         callbacks: blank_object(), | ||||
|         dirty, | ||||
|         skip_bound: false, | ||||
|         root: options.target || parent_component.$$.root | ||||
|     }; | ||||
|     append_styles && append_styles($$.root); | ||||
|     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); | ||||
| } | ||||
| let SvelteElement; | ||||
| if (typeof HTMLElement === 'function') { | ||||
|     SvelteElement = class extends HTMLElement { | ||||
|         constructor() { | ||||
|             super(); | ||||
|             this.attachShadow({ mode: 'open' }); | ||||
|         } | ||||
|         connectedCallback() { | ||||
|             const { on_mount } = this.$$; | ||||
|             this.$$.on_disconnect = on_mount.map(run).filter(is_function); | ||||
|             // @ts-ignore todo: improve typings | ||||
|             for (const key in this.$$.slotted) { | ||||
|                 // @ts-ignore todo: improve typings | ||||
|                 this.appendChild(this.$$.slotted[key]); | ||||
|             } | ||||
|         } | ||||
|         attributeChangedCallback(attr, _oldValue, newValue) { | ||||
|             this[attr] = newValue; | ||||
|         } | ||||
|         disconnectedCallback() { | ||||
|             run_all(this.$$.on_disconnect); | ||||
|         } | ||||
|         $destroy() { | ||||
|             destroy_component(this, 1); | ||||
|             this.$destroy = noop; | ||||
|         } | ||||
|         $on(type, callback) { | ||||
|             // TODO should this delegate to addEventListener? | ||||
|             if (!is_function(callback)) { | ||||
|                 return noop; | ||||
|             } | ||||
|             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.52.0' }, detail), { bubbles: true })); | ||||
| } | ||||
| 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_each_argument(arg) { | ||||
|     if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) { | ||||
|         let msg = '{#each} only iterates over array-like objects.'; | ||||
|         if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) { | ||||
|             msg += ' You can use a spread to convert this iterable into an array.'; | ||||
|         } | ||||
|         throw new Error(msg); | ||||
|     } | ||||
| } | ||||
| 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}".`); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| export { run_all as A, svg_element as B, SvelteElement as S, attribute_to_object as a, insert_dev as b, add_location as c, dispatch_dev as d, element as e, attr_dev as f, append_dev as g, detach_dev as h, init as i, flush as j, validate_each_argument as k, globals as l, destroy_each as m, noop as n, onMount as o, binding_callbacks as p, space as q, set_style as r, safe_not_equal as s, text as t, listen_dev as u, validate_slots as v, set_data_dev as w, getContext as x, setContext as y, src_url_equal as z }; | ||||
| @@ -1,456 +0,0 @@ | ||||
|  | ||||
| (function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document); | ||||
| function noop() { } | ||||
| 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'); | ||||
| } | ||||
| let src_url_equal_anchor; | ||||
| function src_url_equal(element_src, url) { | ||||
|     if (!src_url_equal_anchor) { | ||||
|         src_url_equal_anchor = document.createElement('a'); | ||||
|     } | ||||
|     src_url_equal_anchor.href = url; | ||||
|     return element_src === src_url_equal_anchor.href; | ||||
| } | ||||
| function is_empty(obj) { | ||||
|     return Object.keys(obj).length === 0; | ||||
| } | ||||
| 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 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 attr(node, attribute, value) { | ||||
|     if (value == null) | ||||
|         node.removeAttribute(attribute); | ||||
|     else if (node.getAttribute(attribute) !== value) | ||||
|         node.setAttribute(attribute, value); | ||||
| } | ||||
| function set_custom_element_data(node, prop, value) { | ||||
|     if (prop in node) { | ||||
|         node[prop] = typeof node[prop] === 'boolean' && value === '' ? true : value; | ||||
|     } | ||||
|     else { | ||||
|         attr(node, prop, value); | ||||
|     } | ||||
| } | ||||
| function children(element) { | ||||
|     return Array.from(element.childNodes); | ||||
| } | ||||
| function set_style(node, key, value, important) { | ||||
|     if (value === null) { | ||||
|         node.style.removeProperty(key); | ||||
|     } | ||||
|     else { | ||||
|         node.style.setProperty(key, value, important ? 'important' : ''); | ||||
|     } | ||||
| } | ||||
| function custom_event(type, detail, { bubbles = false, cancelable = false } = {}) { | ||||
|     const e = document.createEvent('CustomEvent'); | ||||
|     e.initCustomEvent(type, bubbles, cancelable, detail); | ||||
|     return e; | ||||
| } | ||||
| function attribute_to_object(attributes) { | ||||
|     const result = {}; | ||||
|     for (const attribute of attributes) { | ||||
|         result[attribute.name] = attribute.value; | ||||
|     } | ||||
|     return result; | ||||
| } | ||||
|  | ||||
| let current_component; | ||||
| function set_current_component(component) { | ||||
|     current_component = component; | ||||
| } | ||||
| function get_current_component() { | ||||
|     if (!current_component) | ||||
|         throw new Error('Function called outside component initialization'); | ||||
|     return current_component; | ||||
| } | ||||
| /** | ||||
|  * The `onMount` function schedules a callback to run as soon as the component has been mounted to the DOM. | ||||
|  * It must be called during the component's initialisation (but doesn't need to live *inside* the component; | ||||
|  * it can be called from an external module). | ||||
|  * | ||||
|  * `onMount` does not run inside a [server-side component](/docs#run-time-server-side-component-api). | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-onmount | ||||
|  */ | ||||
| function onMount(fn) { | ||||
|     get_current_component().$$.on_mount.push(fn); | ||||
| } | ||||
| /** | ||||
|  * Associates an arbitrary `context` object with the current component and the specified `key` | ||||
|  * and returns that object. The context is then available to children of the component | ||||
|  * (including slotted content) with `getContext`. | ||||
|  * | ||||
|  * Like lifecycle functions, this must be called during component initialisation. | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-setcontext | ||||
|  */ | ||||
| function setContext(key, context) { | ||||
|     get_current_component().$$.context.set(key, context); | ||||
|     return context; | ||||
| } | ||||
| /** | ||||
|  * Retrieves the context that belongs to the closest parent component with the specified `key`. | ||||
|  * Must be called during component initialisation. | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-getcontext | ||||
|  */ | ||||
| function getContext(key) { | ||||
|     return get_current_component().$$.context.get(key); | ||||
| } | ||||
|  | ||||
| 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); | ||||
| } | ||||
| // flush() calls callbacks in this order: | ||||
| // 1. All beforeUpdate callbacks, in order: parents before children | ||||
| // 2. All bind:this callbacks, in reverse order: children before parents. | ||||
| // 3. All afterUpdate callbacks, in order: parents before children. EXCEPT | ||||
| //    for afterUpdates called during the initial onMount, which are called in | ||||
| //    reverse order: children before parents. | ||||
| // Since callbacks might update component values, which could trigger another | ||||
| // call to flush(), the following steps guard against this: | ||||
| // 1. During beforeUpdate, any updated components will be added to the | ||||
| //    dirty_components array and will cause a reentrant call to flush(). Because | ||||
| //    the flush index is kept outside the function, the reentrant call will pick | ||||
| //    up where the earlier call left off and go through all dirty components. The | ||||
| //    current_component value is saved and restored so that the reentrant call will | ||||
| //    not interfere with the "parent" flush() call. | ||||
| // 2. bind:this callbacks cannot trigger new flush() calls. | ||||
| // 3. During afterUpdate, any updated components will NOT have their afterUpdate | ||||
| //    callback called a second time; the seen_callbacks set, outside the flush() | ||||
| //    function, guarantees this behavior. | ||||
| const seen_callbacks = new Set(); | ||||
| let flushidx = 0; // Do *not* move this inside the flush() function | ||||
| function flush() { | ||||
|     const saved_component = current_component; | ||||
|     do { | ||||
|         // first, call beforeUpdate functions | ||||
|         // and update components | ||||
|         while (flushidx < dirty_components.length) { | ||||
|             const component = dirty_components[flushidx]; | ||||
|             flushidx++; | ||||
|             set_current_component(component); | ||||
|             update(component.$$); | ||||
|         } | ||||
|         set_current_component(null); | ||||
|         dirty_components.length = 0; | ||||
|         flushidx = 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; | ||||
|     seen_callbacks.clear(); | ||||
|     set_current_component(saved_component); | ||||
| } | ||||
| 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(); | ||||
| function transition_in(block, local) { | ||||
|     if (block && block.i) { | ||||
|         outroing.delete(block); | ||||
|         block.i(local); | ||||
|     } | ||||
| } | ||||
|  | ||||
| const globals = (typeof window !== 'undefined' | ||||
|     ? window | ||||
|     : typeof globalThis !== 'undefined' | ||||
|         ? globalThis | ||||
|         : global); | ||||
| function mount_component(component, target, anchor, customElement) { | ||||
|     const { fragment, after_update } = component.$$; | ||||
|     fragment && fragment.m(target, anchor); | ||||
|     if (!customElement) { | ||||
|         // onMount happens before the initial afterUpdate | ||||
|         add_render_callback(() => { | ||||
|             const new_on_destroy = component.$$.on_mount.map(run).filter(is_function); | ||||
|             // if the component was destroyed immediately | ||||
|             // it will update the `$$.on_destroy` reference to `null`. | ||||
|             // the destructured on_destroy may still reference to the old array | ||||
|             if (component.$$.on_destroy) { | ||||
|                 component.$$.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, append_styles, dirty = [-1]) { | ||||
|     const parent_component = current_component; | ||||
|     set_current_component(component); | ||||
|     const $$ = component.$$ = { | ||||
|         fragment: null, | ||||
|         ctx: [], | ||||
|         // state | ||||
|         props, | ||||
|         update: noop, | ||||
|         not_equal, | ||||
|         bound: blank_object(), | ||||
|         // lifecycle | ||||
|         on_mount: [], | ||||
|         on_destroy: [], | ||||
|         on_disconnect: [], | ||||
|         before_update: [], | ||||
|         after_update: [], | ||||
|         context: new Map(options.context || (parent_component ? parent_component.$$.context : [])), | ||||
|         // everything else | ||||
|         callbacks: blank_object(), | ||||
|         dirty, | ||||
|         skip_bound: false, | ||||
|         root: options.target || parent_component.$$.root | ||||
|     }; | ||||
|     append_styles && append_styles($$.root); | ||||
|     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); | ||||
| } | ||||
| let SvelteElement; | ||||
| if (typeof HTMLElement === 'function') { | ||||
|     SvelteElement = class extends HTMLElement { | ||||
|         constructor() { | ||||
|             super(); | ||||
|             this.attachShadow({ mode: 'open' }); | ||||
|         } | ||||
|         connectedCallback() { | ||||
|             const { on_mount } = this.$$; | ||||
|             this.$$.on_disconnect = on_mount.map(run).filter(is_function); | ||||
|             // @ts-ignore todo: improve typings | ||||
|             for (const key in this.$$.slotted) { | ||||
|                 // @ts-ignore todo: improve typings | ||||
|                 this.appendChild(this.$$.slotted[key]); | ||||
|             } | ||||
|         } | ||||
|         attributeChangedCallback(attr, _oldValue, newValue) { | ||||
|             this[attr] = newValue; | ||||
|         } | ||||
|         disconnectedCallback() { | ||||
|             run_all(this.$$.on_disconnect); | ||||
|         } | ||||
|         $destroy() { | ||||
|             destroy_component(this, 1); | ||||
|             this.$destroy = noop; | ||||
|         } | ||||
|         $on(type, callback) { | ||||
|             // TODO should this delegate to addEventListener? | ||||
|             if (!is_function(callback)) { | ||||
|                 return noop; | ||||
|             } | ||||
|             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.52.0' }, detail), { bubbles: true })); | ||||
| } | ||||
| 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_each_argument(arg) { | ||||
|     if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) { | ||||
|         let msg = '{#each} only iterates over array-like objects.'; | ||||
|         if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) { | ||||
|             msg += ' You can use a spread to convert this iterable into an array.'; | ||||
|         } | ||||
|         throw new Error(msg); | ||||
|     } | ||||
| } | ||||
| 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}".`); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| export { setContext as A, run_all as B, svg_element as C, empty as D, SvelteElement as S, attribute_to_object as a, insert_dev as b, validate_slots as c, dispatch_dev as d, element as e, space as f, add_location as g, attr_dev as h, init as i, src_url_equal as j, append_dev as k, detach_dev as l, destroy_each as m, noop as n, onMount as o, set_custom_element_data as p, flush as q, globals as r, safe_not_equal as s, text as t, binding_callbacks as u, validate_each_argument as v, set_style as w, listen_dev as x, set_data_dev as y, getContext as z }; | ||||
| @@ -1,527 +0,0 @@ | ||||
|  | ||||
| (function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document); | ||||
| function noop() { } | ||||
| 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'); | ||||
| } | ||||
| let src_url_equal_anchor; | ||||
| function src_url_equal(element_src, url) { | ||||
|     if (!src_url_equal_anchor) { | ||||
|         src_url_equal_anchor = document.createElement('a'); | ||||
|     } | ||||
|     src_url_equal_anchor.href = url; | ||||
|     return element_src === src_url_equal_anchor.href; | ||||
| } | ||||
| function is_empty(obj) { | ||||
|     return Object.keys(obj).length === 0; | ||||
| } | ||||
| function validate_store(store, name) { | ||||
|     if (store != null && typeof store.subscribe !== 'function') { | ||||
|         throw new Error(`'${name}' is not a store with a 'subscribe' method`); | ||||
|     } | ||||
| } | ||||
| function subscribe(store, ...callbacks) { | ||||
|     if (store == null) { | ||||
|         return noop; | ||||
|     } | ||||
|     const unsub = store.subscribe(...callbacks); | ||||
|     return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub; | ||||
| } | ||||
| function component_subscribe(component, store, callback) { | ||||
|     component.$$.on_destroy.push(subscribe(store, callback)); | ||||
| } | ||||
| 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 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 attr(node, attribute, value) { | ||||
|     if (value == null) | ||||
|         node.removeAttribute(attribute); | ||||
|     else if (node.getAttribute(attribute) !== value) | ||||
|         node.setAttribute(attribute, value); | ||||
| } | ||||
| function set_custom_element_data(node, prop, value) { | ||||
|     if (prop in node) { | ||||
|         node[prop] = typeof node[prop] === 'boolean' && value === '' ? true : value; | ||||
|     } | ||||
|     else { | ||||
|         attr(node, prop, value); | ||||
|     } | ||||
| } | ||||
| function to_number(value) { | ||||
|     return value === '' ? null : +value; | ||||
| } | ||||
| function children(element) { | ||||
|     return Array.from(element.childNodes); | ||||
| } | ||||
| function set_input_value(input, value) { | ||||
|     input.value = value == null ? '' : value; | ||||
| } | ||||
| function set_style(node, key, value, important) { | ||||
|     if (value === null) { | ||||
|         node.style.removeProperty(key); | ||||
|     } | ||||
|     else { | ||||
|         node.style.setProperty(key, value, important ? 'important' : ''); | ||||
|     } | ||||
| } | ||||
| function custom_event(type, detail, { bubbles = false, cancelable = false } = {}) { | ||||
|     const e = document.createEvent('CustomEvent'); | ||||
|     e.initCustomEvent(type, bubbles, cancelable, detail); | ||||
|     return e; | ||||
| } | ||||
| class HtmlTag { | ||||
|     constructor(is_svg = false) { | ||||
|         this.is_svg = false; | ||||
|         this.is_svg = is_svg; | ||||
|         this.e = this.n = null; | ||||
|     } | ||||
|     c(html) { | ||||
|         this.h(html); | ||||
|     } | ||||
|     m(html, target, anchor = null) { | ||||
|         if (!this.e) { | ||||
|             if (this.is_svg) | ||||
|                 this.e = svg_element(target.nodeName); | ||||
|             else | ||||
|                 this.e = element(target.nodeName); | ||||
|             this.t = target; | ||||
|             this.c(html); | ||||
|         } | ||||
|         this.i(anchor); | ||||
|     } | ||||
|     h(html) { | ||||
|         this.e.innerHTML = html; | ||||
|         this.n = Array.from(this.e.childNodes); | ||||
|     } | ||||
|     i(anchor) { | ||||
|         for (let i = 0; i < this.n.length; i += 1) { | ||||
|             insert(this.t, this.n[i], anchor); | ||||
|         } | ||||
|     } | ||||
|     p(html) { | ||||
|         this.d(); | ||||
|         this.h(html); | ||||
|         this.i(this.a); | ||||
|     } | ||||
|     d() { | ||||
|         this.n.forEach(detach); | ||||
|     } | ||||
| } | ||||
| function attribute_to_object(attributes) { | ||||
|     const result = {}; | ||||
|     for (const attribute of attributes) { | ||||
|         result[attribute.name] = attribute.value; | ||||
|     } | ||||
|     return result; | ||||
| } | ||||
|  | ||||
| let current_component; | ||||
| function set_current_component(component) { | ||||
|     current_component = component; | ||||
| } | ||||
| function get_current_component() { | ||||
|     if (!current_component) | ||||
|         throw new Error('Function called outside component initialization'); | ||||
|     return current_component; | ||||
| } | ||||
| /** | ||||
|  * The `onMount` function schedules a callback to run as soon as the component has been mounted to the DOM. | ||||
|  * It must be called during the component's initialisation (but doesn't need to live *inside* the component; | ||||
|  * it can be called from an external module). | ||||
|  * | ||||
|  * `onMount` does not run inside a [server-side component](/docs#run-time-server-side-component-api). | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-onmount | ||||
|  */ | ||||
| function onMount(fn) { | ||||
|     get_current_component().$$.on_mount.push(fn); | ||||
| } | ||||
| /** | ||||
|  * Schedules a callback to run immediately after the component has been updated. | ||||
|  * | ||||
|  * The first time the callback runs will be after the initial `onMount` | ||||
|  */ | ||||
| function afterUpdate(fn) { | ||||
|     get_current_component().$$.after_update.push(fn); | ||||
| } | ||||
| /** | ||||
|  * Associates an arbitrary `context` object with the current component and the specified `key` | ||||
|  * and returns that object. The context is then available to children of the component | ||||
|  * (including slotted content) with `getContext`. | ||||
|  * | ||||
|  * Like lifecycle functions, this must be called during component initialisation. | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-setcontext | ||||
|  */ | ||||
| function setContext(key, context) { | ||||
|     get_current_component().$$.context.set(key, context); | ||||
|     return context; | ||||
| } | ||||
| /** | ||||
|  * Retrieves the context that belongs to the closest parent component with the specified `key`. | ||||
|  * Must be called during component initialisation. | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-getcontext | ||||
|  */ | ||||
| function getContext(key) { | ||||
|     return get_current_component().$$.context.get(key); | ||||
| } | ||||
|  | ||||
| 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); | ||||
| } | ||||
| // flush() calls callbacks in this order: | ||||
| // 1. All beforeUpdate callbacks, in order: parents before children | ||||
| // 2. All bind:this callbacks, in reverse order: children before parents. | ||||
| // 3. All afterUpdate callbacks, in order: parents before children. EXCEPT | ||||
| //    for afterUpdates called during the initial onMount, which are called in | ||||
| //    reverse order: children before parents. | ||||
| // Since callbacks might update component values, which could trigger another | ||||
| // call to flush(), the following steps guard against this: | ||||
| // 1. During beforeUpdate, any updated components will be added to the | ||||
| //    dirty_components array and will cause a reentrant call to flush(). Because | ||||
| //    the flush index is kept outside the function, the reentrant call will pick | ||||
| //    up where the earlier call left off and go through all dirty components. The | ||||
| //    current_component value is saved and restored so that the reentrant call will | ||||
| //    not interfere with the "parent" flush() call. | ||||
| // 2. bind:this callbacks cannot trigger new flush() calls. | ||||
| // 3. During afterUpdate, any updated components will NOT have their afterUpdate | ||||
| //    callback called a second time; the seen_callbacks set, outside the flush() | ||||
| //    function, guarantees this behavior. | ||||
| const seen_callbacks = new Set(); | ||||
| let flushidx = 0; // Do *not* move this inside the flush() function | ||||
| function flush() { | ||||
|     const saved_component = current_component; | ||||
|     do { | ||||
|         // first, call beforeUpdate functions | ||||
|         // and update components | ||||
|         while (flushidx < dirty_components.length) { | ||||
|             const component = dirty_components[flushidx]; | ||||
|             flushidx++; | ||||
|             set_current_component(component); | ||||
|             update(component.$$); | ||||
|         } | ||||
|         set_current_component(null); | ||||
|         dirty_components.length = 0; | ||||
|         flushidx = 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; | ||||
|     seen_callbacks.clear(); | ||||
|     set_current_component(saved_component); | ||||
| } | ||||
| 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(); | ||||
| function transition_in(block, local) { | ||||
|     if (block && block.i) { | ||||
|         outroing.delete(block); | ||||
|         block.i(local); | ||||
|     } | ||||
| } | ||||
|  | ||||
| const globals = (typeof window !== 'undefined' | ||||
|     ? window | ||||
|     : typeof globalThis !== 'undefined' | ||||
|         ? globalThis | ||||
|         : global); | ||||
| function mount_component(component, target, anchor, customElement) { | ||||
|     const { fragment, after_update } = component.$$; | ||||
|     fragment && fragment.m(target, anchor); | ||||
|     if (!customElement) { | ||||
|         // onMount happens before the initial afterUpdate | ||||
|         add_render_callback(() => { | ||||
|             const new_on_destroy = component.$$.on_mount.map(run).filter(is_function); | ||||
|             // if the component was destroyed immediately | ||||
|             // it will update the `$$.on_destroy` reference to `null`. | ||||
|             // the destructured on_destroy may still reference to the old array | ||||
|             if (component.$$.on_destroy) { | ||||
|                 component.$$.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, append_styles, dirty = [-1]) { | ||||
|     const parent_component = current_component; | ||||
|     set_current_component(component); | ||||
|     const $$ = component.$$ = { | ||||
|         fragment: null, | ||||
|         ctx: [], | ||||
|         // state | ||||
|         props, | ||||
|         update: noop, | ||||
|         not_equal, | ||||
|         bound: blank_object(), | ||||
|         // lifecycle | ||||
|         on_mount: [], | ||||
|         on_destroy: [], | ||||
|         on_disconnect: [], | ||||
|         before_update: [], | ||||
|         after_update: [], | ||||
|         context: new Map(options.context || (parent_component ? parent_component.$$.context : [])), | ||||
|         // everything else | ||||
|         callbacks: blank_object(), | ||||
|         dirty, | ||||
|         skip_bound: false, | ||||
|         root: options.target || parent_component.$$.root | ||||
|     }; | ||||
|     append_styles && append_styles($$.root); | ||||
|     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); | ||||
| } | ||||
| let SvelteElement; | ||||
| if (typeof HTMLElement === 'function') { | ||||
|     SvelteElement = class extends HTMLElement { | ||||
|         constructor() { | ||||
|             super(); | ||||
|             this.attachShadow({ mode: 'open' }); | ||||
|         } | ||||
|         connectedCallback() { | ||||
|             const { on_mount } = this.$$; | ||||
|             this.$$.on_disconnect = on_mount.map(run).filter(is_function); | ||||
|             // @ts-ignore todo: improve typings | ||||
|             for (const key in this.$$.slotted) { | ||||
|                 // @ts-ignore todo: improve typings | ||||
|                 this.appendChild(this.$$.slotted[key]); | ||||
|             } | ||||
|         } | ||||
|         attributeChangedCallback(attr, _oldValue, newValue) { | ||||
|             this[attr] = newValue; | ||||
|         } | ||||
|         disconnectedCallback() { | ||||
|             run_all(this.$$.on_disconnect); | ||||
|         } | ||||
|         $destroy() { | ||||
|             destroy_component(this, 1); | ||||
|             this.$destroy = noop; | ||||
|         } | ||||
|         $on(type, callback) { | ||||
|             // TODO should this delegate to addEventListener? | ||||
|             if (!is_function(callback)) { | ||||
|                 return noop; | ||||
|             } | ||||
|             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.52.0' }, detail), { bubbles: true })); | ||||
| } | ||||
| 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 prop_dev(node, property, value) { | ||||
|     node[property] = value; | ||||
|     dispatch_dev('SvelteDOMSetProperty', { node, property, 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_each_argument(arg) { | ||||
|     if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) { | ||||
|         let msg = '{#each} only iterates over array-like objects.'; | ||||
|         if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) { | ||||
|             msg += ' You can use a spread to convert this iterable into an array.'; | ||||
|         } | ||||
|         throw new Error(msg); | ||||
|     } | ||||
| } | ||||
| 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}".`); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| export { flush as A, is_function as B, src_url_equal as C, set_custom_element_data as D, set_data_dev as E, prop_dev as F, set_style as G, svg_element as H, HtmlTag as I, afterUpdate as J, to_number as K, set_input_value as L, SvelteElement as S, attribute_to_object as a, insert_dev as b, validate_store as c, dispatch_dev as d, component_subscribe as e, empty as f, getContext as g, detach_dev as h, init as i, binding_callbacks as j, validate_each_argument as k, element as l, space as m, noop as n, onMount as o, add_location as p, attr_dev as q, append_dev as r, safe_not_equal as s, listen_dev as t, destroy_each as u, validate_slots as v, text as w, setContext as x, globals as y, run_all as z }; | ||||
| @@ -1,494 +0,0 @@ | ||||
|  | ||||
| (function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document); | ||||
| function noop() { } | ||||
| 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'); | ||||
| } | ||||
| let src_url_equal_anchor; | ||||
| function src_url_equal(element_src, url) { | ||||
|     if (!src_url_equal_anchor) { | ||||
|         src_url_equal_anchor = document.createElement('a'); | ||||
|     } | ||||
|     src_url_equal_anchor.href = url; | ||||
|     return element_src === src_url_equal_anchor.href; | ||||
| } | ||||
| function is_empty(obj) { | ||||
|     return Object.keys(obj).length === 0; | ||||
| } | ||||
| 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 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 attr(node, attribute, value) { | ||||
|     if (value == null) | ||||
|         node.removeAttribute(attribute); | ||||
|     else if (node.getAttribute(attribute) !== value) | ||||
|         node.setAttribute(attribute, value); | ||||
| } | ||||
| function set_custom_element_data(node, prop, value) { | ||||
|     if (prop in node) { | ||||
|         node[prop] = typeof node[prop] === 'boolean' && value === '' ? true : value; | ||||
|     } | ||||
|     else { | ||||
|         attr(node, prop, value); | ||||
|     } | ||||
| } | ||||
| function children(element) { | ||||
|     return Array.from(element.childNodes); | ||||
| } | ||||
| function set_style(node, key, value, important) { | ||||
|     if (value === null) { | ||||
|         node.style.removeProperty(key); | ||||
|     } | ||||
|     else { | ||||
|         node.style.setProperty(key, value, important ? 'important' : ''); | ||||
|     } | ||||
| } | ||||
| function custom_event(type, detail, { bubbles = false, cancelable = false } = {}) { | ||||
|     const e = document.createEvent('CustomEvent'); | ||||
|     e.initCustomEvent(type, bubbles, cancelable, detail); | ||||
|     return e; | ||||
| } | ||||
| class HtmlTag { | ||||
|     constructor(is_svg = false) { | ||||
|         this.is_svg = false; | ||||
|         this.is_svg = is_svg; | ||||
|         this.e = this.n = null; | ||||
|     } | ||||
|     c(html) { | ||||
|         this.h(html); | ||||
|     } | ||||
|     m(html, target, anchor = null) { | ||||
|         if (!this.e) { | ||||
|             if (this.is_svg) | ||||
|                 this.e = svg_element(target.nodeName); | ||||
|             else | ||||
|                 this.e = element(target.nodeName); | ||||
|             this.t = target; | ||||
|             this.c(html); | ||||
|         } | ||||
|         this.i(anchor); | ||||
|     } | ||||
|     h(html) { | ||||
|         this.e.innerHTML = html; | ||||
|         this.n = Array.from(this.e.childNodes); | ||||
|     } | ||||
|     i(anchor) { | ||||
|         for (let i = 0; i < this.n.length; i += 1) { | ||||
|             insert(this.t, this.n[i], anchor); | ||||
|         } | ||||
|     } | ||||
|     p(html) { | ||||
|         this.d(); | ||||
|         this.h(html); | ||||
|         this.i(this.a); | ||||
|     } | ||||
|     d() { | ||||
|         this.n.forEach(detach); | ||||
|     } | ||||
| } | ||||
| function attribute_to_object(attributes) { | ||||
|     const result = {}; | ||||
|     for (const attribute of attributes) { | ||||
|         result[attribute.name] = attribute.value; | ||||
|     } | ||||
|     return result; | ||||
| } | ||||
|  | ||||
| let current_component; | ||||
| function set_current_component(component) { | ||||
|     current_component = component; | ||||
| } | ||||
| function get_current_component() { | ||||
|     if (!current_component) | ||||
|         throw new Error('Function called outside component initialization'); | ||||
|     return current_component; | ||||
| } | ||||
| /** | ||||
|  * The `onMount` function schedules a callback to run as soon as the component has been mounted to the DOM. | ||||
|  * It must be called during the component's initialisation (but doesn't need to live *inside* the component; | ||||
|  * it can be called from an external module). | ||||
|  * | ||||
|  * `onMount` does not run inside a [server-side component](/docs#run-time-server-side-component-api). | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-onmount | ||||
|  */ | ||||
| function onMount(fn) { | ||||
|     get_current_component().$$.on_mount.push(fn); | ||||
| } | ||||
| /** | ||||
|  * Associates an arbitrary `context` object with the current component and the specified `key` | ||||
|  * and returns that object. The context is then available to children of the component | ||||
|  * (including slotted content) with `getContext`. | ||||
|  * | ||||
|  * Like lifecycle functions, this must be called during component initialisation. | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-setcontext | ||||
|  */ | ||||
| function setContext(key, context) { | ||||
|     get_current_component().$$.context.set(key, context); | ||||
|     return context; | ||||
| } | ||||
| /** | ||||
|  * Retrieves the context that belongs to the closest parent component with the specified `key`. | ||||
|  * Must be called during component initialisation. | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-getcontext | ||||
|  */ | ||||
| function getContext(key) { | ||||
|     return get_current_component().$$.context.get(key); | ||||
| } | ||||
|  | ||||
| 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); | ||||
| } | ||||
| // flush() calls callbacks in this order: | ||||
| // 1. All beforeUpdate callbacks, in order: parents before children | ||||
| // 2. All bind:this callbacks, in reverse order: children before parents. | ||||
| // 3. All afterUpdate callbacks, in order: parents before children. EXCEPT | ||||
| //    for afterUpdates called during the initial onMount, which are called in | ||||
| //    reverse order: children before parents. | ||||
| // Since callbacks might update component values, which could trigger another | ||||
| // call to flush(), the following steps guard against this: | ||||
| // 1. During beforeUpdate, any updated components will be added to the | ||||
| //    dirty_components array and will cause a reentrant call to flush(). Because | ||||
| //    the flush index is kept outside the function, the reentrant call will pick | ||||
| //    up where the earlier call left off and go through all dirty components. The | ||||
| //    current_component value is saved and restored so that the reentrant call will | ||||
| //    not interfere with the "parent" flush() call. | ||||
| // 2. bind:this callbacks cannot trigger new flush() calls. | ||||
| // 3. During afterUpdate, any updated components will NOT have their afterUpdate | ||||
| //    callback called a second time; the seen_callbacks set, outside the flush() | ||||
| //    function, guarantees this behavior. | ||||
| const seen_callbacks = new Set(); | ||||
| let flushidx = 0; // Do *not* move this inside the flush() function | ||||
| function flush() { | ||||
|     const saved_component = current_component; | ||||
|     do { | ||||
|         // first, call beforeUpdate functions | ||||
|         // and update components | ||||
|         while (flushidx < dirty_components.length) { | ||||
|             const component = dirty_components[flushidx]; | ||||
|             flushidx++; | ||||
|             set_current_component(component); | ||||
|             update(component.$$); | ||||
|         } | ||||
|         set_current_component(null); | ||||
|         dirty_components.length = 0; | ||||
|         flushidx = 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; | ||||
|     seen_callbacks.clear(); | ||||
|     set_current_component(saved_component); | ||||
| } | ||||
| 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(); | ||||
| function transition_in(block, local) { | ||||
|     if (block && block.i) { | ||||
|         outroing.delete(block); | ||||
|         block.i(local); | ||||
|     } | ||||
| } | ||||
|  | ||||
| const globals = (typeof window !== 'undefined' | ||||
|     ? window | ||||
|     : typeof globalThis !== 'undefined' | ||||
|         ? globalThis | ||||
|         : global); | ||||
| function mount_component(component, target, anchor, customElement) { | ||||
|     const { fragment, after_update } = component.$$; | ||||
|     fragment && fragment.m(target, anchor); | ||||
|     if (!customElement) { | ||||
|         // onMount happens before the initial afterUpdate | ||||
|         add_render_callback(() => { | ||||
|             const new_on_destroy = component.$$.on_mount.map(run).filter(is_function); | ||||
|             // if the component was destroyed immediately | ||||
|             // it will update the `$$.on_destroy` reference to `null`. | ||||
|             // the destructured on_destroy may still reference to the old array | ||||
|             if (component.$$.on_destroy) { | ||||
|                 component.$$.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, append_styles, dirty = [-1]) { | ||||
|     const parent_component = current_component; | ||||
|     set_current_component(component); | ||||
|     const $$ = component.$$ = { | ||||
|         fragment: null, | ||||
|         ctx: [], | ||||
|         // state | ||||
|         props, | ||||
|         update: noop, | ||||
|         not_equal, | ||||
|         bound: blank_object(), | ||||
|         // lifecycle | ||||
|         on_mount: [], | ||||
|         on_destroy: [], | ||||
|         on_disconnect: [], | ||||
|         before_update: [], | ||||
|         after_update: [], | ||||
|         context: new Map(options.context || (parent_component ? parent_component.$$.context : [])), | ||||
|         // everything else | ||||
|         callbacks: blank_object(), | ||||
|         dirty, | ||||
|         skip_bound: false, | ||||
|         root: options.target || parent_component.$$.root | ||||
|     }; | ||||
|     append_styles && append_styles($$.root); | ||||
|     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); | ||||
| } | ||||
| let SvelteElement; | ||||
| if (typeof HTMLElement === 'function') { | ||||
|     SvelteElement = class extends HTMLElement { | ||||
|         constructor() { | ||||
|             super(); | ||||
|             this.attachShadow({ mode: 'open' }); | ||||
|         } | ||||
|         connectedCallback() { | ||||
|             const { on_mount } = this.$$; | ||||
|             this.$$.on_disconnect = on_mount.map(run).filter(is_function); | ||||
|             // @ts-ignore todo: improve typings | ||||
|             for (const key in this.$$.slotted) { | ||||
|                 // @ts-ignore todo: improve typings | ||||
|                 this.appendChild(this.$$.slotted[key]); | ||||
|             } | ||||
|         } | ||||
|         attributeChangedCallback(attr, _oldValue, newValue) { | ||||
|             this[attr] = newValue; | ||||
|         } | ||||
|         disconnectedCallback() { | ||||
|             run_all(this.$$.on_disconnect); | ||||
|         } | ||||
|         $destroy() { | ||||
|             destroy_component(this, 1); | ||||
|             this.$destroy = noop; | ||||
|         } | ||||
|         $on(type, callback) { | ||||
|             // TODO should this delegate to addEventListener? | ||||
|             if (!is_function(callback)) { | ||||
|                 return noop; | ||||
|             } | ||||
|             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.52.0' }, detail), { bubbles: true })); | ||||
| } | ||||
| 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_each_argument(arg) { | ||||
|     if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) { | ||||
|         let msg = '{#each} only iterates over array-like objects.'; | ||||
|         if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) { | ||||
|             msg += ' You can use a spread to convert this iterable into an array.'; | ||||
|         } | ||||
|         throw new Error(msg); | ||||
|     } | ||||
| } | ||||
| 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}".`); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| export { setContext as A, run_all as B, svg_element as C, empty as D, is_function as E, HtmlTag as H, SvelteElement as S, attribute_to_object as a, insert_dev as b, space as c, dispatch_dev as d, element as e, add_location as f, attr_dev as g, src_url_equal as h, init as i, append_dev as j, detach_dev as k, validate_each_argument as l, set_custom_element_data as m, noop as n, onMount as o, destroy_each as p, flush as q, globals as r, safe_not_equal as s, text as t, binding_callbacks as u, validate_slots as v, set_style as w, listen_dev as x, set_data_dev as y, getContext as z }; | ||||
| @@ -1 +0,0 @@ | ||||
| function t(){}function n(t){return t()}function e(){return Object.create(null)}function o(t){t.forEach(n)}function s(t){return"function"==typeof t}function r(t,n){return t!=t?n==n:t!==n||t&&"object"==typeof t||"function"==typeof t}let i,c;function a(t,n){return i||(i=document.createElement("a")),i.href=n,t===i.href}function u(n,e,o){n.$$.on_destroy.push(function(n,...e){if(null==n)return t;const o=n.subscribe(...e);return o.unsubscribe?()=>o.unsubscribe():o}(e,o))}function f(t,n){t.appendChild(n)}function l(t,n,e){t.insertBefore(n,e||null)}function h(t){t.parentNode.removeChild(t)}function d(t,n){for(let e=0;e<t.length;e+=1)t[e]&&t[e].d(n)}function $(t){return document.createElement(t)}function p(t){return document.createTextNode(t)}function m(){return p(" ")}function g(){return p("")}function b(t,n,e,o){return t.addEventListener(n,e,o),()=>t.removeEventListener(n,e,o)}function y(t,n,e){null==e?t.removeAttribute(n):t.getAttribute(n)!==e&&t.setAttribute(n,e)}function _(t,n,e){n in t?t[n]="boolean"==typeof t[n]&&""===e||e:y(t,n,e)}function x(t,n){n=""+n,t.wholeText!==n&&(t.data=n)}function v(t,n,e,o){null===e?t.style.removeProperty(n):t.style.setProperty(n,e,o?"important":"")}class E{constructor(t=!1){this.is_svg=!1,this.is_svg=t,this.e=this.n=null}c(t){this.h(t)}m(t,n,e=null){var o;this.e||(this.is_svg?this.e=(o=n.nodeName,document.createElementNS("http://www.w3.org/2000/svg",o)):this.e=$(n.nodeName),this.t=n,this.c(t)),this.i(e)}h(t){this.e.innerHTML=t,this.n=Array.from(this.e.childNodes)}i(t){for(let n=0;n<this.n.length;n+=1)l(this.t,this.n[n],t)}p(t){this.d(),this.h(t),this.i(this.a)}d(){this.n.forEach(h)}}function w(t){const n={};for(const e of t)n[e.name]=e.value;return n}function k(t){c=t}function C(){if(!c)throw new Error("Function called outside component initialization");return c}function N(t){C().$$.on_mount.push(t)}function A(t){return C().$$.context.get(t)}const L=[],S=[],T=[],j=[],H=Promise.resolve();let M=!1;function O(t){T.push(t)}const P=new Set;let q=0;function z(){const t=c;do{for(;q<L.length;){const t=L[q];q++,k(t),B(t.$$)}for(k(null),L.length=0,q=0;S.length;)S.pop()();for(let t=0;t<T.length;t+=1){const n=T[t];P.has(n)||(P.add(n),n())}T.length=0}while(L.length);for(;j.length;)j.pop()();M=!1,P.clear(),k(t)}function B(t){if(null!==t.fragment){t.update(),o(t.before_update);const n=t.dirty;t.dirty=[-1],t.fragment&&t.fragment.p(t.ctx,n),t.after_update.forEach(O)}}const F=new Set;function D(t,n){-1===t.$$.dirty[0]&&(L.push(t),M||(M=!0,H.then(z)),t.$$.dirty.fill(0)),t.$$.dirty[n/31|0]|=1<<n%31}function G(r,i,a,u,f,l,d,$=[-1]){const p=c;k(r);const m=r.$$={fragment:null,ctx:[],props:l,update:t,not_equal:f,bound:e(),on_mount:[],on_destroy:[],on_disconnect:[],before_update:[],after_update:[],context:new Map(i.context||(p?p.$$.context:[])),callbacks:e(),dirty:$,skip_bound:!1,root:i.target||p.$$.root};d&&d(m.root);let g=!1;if(m.ctx=a?a(r,i.props||{},((t,n,...e)=>{const o=e.length?e[0]:n;return m.ctx&&f(m.ctx[t],m.ctx[t]=o)&&(!m.skip_bound&&m.bound[t]&&m.bound[t](o),g&&D(r,t)),n})):[],m.update(),g=!0,o(m.before_update),m.fragment=!!u&&u(m.ctx),i.target){if(i.hydrate){const t=function(t){return Array.from(t.childNodes)}(i.target);m.fragment&&m.fragment.l(t),t.forEach(h)}else m.fragment&&m.fragment.c();i.intro&&((b=r.$$.fragment)&&b.i&&(F.delete(b),b.i(y))),function(t,e,r,i){const{fragment:c,after_update:a}=t.$$;c&&c.m(e,r),i||O((()=>{const e=t.$$.on_mount.map(n).filter(s);t.$$.on_destroy?t.$$.on_destroy.push(...e):o(e),t.$$.on_mount=[]})),a.forEach(O)}(r,i.target,i.anchor,i.customElement),z()}var b,y;k(p)}let I;"function"==typeof HTMLElement&&(I=class extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"})}connectedCallback(){const{on_mount:t}=this.$$;this.$$.on_disconnect=t.map(n).filter(s);for(const t in this.$$.slotted)this.appendChild(this.$$.slotted[t])}attributeChangedCallback(t,n,e){this[t]=e}disconnectedCallback(){o(this.$$.on_disconnect)}$destroy(){!function(t,n){const e=t.$$;null!==e.fragment&&(o(e.on_destroy),e.fragment&&e.fragment.d(n),e.on_destroy=e.fragment=null,e.ctx=[])}(this,1),this.$destroy=t}$on(n,e){if(!s(e))return t;const o=this.$$.callbacks[n]||(this.$$.callbacks[n]=[]);return o.push(e),()=>{const t=o.indexOf(e);-1!==t&&o.splice(t,1)}}$set(t){var n;this.$$set&&(n=t,0!==Object.keys(n).length)&&(this.$$.skip_bound=!0,this.$$set(t),this.$$.skip_bound=!1)}});export{E as H,I as S,w as a,l as b,u as c,h as d,g as e,$ as f,m as g,y as h,G as i,a as j,_ as k,f as l,x as m,t as n,N as o,d as p,z as q,v as r,r as s,p as t,b as u,S as v,A as w,o as x,s as y}; | ||||
| @@ -1,513 +0,0 @@ | ||||
|  | ||||
| (function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document); | ||||
| function noop() { } | ||||
| 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'); | ||||
| } | ||||
| let src_url_equal_anchor; | ||||
| function src_url_equal(element_src, url) { | ||||
|     if (!src_url_equal_anchor) { | ||||
|         src_url_equal_anchor = document.createElement('a'); | ||||
|     } | ||||
|     src_url_equal_anchor.href = url; | ||||
|     return element_src === src_url_equal_anchor.href; | ||||
| } | ||||
| function is_empty(obj) { | ||||
|     return Object.keys(obj).length === 0; | ||||
| } | ||||
| function validate_store(store, name) { | ||||
|     if (store != null && typeof store.subscribe !== 'function') { | ||||
|         throw new Error(`'${name}' is not a store with a 'subscribe' method`); | ||||
|     } | ||||
| } | ||||
| function subscribe(store, ...callbacks) { | ||||
|     if (store == null) { | ||||
|         return noop; | ||||
|     } | ||||
|     const unsub = store.subscribe(...callbacks); | ||||
|     return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub; | ||||
| } | ||||
| function component_subscribe(component, store, callback) { | ||||
|     component.$$.on_destroy.push(subscribe(store, callback)); | ||||
| } | ||||
| 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 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 attr(node, attribute, value) { | ||||
|     if (value == null) | ||||
|         node.removeAttribute(attribute); | ||||
|     else if (node.getAttribute(attribute) !== value) | ||||
|         node.setAttribute(attribute, value); | ||||
| } | ||||
| function set_custom_element_data(node, prop, value) { | ||||
|     if (prop in node) { | ||||
|         node[prop] = typeof node[prop] === 'boolean' && value === '' ? true : value; | ||||
|     } | ||||
|     else { | ||||
|         attr(node, prop, value); | ||||
|     } | ||||
| } | ||||
| function children(element) { | ||||
|     return Array.from(element.childNodes); | ||||
| } | ||||
| function set_style(node, key, value, important) { | ||||
|     if (value === null) { | ||||
|         node.style.removeProperty(key); | ||||
|     } | ||||
|     else { | ||||
|         node.style.setProperty(key, value, important ? 'important' : ''); | ||||
|     } | ||||
| } | ||||
| function custom_event(type, detail, { bubbles = false, cancelable = false } = {}) { | ||||
|     const e = document.createEvent('CustomEvent'); | ||||
|     e.initCustomEvent(type, bubbles, cancelable, detail); | ||||
|     return e; | ||||
| } | ||||
| class HtmlTag { | ||||
|     constructor(is_svg = false) { | ||||
|         this.is_svg = false; | ||||
|         this.is_svg = is_svg; | ||||
|         this.e = this.n = null; | ||||
|     } | ||||
|     c(html) { | ||||
|         this.h(html); | ||||
|     } | ||||
|     m(html, target, anchor = null) { | ||||
|         if (!this.e) { | ||||
|             if (this.is_svg) | ||||
|                 this.e = svg_element(target.nodeName); | ||||
|             else | ||||
|                 this.e = element(target.nodeName); | ||||
|             this.t = target; | ||||
|             this.c(html); | ||||
|         } | ||||
|         this.i(anchor); | ||||
|     } | ||||
|     h(html) { | ||||
|         this.e.innerHTML = html; | ||||
|         this.n = Array.from(this.e.childNodes); | ||||
|     } | ||||
|     i(anchor) { | ||||
|         for (let i = 0; i < this.n.length; i += 1) { | ||||
|             insert(this.t, this.n[i], anchor); | ||||
|         } | ||||
|     } | ||||
|     p(html) { | ||||
|         this.d(); | ||||
|         this.h(html); | ||||
|         this.i(this.a); | ||||
|     } | ||||
|     d() { | ||||
|         this.n.forEach(detach); | ||||
|     } | ||||
| } | ||||
| function attribute_to_object(attributes) { | ||||
|     const result = {}; | ||||
|     for (const attribute of attributes) { | ||||
|         result[attribute.name] = attribute.value; | ||||
|     } | ||||
|     return result; | ||||
| } | ||||
|  | ||||
| let current_component; | ||||
| function set_current_component(component) { | ||||
|     current_component = component; | ||||
| } | ||||
| function get_current_component() { | ||||
|     if (!current_component) | ||||
|         throw new Error('Function called outside component initialization'); | ||||
|     return current_component; | ||||
| } | ||||
| /** | ||||
|  * The `onMount` function schedules a callback to run as soon as the component has been mounted to the DOM. | ||||
|  * It must be called during the component's initialisation (but doesn't need to live *inside* the component; | ||||
|  * it can be called from an external module). | ||||
|  * | ||||
|  * `onMount` does not run inside a [server-side component](/docs#run-time-server-side-component-api). | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-onmount | ||||
|  */ | ||||
| function onMount(fn) { | ||||
|     get_current_component().$$.on_mount.push(fn); | ||||
| } | ||||
| /** | ||||
|  * Associates an arbitrary `context` object with the current component and the specified `key` | ||||
|  * and returns that object. The context is then available to children of the component | ||||
|  * (including slotted content) with `getContext`. | ||||
|  * | ||||
|  * Like lifecycle functions, this must be called during component initialisation. | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-setcontext | ||||
|  */ | ||||
| function setContext(key, context) { | ||||
|     get_current_component().$$.context.set(key, context); | ||||
|     return context; | ||||
| } | ||||
| /** | ||||
|  * Retrieves the context that belongs to the closest parent component with the specified `key`. | ||||
|  * Must be called during component initialisation. | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-getcontext | ||||
|  */ | ||||
| function getContext(key) { | ||||
|     return get_current_component().$$.context.get(key); | ||||
| } | ||||
|  | ||||
| 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); | ||||
| } | ||||
| // flush() calls callbacks in this order: | ||||
| // 1. All beforeUpdate callbacks, in order: parents before children | ||||
| // 2. All bind:this callbacks, in reverse order: children before parents. | ||||
| // 3. All afterUpdate callbacks, in order: parents before children. EXCEPT | ||||
| //    for afterUpdates called during the initial onMount, which are called in | ||||
| //    reverse order: children before parents. | ||||
| // Since callbacks might update component values, which could trigger another | ||||
| // call to flush(), the following steps guard against this: | ||||
| // 1. During beforeUpdate, any updated components will be added to the | ||||
| //    dirty_components array and will cause a reentrant call to flush(). Because | ||||
| //    the flush index is kept outside the function, the reentrant call will pick | ||||
| //    up where the earlier call left off and go through all dirty components. The | ||||
| //    current_component value is saved and restored so that the reentrant call will | ||||
| //    not interfere with the "parent" flush() call. | ||||
| // 2. bind:this callbacks cannot trigger new flush() calls. | ||||
| // 3. During afterUpdate, any updated components will NOT have their afterUpdate | ||||
| //    callback called a second time; the seen_callbacks set, outside the flush() | ||||
| //    function, guarantees this behavior. | ||||
| const seen_callbacks = new Set(); | ||||
| let flushidx = 0; // Do *not* move this inside the flush() function | ||||
| function flush() { | ||||
|     const saved_component = current_component; | ||||
|     do { | ||||
|         // first, call beforeUpdate functions | ||||
|         // and update components | ||||
|         while (flushidx < dirty_components.length) { | ||||
|             const component = dirty_components[flushidx]; | ||||
|             flushidx++; | ||||
|             set_current_component(component); | ||||
|             update(component.$$); | ||||
|         } | ||||
|         set_current_component(null); | ||||
|         dirty_components.length = 0; | ||||
|         flushidx = 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; | ||||
|     seen_callbacks.clear(); | ||||
|     set_current_component(saved_component); | ||||
| } | ||||
| 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(); | ||||
| function transition_in(block, local) { | ||||
|     if (block && block.i) { | ||||
|         outroing.delete(block); | ||||
|         block.i(local); | ||||
|     } | ||||
| } | ||||
|  | ||||
| const globals = (typeof window !== 'undefined' | ||||
|     ? window | ||||
|     : typeof globalThis !== 'undefined' | ||||
|         ? globalThis | ||||
|         : global); | ||||
| function mount_component(component, target, anchor, customElement) { | ||||
|     const { fragment, after_update } = component.$$; | ||||
|     fragment && fragment.m(target, anchor); | ||||
|     if (!customElement) { | ||||
|         // onMount happens before the initial afterUpdate | ||||
|         add_render_callback(() => { | ||||
|             const new_on_destroy = component.$$.on_mount.map(run).filter(is_function); | ||||
|             // if the component was destroyed immediately | ||||
|             // it will update the `$$.on_destroy` reference to `null`. | ||||
|             // the destructured on_destroy may still reference to the old array | ||||
|             if (component.$$.on_destroy) { | ||||
|                 component.$$.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, append_styles, dirty = [-1]) { | ||||
|     const parent_component = current_component; | ||||
|     set_current_component(component); | ||||
|     const $$ = component.$$ = { | ||||
|         fragment: null, | ||||
|         ctx: [], | ||||
|         // state | ||||
|         props, | ||||
|         update: noop, | ||||
|         not_equal, | ||||
|         bound: blank_object(), | ||||
|         // lifecycle | ||||
|         on_mount: [], | ||||
|         on_destroy: [], | ||||
|         on_disconnect: [], | ||||
|         before_update: [], | ||||
|         after_update: [], | ||||
|         context: new Map(options.context || (parent_component ? parent_component.$$.context : [])), | ||||
|         // everything else | ||||
|         callbacks: blank_object(), | ||||
|         dirty, | ||||
|         skip_bound: false, | ||||
|         root: options.target || parent_component.$$.root | ||||
|     }; | ||||
|     append_styles && append_styles($$.root); | ||||
|     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); | ||||
| } | ||||
| let SvelteElement; | ||||
| if (typeof HTMLElement === 'function') { | ||||
|     SvelteElement = class extends HTMLElement { | ||||
|         constructor() { | ||||
|             super(); | ||||
|             this.attachShadow({ mode: 'open' }); | ||||
|         } | ||||
|         connectedCallback() { | ||||
|             const { on_mount } = this.$$; | ||||
|             this.$$.on_disconnect = on_mount.map(run).filter(is_function); | ||||
|             // @ts-ignore todo: improve typings | ||||
|             for (const key in this.$$.slotted) { | ||||
|                 // @ts-ignore todo: improve typings | ||||
|                 this.appendChild(this.$$.slotted[key]); | ||||
|             } | ||||
|         } | ||||
|         attributeChangedCallback(attr, _oldValue, newValue) { | ||||
|             this[attr] = newValue; | ||||
|         } | ||||
|         disconnectedCallback() { | ||||
|             run_all(this.$$.on_disconnect); | ||||
|         } | ||||
|         $destroy() { | ||||
|             destroy_component(this, 1); | ||||
|             this.$destroy = noop; | ||||
|         } | ||||
|         $on(type, callback) { | ||||
|             // TODO should this delegate to addEventListener? | ||||
|             if (!is_function(callback)) { | ||||
|                 return noop; | ||||
|             } | ||||
|             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.52.0' }, detail), { bubbles: true })); | ||||
| } | ||||
| 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 prop_dev(node, property, value) { | ||||
|     node[property] = value; | ||||
|     dispatch_dev('SvelteDOMSetProperty', { node, property, 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_each_argument(arg) { | ||||
|     if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) { | ||||
|         let msg = '{#each} only iterates over array-like objects.'; | ||||
|         if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) { | ||||
|             msg += ' You can use a spread to convert this iterable into an array.'; | ||||
|         } | ||||
|         throw new Error(msg); | ||||
|     } | ||||
| } | ||||
| 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}".`); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| export { flush as A, binding_callbacks as B, set_style as C, getContext as D, setContext as E, run_all as F, svg_element as G, is_function as H, HtmlTag as I, SvelteElement as S, attribute_to_object as a, insert_dev as b, validate_store as c, dispatch_dev as d, component_subscribe as e, validate_each_argument as f, globals as g, empty as h, init as i, detach_dev as j, element as k, space as l, add_location as m, noop as n, onMount as o, attr_dev as p, src_url_equal as q, set_custom_element_data as r, safe_not_equal as s, text as t, append_dev as u, validate_slots as v, set_data_dev as w, destroy_each as x, listen_dev as y, prop_dev as z }; | ||||
| @@ -1,513 +0,0 @@ | ||||
|  | ||||
| (function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document); | ||||
| function noop() { } | ||||
| 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'); | ||||
| } | ||||
| let src_url_equal_anchor; | ||||
| function src_url_equal(element_src, url) { | ||||
|     if (!src_url_equal_anchor) { | ||||
|         src_url_equal_anchor = document.createElement('a'); | ||||
|     } | ||||
|     src_url_equal_anchor.href = url; | ||||
|     return element_src === src_url_equal_anchor.href; | ||||
| } | ||||
| function is_empty(obj) { | ||||
|     return Object.keys(obj).length === 0; | ||||
| } | ||||
| function validate_store(store, name) { | ||||
|     if (store != null && typeof store.subscribe !== 'function') { | ||||
|         throw new Error(`'${name}' is not a store with a 'subscribe' method`); | ||||
|     } | ||||
| } | ||||
| function subscribe(store, ...callbacks) { | ||||
|     if (store == null) { | ||||
|         return noop; | ||||
|     } | ||||
|     const unsub = store.subscribe(...callbacks); | ||||
|     return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub; | ||||
| } | ||||
| function component_subscribe(component, store, callback) { | ||||
|     component.$$.on_destroy.push(subscribe(store, callback)); | ||||
| } | ||||
| 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 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 attr(node, attribute, value) { | ||||
|     if (value == null) | ||||
|         node.removeAttribute(attribute); | ||||
|     else if (node.getAttribute(attribute) !== value) | ||||
|         node.setAttribute(attribute, value); | ||||
| } | ||||
| function set_custom_element_data(node, prop, value) { | ||||
|     if (prop in node) { | ||||
|         node[prop] = typeof node[prop] === 'boolean' && value === '' ? true : value; | ||||
|     } | ||||
|     else { | ||||
|         attr(node, prop, value); | ||||
|     } | ||||
| } | ||||
| function children(element) { | ||||
|     return Array.from(element.childNodes); | ||||
| } | ||||
| function set_style(node, key, value, important) { | ||||
|     if (value === null) { | ||||
|         node.style.removeProperty(key); | ||||
|     } | ||||
|     else { | ||||
|         node.style.setProperty(key, value, important ? 'important' : ''); | ||||
|     } | ||||
| } | ||||
| function custom_event(type, detail, { bubbles = false, cancelable = false } = {}) { | ||||
|     const e = document.createEvent('CustomEvent'); | ||||
|     e.initCustomEvent(type, bubbles, cancelable, detail); | ||||
|     return e; | ||||
| } | ||||
| class HtmlTag { | ||||
|     constructor(is_svg = false) { | ||||
|         this.is_svg = false; | ||||
|         this.is_svg = is_svg; | ||||
|         this.e = this.n = null; | ||||
|     } | ||||
|     c(html) { | ||||
|         this.h(html); | ||||
|     } | ||||
|     m(html, target, anchor = null) { | ||||
|         if (!this.e) { | ||||
|             if (this.is_svg) | ||||
|                 this.e = svg_element(target.nodeName); | ||||
|             else | ||||
|                 this.e = element(target.nodeName); | ||||
|             this.t = target; | ||||
|             this.c(html); | ||||
|         } | ||||
|         this.i(anchor); | ||||
|     } | ||||
|     h(html) { | ||||
|         this.e.innerHTML = html; | ||||
|         this.n = Array.from(this.e.childNodes); | ||||
|     } | ||||
|     i(anchor) { | ||||
|         for (let i = 0; i < this.n.length; i += 1) { | ||||
|             insert(this.t, this.n[i], anchor); | ||||
|         } | ||||
|     } | ||||
|     p(html) { | ||||
|         this.d(); | ||||
|         this.h(html); | ||||
|         this.i(this.a); | ||||
|     } | ||||
|     d() { | ||||
|         this.n.forEach(detach); | ||||
|     } | ||||
| } | ||||
| function attribute_to_object(attributes) { | ||||
|     const result = {}; | ||||
|     for (const attribute of attributes) { | ||||
|         result[attribute.name] = attribute.value; | ||||
|     } | ||||
|     return result; | ||||
| } | ||||
|  | ||||
| let current_component; | ||||
| function set_current_component(component) { | ||||
|     current_component = component; | ||||
| } | ||||
| function get_current_component() { | ||||
|     if (!current_component) | ||||
|         throw new Error('Function called outside component initialization'); | ||||
|     return current_component; | ||||
| } | ||||
| /** | ||||
|  * The `onMount` function schedules a callback to run as soon as the component has been mounted to the DOM. | ||||
|  * It must be called during the component's initialisation (but doesn't need to live *inside* the component; | ||||
|  * it can be called from an external module). | ||||
|  * | ||||
|  * `onMount` does not run inside a [server-side component](/docs#run-time-server-side-component-api). | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-onmount | ||||
|  */ | ||||
| function onMount(fn) { | ||||
|     get_current_component().$$.on_mount.push(fn); | ||||
| } | ||||
| /** | ||||
|  * Associates an arbitrary `context` object with the current component and the specified `key` | ||||
|  * and returns that object. The context is then available to children of the component | ||||
|  * (including slotted content) with `getContext`. | ||||
|  * | ||||
|  * Like lifecycle functions, this must be called during component initialisation. | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-setcontext | ||||
|  */ | ||||
| function setContext(key, context) { | ||||
|     get_current_component().$$.context.set(key, context); | ||||
|     return context; | ||||
| } | ||||
| /** | ||||
|  * Retrieves the context that belongs to the closest parent component with the specified `key`. | ||||
|  * Must be called during component initialisation. | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-getcontext | ||||
|  */ | ||||
| function getContext(key) { | ||||
|     return get_current_component().$$.context.get(key); | ||||
| } | ||||
|  | ||||
| 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); | ||||
| } | ||||
| // flush() calls callbacks in this order: | ||||
| // 1. All beforeUpdate callbacks, in order: parents before children | ||||
| // 2. All bind:this callbacks, in reverse order: children before parents. | ||||
| // 3. All afterUpdate callbacks, in order: parents before children. EXCEPT | ||||
| //    for afterUpdates called during the initial onMount, which are called in | ||||
| //    reverse order: children before parents. | ||||
| // Since callbacks might update component values, which could trigger another | ||||
| // call to flush(), the following steps guard against this: | ||||
| // 1. During beforeUpdate, any updated components will be added to the | ||||
| //    dirty_components array and will cause a reentrant call to flush(). Because | ||||
| //    the flush index is kept outside the function, the reentrant call will pick | ||||
| //    up where the earlier call left off and go through all dirty components. The | ||||
| //    current_component value is saved and restored so that the reentrant call will | ||||
| //    not interfere with the "parent" flush() call. | ||||
| // 2. bind:this callbacks cannot trigger new flush() calls. | ||||
| // 3. During afterUpdate, any updated components will NOT have their afterUpdate | ||||
| //    callback called a second time; the seen_callbacks set, outside the flush() | ||||
| //    function, guarantees this behavior. | ||||
| const seen_callbacks = new Set(); | ||||
| let flushidx = 0; // Do *not* move this inside the flush() function | ||||
| function flush() { | ||||
|     const saved_component = current_component; | ||||
|     do { | ||||
|         // first, call beforeUpdate functions | ||||
|         // and update components | ||||
|         while (flushidx < dirty_components.length) { | ||||
|             const component = dirty_components[flushidx]; | ||||
|             flushidx++; | ||||
|             set_current_component(component); | ||||
|             update(component.$$); | ||||
|         } | ||||
|         set_current_component(null); | ||||
|         dirty_components.length = 0; | ||||
|         flushidx = 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; | ||||
|     seen_callbacks.clear(); | ||||
|     set_current_component(saved_component); | ||||
| } | ||||
| 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(); | ||||
| function transition_in(block, local) { | ||||
|     if (block && block.i) { | ||||
|         outroing.delete(block); | ||||
|         block.i(local); | ||||
|     } | ||||
| } | ||||
|  | ||||
| const globals = (typeof window !== 'undefined' | ||||
|     ? window | ||||
|     : typeof globalThis !== 'undefined' | ||||
|         ? globalThis | ||||
|         : global); | ||||
| function mount_component(component, target, anchor, customElement) { | ||||
|     const { fragment, after_update } = component.$$; | ||||
|     fragment && fragment.m(target, anchor); | ||||
|     if (!customElement) { | ||||
|         // onMount happens before the initial afterUpdate | ||||
|         add_render_callback(() => { | ||||
|             const new_on_destroy = component.$$.on_mount.map(run).filter(is_function); | ||||
|             // if the component was destroyed immediately | ||||
|             // it will update the `$$.on_destroy` reference to `null`. | ||||
|             // the destructured on_destroy may still reference to the old array | ||||
|             if (component.$$.on_destroy) { | ||||
|                 component.$$.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, append_styles, dirty = [-1]) { | ||||
|     const parent_component = current_component; | ||||
|     set_current_component(component); | ||||
|     const $$ = component.$$ = { | ||||
|         fragment: null, | ||||
|         ctx: [], | ||||
|         // state | ||||
|         props, | ||||
|         update: noop, | ||||
|         not_equal, | ||||
|         bound: blank_object(), | ||||
|         // lifecycle | ||||
|         on_mount: [], | ||||
|         on_destroy: [], | ||||
|         on_disconnect: [], | ||||
|         before_update: [], | ||||
|         after_update: [], | ||||
|         context: new Map(options.context || (parent_component ? parent_component.$$.context : [])), | ||||
|         // everything else | ||||
|         callbacks: blank_object(), | ||||
|         dirty, | ||||
|         skip_bound: false, | ||||
|         root: options.target || parent_component.$$.root | ||||
|     }; | ||||
|     append_styles && append_styles($$.root); | ||||
|     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); | ||||
| } | ||||
| let SvelteElement; | ||||
| if (typeof HTMLElement === 'function') { | ||||
|     SvelteElement = class extends HTMLElement { | ||||
|         constructor() { | ||||
|             super(); | ||||
|             this.attachShadow({ mode: 'open' }); | ||||
|         } | ||||
|         connectedCallback() { | ||||
|             const { on_mount } = this.$$; | ||||
|             this.$$.on_disconnect = on_mount.map(run).filter(is_function); | ||||
|             // @ts-ignore todo: improve typings | ||||
|             for (const key in this.$$.slotted) { | ||||
|                 // @ts-ignore todo: improve typings | ||||
|                 this.appendChild(this.$$.slotted[key]); | ||||
|             } | ||||
|         } | ||||
|         attributeChangedCallback(attr, _oldValue, newValue) { | ||||
|             this[attr] = newValue; | ||||
|         } | ||||
|         disconnectedCallback() { | ||||
|             run_all(this.$$.on_disconnect); | ||||
|         } | ||||
|         $destroy() { | ||||
|             destroy_component(this, 1); | ||||
|             this.$destroy = noop; | ||||
|         } | ||||
|         $on(type, callback) { | ||||
|             // TODO should this delegate to addEventListener? | ||||
|             if (!is_function(callback)) { | ||||
|                 return noop; | ||||
|             } | ||||
|             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.52.0' }, detail), { bubbles: true })); | ||||
| } | ||||
| 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 prop_dev(node, property, value) { | ||||
|     node[property] = value; | ||||
|     dispatch_dev('SvelteDOMSetProperty', { node, property, 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_each_argument(arg) { | ||||
|     if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) { | ||||
|         let msg = '{#each} only iterates over array-like objects.'; | ||||
|         if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) { | ||||
|             msg += ' You can use a spread to convert this iterable into an array.'; | ||||
|         } | ||||
|         throw new Error(msg); | ||||
|     } | ||||
| } | ||||
| 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}".`); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| export { prop_dev as A, flush as B, binding_callbacks as C, set_style as D, getContext as E, setContext as F, svg_element as G, is_function as H, HtmlTag as I, SvelteElement as S, attribute_to_object as a, insert_dev as b, validate_store as c, dispatch_dev as d, component_subscribe as e, empty as f, globals as g, detach_dev as h, init as i, validate_each_argument as j, element as k, space as l, add_location as m, noop as n, onMount as o, attr_dev as p, src_url_equal as q, set_custom_element_data as r, safe_not_equal as s, text as t, append_dev as u, validate_slots as v, set_data_dev as w, destroy_each as x, listen_dev as y, run_all as z }; | ||||
| @@ -1,494 +0,0 @@ | ||||
|  | ||||
| (function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document); | ||||
| function noop() { } | ||||
| 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'); | ||||
| } | ||||
| let src_url_equal_anchor; | ||||
| function src_url_equal(element_src, url) { | ||||
|     if (!src_url_equal_anchor) { | ||||
|         src_url_equal_anchor = document.createElement('a'); | ||||
|     } | ||||
|     src_url_equal_anchor.href = url; | ||||
|     return element_src === src_url_equal_anchor.href; | ||||
| } | ||||
| function is_empty(obj) { | ||||
|     return Object.keys(obj).length === 0; | ||||
| } | ||||
| 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 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 attr(node, attribute, value) { | ||||
|     if (value == null) | ||||
|         node.removeAttribute(attribute); | ||||
|     else if (node.getAttribute(attribute) !== value) | ||||
|         node.setAttribute(attribute, value); | ||||
| } | ||||
| function set_custom_element_data(node, prop, value) { | ||||
|     if (prop in node) { | ||||
|         node[prop] = typeof node[prop] === 'boolean' && value === '' ? true : value; | ||||
|     } | ||||
|     else { | ||||
|         attr(node, prop, value); | ||||
|     } | ||||
| } | ||||
| function children(element) { | ||||
|     return Array.from(element.childNodes); | ||||
| } | ||||
| function set_style(node, key, value, important) { | ||||
|     if (value === null) { | ||||
|         node.style.removeProperty(key); | ||||
|     } | ||||
|     else { | ||||
|         node.style.setProperty(key, value, important ? 'important' : ''); | ||||
|     } | ||||
| } | ||||
| function custom_event(type, detail, { bubbles = false, cancelable = false } = {}) { | ||||
|     const e = document.createEvent('CustomEvent'); | ||||
|     e.initCustomEvent(type, bubbles, cancelable, detail); | ||||
|     return e; | ||||
| } | ||||
| class HtmlTag { | ||||
|     constructor(is_svg = false) { | ||||
|         this.is_svg = false; | ||||
|         this.is_svg = is_svg; | ||||
|         this.e = this.n = null; | ||||
|     } | ||||
|     c(html) { | ||||
|         this.h(html); | ||||
|     } | ||||
|     m(html, target, anchor = null) { | ||||
|         if (!this.e) { | ||||
|             if (this.is_svg) | ||||
|                 this.e = svg_element(target.nodeName); | ||||
|             else | ||||
|                 this.e = element(target.nodeName); | ||||
|             this.t = target; | ||||
|             this.c(html); | ||||
|         } | ||||
|         this.i(anchor); | ||||
|     } | ||||
|     h(html) { | ||||
|         this.e.innerHTML = html; | ||||
|         this.n = Array.from(this.e.childNodes); | ||||
|     } | ||||
|     i(anchor) { | ||||
|         for (let i = 0; i < this.n.length; i += 1) { | ||||
|             insert(this.t, this.n[i], anchor); | ||||
|         } | ||||
|     } | ||||
|     p(html) { | ||||
|         this.d(); | ||||
|         this.h(html); | ||||
|         this.i(this.a); | ||||
|     } | ||||
|     d() { | ||||
|         this.n.forEach(detach); | ||||
|     } | ||||
| } | ||||
| function attribute_to_object(attributes) { | ||||
|     const result = {}; | ||||
|     for (const attribute of attributes) { | ||||
|         result[attribute.name] = attribute.value; | ||||
|     } | ||||
|     return result; | ||||
| } | ||||
|  | ||||
| let current_component; | ||||
| function set_current_component(component) { | ||||
|     current_component = component; | ||||
| } | ||||
| function get_current_component() { | ||||
|     if (!current_component) | ||||
|         throw new Error('Function called outside component initialization'); | ||||
|     return current_component; | ||||
| } | ||||
| /** | ||||
|  * The `onMount` function schedules a callback to run as soon as the component has been mounted to the DOM. | ||||
|  * It must be called during the component's initialisation (but doesn't need to live *inside* the component; | ||||
|  * it can be called from an external module). | ||||
|  * | ||||
|  * `onMount` does not run inside a [server-side component](/docs#run-time-server-side-component-api). | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-onmount | ||||
|  */ | ||||
| function onMount(fn) { | ||||
|     get_current_component().$$.on_mount.push(fn); | ||||
| } | ||||
| /** | ||||
|  * Associates an arbitrary `context` object with the current component and the specified `key` | ||||
|  * and returns that object. The context is then available to children of the component | ||||
|  * (including slotted content) with `getContext`. | ||||
|  * | ||||
|  * Like lifecycle functions, this must be called during component initialisation. | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-setcontext | ||||
|  */ | ||||
| function setContext(key, context) { | ||||
|     get_current_component().$$.context.set(key, context); | ||||
|     return context; | ||||
| } | ||||
| /** | ||||
|  * Retrieves the context that belongs to the closest parent component with the specified `key`. | ||||
|  * Must be called during component initialisation. | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-getcontext | ||||
|  */ | ||||
| function getContext(key) { | ||||
|     return get_current_component().$$.context.get(key); | ||||
| } | ||||
|  | ||||
| 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); | ||||
| } | ||||
| // flush() calls callbacks in this order: | ||||
| // 1. All beforeUpdate callbacks, in order: parents before children | ||||
| // 2. All bind:this callbacks, in reverse order: children before parents. | ||||
| // 3. All afterUpdate callbacks, in order: parents before children. EXCEPT | ||||
| //    for afterUpdates called during the initial onMount, which are called in | ||||
| //    reverse order: children before parents. | ||||
| // Since callbacks might update component values, which could trigger another | ||||
| // call to flush(), the following steps guard against this: | ||||
| // 1. During beforeUpdate, any updated components will be added to the | ||||
| //    dirty_components array and will cause a reentrant call to flush(). Because | ||||
| //    the flush index is kept outside the function, the reentrant call will pick | ||||
| //    up where the earlier call left off and go through all dirty components. The | ||||
| //    current_component value is saved and restored so that the reentrant call will | ||||
| //    not interfere with the "parent" flush() call. | ||||
| // 2. bind:this callbacks cannot trigger new flush() calls. | ||||
| // 3. During afterUpdate, any updated components will NOT have their afterUpdate | ||||
| //    callback called a second time; the seen_callbacks set, outside the flush() | ||||
| //    function, guarantees this behavior. | ||||
| const seen_callbacks = new Set(); | ||||
| let flushidx = 0; // Do *not* move this inside the flush() function | ||||
| function flush() { | ||||
|     const saved_component = current_component; | ||||
|     do { | ||||
|         // first, call beforeUpdate functions | ||||
|         // and update components | ||||
|         while (flushidx < dirty_components.length) { | ||||
|             const component = dirty_components[flushidx]; | ||||
|             flushidx++; | ||||
|             set_current_component(component); | ||||
|             update(component.$$); | ||||
|         } | ||||
|         set_current_component(null); | ||||
|         dirty_components.length = 0; | ||||
|         flushidx = 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; | ||||
|     seen_callbacks.clear(); | ||||
|     set_current_component(saved_component); | ||||
| } | ||||
| 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(); | ||||
| function transition_in(block, local) { | ||||
|     if (block && block.i) { | ||||
|         outroing.delete(block); | ||||
|         block.i(local); | ||||
|     } | ||||
| } | ||||
|  | ||||
| const globals = (typeof window !== 'undefined' | ||||
|     ? window | ||||
|     : typeof globalThis !== 'undefined' | ||||
|         ? globalThis | ||||
|         : global); | ||||
| function mount_component(component, target, anchor, customElement) { | ||||
|     const { fragment, after_update } = component.$$; | ||||
|     fragment && fragment.m(target, anchor); | ||||
|     if (!customElement) { | ||||
|         // onMount happens before the initial afterUpdate | ||||
|         add_render_callback(() => { | ||||
|             const new_on_destroy = component.$$.on_mount.map(run).filter(is_function); | ||||
|             // if the component was destroyed immediately | ||||
|             // it will update the `$$.on_destroy` reference to `null`. | ||||
|             // the destructured on_destroy may still reference to the old array | ||||
|             if (component.$$.on_destroy) { | ||||
|                 component.$$.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, append_styles, dirty = [-1]) { | ||||
|     const parent_component = current_component; | ||||
|     set_current_component(component); | ||||
|     const $$ = component.$$ = { | ||||
|         fragment: null, | ||||
|         ctx: [], | ||||
|         // state | ||||
|         props, | ||||
|         update: noop, | ||||
|         not_equal, | ||||
|         bound: blank_object(), | ||||
|         // lifecycle | ||||
|         on_mount: [], | ||||
|         on_destroy: [], | ||||
|         on_disconnect: [], | ||||
|         before_update: [], | ||||
|         after_update: [], | ||||
|         context: new Map(options.context || (parent_component ? parent_component.$$.context : [])), | ||||
|         // everything else | ||||
|         callbacks: blank_object(), | ||||
|         dirty, | ||||
|         skip_bound: false, | ||||
|         root: options.target || parent_component.$$.root | ||||
|     }; | ||||
|     append_styles && append_styles($$.root); | ||||
|     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); | ||||
| } | ||||
| let SvelteElement; | ||||
| if (typeof HTMLElement === 'function') { | ||||
|     SvelteElement = class extends HTMLElement { | ||||
|         constructor() { | ||||
|             super(); | ||||
|             this.attachShadow({ mode: 'open' }); | ||||
|         } | ||||
|         connectedCallback() { | ||||
|             const { on_mount } = this.$$; | ||||
|             this.$$.on_disconnect = on_mount.map(run).filter(is_function); | ||||
|             // @ts-ignore todo: improve typings | ||||
|             for (const key in this.$$.slotted) { | ||||
|                 // @ts-ignore todo: improve typings | ||||
|                 this.appendChild(this.$$.slotted[key]); | ||||
|             } | ||||
|         } | ||||
|         attributeChangedCallback(attr, _oldValue, newValue) { | ||||
|             this[attr] = newValue; | ||||
|         } | ||||
|         disconnectedCallback() { | ||||
|             run_all(this.$$.on_disconnect); | ||||
|         } | ||||
|         $destroy() { | ||||
|             destroy_component(this, 1); | ||||
|             this.$destroy = noop; | ||||
|         } | ||||
|         $on(type, callback) { | ||||
|             // TODO should this delegate to addEventListener? | ||||
|             if (!is_function(callback)) { | ||||
|                 return noop; | ||||
|             } | ||||
|             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.52.0' }, detail), { bubbles: true })); | ||||
| } | ||||
| 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_each_argument(arg) { | ||||
|     if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) { | ||||
|         let msg = '{#each} only iterates over array-like objects.'; | ||||
|         if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) { | ||||
|             msg += ' You can use a spread to convert this iterable into an array.'; | ||||
|         } | ||||
|         throw new Error(msg); | ||||
|     } | ||||
| } | ||||
| 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}".`); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| export { src_url_equal as A, run_all as B, svg_element as C, empty as D, HtmlTag as H, SvelteElement as S, attribute_to_object as a, insert_dev as b, space as c, dispatch_dev as d, element as e, add_location as f, set_custom_element_data as g, attr_dev as h, init as i, append_dev as j, detach_dev as k, flush as l, validate_each_argument as m, noop as n, onMount as o, globals as p, destroy_each as q, binding_callbacks as r, safe_not_equal as s, text as t, set_style as u, validate_slots as v, listen_dev as w, set_data_dev as x, getContext as y, setContext as z }; | ||||
| @@ -1,521 +0,0 @@ | ||||
|  | ||||
| (function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document); | ||||
| function noop() { } | ||||
| 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'); | ||||
| } | ||||
| let src_url_equal_anchor; | ||||
| function src_url_equal(element_src, url) { | ||||
|     if (!src_url_equal_anchor) { | ||||
|         src_url_equal_anchor = document.createElement('a'); | ||||
|     } | ||||
|     src_url_equal_anchor.href = url; | ||||
|     return element_src === src_url_equal_anchor.href; | ||||
| } | ||||
| function is_empty(obj) { | ||||
|     return Object.keys(obj).length === 0; | ||||
| } | ||||
| function validate_store(store, name) { | ||||
|     if (store != null && typeof store.subscribe !== 'function') { | ||||
|         throw new Error(`'${name}' is not a store with a 'subscribe' method`); | ||||
|     } | ||||
| } | ||||
| function subscribe(store, ...callbacks) { | ||||
|     if (store == null) { | ||||
|         return noop; | ||||
|     } | ||||
|     const unsub = store.subscribe(...callbacks); | ||||
|     return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub; | ||||
| } | ||||
| function component_subscribe(component, store, callback) { | ||||
|     component.$$.on_destroy.push(subscribe(store, callback)); | ||||
| } | ||||
| 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 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 attr(node, attribute, value) { | ||||
|     if (value == null) | ||||
|         node.removeAttribute(attribute); | ||||
|     else if (node.getAttribute(attribute) !== value) | ||||
|         node.setAttribute(attribute, value); | ||||
| } | ||||
| function set_custom_element_data(node, prop, value) { | ||||
|     if (prop in node) { | ||||
|         node[prop] = typeof node[prop] === 'boolean' && value === '' ? true : value; | ||||
|     } | ||||
|     else { | ||||
|         attr(node, prop, value); | ||||
|     } | ||||
| } | ||||
| function children(element) { | ||||
|     return Array.from(element.childNodes); | ||||
| } | ||||
| function set_style(node, key, value, important) { | ||||
|     if (value === null) { | ||||
|         node.style.removeProperty(key); | ||||
|     } | ||||
|     else { | ||||
|         node.style.setProperty(key, value, important ? 'important' : ''); | ||||
|     } | ||||
| } | ||||
| function custom_event(type, detail, { bubbles = false, cancelable = false } = {}) { | ||||
|     const e = document.createEvent('CustomEvent'); | ||||
|     e.initCustomEvent(type, bubbles, cancelable, detail); | ||||
|     return e; | ||||
| } | ||||
| class HtmlTag { | ||||
|     constructor(is_svg = false) { | ||||
|         this.is_svg = false; | ||||
|         this.is_svg = is_svg; | ||||
|         this.e = this.n = null; | ||||
|     } | ||||
|     c(html) { | ||||
|         this.h(html); | ||||
|     } | ||||
|     m(html, target, anchor = null) { | ||||
|         if (!this.e) { | ||||
|             if (this.is_svg) | ||||
|                 this.e = svg_element(target.nodeName); | ||||
|             else | ||||
|                 this.e = element(target.nodeName); | ||||
|             this.t = target; | ||||
|             this.c(html); | ||||
|         } | ||||
|         this.i(anchor); | ||||
|     } | ||||
|     h(html) { | ||||
|         this.e.innerHTML = html; | ||||
|         this.n = Array.from(this.e.childNodes); | ||||
|     } | ||||
|     i(anchor) { | ||||
|         for (let i = 0; i < this.n.length; i += 1) { | ||||
|             insert(this.t, this.n[i], anchor); | ||||
|         } | ||||
|     } | ||||
|     p(html) { | ||||
|         this.d(); | ||||
|         this.h(html); | ||||
|         this.i(this.a); | ||||
|     } | ||||
|     d() { | ||||
|         this.n.forEach(detach); | ||||
|     } | ||||
| } | ||||
| function attribute_to_object(attributes) { | ||||
|     const result = {}; | ||||
|     for (const attribute of attributes) { | ||||
|         result[attribute.name] = attribute.value; | ||||
|     } | ||||
|     return result; | ||||
| } | ||||
|  | ||||
| let current_component; | ||||
| function set_current_component(component) { | ||||
|     current_component = component; | ||||
| } | ||||
| function get_current_component() { | ||||
|     if (!current_component) | ||||
|         throw new Error('Function called outside component initialization'); | ||||
|     return current_component; | ||||
| } | ||||
| /** | ||||
|  * The `onMount` function schedules a callback to run as soon as the component has been mounted to the DOM. | ||||
|  * It must be called during the component's initialisation (but doesn't need to live *inside* the component; | ||||
|  * it can be called from an external module). | ||||
|  * | ||||
|  * `onMount` does not run inside a [server-side component](/docs#run-time-server-side-component-api). | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-onmount | ||||
|  */ | ||||
| function onMount(fn) { | ||||
|     get_current_component().$$.on_mount.push(fn); | ||||
| } | ||||
| /** | ||||
|  * Associates an arbitrary `context` object with the current component and the specified `key` | ||||
|  * and returns that object. The context is then available to children of the component | ||||
|  * (including slotted content) with `getContext`. | ||||
|  * | ||||
|  * Like lifecycle functions, this must be called during component initialisation. | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-setcontext | ||||
|  */ | ||||
| function setContext(key, context) { | ||||
|     get_current_component().$$.context.set(key, context); | ||||
|     return context; | ||||
| } | ||||
| /** | ||||
|  * Retrieves the context that belongs to the closest parent component with the specified `key`. | ||||
|  * Must be called during component initialisation. | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-getcontext | ||||
|  */ | ||||
| function getContext(key) { | ||||
|     return get_current_component().$$.context.get(key); | ||||
| } | ||||
|  | ||||
| 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); | ||||
| } | ||||
| // flush() calls callbacks in this order: | ||||
| // 1. All beforeUpdate callbacks, in order: parents before children | ||||
| // 2. All bind:this callbacks, in reverse order: children before parents. | ||||
| // 3. All afterUpdate callbacks, in order: parents before children. EXCEPT | ||||
| //    for afterUpdates called during the initial onMount, which are called in | ||||
| //    reverse order: children before parents. | ||||
| // Since callbacks might update component values, which could trigger another | ||||
| // call to flush(), the following steps guard against this: | ||||
| // 1. During beforeUpdate, any updated components will be added to the | ||||
| //    dirty_components array and will cause a reentrant call to flush(). Because | ||||
| //    the flush index is kept outside the function, the reentrant call will pick | ||||
| //    up where the earlier call left off and go through all dirty components. The | ||||
| //    current_component value is saved and restored so that the reentrant call will | ||||
| //    not interfere with the "parent" flush() call. | ||||
| // 2. bind:this callbacks cannot trigger new flush() calls. | ||||
| // 3. During afterUpdate, any updated components will NOT have their afterUpdate | ||||
| //    callback called a second time; the seen_callbacks set, outside the flush() | ||||
| //    function, guarantees this behavior. | ||||
| const seen_callbacks = new Set(); | ||||
| let flushidx = 0; // Do *not* move this inside the flush() function | ||||
| function flush() { | ||||
|     const saved_component = current_component; | ||||
|     do { | ||||
|         // first, call beforeUpdate functions | ||||
|         // and update components | ||||
|         while (flushidx < dirty_components.length) { | ||||
|             const component = dirty_components[flushidx]; | ||||
|             flushidx++; | ||||
|             set_current_component(component); | ||||
|             update(component.$$); | ||||
|         } | ||||
|         set_current_component(null); | ||||
|         dirty_components.length = 0; | ||||
|         flushidx = 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; | ||||
|     seen_callbacks.clear(); | ||||
|     set_current_component(saved_component); | ||||
| } | ||||
| 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(); | ||||
| function transition_in(block, local) { | ||||
|     if (block && block.i) { | ||||
|         outroing.delete(block); | ||||
|         block.i(local); | ||||
|     } | ||||
| } | ||||
|  | ||||
| const globals = (typeof window !== 'undefined' | ||||
|     ? window | ||||
|     : typeof globalThis !== 'undefined' | ||||
|         ? globalThis | ||||
|         : global); | ||||
| function mount_component(component, target, anchor, customElement) { | ||||
|     const { fragment, after_update } = component.$$; | ||||
|     fragment && fragment.m(target, anchor); | ||||
|     if (!customElement) { | ||||
|         // onMount happens before the initial afterUpdate | ||||
|         add_render_callback(() => { | ||||
|             const new_on_destroy = component.$$.on_mount.map(run).filter(is_function); | ||||
|             // if the component was destroyed immediately | ||||
|             // it will update the `$$.on_destroy` reference to `null`. | ||||
|             // the destructured on_destroy may still reference to the old array | ||||
|             if (component.$$.on_destroy) { | ||||
|                 component.$$.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, append_styles, dirty = [-1]) { | ||||
|     const parent_component = current_component; | ||||
|     set_current_component(component); | ||||
|     const $$ = component.$$ = { | ||||
|         fragment: null, | ||||
|         ctx: [], | ||||
|         // state | ||||
|         props, | ||||
|         update: noop, | ||||
|         not_equal, | ||||
|         bound: blank_object(), | ||||
|         // lifecycle | ||||
|         on_mount: [], | ||||
|         on_destroy: [], | ||||
|         on_disconnect: [], | ||||
|         before_update: [], | ||||
|         after_update: [], | ||||
|         context: new Map(options.context || (parent_component ? parent_component.$$.context : [])), | ||||
|         // everything else | ||||
|         callbacks: blank_object(), | ||||
|         dirty, | ||||
|         skip_bound: false, | ||||
|         root: options.target || parent_component.$$.root | ||||
|     }; | ||||
|     append_styles && append_styles($$.root); | ||||
|     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); | ||||
| } | ||||
| let SvelteElement; | ||||
| if (typeof HTMLElement === 'function') { | ||||
|     SvelteElement = class extends HTMLElement { | ||||
|         constructor() { | ||||
|             super(); | ||||
|             this.attachShadow({ mode: 'open' }); | ||||
|         } | ||||
|         connectedCallback() { | ||||
|             const { on_mount } = this.$$; | ||||
|             this.$$.on_disconnect = on_mount.map(run).filter(is_function); | ||||
|             // @ts-ignore todo: improve typings | ||||
|             for (const key in this.$$.slotted) { | ||||
|                 // @ts-ignore todo: improve typings | ||||
|                 this.appendChild(this.$$.slotted[key]); | ||||
|             } | ||||
|         } | ||||
|         attributeChangedCallback(attr, _oldValue, newValue) { | ||||
|             this[attr] = newValue; | ||||
|         } | ||||
|         disconnectedCallback() { | ||||
|             run_all(this.$$.on_disconnect); | ||||
|         } | ||||
|         $destroy() { | ||||
|             destroy_component(this, 1); | ||||
|             this.$destroy = noop; | ||||
|         } | ||||
|         $on(type, callback) { | ||||
|             // TODO should this delegate to addEventListener? | ||||
|             if (!is_function(callback)) { | ||||
|                 return noop; | ||||
|             } | ||||
|             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.52.0' }, detail), { bubbles: true })); | ||||
| } | ||||
| 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 prop_dev(node, property, value) { | ||||
|     node[property] = value; | ||||
|     dispatch_dev('SvelteDOMSetProperty', { node, property, 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_each_argument(arg) { | ||||
|     if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) { | ||||
|         let msg = '{#each} only iterates over array-like objects.'; | ||||
|         if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) { | ||||
|             msg += ' You can use a spread to convert this iterable into an array.'; | ||||
|         } | ||||
|         throw new Error(msg); | ||||
|     } | ||||
| } | ||||
| 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}".`); | ||||
|         } | ||||
|     } | ||||
| } | ||||
| function loop_guard(timeout) { | ||||
|     const start = Date.now(); | ||||
|     return () => { | ||||
|         if (Date.now() - start > timeout) { | ||||
|             throw new Error('Infinite loop detected'); | ||||
|         } | ||||
|     }; | ||||
| } | ||||
|  | ||||
| export { set_data_dev as A, destroy_each as B, prop_dev as C, flush as D, set_style as E, getContext as F, setContext as G, svg_element as H, is_function as I, HtmlTag as J, SvelteElement as S, attribute_to_object as a, insert_dev as b, validate_store as c, dispatch_dev as d, component_subscribe as e, empty as f, detach_dev as g, binding_callbacks as h, init as i, element as j, space as k, add_location as l, attr_dev as m, noop as n, onMount as o, src_url_equal as p, set_custom_element_data as q, append_dev as r, safe_not_equal as s, listen_dev as t, run_all as u, validate_slots as v, loop_guard as w, globals as x, validate_each_argument as y, text as z }; | ||||
| @@ -1 +0,0 @@ | ||||
| function t(){}function n(t){return t()}function e(){return Object.create(null)}function o(t){t.forEach(n)}function s(t){return"function"==typeof t}function r(t,n){return t!=t?n==n:t!==n||t&&"object"==typeof t||"function"==typeof t}let i,c;function u(t,n){return i||(i=document.createElement("a")),i.href=n,t===i.href}function a(n,e,o){n.$$.on_destroy.push(function(n,...e){if(null==n)return t;const o=n.subscribe(...e);return o.unsubscribe?()=>o.unsubscribe():o}(e,o))}function f(t,n){t.appendChild(n)}function l(t,n,e){t.insertBefore(n,e||null)}function h(t){t.parentNode.removeChild(t)}function d(t,n){for(let e=0;e<t.length;e+=1)t[e]&&t[e].d(n)}function $(t){return document.createElement(t)}function p(t){return document.createTextNode(t)}function m(){return p(" ")}function g(){return p("")}function b(t,n,e,o){return t.addEventListener(n,e,o),()=>t.removeEventListener(n,e,o)}function y(t,n,e){null==e?t.removeAttribute(n):t.getAttribute(n)!==e&&t.setAttribute(n,e)}function _(t,n,e){n in t?t[n]="boolean"==typeof t[n]&&""===e||e:y(t,n,e)}function x(t,n){n=""+n,t.wholeText!==n&&(t.data=n)}function v(t,n){t.value=null==n?"":n}function E(t,n,e,o){null===e?t.style.removeProperty(n):t.style.setProperty(n,e,o?"important":"")}class w{constructor(t=!1){this.is_svg=!1,this.is_svg=t,this.e=this.n=null}c(t){this.h(t)}m(t,n,e=null){var o;this.e||(this.is_svg?this.e=(o=n.nodeName,document.createElementNS("http://www.w3.org/2000/svg",o)):this.e=$(n.nodeName),this.t=n,this.c(t)),this.i(e)}h(t){this.e.innerHTML=t,this.n=Array.from(this.e.childNodes)}i(t){for(let n=0;n<this.n.length;n+=1)l(this.t,this.n[n],t)}p(t){this.d(),this.h(t),this.i(this.a)}d(){this.n.forEach(h)}}function k(t){const n={};for(const e of t)n[e.name]=e.value;return n}function C(t){c=t}function N(){if(!c)throw new Error("Function called outside component initialization");return c}function A(t){N().$$.on_mount.push(t)}function L(t,n){return N().$$.context.set(t,n),n}function S(t){return N().$$.context.get(t)}const T=[],j=[],H=[],M=[],O=Promise.resolve();let P=!1;function q(t){H.push(t)}const z=new Set;let B=0;function F(){const t=c;do{for(;B<T.length;){const t=T[B];B++,C(t),D(t.$$)}for(C(null),T.length=0,B=0;j.length;)j.pop()();for(let t=0;t<H.length;t+=1){const n=H[t];z.has(n)||(z.add(n),n())}H.length=0}while(T.length);for(;M.length;)M.pop()();P=!1,z.clear(),C(t)}function D(t){if(null!==t.fragment){t.update(),o(t.before_update);const n=t.dirty;t.dirty=[-1],t.fragment&&t.fragment.p(t.ctx,n),t.after_update.forEach(q)}}const G=new Set;function I(t,n){-1===t.$$.dirty[0]&&(T.push(t),P||(P=!0,O.then(F)),t.$$.dirty.fill(0)),t.$$.dirty[n/31|0]|=1<<n%31}function J(r,i,u,a,f,l,d,$=[-1]){const p=c;C(r);const m=r.$$={fragment:null,ctx:[],props:l,update:t,not_equal:f,bound:e(),on_mount:[],on_destroy:[],on_disconnect:[],before_update:[],after_update:[],context:new Map(i.context||(p?p.$$.context:[])),callbacks:e(),dirty:$,skip_bound:!1,root:i.target||p.$$.root};d&&d(m.root);let g=!1;if(m.ctx=u?u(r,i.props||{},((t,n,...e)=>{const o=e.length?e[0]:n;return m.ctx&&f(m.ctx[t],m.ctx[t]=o)&&(!m.skip_bound&&m.bound[t]&&m.bound[t](o),g&&I(r,t)),n})):[],m.update(),g=!0,o(m.before_update),m.fragment=!!a&&a(m.ctx),i.target){if(i.hydrate){const t=function(t){return Array.from(t.childNodes)}(i.target);m.fragment&&m.fragment.l(t),t.forEach(h)}else m.fragment&&m.fragment.c();i.intro&&((b=r.$$.fragment)&&b.i&&(G.delete(b),b.i(y))),function(t,e,r,i){const{fragment:c,after_update:u}=t.$$;c&&c.m(e,r),i||q((()=>{const e=t.$$.on_mount.map(n).filter(s);t.$$.on_destroy?t.$$.on_destroy.push(...e):o(e),t.$$.on_mount=[]})),u.forEach(q)}(r,i.target,i.anchor,i.customElement),F()}var b,y;C(p)}let K;"function"==typeof HTMLElement&&(K=class extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"})}connectedCallback(){const{on_mount:t}=this.$$;this.$$.on_disconnect=t.map(n).filter(s);for(const t in this.$$.slotted)this.appendChild(this.$$.slotted[t])}attributeChangedCallback(t,n,e){this[t]=e}disconnectedCallback(){o(this.$$.on_disconnect)}$destroy(){!function(t,n){const e=t.$$;null!==e.fragment&&(o(e.on_destroy),e.fragment&&e.fragment.d(n),e.on_destroy=e.fragment=null,e.ctx=[])}(this,1),this.$destroy=t}$on(n,e){if(!s(e))return t;const o=this.$$.callbacks[n]||(this.$$.callbacks[n]=[]);return o.push(e),()=>{const t=o.indexOf(e);-1!==t&&o.splice(t,1)}}$set(t){var n;this.$$set&&(n=t,0!==Object.keys(n).length)&&(this.$$.skip_bound=!0,this.$$set(t),this.$$.skip_bound=!1)}});export{v as A,w as H,K as S,k as a,l as b,m as c,y as d,$ as e,f,h as g,L as h,J as i,j,F as k,b as l,S as m,t as n,A as o,g as p,a as q,o as r,r as s,u as t,_ as u,p as v,x as w,d as x,E as y,s as z}; | ||||
| @@ -1,53 +0,0 @@ | ||||
|  | ||||
| (function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document); | ||||
| import { n as noop, s as safe_not_equal } from './index-d08fd9c0.js'; | ||||
|  | ||||
| const subscriber_queue = []; | ||||
| /** | ||||
|  * Create a `Writable` store that allows both updating and reading by subscription. | ||||
|  * @param {*=}value initial value | ||||
|  * @param {StartStopNotifier=}start start and stop notifications for subscriptions | ||||
|  */ | ||||
| function writable(value, start = noop) { | ||||
|     let stop; | ||||
|     const subscribers = new Set(); | ||||
|     function set(new_value) { | ||||
|         if (safe_not_equal(value, new_value)) { | ||||
|             value = new_value; | ||||
|             if (stop) { // store is ready | ||||
|                 const run_queue = !subscriber_queue.length; | ||||
|                 for (const subscriber of subscribers) { | ||||
|                     subscriber[1](); | ||||
|                     subscriber_queue.push(subscriber, value); | ||||
|                 } | ||||
|                 if (run_queue) { | ||||
|                     for (let i = 0; i < subscriber_queue.length; i += 2) { | ||||
|                         subscriber_queue[i][0](subscriber_queue[i + 1]); | ||||
|                     } | ||||
|                     subscriber_queue.length = 0; | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|     function update(fn) { | ||||
|         set(fn(value)); | ||||
|     } | ||||
|     function subscribe(run, invalidate = noop) { | ||||
|         const subscriber = [run, invalidate]; | ||||
|         subscribers.add(subscriber); | ||||
|         if (subscribers.size === 1) { | ||||
|             stop = start(set) || noop; | ||||
|         } | ||||
|         run(value); | ||||
|         return () => { | ||||
|             subscribers.delete(subscriber); | ||||
|             if (subscribers.size === 0) { | ||||
|                 stop(); | ||||
|                 stop = null; | ||||
|             } | ||||
|         }; | ||||
|     } | ||||
|     return { set, update, subscribe }; | ||||
| } | ||||
|  | ||||
| export { writable as w }; | ||||
| @@ -1,524 +0,0 @@ | ||||
|  | ||||
| (function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document); | ||||
| function noop() { } | ||||
| 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'); | ||||
| } | ||||
| let src_url_equal_anchor; | ||||
| function src_url_equal(element_src, url) { | ||||
|     if (!src_url_equal_anchor) { | ||||
|         src_url_equal_anchor = document.createElement('a'); | ||||
|     } | ||||
|     src_url_equal_anchor.href = url; | ||||
|     return element_src === src_url_equal_anchor.href; | ||||
| } | ||||
| function is_empty(obj) { | ||||
|     return Object.keys(obj).length === 0; | ||||
| } | ||||
| function validate_store(store, name) { | ||||
|     if (store != null && typeof store.subscribe !== 'function') { | ||||
|         throw new Error(`'${name}' is not a store with a 'subscribe' method`); | ||||
|     } | ||||
| } | ||||
| function subscribe(store, ...callbacks) { | ||||
|     if (store == null) { | ||||
|         return noop; | ||||
|     } | ||||
|     const unsub = store.subscribe(...callbacks); | ||||
|     return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub; | ||||
| } | ||||
| function component_subscribe(component, store, callback) { | ||||
|     component.$$.on_destroy.push(subscribe(store, callback)); | ||||
| } | ||||
| 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 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 attr(node, attribute, value) { | ||||
|     if (value == null) | ||||
|         node.removeAttribute(attribute); | ||||
|     else if (node.getAttribute(attribute) !== value) | ||||
|         node.setAttribute(attribute, value); | ||||
| } | ||||
| function set_custom_element_data(node, prop, value) { | ||||
|     if (prop in node) { | ||||
|         node[prop] = typeof node[prop] === 'boolean' && value === '' ? true : value; | ||||
|     } | ||||
|     else { | ||||
|         attr(node, prop, value); | ||||
|     } | ||||
| } | ||||
| function children(element) { | ||||
|     return Array.from(element.childNodes); | ||||
| } | ||||
| function set_input_value(input, value) { | ||||
|     input.value = value == null ? '' : value; | ||||
| } | ||||
| function set_style(node, key, value, important) { | ||||
|     if (value === null) { | ||||
|         node.style.removeProperty(key); | ||||
|     } | ||||
|     else { | ||||
|         node.style.setProperty(key, value, important ? 'important' : ''); | ||||
|     } | ||||
| } | ||||
| function custom_event(type, detail, { bubbles = false, cancelable = false } = {}) { | ||||
|     const e = document.createEvent('CustomEvent'); | ||||
|     e.initCustomEvent(type, bubbles, cancelable, detail); | ||||
|     return e; | ||||
| } | ||||
| class HtmlTag { | ||||
|     constructor(is_svg = false) { | ||||
|         this.is_svg = false; | ||||
|         this.is_svg = is_svg; | ||||
|         this.e = this.n = null; | ||||
|     } | ||||
|     c(html) { | ||||
|         this.h(html); | ||||
|     } | ||||
|     m(html, target, anchor = null) { | ||||
|         if (!this.e) { | ||||
|             if (this.is_svg) | ||||
|                 this.e = svg_element(target.nodeName); | ||||
|             else | ||||
|                 this.e = element(target.nodeName); | ||||
|             this.t = target; | ||||
|             this.c(html); | ||||
|         } | ||||
|         this.i(anchor); | ||||
|     } | ||||
|     h(html) { | ||||
|         this.e.innerHTML = html; | ||||
|         this.n = Array.from(this.e.childNodes); | ||||
|     } | ||||
|     i(anchor) { | ||||
|         for (let i = 0; i < this.n.length; i += 1) { | ||||
|             insert(this.t, this.n[i], anchor); | ||||
|         } | ||||
|     } | ||||
|     p(html) { | ||||
|         this.d(); | ||||
|         this.h(html); | ||||
|         this.i(this.a); | ||||
|     } | ||||
|     d() { | ||||
|         this.n.forEach(detach); | ||||
|     } | ||||
| } | ||||
| function attribute_to_object(attributes) { | ||||
|     const result = {}; | ||||
|     for (const attribute of attributes) { | ||||
|         result[attribute.name] = attribute.value; | ||||
|     } | ||||
|     return result; | ||||
| } | ||||
|  | ||||
| let current_component; | ||||
| function set_current_component(component) { | ||||
|     current_component = component; | ||||
| } | ||||
| function get_current_component() { | ||||
|     if (!current_component) | ||||
|         throw new Error('Function called outside component initialization'); | ||||
|     return current_component; | ||||
| } | ||||
| /** | ||||
|  * The `onMount` function schedules a callback to run as soon as the component has been mounted to the DOM. | ||||
|  * It must be called during the component's initialisation (but doesn't need to live *inside* the component; | ||||
|  * it can be called from an external module). | ||||
|  * | ||||
|  * `onMount` does not run inside a [server-side component](/docs#run-time-server-side-component-api). | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-onmount | ||||
|  */ | ||||
| function onMount(fn) { | ||||
|     get_current_component().$$.on_mount.push(fn); | ||||
| } | ||||
| /** | ||||
|  * Schedules a callback to run immediately after the component has been updated. | ||||
|  * | ||||
|  * The first time the callback runs will be after the initial `onMount` | ||||
|  */ | ||||
| function afterUpdate(fn) { | ||||
|     get_current_component().$$.after_update.push(fn); | ||||
| } | ||||
| /** | ||||
|  * Associates an arbitrary `context` object with the current component and the specified `key` | ||||
|  * and returns that object. The context is then available to children of the component | ||||
|  * (including slotted content) with `getContext`. | ||||
|  * | ||||
|  * Like lifecycle functions, this must be called during component initialisation. | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-setcontext | ||||
|  */ | ||||
| function setContext(key, context) { | ||||
|     get_current_component().$$.context.set(key, context); | ||||
|     return context; | ||||
| } | ||||
| /** | ||||
|  * Retrieves the context that belongs to the closest parent component with the specified `key`. | ||||
|  * Must be called during component initialisation. | ||||
|  * | ||||
|  * https://svelte.dev/docs#run-time-svelte-getcontext | ||||
|  */ | ||||
| function getContext(key) { | ||||
|     return get_current_component().$$.context.get(key); | ||||
| } | ||||
|  | ||||
| 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); | ||||
| } | ||||
| // flush() calls callbacks in this order: | ||||
| // 1. All beforeUpdate callbacks, in order: parents before children | ||||
| // 2. All bind:this callbacks, in reverse order: children before parents. | ||||
| // 3. All afterUpdate callbacks, in order: parents before children. EXCEPT | ||||
| //    for afterUpdates called during the initial onMount, which are called in | ||||
| //    reverse order: children before parents. | ||||
| // Since callbacks might update component values, which could trigger another | ||||
| // call to flush(), the following steps guard against this: | ||||
| // 1. During beforeUpdate, any updated components will be added to the | ||||
| //    dirty_components array and will cause a reentrant call to flush(). Because | ||||
| //    the flush index is kept outside the function, the reentrant call will pick | ||||
| //    up where the earlier call left off and go through all dirty components. The | ||||
| //    current_component value is saved and restored so that the reentrant call will | ||||
| //    not interfere with the "parent" flush() call. | ||||
| // 2. bind:this callbacks cannot trigger new flush() calls. | ||||
| // 3. During afterUpdate, any updated components will NOT have their afterUpdate | ||||
| //    callback called a second time; the seen_callbacks set, outside the flush() | ||||
| //    function, guarantees this behavior. | ||||
| const seen_callbacks = new Set(); | ||||
| let flushidx = 0; // Do *not* move this inside the flush() function | ||||
| function flush() { | ||||
|     const saved_component = current_component; | ||||
|     do { | ||||
|         // first, call beforeUpdate functions | ||||
|         // and update components | ||||
|         while (flushidx < dirty_components.length) { | ||||
|             const component = dirty_components[flushidx]; | ||||
|             flushidx++; | ||||
|             set_current_component(component); | ||||
|             update(component.$$); | ||||
|         } | ||||
|         set_current_component(null); | ||||
|         dirty_components.length = 0; | ||||
|         flushidx = 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; | ||||
|     seen_callbacks.clear(); | ||||
|     set_current_component(saved_component); | ||||
| } | ||||
| 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(); | ||||
| function transition_in(block, local) { | ||||
|     if (block && block.i) { | ||||
|         outroing.delete(block); | ||||
|         block.i(local); | ||||
|     } | ||||
| } | ||||
|  | ||||
| const globals = (typeof window !== 'undefined' | ||||
|     ? window | ||||
|     : typeof globalThis !== 'undefined' | ||||
|         ? globalThis | ||||
|         : global); | ||||
| function mount_component(component, target, anchor, customElement) { | ||||
|     const { fragment, after_update } = component.$$; | ||||
|     fragment && fragment.m(target, anchor); | ||||
|     if (!customElement) { | ||||
|         // onMount happens before the initial afterUpdate | ||||
|         add_render_callback(() => { | ||||
|             const new_on_destroy = component.$$.on_mount.map(run).filter(is_function); | ||||
|             // if the component was destroyed immediately | ||||
|             // it will update the `$$.on_destroy` reference to `null`. | ||||
|             // the destructured on_destroy may still reference to the old array | ||||
|             if (component.$$.on_destroy) { | ||||
|                 component.$$.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, append_styles, dirty = [-1]) { | ||||
|     const parent_component = current_component; | ||||
|     set_current_component(component); | ||||
|     const $$ = component.$$ = { | ||||
|         fragment: null, | ||||
|         ctx: [], | ||||
|         // state | ||||
|         props, | ||||
|         update: noop, | ||||
|         not_equal, | ||||
|         bound: blank_object(), | ||||
|         // lifecycle | ||||
|         on_mount: [], | ||||
|         on_destroy: [], | ||||
|         on_disconnect: [], | ||||
|         before_update: [], | ||||
|         after_update: [], | ||||
|         context: new Map(options.context || (parent_component ? parent_component.$$.context : [])), | ||||
|         // everything else | ||||
|         callbacks: blank_object(), | ||||
|         dirty, | ||||
|         skip_bound: false, | ||||
|         root: options.target || parent_component.$$.root | ||||
|     }; | ||||
|     append_styles && append_styles($$.root); | ||||
|     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); | ||||
| } | ||||
| let SvelteElement; | ||||
| if (typeof HTMLElement === 'function') { | ||||
|     SvelteElement = class extends HTMLElement { | ||||
|         constructor() { | ||||
|             super(); | ||||
|             this.attachShadow({ mode: 'open' }); | ||||
|         } | ||||
|         connectedCallback() { | ||||
|             const { on_mount } = this.$$; | ||||
|             this.$$.on_disconnect = on_mount.map(run).filter(is_function); | ||||
|             // @ts-ignore todo: improve typings | ||||
|             for (const key in this.$$.slotted) { | ||||
|                 // @ts-ignore todo: improve typings | ||||
|                 this.appendChild(this.$$.slotted[key]); | ||||
|             } | ||||
|         } | ||||
|         attributeChangedCallback(attr, _oldValue, newValue) { | ||||
|             this[attr] = newValue; | ||||
|         } | ||||
|         disconnectedCallback() { | ||||
|             run_all(this.$$.on_disconnect); | ||||
|         } | ||||
|         $destroy() { | ||||
|             destroy_component(this, 1); | ||||
|             this.$destroy = noop; | ||||
|         } | ||||
|         $on(type, callback) { | ||||
|             // TODO should this delegate to addEventListener? | ||||
|             if (!is_function(callback)) { | ||||
|                 return noop; | ||||
|             } | ||||
|             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.52.0' }, detail), { bubbles: true })); | ||||
| } | ||||
| 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 prop_dev(node, property, value) { | ||||
|     node[property] = value; | ||||
|     dispatch_dev('SvelteDOMSetProperty', { node, property, 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_each_argument(arg) { | ||||
|     if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) { | ||||
|         let msg = '{#each} only iterates over array-like objects.'; | ||||
|         if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) { | ||||
|             msg += ' You can use a spread to convert this iterable into an array.'; | ||||
|         } | ||||
|         throw new Error(msg); | ||||
|     } | ||||
| } | ||||
| 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}".`); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| export { validate_each_argument as A, text as B, set_data_dev as C, destroy_each as D, prop_dev as E, set_style as F, svg_element as G, is_function as H, HtmlTag as I, afterUpdate as J, set_input_value as K, SvelteElement as S, attribute_to_object as a, insert_dev as b, setContext as c, dispatch_dev as d, globals as e, element as f, getContext as g, space as h, init as i, add_location as j, attr_dev as k, append_dev as l, listen_dev as m, noop as n, onMount as o, detach_dev as p, binding_callbacks as q, run_all as r, safe_not_equal as s, flush as t, validate_store as u, validate_slots as v, component_subscribe as w, empty as x, src_url_equal as y, set_custom_element_data as z }; | ||||
| @@ -1,53 +0,0 @@ | ||||
|  | ||||
| (function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document); | ||||
| import { n as noop, s as safe_not_equal } from './index-ab5c14c8.js'; | ||||
|  | ||||
| const subscriber_queue = []; | ||||
| /** | ||||
|  * Create a `Writable` store that allows both updating and reading by subscription. | ||||
|  * @param {*=}value initial value | ||||
|  * @param {StartStopNotifier=}start start and stop notifications for subscriptions | ||||
|  */ | ||||
| function writable(value, start = noop) { | ||||
|     let stop; | ||||
|     const subscribers = new Set(); | ||||
|     function set(new_value) { | ||||
|         if (safe_not_equal(value, new_value)) { | ||||
|             value = new_value; | ||||
|             if (stop) { // store is ready | ||||
|                 const run_queue = !subscriber_queue.length; | ||||
|                 for (const subscriber of subscribers) { | ||||
|                     subscriber[1](); | ||||
|                     subscriber_queue.push(subscriber, value); | ||||
|                 } | ||||
|                 if (run_queue) { | ||||
|                     for (let i = 0; i < subscriber_queue.length; i += 2) { | ||||
|                         subscriber_queue[i][0](subscriber_queue[i + 1]); | ||||
|                     } | ||||
|                     subscriber_queue.length = 0; | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|     function update(fn) { | ||||
|         set(fn(value)); | ||||
|     } | ||||
|     function subscribe(run, invalidate = noop) { | ||||
|         const subscriber = [run, invalidate]; | ||||
|         subscribers.add(subscriber); | ||||
|         if (subscribers.size === 1) { | ||||
|             stop = start(set) || noop; | ||||
|         } | ||||
|         run(value); | ||||
|         return () => { | ||||
|             subscribers.delete(subscriber); | ||||
|             if (subscribers.size === 0) { | ||||
|                 stop(); | ||||
|                 stop = null; | ||||
|             } | ||||
|         }; | ||||
|     } | ||||
|     return { set, update, subscribe }; | ||||
| } | ||||
|  | ||||
| export { writable as w }; | ||||
| @@ -1,53 +0,0 @@ | ||||
|  | ||||
| (function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document); | ||||
| import { n as noop, s as safe_not_equal } from './index-6b4fe380.js'; | ||||
|  | ||||
| const subscriber_queue = []; | ||||
| /** | ||||
|  * Create a `Writable` store that allows both updating and reading by subscription. | ||||
|  * @param {*=}value initial value | ||||
|  * @param {StartStopNotifier=}start start and stop notifications for subscriptions | ||||
|  */ | ||||
| function writable(value, start = noop) { | ||||
|     let stop; | ||||
|     const subscribers = new Set(); | ||||
|     function set(new_value) { | ||||
|         if (safe_not_equal(value, new_value)) { | ||||
|             value = new_value; | ||||
|             if (stop) { // store is ready | ||||
|                 const run_queue = !subscriber_queue.length; | ||||
|                 for (const subscriber of subscribers) { | ||||
|                     subscriber[1](); | ||||
|                     subscriber_queue.push(subscriber, value); | ||||
|                 } | ||||
|                 if (run_queue) { | ||||
|                     for (let i = 0; i < subscriber_queue.length; i += 2) { | ||||
|                         subscriber_queue[i][0](subscriber_queue[i + 1]); | ||||
|                     } | ||||
|                     subscriber_queue.length = 0; | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|     function update(fn) { | ||||
|         set(fn(value)); | ||||
|     } | ||||
|     function subscribe(run, invalidate = noop) { | ||||
|         const subscriber = [run, invalidate]; | ||||
|         subscribers.add(subscriber); | ||||
|         if (subscribers.size === 1) { | ||||
|             stop = start(set) || noop; | ||||
|         } | ||||
|         run(value); | ||||
|         return () => { | ||||
|             subscribers.delete(subscriber); | ||||
|             if (subscribers.size === 0) { | ||||
|                 stop(); | ||||
|                 stop = null; | ||||
|             } | ||||
|         }; | ||||
|     } | ||||
|     return { set, update, subscribe }; | ||||
| } | ||||
|  | ||||
| export { writable as w }; | ||||
| @@ -1 +0,0 @@ | ||||
| import{n,s as t}from"./index-ce8c147b.js";const e=[];function s(s,o=n){let c;const i=new Set;function f(n){if(t(s,n)&&(s=n,c)){const n=!e.length;for(const n of i)n[1](),e.push(n,s);if(n){for(let n=0;n<e.length;n+=2)e[n][0](e[n+1]);e.length=0}}}return{set:f,update:function(n){f(n(s))},subscribe:function(t,e=n){const r=[t,e];return i.add(r),1===i.size&&(c=o(f)||n),t(s),()=>{i.delete(r),0===i.size&&(c(),c=null)}}}}export{s as w}; | ||||
| @@ -1,53 +0,0 @@ | ||||
|  | ||||
| (function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document); | ||||
| import { n as noop, s as safe_not_equal } from './index-998178c7.js'; | ||||
|  | ||||
| const subscriber_queue = []; | ||||
| /** | ||||
|  * Create a `Writable` store that allows both updating and reading by subscription. | ||||
|  * @param {*=}value initial value | ||||
|  * @param {StartStopNotifier=}start start and stop notifications for subscriptions | ||||
|  */ | ||||
| function writable(value, start = noop) { | ||||
|     let stop; | ||||
|     const subscribers = new Set(); | ||||
|     function set(new_value) { | ||||
|         if (safe_not_equal(value, new_value)) { | ||||
|             value = new_value; | ||||
|             if (stop) { // store is ready | ||||
|                 const run_queue = !subscriber_queue.length; | ||||
|                 for (const subscriber of subscribers) { | ||||
|                     subscriber[1](); | ||||
|                     subscriber_queue.push(subscriber, value); | ||||
|                 } | ||||
|                 if (run_queue) { | ||||
|                     for (let i = 0; i < subscriber_queue.length; i += 2) { | ||||
|                         subscriber_queue[i][0](subscriber_queue[i + 1]); | ||||
|                     } | ||||
|                     subscriber_queue.length = 0; | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|     function update(fn) { | ||||
|         set(fn(value)); | ||||
|     } | ||||
|     function subscribe(run, invalidate = noop) { | ||||
|         const subscriber = [run, invalidate]; | ||||
|         subscribers.add(subscriber); | ||||
|         if (subscribers.size === 1) { | ||||
|             stop = start(set) || noop; | ||||
|         } | ||||
|         run(value); | ||||
|         return () => { | ||||
|             subscribers.delete(subscriber); | ||||
|             if (subscribers.size === 0) { | ||||
|                 stop(); | ||||
|                 stop = null; | ||||
|             } | ||||
|         }; | ||||
|     } | ||||
|     return { set, update, subscribe }; | ||||
| } | ||||
|  | ||||
| export { writable as w }; | ||||
| @@ -1,53 +0,0 @@ | ||||
|  | ||||
| (function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document); | ||||
| import { n as noop, s as safe_not_equal } from './index-122ecbb4.js'; | ||||
|  | ||||
| const subscriber_queue = []; | ||||
| /** | ||||
|  * Create a `Writable` store that allows both updating and reading by subscription. | ||||
|  * @param {*=}value initial value | ||||
|  * @param {StartStopNotifier=}start start and stop notifications for subscriptions | ||||
|  */ | ||||
| function writable(value, start = noop) { | ||||
|     let stop; | ||||
|     const subscribers = new Set(); | ||||
|     function set(new_value) { | ||||
|         if (safe_not_equal(value, new_value)) { | ||||
|             value = new_value; | ||||
|             if (stop) { // store is ready | ||||
|                 const run_queue = !subscriber_queue.length; | ||||
|                 for (const subscriber of subscribers) { | ||||
|                     subscriber[1](); | ||||
|                     subscriber_queue.push(subscriber, value); | ||||
|                 } | ||||
|                 if (run_queue) { | ||||
|                     for (let i = 0; i < subscriber_queue.length; i += 2) { | ||||
|                         subscriber_queue[i][0](subscriber_queue[i + 1]); | ||||
|                     } | ||||
|                     subscriber_queue.length = 0; | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|     function update(fn) { | ||||
|         set(fn(value)); | ||||
|     } | ||||
|     function subscribe(run, invalidate = noop) { | ||||
|         const subscriber = [run, invalidate]; | ||||
|         subscribers.add(subscriber); | ||||
|         if (subscribers.size === 1) { | ||||
|             stop = start(set) || noop; | ||||
|         } | ||||
|         run(value); | ||||
|         return () => { | ||||
|             subscribers.delete(subscriber); | ||||
|             if (subscribers.size === 0) { | ||||
|                 stop(); | ||||
|                 stop = null; | ||||
|             } | ||||
|         }; | ||||
|     } | ||||
|     return { set, update, subscribe }; | ||||
| } | ||||
|  | ||||
| export { writable as w }; | ||||
| @@ -1,53 +0,0 @@ | ||||
|  | ||||
| (function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document); | ||||
| import { n as noop, s as safe_not_equal } from './index-970976e6.js'; | ||||
|  | ||||
| const subscriber_queue = []; | ||||
| /** | ||||
|  * Create a `Writable` store that allows both updating and reading by subscription. | ||||
|  * @param {*=}value initial value | ||||
|  * @param {StartStopNotifier=}start start and stop notifications for subscriptions | ||||
|  */ | ||||
| function writable(value, start = noop) { | ||||
|     let stop; | ||||
|     const subscribers = new Set(); | ||||
|     function set(new_value) { | ||||
|         if (safe_not_equal(value, new_value)) { | ||||
|             value = new_value; | ||||
|             if (stop) { // store is ready | ||||
|                 const run_queue = !subscriber_queue.length; | ||||
|                 for (const subscriber of subscribers) { | ||||
|                     subscriber[1](); | ||||
|                     subscriber_queue.push(subscriber, value); | ||||
|                 } | ||||
|                 if (run_queue) { | ||||
|                     for (let i = 0; i < subscriber_queue.length; i += 2) { | ||||
|                         subscriber_queue[i][0](subscriber_queue[i + 1]); | ||||
|                     } | ||||
|                     subscriber_queue.length = 0; | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|     function update(fn) { | ||||
|         set(fn(value)); | ||||
|     } | ||||
|     function subscribe(run, invalidate = noop) { | ||||
|         const subscriber = [run, invalidate]; | ||||
|         subscribers.add(subscriber); | ||||
|         if (subscribers.size === 1) { | ||||
|             stop = start(set) || noop; | ||||
|         } | ||||
|         run(value); | ||||
|         return () => { | ||||
|             subscribers.delete(subscriber); | ||||
|             if (subscribers.size === 0) { | ||||
|                 stop(); | ||||
|                 stop = null; | ||||
|             } | ||||
|         }; | ||||
|     } | ||||
|     return { set, update, subscribe }; | ||||
| } | ||||
|  | ||||
| export { writable as w }; | ||||
| @@ -1,670 +0,0 @@ | ||||
|  | ||||
| (function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document); | ||||
| import { S as SvelteElement, i as init, a as attribute_to_object, b as insert_dev, s as safe_not_equal, d as dispatch_dev, v as validate_slots, w as validate_store, x as component_subscribe, o as onMount, g as getContext, e as globals, A as validate_each_argument, y as empty, n as noop, p as detach_dev, q as binding_callbacks, f as element, h as space, B as text, k as attr_dev, j as add_location, u as src_url_equal, l as append_dev, m as listen_dev, C as set_data_dev, D as destroy_each, r as run_all } from './index-122ecbb4.js'; | ||||
| import { w as writable } from './index-fb9750f3.js'; | ||||
| import { loadLocaleContent, locales } from '../../../../../../../../../js/libraries/serverTools.js'; | ||||
|  | ||||
| /* src\navbar\navbar-component.svelte generated by Svelte v3.52.0 */ | ||||
|  | ||||
| const { Object: Object_1 } = globals; | ||||
| const file = "src\\navbar\\navbar-component.svelte"; | ||||
|  | ||||
| function get_each_context(ctx, list, i) { | ||||
| 	const child_ctx = ctx.slice(); | ||||
| 	child_ctx[23] = list[i][0]; | ||||
| 	child_ctx[24] = list[i][1]; | ||||
| 	return child_ctx; | ||||
| } | ||||
|  | ||||
| // (97:4) {#if Object.keys($content).length!=0} | ||||
| function create_if_block(ctx) { | ||||
| 	let header; | ||||
| 	let input; | ||||
| 	let t0; | ||||
| 	let label; | ||||
| 	let span0; | ||||
| 	let t1; | ||||
| 	let a0; | ||||
| 	let img0; | ||||
| 	let img0_src_value; | ||||
| 	let t2; | ||||
| 	let span1; | ||||
| 	let raw_value = /*$content*/ ctx[5].orgName + ""; | ||||
| 	let t3; | ||||
| 	let nav; | ||||
| 	let ul; | ||||
| 	let li0; | ||||
| 	let a1; | ||||
| 	let t4_value = /*$content*/ ctx[5].joinUs + ""; | ||||
| 	let t4; | ||||
| 	let t5; | ||||
| 	let li1; | ||||
| 	let a2; | ||||
| 	let t6_value = /*$content*/ ctx[5].manifesto + ""; | ||||
| 	let t6; | ||||
| 	let t7; | ||||
| 	let li2; | ||||
| 	let button0; | ||||
| 	let t8_value = /*$content*/ ctx[5].initiatives + ""; | ||||
| 	let t8; | ||||
| 	let t9; | ||||
| 	let div0; | ||||
| 	let a3; | ||||
| 	let t10_value = /*$content*/ ctx[5].groups + ""; | ||||
| 	let t10; | ||||
| 	let t11; | ||||
| 	let a4; | ||||
| 	let t12_value = /*$content*/ ctx[5].communes + ""; | ||||
| 	let t12; | ||||
| 	let t13; | ||||
| 	let a5; | ||||
| 	let t14_value = /*$content*/ ctx[5].cooperatives + ""; | ||||
| 	let t14; | ||||
| 	let t15; | ||||
| 	let a6; | ||||
| 	let t16_value = /*$content*/ ctx[5].parties + ""; | ||||
| 	let t16; | ||||
| 	let t17; | ||||
| 	let a7; | ||||
| 	let t18_value = /*$content*/ ctx[5].partners + ""; | ||||
| 	let t18; | ||||
| 	let t19; | ||||
| 	let li3; | ||||
| 	let button1; | ||||
| 	let picture; | ||||
| 	let source0; | ||||
| 	let t20; | ||||
| 	let source1; | ||||
| 	let t21; | ||||
| 	let img1; | ||||
| 	let t22; | ||||
| 	let div1; | ||||
| 	let mounted; | ||||
| 	let dispose; | ||||
| 	let each_value = Object.entries(locales); | ||||
| 	validate_each_argument(each_value); | ||||
| 	let each_blocks = []; | ||||
|  | ||||
| 	for (let i = 0; i < each_value.length; i += 1) { | ||||
| 		each_blocks[i] = create_each_block(get_each_context(ctx, each_value, i)); | ||||
| 	} | ||||
|  | ||||
| 	const block = { | ||||
| 		c: function create() { | ||||
| 			header = element("header"); | ||||
| 			input = element("input"); | ||||
| 			t0 = space(); | ||||
| 			label = element("label"); | ||||
| 			span0 = element("span"); | ||||
| 			t1 = space(); | ||||
| 			a0 = element("a"); | ||||
| 			img0 = element("img"); | ||||
| 			t2 = space(); | ||||
| 			span1 = element("span"); | ||||
| 			t3 = space(); | ||||
| 			nav = element("nav"); | ||||
| 			ul = element("ul"); | ||||
| 			li0 = element("li"); | ||||
| 			a1 = element("a"); | ||||
| 			t4 = text(t4_value); | ||||
| 			t5 = space(); | ||||
| 			li1 = element("li"); | ||||
| 			a2 = element("a"); | ||||
| 			t6 = text(t6_value); | ||||
| 			t7 = space(); | ||||
| 			li2 = element("li"); | ||||
| 			button0 = element("button"); | ||||
| 			t8 = text(t8_value); | ||||
| 			t9 = space(); | ||||
| 			div0 = element("div"); | ||||
| 			a3 = element("a"); | ||||
| 			t10 = text(t10_value); | ||||
| 			t11 = space(); | ||||
| 			a4 = element("a"); | ||||
| 			t12 = text(t12_value); | ||||
| 			t13 = space(); | ||||
| 			a5 = element("a"); | ||||
| 			t14 = text(t14_value); | ||||
| 			t15 = space(); | ||||
| 			a6 = element("a"); | ||||
| 			t16 = text(t16_value); | ||||
| 			t17 = space(); | ||||
| 			a7 = element("a"); | ||||
| 			t18 = text(t18_value); | ||||
| 			t19 = space(); | ||||
| 			li3 = element("li"); | ||||
| 			button1 = element("button"); | ||||
| 			picture = element("picture"); | ||||
| 			source0 = element("source"); | ||||
| 			t20 = space(); | ||||
| 			source1 = element("source"); | ||||
| 			t21 = space(); | ||||
| 			img1 = element("img"); | ||||
| 			t22 = space(); | ||||
| 			div1 = element("div"); | ||||
|  | ||||
| 			for (let i = 0; i < each_blocks.length; i += 1) { | ||||
| 				each_blocks[i].c(); | ||||
| 			} | ||||
|  | ||||
| 			attr_dev(input, "type", "checkbox"); | ||||
| 			attr_dev(input, "id", "side-menu"); | ||||
| 			add_location(input, file, 99, 12, 3170); | ||||
| 			attr_dev(span0, "id", "hamb-line"); | ||||
| 			add_location(span0, file, 100, 45, 3301); | ||||
| 			attr_dev(label, "id", "hamb"); | ||||
| 			attr_dev(label, "for", "side-menu"); | ||||
| 			add_location(label, file, 100, 12, 3268); | ||||
| 			if (!src_url_equal(img0.src, img0_src_value = "/img/common/flag.png")) attr_dev(img0, "src", img0_src_value); | ||||
| 			attr_dev(img0, "id", "navbar-logo"); | ||||
| 			attr_dev(img0, "alt", "logo"); | ||||
| 			add_location(img0, file, 103, 16, 3443); | ||||
| 			attr_dev(span1, "id", "navbar-logo-text"); | ||||
| 			add_location(span1, file, 104, 16, 3521); | ||||
| 			attr_dev(a0, "id", "logo-container"); | ||||
| 			attr_dev(a0, "href", "/" + /*locale*/ ctx[8] + "/"); | ||||
| 			add_location(a0, file, 102, 12, 3378); | ||||
| 			attr_dev(a1, "href", "/" + /*locale*/ ctx[8] + "/join-us"); | ||||
| 			add_location(a1, file, 109, 24, 3733); | ||||
| 			add_location(li0, file, 109, 20, 3729); | ||||
| 			attr_dev(a2, "href", "/" + /*locale*/ ctx[8] + "/manifesto"); | ||||
| 			add_location(a2, file, 110, 24, 3817); | ||||
| 			add_location(li1, file, 110, 20, 3813); | ||||
| 			attr_dev(button0, "class", "options-button"); | ||||
| 			add_location(button0, file, 114, 24, 4129); | ||||
| 			attr_dev(a3, "href", "/" + /*locale*/ ctx[8] + "/groups"); | ||||
| 			add_location(a3, file, 116, 28, 4406); | ||||
| 			attr_dev(a4, "href", "/" + /*locale*/ ctx[8] + "/communes"); | ||||
| 			add_location(a4, file, 117, 28, 4488); | ||||
| 			attr_dev(a5, "href", "/" + /*locale*/ ctx[8] + "/cooperatives"); | ||||
| 			add_location(a5, file, 118, 28, 4574); | ||||
| 			attr_dev(a6, "href", "/" + /*locale*/ ctx[8] + "/parties"); | ||||
| 			add_location(a6, file, 119, 28, 4668); | ||||
| 			attr_dev(a7, "href", "/" + /*locale*/ ctx[8] + "/partners"); | ||||
| 			add_location(a7, file, 120, 28, 4752); | ||||
| 			attr_dev(div0, "class", "options-dropdown"); | ||||
| 			add_location(div0, file, 115, 24, 4314); | ||||
| 			attr_dev(li2, "id", "options-container"); | ||||
| 			add_location(li2, file, 113, 20, 4076); | ||||
| 			attr_dev(source0, "srcset", "/img/common/globe.webp"); | ||||
| 			add_location(source0, file, 126, 32, 5102); | ||||
| 			attr_dev(source1, "srcset", "/img/common/globe.png"); | ||||
| 			add_location(source1, file, 127, 32, 5176); | ||||
| 			attr_dev(img1, "id", "locales-img"); | ||||
| 			attr_dev(img1, "alt", "globe"); | ||||
| 			add_location(img1, file, 128, 32, 5249); | ||||
| 			add_location(picture, file, 125, 28, 5059); | ||||
| 			add_location(button1, file, 124, 24, 4932); | ||||
| 			attr_dev(li3, "id", "locales"); | ||||
| 			add_location(li3, file, 123, 20, 4889); | ||||
| 			attr_dev(div1, "class", "options-dropdown"); | ||||
| 			add_location(div1, file, 132, 20, 5407); | ||||
| 			attr_dev(ul, "id", "menu"); | ||||
| 			add_location(ul, file, 108, 16, 3693); | ||||
| 			attr_dev(nav, "id", "nav"); | ||||
| 			add_location(nav, file, 107, 12, 3661); | ||||
| 			attr_dev(header, "id", "navbar"); | ||||
| 			add_location(header, file, 97, 8, 3080); | ||||
| 		}, | ||||
| 		m: function mount(target, anchor) { | ||||
| 			insert_dev(target, header, anchor); | ||||
| 			append_dev(header, input); | ||||
| 			/*input_binding*/ ctx[12](input); | ||||
| 			append_dev(header, t0); | ||||
| 			append_dev(header, label); | ||||
| 			append_dev(label, span0); | ||||
| 			append_dev(header, t1); | ||||
| 			append_dev(header, a0); | ||||
| 			append_dev(a0, img0); | ||||
| 			append_dev(a0, t2); | ||||
| 			append_dev(a0, span1); | ||||
| 			span1.innerHTML = raw_value; | ||||
| 			/*span1_binding*/ ctx[13](span1); | ||||
| 			append_dev(header, t3); | ||||
| 			append_dev(header, nav); | ||||
| 			append_dev(nav, ul); | ||||
| 			append_dev(ul, li0); | ||||
| 			append_dev(li0, a1); | ||||
| 			append_dev(a1, t4); | ||||
| 			append_dev(ul, t5); | ||||
| 			append_dev(ul, li1); | ||||
| 			append_dev(li1, a2); | ||||
| 			append_dev(a2, t6); | ||||
| 			append_dev(ul, t7); | ||||
| 			append_dev(ul, li2); | ||||
| 			append_dev(li2, button0); | ||||
| 			append_dev(button0, t8); | ||||
| 			append_dev(li2, t9); | ||||
| 			append_dev(li2, div0); | ||||
| 			append_dev(div0, a3); | ||||
| 			append_dev(a3, t10); | ||||
| 			append_dev(div0, t11); | ||||
| 			append_dev(div0, a4); | ||||
| 			append_dev(a4, t12); | ||||
| 			append_dev(div0, t13); | ||||
| 			append_dev(div0, a5); | ||||
| 			append_dev(a5, t14); | ||||
| 			append_dev(div0, t15); | ||||
| 			append_dev(div0, a6); | ||||
| 			append_dev(a6, t16); | ||||
| 			append_dev(div0, t17); | ||||
| 			append_dev(div0, a7); | ||||
| 			append_dev(a7, t18); | ||||
| 			/*div0_binding*/ ctx[16](div0); | ||||
| 			append_dev(ul, t19); | ||||
| 			append_dev(ul, li3); | ||||
| 			append_dev(li3, button1); | ||||
| 			append_dev(button1, picture); | ||||
| 			append_dev(picture, source0); | ||||
| 			append_dev(picture, t20); | ||||
| 			append_dev(picture, source1); | ||||
| 			append_dev(picture, t21); | ||||
| 			append_dev(picture, img1); | ||||
| 			append_dev(ul, t22); | ||||
| 			append_dev(ul, div1); | ||||
|  | ||||
| 			for (let i = 0; i < each_blocks.length; i += 1) { | ||||
| 				each_blocks[i].m(div1, null); | ||||
| 			} | ||||
|  | ||||
| 			/*div1_binding*/ ctx[20](div1); | ||||
| 			/*header_binding*/ ctx[21](header); | ||||
|  | ||||
| 			if (!mounted) { | ||||
| 				dispose = [ | ||||
| 					listen_dev(input, "click", /*changeNavbar*/ ctx[9], false, false, false), | ||||
| 					listen_dev(button0, "click", /*click_handler*/ ctx[14], false, false, false), | ||||
| 					listen_dev(button0, "focusout", /*focusout_handler*/ ctx[15], false, false, false), | ||||
| 					listen_dev(button1, "click", /*click_handler_1*/ ctx[17], false, false, false), | ||||
| 					listen_dev(button1, "focusout", /*focusout_handler_1*/ ctx[18], false, false, false) | ||||
| 				]; | ||||
|  | ||||
| 				mounted = true; | ||||
| 			} | ||||
| 		}, | ||||
| 		p: function update(ctx, dirty) { | ||||
| 			if (dirty & /*$content*/ 32 && raw_value !== (raw_value = /*$content*/ ctx[5].orgName + "")) span1.innerHTML = raw_value;			if (dirty & /*$content*/ 32 && t4_value !== (t4_value = /*$content*/ ctx[5].joinUs + "")) set_data_dev(t4, t4_value); | ||||
| 			if (dirty & /*$content*/ 32 && t6_value !== (t6_value = /*$content*/ ctx[5].manifesto + "")) set_data_dev(t6, t6_value); | ||||
| 			if (dirty & /*$content*/ 32 && t8_value !== (t8_value = /*$content*/ ctx[5].initiatives + "")) set_data_dev(t8, t8_value); | ||||
| 			if (dirty & /*$content*/ 32 && t10_value !== (t10_value = /*$content*/ ctx[5].groups + "")) set_data_dev(t10, t10_value); | ||||
| 			if (dirty & /*$content*/ 32 && t12_value !== (t12_value = /*$content*/ ctx[5].communes + "")) set_data_dev(t12, t12_value); | ||||
| 			if (dirty & /*$content*/ 32 && t14_value !== (t14_value = /*$content*/ ctx[5].cooperatives + "")) set_data_dev(t14, t14_value); | ||||
| 			if (dirty & /*$content*/ 32 && t16_value !== (t16_value = /*$content*/ ctx[5].parties + "")) set_data_dev(t16, t16_value); | ||||
| 			if (dirty & /*$content*/ 32 && t18_value !== (t18_value = /*$content*/ ctx[5].partners + "")) set_data_dev(t18, t18_value); | ||||
|  | ||||
| 			if (dirty & /*changeLocale, Object, locales*/ 2048) { | ||||
| 				each_value = Object.entries(locales); | ||||
| 				validate_each_argument(each_value); | ||||
| 				let i; | ||||
|  | ||||
| 				for (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(child_ctx, dirty); | ||||
| 					} else { | ||||
| 						each_blocks[i] = create_each_block(child_ctx); | ||||
| 						each_blocks[i].c(); | ||||
| 						each_blocks[i].m(div1, null); | ||||
| 					} | ||||
| 				} | ||||
|  | ||||
| 				for (; i < each_blocks.length; i += 1) { | ||||
| 					each_blocks[i].d(1); | ||||
| 				} | ||||
|  | ||||
| 				each_blocks.length = each_value.length; | ||||
| 			} | ||||
| 		}, | ||||
| 		d: function destroy(detaching) { | ||||
| 			if (detaching) detach_dev(header); | ||||
| 			/*input_binding*/ ctx[12](null); | ||||
| 			/*span1_binding*/ ctx[13](null); | ||||
| 			/*div0_binding*/ ctx[16](null); | ||||
| 			destroy_each(each_blocks, detaching); | ||||
| 			/*div1_binding*/ ctx[20](null); | ||||
| 			/*header_binding*/ ctx[21](null); | ||||
| 			mounted = false; | ||||
| 			run_all(dispose); | ||||
| 		} | ||||
| 	}; | ||||
|  | ||||
| 	dispatch_dev("SvelteRegisterBlock", { | ||||
| 		block, | ||||
| 		id: create_if_block.name, | ||||
| 		type: "if", | ||||
| 		source: "(97:4) {#if Object.keys($content).length!=0}", | ||||
| 		ctx | ||||
| 	}); | ||||
|  | ||||
| 	return block; | ||||
| } | ||||
|  | ||||
| // (134:24) {#each Object.entries(locales) as [loc,name]} | ||||
| function create_each_block(ctx) { | ||||
| 	let button; | ||||
| 	let t_value = /*name*/ ctx[24] + ""; | ||||
| 	let t; | ||||
| 	let mounted; | ||||
| 	let dispose; | ||||
|  | ||||
| 	function click_handler_2() { | ||||
| 		return /*click_handler_2*/ ctx[19](/*loc*/ ctx[23]); | ||||
| 	} | ||||
|  | ||||
| 	const block = { | ||||
| 		c: function create() { | ||||
| 			button = element("button"); | ||||
| 			t = text(t_value); | ||||
| 			add_location(button, file, 134, 28, 5566); | ||||
| 		}, | ||||
| 		m: function mount(target, anchor) { | ||||
| 			insert_dev(target, button, anchor); | ||||
| 			append_dev(button, t); | ||||
|  | ||||
| 			if (!mounted) { | ||||
| 				dispose = listen_dev(button, "click", click_handler_2, false, false, false); | ||||
| 				mounted = true; | ||||
| 			} | ||||
| 		}, | ||||
| 		p: function update(new_ctx, dirty) { | ||||
| 			ctx = new_ctx; | ||||
| 		}, | ||||
| 		d: function destroy(detaching) { | ||||
| 			if (detaching) detach_dev(button); | ||||
| 			mounted = false; | ||||
| 			dispose(); | ||||
| 		} | ||||
| 	}; | ||||
|  | ||||
| 	dispatch_dev("SvelteRegisterBlock", { | ||||
| 		block, | ||||
| 		id: create_each_block.name, | ||||
| 		type: "each", | ||||
| 		source: "(134:24) {#each Object.entries(locales) as [loc,name]}", | ||||
| 		ctx | ||||
| 	}); | ||||
|  | ||||
| 	return block; | ||||
| } | ||||
|  | ||||
| function create_fragment(ctx) { | ||||
| 	let show_if = Object.keys(/*$content*/ ctx[5]).length != 0; | ||||
| 	let if_block_anchor; | ||||
| 	let if_block = show_if && create_if_block(ctx); | ||||
|  | ||||
| 	const block = { | ||||
| 		c: function create() { | ||||
| 			if (if_block) if_block.c(); | ||||
| 			if_block_anchor = empty(); | ||||
| 			this.c = noop; | ||||
| 		}, | ||||
| 		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 (if_block) if_block.m(target, anchor); | ||||
| 			insert_dev(target, if_block_anchor, anchor); | ||||
| 		}, | ||||
| 		p: function update(ctx, [dirty]) { | ||||
| 			if (dirty & /*$content*/ 32) show_if = Object.keys(/*$content*/ ctx[5]).length != 0; | ||||
|  | ||||
| 			if (show_if) { | ||||
| 				if (if_block) { | ||||
| 					if_block.p(ctx, dirty); | ||||
| 				} else { | ||||
| 					if_block = create_if_block(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; | ||||
| 			} | ||||
| 		}, | ||||
| 		i: noop, | ||||
| 		o: noop, | ||||
| 		d: function destroy(detaching) { | ||||
| 			if (if_block) if_block.d(detaching); | ||||
| 			if (detaching) detach_dev(if_block_anchor); | ||||
| 		} | ||||
| 	}; | ||||
|  | ||||
| 	dispatch_dev("SvelteRegisterBlock", { | ||||
| 		block, | ||||
| 		id: create_fragment.name, | ||||
| 		type: "component", | ||||
| 		source: "", | ||||
| 		ctx | ||||
| 	}); | ||||
|  | ||||
| 	return block; | ||||
| } | ||||
|  | ||||
| function hide(dropdown) { | ||||
| 	let callback = () => { | ||||
| 		dropdown.style.display = "none"; | ||||
| 	}; | ||||
|  | ||||
| 	setTimeout(callback, 100); | ||||
| } | ||||
|  | ||||
| function instance($$self, $$props, $$invalidate) { | ||||
| 	let $content; | ||||
| 	let { $$slots: slots = {}, $$scope } = $$props; | ||||
| 	validate_slots('navbar-component', slots, []); | ||||
| 	let hambInput; | ||||
| 	let navbar; | ||||
| 	let localesDropdown; | ||||
| 	let initiativesDropdown; | ||||
| 	let loaded = writable(0); | ||||
| 	let content = writable({}); | ||||
| 	validate_store(content, 'content'); | ||||
| 	component_subscribe($$self, content, value => $$invalidate(5, $content = value)); | ||||
| 	let logoText; | ||||
| 	let locale = loadLocaleContent(content, "navbar-component", loaded); | ||||
|  | ||||
| 	function changeNavbar() { | ||||
| 		if (hambInput.checked) { | ||||
| 			$$invalidate(1, navbar.style.background = "white", navbar); | ||||
| 		} else { | ||||
| 			setTimeout( | ||||
| 				() => { | ||||
| 					$$invalidate(1, navbar.style.position = "relative", navbar); | ||||
| 					$$invalidate(1, navbar.style.background = "", navbar); | ||||
| 					$$invalidate(1, navbar.style.boxShadow = "", navbar); | ||||
| 				}, | ||||
| 				510 | ||||
| 			); | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	function showDropdown(dropdown) { | ||||
| 		let state = dropdown.style.display; | ||||
| 		$$invalidate(3, initiativesDropdown.style.display = "none", initiativesDropdown); | ||||
| 		$$invalidate(2, localesDropdown.style.display = "none", localesDropdown); | ||||
|  | ||||
| 		if (state == "block") { | ||||
| 			dropdown.style.display = "none"; | ||||
| 		} else { | ||||
| 			dropdown.style.display = "block"; | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	function changeLocale(lang) { | ||||
| 		localStorage.setItem("locale", lang); | ||||
| 		let locSplit = location.href.split("/"); | ||||
| 		let localesSymbols = Object.keys(locales); | ||||
| 		locSplit = locSplit.filter(x => !localesSymbols.includes(x)); | ||||
| 		let loc = locSplit.slice(0, locSplit.length - 1).join("/") + "/" + lang + "/" + locSplit[locSplit.length - 1]; | ||||
| 		location.href = loc; | ||||
| 	} | ||||
|  | ||||
| 	function fixHeading() { | ||||
| 		if (locale == "ru") { | ||||
| 			let func = () => { | ||||
| 				if (logoText == undefined) { | ||||
| 					setTimeout(func, 100); | ||||
| 				} else { | ||||
| 					if ((window.innerWidth < 1700 && window.innerWidth > 1400 || window.innerWidth < 400) && logoText.style.lineHeight != "100%") { | ||||
| 						$$invalidate(4, logoText.style.lineHeight = "120%", logoText); | ||||
| 						$$invalidate(4, logoText.style.top = "1rem", logoText); | ||||
| 						$$invalidate(4, logoText.style.width = "16rem", logoText); | ||||
| 					} else if ((window.innerWidth > 1700 || window.innerWidth > 400 && window.innerWidth < 1400) && logoText.style.lineHeight != "400%") { | ||||
| 						$$invalidate(4, logoText.style.lineHeight = "400%", logoText); | ||||
| 						$$invalidate(4, logoText.style.top = "0rem", logoText); | ||||
| 						$$invalidate(4, logoText.style.width = "auto", logoText); | ||||
| 					} | ||||
| 				} | ||||
| 			}; | ||||
|  | ||||
| 			func(); | ||||
| 			addEventListener("resize", func); | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	onMount(() => { | ||||
| 		fixHeading(); | ||||
| 	}); | ||||
|  | ||||
| 	const writable_props = []; | ||||
|  | ||||
| 	Object_1.keys($$props).forEach(key => { | ||||
| 		if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console.warn(`<navbar-component> was created with unknown prop '${key}'`); | ||||
| 	}); | ||||
|  | ||||
| 	function input_binding($$value) { | ||||
| 		binding_callbacks[$$value ? 'unshift' : 'push'](() => { | ||||
| 			hambInput = $$value; | ||||
| 			$$invalidate(0, hambInput); | ||||
| 		}); | ||||
| 	} | ||||
|  | ||||
| 	function span1_binding($$value) { | ||||
| 		binding_callbacks[$$value ? 'unshift' : 'push'](() => { | ||||
| 			logoText = $$value; | ||||
| 			$$invalidate(4, logoText); | ||||
| 		}); | ||||
| 	} | ||||
|  | ||||
| 	const click_handler = () => showDropdown(initiativesDropdown); | ||||
| 	const focusout_handler = () => hide(initiativesDropdown); | ||||
|  | ||||
| 	function div0_binding($$value) { | ||||
| 		binding_callbacks[$$value ? 'unshift' : 'push'](() => { | ||||
| 			initiativesDropdown = $$value; | ||||
| 			$$invalidate(3, initiativesDropdown); | ||||
| 		}); | ||||
| 	} | ||||
|  | ||||
| 	const click_handler_1 = () => showDropdown(localesDropdown); | ||||
| 	const focusout_handler_1 = () => hide(localesDropdown); | ||||
| 	const click_handler_2 = loc => changeLocale(loc); | ||||
|  | ||||
| 	function div1_binding($$value) { | ||||
| 		binding_callbacks[$$value ? 'unshift' : 'push'](() => { | ||||
| 			localesDropdown = $$value; | ||||
| 			$$invalidate(2, localesDropdown); | ||||
| 		}); | ||||
| 	} | ||||
|  | ||||
| 	function header_binding($$value) { | ||||
| 		binding_callbacks[$$value ? 'unshift' : 'push'](() => { | ||||
| 			navbar = $$value; | ||||
| 			$$invalidate(1, navbar); | ||||
| 		}); | ||||
| 	} | ||||
|  | ||||
| 	$$self.$capture_state = () => ({ | ||||
| 		onMount, | ||||
| 		getContext, | ||||
| 		writable, | ||||
| 		loadLocaleContent, | ||||
| 		locales, | ||||
| 		hambInput, | ||||
| 		navbar, | ||||
| 		localesDropdown, | ||||
| 		initiativesDropdown, | ||||
| 		loaded, | ||||
| 		content, | ||||
| 		logoText, | ||||
| 		locale, | ||||
| 		changeNavbar, | ||||
| 		showDropdown, | ||||
| 		changeLocale, | ||||
| 		fixHeading, | ||||
| 		hide, | ||||
| 		$content | ||||
| 	}); | ||||
|  | ||||
| 	$$self.$inject_state = $$props => { | ||||
| 		if ('hambInput' in $$props) $$invalidate(0, hambInput = $$props.hambInput); | ||||
| 		if ('navbar' in $$props) $$invalidate(1, navbar = $$props.navbar); | ||||
| 		if ('localesDropdown' in $$props) $$invalidate(2, localesDropdown = $$props.localesDropdown); | ||||
| 		if ('initiativesDropdown' in $$props) $$invalidate(3, initiativesDropdown = $$props.initiativesDropdown); | ||||
| 		if ('loaded' in $$props) $$invalidate(6, loaded = $$props.loaded); | ||||
| 		if ('content' in $$props) $$invalidate(7, content = $$props.content); | ||||
| 		if ('logoText' in $$props) $$invalidate(4, logoText = $$props.logoText); | ||||
| 		if ('locale' in $$props) $$invalidate(8, locale = $$props.locale); | ||||
| 	}; | ||||
|  | ||||
| 	if ($$props && "$$inject" in $$props) { | ||||
| 		$$self.$inject_state($$props.$$inject); | ||||
| 	} | ||||
|  | ||||
| 	return [ | ||||
| 		hambInput, | ||||
| 		navbar, | ||||
| 		localesDropdown, | ||||
| 		initiativesDropdown, | ||||
| 		logoText, | ||||
| 		$content, | ||||
| 		loaded, | ||||
| 		content, | ||||
| 		locale, | ||||
| 		changeNavbar, | ||||
| 		showDropdown, | ||||
| 		changeLocale, | ||||
| 		input_binding, | ||||
| 		span1_binding, | ||||
| 		click_handler, | ||||
| 		focusout_handler, | ||||
| 		div0_binding, | ||||
| 		click_handler_1, | ||||
| 		focusout_handler_1, | ||||
| 		click_handler_2, | ||||
| 		div1_binding, | ||||
| 		header_binding | ||||
| 	]; | ||||
| } | ||||
|  | ||||
| class Navbar_component extends SvelteElement { | ||||
| 	constructor(options) { | ||||
| 		super(); | ||||
| 		this.shadowRoot.innerHTML = `<style>@import '/css/common.css';#navbar{position:relative;top:0;width:min(100%,116rem);z-index:1000000000;height:5.26rem;padding-left:0rem;padding-right:0rem}#navbar *{font-family:var(--sans-serif, sans-serif)}#logo-container{display:flex;position:absolute;margin-left:1rem;height:100%;max-height:5.26rem;color:black;z-index:1;flex-direction:row;flex-wrap:nowrap;align-items:center}#navbar-logo{height:3.5rem;width:3.5rem;object-fit:contain;border-radius:10rem}#navbar-logo-text{position:relative;word-wrap:normal;height:100%;line-height:400%;font-size:1.4rem;color:#292222;font-family:var(--sans-serif, sans-serif);font-weight:400;padding-left:1.2rem}#nav{position:fixed;width:100%;height:100%;background-color:white;overflow:hidden;z-index:0}#menu>li>a,.options-button{display:block;padding:1.2rem;padding-top:1rem;padding-bottom:1rem;color:black;font-size:1.4rem}#menu>li>a:active{background-color:#f7aec0}#menu li{list-style-type:none}#nav{max-height:0}#hamb{position:absolute;cursor:pointer;right:0rem;padding:2.8rem 2rem;z-index:9999}#hamb-line{background:black;display:block;height:2px;position:relative;width:24px}#hamb-line::before,#hamb-line::after{background:black;content:'';display:block;height:100%;position:absolute;transition:all .2s ease-out;width:100%}#hamb-line::before{top:5px}#hamb-line::after{top:-5px}#side-menu{display:none}#side-menu:checked~nav{display:block;max-height:100%;padding-top:5.625rem}#side-menu:checked~#logo-container{position:fixed}#side-menu:checked~#hamb{position:fixed}#side-menu:checked~#logo-container{position:fixed}#side-menu:checked~#hamb #hamb-line{background:transparent}#side-menu:checked~#hamb #hamb-line::before{transform:rotate(-45deg);top:0}#side-menu:checked~#hamb #hamb-line::after{transform:rotate(45deg);top:0}.options-dropdown{position:absolute;display:none;top:5.6rem;right:1.8rem;border:#404040 solid 0.1rem;background-color:white;z-index:10}.options-dropdown button,.options-dropdown a{display:block;font-family:var(--sans-serif,sans-serif);font-size:1.2rem;width:100%;padding:1rem;text-align:left}.options-dropdown button:hover,.options-dropdown a:hover{background-color:var(--red);color:white}.options-button{width:100%;text-align:left}#locales{position:relative}#locales button{width:100%;text-align:left;height:4rem}#locales button:hover{opacity:0.5}#locales-img{position:relative;top:0rem;height:2rem;margin-left:1.2rem}@media only screen and (min-width: 1200px){#navbar{position:relative;width:min(100%,116rem);left:50%;transform:translateX(-50%);padding-right:4rem;padding-left:4rem}#nav{max-height:none;top:0;position:relative;float:right;width:fit-content;background-color:transparent;overflow:visible}#side-menu:checked~nav{padding-top:0}#menu li{float:left}#menu>li>a:hover,.options-button:hover,#navbar-logo-text:hover{color:rgb(127, 127, 127)}#menu>li>a,.options-button{padding:0.9rem;padding-top:1.9rem;padding-bottom:1.9rem}#hamb{display:none}#locales{position:relative;margin-right:1.8rem}#locales-img{top:0.9rem}}</style>`; | ||||
|  | ||||
| 		init( | ||||
| 			this, | ||||
| 			{ | ||||
| 				target: this.shadowRoot, | ||||
| 				props: attribute_to_object(this.attributes), | ||||
| 				customElement: true | ||||
| 			}, | ||||
| 			instance, | ||||
| 			create_fragment, | ||||
| 			safe_not_equal, | ||||
| 			{}, | ||||
| 			null | ||||
| 		); | ||||
|  | ||||
| 		if (options) { | ||||
| 			if (options.target) { | ||||
| 				insert_dev(options.target, this, options.anchor); | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
|  | ||||
| customElements.define("navbar-component", Navbar_component); | ||||
|  | ||||
| export { Navbar_component as default }; | ||||
| @@ -1,80 +0,0 @@ | ||||
|  | ||||
| (function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document); | ||||
| import { S as SvelteElement, i as init, a as attribute_to_object, b as insert_dev, s as safe_not_equal, d as dispatch_dev, v as validate_slots, o as onMount, n as noop } from './index-6b4fe380.js'; | ||||
| import * as AuthTools from '../../../../../../../../../js/libraries/authTools.js'; | ||||
|  | ||||
| /* src\profile\profile-group.svelte generated by Svelte v3.52.0 */ | ||||
|  | ||||
| function create_fragment(ctx) { | ||||
| 	const block = { | ||||
| 		c: function create() { | ||||
| 			this.c = noop; | ||||
| 		}, | ||||
| 		l: function claim(nodes) { | ||||
| 			throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); | ||||
| 		}, | ||||
| 		m: noop, | ||||
| 		p: noop, | ||||
| 		i: noop, | ||||
| 		o: noop, | ||||
| 		d: noop | ||||
| 	}; | ||||
|  | ||||
| 	dispatch_dev("SvelteRegisterBlock", { | ||||
| 		block, | ||||
| 		id: create_fragment.name, | ||||
| 		type: "component", | ||||
| 		source: "", | ||||
| 		ctx | ||||
| 	}); | ||||
|  | ||||
| 	return block; | ||||
| } | ||||
|  | ||||
| function instance($$self, $$props, $$invalidate) { | ||||
| 	let { $$slots: slots = {}, $$scope } = $$props; | ||||
| 	validate_slots('profile-group', slots, []); | ||||
|  | ||||
| 	onMount(() => { | ||||
| 		 | ||||
| 	}); | ||||
|  | ||||
| 	const writable_props = []; | ||||
|  | ||||
| 	Object.keys($$props).forEach(key => { | ||||
| 		if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console.warn(`<profile-group> was created with unknown prop '${key}'`); | ||||
| 	}); | ||||
|  | ||||
| 	$$self.$capture_state = () => ({ onMount, AuthTools }); | ||||
| 	return []; | ||||
| } | ||||
|  | ||||
| class Profile_group extends SvelteElement { | ||||
| 	constructor(options) { | ||||
| 		super(); | ||||
|  | ||||
| 		init( | ||||
| 			this, | ||||
| 			{ | ||||
| 				target: this.shadowRoot, | ||||
| 				props: attribute_to_object(this.attributes), | ||||
| 				customElement: true | ||||
| 			}, | ||||
| 			instance, | ||||
| 			create_fragment, | ||||
| 			safe_not_equal, | ||||
| 			{}, | ||||
| 			null | ||||
| 		); | ||||
|  | ||||
| 		if (options) { | ||||
| 			if (options.target) { | ||||
| 				insert_dev(options.target, this, options.anchor); | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
|  | ||||
| customElements.define("profile-group", Profile_group); | ||||
|  | ||||
| export { Profile_group as default }; | ||||
| @@ -1,80 +0,0 @@ | ||||
|  | ||||
| (function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document); | ||||
| import { S as SvelteElement, i as init, a as attribute_to_object, b as insert_dev, s as safe_not_equal, d as dispatch_dev, v as validate_slots, o as onMount, n as noop } from './index-6b4fe380.js'; | ||||
| import * as AuthTools from '../../../../../../../../../js/libraries/authTools.js'; | ||||
|  | ||||
| /* src\profile\profile-my-details.svelte generated by Svelte v3.52.0 */ | ||||
|  | ||||
| function create_fragment(ctx) { | ||||
| 	const block = { | ||||
| 		c: function create() { | ||||
| 			this.c = noop; | ||||
| 		}, | ||||
| 		l: function claim(nodes) { | ||||
| 			throw new Error("options.hydrate only works if the component was compiled with the `hydratable: true` option"); | ||||
| 		}, | ||||
| 		m: noop, | ||||
| 		p: noop, | ||||
| 		i: noop, | ||||
| 		o: noop, | ||||
| 		d: noop | ||||
| 	}; | ||||
|  | ||||
| 	dispatch_dev("SvelteRegisterBlock", { | ||||
| 		block, | ||||
| 		id: create_fragment.name, | ||||
| 		type: "component", | ||||
| 		source: "", | ||||
| 		ctx | ||||
| 	}); | ||||
|  | ||||
| 	return block; | ||||
| } | ||||
|  | ||||
| function instance($$self, $$props, $$invalidate) { | ||||
| 	let { $$slots: slots = {}, $$scope } = $$props; | ||||
| 	validate_slots('profile-my-details', slots, []); | ||||
|  | ||||
| 	onMount(() => { | ||||
| 		 | ||||
| 	}); | ||||
|  | ||||
| 	const writable_props = []; | ||||
|  | ||||
| 	Object.keys($$props).forEach(key => { | ||||
| 		if (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') console.warn(`<profile-my-details> was created with unknown prop '${key}'`); | ||||
| 	}); | ||||
|  | ||||
| 	$$self.$capture_state = () => ({ onMount, AuthTools }); | ||||
| 	return []; | ||||
| } | ||||
|  | ||||
| class Profile_my_details extends SvelteElement { | ||||
| 	constructor(options) { | ||||
| 		super(); | ||||
|  | ||||
| 		init( | ||||
| 			this, | ||||
| 			{ | ||||
| 				target: this.shadowRoot, | ||||
| 				props: attribute_to_object(this.attributes), | ||||
| 				customElement: true | ||||
| 			}, | ||||
| 			instance, | ||||
| 			create_fragment, | ||||
| 			safe_not_equal, | ||||
| 			{}, | ||||
| 			null | ||||
| 		); | ||||
|  | ||||
| 		if (options) { | ||||
| 			if (options.target) { | ||||
| 				insert_dev(options.target, this, options.anchor); | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
|  | ||||
| customElements.define("profile-my-details", Profile_my_details); | ||||
|  | ||||
| export { Profile_my_details as default }; | ||||
		Reference in New Issue
	
	Block a user
	 a-ill
					a-ill