Skip to content

Commit cb2fdab

Browse files
committed
Fix scoped styles
1 parent 096435e commit cb2fdab

File tree

3 files changed

+31
-1
lines changed

3 files changed

+31
-1
lines changed

src/Utils/StyleBuilder.php

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,10 +101,15 @@ public function compile(?DOMElement $styleElement): ?string
101101
);
102102
foreach ($matches as $match) {
103103
$selectors = explode(',', $match[0]);
104+
$selectorsCount = count($selectors);
105+
$count = 0;
104106
foreach ($selectors as $selector) {
107+
if (++$count < $selectorsCount) {
108+
$selector .= ',';
109+
}
105110
$regex = strpos($selector, '/deep/') !== false
106111
? '/((?:^|\s)\s*[^@\s][a-z0-9-_]+?)((?::{1,2}[a-z-]+)?\s*)(?:\/deep\/)/i'
107-
: '/((?:^|\s)\s*[^@\s][a-z0-9-_]+?)((?::{1,2}[a-z-]+)?\s*(?:[{]|$))/i';
112+
: '/((?:^|\s)\s*[^@\s][a-z0-9-_]+?)((?::{1,2}[a-z-]+)?\s*(?:[,{]|$))/i';
108113
$style = str_replace(
109114
$selector,
110115
preg_replace($regex, '$1[' . $this->scopedAttribute . ']$2', $selector),
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
<style>.grow-enter[data-v-de62703e2bdacde95c4bc73d69f14aa5], .grow-leave-to[data-v-de62703e2bdacde95c4bc73d69f14aa5] { width: 0 !important; }.grow-enter-active[data-v-de62703e2bdacde95c4bc73d69f14aa5], .grow-leave-active[data-v-de62703e2bdacde95c4bc73d69f14aa5] { transition: width 0.6s ease; }</style>
2+
<div class="bar {{ class|default('') }}" data-v-de62703e2bdacde95c4bc73d69f14aa5 {{ dataScopedStyleAttribute|default('') }} style="{{ style|default('') }}"></div>
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
<template>
2+
<div class="bar">
3+
</div>
4+
</template>
5+
6+
<script lang="ts">
7+
import { Vue, Component } from 'vue-property-decorator';
8+
9+
@Component
10+
export default class Progressbar extends Vue {
11+
}
12+
</script>
13+
14+
<style lang="scss" scoped>
15+
.grow-enter,
16+
.grow-leave-to {
17+
width: 0 !important;
18+
}
19+
.grow-enter-active,
20+
.grow-leave-active {
21+
transition: width 0.6s ease;
22+
}
23+
</style>

0 commit comments

Comments
 (0)