mirror of https://github.com/sveltejs/svelte
parent
1e55dda84a
commit
9dd08d8f11
@ -1,31 +0,0 @@
|
|||||||
import Node from './shared/Node';
|
|
||||||
import isValidIdentifier from '../../utils/isValidIdentifier';
|
|
||||||
|
|
||||||
export default class Ref extends Node {
|
|
||||||
type: 'Ref';
|
|
||||||
name: string;
|
|
||||||
|
|
||||||
constructor(component, parent, scope, info) {
|
|
||||||
super(component, parent, scope, info);
|
|
||||||
|
|
||||||
if (parent.ref) {
|
|
||||||
component.error({
|
|
||||||
code: 'duplicate-refs',
|
|
||||||
message: `Duplicate refs`
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!isValidIdentifier(info.name)) {
|
|
||||||
const suggestion = info.name.replace(/[^_$a-z0-9]/ig, '_').replace(/^\d/, '_$&');
|
|
||||||
|
|
||||||
component.error(info, {
|
|
||||||
code: `invalid-reference-name`,
|
|
||||||
message: `Reference name '${info.name}' is invalid — must be a valid identifier such as ${suggestion}`
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
component.refs.add(info.name);
|
|
||||||
}
|
|
||||||
|
|
||||||
this.name = info.name;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,28 +0,0 @@
|
|||||||
export default {
|
|
||||||
props: {
|
|
||||||
active: true
|
|
||||||
},
|
|
||||||
|
|
||||||
warnings: [{
|
|
||||||
code: `css-unused-selector`,
|
|
||||||
message: 'Unused CSS selector',
|
|
||||||
start: {
|
|
||||||
column: 1,
|
|
||||||
line: 17,
|
|
||||||
character: 222
|
|
||||||
},
|
|
||||||
end: {
|
|
||||||
column: 20,
|
|
||||||
line: 17,
|
|
||||||
character: 241
|
|
||||||
},
|
|
||||||
pos: 222,
|
|
||||||
frame: `
|
|
||||||
15: }
|
|
||||||
16:
|
|
||||||
17: ref:button.inactive {
|
|
||||||
^
|
|
||||||
18: color: green;
|
|
||||||
19: }`
|
|
||||||
}]
|
|
||||||
};
|
|
@ -1 +0,0 @@
|
|||||||
.svelte-ref-button.active.svelte-xyz{color:red}
|
|
@ -1 +0,0 @@
|
|||||||
<button class="active svelte-xyz svelte-ref-button">deactivate</button>
|
|
@ -1,20 +0,0 @@
|
|||||||
<script>
|
|
||||||
export let active;
|
|
||||||
let button;
|
|
||||||
</script>
|
|
||||||
|
|
||||||
{#if active}
|
|
||||||
<button ref:button class='active'>deactivate</button>
|
|
||||||
{:else}
|
|
||||||
<button ref:button>activate</button>
|
|
||||||
{/if}
|
|
||||||
|
|
||||||
<style>
|
|
||||||
ref:button.active {
|
|
||||||
color: red;
|
|
||||||
}
|
|
||||||
|
|
||||||
ref:button.inactive {
|
|
||||||
color: green;
|
|
||||||
}
|
|
||||||
</style>
|
|
@ -1,24 +0,0 @@
|
|||||||
export default {
|
|
||||||
warnings: [{
|
|
||||||
code: `css-unused-selector`,
|
|
||||||
message: 'Unused CSS selector',
|
|
||||||
start: {
|
|
||||||
column: 1,
|
|
||||||
line: 14,
|
|
||||||
character: 120
|
|
||||||
},
|
|
||||||
end: {
|
|
||||||
column: 6,
|
|
||||||
line: 14,
|
|
||||||
character: 125
|
|
||||||
},
|
|
||||||
pos: 120,
|
|
||||||
frame: `
|
|
||||||
12: }
|
|
||||||
13:
|
|
||||||
14: ref:d {
|
|
||||||
^
|
|
||||||
15: color: blue;
|
|
||||||
16: }`
|
|
||||||
}]
|
|
||||||
};
|
|
@ -1 +0,0 @@
|
|||||||
.svelte-ref-a.svelte-xyz{color:red}.svelte-ref-b.svelte-xyz{color:green}
|
|
@ -1,3 +0,0 @@
|
|||||||
<div class="svelte-xyz svelte-ref-a"></div>
|
|
||||||
<div class="svelte-xyz svelte-ref-b"></div>
|
|
||||||
<div></div>
|
|
@ -1,17 +0,0 @@
|
|||||||
<div ref:a></div>
|
|
||||||
<div ref:b></div>
|
|
||||||
<div ref:c></div>
|
|
||||||
|
|
||||||
<style>
|
|
||||||
ref:a {
|
|
||||||
color: red;
|
|
||||||
}
|
|
||||||
|
|
||||||
ref:b {
|
|
||||||
color: green;
|
|
||||||
}
|
|
||||||
|
|
||||||
ref:d {
|
|
||||||
color: blue;
|
|
||||||
}
|
|
||||||
</style>
|
|
@ -0,0 +1,15 @@
|
|||||||
|
[{
|
||||||
|
"code": "invalid-ref-selector",
|
||||||
|
"message": "ref selectors are no longer supported",
|
||||||
|
"pos": 68,
|
||||||
|
"start": {
|
||||||
|
"line": 8,
|
||||||
|
"column": 1,
|
||||||
|
"character": 68
|
||||||
|
},
|
||||||
|
"end": {
|
||||||
|
"line": 8,
|
||||||
|
"column": 1,
|
||||||
|
"character": 68
|
||||||
|
}
|
||||||
|
}]
|
@ -0,0 +1,11 @@
|
|||||||
|
<script>
|
||||||
|
let foo;
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<div bind:this={foo}></div>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
ref:foo {
|
||||||
|
color: red;
|
||||||
|
}
|
||||||
|
</style>
|
@ -0,0 +1,15 @@
|
|||||||
|
[{
|
||||||
|
"code": "invalid-ref-directive",
|
||||||
|
"message": "The ref directive is no longer supported — use `bind:this={foo}` instead",
|
||||||
|
"pos": 5,
|
||||||
|
"start": {
|
||||||
|
"line": 1,
|
||||||
|
"column": 5,
|
||||||
|
"character": 5
|
||||||
|
},
|
||||||
|
"end": {
|
||||||
|
"line": 1,
|
||||||
|
"column": 5,
|
||||||
|
"character": 5
|
||||||
|
}
|
||||||
|
}]
|
@ -0,0 +1 @@
|
|||||||
|
<div ref:foo></div>
|
Loading…
Reference in new issue