@@ -17,14 +17,14 @@ class StyleBuilder
17
17
public const STYLE_ALL = 3 ;
18
18
19
19
/**
20
- * @var ScssCompiler|null
20
+ * @var int
21
21
*/
22
- private $ scssCompiler ;
22
+ private $ outputType ;
23
23
24
24
/**
25
- * @var string |null
25
+ * @var ScssCompiler |null
26
26
*/
27
- private $ lang ;
27
+ private $ scssCompiler ;
28
28
29
29
/**
30
30
* @var bool
@@ -36,11 +36,6 @@ class StyleBuilder
36
36
*/
37
37
private $ scopedAttribute ;
38
38
39
- /**
40
- * @var int
41
- */
42
- private $ outputType ;
43
-
44
39
/**
45
40
* StyleBuilder constructor.
46
41
*
@@ -49,8 +44,9 @@ class StyleBuilder
49
44
public function __construct ()
50
45
{
51
46
$ this ->outputType = self ::STYLE_ALL ;
52
- $ this ->scopedAttribute = ' data-v- ' . substr ( md5 (Uuid:: uuid4 ()-> toString ()), 0 , 8 ) ;
47
+ $ this ->scssCompiler = null ;
53
48
$ this ->hasScoped = false ;
49
+ $ this ->scopedAttribute = 'data-v- ' . substr (md5 (Uuid::uuid4 ()->toString ()), 0 , 8 );
54
50
}
55
51
56
52
public function setOutputType (int $ outputType ): void
@@ -63,28 +59,21 @@ public function setOutputType(int $outputType): void
63
59
*/
64
60
public function compile ($ styleElement ): ?string
65
61
{
66
- if (!$ styleElement instanceof DOMElement) {
67
- return null ;
68
- }
69
-
70
- if (($ styleElement ->hasAttribute ('scoped ' ) && !($ this ->outputType & self ::STYLE_SCOPED ))
62
+ if (!$ styleElement instanceof DOMElement
63
+ || ($ styleElement ->hasAttribute ('scoped ' ) && !($ this ->outputType & self ::STYLE_SCOPED ))
71
64
|| (!$ styleElement ->hasAttribute ('scoped ' ) && !($ this ->outputType & self ::STYLE ))) {
72
65
return null ;
73
66
}
74
67
75
- if (
76
- !$ this ->scssCompiler instanceof ScssCompiler
77
- && $ styleElement ->hasAttribute ('lang ' )
78
- && $ styleElement ->getAttribute ('lang ' ) === 'scss '
79
- ) {
80
- $ this ->lang = 'scss ' ;
81
- $ this ->scssCompiler = new ScssCompiler ();
82
- }
83
-
84
68
$ style = $ styleElement ->textContent ;
85
- if ($ this ->lang === 'scss ' ) {
69
+
70
+ if ($ styleElement ->hasAttribute ('lang ' ) && $ styleElement ->getAttribute ('lang ' ) === 'scss ' ) {
71
+ if ($ this ->scssCompiler === null ) {
72
+ $ this ->scssCompiler = new ScssCompiler ();
73
+ }
86
74
$ style = $ this ->scssCompiler ->compile ($ style );
87
75
}
76
+
88
77
if ($ styleElement ->hasAttribute ('scoped ' )) {
89
78
$ this ->hasScoped = true ;
90
79
$ style = preg_replace ('/((?:^|[^},]*?)\S+)(\s*[{,])/i ' , '$1[ ' . $ this ->scopedAttribute . ']$2 ' , $ style );
0 commit comments