Skip to content

Commit a082ae1

Browse files
authored
Merge pull request #42 from Paneon/master
Update master
2 parents 5527836 + 73545e5 commit a082ae1

File tree

6 files changed

+56
-1
lines changed

6 files changed

+56
-1
lines changed

src/Compiler.php

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -463,7 +463,13 @@ private function preparePropertiesForInclude(array $variables, bool $isRootNode
463463
);
464464
}
465465
} elseif ($name === 'vBind') {
466-
$this->vBind = $value;
466+
if ($value === '"$props"') {
467+
foreach ($this->properties as $property) {
468+
$variables[] = (clone $property)->setValue($property->getName());
469+
}
470+
} else {
471+
$this->vBind = $value;
472+
}
467473
unset($variables[$key]);
468474
}
469475
}

src/Utils/StyleBuilder.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,9 @@ public function compile(?DOMElement $styleElement, ?string $path = null): ?strin
8585
$this->scssCompiler = new ScssCompiler();
8686
}
8787
try {
88+
$style = str_replace('/deep/', '__vue_to_twig_deep_placeholder__', $style);
8889
$style = $this->scssCompiler->compile($this->scssData . ' ' . $style, $path);
90+
$style = str_replace('__vue_to_twig_deep_placeholder__', '/deep/', $style);
8991
} catch (CompilerException $e) {
9092
$style = "\n/* Warning: " . $e->getMessage() . " */\n";
9193
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
<style>.foo[data-v-fd8b19a241436e9520956030475ed391] { color: red;}.foo[data-v-fd8b19a241436e9520956030475ed391] .bar { color: blue;}</style>
2+
<div data-v-fd8b19a241436e9520956030475ed391 {{ dataScopedStyleAttribute|default('') }} class="{{ class|default('') }}" style="{{ style|default('') }}">
3+
<div class="foo" data-v-fd8b19a241436e9520956030475ed391>
4+
foo
5+
</div>
6+
</div>
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<template>
2+
<div>
3+
<div class="foo">
4+
foo
5+
</div>
6+
</div>
7+
</template>
8+
9+
<style lang="scss" scoped>
10+
.foo {
11+
color: red;
12+
& /deep/ .bar {
13+
color: blue;
14+
}
15+
}
16+
</style>
17+
18+
<script>
19+
export default {
20+
}
21+
</script>
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{% set foo = foo|default('foo') %}
2+
{% set bar = bar|default(42) %}
3+
<div class="{{ class|default('') }}" style="{{ style|default('') }}">
4+
{% include "/templates/ChildComponent.twig" with { 'slot_default': "", 'foo': foo, 'bar': bar, 'class': "", 'style': "" } %}
5+
</div>
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<template>
2+
<div>
3+
<ChildComponent v-bind="$props" />
4+
</div>
5+
</template>
6+
7+
<script lang="ts">
8+
import { Component, Prop, Vue } from 'vue-property-decorator';
9+
10+
@Component
11+
export default class ComponentWithVBind extends Vue {
12+
@Prop({ type: String, default: 'foo' }) foo: string;
13+
@Prop({ type: Number, default: 42 }) bar: number;
14+
}
15+
</script>

0 commit comments

Comments
 (0)