squash
This commit is contained in:
		
							parent
							
								
									abadb2ec7d
								
							
						
					
					
						commit
						828057f05e
					
				
					 7 changed files with 876 additions and 7 deletions
				
			
		
							
								
								
									
										239
									
								
								Cargo.lock
									
										
									
										generated
									
									
									
								
							
							
						
						
									
										239
									
								
								Cargo.lock
									
										
									
										generated
									
									
									
								
							|  | @ -1,5 +1,7 @@ | ||||||
| # This file is automatically @generated by Cargo. | # This file is automatically @generated by Cargo. | ||||||
| # It is not intended for manual editing. | # It is not intended for manual editing. | ||||||
|  | version = 3 | ||||||
|  | 
 | ||||||
| [[package]] | [[package]] | ||||||
| name = "addr2line" | name = "addr2line" | ||||||
| version = "0.14.0" | version = "0.14.0" | ||||||
|  | @ -15,6 +17,18 @@ version = "0.2.3" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "ee2a4ec343196209d6594e19543ae87a39f96d5534d7174822a3ad825dd6ed7e" | checksum = "ee2a4ec343196209d6594e19543ae87a39f96d5534d7174822a3ad825dd6ed7e" | ||||||
| 
 | 
 | ||||||
|  | [[package]] | ||||||
|  | name = "anyhow" | ||||||
|  | version = "1.0.48" | ||||||
|  | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
|  | checksum = "62e1f47f7dc0422027a4e370dd4548d4d66b26782e513e98dca1e689e058a80e" | ||||||
|  | 
 | ||||||
|  | [[package]] | ||||||
|  | name = "anymap" | ||||||
|  | version = "0.12.1" | ||||||
|  | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
|  | checksum = "33954243bd79057c2de7338850b85983a44588021f8a5fee574a8888c6de4344" | ||||||
|  | 
 | ||||||
| [[package]] | [[package]] | ||||||
| name = "assert_approx_eq" | name = "assert_approx_eq" | ||||||
| version = "1.1.0" | version = "1.1.0" | ||||||
|  | @ -41,12 +55,33 @@ dependencies = [ | ||||||
|  "rustc-demangle", |  "rustc-demangle", | ||||||
| ] | ] | ||||||
| 
 | 
 | ||||||
|  | [[package]] | ||||||
|  | name = "bincode" | ||||||
|  | version = "1.3.3" | ||||||
|  | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
|  | checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" | ||||||
|  | dependencies = [ | ||||||
|  |  "serde", | ||||||
|  | ] | ||||||
|  | 
 | ||||||
|  | [[package]] | ||||||
|  | name = "boolinator" | ||||||
|  | version = "2.4.0" | ||||||
|  | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
|  | checksum = "cfa8873f51c92e232f9bac4065cddef41b714152812bfc5f7672ba16d6ef8cd9" | ||||||
|  | 
 | ||||||
| [[package]] | [[package]] | ||||||
| name = "bumpalo" | name = "bumpalo" | ||||||
| version = "3.4.0" | version = "3.4.0" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "2e8c087f005730276d1096a652e92a8bacee2e2472bcc9715a74d2bec38b5820" | checksum = "2e8c087f005730276d1096a652e92a8bacee2e2472bcc9715a74d2bec38b5820" | ||||||
| 
 | 
 | ||||||
|  | [[package]] | ||||||
|  | name = "bytes" | ||||||
|  | version = "1.1.0" | ||||||
|  | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
|  | checksum = "c4872d67bab6358e59559027aa3b9157c53d9358c51423c17554809a8858e0f8" | ||||||
|  | 
 | ||||||
| [[package]] | [[package]] | ||||||
| name = "cfg-if" | name = "cfg-if" | ||||||
| version = "0.1.10" | version = "0.1.10" | ||||||
|  | @ -59,6 +94,12 @@ version = "1.0.0" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" | checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" | ||||||
| 
 | 
 | ||||||
|  | [[package]] | ||||||
|  | name = "cfg-match" | ||||||
|  | version = "0.2.1" | ||||||
|  | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
|  | checksum = "8100e46ff92eb85bf6dc2930c73f2a4f7176393c84a9446b3d501e1b354e7b34" | ||||||
|  | 
 | ||||||
| [[package]] | [[package]] | ||||||
| name = "chrono" | name = "chrono" | ||||||
| version = "0.4.19" | version = "0.4.19" | ||||||
|  | @ -91,6 +132,12 @@ dependencies = [ | ||||||
|  "backtrace", |  "backtrace", | ||||||
| ] | ] | ||||||
| 
 | 
 | ||||||
|  | [[package]] | ||||||
|  | name = "fnv" | ||||||
|  | version = "1.0.7" | ||||||
|  | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
|  | checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" | ||||||
|  | 
 | ||||||
| [[package]] | [[package]] | ||||||
| name = "geo-types" | name = "geo-types" | ||||||
| version = "0.4.3" | version = "0.4.3" | ||||||
|  | @ -106,6 +153,60 @@ version = "0.23.0" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "f6503fe142514ca4799d4c26297c4248239fe8838d827db6bd6065c6ed29a6ce" | checksum = "f6503fe142514ca4799d4c26297c4248239fe8838d827db6bd6065c6ed29a6ce" | ||||||
| 
 | 
 | ||||||
|  | [[package]] | ||||||
|  | name = "gloo" | ||||||
|  | version = "0.2.1" | ||||||
|  | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
|  | checksum = "68ce6f2dfa9f57f15b848efa2aade5e1850dc72986b87a2b0752d44ca08f4967" | ||||||
|  | dependencies = [ | ||||||
|  |  "gloo-console-timer", | ||||||
|  |  "gloo-events", | ||||||
|  |  "gloo-file", | ||||||
|  |  "gloo-timers", | ||||||
|  | ] | ||||||
|  | 
 | ||||||
|  | [[package]] | ||||||
|  | name = "gloo-console-timer" | ||||||
|  | version = "0.1.0" | ||||||
|  | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
|  | checksum = "b48675544b29ac03402c6dffc31a912f716e38d19f7e74b78b7e900ec3c941ea" | ||||||
|  | dependencies = [ | ||||||
|  |  "web-sys", | ||||||
|  | ] | ||||||
|  | 
 | ||||||
|  | [[package]] | ||||||
|  | name = "gloo-events" | ||||||
|  | version = "0.1.1" | ||||||
|  | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
|  | checksum = "088514ec8ef284891c762c88a66b639b3a730134714692ee31829765c5bc814f" | ||||||
|  | dependencies = [ | ||||||
|  |  "wasm-bindgen", | ||||||
|  |  "web-sys", | ||||||
|  | ] | ||||||
|  | 
 | ||||||
|  | [[package]] | ||||||
|  | name = "gloo-file" | ||||||
|  | version = "0.1.0" | ||||||
|  | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
|  | checksum = "8f9fecfe46b5dc3cc46f58e98ba580cc714f2c93860796d002eb3527a465ef49" | ||||||
|  | dependencies = [ | ||||||
|  |  "gloo-events", | ||||||
|  |  "js-sys", | ||||||
|  |  "wasm-bindgen", | ||||||
|  |  "web-sys", | ||||||
|  | ] | ||||||
|  | 
 | ||||||
|  | [[package]] | ||||||
|  | name = "gloo-timers" | ||||||
|  | version = "0.2.1" | ||||||
|  | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
|  | checksum = "47204a46aaff920a1ea58b11d03dec6f704287d27561724a4631e450654a891f" | ||||||
|  | dependencies = [ | ||||||
|  |  "js-sys", | ||||||
|  |  "wasm-bindgen", | ||||||
|  |  "web-sys", | ||||||
|  | ] | ||||||
|  | 
 | ||||||
| [[package]] | [[package]] | ||||||
| name = "gpx" | name = "gpx" | ||||||
| version = "0.8.1" | version = "0.8.1" | ||||||
|  | @ -128,8 +229,42 @@ dependencies = [ | ||||||
|  "js-sys", |  "js-sys", | ||||||
|  "wasm-bindgen", |  "wasm-bindgen", | ||||||
|  "wasm-bindgen-test", |  "wasm-bindgen-test", | ||||||
|  |  "yew", | ||||||
| ] | ] | ||||||
| 
 | 
 | ||||||
|  | [[package]] | ||||||
|  | name = "hashbrown" | ||||||
|  | version = "0.11.2" | ||||||
|  | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
|  | checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" | ||||||
|  | 
 | ||||||
|  | [[package]] | ||||||
|  | name = "http" | ||||||
|  | version = "0.2.5" | ||||||
|  | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
|  | checksum = "1323096b05d41827dadeaee54c9981958c0f94e670bc94ed80037d1a7b8b186b" | ||||||
|  | dependencies = [ | ||||||
|  |  "bytes", | ||||||
|  |  "fnv", | ||||||
|  |  "itoa", | ||||||
|  | ] | ||||||
|  | 
 | ||||||
|  | [[package]] | ||||||
|  | name = "indexmap" | ||||||
|  | version = "1.7.0" | ||||||
|  | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
|  | checksum = "bc633605454125dec4b66843673f01c7df2b89479b32e0ed634e43a91cff62a5" | ||||||
|  | dependencies = [ | ||||||
|  |  "autocfg", | ||||||
|  |  "hashbrown", | ||||||
|  | ] | ||||||
|  | 
 | ||||||
|  | [[package]] | ||||||
|  | name = "itoa" | ||||||
|  | version = "0.4.8" | ||||||
|  | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
|  | checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" | ||||||
|  | 
 | ||||||
| [[package]] | [[package]] | ||||||
| name = "js-sys" | name = "js-sys" | ||||||
| version = "0.3.45" | version = "0.3.45" | ||||||
|  | @ -219,12 +354,55 @@ version = "0.1.18" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "6e3bad0ee36814ca07d7968269dd4b7ec89ec2da10c4bb613928d3077083c232" | checksum = "6e3bad0ee36814ca07d7968269dd4b7ec89ec2da10c4bb613928d3077083c232" | ||||||
| 
 | 
 | ||||||
|  | [[package]] | ||||||
|  | name = "ryu" | ||||||
|  | version = "1.0.5" | ||||||
|  | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
|  | checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e" | ||||||
|  | 
 | ||||||
| [[package]] | [[package]] | ||||||
| name = "scoped-tls" | name = "scoped-tls" | ||||||
| version = "1.0.0" | version = "1.0.0" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "ea6a9290e3c9cf0f18145ef7ffa62d68ee0bf5fcd651017e586dc7fd5da448c2" | checksum = "ea6a9290e3c9cf0f18145ef7ffa62d68ee0bf5fcd651017e586dc7fd5da448c2" | ||||||
| 
 | 
 | ||||||
|  | [[package]] | ||||||
|  | name = "serde" | ||||||
|  | version = "1.0.118" | ||||||
|  | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
|  | checksum = "06c64263859d87aa2eb554587e2d23183398d617427327cf2b3d0ed8c69e4800" | ||||||
|  | dependencies = [ | ||||||
|  |  "serde_derive", | ||||||
|  | ] | ||||||
|  | 
 | ||||||
|  | [[package]] | ||||||
|  | name = "serde_derive" | ||||||
|  | version = "1.0.118" | ||||||
|  | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
|  | checksum = "c84d3526699cd55261af4b941e4e725444df67aa4f9e6a3564f18030d12672df" | ||||||
|  | dependencies = [ | ||||||
|  |  "proc-macro2", | ||||||
|  |  "quote", | ||||||
|  |  "syn", | ||||||
|  | ] | ||||||
|  | 
 | ||||||
|  | [[package]] | ||||||
|  | name = "serde_json" | ||||||
|  | version = "1.0.72" | ||||||
|  | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
|  | checksum = "d0ffa0837f2dfa6fb90868c2b5468cad482e175f7dad97e7421951e663f2b527" | ||||||
|  | dependencies = [ | ||||||
|  |  "itoa", | ||||||
|  |  "ryu", | ||||||
|  |  "serde", | ||||||
|  | ] | ||||||
|  | 
 | ||||||
|  | [[package]] | ||||||
|  | name = "slab" | ||||||
|  | version = "0.4.5" | ||||||
|  | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
|  | checksum = "9def91fd1e018fe007022791f865d0ccc9b3a0d5001e01aabb8b40e46000afb5" | ||||||
|  | 
 | ||||||
| [[package]] | [[package]] | ||||||
| name = "syn" | name = "syn" | ||||||
| version = "1.0.48" | version = "1.0.48" | ||||||
|  | @ -236,6 +414,26 @@ dependencies = [ | ||||||
|  "unicode-xid", |  "unicode-xid", | ||||||
| ] | ] | ||||||
| 
 | 
 | ||||||
|  | [[package]] | ||||||
|  | name = "thiserror" | ||||||
|  | version = "1.0.30" | ||||||
|  | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
|  | checksum = "854babe52e4df1653706b98fcfc05843010039b406875930a70e4d9644e5c417" | ||||||
|  | dependencies = [ | ||||||
|  |  "thiserror-impl", | ||||||
|  | ] | ||||||
|  | 
 | ||||||
|  | [[package]] | ||||||
|  | name = "thiserror-impl" | ||||||
|  | version = "1.0.30" | ||||||
|  | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
|  | checksum = "aa32fd3f627f367fe16f893e2597ae3c05020f8bba2666a4e6ea73d377e5714b" | ||||||
|  | dependencies = [ | ||||||
|  |  "proc-macro2", | ||||||
|  |  "quote", | ||||||
|  |  "syn", | ||||||
|  | ] | ||||||
|  | 
 | ||||||
| [[package]] | [[package]] | ||||||
| name = "time" | name = "time" | ||||||
| version = "0.1.44" | version = "0.1.44" | ||||||
|  | @ -386,3 +584,44 @@ name = "xml-rs" | ||||||
| version = "0.8.3" | version = "0.8.3" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "b07db065a5cf61a7e4ba64f29e67db906fb1787316516c4e6e5ff0fea1efcd8a" | checksum = "b07db065a5cf61a7e4ba64f29e67db906fb1787316516c4e6e5ff0fea1efcd8a" | ||||||
|  | 
 | ||||||
|  | [[package]] | ||||||
|  | name = "yew" | ||||||
|  | version = "0.18.0" | ||||||
|  | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
|  | checksum = "e4d5154faef86dddd2eb333d4755ea5643787d20aca683e58759b0e53351409f" | ||||||
|  | dependencies = [ | ||||||
|  |  "anyhow", | ||||||
|  |  "anymap", | ||||||
|  |  "bincode", | ||||||
|  |  "cfg-if 1.0.0", | ||||||
|  |  "cfg-match", | ||||||
|  |  "console_error_panic_hook", | ||||||
|  |  "gloo", | ||||||
|  |  "http", | ||||||
|  |  "indexmap", | ||||||
|  |  "js-sys", | ||||||
|  |  "log", | ||||||
|  |  "ryu", | ||||||
|  |  "serde", | ||||||
|  |  "serde_json", | ||||||
|  |  "slab", | ||||||
|  |  "thiserror", | ||||||
|  |  "wasm-bindgen", | ||||||
|  |  "wasm-bindgen-futures", | ||||||
|  |  "web-sys", | ||||||
|  |  "yew-macro", | ||||||
|  | ] | ||||||
|  | 
 | ||||||
|  | [[package]] | ||||||
|  | name = "yew-macro" | ||||||
|  | version = "0.18.0" | ||||||
|  | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
|  | checksum = "d6e23bfe3dc3933fbe9592d149c9985f3047d08c637a884b9344c21e56e092ef" | ||||||
|  | dependencies = [ | ||||||
|  |  "boolinator", | ||||||
|  |  "lazy_static", | ||||||
|  |  "proc-macro2", | ||||||
|  |  "quote", | ||||||
|  |  "syn", | ||||||
|  | ] | ||||||
|  |  | ||||||
|  | @ -4,19 +4,14 @@ version = "0.0.1" | ||||||
| authors = ["Matthew Dillon <matthewrdillon@gmail.com>"] | authors = ["Matthew Dillon <matthewrdillon@gmail.com>"] | ||||||
| edition = "2018" | edition = "2018" | ||||||
| description = "just some gpx-related tools that i want to use" | description = "just some gpx-related tools that i want to use" | ||||||
| repository = "https://github.com/thermokarst/gpx-web-utils" | repository = "git://pingo.thermokar.st/gpx-web-utils" | ||||||
| license = "MIT" | license = "MIT" | ||||||
| 
 | 
 | ||||||
| [lib] |  | ||||||
| crate-type = ["cdylib", "rlib"] |  | ||||||
| 
 |  | ||||||
| [features] |  | ||||||
| default = ["console_error_panic_hook"] |  | ||||||
| 
 |  | ||||||
| [dependencies] | [dependencies] | ||||||
| wasm-bindgen = "0.2.63" | wasm-bindgen = "0.2.63" | ||||||
| js-sys = "0.3.45" | js-sys = "0.3.45" | ||||||
| gpx = "0.8.1" | gpx = "0.8.1" | ||||||
|  | yew = "0.18" | ||||||
| 
 | 
 | ||||||
| console_error_panic_hook = { version = "0.1.6", optional = true } | console_error_panic_hook = { version = "0.1.6", optional = true } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
							
								
								
									
										480
									
								
								dist/index-5695e498a6d6f6f5.js
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										480
									
								
								dist/index-5695e498a6d6f6f5.js
									
										
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,480 @@ | ||||||
|  | 
 | ||||||
|  | let wasm; | ||||||
|  | 
 | ||||||
|  | const heap = new Array(32).fill(undefined); | ||||||
|  | 
 | ||||||
|  | heap.push(undefined, null, true, false); | ||||||
|  | 
 | ||||||
|  | function getObject(idx) { return heap[idx]; } | ||||||
|  | 
 | ||||||
|  | let heap_next = heap.length; | ||||||
|  | 
 | ||||||
|  | function addHeapObject(obj) { | ||||||
|  |     if (heap_next === heap.length) heap.push(heap.length + 1); | ||||||
|  |     const idx = heap_next; | ||||||
|  |     heap_next = heap[idx]; | ||||||
|  | 
 | ||||||
|  |     heap[idx] = obj; | ||||||
|  |     return idx; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | let cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true }); | ||||||
|  | 
 | ||||||
|  | cachedTextDecoder.decode(); | ||||||
|  | 
 | ||||||
|  | let cachegetUint8Memory0 = null; | ||||||
|  | function getUint8Memory0() { | ||||||
|  |     if (cachegetUint8Memory0 === null || cachegetUint8Memory0.buffer !== wasm.memory.buffer) { | ||||||
|  |         cachegetUint8Memory0 = new Uint8Array(wasm.memory.buffer); | ||||||
|  |     } | ||||||
|  |     return cachegetUint8Memory0; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | function getStringFromWasm0(ptr, len) { | ||||||
|  |     return cachedTextDecoder.decode(getUint8Memory0().subarray(ptr, ptr + len)); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | function dropObject(idx) { | ||||||
|  |     if (idx < 36) return; | ||||||
|  |     heap[idx] = heap_next; | ||||||
|  |     heap_next = idx; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | function takeObject(idx) { | ||||||
|  |     const ret = getObject(idx); | ||||||
|  |     dropObject(idx); | ||||||
|  |     return ret; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | function debugString(val) { | ||||||
|  |     // primitive types
 | ||||||
|  |     const type = typeof val; | ||||||
|  |     if (type == 'number' || type == 'boolean' || val == null) { | ||||||
|  |         return  `${val}`; | ||||||
|  |     } | ||||||
|  |     if (type == 'string') { | ||||||
|  |         return `"${val}"`; | ||||||
|  |     } | ||||||
|  |     if (type == 'symbol') { | ||||||
|  |         const description = val.description; | ||||||
|  |         if (description == null) { | ||||||
|  |             return 'Symbol'; | ||||||
|  |         } else { | ||||||
|  |             return `Symbol(${description})`; | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |     if (type == 'function') { | ||||||
|  |         const name = val.name; | ||||||
|  |         if (typeof name == 'string' && name.length > 0) { | ||||||
|  |             return `Function(${name})`; | ||||||
|  |         } else { | ||||||
|  |             return 'Function'; | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |     // objects
 | ||||||
|  |     if (Array.isArray(val)) { | ||||||
|  |         const length = val.length; | ||||||
|  |         let debug = '['; | ||||||
|  |         if (length > 0) { | ||||||
|  |             debug += debugString(val[0]); | ||||||
|  |         } | ||||||
|  |         for(let i = 1; i < length; i++) { | ||||||
|  |             debug += ', ' + debugString(val[i]); | ||||||
|  |         } | ||||||
|  |         debug += ']'; | ||||||
|  |         return debug; | ||||||
|  |     } | ||||||
|  |     // Test for built-in
 | ||||||
|  |     const builtInMatches = /\[object ([^\]]+)\]/.exec(toString.call(val)); | ||||||
|  |     let className; | ||||||
|  |     if (builtInMatches.length > 1) { | ||||||
|  |         className = builtInMatches[1]; | ||||||
|  |     } else { | ||||||
|  |         // Failed to match the standard '[object ClassName]'
 | ||||||
|  |         return toString.call(val); | ||||||
|  |     } | ||||||
|  |     if (className == 'Object') { | ||||||
|  |         // we're a user defined class or Object
 | ||||||
|  |         // JSON.stringify avoids problems with cycles, and is generally much
 | ||||||
|  |         // easier than looping through ownProperties of `val`.
 | ||||||
|  |         try { | ||||||
|  |             return 'Object(' + JSON.stringify(val) + ')'; | ||||||
|  |         } catch (_) { | ||||||
|  |             return 'Object'; | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |     // errors
 | ||||||
|  |     if (val instanceof Error) { | ||||||
|  |         return `${val.name}: ${val.message}\n${val.stack}`; | ||||||
|  |     } | ||||||
|  |     // TODO we could test for more things here, like `Set`s and `Map`s.
 | ||||||
|  |     return className; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | let WASM_VECTOR_LEN = 0; | ||||||
|  | 
 | ||||||
|  | let cachedTextEncoder = new TextEncoder('utf-8'); | ||||||
|  | 
 | ||||||
|  | const encodeString = (typeof cachedTextEncoder.encodeInto === 'function' | ||||||
|  |     ? function (arg, view) { | ||||||
|  |     return cachedTextEncoder.encodeInto(arg, view); | ||||||
|  | } | ||||||
|  |     : function (arg, view) { | ||||||
|  |     const buf = cachedTextEncoder.encode(arg); | ||||||
|  |     view.set(buf); | ||||||
|  |     return { | ||||||
|  |         read: arg.length, | ||||||
|  |         written: buf.length | ||||||
|  |     }; | ||||||
|  | }); | ||||||
|  | 
 | ||||||
|  | function passStringToWasm0(arg, malloc, realloc) { | ||||||
|  | 
 | ||||||
|  |     if (realloc === undefined) { | ||||||
|  |         const buf = cachedTextEncoder.encode(arg); | ||||||
|  |         const ptr = malloc(buf.length); | ||||||
|  |         getUint8Memory0().subarray(ptr, ptr + buf.length).set(buf); | ||||||
|  |         WASM_VECTOR_LEN = buf.length; | ||||||
|  |         return ptr; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     let len = arg.length; | ||||||
|  |     let ptr = malloc(len); | ||||||
|  | 
 | ||||||
|  |     const mem = getUint8Memory0(); | ||||||
|  | 
 | ||||||
|  |     let offset = 0; | ||||||
|  | 
 | ||||||
|  |     for (; offset < len; offset++) { | ||||||
|  |         const code = arg.charCodeAt(offset); | ||||||
|  |         if (code > 0x7F) break; | ||||||
|  |         mem[ptr + offset] = code; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     if (offset !== len) { | ||||||
|  |         if (offset !== 0) { | ||||||
|  |             arg = arg.slice(offset); | ||||||
|  |         } | ||||||
|  |         ptr = realloc(ptr, len, len = offset + arg.length * 3); | ||||||
|  |         const view = getUint8Memory0().subarray(ptr + offset, ptr + len); | ||||||
|  |         const ret = encodeString(arg, view); | ||||||
|  | 
 | ||||||
|  |         offset += ret.written; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     WASM_VECTOR_LEN = offset; | ||||||
|  |     return ptr; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | let cachegetInt32Memory0 = null; | ||||||
|  | function getInt32Memory0() { | ||||||
|  |     if (cachegetInt32Memory0 === null || cachegetInt32Memory0.buffer !== wasm.memory.buffer) { | ||||||
|  |         cachegetInt32Memory0 = new Int32Array(wasm.memory.buffer); | ||||||
|  |     } | ||||||
|  |     return cachegetInt32Memory0; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | function makeMutClosure(arg0, arg1, dtor, f) { | ||||||
|  |     const state = { a: arg0, b: arg1, cnt: 1, dtor }; | ||||||
|  |     const real = (...args) => { | ||||||
|  |         // First up with a closure we increment the internal reference
 | ||||||
|  |         // count. This ensures that the Rust closure environment won't
 | ||||||
|  |         // be deallocated while we're invoking it.
 | ||||||
|  |         state.cnt++; | ||||||
|  |         const a = state.a; | ||||||
|  |         state.a = 0; | ||||||
|  |         try { | ||||||
|  |             return f(a, state.b, ...args); | ||||||
|  |         } finally { | ||||||
|  |             if (--state.cnt === 0) { | ||||||
|  |                 wasm.__wbindgen_export_2.get(state.dtor)(a, state.b); | ||||||
|  | 
 | ||||||
|  |             } else { | ||||||
|  |                 state.a = a; | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |     }; | ||||||
|  |     real.original = state; | ||||||
|  | 
 | ||||||
|  |     return real; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | let stack_pointer = 32; | ||||||
|  | 
 | ||||||
|  | function addBorrowedObject(obj) { | ||||||
|  |     if (stack_pointer == 1) throw new Error('out of js stack'); | ||||||
|  |     heap[--stack_pointer] = obj; | ||||||
|  |     return stack_pointer; | ||||||
|  | } | ||||||
|  | function __wbg_adapter_16(arg0, arg1, arg2) { | ||||||
|  |     try { | ||||||
|  |         wasm._dyn_core__ops__function__FnMut___A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h62558760dc33a565(arg0, arg1, addBorrowedObject(arg2)); | ||||||
|  |     } finally { | ||||||
|  |         heap[stack_pointer++] = undefined; | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | function isLikeNone(x) { | ||||||
|  |     return x === undefined || x === null; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | function handleError(f) { | ||||||
|  |     return function () { | ||||||
|  |         try { | ||||||
|  |             return f.apply(this, arguments); | ||||||
|  | 
 | ||||||
|  |         } catch (e) { | ||||||
|  |             wasm.__wbindgen_exn_store(addHeapObject(e)); | ||||||
|  |         } | ||||||
|  |     }; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | async function load(module, imports) { | ||||||
|  |     if (typeof Response === 'function' && module instanceof Response) { | ||||||
|  | 
 | ||||||
|  |         if (typeof WebAssembly.instantiateStreaming === 'function') { | ||||||
|  |             try { | ||||||
|  |                 return await WebAssembly.instantiateStreaming(module, imports); | ||||||
|  | 
 | ||||||
|  |             } catch (e) { | ||||||
|  |                 if (module.headers.get('Content-Type') != 'application/wasm') { | ||||||
|  |                     console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n", e); | ||||||
|  | 
 | ||||||
|  |                 } else { | ||||||
|  |                     throw e; | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         const bytes = await module.arrayBuffer(); | ||||||
|  |         return await WebAssembly.instantiate(bytes, imports); | ||||||
|  | 
 | ||||||
|  |     } else { | ||||||
|  | 
 | ||||||
|  |         const instance = await WebAssembly.instantiate(module, imports); | ||||||
|  | 
 | ||||||
|  |         if (instance instanceof WebAssembly.Instance) { | ||||||
|  |             return { instance, module }; | ||||||
|  | 
 | ||||||
|  |         } else { | ||||||
|  |             return instance; | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | async function init(input) { | ||||||
|  |     if (typeof input === 'undefined') { | ||||||
|  |         input = import.meta.url.replace(/\.js$/, '_bg.wasm'); | ||||||
|  |     } | ||||||
|  |     const imports = {}; | ||||||
|  |     imports.wbg = {}; | ||||||
|  |     imports.wbg.__wbindgen_object_clone_ref = function(arg0) { | ||||||
|  |         var ret = getObject(arg0); | ||||||
|  |         return addHeapObject(ret); | ||||||
|  |     }; | ||||||
|  |     imports.wbg.__wbindgen_is_undefined = function(arg0) { | ||||||
|  |         var ret = getObject(arg0) === undefined; | ||||||
|  |         return ret; | ||||||
|  |     }; | ||||||
|  |     imports.wbg.__wbindgen_string_new = function(arg0, arg1) { | ||||||
|  |         var ret = getStringFromWasm0(arg0, arg1); | ||||||
|  |         return addHeapObject(ret); | ||||||
|  |     }; | ||||||
|  |     imports.wbg.__wbindgen_cb_drop = function(arg0) { | ||||||
|  |         const obj = takeObject(arg0).original; | ||||||
|  |         if (obj.cnt-- == 1) { | ||||||
|  |             obj.a = 0; | ||||||
|  |             return true; | ||||||
|  |         } | ||||||
|  |         var ret = false; | ||||||
|  |         return ret; | ||||||
|  |     }; | ||||||
|  |     imports.wbg.__wbindgen_object_drop_ref = function(arg0) { | ||||||
|  |         takeObject(arg0); | ||||||
|  |     }; | ||||||
|  |     imports.wbg.__wbg_error_4bb6c2a97407129a = function(arg0, arg1) { | ||||||
|  |         try { | ||||||
|  |             console.error(getStringFromWasm0(arg0, arg1)); | ||||||
|  |         } finally { | ||||||
|  |             wasm.__wbindgen_free(arg0, arg1); | ||||||
|  |         } | ||||||
|  |     }; | ||||||
|  |     imports.wbg.__wbg_new_59cb74e423758ede = function() { | ||||||
|  |         var ret = new Error(); | ||||||
|  |         return addHeapObject(ret); | ||||||
|  |     }; | ||||||
|  |     imports.wbg.__wbg_stack_558ba5917b466edd = function(arg0, arg1) { | ||||||
|  |         var ret = getObject(arg1).stack; | ||||||
|  |         var ptr0 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); | ||||||
|  |         var len0 = WASM_VECTOR_LEN; | ||||||
|  |         getInt32Memory0()[arg0 / 4 + 1] = len0; | ||||||
|  |         getInt32Memory0()[arg0 / 4 + 0] = ptr0; | ||||||
|  |     }; | ||||||
|  |     imports.wbg.__wbg_instanceof_Window_adf3196bdc02b386 = function(arg0) { | ||||||
|  |         var ret = getObject(arg0) instanceof Window; | ||||||
|  |         return ret; | ||||||
|  |     }; | ||||||
|  |     imports.wbg.__wbg_document_6cc8d0b87c0a99b9 = function(arg0) { | ||||||
|  |         var ret = getObject(arg0).document; | ||||||
|  |         return isLikeNone(ret) ? 0 : addHeapObject(ret); | ||||||
|  |     }; | ||||||
|  |     imports.wbg.__wbg_createElement_5bdf88a5af9f17c5 = handleError(function(arg0, arg1, arg2) { | ||||||
|  |         var ret = getObject(arg0).createElement(getStringFromWasm0(arg1, arg2)); | ||||||
|  |         return addHeapObject(ret); | ||||||
|  |     }); | ||||||
|  |     imports.wbg.__wbg_createElementNS_ea14cb45a87a0719 = handleError(function(arg0, arg1, arg2, arg3, arg4) { | ||||||
|  |         var ret = getObject(arg0).createElementNS(arg1 === 0 ? undefined : getStringFromWasm0(arg1, arg2), getStringFromWasm0(arg3, arg4)); | ||||||
|  |         return addHeapObject(ret); | ||||||
|  |     }); | ||||||
|  |     imports.wbg.__wbg_createTextNode_b3c9e3cb02f83ab5 = function(arg0, arg1, arg2) { | ||||||
|  |         var ret = getObject(arg0).createTextNode(getStringFromWasm0(arg1, arg2)); | ||||||
|  |         return addHeapObject(ret); | ||||||
|  |     }; | ||||||
|  |     imports.wbg.__wbg_querySelector_69fd5cd784bcc892 = handleError(function(arg0, arg1, arg2) { | ||||||
|  |         var ret = getObject(arg0).querySelector(getStringFromWasm0(arg1, arg2)); | ||||||
|  |         return isLikeNone(ret) ? 0 : addHeapObject(ret); | ||||||
|  |     }); | ||||||
|  |     imports.wbg.__wbg_instanceof_HtmlButtonElement_645b6f9d0d172e00 = function(arg0) { | ||||||
|  |         var ret = getObject(arg0) instanceof HTMLButtonElement; | ||||||
|  |         return ret; | ||||||
|  |     }; | ||||||
|  |     imports.wbg.__wbg_settype_98bff8074314478e = function(arg0, arg1, arg2) { | ||||||
|  |         getObject(arg0).type = getStringFromWasm0(arg1, arg2); | ||||||
|  |     }; | ||||||
|  |     imports.wbg.__wbg_instanceof_HtmlTextAreaElement_6c876047bbe08f92 = function(arg0) { | ||||||
|  |         var ret = getObject(arg0) instanceof HTMLTextAreaElement; | ||||||
|  |         return ret; | ||||||
|  |     }; | ||||||
|  |     imports.wbg.__wbg_value_91d41b8dbd0b2f0b = function(arg0, arg1) { | ||||||
|  |         var ret = getObject(arg1).value; | ||||||
|  |         var ptr0 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); | ||||||
|  |         var len0 = WASM_VECTOR_LEN; | ||||||
|  |         getInt32Memory0()[arg0 / 4 + 1] = len0; | ||||||
|  |         getInt32Memory0()[arg0 / 4 + 0] = ptr0; | ||||||
|  |     }; | ||||||
|  |     imports.wbg.__wbg_setvalue_1012134a2989f3ee = function(arg0, arg1, arg2) { | ||||||
|  |         getObject(arg0).value = getStringFromWasm0(arg1, arg2); | ||||||
|  |     }; | ||||||
|  |     imports.wbg.__wbg_instanceof_HtmlInputElement_aaef9fb14eceaa9b = function(arg0) { | ||||||
|  |         var ret = getObject(arg0) instanceof HTMLInputElement; | ||||||
|  |         return ret; | ||||||
|  |     }; | ||||||
|  |     imports.wbg.__wbg_setchecked_1a89c058f5ac906a = function(arg0, arg1) { | ||||||
|  |         getObject(arg0).checked = arg1 !== 0; | ||||||
|  |     }; | ||||||
|  |     imports.wbg.__wbg_settype_4f9e0a597bc38efe = function(arg0, arg1, arg2) { | ||||||
|  |         getObject(arg0).type = getStringFromWasm0(arg1, arg2); | ||||||
|  |     }; | ||||||
|  |     imports.wbg.__wbg_value_bff6f7ef104e077a = function(arg0, arg1) { | ||||||
|  |         var ret = getObject(arg1).value; | ||||||
|  |         var ptr0 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); | ||||||
|  |         var len0 = WASM_VECTOR_LEN; | ||||||
|  |         getInt32Memory0()[arg0 / 4 + 1] = len0; | ||||||
|  |         getInt32Memory0()[arg0 / 4 + 0] = ptr0; | ||||||
|  |     }; | ||||||
|  |     imports.wbg.__wbg_setvalue_839acf17e43a847f = function(arg0, arg1, arg2) { | ||||||
|  |         getObject(arg0).value = getStringFromWasm0(arg1, arg2); | ||||||
|  |     }; | ||||||
|  |     imports.wbg.__wbg_addEventListener_f0baf69c9c7425c9 = handleError(function(arg0, arg1, arg2, arg3, arg4) { | ||||||
|  |         getObject(arg0).addEventListener(getStringFromWasm0(arg1, arg2), getObject(arg3), getObject(arg4)); | ||||||
|  |     }); | ||||||
|  |     imports.wbg.__wbg_removeEventListener_9ffcd175e0916270 = handleError(function(arg0, arg1, arg2, arg3, arg4) { | ||||||
|  |         getObject(arg0).removeEventListener(getStringFromWasm0(arg1, arg2), getObject(arg3), arg4 !== 0); | ||||||
|  |     }); | ||||||
|  |     imports.wbg.__wbg_namespaceURI_a4d52538ca0c6bae = function(arg0, arg1) { | ||||||
|  |         var ret = getObject(arg1).namespaceURI; | ||||||
|  |         var ptr0 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); | ||||||
|  |         var len0 = WASM_VECTOR_LEN; | ||||||
|  |         getInt32Memory0()[arg0 / 4 + 1] = len0; | ||||||
|  |         getInt32Memory0()[arg0 / 4 + 0] = ptr0; | ||||||
|  |     }; | ||||||
|  |     imports.wbg.__wbg_removeAttribute_a705c6de4bb158c4 = handleError(function(arg0, arg1, arg2) { | ||||||
|  |         getObject(arg0).removeAttribute(getStringFromWasm0(arg1, arg2)); | ||||||
|  |     }); | ||||||
|  |     imports.wbg.__wbg_setAttribute_727bdb9763037624 = handleError(function(arg0, arg1, arg2, arg3, arg4) { | ||||||
|  |         getObject(arg0).setAttribute(getStringFromWasm0(arg1, arg2), getStringFromWasm0(arg3, arg4)); | ||||||
|  |     }); | ||||||
|  |     imports.wbg.__wbg_lastChild_4a41600911ce94c7 = function(arg0) { | ||||||
|  |         var ret = getObject(arg0).lastChild; | ||||||
|  |         return isLikeNone(ret) ? 0 : addHeapObject(ret); | ||||||
|  |     }; | ||||||
|  |     imports.wbg.__wbg_setnodeValue_ec452cd3716fee72 = function(arg0, arg1, arg2) { | ||||||
|  |         getObject(arg0).nodeValue = arg1 === 0 ? undefined : getStringFromWasm0(arg1, arg2); | ||||||
|  |     }; | ||||||
|  |     imports.wbg.__wbg_appendChild_77215fd672b162c5 = handleError(function(arg0, arg1) { | ||||||
|  |         var ret = getObject(arg0).appendChild(getObject(arg1)); | ||||||
|  |         return addHeapObject(ret); | ||||||
|  |     }); | ||||||
|  |     imports.wbg.__wbg_insertBefore_ea385f1d7ec76e50 = handleError(function(arg0, arg1, arg2) { | ||||||
|  |         var ret = getObject(arg0).insertBefore(getObject(arg1), getObject(arg2)); | ||||||
|  |         return addHeapObject(ret); | ||||||
|  |     }); | ||||||
|  |     imports.wbg.__wbg_removeChild_f4829fcd2e376e1b = handleError(function(arg0, arg1) { | ||||||
|  |         var ret = getObject(arg0).removeChild(getObject(arg1)); | ||||||
|  |         return addHeapObject(ret); | ||||||
|  |     }); | ||||||
|  |     imports.wbg.__wbg_newnoargs_f3b8a801d5d4b079 = function(arg0, arg1) { | ||||||
|  |         var ret = new Function(getStringFromWasm0(arg0, arg1)); | ||||||
|  |         return addHeapObject(ret); | ||||||
|  |     }; | ||||||
|  |     imports.wbg.__wbg_call_8e95613cc6524977 = handleError(function(arg0, arg1) { | ||||||
|  |         var ret = getObject(arg0).call(getObject(arg1)); | ||||||
|  |         return addHeapObject(ret); | ||||||
|  |     }); | ||||||
|  |     imports.wbg.__wbg_is_333329c4a02916de = function(arg0, arg1) { | ||||||
|  |         var ret = Object.is(getObject(arg0), getObject(arg1)); | ||||||
|  |         return ret; | ||||||
|  |     }; | ||||||
|  |     imports.wbg.__wbg_new_3e06d4f36713e4cb = function() { | ||||||
|  |         var ret = new Object(); | ||||||
|  |         return addHeapObject(ret); | ||||||
|  |     }; | ||||||
|  |     imports.wbg.__wbg_globalThis_b9277fc37e201fe5 = handleError(function() { | ||||||
|  |         var ret = globalThis.globalThis; | ||||||
|  |         return addHeapObject(ret); | ||||||
|  |     }); | ||||||
|  |     imports.wbg.__wbg_self_07b2f89e82ceb76d = handleError(function() { | ||||||
|  |         var ret = self.self; | ||||||
|  |         return addHeapObject(ret); | ||||||
|  |     }); | ||||||
|  |     imports.wbg.__wbg_window_ba85d88572adc0dc = handleError(function() { | ||||||
|  |         var ret = window.window; | ||||||
|  |         return addHeapObject(ret); | ||||||
|  |     }); | ||||||
|  |     imports.wbg.__wbg_global_e16303fe83e1d57f = handleError(function() { | ||||||
|  |         var ret = global.global; | ||||||
|  |         return addHeapObject(ret); | ||||||
|  |     }); | ||||||
|  |     imports.wbg.__wbg_set_304f2ec1a3ab3b79 = handleError(function(arg0, arg1, arg2) { | ||||||
|  |         var ret = Reflect.set(getObject(arg0), getObject(arg1), getObject(arg2)); | ||||||
|  |         return ret; | ||||||
|  |     }); | ||||||
|  |     imports.wbg.__wbindgen_debug_string = function(arg0, arg1) { | ||||||
|  |         var ret = debugString(getObject(arg1)); | ||||||
|  |         var ptr0 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); | ||||||
|  |         var len0 = WASM_VECTOR_LEN; | ||||||
|  |         getInt32Memory0()[arg0 / 4 + 1] = len0; | ||||||
|  |         getInt32Memory0()[arg0 / 4 + 0] = ptr0; | ||||||
|  |     }; | ||||||
|  |     imports.wbg.__wbindgen_throw = function(arg0, arg1) { | ||||||
|  |         throw new Error(getStringFromWasm0(arg0, arg1)); | ||||||
|  |     }; | ||||||
|  |     imports.wbg.__wbindgen_closure_wrapper1149 = function(arg0, arg1, arg2) { | ||||||
|  |         var ret = makeMutClosure(arg0, arg1, 42, __wbg_adapter_16); | ||||||
|  |         return addHeapObject(ret); | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|  |     if (typeof input === 'string' || (typeof Request === 'function' && input instanceof Request) || (typeof URL === 'function' && input instanceof URL)) { | ||||||
|  |         input = fetch(input); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     const { instance, module } = await load(await input, imports); | ||||||
|  | 
 | ||||||
|  |     wasm = instance.exports; | ||||||
|  |     init.__wbindgen_wasm_module = module; | ||||||
|  |     wasm.__wbindgen_start(); | ||||||
|  |     return wasm; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | export default init; | ||||||
|  | 
 | ||||||
							
								
								
									
										
											BIN
										
									
								
								dist/index-5695e498a6d6f6f5_bg.wasm
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								dist/index-5695e498a6d6f6f5_bg.wasm
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										52
									
								
								dist/index.html
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								dist/index.html
									
										
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,52 @@ | ||||||
|  | <!DOCTYPE html><html><head> | ||||||
|  |     <meta charset="utf-8"> | ||||||
|  |     <title>gpx.thermokar.st</title> | ||||||
|  |     <meta name="viewport" content="width=device-width, initial-scale=1"> | ||||||
|  |     <style> | ||||||
|  |       body { | ||||||
|  |         max-width: 35em; | ||||||
|  |         margin: 0 auto; | ||||||
|  |         line-height: 1.5; | ||||||
|  |         font-family: sans-serif; | ||||||
|  |         font-size: large; | ||||||
|  |       } | ||||||
|  |     </style> | ||||||
|  |    | ||||||
|  | <link rel="preload" href="/index-5695e498a6d6f6f5_bg.wasm" as="fetch" type="application/wasm" crossorigin=""> | ||||||
|  | <link rel="modulepreload" href="/index-5695e498a6d6f6f5.js"></head> | ||||||
|  |   <body> | ||||||
|  |     <noscript> | ||||||
|  |       <mark> | ||||||
|  |         This page contains webassembly and javascript content, please enable | ||||||
|  |         javascript in your browser to use this tool. | ||||||
|  |       </mark> | ||||||
|  |     </noscript> | ||||||
|  |    | ||||||
|  | 
 | ||||||
|  | <script type="module">import init from '/index-5695e498a6d6f6f5.js';init('/index-5695e498a6d6f6f5_bg.wasm');</script><script>(function () { | ||||||
|  |     var url = 'ws://' + window.location.host + '/_trunk/ws'; | ||||||
|  |     var poll_interval = 5000; | ||||||
|  |     var reload_upon_connect = () => { | ||||||
|  |         window.setTimeout( | ||||||
|  |             () => { | ||||||
|  |                 // when we successfully reconnect, we'll force a | ||||||
|  |                 // reload (since we presumably lost connection to | ||||||
|  |                 // trunk due to it being killed, so it will have | ||||||
|  |                 // rebuilt on restart) | ||||||
|  |                 var ws = new WebSocket(url); | ||||||
|  |                 ws.onopen = () => window.location.reload(); | ||||||
|  |                 ws.onclose = reload_upon_connect; | ||||||
|  |             }, | ||||||
|  |             poll_interval); | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|  |     var ws = new WebSocket(url); | ||||||
|  |     ws.onmessage = (ev) => { | ||||||
|  |         const msg = JSON.parse(ev.data); | ||||||
|  |         if (msg.reload) { | ||||||
|  |             window.location.reload(); | ||||||
|  |         } | ||||||
|  |     }; | ||||||
|  |     ws.onclose = reload_upon_connect; | ||||||
|  | })() | ||||||
|  | </script></body></html> | ||||||
							
								
								
									
										25
									
								
								index.html
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								index.html
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,25 @@ | ||||||
|  | <!DOCTYPE html> | ||||||
|  | <html> | ||||||
|  |   <head> | ||||||
|  |     <meta charset="utf-8" /> | ||||||
|  |     <title>gpx.thermokar.st</title> | ||||||
|  |     <meta name="viewport" content="width=device-width, initial-scale=1"> | ||||||
|  |     <style> | ||||||
|  |       body { | ||||||
|  |         max-width: 35em; | ||||||
|  |         margin: 0 auto; | ||||||
|  |         line-height: 1.5; | ||||||
|  |         font-family: sans-serif; | ||||||
|  |         font-size: large; | ||||||
|  |       } | ||||||
|  |     </style> | ||||||
|  |   </head> | ||||||
|  |   <body> | ||||||
|  |     <noscript> | ||||||
|  |       <mark> | ||||||
|  |         This page contains webassembly and javascript content, please enable | ||||||
|  |         javascript in your browser to use this tool. | ||||||
|  |       </mark> | ||||||
|  |     </noscript> | ||||||
|  |   </body> | ||||||
|  | </html> | ||||||
							
								
								
									
										78
									
								
								src/main.rs
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										78
									
								
								src/main.rs
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,78 @@ | ||||||
|  | use yew::prelude::*; | ||||||
|  | 
 | ||||||
|  | enum Msg { | ||||||
|  |     AddOne, | ||||||
|  |     SubOne, | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | struct Model { | ||||||
|  |     link: ComponentLink<Self>, | ||||||
|  |     value: i64, | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | impl Component for Model { | ||||||
|  |     type Message = Msg; | ||||||
|  |     type Properties = (); | ||||||
|  | 
 | ||||||
|  |     fn create(_props: Self::Properties, link: ComponentLink<Self>) -> Self { | ||||||
|  |         Self { | ||||||
|  |             link, | ||||||
|  |             value: 0, | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     fn update(&mut self, msg: Self::Message) -> ShouldRender { | ||||||
|  |         match msg { | ||||||
|  |             Msg::AddOne => { | ||||||
|  |                 self.value += 1; | ||||||
|  |                 true | ||||||
|  |             } | ||||||
|  |             Msg::SubOne => { | ||||||
|  |                 self.value -= 1; | ||||||
|  |                 true | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     fn change(&mut self, _props: Self::Properties) -> ShouldRender { | ||||||
|  |         false | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     fn view(&self) -> Html { | ||||||
|  |         html! { | ||||||
|  |           <div> | ||||||
|  |             <h1> | ||||||
|  |               <a href="https://gpx.thermokar.st">{"gpx.thermokar.st"}</a> | ||||||
|  |             </h1> | ||||||
|  | 
 | ||||||
|  |             <p> | ||||||
|  |               {"This client-side tool is for merging "} | ||||||
|  |               <a href="https://www.topografix.com/gpx.asp">{"GPX files"}</a> | ||||||
|  |               {". Please note, this has only been tested on GPX files produced by "} | ||||||
|  |               <a href="https://www.garmin.com">{"Garmin"}</a> | ||||||
|  |               {" and "} | ||||||
|  |               <a href="https://www.strava.com">{"Strava"}</a> | ||||||
|  |               {" - your mileage may vary."} | ||||||
|  |             </p> | ||||||
|  | 
 | ||||||
|  |             <button onclick=self.link.callback(|_| Msg::SubOne)>{ "-1" }</button> | ||||||
|  |             <button onclick=self.link.callback(|_| Msg::AddOne)>{ "+1" }</button> | ||||||
|  |             <p>{ self.value }</p> | ||||||
|  | 
 | ||||||
|  |             <hr/> | ||||||
|  | 
 | ||||||
|  |             <p> | ||||||
|  |               <small> | ||||||
|  |                 <a href="https://github.com/thermokarst/gpx-web-utils"> | ||||||
|  |                   {"https://github.com/thermokarst/gpx-web-utils"} | ||||||
|  |                 </a> | ||||||
|  |               </small> | ||||||
|  |             </p> | ||||||
|  |           </div> | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | fn main() { | ||||||
|  |     yew::start_app::<Model>(); | ||||||
|  | } | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue