mirror of https://github.com/sveltejs/svelte
Merge pull request #847 from sveltejs/gh-827
Don't slot elements inside custom elementspull/851/head
commit
049fe59082
@ -0,0 +1,13 @@
|
|||||||
|
import { Node } from '../../../interfaces';
|
||||||
|
import Generator from '../../Generator';
|
||||||
|
|
||||||
|
export default function isChildOfComponent(node: Node, generator: Generator) {
|
||||||
|
while (node = node.parent) {
|
||||||
|
if (node.type !== 'Element') continue;
|
||||||
|
if (generator.components.has(node.name)) return true;
|
||||||
|
if (/-/.test(node.name)) return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO do this in validation
|
||||||
|
throw new Error(`Element with a slot='...' attribute must be a descendant of a component or custom element`);
|
||||||
|
}
|
@ -0,0 +1,7 @@
|
|||||||
|
export default {
|
||||||
|
html: `
|
||||||
|
<custom-element>
|
||||||
|
<header slot='header'>header header header</header>
|
||||||
|
</custom-element>
|
||||||
|
`
|
||||||
|
};
|
@ -0,0 +1,3 @@
|
|||||||
|
<custom-element>
|
||||||
|
<header slot='header'>header header header</header>
|
||||||
|
</custom-element>
|
Loading…
Reference in new issue