diff --git a/Cargo.toml b/Cargo.toml index e75287b..0b49918 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,38 +1,8 @@ -[package] -name = "yew-bootstrap" -version = "0.5.4" -authors = ["Matthew Scheffel ", "Foorack "] -edition = "2021" -license = "MIT" -readme = "README.md" -keywords = ["yew", "bootstrap", "web"] -categories = ["gui", "web-programming"] -description = "Components for easier using Bootstrap with Yew" -repository = "https://github.com/foorack/yew-bootstrap/" - -[[bin]] -name = "yew-bootstrap-example" -path = "src/example.rs" - -[lib] -# You should include "rlib" (the default crate type) otherwise your crate can't be used as a Rust library -# which, among other things, breaks unit testing -crate-type = ["rlib", "cdylib"] -name = "yew_bootstrap" - -[dependencies] -yew = { version = "0.20", features = ["csr"] } -log = "0.4" -#console_log = { version = "0.2", features = ["color"] } - -[profile.release] -# less code to include into binary -panic = 'abort' -# optimization over all codebase ( better optimization, slower build ) -codegen-units = 1 -# optimization for size ( more aggressive ) -opt-level = 'z' -# optimization for size -# opt-level = 's' -# link time optimization using using whole-program analysis -lto = true +[workspace] +members = [ + "packages/*" +] +exclude = [ + "examples/*", +] +resolver = "2" \ No newline at end of file diff --git a/README.md b/README.md index 8f76f6f..22f4e55 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ Add the dependency next to the regular yew dependency: ```toml [dependencies] yew = "0.20" -yew-bootstrap = "0.5.4" +yew-bootstrap = "0.5" ``` Then in the beginning of your application, include the `include_cdn()` or `include_inline()` function to load the required CSS. Some components require the Bootstrap JavaScript @@ -34,7 +34,7 @@ library to be loaded - for these you can use the `include_cdn_js()` function. It Check `main.rs` for example usage for every implemented component. ## Version Convention -`0.xy` +`0.x.y` Versions that have the same `x` value target the same version of Yew. There is currently no indication of which version of Bootstrap is targeted, however, we’ll try to target the previous release pipeline. For example as of this writing the latest boostrap is 5.2.x, so we’ll try to target the latest 5.1.x version. diff --git a/examples/Cargo.toml b/examples/Cargo.toml new file mode 100644 index 0000000..b2b056a --- /dev/null +++ b/examples/Cargo.toml @@ -0,0 +1,15 @@ +[workspace] +members = [ + "*", +] +exclude = [ + "target", + ".cargo" +] +resolver = "2" + +[profile.release] +lto = true +codegen-units = 1 +panic = "abort" +opt-level = "z" \ No newline at end of file diff --git a/examples/README.md b/examples/README.md new file mode 100644 index 0000000..5d7beac --- /dev/null +++ b/examples/README.md @@ -0,0 +1,20 @@ +# Yew Bootstrap Examples + +## How to run + +The examples are built with [trunk](https://github.com/thedodd/trunk) which you can install with the following command: + +```bash +cargo install --locked trunk +``` + +Running an example is as easy as running a single command in the appropriate directory: + +```bash +# move into the directory of the example you want to run +# In this case it's the todomvc example +cd examples/basics + +# build and serve the example +trunk serve --release +``` \ No newline at end of file diff --git a/examples/basics/Cargo.toml b/examples/basics/Cargo.toml new file mode 100644 index 0000000..e858a36 --- /dev/null +++ b/examples/basics/Cargo.toml @@ -0,0 +1,10 @@ +[package] +name = "basics" +version = "0.1.0" +authors = ["Matthew Scheffel ", "Foorack "] +edition = "2021" +license = "MIT" + +[dependencies] +yew = { version = "0.20", features = ["csr"] } +yew-bootstrap = { path = "../../packages/yew-bootstrap" } \ No newline at end of file diff --git a/examples/basics/dist/basics-c512680541cdb6d5.js b/examples/basics/dist/basics-c512680541cdb6d5.js new file mode 100644 index 0000000..19982bf --- /dev/null +++ b/examples/basics/dist/basics-c512680541cdb6d5.js @@ -0,0 +1,642 @@ +let wasm; + +const heap = new Array(128).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; +} + +const cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true }); + +cachedTextDecoder.decode(); + +let cachedUint8Memory0 = null; + +function getUint8Memory0() { + if (cachedUint8Memory0 === null || cachedUint8Memory0.byteLength === 0) { + cachedUint8Memory0 = new Uint8Array(wasm.memory.buffer); + } + return cachedUint8Memory0; +} + +function getStringFromWasm0(ptr, len) { + return cachedTextDecoder.decode(getUint8Memory0().subarray(ptr, ptr + len)); +} + +function dropObject(idx) { + if (idx < 132) 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; + +const 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 cachedInt32Memory0 = null; + +function getInt32Memory0() { + if (cachedInt32Memory0 === null || cachedInt32Memory0.byteLength === 0) { + cachedInt32Memory0 = new Int32Array(wasm.memory.buffer); + } + return cachedInt32Memory0; +} + +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; +} +function __wbg_adapter_16(arg0, arg1, arg2) { + wasm._dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__hb970e45830e722f2(arg0, arg1, addHeapObject(arg2)); +} + +let stack_pointer = 128; + +function addBorrowedObject(obj) { + if (stack_pointer == 1) throw new Error('out of js stack'); + heap[--stack_pointer] = obj; + return stack_pointer; +} +function __wbg_adapter_19(arg0, arg1, arg2) { + try { + wasm._dyn_core__ops__function__FnMut___A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__hca962bc1385f867e(arg0, arg1, addBorrowedObject(arg2)); + } finally { + heap[stack_pointer++] = undefined; + } +} + +function isLikeNone(x) { + return x === undefined || x === null; +} + +let cachedUint32Memory0 = null; + +function getUint32Memory0() { + if (cachedUint32Memory0 === null || cachedUint32Memory0.byteLength === 0) { + cachedUint32Memory0 = new Uint32Array(wasm.memory.buffer); + } + return cachedUint32Memory0; +} + +function getArrayJsValueFromWasm0(ptr, len) { + const mem = getUint32Memory0(); + const slice = mem.subarray(ptr / 4, ptr / 4 + len); + const result = []; + for (let i = 0; i < slice.length; i++) { + result.push(takeObject(slice[i])); + } + return result; +} + +function handleError(f, args) { + try { + return f.apply(this, args); + } 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; + } + } +} + +function getImports() { + const imports = {}; + imports.wbg = {}; + imports.wbg.__wbindgen_object_clone_ref = function(arg0) { + const ret = getObject(arg0); + return addHeapObject(ret); + }; + imports.wbg.__wbindgen_string_new = function(arg0, arg1) { + const ret = getStringFromWasm0(arg0, arg1); + return addHeapObject(ret); + }; + imports.wbg.__wbg_listenerid_12315eee21527820 = function(arg0, arg1) { + const ret = getObject(arg1).__yew_listener_id; + getInt32Memory0()[arg0 / 4 + 1] = isLikeNone(ret) ? 0 : ret; + getInt32Memory0()[arg0 / 4 + 0] = !isLikeNone(ret); + }; + imports.wbg.__wbg_setlistenerid_3183aae8fa5840fb = function(arg0, arg1) { + getObject(arg0).__yew_listener_id = arg1 >>> 0; + }; + imports.wbg.__wbg_subtreeid_e348577f7ef777e3 = function(arg0, arg1) { + const ret = getObject(arg1).__yew_subtree_id; + getInt32Memory0()[arg0 / 4 + 1] = isLikeNone(ret) ? 0 : ret; + getInt32Memory0()[arg0 / 4 + 0] = !isLikeNone(ret); + }; + imports.wbg.__wbg_setsubtreeid_d32e6327eef1f7fc = function(arg0, arg1) { + getObject(arg0).__yew_subtree_id = arg1 >>> 0; + }; + imports.wbg.__wbg_cachekey_b61393159c57fd7b = function(arg0, arg1) { + const ret = getObject(arg1).__yew_subtree_cache_key; + getInt32Memory0()[arg0 / 4 + 1] = isLikeNone(ret) ? 0 : ret; + getInt32Memory0()[arg0 / 4 + 0] = !isLikeNone(ret); + }; + imports.wbg.__wbg_setcachekey_80183b7cfc421143 = function(arg0, arg1) { + getObject(arg0).__yew_subtree_cache_key = arg1 >>> 0; + }; + imports.wbg.__wbg_error_f851667af71bcfc6 = function(arg0, arg1) { + try { + console.error(getStringFromWasm0(arg0, arg1)); + } finally { + wasm.__wbindgen_free(arg0, arg1); + } + }; + imports.wbg.__wbg_new_abda76e883ba8a5f = function() { + const ret = new Error(); + return addHeapObject(ret); + }; + imports.wbg.__wbg_stack_658279fe44541cf6 = function(arg0, arg1) { + const ret = getObject(arg1).stack; + const ptr0 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + getInt32Memory0()[arg0 / 4 + 1] = len0; + getInt32Memory0()[arg0 / 4 + 0] = ptr0; + }; + imports.wbg.__wbindgen_object_drop_ref = function(arg0) { + takeObject(arg0); + }; + imports.wbg.__wbindgen_cb_drop = function(arg0) { + const obj = takeObject(arg0).original; + if (obj.cnt-- == 1) { + obj.a = 0; + return true; + } + const ret = false; + return ret; + }; + imports.wbg.__wbindgen_is_undefined = function(arg0) { + const ret = getObject(arg0) === undefined; + return ret; + }; + imports.wbg.__wbg_error_71d6845bf00a930f = function(arg0, arg1) { + var v0 = getArrayJsValueFromWasm0(arg0, arg1).slice(); + wasm.__wbindgen_free(arg0, arg1 * 4); + console.error(...v0); + }; + imports.wbg.__wbg_instanceof_Window_e266f02eee43b570 = function(arg0) { + let result; + try { + result = getObject(arg0) instanceof Window; + } catch { + result = false; + } + const ret = result; + return ret; + }; + imports.wbg.__wbg_document_950215a728589a2d = function(arg0) { + const ret = getObject(arg0).document; + return isLikeNone(ret) ? 0 : addHeapObject(ret); + }; + imports.wbg.__wbg_body_be46234bb33edd63 = function(arg0) { + const ret = getObject(arg0).body; + return isLikeNone(ret) ? 0 : addHeapObject(ret); + }; + imports.wbg.__wbg_createElement_e2a0e21263eb5416 = function() { return handleError(function (arg0, arg1, arg2) { + const ret = getObject(arg0).createElement(getStringFromWasm0(arg1, arg2)); + return addHeapObject(ret); + }, arguments) }; + imports.wbg.__wbg_createElementNS_0047de728927ea00 = function() { return handleError(function (arg0, arg1, arg2, arg3, arg4) { + const ret = getObject(arg0).createElementNS(arg1 === 0 ? undefined : getStringFromWasm0(arg1, arg2), getStringFromWasm0(arg3, arg4)); + return addHeapObject(ret); + }, arguments) }; + imports.wbg.__wbg_createTextNode_866e33a51b47f04c = function(arg0, arg1, arg2) { + const ret = getObject(arg0).createTextNode(getStringFromWasm0(arg1, arg2)); + return addHeapObject(ret); + }; + imports.wbg.__wbg_instanceof_ShadowRoot_7088dfa874f5499c = function(arg0) { + let result; + try { + result = getObject(arg0) instanceof ShadowRoot; + } catch { + result = false; + } + const ret = result; + return ret; + }; + imports.wbg.__wbg_host_33f0224f975dc46a = function(arg0) { + const ret = getObject(arg0).host; + return addHeapObject(ret); + }; + imports.wbg.__wbg_value_00fb0fdc46959169 = function(arg0, arg1) { + const ret = getObject(arg1).value; + const ptr0 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + getInt32Memory0()[arg0 / 4 + 1] = len0; + getInt32Memory0()[arg0 / 4 + 0] = ptr0; + }; + imports.wbg.__wbg_setvalue_f92ff20dd33356a8 = function(arg0, arg1, arg2) { + getObject(arg0).value = getStringFromWasm0(arg1, arg2); + }; + imports.wbg.__wbg_setchecked_cbd6f423c4deba69 = function(arg0, arg1) { + getObject(arg0).checked = arg1 !== 0; + }; + imports.wbg.__wbg_value_1f2c9e357d18d3ea = function(arg0, arg1) { + const ret = getObject(arg1).value; + const ptr0 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + getInt32Memory0()[arg0 / 4 + 1] = len0; + getInt32Memory0()[arg0 / 4 + 0] = ptr0; + }; + imports.wbg.__wbg_setvalue_a706abe70dab1b65 = function(arg0, arg1, arg2) { + getObject(arg0).value = getStringFromWasm0(arg1, arg2); + }; + imports.wbg.__wbg_instanceof_Element_cb847a3fc7b1b1a4 = function(arg0) { + let result; + try { + result = getObject(arg0) instanceof Element; + } catch { + result = false; + } + const ret = result; + return ret; + }; + imports.wbg.__wbg_namespaceURI_436d78f0f18e05c1 = function(arg0, arg1) { + const 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_setinnerHTML_76167cda24d9b96b = function(arg0, arg1, arg2) { + getObject(arg0).innerHTML = getStringFromWasm0(arg1, arg2); + }; + imports.wbg.__wbg_outerHTML_e29ac244117c6543 = function(arg0, arg1) { + const ret = getObject(arg1).outerHTML; + const ptr0 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + getInt32Memory0()[arg0 / 4 + 1] = len0; + getInt32Memory0()[arg0 / 4 + 0] = ptr0; + }; + imports.wbg.__wbg_children_93bcc921a4904ad4 = function(arg0) { + const ret = getObject(arg0).children; + return addHeapObject(ret); + }; + imports.wbg.__wbg_removeAttribute_ad7a5bf2eed30373 = function() { return handleError(function (arg0, arg1, arg2) { + getObject(arg0).removeAttribute(getStringFromWasm0(arg1, arg2)); + }, arguments) }; + imports.wbg.__wbg_setAttribute_79c9562d32d05e66 = function() { return handleError(function (arg0, arg1, arg2, arg3, arg4) { + getObject(arg0).setAttribute(getStringFromWasm0(arg1, arg2), getStringFromWasm0(arg3, arg4)); + }, arguments) }; + imports.wbg.__wbg_bubbles_80a0700df9c59aee = function(arg0) { + const ret = getObject(arg0).bubbles; + return ret; + }; + imports.wbg.__wbg_cancelBubble_c9a8182589205d54 = function(arg0) { + const ret = getObject(arg0).cancelBubble; + return ret; + }; + imports.wbg.__wbg_composedPath_d4428cc409ddd3e6 = function(arg0) { + const ret = getObject(arg0).composedPath(); + return addHeapObject(ret); + }; + imports.wbg.__wbg_addEventListener_cf5b03cd29763277 = function() { return handleError(function (arg0, arg1, arg2, arg3, arg4) { + getObject(arg0).addEventListener(getStringFromWasm0(arg1, arg2), getObject(arg3), getObject(arg4)); + }, arguments) }; + imports.wbg.__wbg_removeEventListener_b25f5db74f767386 = function() { return handleError(function (arg0, arg1, arg2, arg3, arg4) { + getObject(arg0).removeEventListener(getStringFromWasm0(arg1, arg2), getObject(arg3), arg4 !== 0); + }, arguments) }; + imports.wbg.__wbg_parentNode_e81e6d5dc2fc35b0 = function(arg0) { + const ret = getObject(arg0).parentNode; + return isLikeNone(ret) ? 0 : addHeapObject(ret); + }; + imports.wbg.__wbg_parentElement_0e8c9afce5cb9d6e = function(arg0) { + const ret = getObject(arg0).parentElement; + return isLikeNone(ret) ? 0 : addHeapObject(ret); + }; + imports.wbg.__wbg_lastChild_e0fcecf63df5f824 = function(arg0) { + const ret = getObject(arg0).lastChild; + return isLikeNone(ret) ? 0 : addHeapObject(ret); + }; + imports.wbg.__wbg_nextSibling_653f43ab9380175f = function(arg0) { + const ret = getObject(arg0).nextSibling; + return isLikeNone(ret) ? 0 : addHeapObject(ret); + }; + imports.wbg.__wbg_setnodeValue_10d5890cd7e3f998 = function(arg0, arg1, arg2) { + getObject(arg0).nodeValue = arg1 === 0 ? undefined : getStringFromWasm0(arg1, arg2); + }; + imports.wbg.__wbg_textContent_dff59ad5e030bb86 = function(arg0, arg1) { + const ret = getObject(arg1).textContent; + 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_appendChild_b8199dc1655c852d = function() { return handleError(function (arg0, arg1) { + const ret = getObject(arg0).appendChild(getObject(arg1)); + return addHeapObject(ret); + }, arguments) }; + imports.wbg.__wbg_insertBefore_77a7d032a91abf86 = function() { return handleError(function (arg0, arg1, arg2) { + const ret = getObject(arg0).insertBefore(getObject(arg1), getObject(arg2)); + return addHeapObject(ret); + }, arguments) }; + imports.wbg.__wbg_removeChild_794db72cbb6f21d3 = function() { return handleError(function (arg0, arg1) { + const ret = getObject(arg0).removeChild(getObject(arg1)); + return addHeapObject(ret); + }, arguments) }; + imports.wbg.__wbg_get_27fe3dac1c4d0224 = function(arg0, arg1) { + const ret = getObject(arg0)[arg1 >>> 0]; + return addHeapObject(ret); + }; + imports.wbg.__wbg_from_67ca20fa722467e6 = function(arg0) { + const ret = Array.from(getObject(arg0)); + return addHeapObject(ret); + }; + imports.wbg.__wbg_length_e498fbc24f9c1d4f = function(arg0) { + const ret = getObject(arg0).length; + return ret; + }; + imports.wbg.__wbg_newnoargs_2b8b6bd7753c76ba = function(arg0, arg1) { + const ret = new Function(getStringFromWasm0(arg0, arg1)); + return addHeapObject(ret); + }; + imports.wbg.__wbg_call_95d1ea488d03e4e8 = function() { return handleError(function (arg0, arg1) { + const ret = getObject(arg0).call(getObject(arg1)); + return addHeapObject(ret); + }, arguments) }; + imports.wbg.__wbg_is_8f1618fe9a4fd388 = function(arg0, arg1) { + const ret = Object.is(getObject(arg0), getObject(arg1)); + return ret; + }; + imports.wbg.__wbg_new_f9876326328f45ed = function() { + const ret = new Object(); + return addHeapObject(ret); + }; + imports.wbg.__wbg_resolve_fd40f858d9db1a04 = function(arg0) { + const ret = Promise.resolve(getObject(arg0)); + return addHeapObject(ret); + }; + imports.wbg.__wbg_then_ec5db6d509eb475f = function(arg0, arg1) { + const ret = getObject(arg0).then(getObject(arg1)); + return addHeapObject(ret); + }; + imports.wbg.__wbg_globalThis_87cbb8506fecf3a9 = function() { return handleError(function () { + const ret = globalThis.globalThis; + return addHeapObject(ret); + }, arguments) }; + imports.wbg.__wbg_self_e7c1f827057f6584 = function() { return handleError(function () { + const ret = self.self; + return addHeapObject(ret); + }, arguments) }; + imports.wbg.__wbg_window_a09ec664e14b1b81 = function() { return handleError(function () { + const ret = window.window; + return addHeapObject(ret); + }, arguments) }; + imports.wbg.__wbg_global_c85a9259e621f3db = function() { return handleError(function () { + const ret = global.global; + return addHeapObject(ret); + }, arguments) }; + imports.wbg.__wbg_set_6aa458a4ebdb65cb = function() { return handleError(function (arg0, arg1, arg2) { + const ret = Reflect.set(getObject(arg0), getObject(arg1), getObject(arg2)); + return ret; + }, arguments) }; + imports.wbg.__wbindgen_debug_string = function(arg0, arg1) { + const ret = debugString(getObject(arg1)); + const ptr0 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const 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_wrapper6350 = function(arg0, arg1, arg2) { + const ret = makeMutClosure(arg0, arg1, 620, __wbg_adapter_16); + return addHeapObject(ret); + }; + imports.wbg.__wbindgen_closure_wrapper6479 = function(arg0, arg1, arg2) { + const ret = makeMutClosure(arg0, arg1, 635, __wbg_adapter_19); + return addHeapObject(ret); + }; + + return imports; +} + +function initMemory(imports, maybe_memory) { + +} + +function finalizeInit(instance, module) { + wasm = instance.exports; + init.__wbindgen_wasm_module = module; + cachedInt32Memory0 = null; + cachedUint32Memory0 = null; + cachedUint8Memory0 = null; + + wasm.__wbindgen_start(); + return wasm; +} + +function initSync(module) { + const imports = getImports(); + + initMemory(imports); + + if (!(module instanceof WebAssembly.Module)) { + module = new WebAssembly.Module(module); + } + + const instance = new WebAssembly.Instance(module, imports); + + return finalizeInit(instance, module); +} + +async function init(input) { + if (typeof input === 'undefined') { + input = new URL('basics-c512680541cdb6d5_bg.wasm', import.meta.url); + } + const imports = getImports(); + + if (typeof input === 'string' || (typeof Request === 'function' && input instanceof Request) || (typeof URL === 'function' && input instanceof URL)) { + input = fetch(input); + } + + initMemory(imports); + + const { instance, module } = await load(await input, imports); + + return finalizeInit(instance, module); +} + +export { initSync } +export default init; diff --git a/examples/basics/dist/basics-c512680541cdb6d5_bg.wasm b/examples/basics/dist/basics-c512680541cdb6d5_bg.wasm new file mode 100644 index 0000000..8bb78ce Binary files /dev/null and b/examples/basics/dist/basics-c512680541cdb6d5_bg.wasm differ diff --git a/examples/basics/dist/index.html b/examples/basics/dist/index.html new file mode 100644 index 0000000..d78748d --- /dev/null +++ b/examples/basics/dist/index.html @@ -0,0 +1,35 @@ + + + Yew App + + + + + \ No newline at end of file diff --git a/index.html b/examples/basics/index.html similarity index 100% rename from index.html rename to examples/basics/index.html diff --git a/src/example.rs b/examples/basics/src/main.rs similarity index 100% rename from src/example.rs rename to examples/basics/src/main.rs diff --git a/packages/yew-bootstrap/Cargo.toml b/packages/yew-bootstrap/Cargo.toml new file mode 100644 index 0000000..fb0c329 --- /dev/null +++ b/packages/yew-bootstrap/Cargo.toml @@ -0,0 +1,21 @@ +[package] +name = "yew-bootstrap" +version = "0.5.5" +authors = ["Matthew Scheffel ", "Foorack "] +edition = "2021" +license = "MIT" +readme = "README.md" +keywords = ["yew", "bootstrap", "web"] +categories = ["gui", "web-programming"] +description = "Components for easier using Bootstrap with Yew" +repository = "https://github.com/foorack/yew-bootstrap/" + +[lib] +# You should include "rlib" (the default crate type) otherwise your crate can't be used as a Rust library +# which, among other things, breaks unit testing +crate-type = ["rlib", "cdylib"] +name = "yew_bootstrap" + +[dependencies] +yew = { version = "0.20", features = ["csr"] } +log = "0.4" \ No newline at end of file diff --git a/src/component/alert.rs b/packages/yew-bootstrap/src/component/alert.rs similarity index 100% rename from src/component/alert.rs rename to packages/yew-bootstrap/src/component/alert.rs diff --git a/src/component/button.rs b/packages/yew-bootstrap/src/component/button.rs similarity index 100% rename from src/component/button.rs rename to packages/yew-bootstrap/src/component/button.rs diff --git a/src/component/button_group.rs b/packages/yew-bootstrap/src/component/button_group.rs similarity index 100% rename from src/component/button_group.rs rename to packages/yew-bootstrap/src/component/button_group.rs diff --git a/src/component/column.rs b/packages/yew-bootstrap/src/component/column.rs similarity index 100% rename from src/component/column.rs rename to packages/yew-bootstrap/src/component/column.rs diff --git a/src/component/container.rs b/packages/yew-bootstrap/src/component/container.rs similarity index 100% rename from src/component/container.rs rename to packages/yew-bootstrap/src/component/container.rs diff --git a/src/component/line.rs b/packages/yew-bootstrap/src/component/line.rs similarity index 100% rename from src/component/line.rs rename to packages/yew-bootstrap/src/component/line.rs diff --git a/src/component/link.rs b/packages/yew-bootstrap/src/component/link.rs similarity index 100% rename from src/component/link.rs rename to packages/yew-bootstrap/src/component/link.rs diff --git a/src/component/mod.rs b/packages/yew-bootstrap/src/component/mod.rs similarity index 100% rename from src/component/mod.rs rename to packages/yew-bootstrap/src/component/mod.rs diff --git a/src/component/modal.rs b/packages/yew-bootstrap/src/component/modal.rs similarity index 100% rename from src/component/modal.rs rename to packages/yew-bootstrap/src/component/modal.rs diff --git a/src/component/navbar.rs b/packages/yew-bootstrap/src/component/navbar.rs similarity index 100% rename from src/component/navbar.rs rename to packages/yew-bootstrap/src/component/navbar.rs diff --git a/src/component/row.rs b/packages/yew-bootstrap/src/component/row.rs similarity index 100% rename from src/component/row.rs rename to packages/yew-bootstrap/src/component/row.rs diff --git a/src/lib.rs b/packages/yew-bootstrap/src/lib.rs similarity index 81% rename from src/lib.rs rename to packages/yew-bootstrap/src/lib.rs index 748c31c..211481c 100644 --- a/src/lib.rs +++ b/packages/yew-bootstrap/src/lib.rs @@ -1,4 +1,4 @@ -#![doc = include_str!("../README.md")] +#![doc = include_str!("../../../README.md")] /// Components supported by this crate are listed here pub mod component; diff --git a/src/util/bootstrap-5.1.3.min.css b/packages/yew-bootstrap/src/util/bootstrap-5.1.3.min.css similarity index 100% rename from src/util/bootstrap-5.1.3.min.css rename to packages/yew-bootstrap/src/util/bootstrap-5.1.3.min.css diff --git a/src/util/color.rs b/packages/yew-bootstrap/src/util/color.rs similarity index 100% rename from src/util/color.rs rename to packages/yew-bootstrap/src/util/color.rs diff --git a/src/util/dimension.rs b/packages/yew-bootstrap/src/util/dimension.rs similarity index 100% rename from src/util/dimension.rs rename to packages/yew-bootstrap/src/util/dimension.rs diff --git a/src/util/include.rs b/packages/yew-bootstrap/src/util/include.rs similarity index 100% rename from src/util/include.rs rename to packages/yew-bootstrap/src/util/include.rs diff --git a/src/util/mod.rs b/packages/yew-bootstrap/src/util/mod.rs similarity index 100% rename from src/util/mod.rs rename to packages/yew-bootstrap/src/util/mod.rs diff --git a/src/util/size.rs b/packages/yew-bootstrap/src/util/size.rs similarity index 100% rename from src/util/size.rs rename to packages/yew-bootstrap/src/util/size.rs