diff --git a/frameworks/keyed/svelte/src/Main.svelte b/frameworks/keyed/svelte/src/Main.html similarity index 85% rename from frameworks/keyed/svelte/src/Main.svelte rename to frameworks/keyed/svelte/src/Main.html index 377cbc99e..1e74e7e87 100644 --- a/frameworks/keyed/svelte/src/Main.svelte +++ b/frameworks/keyed/svelte/src/Main.html @@ -30,14 +30,12 @@

Svelte (keyed)

- + {#each data as row, num (row.id)} - - + + {/each} @@ -60,8 +58,8 @@

Svelte (keyed)

data[i].label += ' !!!'; } }, - remove = (num) => { - const idx = data.findIndex(d => d.id === num); + remove = id => { + const idx = data.findIndex(d => d.id === id); data = [...data.slice(0, idx), ...data.slice(idx + 1)]; }, run = () => { @@ -72,11 +70,19 @@

Svelte (keyed)

data = buildData(10000); selected = undefined; }, - select = (id) => selected = id, + select = id => selected = id, swapRows = () => { if (data.length > 998) { data = [data[0], data[998], ...data.slice(2, 998), data[1], data[999]]; } + }, + click = ({ target }) => { + const id = Number.parseInt(target.closest("tr").firstChild.firstChild.nodeValue); + if (target.matches(".glyphicon-remove")) { + remove(id); + } else { + select(id); + } }; function _random (max) { return Math.round(Math.random() * 1000) % max; }; diff --git a/frameworks/keyed/svelte/src/main.js b/frameworks/keyed/svelte/src/main.js index 90a5b31cc..9e39ea923 100644 --- a/frameworks/keyed/svelte/src/main.js +++ b/frameworks/keyed/svelte/src/main.js @@ -1,4 +1,4 @@ -import Main from './Main.svelte'; +import Main from './Main.html'; export default new Main({ target: document.querySelector( '#main' ) diff --git a/frameworks/non-keyed/svelte/src/Main.svelte b/frameworks/non-keyed/svelte/src/Main.html similarity index 85% rename from frameworks/non-keyed/svelte/src/Main.svelte rename to frameworks/non-keyed/svelte/src/Main.html index eac6ae088..c4ed74a7b 100644 --- a/frameworks/non-keyed/svelte/src/Main.svelte +++ b/frameworks/non-keyed/svelte/src/Main.html @@ -30,14 +30,12 @@

Svelte (non-keyed)

{row.id} - select(row.id)}>{row.label} - remove(row.id)}>{row.label}
- + {#each data as row, num} - - + + {/each} @@ -60,8 +58,8 @@

Svelte (non-keyed)

data[i].label += ' !!!'; } }, - remove = (num) => { - const idx = data.findIndex(d => d.id === num); + remove = id => { + const idx = data.findIndex(d => d.id === id); data = [...data.slice(0, idx), ...data.slice(idx + 1)]; }, run = () => { @@ -72,11 +70,19 @@

Svelte (non-keyed)

data = buildData(10000); selected = undefined; }, - select = (id) => selected = id, + select = id => selected = id, swapRows = () => { if (data.length > 998) { data = [data[0], data[998], ...data.slice(2, 998), data[1], data[999]]; } + }, + click = ({ target }) => { + const id = Number.parseInt(target.closest("tr").firstChild.firstChild.nodeValue); + if (target.matches(".glyphicon-remove")) { + remove(id); + } else { + select(id); + } }; function _random (max) { return Math.round(Math.random() * 1000) % max; }; diff --git a/frameworks/non-keyed/svelte/src/main.js b/frameworks/non-keyed/svelte/src/main.js index 90a5b31cc..9e39ea923 100644 --- a/frameworks/non-keyed/svelte/src/main.js +++ b/frameworks/non-keyed/svelte/src/main.js @@ -1,4 +1,4 @@ -import Main from './Main.svelte'; +import Main from './Main.html'; export default new Main({ target: document.querySelector( '#main' )
{row.id} - select(row.id)}>{row.label} - remove(row.id)}>{row.label}