mirror of https://github.com/sveltejs/svelte
parent
ac7f591f60
commit
04fc83d791
@ -0,0 +1,41 @@
|
||||
export default {
|
||||
data: {
|
||||
visible: false,
|
||||
rows: [1, 2, 3],
|
||||
cols: ['a', 'b', 'c']
|
||||
},
|
||||
|
||||
html: ``,
|
||||
|
||||
compileOptions: {
|
||||
dev: true
|
||||
},
|
||||
nestedTransitions: true,
|
||||
skipIntroByDefault: true,
|
||||
|
||||
test(assert, component, target, window, raf) {
|
||||
component.set({ visible: true });
|
||||
assert.htmlEqual(target.innerHTML, `
|
||||
<div class="row">
|
||||
<div class="cell">1, a</div>
|
||||
<div class="cell">1, b</div>
|
||||
<div class="cell">1, c</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="cell">2, a</div>
|
||||
<div class="cell">2, b</div>
|
||||
<div class="cell">2, c</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="cell">3, a</div>
|
||||
<div class="cell">3, b</div>
|
||||
<div class="cell">3, c</div>
|
||||
</div>
|
||||
`);
|
||||
|
||||
component.set({ visible: false });
|
||||
raf.tick(0);
|
||||
raf.tick(100);
|
||||
assert.htmlEqual(target.innerHTML, ``);
|
||||
},
|
||||
};
|
@ -0,0 +1,22 @@
|
||||
{#if visible}
|
||||
{#each rows as row}
|
||||
<div out:foo class="row">
|
||||
{#each cols as col}
|
||||
<div out:foo class="cell">{row}, {col}</div>
|
||||
{/each}
|
||||
</div>
|
||||
{/each}
|
||||
{/if}
|
||||
|
||||
<script>
|
||||
export default {
|
||||
transitions: {
|
||||
foo(node) {
|
||||
return {
|
||||
duration: 100,
|
||||
tick: t => node.foo = t
|
||||
};
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
@ -0,0 +1,44 @@
|
||||
<li>
|
||||
<span>{dir}</span>
|
||||
|
||||
{#if open}
|
||||
<ul>
|
||||
{#each items as item (item.filename)}
|
||||
{#if item.isDir}
|
||||
<svelte:self dir={item.filename}/>
|
||||
{:else}
|
||||
<li>{item.filename}</li>
|
||||
{/if}
|
||||
{/each}
|
||||
</ul>
|
||||
{/if}
|
||||
</li>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
items: [],
|
||||
open: true
|
||||
};
|
||||
},
|
||||
|
||||
computed: {
|
||||
items: ({ dir }) => {
|
||||
return dir === 'a'
|
||||
? [
|
||||
{
|
||||
filename: 'a/b',
|
||||
isDir: true
|
||||
}
|
||||
]
|
||||
: [
|
||||
{
|
||||
filename: 'a/b/c',
|
||||
isDir: false
|
||||
}
|
||||
];
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
@ -0,0 +1,26 @@
|
||||
export default {
|
||||
html: `
|
||||
<li>
|
||||
<span>a</span>
|
||||
<ul>
|
||||
<li>
|
||||
<span>a/b</span>
|
||||
<ul>
|
||||
<li>a/b/c</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
`,
|
||||
|
||||
nestedTransitions: true,
|
||||
|
||||
test(assert, component, target, window, raf) {
|
||||
component.refs.folder.set({ open: false });
|
||||
assert.htmlEqual(target.innerHTML, `
|
||||
<li>
|
||||
<span>a</span>
|
||||
</li>
|
||||
`);
|
||||
},
|
||||
};
|
@ -0,0 +1,9 @@
|
||||
<Folder ref:folder dir="a"/>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
components: {
|
||||
Folder: './Folder.html'
|
||||
}
|
||||
};
|
||||
</script>
|
Loading…
Reference in new issue