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)}
{row.id} |
-
- select(row.id)}>{row.label}
- |
- remove(row.id)}> |
+ {row.label} |
+ |
|
{/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)
-
+
{#each data as row, num}
{row.id} |
-
- select(row.id)}>{row.label}
- |
- remove(row.id)}> |
+ {row.label} |
+ |
|
{/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' )